@cursor/july 0.1.30 → 0.1.32
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/post-update-delivery.d.ts +85 -0
- package/dist/channels/slack/post-update-delivery.d.ts.map +1 -0
- 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.Cm4lsMc4.js → app.C2aVczmo.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.xgMnlUSO.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CYUFXspH.js → VPLocalSearchBox.DLEzetbD.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CTjkX9vc.js → theme.BkOH1oMp.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 +3 -0
- package/dist/files-backends/agent-store-presigned-url.d.ts.map +1 -0
- package/dist/files-backends/agent-store-presigned-url.js +1023 -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 +563 -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/json-dir-store.d.ts +32 -0
- package/dist/internal/json-dir-store.d.ts.map +1 -0
- 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/persistence-coordinator.d.ts +127 -0
- package/dist/internal/persistence-coordinator.d.ts.map +1 -0
- 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/multi-tenant.d.ts +80 -0
- package/dist/multi-tenant.d.ts.map +1 -0
- package/dist/multi-tenant.js +69 -0
- package/dist/persistence.d.ts +184 -0
- package/dist/persistence.d.ts.map +1 -0
- 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 +5 -2
- 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 +8 -0
- package/src/files-backends/cursor-hosted.ts +724 -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.CbQshWFK.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
|
@@ -121,7 +121,7 @@ export class ReminderRunner {
|
|
|
121
121
|
remote = await this.platformTimers.listReminders();
|
|
122
122
|
} catch (error) {
|
|
123
123
|
this.logger(
|
|
124
|
-
`[
|
|
124
|
+
`[agent-sdk] reminders: control-plane list failed: ${
|
|
125
125
|
error instanceof Error ? error.message : String(error)
|
|
126
126
|
}`
|
|
127
127
|
);
|
|
@@ -146,7 +146,7 @@ export class ReminderRunner {
|
|
|
146
146
|
}
|
|
147
147
|
if (remote.length > 0 || disarmedOrphan > 0) {
|
|
148
148
|
this.logger(
|
|
149
|
-
`[
|
|
149
|
+
`[agent-sdk] reminders: hydrated ${remote.length} reminder(s) from control plane` +
|
|
150
150
|
(disarmedOrphan > 0
|
|
151
151
|
? `; disarmed ${disarmedOrphan} without live handlers`
|
|
152
152
|
: "")
|
|
@@ -181,7 +181,7 @@ export class ReminderRunner {
|
|
|
181
181
|
}
|
|
182
182
|
if (restored > 0 || disarmedOrphan > 0) {
|
|
183
183
|
this.logger(
|
|
184
|
-
`[
|
|
184
|
+
`[agent-sdk] reminders: restored ${restored} armed reminder(s)` +
|
|
185
185
|
(disarmedOrphan > 0
|
|
186
186
|
? `; disarmed ${disarmedOrphan} without live handlers`
|
|
187
187
|
: "")
|
|
@@ -208,7 +208,7 @@ export class ReminderRunner {
|
|
|
208
208
|
return remote;
|
|
209
209
|
} catch (error) {
|
|
210
210
|
this.logger(
|
|
211
|
-
`[
|
|
211
|
+
`[agent-sdk] reminders: control-plane get failed for ${id}: ${
|
|
212
212
|
error instanceof Error ? error.message : String(error)
|
|
213
213
|
}`
|
|
214
214
|
);
|
|
@@ -228,7 +228,7 @@ export class ReminderRunner {
|
|
|
228
228
|
}
|
|
229
229
|
} catch (error) {
|
|
230
230
|
this.logger(
|
|
231
|
-
`[
|
|
231
|
+
`[agent-sdk] reminders: control-plane list failed: ${
|
|
232
232
|
error instanceof Error ? error.message : String(error)
|
|
233
233
|
}`
|
|
234
234
|
);
|
|
@@ -454,7 +454,7 @@ export class ReminderRunner {
|
|
|
454
454
|
const timer = setTimeout(() => {
|
|
455
455
|
void this.fire(record.id).catch(async (error) => {
|
|
456
456
|
this.logger(
|
|
457
|
-
`[
|
|
457
|
+
`[agent-sdk] reminder "${record.id}" fire failed: ${
|
|
458
458
|
error instanceof Error ? error.message : String(error)
|
|
459
459
|
}`
|
|
460
460
|
);
|
|
@@ -472,7 +472,7 @@ export class ReminderRunner {
|
|
|
472
472
|
await this.afterFire(current, "skip");
|
|
473
473
|
} catch (rescheduleError) {
|
|
474
474
|
this.logger(
|
|
475
|
-
`[
|
|
475
|
+
`[agent-sdk] reminder "${record.id}" reschedule after failure failed: ${
|
|
476
476
|
rescheduleError instanceof Error
|
|
477
477
|
? rescheduleError.message
|
|
478
478
|
: String(rescheduleError)
|
|
@@ -535,7 +535,7 @@ export class ReminderRunner {
|
|
|
535
535
|
}
|
|
536
536
|
} catch (error) {
|
|
537
537
|
this.logger(
|
|
538
|
-
`[
|
|
538
|
+
`[agent-sdk] reminder "${id}" until() failed: ${
|
|
539
539
|
error instanceof Error ? error.message : String(error)
|
|
540
540
|
}`
|
|
541
541
|
);
|
|
@@ -548,7 +548,7 @@ export class ReminderRunner {
|
|
|
548
548
|
if (record.busyPolicy === "skipIfBusy") {
|
|
549
549
|
await this.afterFire(record, "skip");
|
|
550
550
|
this.logger(
|
|
551
|
-
`[
|
|
551
|
+
`[agent-sdk] reminder "${id}" (${record.purpose}) skipped: session busy`
|
|
552
552
|
);
|
|
553
553
|
return { outcome: "fired", reason: "skipped_busy" };
|
|
554
554
|
}
|
|
@@ -576,7 +576,7 @@ export class ReminderRunner {
|
|
|
576
576
|
if (latest !== undefined && latest.status === "armed") {
|
|
577
577
|
await this.disarm(latest, "run_stop");
|
|
578
578
|
this.logger(
|
|
579
|
-
`[
|
|
579
|
+
`[agent-sdk] reminder "${id}" (${record.purpose}) disarmed: run_stop`
|
|
580
580
|
);
|
|
581
581
|
return { outcome: "fired", reason: "run_stop" };
|
|
582
582
|
}
|
|
@@ -591,11 +591,11 @@ export class ReminderRunner {
|
|
|
591
591
|
|
|
592
592
|
if (result.action === "skip") {
|
|
593
593
|
await this.afterFire(latest, "skip", result.reschedule);
|
|
594
|
-
this.logger(`[
|
|
594
|
+
this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) skipped`);
|
|
595
595
|
return { outcome: "fired", reason: "skipped" };
|
|
596
596
|
}
|
|
597
597
|
await this.afterFire(latest, "delivered", result.reschedule);
|
|
598
|
-
this.logger(`[
|
|
598
|
+
this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) delivered`);
|
|
599
599
|
return { outcome: "fired", reason: "delivered" };
|
|
600
600
|
} finally {
|
|
601
601
|
this.firing.delete(id);
|
|
@@ -697,7 +697,7 @@ export class ReminderRunner {
|
|
|
697
697
|
return { action: "delivered" };
|
|
698
698
|
} catch (retryError) {
|
|
699
699
|
this.logger(
|
|
700
|
-
`[
|
|
700
|
+
`[agent-sdk] reminder "${record.id}" followup failed after wait: ${
|
|
701
701
|
retryError instanceof Error
|
|
702
702
|
? retryError.message
|
|
703
703
|
: String(retryError)
|
|
@@ -47,7 +47,7 @@ export function validateMountConnectionsConfig(args: {
|
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
49
|
throw new Error(
|
|
50
|
-
`[
|
|
50
|
+
`[agent-sdk] agent "${label}" has Cursor account MCP connections with \`servers\` filters (${filteredRefs
|
|
51
51
|
.map((ref) => ref.name)
|
|
52
52
|
.join(
|
|
53
53
|
", "
|
|
@@ -72,7 +72,7 @@ export function assertCloudCanHonorAccountServersFilters(args: {
|
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
throw new Error(
|
|
75
|
-
`[
|
|
75
|
+
`[agent-sdk] cloud turn cannot honor Cursor account \`servers\` filters (${blocked
|
|
76
76
|
.map((connection) => connection.name)
|
|
77
77
|
.join(
|
|
78
78
|
", "
|
|
@@ -98,7 +98,7 @@ export function assertAccountConnectionsNotAnonymous(args: {
|
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
throw new Error(
|
|
101
|
-
"[
|
|
101
|
+
"[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."
|
|
102
102
|
);
|
|
103
103
|
}
|
|
104
104
|
|
|
@@ -128,7 +128,7 @@ export function resolveMountConnections(args: {
|
|
|
128
128
|
.map((connection) => connection.name);
|
|
129
129
|
if (hostOauthNames.length > 0) {
|
|
130
130
|
args.logger(
|
|
131
|
-
`[
|
|
131
|
+
`[agent-sdk] warning: agent "${label}" has host-OAuth MCP connections (${hostOauthNames.join(
|
|
132
132
|
", "
|
|
133
133
|
)}) 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.`
|
|
134
134
|
);
|
|
@@ -145,7 +145,7 @@ export function resolveMountConnections(args: {
|
|
|
145
145
|
resolved.push(...peers);
|
|
146
146
|
if (cloudCapable && args.publicUrl === undefined) {
|
|
147
147
|
args.logger(
|
|
148
|
-
`[
|
|
148
|
+
`[agent-sdk] warning: agent "${label}" has peer MCP connections (${peers
|
|
149
149
|
.map((peer) => peer.name)
|
|
150
150
|
.join(
|
|
151
151
|
", "
|
|
@@ -168,7 +168,7 @@ export function resolveMountConnections(args: {
|
|
|
168
168
|
args.accountBridge.logPreflight(args.accountRefs);
|
|
169
169
|
if (cloudCapable && args.publicUrl === undefined) {
|
|
170
170
|
args.logger(
|
|
171
|
-
`[
|
|
171
|
+
`[agent-sdk] agent "${label}": cloud-runtime turns omit the account bridge without --public-url (cloud agents fall back to the account's native connectors).`
|
|
172
172
|
);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
@@ -90,7 +90,7 @@ export class ScheduleRunner {
|
|
|
90
90
|
if (schedule.cron.matches(now)) {
|
|
91
91
|
void this.dispatch(schedule.name).catch((error) => {
|
|
92
92
|
this.logger(
|
|
93
|
-
`[
|
|
93
|
+
`[agent-sdk] schedule "${schedule.name}" dispatch failed: ${
|
|
94
94
|
error instanceof Error ? error.message : String(error)
|
|
95
95
|
}`
|
|
96
96
|
);
|
|
@@ -155,7 +155,7 @@ export class CursorSdkRunner implements AgentRunner {
|
|
|
155
155
|
// excluded: their token was exchanged moments ago, so the credential
|
|
156
156
|
// itself is the problem and a retry cannot succeed.
|
|
157
157
|
this.log(
|
|
158
|
-
`[
|
|
158
|
+
`[agent-sdk] session ${request.sessionId}: retrying the turn on a fresh SDK agent handle after an authentication failure`
|
|
159
159
|
);
|
|
160
160
|
try {
|
|
161
161
|
return await this.runTurnAttempt(tracked);
|
|
@@ -294,7 +294,7 @@ export class CursorSdkRunner implements AgentRunner {
|
|
|
294
294
|
// Past this age the handle's exchanged access token could expire
|
|
295
295
|
// mid-turn. Retire it and reopen below on a fresh transport.
|
|
296
296
|
this.log(
|
|
297
|
-
`[
|
|
297
|
+
`[agent-sdk] session ${request.sessionId}: recycling the SDK agent handle after ${Math.round(ageMs / 60_000)} min so the turn runs on a fresh access token`
|
|
298
298
|
);
|
|
299
299
|
this.evictAgent(request.sessionId, cached.agent);
|
|
300
300
|
}
|
|
@@ -404,7 +404,7 @@ export class CursorSdkRunner implements AgentRunner {
|
|
|
404
404
|
// forever ("Agent … not found" on every follow-up). The channel's
|
|
405
405
|
// warm-turn prompt context re-hydrates the thread history.
|
|
406
406
|
this.log(
|
|
407
|
-
`[
|
|
407
|
+
`[agent-sdk] no stored conversation for ${agentId} on this host; starting a fresh one`
|
|
408
408
|
);
|
|
409
409
|
return Agent.create({ ...options, agentId });
|
|
410
410
|
}
|
|
@@ -450,7 +450,7 @@ export class CursorSdkRunner implements AgentRunner {
|
|
|
450
450
|
// host-replacement path above: a fresh conversation beats failing this
|
|
451
451
|
// thread forever, and the new id binds to the session for later resumes.
|
|
452
452
|
this.log(
|
|
453
|
-
`[
|
|
453
|
+
`[agent-sdk] cloud session ${request.sessionId} has no bound cloud agent; creating a fresh one`
|
|
454
454
|
);
|
|
455
455
|
return Agent.create(options);
|
|
456
456
|
}
|
|
@@ -569,7 +569,7 @@ const CLOUD_USAGE_RETRY_DELAYS_MS = [0, 400, 1200] as const;
|
|
|
569
569
|
|
|
570
570
|
/**
|
|
571
571
|
* Cloud `wait()` often omits usage after a stream drop. Pull the run's
|
|
572
|
-
* tokens from the usage API so the engine can still
|
|
572
|
+
* tokens from the usage API so the engine can still price the turn.
|
|
573
573
|
* Failures are ignored: a missing estimate is better than failing the turn.
|
|
574
574
|
*/
|
|
575
575
|
async function fillMissingCloudUsage(
|
package/src/internal/server.ts
CHANGED
|
@@ -251,12 +251,12 @@ export async function startServer(
|
|
|
251
251
|
);
|
|
252
252
|
}
|
|
253
253
|
logger(
|
|
254
|
-
"[
|
|
254
|
+
"[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)"
|
|
255
255
|
);
|
|
256
256
|
}
|
|
257
257
|
if (cursorGithubConfig.scope.permissions === "contents-write") {
|
|
258
258
|
logger(
|
|
259
|
-
'[
|
|
259
|
+
'[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'
|
|
260
260
|
);
|
|
261
261
|
}
|
|
262
262
|
const provider = new CursorGithubCredentialProvider({
|
|
@@ -292,7 +292,7 @@ export async function startServer(
|
|
|
292
292
|
target.accountRuntime.credentials.bindProxyTransport(proxyTransport);
|
|
293
293
|
}
|
|
294
294
|
logger(
|
|
295
|
-
`[
|
|
295
|
+
`[agent-sdk] GitHub auth: channel API calls route through ${githubProxyUrl}`
|
|
296
296
|
);
|
|
297
297
|
} else {
|
|
298
298
|
for (const target of cursorGithubTargets) {
|
|
@@ -325,7 +325,7 @@ export async function startServer(
|
|
|
325
325
|
}
|
|
326
326
|
if (options.allowAnonymous === true) {
|
|
327
327
|
logger(
|
|
328
|
-
"[
|
|
328
|
+
"[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"
|
|
329
329
|
);
|
|
330
330
|
}
|
|
331
331
|
const runner =
|
|
@@ -361,7 +361,7 @@ export async function startServer(
|
|
|
361
361
|
accountRefsBySlug.size > 0
|
|
362
362
|
) {
|
|
363
363
|
logger(
|
|
364
|
-
"[
|
|
364
|
+
"[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)"
|
|
365
365
|
);
|
|
366
366
|
}
|
|
367
367
|
let accountBridge: CursorAccountMcpBridge | undefined;
|
|
@@ -529,7 +529,7 @@ export async function startServer(
|
|
|
529
529
|
await definition.onStart(startArgs);
|
|
530
530
|
} catch (error) {
|
|
531
531
|
logger(
|
|
532
|
-
`[
|
|
532
|
+
`[agent-sdk] channel "${channel.id}" onStart failed: ${
|
|
533
533
|
error instanceof Error
|
|
534
534
|
? (error.stack ?? error.message)
|
|
535
535
|
: String(error)
|
|
@@ -853,7 +853,7 @@ export async function startServer(
|
|
|
853
853
|
await stop();
|
|
854
854
|
} catch (error) {
|
|
855
855
|
logger(
|
|
856
|
-
`[
|
|
856
|
+
`[agent-sdk] channel onStop failed: ${
|
|
857
857
|
error instanceof Error
|
|
858
858
|
? (error.stack ?? error.message)
|
|
859
859
|
: String(error)
|
|
@@ -1605,7 +1605,7 @@ function requireCursorEventsAuth(
|
|
|
1605
1605
|
const apiKey = (config.apiKey ?? accountKey?.apiKey ?? "").trim();
|
|
1606
1606
|
if (apiKey === "") {
|
|
1607
1607
|
throw new Error(
|
|
1608
|
-
`[
|
|
1608
|
+
`[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}`
|
|
1609
1609
|
);
|
|
1610
1610
|
}
|
|
1611
1611
|
return {
|
|
@@ -1641,7 +1641,7 @@ function startCursorEventRelay(input: {
|
|
|
1641
1641
|
);
|
|
1642
1642
|
if (repos.length === 0) {
|
|
1643
1643
|
logger(
|
|
1644
|
-
"[
|
|
1644
|
+
"[agent-sdk] cursor-events: no repos configured (pass --repo owner/name); relay disabled"
|
|
1645
1645
|
);
|
|
1646
1646
|
return undefined;
|
|
1647
1647
|
}
|
|
@@ -1649,7 +1649,7 @@ function startCursorEventRelay(input: {
|
|
|
1649
1649
|
const events = [...new Set(githubTargets.flatMap((target) => target.events))];
|
|
1650
1650
|
if (events.length === 0) {
|
|
1651
1651
|
logger(
|
|
1652
|
-
"[
|
|
1652
|
+
"[agent-sdk] cursor-events: no mounted agent declares a github channel; relay disabled"
|
|
1653
1653
|
);
|
|
1654
1654
|
return undefined;
|
|
1655
1655
|
}
|
|
@@ -1693,13 +1693,13 @@ function startCursorEventRelay(input: {
|
|
|
1693
1693
|
.map((target) => `${target.slug || "default"}:${target.status}`)
|
|
1694
1694
|
.join(", ");
|
|
1695
1695
|
logger(
|
|
1696
|
-
`[
|
|
1696
|
+
`[agent-sdk] cursor-events: dispatched ${formatCursorScmEventLog(event)}${outcomes === "" ? "" : ` → ${outcomes}`}`
|
|
1697
1697
|
);
|
|
1698
1698
|
},
|
|
1699
1699
|
});
|
|
1700
1700
|
relay.start();
|
|
1701
1701
|
logger(
|
|
1702
|
-
`[
|
|
1702
|
+
`[agent-sdk] cursor-events: relaying ${events.length} event kind(s) for ${repos.join(", ")} from ${auth.baseUrl}`
|
|
1703
1703
|
);
|
|
1704
1704
|
return relay;
|
|
1705
1705
|
}
|
|
@@ -1891,7 +1891,7 @@ async function startCursorSlackRelay(input: {
|
|
|
1891
1891
|
channelId: target.channelId,
|
|
1892
1892
|
});
|
|
1893
1893
|
logger(
|
|
1894
|
-
`[
|
|
1894
|
+
`[agent-sdk] cursor-slack: dispatching ${formatCursorSlackEventLog(envelope)} → ${target.runtime.slug || "default"}`
|
|
1895
1895
|
);
|
|
1896
1896
|
await dispatchCursorSlackEnvelope({
|
|
1897
1897
|
runtime: target.accountRuntime,
|
|
@@ -1940,7 +1940,7 @@ async function startCursorSlackRelay(input: {
|
|
|
1940
1940
|
|
|
1941
1941
|
relay.start();
|
|
1942
1942
|
logger(
|
|
1943
|
-
`[
|
|
1943
|
+
`[agent-sdk] cursor-slack: relaying Slack for ${targets
|
|
1944
1944
|
.map(
|
|
1945
1945
|
(target) => `${target.agentName} (${target.runtime.slug || "default"})`
|
|
1946
1946
|
)
|
|
@@ -2037,7 +2037,7 @@ async function handleRequest(
|
|
|
2037
2037
|
response = errorResponse(403, "forbidden", error.message);
|
|
2038
2038
|
} else {
|
|
2039
2039
|
logger(
|
|
2040
|
-
`[
|
|
2040
|
+
`[agent-sdk] request failed: ${
|
|
2041
2041
|
error instanceof Error
|
|
2042
2042
|
? (error.stack ?? error.message)
|
|
2043
2043
|
: String(error)
|
|
@@ -2051,7 +2051,7 @@ async function handleRequest(
|
|
|
2051
2051
|
await writeFetchResponse(response, res, method);
|
|
2052
2052
|
} catch (error) {
|
|
2053
2053
|
logger(
|
|
2054
|
-
`[
|
|
2054
|
+
`[agent-sdk] response write failed: ${
|
|
2055
2055
|
error instanceof Error ? error.message : String(error)
|
|
2056
2056
|
}`
|
|
2057
2057
|
);
|
|
@@ -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
|
|
|
10
11
|
import type { SessionEvent, TurnCost, TurnUsage } from "../types.js";
|
|
@@ -118,7 +119,7 @@ function formatCount(value: number): string {
|
|
|
118
119
|
export function formatSessionCostText(report: SessionCostReport): string {
|
|
119
120
|
const lines: string[] = [];
|
|
120
121
|
lines.push(
|
|
121
|
-
`session ${report.sessionId || "(unknown)"}
|
|
122
|
+
`session ${report.sessionId || "(unknown)"} cost: ${formatCostUsd(report.totals.costUsd)}`
|
|
122
123
|
);
|
|
123
124
|
if (report.turns.length === 0) {
|
|
124
125
|
lines.push("No turns recorded.");
|
|
@@ -130,7 +131,7 @@ export function formatSessionCostText(report: SessionCostReport): string {
|
|
|
130
131
|
"OUT",
|
|
131
132
|
"CACHE R",
|
|
132
133
|
"CACHE W",
|
|
133
|
-
"
|
|
134
|
+
"COST",
|
|
134
135
|
"MODEL",
|
|
135
136
|
"STATUS",
|
|
136
137
|
];
|
|
@@ -180,7 +181,7 @@ export function formatSessionsCostText(rows: SessionCostRow[]): string {
|
|
|
180
181
|
"TURNS",
|
|
181
182
|
"IN",
|
|
182
183
|
"OUT",
|
|
183
|
-
"
|
|
184
|
+
"COST",
|
|
184
185
|
"UPDATED",
|
|
185
186
|
];
|
|
186
187
|
const totals = emptySessionCostTotals();
|
|
@@ -213,7 +214,7 @@ export function formatSessionsCostText(rows: SessionCostRow[]): string {
|
|
|
213
214
|
function appendUnpricedNote(lines: string[], unpricedTurns: number): void {
|
|
214
215
|
if (unpricedTurns > 0) {
|
|
215
216
|
lines.push(
|
|
216
|
-
`note: ${unpricedTurns} turn(s) reported usage
|
|
217
|
+
`note: ${unpricedTurns} turn(s) reported usage with no priced cost; cost totals exclude them.`
|
|
217
218
|
);
|
|
218
219
|
}
|
|
219
220
|
}
|