@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-dir-store.d.ts","sourceRoot":"","sources":["../../src/internal/json-dir-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAET;AAWD,uEAAuE;AACvE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWvE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd;AAED,0EAA0E;AAC1E,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED,iDAAiD;AACjD,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhB"}
|
|
@@ -74,7 +74,7 @@ export function createLocalControlPlane(opts) {
|
|
|
74
74
|
continue;
|
|
75
75
|
}
|
|
76
76
|
void opts.fireSchedule(name).catch((error) => {
|
|
77
|
-
logger(`[
|
|
77
|
+
logger(`[agent-sdk] schedule "${name}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -102,7 +102,7 @@ export function createLocalControlPlane(opts) {
|
|
|
102
102
|
return;
|
|
103
103
|
}
|
|
104
104
|
void opts.fireReminder(current.id, current.fireCount).catch((error) => {
|
|
105
|
-
logger(`[
|
|
105
|
+
logger(`[agent-sdk] reminder "${current.id}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
106
106
|
});
|
|
107
107
|
}, delay);
|
|
108
108
|
(_a = timer.unref) === null || _a === void 0 ? void 0 : _a.call(timer);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
2
|
+
* `agent-sdk logs` — follow deploy progress (hosted) then runtime `/v1/logs`.
|
|
3
3
|
*
|
|
4
4
|
* Customer-facing output never includes hosting URLs, tokens, or infra jargon.
|
|
5
5
|
*/
|
|
@@ -24,7 +24,7 @@ export declare function progressMessage(progress: LogsProgress, lastError?: stri
|
|
|
24
24
|
/** Strip obvious hosting internals from error text shown to customers. */
|
|
25
25
|
export declare function sanitizeCustomerError(message: string): string;
|
|
26
26
|
/**
|
|
27
|
-
* One-line label for `
|
|
27
|
+
* One-line label for `agent-sdk deploy` polling (TTY spinner / non-TTY
|
|
28
28
|
* transitions). Uses statusMessage → progress → raw status.
|
|
29
29
|
*/
|
|
30
30
|
export declare function deployProgressLabel(detail: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
2
|
+
* `agent-sdk logs` — follow deploy progress (hosted) then runtime `/v1/logs`.
|
|
3
3
|
*
|
|
4
4
|
* Customer-facing output never includes hosting URLs, tokens, or infra jargon.
|
|
5
5
|
*/
|
|
@@ -75,7 +75,7 @@ export function sanitizeCustomerError(message) {
|
|
|
75
75
|
.replace(/\bgitCheckout:fetch\b/gi, "checkout");
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
* One-line label for `
|
|
78
|
+
* One-line label for `agent-sdk deploy` polling (TTY spinner / non-TTY
|
|
79
79
|
* transitions). Uses statusMessage → progress → raw status.
|
|
80
80
|
*/
|
|
81
81
|
export function deployProgressLabel(detail) {
|
|
@@ -75,7 +75,7 @@ export function handleStatelessMcpRequest(args) {
|
|
|
75
75
|
return yield transport.handleRequest(args.request);
|
|
76
76
|
}
|
|
77
77
|
catch (error) {
|
|
78
|
-
logger(`[
|
|
78
|
+
logger(`[agent-sdk] ${args.label} request failed: ${describeError(error)}`);
|
|
79
79
|
return new Response(JSON.stringify({
|
|
80
80
|
jsonrpc: "2.0",
|
|
81
81
|
error: { code: -32603, message: "Internal server error." },
|
|
@@ -221,7 +221,7 @@ export class HostMcpOAuthProvider {
|
|
|
221
221
|
token_endpoint_auth_method: "none",
|
|
222
222
|
grant_types: ["authorization_code", "refresh_token"],
|
|
223
223
|
response_types: ["code"],
|
|
224
|
-
client_name: "
|
|
224
|
+
client_name: "Agent SDK",
|
|
225
225
|
};
|
|
226
226
|
}
|
|
227
227
|
get redirectUrl() {
|
|
@@ -347,7 +347,7 @@ export function waitForMcpOAuthCallback(args) {
|
|
|
347
347
|
if (code) {
|
|
348
348
|
res
|
|
349
349
|
.writeHead(200, { "content-type": "text/html; charset=utf-8" })
|
|
350
|
-
.end("<!doctype html><html><body><h1>Authorized</h1><p>Return to
|
|
350
|
+
.end("<!doctype html><html><body><h1>Authorized</h1><p>Return to Agent SDK.</p></body></html>");
|
|
351
351
|
finish({ code, state });
|
|
352
352
|
return;
|
|
353
353
|
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime for `definePersistence` (`agent/persistence.ts`).
|
|
3
|
+
*
|
|
4
|
+
* The coordinator is the single funnel between the engine's hot paths and
|
|
5
|
+
* the author's key-value sink. The sink is four functions (`put` / `get` /
|
|
6
|
+
* `delete` / `list`); the coordinator owns everything else: it mints every
|
|
7
|
+
* key from the versioned scheme ({@link persistenceKeys}), coalesces
|
|
8
|
+
* session records and batches event chunks per turn (or debounce window),
|
|
9
|
+
* serializes delivery on one bounded queue per agent, and isolates
|
|
10
|
+
* failures — a throwing sink is logged and its write dropped; persistence
|
|
11
|
+
* must never stall or fail a turn.
|
|
12
|
+
*
|
|
13
|
+
* Scaling shape: sessions, evals, and A/Bs all reduce to keyed puts on the
|
|
14
|
+
* same queue, so one author-owned sink covers every domain, and new
|
|
15
|
+
* domains are new key prefixes — not new config surface.
|
|
16
|
+
*/
|
|
17
|
+
import type { ABSamplePersistence } from "../ab.js";
|
|
18
|
+
import type { EvalRunPersistence } from "../evals.js";
|
|
19
|
+
import { type PersistenceContext, type PersistenceDefinition, type ResolvedPersistencePolicy } from "../persistence.js";
|
|
20
|
+
import type { SessionEvent, SessionRecord } from "../types.js";
|
|
21
|
+
import type { ABSnapshot } from "./ab-snapshot.js";
|
|
22
|
+
export interface PersistenceCoordinatorOptions {
|
|
23
|
+
definition: PersistenceDefinition;
|
|
24
|
+
agentName: string;
|
|
25
|
+
projectRoot: string;
|
|
26
|
+
logger: (line: string) => void;
|
|
27
|
+
}
|
|
28
|
+
export declare class PersistenceCoordinator {
|
|
29
|
+
readonly policy: ResolvedPersistencePolicy;
|
|
30
|
+
private readonly definition;
|
|
31
|
+
private readonly agentName;
|
|
32
|
+
private readonly projectRoot;
|
|
33
|
+
private readonly logger;
|
|
34
|
+
/** Per-session pending state (events + coalesced record). */
|
|
35
|
+
private readonly buffers;
|
|
36
|
+
/**
|
|
37
|
+
* Last continuation key written to the sink per session, so a token
|
|
38
|
+
* change emits a delete for the stale index entry alongside the new put.
|
|
39
|
+
*/
|
|
40
|
+
private readonly continuationIndex;
|
|
41
|
+
/** Single delivery chain: writes reach the sink serialized, in order. */
|
|
42
|
+
private queue;
|
|
43
|
+
/** Ops on the queue not yet delivered (bounded by MAX_PENDING_OPS). */
|
|
44
|
+
private pending;
|
|
45
|
+
/** Ops dropped because the queue was full. */
|
|
46
|
+
private dropped;
|
|
47
|
+
private lastAbSnapshotAt;
|
|
48
|
+
private closed;
|
|
49
|
+
constructor(options: PersistenceCoordinatorOptions);
|
|
50
|
+
/** Durable session-record update (engine calls after every store save). */
|
|
51
|
+
sessionRecord(record: SessionRecord): void;
|
|
52
|
+
/** One appended session event (engine calls from its dispatch funnel). */
|
|
53
|
+
event(event: SessionEvent): void;
|
|
54
|
+
/**
|
|
55
|
+
* A boundary event's dispatch settled: channel/hook handlers ran and
|
|
56
|
+
* their record updates (channel state, continuation tokens) are
|
|
57
|
+
* buffered. This — not the append — is the turn-end flush point, so the
|
|
58
|
+
* persisted session record includes the boundary event's own handler
|
|
59
|
+
* mutations. Debounced batching intentionally ignores boundaries.
|
|
60
|
+
*/
|
|
61
|
+
eventDispatched(event: SessionEvent): void;
|
|
62
|
+
/** Flush everything buffered for one session (ordered: events, record). */
|
|
63
|
+
flushSession(sessionId: string, reason?: PersistenceContext["reason"]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Index maintenance for `continuation/{channelId}/{token}` → sessionId:
|
|
66
|
+
* put the current token, delete the previous one when it changed.
|
|
67
|
+
*/
|
|
68
|
+
private continuationOps;
|
|
69
|
+
/** Whether the sink can serve the startup bulk restore (`list`). */
|
|
70
|
+
get canBulkRestore(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Saved session records for this agent (startup restore). Errors are
|
|
73
|
+
* logged and read as "nothing saved" — a broken store must never block
|
|
74
|
+
* serve start.
|
|
75
|
+
*/
|
|
76
|
+
listSessions(): Promise<SessionRecord[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Saved event stream for one session: chunk values concatenated in key
|
|
79
|
+
* order (chunks are keyed by their first event's index, zero-padded, so
|
|
80
|
+
* ascending key order is append order). Errors read as an empty stream.
|
|
81
|
+
*/
|
|
82
|
+
listSessionEvents(sessionId: string): Promise<SessionEvent[]>;
|
|
83
|
+
/**
|
|
84
|
+
* One saved session by channel continuation key (lazy restore). Unlike
|
|
85
|
+
* the startup reads, sink errors **propagate**: a failing store must
|
|
86
|
+
* fail the follow-up (which the caller can retry) rather than read as
|
|
87
|
+
* "unknown token" — that would mint a new session under the same
|
|
88
|
+
* continuation key and permanently shadow the real one on this host.
|
|
89
|
+
* A definitive miss (no index entry, or a write-only sink without
|
|
90
|
+
* `get`) resolves undefined.
|
|
91
|
+
*/
|
|
92
|
+
getSessionByContinuation(channelId: string, continuationKey: string): Promise<SessionRecord | undefined>;
|
|
93
|
+
/**
|
|
94
|
+
* Adapter for {@link EvalRunPersistence} so the playground eval store
|
|
95
|
+
* can fall back to this sink when `evals.config.ts` sets no
|
|
96
|
+
* `persistRuns`.
|
|
97
|
+
*/
|
|
98
|
+
asEvalRunPersistence(): EvalRunPersistence;
|
|
99
|
+
/**
|
|
100
|
+
* Adapter for {@link ABSamplePersistence} so the AB collector can fall
|
|
101
|
+
* back to this sink when `ab.config.ts` sets no `persistSamples`.
|
|
102
|
+
*/
|
|
103
|
+
asABSamplePersistence(): ABSamplePersistence;
|
|
104
|
+
/**
|
|
105
|
+
* Refresh the persisted aggregate A/B snapshot, throttled to once per
|
|
106
|
+
* {@link AB_SNAPSHOT_MIN_INTERVAL_MS} (the playground recomputes the
|
|
107
|
+
* fold on every `GET /v1/abs` poll).
|
|
108
|
+
*/
|
|
109
|
+
abSnapshot(snapshot: ABSnapshot): void;
|
|
110
|
+
/** Latest persisted aggregate A/B snapshot; errors read as absent. */
|
|
111
|
+
getLatestAbSnapshot(): Promise<ABSnapshot | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* Flush all buffers and drain the queue, giving the sink at most
|
|
114
|
+
* {@link CLOSE_DRAIN_TIMEOUT_MS} — a hung sink must not stall shutdown
|
|
115
|
+
* past the pod grace period. Called from engine close.
|
|
116
|
+
*/
|
|
117
|
+
close(): Promise<void>;
|
|
118
|
+
/** Pending deliveries (exposed for tests and drain instrumentation). */
|
|
119
|
+
whenIdle(): Promise<void>;
|
|
120
|
+
private buffer;
|
|
121
|
+
private armDebounce;
|
|
122
|
+
/** `list` wrapper for the startup reads: missing hook or throw ⇒ empty. */
|
|
123
|
+
private tryList;
|
|
124
|
+
private enqueue;
|
|
125
|
+
private context;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=persistence-coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence-coordinator.d.ts","sourceRoot":"","sources":["../../src/internal/persistence-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAE1B,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAa,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyCnD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,qBAAqB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AASD,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IACtE,yEAAyE;IACzE,OAAO,CAAC,KAAK,CAAoC;IACjD,uEAAuE;IACvE,OAAO,CAAC,OAAO,CAAK;IACpB,8CAA8C;IAC9C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,OAAO,EAAE,6BAA6B,EAMjD;IAMD,2EAA2E;IAC3E,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAMzC;IAED,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAoB/B;IAED;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CASzC;IAED,2EAA2E;IAC3E,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,kBAAkB,CAAC,QAAQ,CAAY,GAC9C,IAAI,CAiCN;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;IAoCvB,oEAAoE;IACpE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAO7C;IAED;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAWlE;IAED;;;;;;;;OAQG;IACG,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAgDpC;IAMD;;;;OAIG;IACH,oBAAoB,IAAI,kBAAkB,CAkCzC;IAMD;;;OAGG;IACH,qBAAqB,IAAI,mBAAmB,CAmB3C;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAmBrC;IAED,sEAAsE;IAChE,mBAAmB,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAiB3D;IAMD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB3B;IAED,wEAAwE;IACxE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAExB;IAED,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,WAAW;IAgBnB,2EAA2E;YAC7D,OAAO;IAkBrB,OAAO,CAAC,OAAO;IAqCf,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -30,7 +30,7 @@ export function syncHostedPlatformSchedules(args) {
|
|
|
30
30
|
}
|
|
31
31
|
catch (error) {
|
|
32
32
|
failedDeletes.push(name);
|
|
33
|
-
args.logger(`[
|
|
33
|
+
args.logger(`[agent-sdk] platform timer delete failed for schedule "${name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
for (const schedule of args.schedules) {
|
|
@@ -41,7 +41,7 @@ export function syncHostedPlatformSchedules(args) {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
catch (error) {
|
|
44
|
-
args.logger(`[
|
|
44
|
+
args.logger(`[agent-sdk] platform timer upsert failed for schedule "${schedule.name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
// Keep failed removals in the catalog so the next boot retries them.
|
|
@@ -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) {
|