@cursor/july 0.1.99 → 0.1.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -2
- package/dist/bin/agent-serve.js +3 -2
- package/dist/channels/deployments/deployments-channel.d.ts +41 -5
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +88 -8
- package/dist/channels/deployments/types.d.ts +4 -3
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/defaults.d.ts.map +1 -1
- package/dist/channels/github/defaults.js +28 -3
- package/dist/channels/github/progress.d.ts +7 -0
- package/dist/channels/github/progress.d.ts.map +1 -1
- package/dist/channels/origin/defaults.d.ts +43 -0
- package/dist/channels/origin/defaults.d.ts.map +1 -0
- package/dist/channels/origin/defaults.js +111 -0
- package/dist/channels/origin/index.d.ts +2 -0
- package/dist/channels/origin/index.d.ts.map +1 -1
- package/dist/channels/origin/index.js +2 -0
- package/dist/channels/origin/origin-channel.d.ts +2 -1
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +24 -3
- package/dist/channels/origin/state.d.ts +32 -0
- package/dist/channels/origin/state.d.ts.map +1 -0
- package/dist/channels/origin/state.js +23 -0
- package/dist/channels/origin/types.d.ts +23 -1
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/api.d.ts +16 -7
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +31 -14
- package/dist/channels/slack/code-fences.d.ts +17 -0
- package/dist/channels/slack/code-fences.d.ts.map +1 -0
- package/dist/channels/slack/code-fences.js +168 -0
- package/dist/channels/slack/constants.d.ts +6 -0
- package/dist/channels/slack/constants.d.ts.map +1 -1
- package/dist/channels/slack/constants.js +6 -0
- package/dist/channels/slack/defaults.d.ts +9 -4
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +154 -76
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +3 -3
- package/dist/channels/slack/inbound.d.ts +9 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +14 -0
- package/dist/channels/slack/index.d.ts +2 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +2 -0
- package/dist/channels/slack/live-delivery.d.ts +5 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +116 -21
- package/dist/channels/slack/reasoning-card.d.ts +38 -0
- package/dist/channels/slack/reasoning-card.d.ts.map +1 -0
- package/dist/channels/slack/reasoning-card.js +104 -0
- package/dist/channels/slack/redact.d.ts +2 -0
- package/dist/channels/slack/redact.d.ts.map +1 -0
- package/dist/channels/slack/redact.js +5 -0
- package/dist/channels/slack/reply-options.d.ts +40 -0
- package/dist/channels/slack/reply-options.d.ts.map +1 -0
- package/dist/channels/slack/reply-options.js +150 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +8 -4
- package/dist/channels/slack/stream.d.ts +22 -10
- package/dist/channels/slack/stream.d.ts.map +1 -1
- package/dist/channels/slack/stream.js +9 -16
- package/dist/channels/slack/tool-cards.d.ts +22 -0
- package/dist/channels/slack/tool-cards.d.ts.map +1 -0
- package/dist/channels/slack/tool-cards.js +178 -0
- package/dist/channels/slack/types.d.ts +145 -6
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/connections.d.ts +18 -2
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +18 -2
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +6 -6
- package/dist/docs/ab.md +1 -1
- package/dist/docs/assets/{ab.md.DJo5r4R-.js → ab.md.mlVgqvSk.js} +1 -1
- package/dist/docs/assets/{app.BplEAZ3S.js → app.BASO9Kih.js} +1 -1
- package/dist/docs/assets/{building-with-agents.md.DI4mEzlt.js → building-with-agents.md.CUSWxlP_.js} +2 -2
- package/dist/docs/assets/chunks/@localSearchIndexroot.DbFXINq2.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CHXyv4wP.js → VPLocalSearchBox.DwkqxoE0.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BTcsZmjQ.js → theme.CCil_13e.js} +2 -2
- package/dist/docs/assets/{evals.md.lfJoEVc8.js → evals.md.CPzDAwoH.js} +1 -1
- package/dist/docs/assets/{guides_github.md.Cnh2mL4a.js → guides_github.md.BtPr9GaP.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.CN-6YmTJ.js → guides_mcp-oauth.md.Dp6cDP7f.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.bmPmkvJu.js → guides_opentelemetry.md.BVTXDCRg.js} +2 -2
- package/dist/docs/assets/{guides_slack.md.VDXQV3ja.js → guides_slack.md.9oHPye9o.js} +19 -3
- package/dist/docs/assets/{guides_slack.md.VDXQV3ja.lean.js → guides_slack.md.9oHPye9o.lean.js} +1 -1
- package/dist/docs/assets/hillclimbing.md.CpTGTCle.js +4 -0
- package/dist/docs/assets/{index.md.CVeRUOeZ.js → index.md.Bb4k8kUm.js} +1 -1
- package/dist/docs/assets/{quickstart.md.Nj_LjW_a.js → quickstart.md.DdQOF7Y8.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.DxldvyIB.js → reference_connections.md.Di6jJAXF.js} +13 -3
- package/dist/docs/assets/{reference_connections.md.DxldvyIB.lean.js → reference_connections.md.Di6jJAXF.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.js → reference_http-api.md.oySXBO8o.js} +1 -1
- package/dist/docs/assets/scaffolding-agents.md.em43xlY1.js +1 -0
- package/dist/docs/assets/skills_ab.md.CsFNatVx.js +26 -0
- package/dist/docs/assets/skills_ab.md.CsFNatVx.lean.js +1 -0
- package/dist/docs/assets/skills_create-agent.md.BVoWPcan.js +8 -0
- package/dist/docs/assets/skills_create-agent.md.BVoWPcan.lean.js +1 -0
- package/dist/docs/assets/skills_debug.md.CDbPhHfg.js +1 -0
- package/dist/docs/assets/skills_debug.md.CDbPhHfg.lean.js +1 -0
- package/dist/docs/assets/skills_evals.md.723kpUmA.js +25 -0
- package/dist/docs/assets/skills_evals.md.723kpUmA.lean.js +1 -0
- package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +1 -0
- package/dist/docs/assets/skills_framework-map.md.BTi817yv.lean.js +1 -0
- package/dist/docs/assets/skills_github.md.D0JahM8c.js +16 -0
- package/dist/docs/assets/skills_github.md.D0JahM8c.lean.js +1 -0
- package/dist/docs/assets/skills_hillclimb.md.B_zJerxA.js +7 -0
- package/dist/docs/assets/skills_hillclimb.md.B_zJerxA.lean.js +1 -0
- package/dist/docs/assets/skills_index.md.DKwIxzGg.js +1 -0
- package/dist/docs/assets/skills_index.md.DKwIxzGg.lean.js +1 -0
- package/dist/docs/assets/skills_mcp-auth.md.DGvFP3HE.js +18 -0
- package/dist/docs/assets/skills_mcp-auth.md.DGvFP3HE.lean.js +1 -0
- package/dist/docs/assets/skills_otel.md.CgiZryR3.js +8 -0
- package/dist/docs/assets/skills_otel.md.CgiZryR3.lean.js +1 -0
- package/dist/docs/assets/skills_setup-slack.md.BBgx8lUz.js +20 -0
- package/dist/docs/assets/skills_setup-slack.md.BBgx8lUz.lean.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.DCiPBhYs.js → troubleshooting.md.Cus_YZga.js} +1 -1
- package/dist/docs/building-with-agents.html +6 -6
- package/dist/docs/building-with-agents.md +14 -11
- package/dist/docs/concepts.html +4 -4
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/evals.html +6 -6
- package/dist/docs/evals.md +1 -1
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-runtime.html +4 -4
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +5 -5
- package/dist/docs/guides/github.md +1 -1
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +5 -5
- package/dist/docs/guides/mcp-oauth.md +1 -1
- package/dist/docs/guides/opentelemetry.html +7 -7
- package/dist/docs/guides/opentelemetry.md +2 -2
- package/dist/docs/guides/slack.html +22 -6
- package/dist/docs/guides/slack.md +80 -1
- package/dist/docs/guides/webhooks.html +5 -5
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/hillclimbing.md +5 -5
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +1 -1
- package/dist/docs/llms-full.txt +1073 -31
- package/dist/docs/llms.txt +14 -0
- package/dist/docs/quickstart.html +5 -5
- package/dist/docs/quickstart.md +1 -1
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +4 -4
- package/dist/docs/reference/cli.html +4 -4
- package/dist/docs/reference/connections.html +17 -7
- package/dist/docs/reference/connections.md +32 -1
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +1 -1
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +4 -4
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +4 -4
- package/dist/docs/scaffolding-agents.html +5 -5
- package/dist/docs/scaffolding-agents.md +3 -3
- package/dist/docs/skills/ab.html +52 -0
- package/dist/docs/skills/ab.md +50 -0
- package/dist/docs/skills/create-agent.html +34 -0
- package/dist/docs/skills/create-agent.md +160 -0
- package/dist/docs/skills/debug.html +27 -0
- package/dist/docs/skills/debug.md +36 -0
- package/dist/docs/skills/evals.html +51 -0
- package/dist/docs/skills/evals.md +99 -0
- package/dist/docs/skills/framework-map.html +27 -0
- package/dist/docs/skills/framework-map.md +95 -0
- package/dist/docs/skills/github.html +42 -0
- package/dist/docs/skills/github.md +93 -0
- package/dist/docs/skills/hillclimb.html +33 -0
- package/dist/docs/skills/hillclimb.md +55 -0
- package/dist/docs/skills/index.html +27 -0
- package/dist/docs/skills/index.md +21 -0
- package/dist/docs/skills/mcp-auth.html +44 -0
- package/dist/docs/skills/mcp-auth.md +76 -0
- package/dist/docs/skills/otel.html +34 -0
- package/dist/docs/skills/otel.md +48 -0
- package/dist/docs/skills/setup-slack.html +46 -0
- package/dist/docs/skills/setup-slack.md +141 -0
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +4 -4
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/docs/troubleshooting.md +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +55 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/extension.js +64 -0
- package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts +30 -0
- package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/cloud.js +45 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts +25 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +85 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts +15 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +55 -0
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +27 -0
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.js +37 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +83 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.js +36 -0
- package/dist/extensions/cursor-cloud-agents/tools/status.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/status.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/status.js +41 -0
- package/dist/extensions.d.ts +49 -0
- package/dist/extensions.d.ts.map +1 -0
- package/dist/extensions.js +75 -0
- package/dist/files-backends/cursor-hosted.d.ts +6 -0
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +6 -9
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/internal/advertise-tools.d.ts +4 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +20 -1
- package/dist/internal/as-of.d.ts +18 -0
- package/dist/internal/as-of.d.ts.map +1 -1
- package/dist/internal/as-of.js +131 -0
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +66 -21
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +3 -1
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +3 -4
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts +16 -0
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -0
- package/dist/internal/cursor/hosted-deployment-secrets.js +61 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts +15 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -0
- package/dist/internal/cursor/hosted-store-secrets.js +48 -0
- package/dist/internal/cursor-deployment-relay.d.ts +15 -1
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +46 -7
- package/dist/internal/deploy-client.d.ts +29 -6
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +61 -19
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +426 -121
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +5 -0
- package/dist/internal/framework-file-storage.d.ts +15 -8
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +70 -10
- package/dist/internal/framework-storage-selection.d.ts +12 -12
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +33 -39
- package/dist/internal/hosted-delivery.d.ts +3 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +19 -32
- package/dist/internal/hosted-execution-diag.d.ts +5 -0
- package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
- package/dist/internal/hosted-execution-diag.js +5 -0
- package/dist/internal/hosted-execution-flush.d.ts +46 -0
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -0
- package/dist/internal/hosted-execution-flush.js +81 -0
- package/dist/internal/mcp-endpoint.js +1 -0
- package/dist/internal/mcp-host.d.ts +2 -1
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +35 -15
- package/dist/internal/review-comments.d.ts +1 -1
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +4 -4
- package/dist/internal/server.d.ts +3 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +79 -104
- package/dist/internal/session-engine.d.ts +9 -7
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +45 -34
- package/dist/internal/session-run-log.d.ts +5 -4
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +8 -8
- package/dist/internal/start-log-store.d.ts +60 -0
- package/dist/internal/start-log-store.d.ts.map +1 -0
- package/dist/internal/start-log-store.js +151 -0
- package/dist/internal/storage-coordinator.d.ts +0 -6
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +1 -9
- package/dist/internal/tool-policy.d.ts +8 -0
- package/dist/internal/tool-policy.d.ts.map +1 -1
- package/dist/internal/tool-policy.js +19 -7
- package/dist/playground/assets/{index-jzNbJENa.js → index-BnNN1-EK.js} +45 -45
- package/dist/playground/assets/index-DBQCwFp0.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage-backends/cursor-hosted-v2.d.ts +83 -0
- package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -0
- package/dist/storage-backends/cursor-hosted-v2.js +164 -0
- package/dist/storage-backends/cursor-hosted.d.ts +6 -0
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +6 -1
- package/dist/storage-protocol.d.ts +24 -0
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +33 -0
- package/dist/storage.d.ts +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/types.d.ts +123 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +29 -1
- package/docs/README.md +1 -1
- package/docs/ab.md +1 -1
- package/docs/building-with-agents.md +14 -11
- package/docs/evals.md +1 -1
- package/docs/guides/github.md +1 -1
- package/docs/guides/mcp-oauth.md +1 -1
- package/docs/guides/opentelemetry.md +2 -2
- package/docs/guides/slack.md +80 -1
- package/docs/hillclimbing.md +5 -5
- package/docs/quickstart.md +1 -1
- package/docs/reference/connections.md +32 -1
- package/docs/reference/http-api.md +1 -1
- package/docs/scaffolding-agents.md +3 -3
- package/docs/skills/index.md +26 -0
- package/docs/troubleshooting.md +1 -1
- package/package.json +18 -4
- package/src/bin/agent-serve.ts +11 -2
- package/src/channels/deployments/deployments-channel.ts +117 -8
- package/src/channels/deployments/types.ts +4 -3
- package/src/channels/github/defaults.ts +36 -3
- package/src/channels/github/progress.ts +7 -0
- package/src/channels/origin/defaults.ts +143 -0
- package/src/channels/origin/index.ts +2 -0
- package/src/channels/origin/origin-channel.ts +37 -1
- package/src/channels/origin/state.ts +54 -0
- package/src/channels/origin/types.ts +24 -0
- package/src/channels/slack/api.ts +37 -18
- package/src/channels/slack/code-fences.ts +183 -0
- package/src/channels/slack/constants.ts +6 -0
- package/src/channels/slack/defaults.ts +173 -92
- package/src/channels/slack/dispatch.ts +8 -1
- package/src/channels/slack/inbound.ts +17 -0
- package/src/channels/slack/index.ts +2 -0
- package/src/channels/slack/live-delivery.ts +142 -28
- package/src/channels/slack/reasoning-card.ts +140 -0
- package/src/channels/slack/redact.ts +6 -0
- package/src/channels/slack/reply-options.ts +229 -0
- package/src/channels/slack/slack-channel.ts +7 -2
- package/src/channels/slack/stream.ts +31 -24
- package/src/channels/slack/tool-cards.ts +221 -0
- package/src/channels/slack/types.ts +159 -6
- package/src/connections.ts +18 -1
- package/src/extensions/cursor-cloud-agents/extension.ts +118 -0
- package/src/extensions/cursor-cloud-agents/lib/cloud.ts +79 -0
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +109 -0
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +81 -0
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +27 -0
- package/src/extensions/cursor-cloud-agents/tools/follow_up.ts +29 -0
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +84 -0
- package/src/extensions/cursor-cloud-agents/tools/list.ts +31 -0
- package/src/extensions/cursor-cloud-agents/tools/status.ts +39 -0
- package/src/extensions.ts +98 -0
- package/src/files-backends/cursor-hosted.ts +15 -5
- package/src/index.ts +2 -0
- package/src/internal/advertise-tools.ts +37 -12
- package/src/internal/as-of.ts +163 -0
- package/src/internal/cli-deploy.ts +88 -25
- package/src/internal/continuation-identity.ts +3 -1
- package/src/internal/conversation-mirror.ts +3 -8
- package/src/internal/cursor/hosted-deployment-secrets.ts +72 -0
- package/src/internal/cursor/hosted-store-secrets.ts +72 -0
- package/src/internal/cursor-deployment-relay.ts +65 -8
- package/src/internal/deploy-client.ts +83 -28
- package/src/internal/discovery.ts +479 -114
- package/src/internal/distribution.ts +5 -0
- package/src/internal/framework-file-storage.ts +80 -10
- package/src/internal/framework-storage-selection.ts +31 -44
- package/src/internal/hosted-delivery.ts +38 -63
- package/src/internal/hosted-execution-diag.ts +6 -0
- package/src/internal/hosted-execution-flush.ts +142 -0
- package/src/internal/mcp-endpoint.ts +1 -0
- package/src/internal/mcp-host.ts +40 -14
- package/src/internal/review-comments.ts +5 -2
- package/src/internal/server.ts +81 -100
- package/src/internal/session-engine.ts +56 -28
- package/src/internal/session-run-log.ts +8 -12
- package/src/internal/start-log-store.ts +177 -0
- package/src/internal/storage-coordinator.ts +1 -11
- package/src/internal/tool-policy.ts +39 -9
- package/src/storage-backends/cursor-hosted-v2.ts +219 -0
- package/src/storage-backends/cursor-hosted.ts +6 -1
- package/src/storage-protocol.ts +37 -0
- package/src/storage.ts +1 -0
- package/src/types.ts +177 -14
- package/dist/docs/assets/chunks/@localSearchIndexroot.DpuI4i7Z.js +0 -1
- package/dist/docs/assets/hillclimbing.md.DhESf3OO.js +0 -4
- package/dist/docs/assets/scaffolding-agents.md.D7UUkWw0.js +0 -1
- package/dist/internal/null-kv-storage.d.ts +0 -48
- package/dist/internal/null-kv-storage.d.ts.map +0 -1
- package/dist/internal/null-kv-storage.js +0 -58
- package/dist/playground/assets/index-D7rGZNjy.css +0 -1
- package/src/internal/null-kv-storage.ts +0 -74
- /package/dist/docs/assets/{ab.md.DJo5r4R-.lean.js → ab.md.mlVgqvSk.lean.js} +0 -0
- /package/dist/docs/assets/{building-with-agents.md.DI4mEzlt.lean.js → building-with-agents.md.CUSWxlP_.lean.js} +0 -0
- /package/dist/docs/assets/{evals.md.lfJoEVc8.lean.js → evals.md.CPzDAwoH.lean.js} +0 -0
- /package/dist/docs/assets/{guides_github.md.Cnh2mL4a.lean.js → guides_github.md.BtPr9GaP.lean.js} +0 -0
- /package/dist/docs/assets/{guides_mcp-oauth.md.CN-6YmTJ.lean.js → guides_mcp-oauth.md.Dp6cDP7f.lean.js} +0 -0
- /package/dist/docs/assets/{guides_opentelemetry.md.bmPmkvJu.lean.js → guides_opentelemetry.md.BVTXDCRg.lean.js} +0 -0
- /package/dist/docs/assets/{hillclimbing.md.DhESf3OO.lean.js → hillclimbing.md.CpTGTCle.lean.js} +0 -0
- /package/dist/docs/assets/{index.md.CVeRUOeZ.lean.js → index.md.Bb4k8kUm.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.Nj_LjW_a.lean.js → quickstart.md.DdQOF7Y8.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.lean.js → reference_http-api.md.oySXBO8o.lean.js} +0 -0
- /package/dist/docs/assets/{scaffolding-agents.md.D7UUkWw0.lean.js → scaffolding-agents.md.em43xlY1.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.DCiPBhYs.lean.js → troubleshooting.md.Cus_YZga.lean.js} +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* {@link ChannelHandlerArgs.host}.mcp. Host connections skip the model
|
|
10
10
|
* and stay on `host.mcp` plus `mcp oauth`.
|
|
11
11
|
*/
|
|
12
|
-
import type
|
|
12
|
+
import { type DiscoveredConnection, type HostMcpCallResult, type HostMcpRegistry, type HostMcpToolInfo, type McpToolAnnotations } from "../types.js";
|
|
13
13
|
export declare class McpNeedsAuthError extends Error {
|
|
14
14
|
readonly connection: string;
|
|
15
15
|
constructor(connection: string, cause?: unknown);
|
|
@@ -63,6 +63,7 @@ export declare class McpHost implements HostMcpRegistry {
|
|
|
63
63
|
private withClient;
|
|
64
64
|
private getClient;
|
|
65
65
|
private invalidateClient;
|
|
66
|
+
private requireConnection;
|
|
66
67
|
private connect;
|
|
67
68
|
}
|
|
68
69
|
/** Exported for unit tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-host.d.ts","sourceRoot":"","sources":["../../src/internal/mcp-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mcp-host.d.ts","sourceRoot":"","sources":["../../src/internal/mcp-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAIrB,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAS9C;CACF;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAE5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAQvE;AAiBD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B;AAED,qBAAa,OAAQ,YAAW,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgD;IACxE,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,YAAY,WAAW,EAAE,oBAAoB,EAAE,EAI9C;IAED,gFAAgF;IAChF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAErC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAEpD;IAED,KAAK,IAAI,MAAM,EAAE,CAEhB;IAEK,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAQlE;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,EAAE,oBAAoB,GAAG,aAAa,CAkCtD;IAEK,QAAQ,CACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAU5B;IAEK,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAU3B;IAED;;;;;;;;OAQG;YACW,UAAU;IAiBxB,OAAO,CAAC,SAAS;YAYH,gBAAgB;IAiB9B,OAAO,CAAC,iBAAiB;YAWX,OAAO;CAGtB;AAcD,+BAA+B;AAC/B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAU9D;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,OAAO,GACnB,kBAAkB,GAAG,SAAS,CAyBhC"}
|
|
@@ -23,6 +23,7 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
|
23
23
|
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
24
24
|
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
25
25
|
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
26
|
+
import { connectionAllowsTool, } from "../types.js";
|
|
26
27
|
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
27
28
|
import { createHostMcpOAuthProvider } from "./mcp-oauth.js";
|
|
28
29
|
export class McpNeedsAuthError extends Error {
|
|
@@ -77,9 +78,12 @@ export class McpHost {
|
|
|
77
78
|
}
|
|
78
79
|
listTools(connectionName) {
|
|
79
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const connection = this.requireConnection(connectionName);
|
|
80
82
|
return this.withClient(connectionName, (client) => __awaiter(this, void 0, void 0, function* () {
|
|
81
83
|
const listed = yield client.listTools();
|
|
82
|
-
return listed.tools
|
|
84
|
+
return listed.tools
|
|
85
|
+
.map(toToolInfo)
|
|
86
|
+
.filter((tool) => connectionAllowsTool(connection, tool.name));
|
|
83
87
|
}));
|
|
84
88
|
});
|
|
85
89
|
}
|
|
@@ -106,19 +110,26 @@ export class McpHost {
|
|
|
106
110
|
return {
|
|
107
111
|
listTools: () => withFreshClient((client) => __awaiter(this, void 0, void 0, function* () {
|
|
108
112
|
const listed = yield client.listTools();
|
|
109
|
-
return listed.tools
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const result = yield client.callTool({
|
|
113
|
-
name: toolName,
|
|
114
|
-
arguments: args,
|
|
115
|
-
});
|
|
116
|
-
return throwIfCallNeedsAuth(connection.name, normalizeCallResult(result));
|
|
113
|
+
return listed.tools
|
|
114
|
+
.map(toToolInfo)
|
|
115
|
+
.filter((tool) => connectionAllowsTool(connection, tool.name));
|
|
117
116
|
})),
|
|
117
|
+
callTool: (toolName, args = {}) => {
|
|
118
|
+
assertConnectionAllowsTool(connection, toolName);
|
|
119
|
+
return withFreshClient((client) => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const result = yield client.callTool({
|
|
121
|
+
name: toolName,
|
|
122
|
+
arguments: args,
|
|
123
|
+
});
|
|
124
|
+
return throwIfCallNeedsAuth(connection.name, normalizeCallResult(result));
|
|
125
|
+
}));
|
|
126
|
+
},
|
|
118
127
|
};
|
|
119
128
|
}
|
|
120
129
|
callTool(connectionName_1, toolName_1) {
|
|
121
130
|
return __awaiter(this, arguments, void 0, function* (connectionName, toolName, args = {}) {
|
|
131
|
+
const connection = this.requireConnection(connectionName);
|
|
132
|
+
assertConnectionAllowsTool(connection, toolName);
|
|
122
133
|
return this.withClient(connectionName, (client) => __awaiter(this, void 0, void 0, function* () {
|
|
123
134
|
const result = yield client.callTool({
|
|
124
135
|
name: toolName,
|
|
@@ -206,17 +217,26 @@ export class McpHost {
|
|
|
206
217
|
yield opened.close();
|
|
207
218
|
});
|
|
208
219
|
}
|
|
220
|
+
requireConnection(name) {
|
|
221
|
+
const connection = this.byName.get(name);
|
|
222
|
+
if (connection === undefined) {
|
|
223
|
+
const known = this.names().join(", ") || "(none)";
|
|
224
|
+
throw new Error(`Unknown MCP connection "${name}". Authored MCP connections: ${known}.`);
|
|
225
|
+
}
|
|
226
|
+
return connection;
|
|
227
|
+
}
|
|
209
228
|
connect(name) {
|
|
210
229
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
-
|
|
212
|
-
if (connection === undefined) {
|
|
213
|
-
const known = this.names().join(", ") || "(none)";
|
|
214
|
-
throw new Error(`Unknown MCP connection "${name}". Authored MCP connections: ${known}.`);
|
|
215
|
-
}
|
|
216
|
-
return openConnection(connection, this.oauthRedirectUrl);
|
|
230
|
+
return openConnection(this.requireConnection(name), this.oauthRedirectUrl);
|
|
217
231
|
});
|
|
218
232
|
}
|
|
219
233
|
}
|
|
234
|
+
function assertConnectionAllowsTool(connection, toolName) {
|
|
235
|
+
if (connectionAllowsTool(connection, toolName)) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
throw new Error(`MCP connection "${connection.name}" does not allow tool "${toolName}".`);
|
|
239
|
+
}
|
|
220
240
|
/** Exported for unit tests. */
|
|
221
241
|
export function isStaleMcpSessionError(error) {
|
|
222
242
|
if (!(error instanceof Error)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-comments.d.ts","sourceRoot":"","sources":["../../src/internal/review-comments.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"review-comments.d.ts","sourceRoot":"","sources":["../../src/internal/review-comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -347,8 +347,8 @@ export function fetchGithubSelfLogin(github, args) {
|
|
|
347
347
|
* position a review finding can be pinned to).
|
|
348
348
|
*/
|
|
349
349
|
export function listedCommentFromOriginComment(comment) {
|
|
350
|
-
var _a, _b, _c, _d;
|
|
351
|
-
var
|
|
350
|
+
var _a, _b, _c, _d, _e;
|
|
351
|
+
var _f, _g;
|
|
352
352
|
const thread = comment.thread;
|
|
353
353
|
if (typeof comment.id !== "string" ||
|
|
354
354
|
comment.id === "" ||
|
|
@@ -368,13 +368,13 @@ export function listedCommentFromOriginComment(comment) {
|
|
|
368
368
|
: startLine;
|
|
369
369
|
const commitSha = (_a = thread.version) === null || _a === void 0 ? void 0 : _a.headSha;
|
|
370
370
|
const author = comment.author;
|
|
371
|
-
const authorLogin = (
|
|
371
|
+
const authorLogin = (_g = (_f = (_b = author === null || author === void 0 ? void 0 : author.app) === null || _b === void 0 ? void 0 : _b.displayName) !== null && _f !== void 0 ? _f : (_c = author === null || author === void 0 ? void 0 : author.app) === null || _c === void 0 ? void 0 : _c.id) !== null && _g !== void 0 ? _g : (_d = author === null || author === void 0 ? void 0 : author.user) === null || _d === void 0 ? void 0 : _d.email;
|
|
372
372
|
// App and service-account actors are machine identities; only a `user`
|
|
373
373
|
// actor is a human PR participant.
|
|
374
374
|
const authorIsBot = author === undefined
|
|
375
375
|
? undefined
|
|
376
376
|
: author.app !== undefined || author.serviceAccount !== undefined;
|
|
377
|
-
const authorAppId = (
|
|
377
|
+
const authorAppId = (_e = author === null || author === void 0 ? void 0 : author.app) === null || _e === void 0 ? void 0 : _e.id;
|
|
378
378
|
return Object.assign(Object.assign(Object.assign(Object.assign({ commentId: comment.id, threadId: thread.id, resolved: typeof thread.resolvedAt === "string" && thread.resolvedAt !== "", file: thread.path, startLine,
|
|
379
379
|
endLine, body: comment.body }, (typeof commitSha === "string" && commitSha !== "" ? { commitSha } : {})), (typeof authorLogin === "string" && authorLogin !== ""
|
|
380
380
|
? { authorLogin }
|
|
@@ -8,6 +8,7 @@ import type { AgentProject, AgentServeHandle, ServeOptions } from "../types.js";
|
|
|
8
8
|
import type { McpOauthSecretsTarget } from "./mcp-oauth-persist.js";
|
|
9
9
|
import { type AgentRunner } from "./sdk-runner.js";
|
|
10
10
|
import { selectSessionRunLogStore } from "./session-run-log.js";
|
|
11
|
+
import { selectStartLogStore } from "./start-log-store.js";
|
|
11
12
|
/** One agent to serve: its slug (empty for single-agent mode) and project. */
|
|
12
13
|
export interface AgentMount {
|
|
13
14
|
slug: string;
|
|
@@ -21,6 +22,8 @@ export interface StartServerInternalOptions {
|
|
|
21
22
|
mcpOauthSecrets?: McpOauthSecretsTarget;
|
|
22
23
|
/** Test seam: persist hosted-execution run logs without a live store. */
|
|
23
24
|
sessionRunLog?: ReturnType<typeof selectSessionRunLogStore>;
|
|
25
|
+
/** Test seam: persist the engine start.log tee without a live store. */
|
|
26
|
+
startLogStore?: ReturnType<typeof selectStartLogStore>;
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
29
|
* Start an HTTP server hosting one or more agents. A single agent with an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoCH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoCH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;AAyFrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAyCpE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAWpE,OAAO,EAEL,wBAAwB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAsB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB/E,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACvB;AAmCD,6EAA6E;AAC7E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,yEAAyE;IACzE,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAC5D,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,YAAY,GAAG,0BAA+B,GACtD,OAAO,CAAC,gBAAgB,CAAC,CA2gC3B"}
|
package/dist/internal/server.js
CHANGED
|
@@ -48,7 +48,7 @@ import { CursorAccountMcpBridge, collectCursorAccountConnections, cursorAccountM
|
|
|
48
48
|
import { CursorBackendClient } from "./cursor/backend-client.js";
|
|
49
49
|
import { cursorBackendUrl, cursorExternalApiUrl, resolveApiKey, resolveApiKeySync, SIGN_IN_HINT, } from "./cursor/credentials.js";
|
|
50
50
|
import { CursorGithubCredentialProvider } from "./cursor/github-credentials.js";
|
|
51
|
-
import { DeploymentEventRelay, fanOutDeploymentEvent, resolveDeploymentSubscriptions, } from "./cursor-deployment-relay.js";
|
|
51
|
+
import { DeploymentEventRelay, fanOutDeploymentEvent, mergeResolvedSubscriptions, resolveDeploymentSubscriptions, } from "./cursor-deployment-relay.js";
|
|
52
52
|
import { CursorEventRelay, formatCursorScmDispatchOutcome, formatCursorScmEventLog, scmEventToGitHubPayload, scmMetadataToOriginPayload, } from "./cursor-event-relay.js";
|
|
53
53
|
import { AGENT_SERVE_GENERATION_ENV_VAR } from "./cursor-relay-core.js";
|
|
54
54
|
import { buildAgentDeployManifest } from "./deploy-manifest.js";
|
|
@@ -60,6 +60,7 @@ import { collectGitHubTriggerTargets, collectOriginTriggerTargets, handleAgentSe
|
|
|
60
60
|
import { createHostPlatforms, warmupHostGitHubAuth } from "./host-platforms.js";
|
|
61
61
|
import { registerHostedDeliveryRoute } from "./hosted-delivery.js";
|
|
62
62
|
import { hostedErrorStackSnippet } from "./hosted-execution-diag.js";
|
|
63
|
+
import { flushHostedExecutionProcessDeath } from "./hosted-execution-flush.js";
|
|
63
64
|
import { buildHttpChannelRoutes, errorResponse, jsonResponse, readJsonObject, requireSessionOwner, } from "./http-channel.js";
|
|
64
65
|
import { validateToolInput } from "./json-schema.js";
|
|
65
66
|
import { DEFAULT_SERVE_PORT, listenHttpServer } from "./listen-port.js";
|
|
@@ -87,6 +88,7 @@ import { CursorSdkRunner } from "./sdk-runner.js";
|
|
|
87
88
|
import { InvalidContinuationTokenError, SessionAuthError, SessionBusyError, SessionEngine, ToolInputError, ToolNotDirectlyCallableError, UnknownToolError, WorkspaceUnavailableError, } from "./session-engine.js";
|
|
88
89
|
import { registerSessionRunFatalFlush, selectSessionRunLogStore, unregisterSessionRunFatalFlush, } from "./session-run-log.js";
|
|
89
90
|
import { sessionUrlsForRequest } from "./session-urls.js";
|
|
91
|
+
import { flushLocalStartLog, selectStartLogStore } from "./start-log-store.js";
|
|
90
92
|
import { catalogDetailEntry, catalogListEntry } from "./tool-catalog.js";
|
|
91
93
|
function memoryHealthFields(engines) {
|
|
92
94
|
return collectMemoryHealthFields({
|
|
@@ -120,8 +122,8 @@ function isV2Project(project) {
|
|
|
120
122
|
export function startServer(mounts_1) {
|
|
121
123
|
return __awaiter(this, arguments, void 0, function* (mounts, options = {}) {
|
|
122
124
|
var _a, _b, _c, _d, _e, _f;
|
|
123
|
-
var _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
|
|
124
|
-
var
|
|
125
|
+
var _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
|
|
126
|
+
var _6;
|
|
125
127
|
if (mounts.length === 0) {
|
|
126
128
|
throw new Error("startServer requires at least one agent mount");
|
|
127
129
|
}
|
|
@@ -143,7 +145,7 @@ export function startServer(mounts_1) {
|
|
|
143
145
|
// CURSOR_AGENTKIT_VERSION is still the env the SDK reads when building
|
|
144
146
|
// its client-version header (wire prefix remains `agentkit-`). Setting it
|
|
145
147
|
// here makes the internal-only agentkit_enabled gate apply to every turn.
|
|
146
|
-
(_m = (
|
|
148
|
+
(_m = (_6 = process.env).CURSOR_AGENTKIT_VERSION) !== null && _m !== void 0 ? _m : (_6.CURSOR_AGENTKIT_VERSION = packageVersion());
|
|
147
149
|
const authoredOtel = pickAuthoredOtel(mounts.map((m) => ({
|
|
148
150
|
slug: m.slug,
|
|
149
151
|
name: m.project.name,
|
|
@@ -339,10 +341,34 @@ export function startServer(mounts_1) {
|
|
|
339
341
|
snapshotLogs: () => logRing.since(),
|
|
340
342
|
})
|
|
341
343
|
: undefined);
|
|
344
|
+
const startLogStore = (_u = options.startLogStore) !== null && _u !== void 0 ? _u : (mounts.length === 1 && mounts[0] !== undefined
|
|
345
|
+
? selectStartLogStore({
|
|
346
|
+
project: mounts[0].project,
|
|
347
|
+
logger,
|
|
348
|
+
})
|
|
349
|
+
: undefined);
|
|
350
|
+
// The running claim stamps this before the turn; process-death flush
|
|
351
|
+
// reuses it so the tee snapshot lands under the same ses_ key.
|
|
352
|
+
let lastStartLogId;
|
|
353
|
+
const flushStartLog = (startLogId) => __awaiter(this, void 0, void 0, function* () {
|
|
354
|
+
lastStartLogId = startLogId;
|
|
355
|
+
if (startLogStore === undefined) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
yield flushLocalStartLog({ store: startLogStore, startLogId });
|
|
359
|
+
});
|
|
342
360
|
if (sessionRunLog !== undefined) {
|
|
343
|
-
registerSessionRunFatalFlush((error) =>
|
|
361
|
+
registerSessionRunFatalFlush((error) => __awaiter(this, void 0, void 0, function* () {
|
|
362
|
+
yield flushHostedExecutionProcessDeath({
|
|
363
|
+
flushProcessDeath: (reason, flushError) => sessionRunLog.flushProcessDeath(reason, flushError),
|
|
364
|
+
flushStartLog,
|
|
365
|
+
startLogId: lastStartLogId,
|
|
366
|
+
reason: "uncaught_exception",
|
|
367
|
+
error,
|
|
368
|
+
});
|
|
369
|
+
}));
|
|
344
370
|
}
|
|
345
|
-
const sdkRunner = (
|
|
371
|
+
const sdkRunner = (_v = options.runner) !== null && _v !== void 0 ? _v : new CursorSdkRunner(Object.assign(Object.assign(Object.assign({}, (options.apiKey === undefined || options.apiKey.trim() === ""
|
|
346
372
|
? {}
|
|
347
373
|
: { apiKey: options.apiKey })), (conversationMirror === undefined ? {} : { conversationMirror })), { logger }));
|
|
348
374
|
// Grok Bot turns run on Cursor's hosted Grok Bot (Sand) harness through
|
|
@@ -407,8 +433,8 @@ export function startServer(mounts_1) {
|
|
|
407
433
|
}
|
|
408
434
|
accountBridge = new CursorAccountMcpBridge({
|
|
409
435
|
client: new CursorBackendClient({
|
|
410
|
-
backendUrl: (
|
|
411
|
-
apiKey: (
|
|
436
|
+
backendUrl: (_w = accountKey === null || accountKey === void 0 ? void 0 : accountKey.backendUrl) !== null && _w !== void 0 ? _w : cursorBackendUrl(),
|
|
437
|
+
apiKey: (_x = accountKey === null || accountKey === void 0 ? void 0 : accountKey.apiKey) !== null && _x !== void 0 ? _x : "",
|
|
412
438
|
getApiKey: () => { var _a; return (_a = liveCursorApiKey()) !== null && _a !== void 0 ? _a : ""; },
|
|
413
439
|
logger,
|
|
414
440
|
}),
|
|
@@ -420,7 +446,7 @@ export function startServer(mounts_1) {
|
|
|
420
446
|
}
|
|
421
447
|
for (const { slug, project } of mounts) {
|
|
422
448
|
// Each agent gets an isolated state root so their sessions never mix.
|
|
423
|
-
const baseStateRoot = (
|
|
449
|
+
const baseStateRoot = (_y = options.stateRoot) !== null && _y !== void 0 ? _y : join(project.rootDir, ".agent-serve");
|
|
424
450
|
const stateRoot = slug === "" ? baseStateRoot : join(baseStateRoot, slug);
|
|
425
451
|
const otelCollector = otelRuntime === undefined
|
|
426
452
|
? undefined
|
|
@@ -508,7 +534,8 @@ export function startServer(mounts_1) {
|
|
|
508
534
|
noControlPlane,
|
|
509
535
|
multi,
|
|
510
536
|
logger,
|
|
511
|
-
logRing, diagStateRoot: baseStateRoot, sessionRunLog
|
|
537
|
+
logRing, diagStateRoot: baseStateRoot, sessionRunLog,
|
|
538
|
+
flushStartLog }, (options.authToken === undefined
|
|
512
539
|
? {}
|
|
513
540
|
: { authToken: options.authToken })), (options.allowAnonymous === true ? { allowAnonymous: true } : {})), (accountRefs !== undefined && accountBridge !== undefined
|
|
514
541
|
? { accountBridge, accountRefs }
|
|
@@ -543,7 +570,7 @@ export function startServer(mounts_1) {
|
|
|
543
570
|
}
|
|
544
571
|
catch (error) {
|
|
545
572
|
logger(`[agent-sdk] channel "${channel.id}" onStart failed: ${error instanceof Error
|
|
546
|
-
? ((
|
|
573
|
+
? ((_z = error.stack) !== null && _z !== void 0 ? _z : error.message)
|
|
547
574
|
: String(error)}`);
|
|
548
575
|
}
|
|
549
576
|
}
|
|
@@ -667,8 +694,8 @@ export function startServer(mounts_1) {
|
|
|
667
694
|
const routeContinuation = localControlPlaneRoute(runtimes);
|
|
668
695
|
const cursorEventsCommon = {
|
|
669
696
|
config: effectiveCursorEvents,
|
|
670
|
-
githubRepos: (
|
|
671
|
-
originRepos: (
|
|
697
|
+
githubRepos: (_0 = (_e = cursorGithubConfig.cursorEvents) === null || _e === void 0 ? void 0 : _e.repos) !== null && _0 !== void 0 ? _0 : [],
|
|
698
|
+
originRepos: (_1 = cursorOriginScope === null || cursorOriginScope === void 0 ? void 0 : cursorOriginScope.repos) !== null && _1 !== void 0 ? _1 : [],
|
|
672
699
|
stateRoot: options.stateRoot,
|
|
673
700
|
auth: cursorEventsAuth,
|
|
674
701
|
logger,
|
|
@@ -697,9 +724,9 @@ export function startServer(mounts_1) {
|
|
|
697
724
|
const server = createServer((req, res) => {
|
|
698
725
|
void instrumentHttp(otelRuntime, req, res, () => handleRequest(router, req, res, logger));
|
|
699
726
|
});
|
|
700
|
-
const host = (
|
|
727
|
+
const host = (_2 = options.host) !== null && _2 !== void 0 ? _2 : "127.0.0.1";
|
|
701
728
|
const portWasExplicit = options.port !== undefined;
|
|
702
|
-
const requestedPort = (
|
|
729
|
+
const requestedPort = (_3 = options.port) !== null && _3 !== void 0 ? _3 : DEFAULT_SERVE_PORT;
|
|
703
730
|
let boundPort;
|
|
704
731
|
try {
|
|
705
732
|
boundPort = yield listenHttpServer({
|
|
@@ -721,7 +748,7 @@ export function startServer(mounts_1) {
|
|
|
721
748
|
const address = server.address();
|
|
722
749
|
const displayHost = host === "0.0.0.0" || host === "::" ? "127.0.0.1" : host;
|
|
723
750
|
const url = `http://${displayHost}:${boundPort}`;
|
|
724
|
-
const oauthOrigin = ((
|
|
751
|
+
const oauthOrigin = ((_4 = options.publicUrl) !== null && _4 !== void 0 ? _4 : url).replace(/\/$/, "");
|
|
725
752
|
// Resolve peer + Cursor account MCP connections now that the listen port is
|
|
726
753
|
// known (see resolved-connections.ts for the URL/runtime rules).
|
|
727
754
|
for (const runtime of runtimes) {
|
|
@@ -757,7 +784,7 @@ export function startServer(mounts_1) {
|
|
|
757
784
|
runtime.project.agent.cloud !== undefined;
|
|
758
785
|
if ((hasServerTools || bridgeableNames.length > 0) && cloudCapable) {
|
|
759
786
|
const basePath = runtime.slug === "" ? "" : `/${runtime.slug}`;
|
|
760
|
-
const publicToolsUrl = (
|
|
787
|
+
const publicToolsUrl = (_5 = options.cloudToolsUrl) !== null && _5 !== void 0 ? _5 : (options.publicUrl === undefined
|
|
761
788
|
? undefined
|
|
762
789
|
: `${options.publicUrl.replace(/\/$/, "")}${basePath}${TOOL_MCP_ENDPOINT_PATH}`);
|
|
763
790
|
if (publicToolsUrl === undefined) {
|
|
@@ -878,7 +905,12 @@ export function startServer(mounts_1) {
|
|
|
878
905
|
var _a;
|
|
879
906
|
var _b;
|
|
880
907
|
if (sessionRunLog !== undefined) {
|
|
881
|
-
yield
|
|
908
|
+
yield flushHostedExecutionProcessDeath({
|
|
909
|
+
flushProcessDeath: (reason) => sessionRunLog.flushProcessDeath(reason),
|
|
910
|
+
flushStartLog,
|
|
911
|
+
startLogId: lastStartLogId,
|
|
912
|
+
reason: "process_exit",
|
|
913
|
+
});
|
|
882
914
|
unregisterSessionRunFatalFlush();
|
|
883
915
|
}
|
|
884
916
|
playgroundDev === null || playgroundDev === void 0 ? void 0 : playgroundDev.stop();
|
|
@@ -926,7 +958,7 @@ export function startServer(mounts_1) {
|
|
|
926
958
|
function mountAgentRoutes(router, runtime, args) {
|
|
927
959
|
var _a, _b, _c;
|
|
928
960
|
const { slug, project, engine, scheduleRunner, reminderRunner } = runtime;
|
|
929
|
-
const { dev, playground, noControlPlane, multi, logger, logRing, sessionRunLog, } = args;
|
|
961
|
+
const { dev, playground, noControlPlane, multi, logger, logRing, sessionRunLog, flushStartLog, } = args;
|
|
930
962
|
// "" (single) -> "/v1/..."; "my-agent" (multi) -> "/my-agent/v1/...".
|
|
931
963
|
const base = slug === "" ? "" : `/${slug}`;
|
|
932
964
|
// The Cursor account MCP bridge for this mount's account MCP connections:
|
|
@@ -976,7 +1008,12 @@ function mountAgentRoutes(router, runtime, args) {
|
|
|
976
1008
|
? {}
|
|
977
1009
|
: { stateRoot: args.diagStateRoot })), (sessionRunLog === undefined
|
|
978
1010
|
? {}
|
|
979
|
-
: {
|
|
1011
|
+
: {
|
|
1012
|
+
persistSessionRun: (document) => __awaiter(this, void 0, void 0, function* () {
|
|
1013
|
+
yield sessionRunLog.persist(document);
|
|
1014
|
+
}),
|
|
1015
|
+
flushStartLog,
|
|
1016
|
+
})), { snapshotLogs: () => logRing.since() }));
|
|
980
1017
|
}
|
|
981
1018
|
// Playground lists/opens Slack (and other channel) sessions across
|
|
982
1019
|
// principals when `--dev` (loopback) or `--allow-anonymous` (trusted
|
|
@@ -1062,43 +1099,6 @@ function mountAgentRoutes(router, runtime, args) {
|
|
|
1062
1099
|
});
|
|
1063
1100
|
},
|
|
1064
1101
|
});
|
|
1065
|
-
// v2 only: one session-level hosted-execution log on the framework
|
|
1066
|
-
// store. Distinct from GET /v1/logs (process-wide ring). Keyed by the
|
|
1067
|
-
// factory session public id so an execute_throw that never minted a
|
|
1068
|
-
// July session is still readable after the pod parks.
|
|
1069
|
-
if (isV2Project(project) && sessionRunLog !== undefined) {
|
|
1070
|
-
router.add({
|
|
1071
|
-
method: "GET",
|
|
1072
|
-
pattern: `${base}/v1/session/:sessionId/runs`,
|
|
1073
|
-
auth: httpAuth,
|
|
1074
|
-
handler: (_request, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
1075
|
-
var _a, _b, _c;
|
|
1076
|
-
const sessionId = (_a = ctx.params.sessionId) !== null && _a !== void 0 ? _a : "";
|
|
1077
|
-
if (sessionId.length === 0 || sessionId.includes("/")) {
|
|
1078
|
-
return errorResponse(400, "invalid_request", "Expected a session id.");
|
|
1079
|
-
}
|
|
1080
|
-
const record = yield engine.getOrRestoreSession(sessionId);
|
|
1081
|
-
if (record === undefined) {
|
|
1082
|
-
return errorResponse(404, "session_not_found", `Unknown session ${sessionId}.`);
|
|
1083
|
-
}
|
|
1084
|
-
const ownership = requireSessionOwner(record, ctx.auth, {
|
|
1085
|
-
relax: relaxSessionReadAuth,
|
|
1086
|
-
beyondLoopback: relaxSessionReadAuthBeyondLoopback,
|
|
1087
|
-
requestIp: ctx.requestIp,
|
|
1088
|
-
});
|
|
1089
|
-
if (ownership !== undefined) {
|
|
1090
|
-
return ownership;
|
|
1091
|
-
}
|
|
1092
|
-
const document = yield sessionRunLog.read(sessionId);
|
|
1093
|
-
return jsonResponse({
|
|
1094
|
-
sessionId,
|
|
1095
|
-
updatedAt: document === null || document === void 0 ? void 0 : document.updatedAt,
|
|
1096
|
-
lastFailure: (_b = document === null || document === void 0 ? void 0 : document.lastFailure) !== null && _b !== void 0 ? _b : null,
|
|
1097
|
-
executions: (_c = document === null || document === void 0 ? void 0 : document.executions) !== null && _c !== void 0 ? _c : [],
|
|
1098
|
-
});
|
|
1099
|
-
}),
|
|
1100
|
-
});
|
|
1101
|
-
}
|
|
1102
1102
|
router.add({
|
|
1103
1103
|
method: "GET",
|
|
1104
1104
|
pattern: `${base}/v1/sessions`,
|
|
@@ -1998,8 +1998,8 @@ function buildAgentIndexEntries(runtimes) {
|
|
|
1998
1998
|
};
|
|
1999
1999
|
});
|
|
2000
2000
|
}
|
|
2001
|
-
/** Every mounted `deploymentsChannel
|
|
2002
|
-
function collectCursorDeploymentTargets(runtimes
|
|
2001
|
+
/** Every mounted `deploymentsChannel`. Subscriptions are re-resolved live. */
|
|
2002
|
+
function collectCursorDeploymentTargets(runtimes) {
|
|
2003
2003
|
const targets = [];
|
|
2004
2004
|
for (const runtime of runtimes) {
|
|
2005
2005
|
for (const channel of runtime.project.channels) {
|
|
@@ -2007,18 +2007,18 @@ function collectCursorDeploymentTargets(runtimes, skipped) {
|
|
|
2007
2007
|
if (options === undefined) {
|
|
2008
2008
|
continue;
|
|
2009
2009
|
}
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
continue;
|
|
2016
|
-
}
|
|
2017
|
-
targets.push({ runtime, channelId: channel.id, options, subscriptions });
|
|
2010
|
+
targets.push({
|
|
2011
|
+
runtime,
|
|
2012
|
+
channelId: channel.id,
|
|
2013
|
+
options,
|
|
2014
|
+
});
|
|
2018
2015
|
}
|
|
2019
2016
|
}
|
|
2020
2017
|
return targets;
|
|
2021
2018
|
}
|
|
2019
|
+
function liveDeploymentSubscriptionUnion(targets) {
|
|
2020
|
+
return mergeResolvedSubscriptions(targets.map((target) => resolveDeploymentSubscriptions(target.options)));
|
|
2021
|
+
}
|
|
2022
2022
|
/**
|
|
2023
2023
|
* Cursor deployment-events relay: automatic when a mounted agent authored
|
|
2024
2024
|
* `deploymentsChannel({ ... })`. One relay per process reads
|
|
@@ -2029,11 +2029,7 @@ function collectCursorDeploymentTargets(runtimes, skipped) {
|
|
|
2029
2029
|
function startCursorDeploymentRelay(input) {
|
|
2030
2030
|
var _a;
|
|
2031
2031
|
const { options, runtimes, accountKey, logger } = input;
|
|
2032
|
-
const
|
|
2033
|
-
const targets = collectCursorDeploymentTargets(runtimes, skipped);
|
|
2034
|
-
if (skipped.length > 0) {
|
|
2035
|
-
logger(`[agent-sdk] deployment-events: no deploy sources declared on ${skipped.join(", ")}; those channels receive nothing`);
|
|
2036
|
-
}
|
|
2032
|
+
const targets = collectCursorDeploymentTargets(runtimes);
|
|
2037
2033
|
if (targets.length === 0) {
|
|
2038
2034
|
return undefined;
|
|
2039
2035
|
}
|
|
@@ -2044,35 +2040,14 @@ function startCursorDeploymentRelay(input) {
|
|
|
2044
2040
|
}
|
|
2045
2041
|
throw new Error(`This project has channels subscribed to deployment events (deploymentsChannel({ deploySourceUris })) but the host is not signed in to Cursor. ${SIGN_IN_HINT}`);
|
|
2046
2042
|
}
|
|
2047
|
-
// Union
|
|
2048
|
-
//
|
|
2049
|
-
//
|
|
2050
|
-
const
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
bySource.set(subscription.deploySourceUri, {
|
|
2056
|
-
deploySourceUri: subscription.deploySourceUri,
|
|
2057
|
-
environments: [...subscription.environments],
|
|
2058
|
-
events: new Set(subscription.events),
|
|
2059
|
-
});
|
|
2060
|
-
continue;
|
|
2061
|
-
}
|
|
2062
|
-
for (const event of subscription.events)
|
|
2063
|
-
existing.events.add(event);
|
|
2064
|
-
// An empty environment list means "every environment", so it absorbs.
|
|
2065
|
-
existing.environments =
|
|
2066
|
-
existing.environments.length === 0 ||
|
|
2067
|
-
subscription.environments.length === 0
|
|
2068
|
-
? []
|
|
2069
|
-
: [
|
|
2070
|
-
...new Set([
|
|
2071
|
-
...existing.environments,
|
|
2072
|
-
...subscription.environments,
|
|
2073
|
-
]),
|
|
2074
|
-
];
|
|
2075
|
-
}
|
|
2043
|
+
// Union is re-resolved on each heartbeat and fan-out so a channel that
|
|
2044
|
+
// refreshes `deploySourceUris` after start (Change Monitor lists the
|
|
2045
|
+
// team's sources every 10 minutes) registers the new URIs.
|
|
2046
|
+
const initial = liveDeploymentSubscriptionUnion(targets);
|
|
2047
|
+
if (initial.length === 0) {
|
|
2048
|
+
logger(`[agent-sdk] deployment-events: no deploy sources yet on ${targets
|
|
2049
|
+
.map((target) => `${target.runtime.slug || target.runtime.project.name}/${target.channelId}`)
|
|
2050
|
+
.join(", ")}; the relay will register when a channel lists some`);
|
|
2076
2051
|
}
|
|
2077
2052
|
// Same host split as scm-events: `/v0/deployment-events/*` is on
|
|
2078
2053
|
// api.cursor.com, not api2.
|
|
@@ -2081,7 +2056,7 @@ function startCursorDeploymentRelay(input) {
|
|
|
2081
2056
|
baseUrl: cursorExternalApiUrl(),
|
|
2082
2057
|
apiKey: accountKey.apiKey,
|
|
2083
2058
|
stateDir: join(baseStateRoot, "deployment-events"),
|
|
2084
|
-
subscriptions:
|
|
2059
|
+
subscriptions: () => liveDeploymentSubscriptionUnion(targets),
|
|
2085
2060
|
logger,
|
|
2086
2061
|
dispatch: (event) => __awaiter(this, void 0, void 0, function* () {
|
|
2087
2062
|
return fanOutDeploymentEvent({
|
|
@@ -2089,7 +2064,7 @@ function startCursorDeploymentRelay(input) {
|
|
|
2089
2064
|
logger,
|
|
2090
2065
|
targets: targets.map((target) => ({
|
|
2091
2066
|
name: `${target.runtime.slug || target.runtime.project.name}/${target.channelId}`,
|
|
2092
|
-
subscriptions: target.
|
|
2067
|
+
subscriptions: resolveDeploymentSubscriptions(target.options),
|
|
2093
2068
|
deliver: (delivered) => dispatchDeploymentEvent({
|
|
2094
2069
|
options: target.options,
|
|
2095
2070
|
event: delivered,
|
|
@@ -2103,7 +2078,7 @@ function startCursorDeploymentRelay(input) {
|
|
|
2103
2078
|
}),
|
|
2104
2079
|
});
|
|
2105
2080
|
relay.start();
|
|
2106
|
-
logger(`[agent-sdk] deployment-events: relaying ${
|
|
2081
|
+
logger(`[agent-sdk] deployment-events: relaying ${initial.length} deploy-source subscription(s) to ${targets.length} channel(s)`);
|
|
2107
2082
|
return relay;
|
|
2108
2083
|
}
|
|
2109
2084
|
function buildChannelHandlerArgs(input) {
|
|
@@ -244,6 +244,7 @@ export declare class SessionEngine {
|
|
|
244
244
|
* (`ctx.host.mcp`, always loopback).
|
|
245
245
|
*/
|
|
246
246
|
setResolvedConnections(connections: EngineResolvedConnection[]): void;
|
|
247
|
+
private authoredConnection;
|
|
247
248
|
setCloudServerToolsConnection(connection: ConnectionTransport): void;
|
|
248
249
|
setMcpOauthCallbackUrl(url: string): void;
|
|
249
250
|
setCursorAccountAuthProbe(probe: (connection: string) => Promise<string | undefined>): void;
|
|
@@ -549,7 +550,6 @@ export declare class SessionEngine {
|
|
|
549
550
|
private withMcpAuth;
|
|
550
551
|
private parkAndRetryMcp;
|
|
551
552
|
private persistHostedMcpOauth;
|
|
552
|
-
private authoredConnection;
|
|
553
553
|
private mintAuthUrl;
|
|
554
554
|
private parkForAuth;
|
|
555
555
|
private clearPendingAuths;
|
|
@@ -624,19 +624,21 @@ export declare class SessionEngine {
|
|
|
624
624
|
}>;
|
|
625
625
|
callTool(toolName: string, input?: unknown, options?: CallToolOptions): Promise<ToolCallOutcome>;
|
|
626
626
|
/**
|
|
627
|
-
* Whether
|
|
627
|
+
* Whether the host answers a bridged MCP call, for the cloud host bridge —
|
|
628
628
|
* the one tool path that does not reach {@link executeServerTool}, because
|
|
629
629
|
* it forwards to `host.mcp` instead of invoking a tool body.
|
|
630
630
|
*
|
|
631
|
-
* A
|
|
632
|
-
*
|
|
633
|
-
*
|
|
634
|
-
*
|
|
631
|
+
* A frozen session refuses forward-looking time args here even when it is
|
|
632
|
+
* not a dry run. A bridged tool carries no `defineTool`, so it declares no
|
|
633
|
+
* effect, and the policy reads an undeclared tool as a write. In a dry run
|
|
634
|
+
* that answers bridged reads too; resolving effects from a server's own
|
|
635
|
+
* listing is the next unit's work.
|
|
635
636
|
*/
|
|
636
637
|
bridgedCallAnswer(args: {
|
|
637
638
|
sessionId: string;
|
|
638
639
|
connectionName: string;
|
|
639
640
|
toolName: string;
|
|
641
|
+
input?: unknown;
|
|
640
642
|
}): Promise<{
|
|
641
643
|
answered: true;
|
|
642
644
|
result: SDKCustomToolResult;
|
|
@@ -648,7 +650,7 @@ export declare class SessionEngine {
|
|
|
648
650
|
* undefined when the tool is unlisted, unannotated, or the listing fails —
|
|
649
651
|
* all of which the policy reads as unclassified, the refusing state.
|
|
650
652
|
*/
|
|
651
|
-
private
|
|
653
|
+
private bridgedToolInfo;
|
|
652
654
|
private appendEvent;
|
|
653
655
|
private queueDispatch;
|
|
654
656
|
private dispatchEvent;
|