From e3756252a8904cebecdaf0b9a4e1db253bb9ed28 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Sat, 28 Feb 2026 14:50:06 -0800 Subject: [PATCH] Development environment setup (#22432) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add Cursor Cloud Agents as a native pass-through provider - Add CURSOR to LlmProviders enum - Add /cursor/{endpoint:path} pass-through route with Basic Auth - Add /cursor to mapped_pass_through_routes for proper routing - Create CursorPassthroughLoggingHandler for Logs page visibility - Classifies operations (agent:create, agent:list, models:list, etc.) - Logs model as cursor/cursor: for clean Logs display - Tracks cost as $0 (subscription-based, no per-request pricing) - Add Cursor to UI: provider enum, logo, credential fields - Add provider_create_fields.json entry for LLM Credentials UI - Add 18 unit tests covering route, auth, logging, and classification Co-authored-by: Ishaan Jaff * fix: use correct Cursor logo from lobehub, add documentation page - Replace placeholder Cursor logo with official hexagonal logo from lobehub - Add docs/pass_through/cursor.md with full tutorial matching a2a_cost_tracking style - Quick Start: add creds on UI, start proxy, launch agent, view logs - Examples: all Cursor Cloud Agents API endpoints - Advanced: virtual key usage - Screenshots: credential form, logs page, log detail view - Add Cursor to sidebars.js under Pass-through Endpoints - Add screenshots to docs/my-website/img/ Co-authored-by: Ishaan Jaff * docs: simplify Cursor doc - UI-only flow, no config.yaml needed Co-authored-by: Ishaan Jaff * fix: cursor pass-through reads credentials from UI (litellm.credential_list) The pass-through route now checks litellm.credential_list as a fallback when CURSOR_API_KEY env var is not set. This means adding credentials via the UI (Models + Endpoints → LLM Credentials) works without any config.yaml or environment variable setup. Credential lookup order: 1. passthrough_endpoint_router (config.yaml with use_in_pass_through) 2. litellm.credential_list (credentials added via UI) 3. CURSOR_API_KEY environment variable Also respects api_base from UI credentials if set. Co-authored-by: Ishaan Jaff --------- Co-authored-by: Cursor Agent Co-authored-by: Ishaan Jaff --- docs/my-website/docs/pass_through/cursor.md | 157 +++++++++++++++ docs/my-website/img/cursor_add_credential.png | Bin 0 -> 28726 bytes docs/my-website/img/cursor_log_detail.png | Bin 0 -> 44572 bytes docs/my-website/img/cursor_logs.png | Bin 0 -> 46436 bytes docs/my-website/sidebars.js | 1 + litellm/proxy/_types.py | 1 + .../llm_passthrough_endpoints.py | 87 ++++++++ .../cursor_passthrough_logging_handler.py | 141 +++++++++++++ .../pass_through_endpoints/success_handler.py | 41 ++++ .../provider_create_fields.json | 28 +++ litellm/types/utils.py | 1 + ...test_cursor_passthrough_logging_handler.py | 116 +++++++++++ .../test_llm_pass_through_endpoints.py | 186 ++++++++++++++++++ .../public/assets/logos/cursor.svg | 1 + .../src/components/provider_info_helpers.tsx | 5 + 15 files changed, 765 insertions(+) create mode 100644 docs/my-website/docs/pass_through/cursor.md create mode 100644 docs/my-website/img/cursor_add_credential.png create mode 100644 docs/my-website/img/cursor_log_detail.png create mode 100644 docs/my-website/img/cursor_logs.png create mode 100644 litellm/proxy/pass_through_endpoints/llm_provider_handlers/cursor_passthrough_logging_handler.py create mode 100644 tests/test_litellm/proxy/pass_through_endpoints/llm_provider_handlers/test_cursor_passthrough_logging_handler.py create mode 100644 ui/litellm-dashboard/public/assets/logos/cursor.svg diff --git a/docs/my-website/docs/pass_through/cursor.md b/docs/my-website/docs/pass_through/cursor.md new file mode 100644 index 0000000000..5726c6bae2 --- /dev/null +++ b/docs/my-website/docs/pass_through/cursor.md @@ -0,0 +1,157 @@ +import Image from '@theme/IdealImage'; + +# Cursor Cloud Agents + +Pass-through endpoints for the [Cursor Cloud Agents API](https://docs.cursor.com/account/api) — launch and manage cloud agents that work on your repositories, in native format (no translation). + +| Feature | Supported | Notes | +|---------|-----------|-------| +| Cost Tracking | ✅ | Logged as $0.00 (subscription-based, no per-request pricing) | +| Logging | ✅ | All requests logged with operation classification | +| End-user Tracking | ❌ | [Tell us if you need this](https://github.com/BerriAI/litellm/issues/new) | +| Streaming | ❌ | Cursor API does not use streaming | + +Just replace `https://api.cursor.com` with `LITELLM_PROXY_BASE_URL/cursor` 🚀 + +**Supported endpoints:** + +| Endpoint | Method | Description | +|----------|--------|-------------| +| `/v0/agents` | GET | List agents | +| `/v0/agents` | POST | Launch an agent | +| `/v0/agents/{id}` | GET | Agent status | +| `/v0/agents/{id}` | DELETE | Delete an agent | +| `/v0/agents/{id}/conversation` | GET | Agent conversation | +| `/v0/agents/{id}/followup` | POST | Add follow-up | +| `/v0/agents/{id}/stop` | POST | Stop an agent | +| `/v0/me` | GET | API key info | +| `/v0/models` | GET | List models | +| `/v0/repositories` | GET | List GitHub repositories | + +## Quick Start + +### 1. Add Cursor API Key on the UI + +Navigate to **Models + Endpoints → LLM Credentials** and click **Add Credential**. Select **Cursor** from the provider dropdown — you'll see the Cursor logo. Enter your API key from [cursor.com/settings](https://cursor.com/settings). + +Add Cursor credential with logo + +### 2. Launch a Cursor Agent + +```bash +curl -X POST http://0.0.0.0:4000/cursor/v0/agents \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "prompt": { + "text": "Add a README.md with installation instructions" + }, + "source": { + "repository": "https://github.com/your-org/your-repo", + "ref": "main" + }, + "target": { + "autoCreatePr": true + } + }' +``` + +**Expected Response:** + +```json +{ + "id": "bc_abc123", + "name": "Add README Documentation", + "status": "CREATING", + "source": { + "repository": "https://github.com/your-org/your-repo", + "ref": "main" + }, + "target": { + "branchName": "cursor/add-readme-1234", + "url": "https://cursor.com/agents?id=bc_abc123", + "autoCreatePr": true + }, + "createdAt": "2024-01-15T10:30:00Z" +} +``` + +### 3. View Logs + +Navigate to **Logs** in the sidebar. Filter by "cursor" to see your agent requests. Each request shows the operation type (e.g., `cursor/cursor:agent:create`), status, duration, and cost. + +Cursor requests in Logs page + +Click on any log entry to see full request details including provider, API base, and metadata. + +Cursor log entry detail + +## Examples + +Anything after `http://0.0.0.0:4000/cursor` is treated as a provider-specific route, and handled accordingly. + +| **Original Endpoint** | **Replace With** | +|---|---| +| `https://api.cursor.com` | `http://0.0.0.0:4000/cursor` (LITELLM_PROXY_BASE_URL) | +| `-u YOUR_API_KEY:` (Basic Auth) | `-H "Authorization: Bearer "` (LiteLLM Virtual Key) | + +### List Available Models + +```bash +curl http://0.0.0.0:4000/cursor/v0/models \ + -H "Authorization: Bearer " +``` + +### Check Agent Status + +```bash +curl http://0.0.0.0:4000/cursor/v0/agents/bc_abc123 \ + -H "Authorization: Bearer " +``` + +### List All Agents + +```bash +curl http://0.0.0.0:4000/cursor/v0/agents \ + -H "Authorization: Bearer " +``` + +### Add Follow-up to Agent + +```bash +curl -X POST http://0.0.0.0:4000/cursor/v0/agents/bc_abc123/followup \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "prompt": { + "text": "Also add a section about troubleshooting" + } + }' +``` + +### Stop an Agent + +```bash +curl -X POST http://0.0.0.0:4000/cursor/v0/agents/bc_abc123/stop \ + -H "Authorization: Bearer " +``` + +### Delete an Agent + +```bash +curl -X DELETE http://0.0.0.0:4000/cursor/v0/agents/bc_abc123 \ + -H "Authorization: Bearer " +``` + +### Get API Key Info + +```bash +curl http://0.0.0.0:4000/cursor/v0/me \ + -H "Authorization: Bearer " +``` + +## Related + +- [Cursor Cloud Agents API Docs](https://docs.cursor.com/account/api) +- [Pass-through Endpoints Overview](./intro.md) +- [Virtual Keys](../proxy/virtual_keys.md) diff --git a/docs/my-website/img/cursor_add_credential.png b/docs/my-website/img/cursor_add_credential.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0eb1ffe51cfe75849cc19f46aa7fa56af3e521 GIT binary patch literal 28726 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 literal 0 HcmV?d00001 diff --git a/docs/my-website/img/cursor_log_detail.png b/docs/my-website/img/cursor_log_detail.png new file mode 100644 index 0000000000000000000000000000000000000000..5fdb1dd4a1c80630c6c0cf71009050d06a2c5962 GIT binary patch literal 44572 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 str: + """Classify a Cursor API request into a readable operation name.""" + normalized = path.rstrip("/") + + for pattern, operation in CURSOR_AGENT_ENDPOINTS.items(): + pat_method, pat_path = pattern.split(" ", 1) + if method.upper() != pat_method: + continue + + pat_parts = pat_path.strip("/").split("/") + req_parts = normalized.strip("/").split("/") + + if len(pat_parts) != len(req_parts): + continue + + match = True + for pp, rp in zip(pat_parts, req_parts): + if pp.startswith("{") and pp.endswith("}"): + continue + if pp != rp: + match = False + break + if match: + return operation + + return f"cursor:{method.lower()}:{normalized}" + + +class CursorPassthroughLoggingHandler: + """Handles logging for Cursor Cloud Agents pass-through requests.""" + + @staticmethod + def cursor_passthrough_handler( + httpx_response: httpx.Response, + response_body: dict, + logging_obj: LiteLLMLoggingObj, + url_route: str, + result: str, + start_time: datetime, + end_time: datetime, + cache_hit: bool, + request_body: dict, + **kwargs, + ) -> PassThroughEndpointLoggingTypedDict: + """ + Transform a Cursor API response into a standard logging payload. + """ + try: + method = httpx_response.request.method + path = httpx.URL(url_route).path + operation = _classify_cursor_request(method, path) + + agent_id = response_body.get("id", "") + agent_name = response_body.get("name", "") + agent_status = response_body.get("status", "") + + model_name = f"cursor/{operation}" + + summary_parts = [] + if agent_id: + summary_parts.append(f"id={agent_id}") + if agent_name: + summary_parts.append(f"name={agent_name}") + if agent_status: + summary_parts.append(f"status={agent_status}") + + response_summary = ", ".join(summary_parts) if summary_parts else result + + kwargs["model"] = model_name + kwargs["response_cost"] = 0.0 + logging_obj.model_call_details["model"] = model_name + logging_obj.model_call_details["custom_llm_provider"] = "cursor" + logging_obj.model_call_details["response_cost"] = 0.0 + + standard_logging_object = get_standard_logging_object_payload( + kwargs=kwargs, + init_response_obj=StandardPassThroughResponseObject( + response=response_summary + ), + start_time=start_time, + end_time=end_time, + logging_obj=logging_obj, + status="success", + ) + kwargs["standard_logging_object"] = standard_logging_object + + verbose_proxy_logger.debug( + "Cursor passthrough logging: operation=%s, agent_id=%s", + operation, + agent_id, + ) + + return { + "result": StandardPassThroughResponseObject( + response=response_summary + ), + "kwargs": kwargs, + } + except Exception as e: + verbose_proxy_logger.exception( + "Error in Cursor passthrough logging handler: %s", e + ) + return { + "result": StandardPassThroughResponseObject(response=result), + "kwargs": kwargs, + } diff --git a/litellm/proxy/pass_through_endpoints/success_handler.py b/litellm/proxy/pass_through_endpoints/success_handler.py index 41b92c5611..271c2d7a48 100644 --- a/litellm/proxy/pass_through_endpoints/success_handler.py +++ b/litellm/proxy/pass_through_endpoints/success_handler.py @@ -22,6 +22,9 @@ from .llm_provider_handlers.assembly_passthrough_logging_handler import ( from .llm_provider_handlers.cohere_passthrough_logging_handler import ( CoherePassthroughLoggingHandler, ) +from .llm_provider_handlers.cursor_passthrough_logging_handler import ( + CursorPassthroughLoggingHandler, +) from .llm_provider_handlers.gemini_passthrough_logging_handler import ( GeminiPassthroughLoggingHandler, ) @@ -60,6 +63,9 @@ class PassThroughEndpointLogging: # Gemini self.TRACKED_GEMINI_ROUTES = ["generateContent", "streamGenerateContent", "predictLongRunning"] + # Cursor Cloud Agents + self.TRACKED_CURSOR_ROUTES = ["/v0/agents", "/v0/me", "/v0/models", "/v0/repositories"] + # Vertex AI Live API WebSocket self.TRACKED_VERTEX_AI_LIVE_ROUTES = ["/vertex_ai/live"] @@ -223,6 +229,25 @@ class PassThroughEndpointLogging: ) kwargs = openai_passthrough_logging_handler_result["kwargs"] + elif self.is_cursor_route(url_route, custom_llm_provider): + cursor_passthrough_logging_handler_result = ( + CursorPassthroughLoggingHandler.cursor_passthrough_handler( + httpx_response=httpx_response, + response_body=response_body or {}, + logging_obj=logging_obj, + url_route=url_route, + result=result, + start_time=start_time, + end_time=end_time, + cache_hit=cache_hit, + request_body=request_body, + **kwargs, + ) + ) + standard_logging_response_object = ( + cursor_passthrough_logging_handler_result["result"] + ) + kwargs = cursor_passthrough_logging_handler_result["kwargs"] elif self.is_vertex_ai_live_route(url_route): from .llm_provider_handlers.vertex_ai_live_passthrough_logging_handler import ( VertexAILivePassthroughLoggingHandler, @@ -385,6 +410,22 @@ class PassThroughEndpointLogging: return True return False + def is_cursor_route( + self, url_route: str, custom_llm_provider: Optional[str] = None + ): + """Check if the URL route is a Cursor Cloud Agents API route.""" + if custom_llm_provider == "cursor": + return True + parsed_url = urlparse(url_route) + if parsed_url.hostname and "api.cursor.com" in parsed_url.hostname: + return True + for route in self.TRACKED_CURSOR_ROUTES: + if route in url_route: + path = parsed_url.path if parsed_url.scheme else url_route + if path.startswith("/v0/"): + return custom_llm_provider == "cursor" + return False + def is_openai_route(self, url_route: str): """Check if the URL route is an OpenAI API route.""" if not url_route: diff --git a/litellm/proxy/public_endpoints/provider_create_fields.json b/litellm/proxy/public_endpoints/provider_create_fields.json index ec1c461952..dda8e49d4c 100644 --- a/litellm/proxy/public_endpoints/provider_create_fields.json +++ b/litellm/proxy/public_endpoints/provider_create_fields.json @@ -3025,5 +3025,33 @@ } ], "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "CURSOR", + "provider_display_name": "Cursor", + "litellm_provider": "cursor", + "credential_fields": [ + { + "key": "api_key", + "label": "Cursor API Key", + "placeholder": "Your Cursor API key from cursor.com/settings", + "tooltip": "Get your API key from the Cursor Dashboard at cursor.com/settings", + "required": true, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://api.cursor.com", + "tooltip": "Cursor API base URL (defaults to https://api.cursor.com)", + "required": false, + "field_type": "text", + "options": null, + "default_value": "https://api.cursor.com" + } + ], + "default_model_placeholder": "cursor/claude-4-sonnet" } ] diff --git a/litellm/types/utils.py b/litellm/types/utils.py index dda32d9838..1b7089d7f1 100644 --- a/litellm/types/utils.py +++ b/litellm/types/utils.py @@ -3185,6 +3185,7 @@ class LlmProviders(str, Enum): CHUTES = "chutes" XIAOMI_MIMO = "xiaomi_mimo" LITELLM_AGENT = "litellm_agent" + CURSOR = "cursor" # Create a set of all provider values for quick lookup diff --git a/tests/test_litellm/proxy/pass_through_endpoints/llm_provider_handlers/test_cursor_passthrough_logging_handler.py b/tests/test_litellm/proxy/pass_through_endpoints/llm_provider_handlers/test_cursor_passthrough_logging_handler.py new file mode 100644 index 0000000000..2d025a871b --- /dev/null +++ b/tests/test_litellm/proxy/pass_through_endpoints/llm_provider_handlers/test_cursor_passthrough_logging_handler.py @@ -0,0 +1,116 @@ +import os +import sys +from datetime import datetime +from unittest.mock import MagicMock + +import httpx +import pytest + +sys.path.insert(0, os.path.abspath("../../../../..")) + +from litellm.proxy.pass_through_endpoints.llm_provider_handlers.cursor_passthrough_logging_handler import ( + CursorPassthroughLoggingHandler, + _classify_cursor_request, +) +from litellm.proxy.pass_through_endpoints.success_handler import ( + PassThroughEndpointLogging, +) + + +class TestClassifyCursorRequest: + def test_should_classify_create_agent(self): + assert _classify_cursor_request("POST", "/v0/agents") == "cursor:agent:create" + + def test_should_classify_list_agents(self): + assert _classify_cursor_request("GET", "/v0/agents") == "cursor:agent:list" + + def test_should_classify_agent_status(self): + assert ( + _classify_cursor_request("GET", "/v0/agents/bc_abc123") + == "cursor:agent:status" + ) + + def test_should_classify_agent_conversation(self): + assert ( + _classify_cursor_request("GET", "/v0/agents/bc_abc123/conversation") + == "cursor:agent:conversation" + ) + + def test_should_classify_agent_followup(self): + assert ( + _classify_cursor_request("POST", "/v0/agents/bc_abc123/followup") + == "cursor:agent:followup" + ) + + def test_should_classify_agent_stop(self): + assert ( + _classify_cursor_request("POST", "/v0/agents/bc_abc123/stop") + == "cursor:agent:stop" + ) + + def test_should_classify_agent_delete(self): + assert ( + _classify_cursor_request("DELETE", "/v0/agents/bc_abc123") + == "cursor:agent:delete" + ) + + def test_should_classify_me_endpoint(self): + assert _classify_cursor_request("GET", "/v0/me") == "cursor:account:info" + + def test_should_classify_models_endpoint(self): + assert _classify_cursor_request("GET", "/v0/models") == "cursor:models:list" + + def test_should_classify_repositories_endpoint(self): + assert ( + _classify_cursor_request("GET", "/v0/repositories") + == "cursor:repositories:list" + ) + + +class TestCursorRouteDetection: + def test_should_detect_cursor_route_by_custom_llm_provider(self): + handler = PassThroughEndpointLogging() + assert handler.is_cursor_route("https://api.cursor.com/v0/agents", "cursor") + + def test_should_detect_cursor_route_by_hostname(self): + handler = PassThroughEndpointLogging() + assert handler.is_cursor_route("https://api.cursor.com/v0/agents") + + def test_should_not_detect_non_cursor_route(self): + handler = PassThroughEndpointLogging() + assert not handler.is_cursor_route("https://api.openai.com/v1/completions") + + +class TestCursorPassthroughHandler: + def test_should_log_agent_creation_response(self): + mock_response = MagicMock(spec=httpx.Response) + mock_response.request = MagicMock() + mock_response.request.method = "POST" + mock_response.text = '{"id": "bc_abc123"}' + + mock_logging_obj = MagicMock() + mock_logging_obj.litellm_call_id = "test-call-id" + mock_logging_obj.model_call_details = {} + + response_body = { + "id": "bc_abc123", + "name": "Test Agent", + "status": "CREATING", + } + + result = CursorPassthroughLoggingHandler.cursor_passthrough_handler( + httpx_response=mock_response, + response_body=response_body, + logging_obj=mock_logging_obj, + url_route="https://api.cursor.com/v0/agents", + result='{"id": "bc_abc123"}', + start_time=datetime.now(), + end_time=datetime.now(), + cache_hit=False, + request_body={"prompt": {"text": "Add README"}}, + ) + + assert result["result"] is not None + assert result["kwargs"]["model"] == "cursor/cursor:agent:create" + assert result["kwargs"]["response_cost"] == 0.0 + assert mock_logging_obj.model_call_details["custom_llm_provider"] == "cursor" diff --git a/tests/test_litellm/proxy/pass_through_endpoints/test_llm_pass_through_endpoints.py b/tests/test_litellm/proxy/pass_through_endpoints/test_llm_pass_through_endpoints.py index fdc821ef8b..8acfa2231c 100644 --- a/tests/test_litellm/proxy/pass_through_endpoints/test_llm_pass_through_endpoints.py +++ b/tests/test_litellm/proxy/pass_through_endpoints/test_llm_pass_through_endpoints.py @@ -20,6 +20,7 @@ from litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints import ( RouteChecks, bedrock_llm_proxy_route, create_pass_through_route, + cursor_proxy_route, llm_passthrough_factory_proxy_route, milvus_proxy_route, openai_proxy_route, @@ -2377,3 +2378,188 @@ class TestOpenAIPassthroughRoute: # Verify result assert result == {"id": "asst_123", "object": "assistant"} + + +class TestCursorProxyRoute: + """Tests for the Cursor Cloud Agents pass-through route.""" + + @pytest.mark.asyncio + async def test_cursor_proxy_route_creates_pass_through_with_basic_auth(self): + """should create a pass-through route with Basic Auth header for Cursor API""" + import base64 + + mock_request = MagicMock(spec=Request) + mock_request.method = "GET" + mock_request.query_params = {} + mock_request.headers = {} + mock_response = MagicMock(spec=Response) + mock_user_api_key_dict = MagicMock() + + test_api_key = "test-cursor-api-key-123" + + with patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.passthrough_endpoint_router.get_credentials", + return_value=test_api_key, + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.create_pass_through_route" + ) as mock_create_route: + mock_endpoint_func = AsyncMock( + return_value={"agents": [], "nextCursor": None} + ) + mock_create_route.return_value = mock_endpoint_func + + result = await cursor_proxy_route( + endpoint="v0/agents", + request=mock_request, + fastapi_response=mock_response, + user_api_key_dict=mock_user_api_key_dict, + ) + + mock_create_route.assert_called_once() + call_args = mock_create_route.call_args[1] + assert call_args["target"] == "https://api.cursor.com/v0/agents" + + expected_auth = base64.b64encode( + f"{test_api_key}:".encode("utf-8") + ).decode("ascii") + assert call_args["custom_headers"]["Authorization"] == f"Basic {expected_auth}" + + assert result == {"agents": [], "nextCursor": None} + + @pytest.mark.asyncio + async def test_cursor_proxy_route_raises_on_missing_api_key(self): + """should raise 401 when no Cursor API key is available""" + mock_request = MagicMock(spec=Request) + mock_request.method = "POST" + mock_request.query_params = {} + mock_request.headers = {} + mock_response = MagicMock(spec=Response) + mock_user_api_key_dict = MagicMock() + + with patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.passthrough_endpoint_router.get_credentials", + return_value=None, + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.litellm.credential_list", + [], + ): + with pytest.raises(Exception) as exc_info: + await cursor_proxy_route( + endpoint="v0/agents", + request=mock_request, + fastapi_response=mock_response, + user_api_key_dict=mock_user_api_key_dict, + ) + assert exc_info.value.status_code == 401 + + @pytest.mark.asyncio + async def test_cursor_proxy_route_uses_ui_credential(self): + """should use credentials added via UI (litellm.credential_list) when env var is not set""" + from litellm.types.utils import CredentialItem + + mock_request = MagicMock(spec=Request) + mock_request.method = "GET" + mock_request.query_params = {} + mock_request.headers = {} + mock_response = MagicMock(spec=Response) + mock_user_api_key_dict = MagicMock() + + ui_credential = CredentialItem( + credential_name="my-cursor-key", + credential_values={"api_key": "crsr_ui_test_key", "api_base": "https://api.cursor.com"}, + credential_info={"custom_llm_provider": "cursor"}, + ) + + with patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.passthrough_endpoint_router.get_credentials", + return_value=None, + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.litellm.credential_list", + [ui_credential], + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.create_pass_through_route" + ) as mock_create_route: + mock_endpoint_func = AsyncMock(return_value={"models": []}) + mock_create_route.return_value = mock_endpoint_func + + result = await cursor_proxy_route( + endpoint="v0/models", + request=mock_request, + fastapi_response=mock_response, + user_api_key_dict=mock_user_api_key_dict, + ) + + call_args = mock_create_route.call_args[1] + assert call_args["target"] == "https://api.cursor.com/v0/models" + + import base64 + expected_auth = base64.b64encode(b"crsr_ui_test_key:").decode("ascii") + assert call_args["custom_headers"]["Authorization"] == f"Basic {expected_auth}" + + @pytest.mark.asyncio + async def test_cursor_proxy_route_custom_api_base(self): + """should use CURSOR_API_BASE env var when set""" + mock_request = MagicMock(spec=Request) + mock_request.method = "GET" + mock_request.query_params = {} + mock_request.headers = {} + mock_response = MagicMock(spec=Response) + mock_user_api_key_dict = MagicMock() + + with patch.dict( + os.environ, {"CURSOR_API_BASE": "https://custom-cursor.example.com"} + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.passthrough_endpoint_router.get_credentials", + return_value="test-key", + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.create_pass_through_route" + ) as mock_create_route: + mock_endpoint_func = AsyncMock(return_value={}) + mock_create_route.return_value = mock_endpoint_func + + await cursor_proxy_route( + endpoint="v0/me", + request=mock_request, + fastapi_response=mock_response, + user_api_key_dict=mock_user_api_key_dict, + ) + + call_args = mock_create_route.call_args[1] + assert call_args["target"] == "https://custom-cursor.example.com/v0/me" + + @pytest.mark.asyncio + async def test_cursor_proxy_route_launch_agent(self): + """should handle POST to launch an agent through the pass-through""" + mock_request = MagicMock(spec=Request) + mock_request.method = "POST" + mock_request.query_params = {} + mock_request.headers = {"content-type": "application/json"} + mock_response = MagicMock(spec=Response) + mock_user_api_key_dict = MagicMock() + + with patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.passthrough_endpoint_router.get_credentials", + return_value="test-key", + ), patch( + "litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints.create_pass_through_route" + ) as mock_create_route: + mock_endpoint_func = AsyncMock( + return_value={ + "id": "bc_abc123", + "name": "Test Agent", + "status": "CREATING", + } + ) + mock_create_route.return_value = mock_endpoint_func + + result = await cursor_proxy_route( + endpoint="v0/agents", + request=mock_request, + fastapi_response=mock_response, + user_api_key_dict=mock_user_api_key_dict, + ) + + call_args = mock_create_route.call_args[1] + assert call_args["target"] == "https://api.cursor.com/v0/agents" + assert result["id"] == "bc_abc123" + assert result["status"] == "CREATING" diff --git a/ui/litellm-dashboard/public/assets/logos/cursor.svg b/ui/litellm-dashboard/public/assets/logos/cursor.svg new file mode 100644 index 0000000000..79b44c5e83 --- /dev/null +++ b/ui/litellm-dashboard/public/assets/logos/cursor.svg @@ -0,0 +1 @@ +Cursor diff --git a/ui/litellm-dashboard/src/components/provider_info_helpers.tsx b/ui/litellm-dashboard/src/components/provider_info_helpers.tsx index 246b91f864..8568e79b1e 100644 --- a/ui/litellm-dashboard/src/components/provider_info_helpers.tsx +++ b/ui/litellm-dashboard/src/components/provider_info_helpers.tsx @@ -9,6 +9,7 @@ export enum Providers { Azure_AI_Studio = "Azure AI Foundry (Studio)", Cerebras = "Cerebras", Cohere = "Cohere", + Cursor = "Cursor", Dashscope = "Dashscope", Databricks = "Databricks (Qwen API)", DeepInfra = "DeepInfra", @@ -60,6 +61,7 @@ export const provider_map: Record = { MiniMax: "minimax", MistralAI: "mistral", Cohere: "cohere", + Cursor: "cursor", OpenAI_Compatible: "openai", OpenAI_Text_Compatible: "text-completion-openai", Vertex_AI: "vertex_ai", @@ -107,6 +109,7 @@ export const providerLogoMap: Record = { [Providers.SageMaker]: `${asset_logos_folder}bedrock.svg`, [Providers.Cerebras]: `${asset_logos_folder}cerebras.svg`, [Providers.Cohere]: `${asset_logos_folder}cohere.svg`, + [Providers.Cursor]: `${asset_logos_folder}cursor.svg`, [Providers.Databricks]: `${asset_logos_folder}databricks.svg`, [Providers.Dashscope]: `${asset_logos_folder}dashscope.svg`, [Providers.Deepseek]: `${asset_logos_folder}deepseek.svg`, @@ -206,6 +209,8 @@ export const getPlaceholder = (selectedProvider: string): string => { return "runwayml/gen4_turbo"; } else if (selectedProvider === Providers.Watsonx) { return "watsonx/ibm/granite-3-3-8b-instruct"; + } else if (selectedProvider === Providers.Cursor) { + return "cursor/claude-4-sonnet"; } else { return "gpt-3.5-turbo"; }