Skip to content

[INTEGRATION] Cursor SDK on LiteLLM — staging branch (DO NOT MERGE)#27343

Draft
ishaan-berri wants to merge 302 commits into
litellm_internal_stagingfrom
litellm_cursor_sdk_integration
Draft

[INTEGRATION] Cursor SDK on LiteLLM — staging branch (DO NOT MERGE)#27343
ishaan-berri wants to merge 302 commits into
litellm_internal_stagingfrom
litellm_cursor_sdk_integration

Conversation

@ishaan-berri
Copy link
Copy Markdown
Contributor

Relevant issues

Tracks integration of the entire Cursor-SDK-on-LiteLLM project. Linear: https://linear.app/litellm-ai/project/cursor-sdk-on-litellm-shin-cursor-migration-d18058628264

Linear ticket

Aggregates 7 sub-PRs. Individual review happens on each:

(Epic C / daemon is in BerriAI/litellm-agent-runtime#1)
(Epic F / shin-cursor migration is in https://github.com/BerriAI/shin-cursor/pull/1)

⚠️ DO NOT MERGE THIS PR

This is the integration / staging branch. Individual PRs above are the review surface. This branch exists so we can:

  • Boot the full system end-to-end
  • Catch wire-shape integration bugs
  • Dogfood the dashboard / settings UI / SDK against the real backend
  • Deploy to staging before any sub-PR merges

When sub-PRs land into `litellm_internal_staging`, this branch will be re-cut to track them.

Pre-Submission checklist

  • All 7 feature branches merged
  • Schema files reconciled (deduped B2's tables that already came from G's merge; kept B2's new `LiteLLM_AgentVM`)
  • Migration files coexist with timestamped directories
  • `uv run python -c "from litellm.proxy.proxy_server import app"` — TODO
  • Unit tests passing — TODO
  • TS SDK builds — TODO
  • UI typechecks — TODO

CI

CI on this branch is a smoke test, not a gate.

Type

🚄 Infrastructure

Reconciliation commits

  • `reconcile: schema dedup B2's LiteLLM_AgentVMConfig/Secret/Worker (already in HEAD from G) — keep G's versions and add B2's new LiteLLM_AgentVM table.` (in 0e371e2)

Changes

233 commits across 7 merged feature branches. See `git log --oneline` on the branch for details.

ishaan-jaff added 30 commits May 6, 2026 15:00
The existing /v1/agents endpoint is reserved for the A2A registry. The new
VM-agent API used by this dashboard moves under /v2/.
Single sidebar entry showing session title, status pill (antd Tag, gold for
provisioning), branch and last-updated timestamp. Links to the three-pane
view at /agents/{aid}/sessions/{sid}.
Vertical list of SessionRow under the active agent with a + New action
pinned to the header. Shared by /agents/{aid} and the three-pane view.
Modal collecting a repo URL, posts to createCloudSession, then surfaces
the new session to the parent for redirect into the three-pane view.
Renders user/assistant/tool/system messages with role-tagged styling.
Tool calls render via ToolCallCard, not this bubble.
Collapsible card for assistant tool invocations from tool_call events.
Cursor Cloud Agents-style: collapsed shows tool + preview; expanded
shows full input (and result, when present).
Aggregates file_diff events into a 'N Files Changed' collapsible at
the bottom of the conversation pane. Cumulative across the run per
LIT-2881 spec — latest patch wins, additions/deletions sum per path.
Textarea + Send at the bottom of the conversation pane. POSTs to
/v2/sessions/{sid}/followup; the resulting user_message lands via the
SSE stream.
Middle pane unioning the initial conversation snapshot with live SSE
events. user_message and assistant_message render as MessageBubble;
tool_call as ToolCallCard; file_diff folds into FilesChangedAccordion.
Combines the active Run's git.branches with live git_commit / pr_opened
events. Shows branches, PR link (live event wins over snapshot), and
commits sorted newest-first.
ishaan-jaff added 30 commits May 6, 2026 19:29
Phase 2 architecture rule: VM management code lives in
litellm/managed_agents/vms/, not litellm/proxy/. The proxy is control
plane only.

Tracks LIT-2879.
Phase 2 architecture rule: VM management code lives in
litellm/managed_agents/vms/, not litellm/proxy/. The proxy is control
plane only.

Tracks LIT-2879.
Phase 2 architecture rule: VM management code lives in
litellm/managed_agents/vms/, not litellm/proxy/. The proxy is control
plane only.

Tracks LIT-2879.
… proxy

Phase 2 architecture rule: VM management code lives in
litellm/managed_agents/vms/, not litellm/proxy/. The proxy is control
plane only.

Tracks LIT-2879.
…t of proxy

Phase 2: warm pool is part of VM management — moves to
litellm/managed_agents/vms/warm_pool/ alongside the providers.

Tracks LIT-2879.
…of proxy

Phase 2: warm pool is part of VM management — moves to
litellm/managed_agents/vms/warm_pool/ alongside the providers.

Tracks LIT-2879.
… of proxy

Phase 2: warm pool is part of VM management — moves to
litellm/managed_agents/vms/warm_pool/ alongside the providers.

Tracks LIT-2879.
… of proxy

Phase 2: warm pool is part of VM management — moves to
litellm/managed_agents/vms/warm_pool/ alongside the providers.

Tracks LIT-2879.
…f proxy

Phase 2: warm pool is part of VM management — moves to
litellm/managed_agents/vms/warm_pool/ alongside the providers.

Tracks LIT-2879.
Tests follow 1:1 mapping convention from tests/test_litellm/readme.md:
litellm/foo/bar.py → tests/test_litellm/foo/test_bar.py.

Tracks LIT-2879.
Tests follow 1:1 mapping convention from tests/test_litellm/readme.md:
litellm/foo/bar.py → tests/test_litellm/foo/test_bar.py.

Tracks LIT-2879.
Tests follow 1:1 mapping convention from tests/test_litellm/readme.md:
litellm/foo/bar.py → tests/test_litellm/foo/test_bar.py.

Tracks LIT-2879.
Tests follow 1:1 mapping convention from tests/test_litellm/readme.md:
litellm/foo/bar.py → tests/test_litellm/foo/test_bar.py.

Tracks LIT-2879.
Tests follow 1:1 mapping convention from tests/test_litellm/readme.md:
litellm/foo/bar.py → tests/test_litellm/foo/test_bar.py.

Tracks LIT-2879.
Tests follow 1:1 mapping convention from tests/test_litellm/readme.md:
litellm/foo/bar.py → tests/test_litellm/foo/test_bar.py.

Tracks LIT-2879.
Note: sandbox/ goes away in iteration 2 (LIT-2879 rule 5 — one concept:
VM). Until then, keep docstrings accurate.

Tracks LIT-2879.
…_sdk

Phase 2 architecture (LIT-2879): the agent runtime runs on the
per-Session VM, not in the proxy. Add a pytest that scans
litellm/proxy/ and fails if any source file imports claude_agent_sdk.

Currently passes (zero offenders). The test enforces that the boundary
stays intact going forward.

Tracks LIT-2879.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants