@cursor/july 0.1.29 → 0.1.31
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 +1 -1
- package/README.md +10 -5
- package/dist/bin/agent-serve.js +4 -4
- package/dist/channels/github/index.d.ts +1 -1
- package/dist/channels/github/index.js +1 -1
- package/dist/channels/slack/bot-mentions.d.ts +1 -1
- package/dist/channels/slack/bot-mentions.d.ts.map +1 -1
- package/dist/channels/slack/bot-mentions.js +1 -1
- package/dist/channels/slack/eval-directive.js +1 -1
- package/dist/channels/slack/external-policy.d.ts +1 -1
- package/dist/channels/slack/external-policy.js +1 -1
- package/dist/channels/slack/log.d.ts +1 -1
- package/dist/channels/slack/log.js +1 -1
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/socket-mode.js +1 -1
- package/dist/docs/404.html +3 -3
- package/dist/docs/ab.html +11 -11
- package/dist/docs/assets/{ab.md.BMCZ6Hd7.js → ab.md.DAQoJ-up.js} +6 -6
- package/dist/docs/assets/{ab.md.BMCZ6Hd7.lean.js → ab.md.DAQoJ-up.lean.js} +1 -1
- package/dist/docs/assets/{app.QdunVQKg.js → app.DigB_9cQ.js} +1 -1
- package/dist/docs/assets/building-with-agents.md.CnHqvYDd.js +13 -0
- package/dist/docs/assets/{building-with-agents.md.CJCtZCyi.lean.js → building-with-agents.md.CnHqvYDd.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CnFFl07y.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.B6EpUXYf.js → VPLocalSearchBox.BCMX25Bv.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BOTJVqh7.js → theme.BDDWeELx.js} +2 -2
- package/dist/docs/assets/concepts.md.DFaQEFkA.js +4 -0
- package/dist/docs/assets/concepts.md.DFaQEFkA.lean.js +1 -0
- package/dist/docs/assets/deployment.md.9MYBuKM1.js +55 -0
- package/dist/docs/assets/deployment.md.9MYBuKM1.lean.js +1 -0
- package/dist/docs/assets/{evals.md.DYOjkRCX.js → evals.md.BIUoVZ6X.js} +13 -13
- package/dist/docs/assets/evals.md.BIUoVZ6X.lean.js +1 -0
- package/dist/docs/assets/{example-agents_approval-buddy.md.DFGBYLcc.js → example-agents_approval-buddy.md.BhEfleVx.js} +4 -4
- package/dist/docs/assets/{example-agents_approval-buddy.md.DFGBYLcc.lean.js → example-agents_approval-buddy.md.BhEfleVx.lean.js} +1 -1
- package/dist/docs/assets/example-agents_benny.md.2Et1qa8f.js +7 -0
- package/dist/docs/assets/{example-agents_bugbot.md.DelIdhxB.js → example-agents_bugbot.md.ByUexi5i.js} +5 -5
- package/dist/docs/assets/{example-agents_codebase-wiki.md.DC6sgwn0.js → example-agents_codebase-wiki.md.B4y-7ZVW.js} +6 -6
- package/dist/docs/assets/{example-agents_codebase-wiki.md.DC6sgwn0.lean.js → example-agents_codebase-wiki.md.B4y-7ZVW.lean.js} +1 -1
- package/dist/docs/assets/{example-agents_codeowners-review.md.Ku_tG2RY.js → example-agents_codeowners-review.md.D6ay4nvf.js} +6 -6
- package/dist/docs/assets/{example-agents_codeowners-review.md.Ku_tG2RY.lean.js → example-agents_codeowners-review.md.D6ay4nvf.lean.js} +1 -1
- package/dist/docs/assets/{example-agents_concierge.md.4rQTSMXt.js → example-agents_concierge.md.lL8rhYlj.js} +7 -7
- package/dist/docs/assets/{example-agents_fsd.md.CzgUrDfi.js → example-agents_fsd.md.DfNKQTHz.js} +5 -5
- package/dist/docs/assets/example-agents_index.md.DgGBwckv.js +2 -0
- package/dist/docs/assets/example-agents_index.md.DgGBwckv.lean.js +1 -0
- package/dist/docs/assets/{example-agents_knowledge-base.md.BPJiVueF.js → example-agents_knowledge-base.md.CzyZ2DCr.js} +5 -5
- package/dist/docs/assets/{example-agents_knowledge-base.md.BPJiVueF.lean.js → example-agents_knowledge-base.md.CzyZ2DCr.lean.js} +1 -1
- package/dist/docs/assets/example-agents_oncall.md.wFFXXEyW.js +10 -0
- package/dist/docs/assets/{example-agents_security-reviewer.md.Dhj_m7_B.js → example-agents_security-reviewer.md.Dkf1gyo6.js} +8 -8
- package/dist/docs/assets/example-agents_slack-agent.md.DvgvT4nn.js +5 -0
- package/dist/docs/assets/example-agents_weather-agent.md.Dmrcphhl.js +24 -0
- package/dist/docs/assets/example-agents_weather-agent.md.Dmrcphhl.lean.js +1 -0
- package/dist/docs/assets/{guides_agent-to-agent.md.Bpzgq2Pq.js → guides_agent-to-agent.md.Bmbxy-FA.js} +4 -4
- package/dist/docs/assets/guides_cloud-runtime.md.BZ2GA7Es.js +9 -0
- package/dist/docs/assets/{guides_github.md.DOOCpqsW.js → guides_github.md.R2QlpR75.js} +5 -5
- package/dist/docs/assets/{guides_human-in-the-loop.md.DlUqsp1S.js → guides_human-in-the-loop.md.BWvT7UqY.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.Dd8EgSem.js → guides_mcp-oauth.md.C7G7IykG.js} +5 -5
- package/dist/docs/assets/guides_mcp-oauth.md.C7G7IykG.lean.js +1 -0
- package/dist/docs/assets/guides_slack.md.zriQpU_9.js +47 -0
- package/dist/docs/assets/guides_slack.md.zriQpU_9.lean.js +1 -0
- package/dist/docs/assets/{guides_webhooks.md.wSOYas3X.js → guides_webhooks.md.DiAwSR42.js} +1 -1
- package/dist/docs/assets/{hillclimbing.md.DHNast08.js → hillclimbing.md.D9Y1_bYh.js} +1 -1
- package/dist/docs/assets/index.md.CZqbBJPB.js +20 -0
- package/dist/docs/assets/index.md.CZqbBJPB.lean.js +1 -0
- package/dist/docs/assets/{quickstart.md.BU6Iwi_9.js → quickstart.md.TnEXYgYW.js} +12 -12
- package/dist/docs/assets/{reference_agent-config.md.DrW2JUM8.js → reference_agent-config.md.kuN6-OxK.js} +1 -1
- package/dist/docs/assets/reference_cli.md.sD-IUWjg.js +73 -0
- package/dist/docs/assets/{reference_cli.md.ccoKOoXt.lean.js → reference_cli.md.sD-IUWjg.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.B9Q3TOve.js → reference_connections.md.DGqAsFXb.js} +3 -3
- package/dist/docs/assets/reference_http-api.md.CfVM_ICa.js +11 -0
- package/dist/docs/assets/{reference_project-layout.md.Bd_CKtNS.js → reference_project-layout.md.D8E6ZmHJ.js} +4 -4
- package/dist/docs/assets/{reference_project-layout.md.Bd_CKtNS.lean.js → reference_project-layout.md.D8E6ZmHJ.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.w_F2mXB6.js → reference_schedules.md.gmfYzf_I.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.DLd6mvbv.js → reference_sessions.md.C_ouF_uf.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.BRSDnTbN.js → reference_tools.md.BswAQM41.js} +3 -3
- package/dist/docs/assets/{scaffolding-agents.md.C3pTrmoE.js → scaffolding-agents.md.Bsr9Pwzu.js} +1 -1
- package/dist/docs/assets/{scaffolding-agents.md.C3pTrmoE.lean.js → scaffolding-agents.md.Bsr9Pwzu.lean.js} +1 -1
- package/dist/docs/assets/{storage.md.DRTdnFvd.js → storage.md.xZoiGM58.js} +3 -3
- package/dist/docs/assets/storage.md.xZoiGM58.lean.js +1 -0
- package/dist/docs/assets/troubleshooting.md.B5RVX_tL.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.CmQkmnzC.lean.js → troubleshooting.md.B5RVX_tL.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +12 -12
- package/dist/docs/concepts.html +6 -6
- package/dist/docs/deployment.html +32 -32
- package/dist/docs/evals.html +19 -19
- package/dist/docs/example-agents/approval-buddy.html +9 -9
- package/dist/docs/example-agents/benny.html +11 -11
- package/dist/docs/example-agents/bugbot.html +10 -10
- package/dist/docs/example-agents/codebase-wiki.html +11 -11
- package/dist/docs/example-agents/codeowners-review.html +11 -11
- package/dist/docs/example-agents/concierge.html +12 -12
- package/dist/docs/example-agents/fsd.html +10 -10
- package/dist/docs/example-agents/index.html +7 -7
- package/dist/docs/example-agents/knowledge-base.html +10 -10
- package/dist/docs/example-agents/oncall.html +10 -10
- package/dist/docs/example-agents/security-reviewer.html +13 -13
- package/dist/docs/example-agents/slack-agent.html +10 -10
- package/dist/docs/example-agents/weather-agent.html +16 -16
- package/dist/docs/guides/agent-to-agent.html +9 -9
- package/dist/docs/guides/cloud-runtime.html +7 -7
- package/dist/docs/guides/github.html +10 -10
- package/dist/docs/guides/human-in-the-loop.html +7 -7
- package/dist/docs/guides/mcp-oauth.html +11 -11
- package/dist/docs/guides/slack.html +22 -17
- package/dist/docs/guides/webhooks.html +7 -7
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +7 -7
- package/dist/docs/index.html +9 -9
- package/dist/docs/quickstart.html +17 -17
- package/dist/docs/reference/agent-config.html +7 -7
- package/dist/docs/reference/channels.html +5 -5
- package/dist/docs/reference/cli.html +56 -48
- package/dist/docs/reference/connections.html +9 -9
- package/dist/docs/reference/hooks.html +5 -5
- package/dist/docs/reference/http-api.html +7 -7
- package/dist/docs/reference/instructions.html +5 -5
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/project-layout.html +9 -9
- package/dist/docs/reference/prompt.html +5 -5
- package/dist/docs/reference/schedules.html +7 -7
- package/dist/docs/reference/sessions.html +8 -8
- package/dist/docs/reference/skills.html +5 -5
- package/dist/docs/reference/subagents.html +5 -5
- package/dist/docs/reference/tools.html +9 -9
- package/dist/docs/scaffolding-agents.html +6 -6
- package/dist/docs/storage.html +9 -9
- package/dist/docs/troubleshooting.html +6 -6
- package/dist/evals/reporters.d.ts +1 -1
- package/dist/evals/reporters.js +1 -1
- package/dist/evals.d.ts +2 -2
- package/dist/files-backends/agent-store-presigned-url.d.ts +100 -0
- package/dist/files-backends/agent-store-presigned-url.d.ts.map +1 -0
- package/dist/files-backends/agent-store-presigned-url.js +347 -0
- package/dist/files-backends/cursor-hosted.d.ts +87 -0
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -0
- package/dist/files-backends/cursor-hosted.js +540 -0
- package/dist/files-backends/local-fs.d.ts +33 -0
- package/dist/files-backends/local-fs.d.ts.map +1 -0
- package/dist/files-backends/local-fs.js +199 -0
- package/dist/files.d.ts +139 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +89 -0
- package/dist/internal/ab-collector.js +2 -2
- package/dist/internal/ab-fold.js +1 -1
- package/dist/internal/cli-ax.d.ts +2 -2
- package/dist/internal/cli-ax.js +2 -2
- package/dist/internal/cli-deploy.d.ts +1 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +7 -2
- package/dist/internal/cli-docs.d.ts +1 -1
- package/dist/internal/cli-docs.js +1 -1
- package/dist/internal/cli-github.js +13 -13
- package/dist/internal/cli-mcp-oauth.d.ts +1 -1
- package/dist/internal/cli-mcp-oauth.js +2 -2
- package/dist/internal/cli-mcp.d.ts +3 -3
- package/dist/internal/cli-mcp.js +4 -4
- package/dist/internal/cli-skills.js +1 -1
- package/dist/internal/cloud-turn-cost.d.ts +9 -1
- package/dist/internal/cloud-turn-cost.d.ts.map +1 -1
- package/dist/internal/cloud-turn-cost.js +14 -4
- package/dist/internal/cursor/account-mcp.js +5 -5
- package/dist/internal/cursor/backend-client.js +1 -1
- package/dist/internal/cursor/github-credentials.js +3 -3
- package/dist/internal/cursor-account-mcp-auth.d.ts +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +1 -1
- package/dist/internal/cursor-event-relay.js +1 -1
- package/dist/internal/cursor-relay-core.d.ts +1 -1
- package/dist/internal/cursor-relay-core.d.ts.map +1 -1
- package/dist/internal/cursor-slack-relay.js +1 -1
- package/dist/internal/deploy-client.d.ts +6 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -2
- package/dist/internal/deploy-source.d.ts +2 -2
- package/dist/internal/deploy-source.js +2 -2
- package/dist/internal/discovery.js +2 -2
- package/dist/internal/distribution.d.ts +5 -5
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +6 -6
- package/dist/internal/docs-site.js +5 -5
- package/dist/internal/eval-run-store.js +8 -8
- package/dist/internal/evals-client.d.ts +1 -1
- package/dist/internal/evals-client.js +1 -1
- package/dist/internal/github-fanout.js +2 -2
- package/dist/internal/host-files.d.ts +29 -0
- package/dist/internal/host-files.d.ts.map +1 -0
- package/dist/internal/host-files.js +283 -0
- package/dist/internal/host-platforms.js +5 -5
- package/dist/internal/hosting.d.ts +1 -1
- package/dist/internal/hosting.js +1 -1
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +26 -0
- package/dist/internal/install-cursor-skills.d.ts +1 -1
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +33 -4
- package/dist/internal/local-control-plane.js +2 -2
- package/dist/internal/logs-client.d.ts +2 -2
- package/dist/internal/logs-client.js +2 -2
- package/dist/internal/mcp-endpoint.js +1 -1
- package/dist/internal/mcp-oauth.js +2 -2
- package/dist/internal/platform-schedule-sync.js +2 -2
- package/dist/internal/playground/toolchain.js +6 -6
- package/dist/internal/reminder-runner.js +13 -13
- package/dist/internal/resolved-connections.js +6 -6
- package/dist/internal/schedule-runner.js +1 -1
- package/dist/internal/sdk-runner.js +5 -5
- package/dist/internal/server.js +16 -16
- package/dist/internal/session-cost.d.ts +3 -2
- package/dist/internal/session-cost.d.ts.map +1 -1
- package/dist/internal/session-cost.js +7 -6
- package/dist/internal/session-engine.d.ts +31 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +119 -31
- package/dist/internal/slack-provision-client.js +1 -1
- package/dist/internal/storage-coordinator.js +7 -7
- package/dist/internal/trajectory.js +2 -2
- package/dist/internal/turn-cost.d.ts +27 -0
- package/dist/internal/turn-cost.d.ts.map +1 -0
- package/dist/internal/turn-cost.js +83 -0
- package/dist/internal/update-check.d.ts +3 -3
- package/dist/internal/update-check.d.ts.map +1 -1
- package/dist/internal/update-check.js +5 -5
- package/dist/memory.d.ts +1 -1
- package/dist/memory.js +1 -1
- package/dist/playground/assets/index-50PKeJlG.css +1 -0
- package/dist/playground/assets/index-C0f2Wl1q.js +85 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage.d.ts +1 -1
- package/dist/storage.js +1 -1
- package/dist/types.d.ts +120 -16
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +23 -23
- package/docs/ab.md +12 -12
- package/docs/building-with-agents.md +9 -9
- package/docs/concepts.md +11 -11
- package/docs/deployment.md +55 -43
- package/docs/evals.md +20 -20
- package/docs/example-agents/approval-buddy.md +9 -9
- package/docs/example-agents/benny.md +13 -13
- package/docs/example-agents/bugbot.md +6 -6
- package/docs/example-agents/codebase-wiki.md +8 -8
- package/docs/example-agents/codeowners-review.md +8 -8
- package/docs/example-agents/concierge.md +10 -10
- package/docs/example-agents/fsd.md +7 -7
- package/docs/example-agents/index.md +8 -8
- package/docs/example-agents/knowledge-base.md +9 -9
- package/docs/example-agents/oncall.md +7 -7
- package/docs/example-agents/security-reviewer.md +12 -12
- package/docs/example-agents/slack-agent.md +10 -10
- package/docs/example-agents/weather-agent.md +30 -26
- package/docs/guides/agent-to-agent.md +4 -4
- package/docs/guides/cloud-runtime.md +3 -3
- package/docs/guides/github.md +6 -6
- package/docs/guides/human-in-the-loop.md +1 -1
- package/docs/guides/mcp-oauth.md +9 -9
- package/docs/guides/slack.md +94 -21
- package/docs/guides/webhooks.md +1 -1
- package/docs/hillclimbing.md +3 -3
- package/docs/quickstart.md +18 -18
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/cli.md +110 -79
- package/docs/reference/connections.md +3 -3
- package/docs/reference/http-api.md +2 -2
- package/docs/reference/project-layout.md +7 -7
- package/docs/reference/schedules.md +1 -1
- package/docs/reference/sessions.md +7 -7
- package/docs/reference/tools.md +3 -3
- package/docs/scaffolding-agents.md +2 -2
- package/docs/storage.md +5 -5
- package/docs/troubleshooting.md +11 -10
- package/package.json +3 -1
- package/skills/ab/SKILL.md +5 -5
- package/skills/create-agent/SKILL.md +17 -17
- package/skills/debug/SKILL.md +10 -10
- package/skills/evals/SKILL.md +13 -13
- package/skills/framework-map/SKILL.md +3 -3
- package/skills/github/SKILL.md +11 -11
- package/skills/hillclimb/SKILL.md +9 -9
- package/skills/mcp-auth/SKILL.md +11 -11
- package/skills/setup-slack/SKILL.md +28 -28
- package/src/bin/agent-serve.ts +4 -4
- package/src/channels/github/index.ts +1 -1
- package/src/channels/slack/bot-mentions.ts +1 -1
- package/src/channels/slack/eval-directive.ts +1 -1
- package/src/channels/slack/external-policy.ts +1 -1
- package/src/channels/slack/log.ts +1 -1
- package/src/channels/slack/setup.ts +1 -1
- package/src/channels/slack/socket-mode.ts +1 -1
- package/src/evals/reporters.ts +1 -1
- package/src/evals.ts +2 -2
- package/src/files-backends/agent-store-presigned-url.ts +402 -0
- package/src/files-backends/cursor-hosted.ts +698 -0
- package/src/files-backends/local-fs.ts +178 -0
- package/src/files.ts +195 -0
- package/src/internal/ab-collector.ts +2 -2
- package/src/internal/ab-fold.ts +1 -1
- package/src/internal/cli-ax.ts +2 -2
- package/src/internal/cli-deploy.ts +7 -2
- package/src/internal/cli-docs.ts +1 -1
- package/src/internal/cli-github.ts +13 -13
- package/src/internal/cli-mcp-oauth.ts +2 -2
- package/src/internal/cli-mcp.ts +4 -4
- package/src/internal/cli-skills.ts +1 -1
- package/src/internal/cloud-turn-cost.ts +20 -4
- package/src/internal/cursor/account-mcp.ts +5 -5
- package/src/internal/cursor/backend-client.ts +1 -1
- package/src/internal/cursor/github-credentials.ts +3 -3
- package/src/internal/cursor-account-mcp-auth.ts +1 -1
- package/src/internal/cursor-event-relay.ts +1 -1
- package/src/internal/cursor-relay-core.ts +1 -1
- package/src/internal/cursor-slack-relay.ts +1 -1
- package/src/internal/deploy-client.ts +8 -2
- package/src/internal/deploy-source.ts +2 -2
- package/src/internal/discovery.ts +2 -2
- package/src/internal/distribution.ts +6 -6
- package/src/internal/docs-site.ts +5 -5
- package/src/internal/eval-run-store.ts +8 -8
- package/src/internal/evals-client.ts +1 -1
- package/src/internal/github-fanout.ts +2 -2
- package/src/internal/host-files.ts +372 -0
- package/src/internal/host-platforms.ts +5 -5
- package/src/internal/hosting.ts +1 -1
- package/src/internal/http-channel.ts +30 -0
- package/src/internal/install-cursor-skills.ts +31 -3
- package/src/internal/local-control-plane.ts +2 -2
- package/src/internal/logs-client.ts +2 -2
- package/src/internal/mcp-endpoint.ts +1 -1
- package/src/internal/mcp-oauth.ts +2 -2
- package/src/internal/platform-schedule-sync.ts +2 -2
- package/src/internal/playground/toolchain.ts +6 -6
- package/src/internal/reminder-runner.ts +13 -13
- package/src/internal/resolved-connections.ts +6 -6
- package/src/internal/schedule-runner.ts +1 -1
- package/src/internal/sdk-runner.ts +5 -5
- package/src/internal/server.ts +16 -16
- package/src/internal/session-cost.ts +7 -6
- package/src/internal/session-engine.ts +141 -28
- package/src/internal/slack-provision-client.ts +1 -1
- package/src/internal/storage-coordinator.ts +7 -7
- package/src/internal/trajectory.ts +2 -2
- package/src/internal/turn-cost.ts +110 -0
- package/src/internal/update-check.ts +6 -6
- package/src/memory.ts +1 -1
- package/src/storage.ts +1 -1
- package/src/types.ts +148 -16
- package/dist/docs/assets/building-with-agents.md.CJCtZCyi.js +0 -13
- package/dist/docs/assets/chunks/@localSearchIndexroot.DGe61XHA.js +0 -1
- package/dist/docs/assets/concepts.md.Cfb9b-k1.js +0 -4
- package/dist/docs/assets/concepts.md.Cfb9b-k1.lean.js +0 -1
- package/dist/docs/assets/deployment.md.TecHo0_2.js +0 -55
- package/dist/docs/assets/deployment.md.TecHo0_2.lean.js +0 -1
- package/dist/docs/assets/evals.md.DYOjkRCX.lean.js +0 -1
- package/dist/docs/assets/example-agents_benny.md.B0gjhI-p.js +0 -7
- package/dist/docs/assets/example-agents_index.md.D2PEVSXl.js +0 -2
- package/dist/docs/assets/example-agents_index.md.D2PEVSXl.lean.js +0 -1
- package/dist/docs/assets/example-agents_oncall.md.BG_sUMly.js +0 -10
- package/dist/docs/assets/example-agents_slack-agent.md.buLbgvBf.js +0 -5
- package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.js +0 -24
- package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-runtime.md.gVzabdQL.js +0 -9
- package/dist/docs/assets/guides_mcp-oauth.md.Dd8EgSem.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.CjmJSvZS.js +0 -42
- package/dist/docs/assets/guides_slack.md.CjmJSvZS.lean.js +0 -1
- package/dist/docs/assets/index.md.CH_s5uZe.js +0 -20
- package/dist/docs/assets/index.md.CH_s5uZe.lean.js +0 -1
- package/dist/docs/assets/reference_cli.md.ccoKOoXt.js +0 -65
- package/dist/docs/assets/reference_http-api.md.BncLd3PZ.js +0 -11
- package/dist/docs/assets/storage.md.DRTdnFvd.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.CmQkmnzC.js +0 -1
- package/dist/internal/model-pricing.d.ts +0 -49
- package/dist/internal/model-pricing.d.ts.map +0 -1
- package/dist/internal/model-pricing.js +0 -377
- package/dist/playground/assets/index-CquRB-l0.js +0 -85
- package/dist/playground/assets/index-Dj0bWpkn.css +0 -1
- package/src/internal/model-pricing.ts +0 -426
- /package/dist/docs/assets/{example-agents_benny.md.B0gjhI-p.lean.js → example-agents_benny.md.2Et1qa8f.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_bugbot.md.DelIdhxB.lean.js → example-agents_bugbot.md.ByUexi5i.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_concierge.md.4rQTSMXt.lean.js → example-agents_concierge.md.lL8rhYlj.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_fsd.md.CzgUrDfi.lean.js → example-agents_fsd.md.DfNKQTHz.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_oncall.md.BG_sUMly.lean.js → example-agents_oncall.md.wFFXXEyW.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_security-reviewer.md.Dhj_m7_B.lean.js → example-agents_security-reviewer.md.Dkf1gyo6.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_slack-agent.md.buLbgvBf.lean.js → example-agents_slack-agent.md.DvgvT4nn.lean.js} +0 -0
- /package/dist/docs/assets/{guides_agent-to-agent.md.Bpzgq2Pq.lean.js → guides_agent-to-agent.md.Bmbxy-FA.lean.js} +0 -0
- /package/dist/docs/assets/{guides_cloud-runtime.md.gVzabdQL.lean.js → guides_cloud-runtime.md.BZ2GA7Es.lean.js} +0 -0
- /package/dist/docs/assets/{guides_github.md.DOOCpqsW.lean.js → guides_github.md.R2QlpR75.lean.js} +0 -0
- /package/dist/docs/assets/{guides_human-in-the-loop.md.DlUqsp1S.lean.js → guides_human-in-the-loop.md.BWvT7UqY.lean.js} +0 -0
- /package/dist/docs/assets/{guides_webhooks.md.wSOYas3X.lean.js → guides_webhooks.md.DiAwSR42.lean.js} +0 -0
- /package/dist/docs/assets/{hillclimbing.md.DHNast08.lean.js → hillclimbing.md.D9Y1_bYh.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.BU6Iwi_9.lean.js → quickstart.md.TnEXYgYW.lean.js} +0 -0
- /package/dist/docs/assets/{reference_agent-config.md.DrW2JUM8.lean.js → reference_agent-config.md.kuN6-OxK.lean.js} +0 -0
- /package/dist/docs/assets/{reference_connections.md.B9Q3TOve.lean.js → reference_connections.md.DGqAsFXb.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.BncLd3PZ.lean.js → reference_http-api.md.CfVM_ICa.lean.js} +0 -0
- /package/dist/docs/assets/{reference_schedules.md.w_F2mXB6.lean.js → reference_schedules.md.gmfYzf_I.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.DLd6mvbv.lean.js → reference_sessions.md.C_ouF_uf.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.BRSDnTbN.lean.js → reference_tools.md.BswAQM41.lean.js} +0 -0
|
@@ -109,7 +109,7 @@ export function runPlaygroundBuild() {
|
|
|
109
109
|
if (toolchain === undefined) {
|
|
110
110
|
throw new Error("playground vite toolchain unavailable (need playground/ sources and the vite package)");
|
|
111
111
|
}
|
|
112
|
-
logger("[
|
|
112
|
+
logger("[agent-sdk] building playground (vite)...");
|
|
113
113
|
const code = yield spawnVite(toolchain, ["build", "--config", VITE_CONFIG], {
|
|
114
114
|
env: process.env,
|
|
115
115
|
});
|
|
@@ -119,7 +119,7 @@ export function runPlaygroundBuild() {
|
|
|
119
119
|
if (!playgroundBundleExists()) {
|
|
120
120
|
throw new Error("playground vite build finished but dist/playground/index.html is missing");
|
|
121
121
|
}
|
|
122
|
-
logger("[
|
|
122
|
+
logger("[agent-sdk] playground build complete");
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
@@ -133,7 +133,7 @@ export function ensurePlaygroundBundle() {
|
|
|
133
133
|
return;
|
|
134
134
|
}
|
|
135
135
|
if (resolvePlaygroundToolchain() === undefined) {
|
|
136
|
-
logger("[
|
|
136
|
+
logger("[agent-sdk] playground bundle missing and vite toolchain unavailable; /playground will show a build hint");
|
|
137
137
|
return;
|
|
138
138
|
}
|
|
139
139
|
yield runPlaygroundBuild(logger);
|
|
@@ -180,7 +180,7 @@ export function startPlaygroundDevServer(options) {
|
|
|
180
180
|
(_a = child.stderr) === null || _a === void 0 ? void 0 : _a.on("data", (chunk) => {
|
|
181
181
|
const text = chunk.toString().trimEnd();
|
|
182
182
|
if (text !== "") {
|
|
183
|
-
logger(`[
|
|
183
|
+
logger(`[agent-sdk] playground: ${text}`);
|
|
184
184
|
}
|
|
185
185
|
});
|
|
186
186
|
let stopped = false;
|
|
@@ -188,14 +188,14 @@ export function startPlaygroundDevServer(options) {
|
|
|
188
188
|
if (stopped) {
|
|
189
189
|
return;
|
|
190
190
|
}
|
|
191
|
-
logger(`[
|
|
191
|
+
logger(`[agent-sdk] playground spawn failed: ${err.message} — static /playground still served when built`);
|
|
192
192
|
});
|
|
193
193
|
child.on("exit", (code, signal) => {
|
|
194
194
|
if (stopped) {
|
|
195
195
|
return;
|
|
196
196
|
}
|
|
197
197
|
if (code !== 0 && code !== null) {
|
|
198
|
-
logger(`[
|
|
198
|
+
logger(`[agent-sdk] playground exited (code ${code}${signal ? `, signal ${signal}` : ""}) — static /playground still served when built`);
|
|
199
199
|
}
|
|
200
200
|
});
|
|
201
201
|
return {
|
|
@@ -95,7 +95,7 @@ export class ReminderRunner {
|
|
|
95
95
|
remote = yield this.platformTimers.listReminders();
|
|
96
96
|
}
|
|
97
97
|
catch (error) {
|
|
98
|
-
this.logger(`[
|
|
98
|
+
this.logger(`[agent-sdk] reminders: control-plane list failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
this.records.clear();
|
|
@@ -114,7 +114,7 @@ export class ReminderRunner {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
if (remote.length > 0 || disarmedOrphan > 0) {
|
|
117
|
-
this.logger(`[
|
|
117
|
+
this.logger(`[agent-sdk] reminders: hydrated ${remote.length} reminder(s) from control plane` +
|
|
118
118
|
(disarmedOrphan > 0
|
|
119
119
|
? `; disarmed ${disarmedOrphan} without live handlers`
|
|
120
120
|
: ""));
|
|
@@ -145,7 +145,7 @@ export class ReminderRunner {
|
|
|
145
145
|
restored += 1;
|
|
146
146
|
}
|
|
147
147
|
if (restored > 0 || disarmedOrphan > 0) {
|
|
148
|
-
this.logger(`[
|
|
148
|
+
this.logger(`[agent-sdk] reminders: restored ${restored} armed reminder(s)` +
|
|
149
149
|
(disarmedOrphan > 0
|
|
150
150
|
? `; disarmed ${disarmedOrphan} without live handlers`
|
|
151
151
|
: ""));
|
|
@@ -173,7 +173,7 @@ export class ReminderRunner {
|
|
|
173
173
|
return remote;
|
|
174
174
|
}
|
|
175
175
|
catch (error) {
|
|
176
|
-
this.logger(`[
|
|
176
|
+
this.logger(`[agent-sdk] reminders: control-plane get failed for ${id}: ${error instanceof Error ? error.message : String(error)}`);
|
|
177
177
|
return this.records.get(id);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -191,7 +191,7 @@ export class ReminderRunner {
|
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
catch (error) {
|
|
194
|
-
this.logger(`[
|
|
194
|
+
this.logger(`[agent-sdk] reminders: control-plane list failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
return [...this.records.values()];
|
|
@@ -370,7 +370,7 @@ export class ReminderRunner {
|
|
|
370
370
|
const delay = Math.min(MAX_TIMER_MS, Math.max(0, nextFireAtMs - Date.now()));
|
|
371
371
|
const timer = setTimeout(() => {
|
|
372
372
|
void this.fire(record.id).catch((error) => __awaiter(this, void 0, void 0, function* () {
|
|
373
|
-
this.logger(`[
|
|
373
|
+
this.logger(`[agent-sdk] reminder "${record.id}" fire failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
374
374
|
// Keep recurring reminders alive after unexpected throws.
|
|
375
375
|
// One-shots stay armed so a failed wake can be retried / dispatched.
|
|
376
376
|
try {
|
|
@@ -385,7 +385,7 @@ export class ReminderRunner {
|
|
|
385
385
|
yield this.afterFire(current, "skip");
|
|
386
386
|
}
|
|
387
387
|
catch (rescheduleError) {
|
|
388
|
-
this.logger(`[
|
|
388
|
+
this.logger(`[agent-sdk] reminder "${record.id}" reschedule after failure failed: ${rescheduleError instanceof Error
|
|
389
389
|
? rescheduleError.message
|
|
390
390
|
: String(rescheduleError)}`);
|
|
391
391
|
}
|
|
@@ -436,13 +436,13 @@ export class ReminderRunner {
|
|
|
436
436
|
}
|
|
437
437
|
}
|
|
438
438
|
catch (error) {
|
|
439
|
-
this.logger(`[
|
|
439
|
+
this.logger(`[agent-sdk] reminder "${id}" until() failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
442
|
if (yield this.isSessionBusy(record.channelId, record.continuationToken)) {
|
|
443
443
|
if (record.busyPolicy === "skipIfBusy") {
|
|
444
444
|
yield this.afterFire(record, "skip");
|
|
445
|
-
this.logger(`[
|
|
445
|
+
this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) skipped: session busy`);
|
|
446
446
|
return { outcome: "fired", reason: "skipped_busy" };
|
|
447
447
|
}
|
|
448
448
|
yield this.whenSessionIdle(record.channelId, record.continuationToken);
|
|
@@ -468,7 +468,7 @@ export class ReminderRunner {
|
|
|
468
468
|
if (result.action === "stop") {
|
|
469
469
|
if (latest !== undefined && latest.status === "armed") {
|
|
470
470
|
yield this.disarm(latest, "run_stop");
|
|
471
|
-
this.logger(`[
|
|
471
|
+
this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) disarmed: run_stop`);
|
|
472
472
|
return { outcome: "fired", reason: "run_stop" };
|
|
473
473
|
}
|
|
474
474
|
return {
|
|
@@ -481,11 +481,11 @@ export class ReminderRunner {
|
|
|
481
481
|
}
|
|
482
482
|
if (result.action === "skip") {
|
|
483
483
|
yield this.afterFire(latest, "skip", result.reschedule);
|
|
484
|
-
this.logger(`[
|
|
484
|
+
this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) skipped`);
|
|
485
485
|
return { outcome: "fired", reason: "skipped" };
|
|
486
486
|
}
|
|
487
487
|
yield this.afterFire(latest, "delivered", result.reschedule);
|
|
488
|
-
this.logger(`[
|
|
488
|
+
this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) delivered`);
|
|
489
489
|
return { outcome: "fired", reason: "delivered" };
|
|
490
490
|
}
|
|
491
491
|
finally {
|
|
@@ -565,7 +565,7 @@ export class ReminderRunner {
|
|
|
565
565
|
return { action: "delivered" };
|
|
566
566
|
}
|
|
567
567
|
catch (retryError) {
|
|
568
|
-
this.logger(`[
|
|
568
|
+
this.logger(`[agent-sdk] reminder "${record.id}" followup failed after wait: ${retryError instanceof Error
|
|
569
569
|
? retryError.message
|
|
570
570
|
: String(retryError)}`);
|
|
571
571
|
return { action: "skip" };
|
|
@@ -27,7 +27,7 @@ export function validateMountConnectionsConfig(args) {
|
|
|
27
27
|
if (filteredRefs.length === 0) {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
throw new Error(`[
|
|
30
|
+
throw new Error(`[agent-sdk] agent "${label}" has Cursor account MCP connections with \`servers\` filters (${filteredRefs
|
|
31
31
|
.map((ref) => ref.name)
|
|
32
32
|
.join(", ")}) but no --public-url; cloud-runtime turns cannot honor those filters without a public bridge URL. Set --public-url or remove the \`servers\` filter.`);
|
|
33
33
|
}
|
|
@@ -41,7 +41,7 @@ export function assertCloudCanHonorAccountServersFilters(args) {
|
|
|
41
41
|
if (blocked.length === 0) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
|
-
throw new Error(`[
|
|
44
|
+
throw new Error(`[agent-sdk] cloud turn cannot honor Cursor account \`servers\` filters (${blocked
|
|
45
45
|
.map((connection) => connection.name)
|
|
46
46
|
.join(", ")}) without --public-url; set --public-url so cloud turns reach the filtered account bridge instead of falling back to native connectors.`);
|
|
47
47
|
}
|
|
@@ -53,7 +53,7 @@ export function assertAccountConnectionsNotAnonymous(args) {
|
|
|
53
53
|
if (args.allowAnonymousCursorAccountMcp === true) {
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
56
|
-
throw new Error("[
|
|
56
|
+
throw new Error("[agent-sdk] --allow-anonymous cannot be used with Cursor account MCP connections (defineConnection({ cursorAccount: true })); use --bearer-token, or opt in with --allow-anonymous-cursor-account-mcp behind a trusted boundary.");
|
|
57
57
|
}
|
|
58
58
|
export function resolveMountConnections(args) {
|
|
59
59
|
const agent = args.project.agent;
|
|
@@ -66,14 +66,14 @@ export function resolveMountConnections(args) {
|
|
|
66
66
|
isHostOauthConnectionTransport(connection.transport))
|
|
67
67
|
.map((connection) => connection.name);
|
|
68
68
|
if (hostOauthNames.length > 0) {
|
|
69
|
-
args.logger(`[
|
|
69
|
+
args.logger(`[agent-sdk] warning: agent "${label}" has host-OAuth MCP connections (${hostOauthNames.join(", ")}) whose tokens live on this serve host; cloud-runtime turns omit them. Mark them \`hostOnly: true\` and call them from host tools, or drop \`oauth\` and authorize the server another way.`);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
if (args.peerRefs !== undefined && args.peerRefs.length > 0) {
|
|
73
73
|
const peers = resolvePeerConnections(Object.assign(Object.assign({ refs: args.peerRefs, serverUrl: args.serverUrl }, (args.publicUrl === undefined ? {} : { publicUrl: args.publicUrl })), (args.authToken === undefined ? {} : { authToken: args.authToken })));
|
|
74
74
|
resolved.push(...peers);
|
|
75
75
|
if (cloudCapable && args.publicUrl === undefined) {
|
|
76
|
-
args.logger(`[
|
|
76
|
+
args.logger(`[agent-sdk] warning: agent "${label}" has peer MCP connections (${peers
|
|
77
77
|
.map((peer) => peer.name)
|
|
78
78
|
.join(", ")}) but no --public-url; cloud-runtime turns cannot reach this host's loopback address, so peers are omitted from cloud turns.`);
|
|
79
79
|
}
|
|
@@ -83,7 +83,7 @@ export function resolveMountConnections(args) {
|
|
|
83
83
|
// Non-blocking startup DX: connector statuses land in the serve log.
|
|
84
84
|
args.accountBridge.logPreflight(args.accountRefs);
|
|
85
85
|
if (cloudCapable && args.publicUrl === undefined) {
|
|
86
|
-
args.logger(`[
|
|
86
|
+
args.logger(`[agent-sdk] agent "${label}": cloud-runtime turns omit the account bridge without --public-url (cloud agents fall back to the account's native connectors).`);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
return resolved;
|
|
@@ -68,7 +68,7 @@ export class ScheduleRunner {
|
|
|
68
68
|
for (const schedule of this.schedules) {
|
|
69
69
|
if (schedule.cron.matches(now)) {
|
|
70
70
|
void this.dispatch(schedule.name).catch((error) => {
|
|
71
|
-
this.logger(`[
|
|
71
|
+
this.logger(`[agent-sdk] schedule "${schedule.name}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -75,7 +75,7 @@ export class CursorSdkRunner {
|
|
|
75
75
|
// safe here because nothing streamed and no tool ran. First turns are
|
|
76
76
|
// excluded: their token was exchanged moments ago, so the credential
|
|
77
77
|
// itself is the problem and a retry cannot succeed.
|
|
78
|
-
this.log(`[
|
|
78
|
+
this.log(`[agent-sdk] session ${request.sessionId}: retrying the turn on a fresh SDK agent handle after an authentication failure`);
|
|
79
79
|
try {
|
|
80
80
|
return yield this.runTurnAttempt(tracked);
|
|
81
81
|
}
|
|
@@ -203,7 +203,7 @@ export class CursorSdkRunner {
|
|
|
203
203
|
}
|
|
204
204
|
// Past this age the handle's exchanged access token could expire
|
|
205
205
|
// mid-turn. Retire it and reopen below on a fresh transport.
|
|
206
|
-
this.log(`[
|
|
206
|
+
this.log(`[agent-sdk] session ${request.sessionId}: recycling the SDK agent handle after ${Math.round(ageMs / 60000)} min so the turn runs on a fresh access token`);
|
|
207
207
|
this.evictAgent(request.sessionId, cached.agent);
|
|
208
208
|
}
|
|
209
209
|
const agentPromise = this.openAgent(request).catch((error) => {
|
|
@@ -290,7 +290,7 @@ export class CursorSdkRunner {
|
|
|
290
290
|
// conversation under the same id beats failing this thread's turns
|
|
291
291
|
// forever ("Agent … not found" on every follow-up). The channel's
|
|
292
292
|
// warm-turn prompt context re-hydrates the thread history.
|
|
293
|
-
this.log(`[
|
|
293
|
+
this.log(`[agent-sdk] no stored conversation for ${agentId} on this host; starting a fresh one`);
|
|
294
294
|
return Agent.create(Object.assign(Object.assign({}, options), { agentId }));
|
|
295
295
|
}
|
|
296
296
|
});
|
|
@@ -327,7 +327,7 @@ export class CursorSdkRunner {
|
|
|
327
327
|
// session would otherwise fail every future turn. Mirror the local
|
|
328
328
|
// host-replacement path above: a fresh conversation beats failing this
|
|
329
329
|
// thread forever, and the new id binds to the session for later resumes.
|
|
330
|
-
this.log(`[
|
|
330
|
+
this.log(`[agent-sdk] cloud session ${request.sessionId} has no bound cloud agent; creating a fresh one`);
|
|
331
331
|
return Agent.create(options);
|
|
332
332
|
});
|
|
333
333
|
}
|
|
@@ -403,7 +403,7 @@ function toTurnOutcome(result) {
|
|
|
403
403
|
const CLOUD_USAGE_RETRY_DELAYS_MS = [0, 400, 1200];
|
|
404
404
|
/**
|
|
405
405
|
* Cloud `wait()` often omits usage after a stream drop. Pull the run's
|
|
406
|
-
* tokens from the usage API so the engine can still
|
|
406
|
+
* tokens from the usage API so the engine can still price the turn.
|
|
407
407
|
* Failures are ignored: a missing estimate is better than failing the turn.
|
|
408
408
|
*/
|
|
409
409
|
function fillMissingCloudUsage(agent, runId, outcome) {
|
package/dist/internal/server.js
CHANGED
|
@@ -130,10 +130,10 @@ export function startServer(mounts_1) {
|
|
|
130
130
|
if (options.allowAnonymousCursorGithub !== true) {
|
|
131
131
|
throw new Error("githubChannel({ cursorAccount: true }) cannot be served with --allow-anonymous because admitted callers could use the signed-in account's GitHub access. If every admitted caller is trusted (e.g. behind an SSO proxy), opt in with --allow-anonymous-cursor-github.");
|
|
132
132
|
}
|
|
133
|
-
logger("[
|
|
133
|
+
logger("[agent-sdk] warning: --allow-anonymous-cursor-github — every admitted HTTP caller can drive sessions holding the signed-in account's repo-scoped GitHub credential; serve this only behind a trusted boundary (e.g. an SSO proxy)");
|
|
134
134
|
}
|
|
135
135
|
if (cursorGithubConfig.scope.permissions === "contents-write") {
|
|
136
|
-
logger('[
|
|
136
|
+
logger('[agent-sdk] warning: Cursor GitHub credentials include contents:write — the host holds a push-capable token shared with model-driven tools and untrusted webhook content; prefer permissions: "pr-write" unless this agent must push code');
|
|
137
137
|
}
|
|
138
138
|
const provider = new CursorGithubCredentialProvider({
|
|
139
139
|
client: new CursorBackendClient({
|
|
@@ -164,7 +164,7 @@ export function startServer(mounts_1) {
|
|
|
164
164
|
target.accountRuntime.credentials.bind(() => __awaiter(this, void 0, void 0, function* () { return cursorEventsAuth.apiKey; }));
|
|
165
165
|
target.accountRuntime.credentials.bindProxyTransport(proxyTransport);
|
|
166
166
|
}
|
|
167
|
-
logger(`[
|
|
167
|
+
logger(`[agent-sdk] GitHub auth: channel API calls route through ${githubProxyUrl}`);
|
|
168
168
|
}
|
|
169
169
|
else {
|
|
170
170
|
for (const target of cursorGithubTargets) {
|
|
@@ -191,7 +191,7 @@ export function startServer(mounts_1) {
|
|
|
191
191
|
yield ensureDocsSiteBundle(logger);
|
|
192
192
|
}
|
|
193
193
|
if (options.allowAnonymous === true) {
|
|
194
|
-
logger("[
|
|
194
|
+
logger("[agent-sdk] warning: --allow-anonymous admits every HTTP caller as the same principal; use only on a trusted network (e.g. Tailscale) and prefer --bearer-token for shared hosts");
|
|
195
195
|
}
|
|
196
196
|
const runner = (_l = options.runner) !== null && _l !== void 0 ? _l : new CursorSdkRunner(Object.assign(Object.assign({}, (accountKey === undefined ? {} : { apiKey: accountKey.apiKey })), { logger }));
|
|
197
197
|
const router = new Router();
|
|
@@ -215,7 +215,7 @@ export function startServer(mounts_1) {
|
|
|
215
215
|
if (options.allowAnonymous === true &&
|
|
216
216
|
options.allowAnonymousCursorAccountMcp === true &&
|
|
217
217
|
accountRefsBySlug.size > 0) {
|
|
218
|
-
logger("[
|
|
218
|
+
logger("[agent-sdk] warning: --allow-anonymous-cursor-account-mcp — every admitted HTTP caller can drive Cursor account MCP connectors; serve this only behind a trusted boundary (e.g. an SSO proxy or hosted alias token)");
|
|
219
219
|
}
|
|
220
220
|
let accountBridge;
|
|
221
221
|
if (accountRefsBySlug.size > 0) {
|
|
@@ -346,7 +346,7 @@ export function startServer(mounts_1) {
|
|
|
346
346
|
yield definition.onStart(startArgs);
|
|
347
347
|
}
|
|
348
348
|
catch (error) {
|
|
349
|
-
logger(`[
|
|
349
|
+
logger(`[agent-sdk] channel "${channel.id}" onStart failed: ${error instanceof Error
|
|
350
350
|
? ((_o = error.stack) !== null && _o !== void 0 ? _o : error.message)
|
|
351
351
|
: String(error)}`);
|
|
352
352
|
}
|
|
@@ -645,7 +645,7 @@ export function startServer(mounts_1) {
|
|
|
645
645
|
yield stop();
|
|
646
646
|
}
|
|
647
647
|
catch (error) {
|
|
648
|
-
logger(`[
|
|
648
|
+
logger(`[agent-sdk] channel onStop failed: ${error instanceof Error
|
|
649
649
|
? ((_b = error.stack) !== null && _b !== void 0 ? _b : error.message)
|
|
650
650
|
: String(error)}`);
|
|
651
651
|
}
|
|
@@ -1261,7 +1261,7 @@ function requireCursorEventsAuth(config, accountKey) {
|
|
|
1261
1261
|
var _a, _b, _c;
|
|
1262
1262
|
const apiKey = ((_b = (_a = config.apiKey) !== null && _a !== void 0 ? _a : accountKey === null || accountKey === void 0 ? void 0 : accountKey.apiKey) !== null && _b !== void 0 ? _b : "").trim();
|
|
1263
1263
|
if (apiKey === "") {
|
|
1264
|
-
throw new Error(`[
|
|
1264
|
+
throw new Error(`[agent-sdk] --cursor-events (serve({ cursorEvents })) requires a signed-in Cursor account: the SCM event stream is read as the host's user. ${SIGN_IN_HINT}`);
|
|
1265
1265
|
}
|
|
1266
1266
|
return {
|
|
1267
1267
|
apiKey,
|
|
@@ -1285,13 +1285,13 @@ function startCursorEventRelay(input) {
|
|
|
1285
1285
|
}
|
|
1286
1286
|
const repos = [...new Set(config.repos.map((repo) => repo.trim()))].filter((repo) => repo.length > 0);
|
|
1287
1287
|
if (repos.length === 0) {
|
|
1288
|
-
logger("[
|
|
1288
|
+
logger("[agent-sdk] cursor-events: no repos configured (pass --repo owner/name); relay disabled");
|
|
1289
1289
|
return undefined;
|
|
1290
1290
|
}
|
|
1291
1291
|
const githubTargets = findGitHubChannelTargets(mounts);
|
|
1292
1292
|
const events = [...new Set(githubTargets.flatMap((target) => target.events))];
|
|
1293
1293
|
if (events.length === 0) {
|
|
1294
|
-
logger("[
|
|
1294
|
+
logger("[agent-sdk] cursor-events: no mounted agent declares a github channel; relay disabled");
|
|
1295
1295
|
return undefined;
|
|
1296
1296
|
}
|
|
1297
1297
|
const baseStateRoot = stateRoot !== null && stateRoot !== void 0 ? stateRoot : join((_b = (_a = mounts[0]) === null || _a === void 0 ? void 0 : _a.project.rootDir) !== null && _b !== void 0 ? _b : process.cwd(), ".agent-serve");
|
|
@@ -1328,11 +1328,11 @@ function startCursorEventRelay(input) {
|
|
|
1328
1328
|
const outcomes = result.targets
|
|
1329
1329
|
.map((target) => `${target.slug || "default"}:${target.status}`)
|
|
1330
1330
|
.join(", ");
|
|
1331
|
-
logger(`[
|
|
1331
|
+
logger(`[agent-sdk] cursor-events: dispatched ${formatCursorScmEventLog(event)}${outcomes === "" ? "" : ` → ${outcomes}`}`);
|
|
1332
1332
|
}),
|
|
1333
1333
|
});
|
|
1334
1334
|
relay.start();
|
|
1335
|
-
logger(`[
|
|
1335
|
+
logger(`[agent-sdk] cursor-events: relaying ${events.length} event kind(s) for ${repos.join(", ")} from ${auth.baseUrl}`);
|
|
1336
1336
|
return relay;
|
|
1337
1337
|
}
|
|
1338
1338
|
function collectCursorGithubTargets(mounts) {
|
|
@@ -1469,7 +1469,7 @@ function startCursorSlackRelay(input) {
|
|
|
1469
1469
|
runtime: target.runtime,
|
|
1470
1470
|
channelId: target.channelId,
|
|
1471
1471
|
});
|
|
1472
|
-
logger(`[
|
|
1472
|
+
logger(`[agent-sdk] cursor-slack: dispatching ${formatCursorSlackEventLog(envelope)} → ${target.runtime.slug || "default"}`);
|
|
1473
1473
|
yield dispatchCursorSlackEnvelope({
|
|
1474
1474
|
runtime: target.accountRuntime,
|
|
1475
1475
|
envelope,
|
|
@@ -1496,7 +1496,7 @@ function startCursorSlackRelay(input) {
|
|
|
1496
1496
|
}));
|
|
1497
1497
|
}
|
|
1498
1498
|
relay.start();
|
|
1499
|
-
logger(`[
|
|
1499
|
+
logger(`[agent-sdk] cursor-slack: relaying Slack for ${targets
|
|
1500
1500
|
.map((target) => `${target.agentName} (${target.runtime.slug || "default"})`)
|
|
1501
1501
|
.join(", ")} from ${baseUrl} — mention "@Cursor <agent name> …" in the linked workspace`);
|
|
1502
1502
|
return relay;
|
|
@@ -1562,7 +1562,7 @@ function handleRequest(router, req, res, logger) {
|
|
|
1562
1562
|
response = errorResponse(403, "forbidden", error.message);
|
|
1563
1563
|
}
|
|
1564
1564
|
else {
|
|
1565
|
-
logger(`[
|
|
1565
|
+
logger(`[agent-sdk] request failed: ${error instanceof Error
|
|
1566
1566
|
? ((_c = error.stack) !== null && _c !== void 0 ? _c : error.message)
|
|
1567
1567
|
: String(error)}`);
|
|
1568
1568
|
response = errorResponse(500, "internal_error", "Internal server error.");
|
|
@@ -1572,7 +1572,7 @@ function handleRequest(router, req, res, logger) {
|
|
|
1572
1572
|
yield writeFetchResponse(response, res, method);
|
|
1573
1573
|
}
|
|
1574
1574
|
catch (error) {
|
|
1575
|
-
logger(`[
|
|
1575
|
+
logger(`[agent-sdk] response write failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1576
1576
|
res.destroy();
|
|
1577
1577
|
}
|
|
1578
1578
|
});
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Powers `agent-serve cost [sessionId]`: each `turn.completed` event carries
|
|
5
5
|
* the turn's token usage and the estimated dollar cost recorded by the
|
|
6
|
-
* engine
|
|
7
|
-
* its `events.ndjson`
|
|
6
|
+
* engine via `POST /v1/models/estimate-cost`, so a session's spend is a
|
|
7
|
+
* pure fold over its `events.ndjson`. `GET /v1/session/:id/cost` is the
|
|
8
|
+
* live billed total.
|
|
8
9
|
*/
|
|
9
10
|
import type { SessionEvent, TurnCost, TurnUsage } from "../types.js";
|
|
10
11
|
/** One agent loop pass (turn) with its usage and estimated cost. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cost.d.ts","sourceRoot":"","sources":["../../src/internal/session-cost.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session-cost.d.ts","sourceRoot":"","sources":["../../src/internal/session-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrE,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,IAAI,iBAAiB,CAW1D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,iBAAiB,GACvB,IAAI,CASN;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,iBAAiB,CAyCnB;AAMD,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4CvE;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAsCrE"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Powers `agent-serve cost [sessionId]`: each `turn.completed` event carries
|
|
5
5
|
* the turn's token usage and the estimated dollar cost recorded by the
|
|
6
|
-
* engine
|
|
7
|
-
* its `events.ndjson`
|
|
6
|
+
* engine via `POST /v1/models/estimate-cost`, so a session's spend is a
|
|
7
|
+
* pure fold over its `events.ndjson`. `GET /v1/session/:id/cost` is the
|
|
8
|
+
* live billed total.
|
|
8
9
|
*/
|
|
9
10
|
import { formatCostUsd, roundCostUsd } from "./trajectory.js";
|
|
10
11
|
export function emptySessionCostTotals() {
|
|
@@ -78,7 +79,7 @@ function formatCount(value) {
|
|
|
78
79
|
/** Per-turn table for `agent-serve cost <sessionId>`. */
|
|
79
80
|
export function formatSessionCostText(report) {
|
|
80
81
|
const lines = [];
|
|
81
|
-
lines.push(`session ${report.sessionId || "(unknown)"}
|
|
82
|
+
lines.push(`session ${report.sessionId || "(unknown)"} cost: ${formatCostUsd(report.totals.costUsd)}`);
|
|
82
83
|
if (report.turns.length === 0) {
|
|
83
84
|
lines.push("No turns recorded.");
|
|
84
85
|
return `${lines.join("\n")}\n`;
|
|
@@ -89,7 +90,7 @@ export function formatSessionCostText(report) {
|
|
|
89
90
|
"OUT",
|
|
90
91
|
"CACHE R",
|
|
91
92
|
"CACHE W",
|
|
92
|
-
"
|
|
93
|
+
"COST",
|
|
93
94
|
"MODEL",
|
|
94
95
|
"STATUS",
|
|
95
96
|
];
|
|
@@ -130,7 +131,7 @@ export function formatSessionsCostText(rows) {
|
|
|
130
131
|
"TURNS",
|
|
131
132
|
"IN",
|
|
132
133
|
"OUT",
|
|
133
|
-
"
|
|
134
|
+
"COST",
|
|
134
135
|
"UPDATED",
|
|
135
136
|
];
|
|
136
137
|
const totals = emptySessionCostTotals();
|
|
@@ -162,7 +163,7 @@ export function formatSessionsCostText(rows) {
|
|
|
162
163
|
}
|
|
163
164
|
function appendUnpricedNote(lines, unpricedTurns) {
|
|
164
165
|
if (unpricedTurns > 0) {
|
|
165
|
-
lines.push(`note: ${unpricedTurns} turn(s) reported usage
|
|
166
|
+
lines.push(`note: ${unpricedTurns} turn(s) reported usage with no priced cost; cost totals exclude them.`);
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
169
|
function renderTable(header, rows) {
|
|
@@ -14,6 +14,7 @@ import { type HostPlatforms } from "./host-platforms.js";
|
|
|
14
14
|
import type { AgentRunner } from "./sdk-runner.js";
|
|
15
15
|
import { SessionStore } from "./session-store.js";
|
|
16
16
|
import { StorageCoordinator } from "./storage-coordinator.js";
|
|
17
|
+
import { type EstimateTurnCostFn } from "./turn-cost.js";
|
|
17
18
|
export declare const HTTP_CHANNEL_ID = "http";
|
|
18
19
|
export { SCHEDULE_CHANNEL_PREFIX } from "./prompt-context.js";
|
|
19
20
|
export declare class SessionBusyError extends Error {
|
|
@@ -59,6 +60,11 @@ export interface SessionEngineOptions {
|
|
|
59
60
|
* usage/cost so the playground Trace tab can still show an estimate.
|
|
60
61
|
*/
|
|
61
62
|
getCloudUsage?: (sdkAgentId: string) => Promise<CloudAgentUsage | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve turn cost via `POST /v1/models/estimate-cost`. Tests inject a
|
|
65
|
+
* stub; production uses billed usage events when an agent id is known.
|
|
66
|
+
*/
|
|
67
|
+
estimateTurnCost?: EstimateTurnCostFn;
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
64
70
|
* A connection the serve host resolved once it was listening — a **peer**
|
|
@@ -140,11 +146,13 @@ export declare class SessionEngine {
|
|
|
140
146
|
private reminderApi;
|
|
141
147
|
private evalsApi;
|
|
142
148
|
private readonly kvApi;
|
|
149
|
+
private readonly filesApi;
|
|
143
150
|
/** Engine-owned artifacts service behind every `ctx.artifacts` facade. */
|
|
144
151
|
private readonly artifactsStore;
|
|
145
152
|
/** Serve-time resolved connections (see {@link setResolvedConnections}). */
|
|
146
153
|
private resolvedConnections;
|
|
147
154
|
private readonly getCloudUsage;
|
|
155
|
+
private readonly estimateTurnCost;
|
|
148
156
|
/** Sessions whose completed turns are fully priced (no further backfill). */
|
|
149
157
|
private readonly cloudCostBackfillDone;
|
|
150
158
|
/** Deduped in-flight cloud cost backfills, keyed by session id. */
|
|
@@ -159,6 +167,13 @@ export declare class SessionEngine {
|
|
|
159
167
|
setResolvedConnections(connections: EngineResolvedConnection[]): void;
|
|
160
168
|
/** Shared host services (MCP / GitHub / Slack / reminders / evals / kv / Slack nudges). */
|
|
161
169
|
get host(): HostContext;
|
|
170
|
+
/**
|
|
171
|
+
* Host services with `files` bound to one session, so a relative path in a
|
|
172
|
+
* tool or hook resolves to that session's scope and can never be read as
|
|
173
|
+
* another session's. Unbound (no session) keeps `host.files` usable for
|
|
174
|
+
* `{ scope: "deployment" }` and fails loudly on session-scoped calls.
|
|
175
|
+
*/
|
|
176
|
+
private hostForSession;
|
|
162
177
|
/** Unbound `ctx.artifacts` facade (channel handlers, scratch tool calls). */
|
|
163
178
|
get artifacts(): ArtifactsApi;
|
|
164
179
|
/**
|
|
@@ -401,6 +416,21 @@ export declare class SessionEngine {
|
|
|
401
416
|
* tasks (e.g. webhook stages) to publish a final summary.
|
|
402
417
|
*/
|
|
403
418
|
emitAssistantMessage(sessionId: string, text: string): Promise<void>;
|
|
419
|
+
/**
|
|
420
|
+
* Billed/catalog cost for a session. Powers playground, traces, and
|
|
421
|
+
* `agent-sdk cost` via `GET /v1/session/:id/cost`.
|
|
422
|
+
*/
|
|
423
|
+
sessionCost(sessionId: string): Promise<{
|
|
424
|
+
sessionId: string;
|
|
425
|
+
source: "usage" | "catalog" | "unavailable";
|
|
426
|
+
cost: {
|
|
427
|
+
rawCostCents: number;
|
|
428
|
+
chargedCents: number;
|
|
429
|
+
};
|
|
430
|
+
costUsd: number;
|
|
431
|
+
rawCostUsd: number;
|
|
432
|
+
model?: string;
|
|
433
|
+
}>;
|
|
404
434
|
/** Snapshot of recorded events (for download / offline trace). */
|
|
405
435
|
listEvents(sessionId: string, startIndex?: number, options?: {
|
|
406
436
|
backfillCloudCost?: boolean;
|
|
@@ -408,7 +438,7 @@ export declare class SessionEngine {
|
|
|
408
438
|
/**
|
|
409
439
|
* Historical cloud turns may lack usage/cost on `turn.completed` (pre-0.1.29
|
|
410
440
|
* engines, or getUsage still zero at turn end). Fill them from billed usage
|
|
411
|
-
* before the playground replays the stream so Trace can show
|
|
441
|
+
* before the playground replays the stream so Trace can show cost.
|
|
412
442
|
*/
|
|
413
443
|
private backfillCloudTurnCosts;
|
|
414
444
|
private runCloudTurnCostBackfill;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EACL,mBAAmB,EACnB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EAKnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAI1B,KAAK,eAAe,EACpB,KAAK,YAAY,EAKjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,KAAK,eAAe,EAGpB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAKpE,OAAO,EAEL,KAAK,eAAe,EAIrB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"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"}
|