9router/open-sse/executors
long2ice 6994cd1f70 fix(cursor): HTTP/2 AgentService support + version bump to 3.12.17
Real Cursor IDE now uses AgentService at agent.api5.cursor.sh (HTTP/2-only)
while 9router still spoke the retired ChatService at api2.cursor.sh with
outdated headers, producing HTTP 429 "Update Required". Add an executeAgent
path that builds an agent.v1.RunRequest Connect RPC over a raw http2 stream
and fetches the account-specific usable model catalog via GetUsableModels.

Also implement MCP tool calling over AgentService: encode OpenAI tools as
AgentRunRequest.mcp_tools (McpToolDefinition with google.protobuf.Value
input_schema), decode McpArgs tool calls, and forward them to the client as
OpenAI tool_calls so the client runs the tool and resumes in the next turn.
Reply to request_context_args with a non-empty RequestContext, to server
heartbeats with client_heartbeat, and to KV blob get/set with empty results,
so action queries no longer stall the stream. Fold the client system prompt
into the user message (custom_system_prompt makes the server return an empty
turn). Bump clientVersion to 3.12.17 and add the x-cursor-client-commit
header so the gateway identifies as a current Cursor IDE release.
2026-07-20 15:39:55 +07:00
..
antigravity.js fix(antigravity): align provider fingerprint with IDE Desktop 2.1.1 (#2389) 2026-07-08 10:17:47 +07:00
azure.js feat: add Azure OpenAI provider support 2026-04-24 10:04:59 +07:00
base.js refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup 2026-06-14 13:15:48 +07:00
codebuddy-cn.js fix(codebuddy): only send reasoning params when client requests reasoning 2026-06-26 10:51:16 +07:00
codex.js fix(codex): avoid bare-email OAuth dedup (#2477) 2026-07-10 11:41:43 +07:00
commandcode.js refactor(open-sse): translator DRY + schema enums, bug fixes, dead code cleanup 2026-06-14 18:49:38 +07:00
cursor.js fix(cursor): HTTP/2 AgentService support + version bump to 3.12.17 2026-07-20 15:39:55 +07:00
default.js feat(kimi): merge OAuth into dual-auth provider, add K3/K2.7 models 2026-07-17 12:09:14 +07:00
gemini-cli.js feat(gemini-cli): wrap CloudCode payload and surface 429 retryDelay 2026-05-18 15:23:38 +07:00
github.js feat(github): route Claude models through Copilot's native /v1/messages 2026-07-15 17:34:08 +07:00
grok-cli.js fix(grok-cli): align Grok Build with current subscription protocol (#2590) 2026-07-16 15:33:19 +07:00
grok-web.js refactor(app): DRY pass — split large files, extract shared utils 2026-06-14 19:31:09 +07:00
iflow.js fix(iflow): inject stream_options for usage data in streaming 2026-03-23 12:03:11 +07:00
index.js feat(grok-cli): add Grok CLI / Grok Build provider with OAuth device-code flow (#2502) 2026-07-10 11:47:08 +07:00
kimchi.js fix(kimchi): strip reasoning_content echo to bound multi-turn input tokens 2026-07-03 10:58:31 +07:00
kiro.js fix(kiro): validate terminal streams before emitting output 2026-07-20 10:55:33 +07:00
mimo-free.js fix(mimo-free): add Chrome User-Agent rotation to bypass anti-abuse gate 2026-06-21 16:51:47 +07:00
ollama-local.js feat: add OllamaLocalExecutor and update provider handling 2026-05-07 16:42:36 +07:00
opencode-go.js feat(opencode-go): align Go models with official endpoints 2026-06-20 15:09:11 +07:00
opencode.js refactor(open-sse): source mimo-free/opencode base URL from PROVIDERS 2026-06-13 20:40:43 +07:00
perplexity-web.js refactor(app): DRY pass — split large files, extract shared utils 2026-06-14 19:31:09 +07:00
qoder.js refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup 2026-06-14 13:15:48 +07:00
qwen.js fix: strip stream_options for qwen non-streaming Claude Code requests (closes #557) (#663) 2026-05-03 15:21:43 +07:00
vertex.js feat(vertex): support ADC authorized_user credential 2026-06-13 09:55:29 +07:00
xiaomi-tokenplan.js feat(headroom): add proxy lifecycle management + dashboard UI 2026-06-20 10:09:50 +07:00