@cursor/july 0.1.102 → 0.1.104
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 +34 -32
- package/README.md +10 -12
- package/dist/ab.d.ts +1 -1
- package/dist/ab.js +1 -1
- package/dist/bin/agent-serve.d.ts +12 -12
- package/dist/bin/agent-serve.js +114 -36
- package/dist/channels/bitbucket/api.d.ts +176 -0
- package/dist/channels/bitbucket/api.d.ts.map +1 -0
- package/dist/channels/bitbucket/api.js +419 -0
- package/dist/channels/bitbucket/binding.d.ts +71 -0
- package/dist/channels/bitbucket/binding.d.ts.map +1 -0
- package/dist/channels/bitbucket/binding.js +269 -0
- package/dist/channels/bitbucket/bitbucket-channel.d.ts +33 -0
- package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -0
- package/dist/channels/bitbucket/bitbucket-channel.js +120 -0
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +61 -0
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -0
- package/dist/channels/bitbucket/bitbucket-webhook.js +394 -0
- package/dist/channels/bitbucket/checks.d.ts +67 -0
- package/dist/channels/bitbucket/checks.d.ts.map +1 -0
- package/dist/channels/bitbucket/checks.js +102 -0
- package/dist/channels/bitbucket/cursor-account.d.ts +37 -0
- package/dist/channels/bitbucket/cursor-account.d.ts.map +1 -0
- package/dist/channels/bitbucket/cursor-account.js +65 -0
- package/dist/channels/bitbucket/defaults.d.ts +26 -0
- package/dist/channels/bitbucket/defaults.d.ts.map +1 -0
- package/dist/channels/bitbucket/defaults.js +73 -0
- package/dist/channels/bitbucket/events.d.ts +22 -0
- package/dist/channels/bitbucket/events.d.ts.map +1 -0
- package/dist/channels/bitbucket/events.js +64 -0
- package/dist/channels/bitbucket/index.d.ts +34 -0
- package/dist/channels/bitbucket/index.d.ts.map +1 -0
- package/dist/channels/bitbucket/index.js +33 -0
- package/dist/channels/bitbucket/replay.d.ts +63 -0
- package/dist/channels/bitbucket/replay.d.ts.map +1 -0
- package/dist/channels/bitbucket/replay.js +304 -0
- package/dist/channels/bitbucket/state.d.ts +35 -0
- package/dist/channels/bitbucket/state.d.ts.map +1 -0
- package/dist/channels/bitbucket/state.js +21 -0
- package/dist/channels/bitbucket/types.d.ts +229 -0
- package/dist/channels/bitbucket/types.d.ts.map +1 -0
- package/dist/channels/bitbucket/types.js +1 -0
- package/dist/channels/change-monitors/change-monitors-channel.d.ts +5 -0
- package/dist/channels/change-monitors/change-monitors-channel.d.ts.map +1 -0
- package/dist/channels/change-monitors/change-monitors-channel.js +41 -0
- package/dist/channels/change-monitors/index.d.ts +4 -0
- package/dist/channels/change-monitors/index.d.ts.map +1 -0
- package/dist/channels/change-monitors/index.js +2 -0
- package/dist/channels/change-monitors/types.d.ts +39 -0
- package/dist/channels/change-monitors/types.d.ts.map +1 -0
- package/dist/channels/change-monitors/types.js +1 -0
- package/dist/channels/deployments/deployments-channel.d.ts +22 -14
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +25 -27
- package/dist/channels/deployments/types.d.ts +12 -6
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/binding.d.ts +6 -0
- package/dist/channels/github/binding.d.ts.map +1 -1
- package/dist/channels/github/binding.js +3 -3
- package/dist/channels/github/cursor-account.d.ts +7 -3
- package/dist/channels/github/cursor-account.d.ts.map +1 -1
- package/dist/channels/github/cursor-account.js +10 -6
- package/dist/channels/github/defaults.d.ts.map +1 -1
- package/dist/channels/github/defaults.js +4 -0
- package/dist/channels/github/events.d.ts +1 -1
- package/dist/channels/github/events.js +1 -1
- package/dist/channels/github/forward.d.ts +1 -1
- package/dist/channels/github/forward.d.ts.map +1 -1
- package/dist/channels/github/forward.js +3 -2
- package/dist/channels/github/github-channel.d.ts +29 -39
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +68 -101
- package/dist/channels/github/progress.d.ts +22 -0
- package/dist/channels/github/progress.d.ts.map +1 -1
- package/dist/channels/github/progress.js +32 -5
- package/dist/channels/github/replay.d.ts +1 -1
- package/dist/channels/github/replay.js +1 -1
- package/dist/channels/github/state.d.ts +2 -0
- package/dist/channels/github/state.d.ts.map +1 -1
- package/dist/channels/github/state.js +14 -11
- package/dist/channels/github/types.d.ts +2 -4
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/api.d.ts +91 -0
- package/dist/channels/gitlab/api.d.ts.map +1 -0
- package/dist/channels/gitlab/api.js +150 -0
- package/dist/channels/gitlab/binding.d.ts +58 -0
- package/dist/channels/gitlab/binding.d.ts.map +1 -0
- package/dist/channels/gitlab/binding.js +139 -0
- package/dist/channels/gitlab/checks.d.ts +110 -0
- package/dist/channels/gitlab/checks.d.ts.map +1 -0
- package/dist/channels/gitlab/checks.js +126 -0
- package/dist/channels/gitlab/cursor-account.d.ts +36 -0
- package/dist/channels/gitlab/cursor-account.d.ts.map +1 -0
- package/dist/channels/gitlab/cursor-account.js +65 -0
- package/dist/channels/gitlab/defaults.d.ts +25 -0
- package/dist/channels/gitlab/defaults.d.ts.map +1 -0
- package/dist/channels/gitlab/defaults.js +60 -0
- package/dist/channels/gitlab/events.d.ts +12 -0
- package/dist/channels/gitlab/events.d.ts.map +1 -0
- package/dist/channels/gitlab/events.js +28 -0
- package/dist/channels/gitlab/gitlab-channel.d.ts +33 -0
- package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -0
- package/dist/channels/gitlab/gitlab-channel.js +120 -0
- package/dist/channels/gitlab/gitlab-webhook.d.ts +45 -0
- package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -0
- package/dist/channels/gitlab/gitlab-webhook.js +397 -0
- package/dist/channels/gitlab/index.d.ts +31 -0
- package/dist/channels/gitlab/index.d.ts.map +1 -0
- package/dist/channels/gitlab/index.js +30 -0
- package/dist/channels/gitlab/replay.d.ts +105 -0
- package/dist/channels/gitlab/replay.d.ts.map +1 -0
- package/dist/channels/gitlab/replay.js +206 -0
- package/dist/channels/gitlab/state.d.ts +33 -0
- package/dist/channels/gitlab/state.d.ts.map +1 -0
- package/dist/channels/gitlab/state.js +23 -0
- package/dist/channels/gitlab/types.d.ts +214 -0
- package/dist/channels/gitlab/types.d.ts.map +1 -0
- package/dist/channels/gitlab/types.js +1 -0
- package/dist/channels/issues/index.d.ts +4 -0
- package/dist/channels/issues/index.d.ts.map +1 -0
- package/dist/channels/issues/index.js +2 -0
- package/dist/channels/issues/issues-channel.d.ts +5 -0
- package/dist/channels/issues/issues-channel.d.ts.map +1 -0
- package/dist/channels/issues/issues-channel.js +37 -0
- package/dist/channels/issues/types.d.ts +33 -0
- package/dist/channels/issues/types.d.ts.map +1 -0
- package/dist/channels/issues/types.js +1 -0
- package/dist/channels/origin/api.d.ts.map +1 -1
- package/dist/channels/origin/api.js +4 -2
- package/dist/channels/origin/origin-channel.d.ts +4 -9
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +8 -48
- package/dist/channels/origin/types.d.ts +20 -2
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +1 -7
- package/dist/channels/slack/init.d.ts.map +1 -1
- package/dist/channels/slack/init.js +3 -3
- package/dist/channels/slack/setup.d.ts +1 -1
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +6 -13
- package/dist/channels/slack/types.d.ts +1 -1
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels.d.ts +1 -1
- package/dist/channels.d.ts.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/connections.d.ts +1 -1
- package/dist/connections.js +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.CLA03RCz.js → app.DbMWUyGb.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.Bqsulb9K.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.ifxv-cJV.js → VPLocalSearchBox.DcNeTh9o.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DWCwM6p-.js → theme.DMjhY3gl.js} +2 -2
- package/dist/docs/assets/concepts.md.DgEcZOfT.js +1 -0
- package/dist/docs/assets/{concepts.md.rPzW2HZN.lean.js → concepts.md.DgEcZOfT.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.CPzDAwoH.js → evals.md.CbMoebP1.js} +1 -1
- package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +9 -0
- package/dist/docs/assets/{guides_github.md.BtPr9GaP.js → guides_github.md.c0gdGJ-D.js} +1 -1
- package/dist/docs/assets/{guides_github.md.BtPr9GaP.lean.js → guides_github.md.c0gdGJ-D.lean.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.js → guides_opentelemetry.md.COh9jFVg.js} +7 -8
- package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.lean.js → guides_opentelemetry.md.COh9jFVg.lean.js} +1 -1
- package/dist/docs/assets/{index.md.Kiht7ell.js → index.md.D75GWhPl.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.js → reference_agent-config.md.CHNpiyp4.js} +3 -3
- package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.js → reference_channels.md.DBGcaB7m.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.lean.js → reference_channels.md.DBGcaB7m.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.DfoeyvL0.js → reference_cli.md.CJNc_xYK.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.9WQMZe1l.js → reference_extensions.md.DykHW3qL.js} +11 -5
- package/dist/docs/assets/reference_extensions.md.DykHW3qL.lean.js +1 -0
- package/dist/docs/assets/reference_hooks.md.Ddt5DdgJ.js +73 -0
- package/dist/docs/assets/{reference_hooks.md.a8BJxMR5.lean.js → reference_hooks.md.Ddt5DdgJ.lean.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.DnX5nL-B.js → reference_playground.md.4myJPxrf.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.js → reference_project-layout.md.DuBu9a96.js} +2 -2
- package/dist/docs/assets/reference_result.md.BK5SxDrf.js +19 -0
- package/dist/docs/assets/reference_result.md.BK5SxDrf.lean.js +1 -0
- package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.js → reference_sessions.md.CueyOHSL.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.lean.js → reference_sessions.md.CueyOHSL.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.B1up2r9W.js → reference_tools.md.aGrn99hP.js} +1 -1
- package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +1 -0
- package/dist/docs/assets/{skills_otel.md.CgiZryR3.js → skills_otel.md.CqhobH3B.js} +3 -3
- package/dist/docs/assets/{skills_otel.md.CgiZryR3.lean.js → skills_otel.md.CqhobH3B.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.js → templates_pr-autofixer.md.Bds_XWcV.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.lean.js → templates_pr-autofixer.md.Bds_XWcV.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +2 -4
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/design/filesystem.md +376 -0
- package/dist/docs/design/runtime-abstraction.md +2 -3
- package/dist/docs/evals.html +6 -6
- package/dist/docs/evals.md +9 -7
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-agents.html +6 -6
- package/dist/docs/guides/cloud-agents.md +4 -6
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/github.md +5 -1
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +5 -5
- package/dist/docs/guides/opentelemetry.html +10 -11
- package/dist/docs/guides/opentelemetry.md +41 -17
- package/dist/docs/guides/slack.html +4 -4
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +2 -2
- package/dist/docs/llms-full.txt +907 -262
- package/dist/docs/llms.txt +3 -2
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +8 -8
- package/dist/docs/reference/agent-config.md +6 -10
- package/dist/docs/reference/artifacts.html +5 -5
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +38 -8
- package/dist/docs/reference/cli.html +5 -5
- package/dist/docs/reference/cli.md +3 -4
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/extensions.html +16 -10
- package/dist/docs/reference/extensions.md +86 -22
- package/dist/docs/reference/hooks.html +69 -10
- package/dist/docs/reference/hooks.md +215 -46
- package/dist/docs/reference/http-api.html +4 -4
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/playground.md +3 -0
- package/dist/docs/reference/project-layout.html +6 -6
- package/dist/docs/reference/project-layout.md +2 -1
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/result.html +45 -0
- package/dist/docs/reference/result.md +89 -0
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/sessions.md +3 -1
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +5 -5
- package/dist/docs/reference/tools.md +1 -2
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/skills/ab.html +4 -4
- package/dist/docs/skills/create-agent.html +4 -4
- package/dist/docs/skills/debug.html +4 -4
- package/dist/docs/skills/evals.html +4 -4
- package/dist/docs/skills/framework-map.html +5 -5
- package/dist/docs/skills/framework-map.md +3 -1
- package/dist/docs/skills/github.html +4 -4
- package/dist/docs/skills/hillclimb.html +4 -4
- package/dist/docs/skills/index.html +4 -4
- package/dist/docs/skills/mcp-auth.html +4 -4
- package/dist/docs/skills/otel.html +7 -7
- package/dist/docs/skills/otel.md +8 -3
- package/dist/docs/skills/setup-slack.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/pr-autofixer.md +0 -3
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/evals.d.ts +1 -1
- package/dist/evals.d.ts.map +1 -1
- package/dist/extensions.d.ts +20 -7
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +36 -5
- package/dist/files.d.ts +16 -3
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +16 -3
- package/dist/filesystem.d.ts +440 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +1694 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/internal/ab-snapshot.d.ts.map +1 -1
- package/dist/internal/ab-snapshot.js +0 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +1 -3
- package/dist/internal/authored-alias-hooks.d.ts +4 -13
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +4 -20
- package/dist/internal/authored-loaders.d.ts +2 -3
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +6 -20
- package/dist/internal/channel-dispatch.d.ts +43 -0
- package/dist/internal/channel-dispatch.d.ts.map +1 -0
- package/dist/internal/channel-dispatch.js +77 -0
- package/dist/internal/chat-client.d.ts +1 -1
- package/dist/internal/chat-client.js +1 -1
- package/dist/internal/cli-ax.d.ts +5 -5
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +5 -5
- package/dist/internal/cli-bitbucket.d.ts +33 -0
- package/dist/internal/cli-bitbucket.d.ts.map +1 -0
- package/dist/internal/cli-bitbucket.js +359 -0
- package/dist/internal/cli-convert-automation.d.ts +1 -1
- package/dist/internal/cli-convert-automation.js +2 -2
- package/dist/internal/cli-cursor.d.ts +1 -1
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +2 -4
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +2 -6
- package/dist/internal/cli-github.d.ts +1 -1
- package/dist/internal/cli-github.js +3 -3
- package/dist/internal/cli-gitlab.d.ts +37 -0
- package/dist/internal/cli-gitlab.d.ts.map +1 -0
- package/dist/internal/cli-gitlab.js +380 -0
- package/dist/internal/cli-mcp.d.ts.map +1 -1
- package/dist/internal/cli-mcp.js +2 -6
- package/dist/internal/cli-slack.d.ts +1 -1
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +2 -4
- package/dist/internal/continuation-channel.d.ts +18 -2
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +67 -5
- package/dist/internal/continuation-identity.d.ts +24 -17
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +246 -32
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +4 -3
- package/dist/internal/convert-automation/types.d.ts +1 -1
- package/dist/internal/convert-automation/types.js +1 -1
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +1 -3
- package/dist/internal/cursor/backend-client.d.ts +5 -4
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +5 -6
- package/dist/internal/cursor/bound-secret-file.d.ts +56 -0
- package/dist/internal/cursor/bound-secret-file.d.ts.map +1 -0
- package/dist/internal/cursor/bound-secret-file.js +88 -0
- package/dist/internal/cursor/credentials.d.ts +39 -5
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +58 -8
- package/dist/internal/cursor/hosted-bound-secrets.d.ts +41 -0
- package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -0
- package/dist/internal/cursor/hosted-bound-secrets.js +54 -0
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts +19 -5
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-deployment-secrets.js +29 -9
- package/dist/internal/cursor/hosted-store-secrets.d.ts +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +1 -1
- package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +2 -4
- package/dist/internal/cursor-deployment-relay.d.ts +6 -2
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +13 -9
- package/dist/internal/deploy-manifest.d.ts +1 -1
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +1 -1
- package/dist/internal/discovery/ab.d.ts +1 -1
- package/dist/internal/discovery/ab.d.ts.map +1 -1
- package/dist/internal/discovery/ab.js +21 -9
- package/dist/internal/discovery/agent.d.ts +6 -1
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +141 -120
- package/dist/internal/discovery/channels.d.ts +1 -1
- package/dist/internal/discovery/channels.d.ts.map +1 -1
- package/dist/internal/discovery/channels.js +14 -14
- package/dist/internal/discovery/connections.d.ts +1 -5
- package/dist/internal/discovery/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +30 -44
- package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -1
- package/dist/internal/discovery/cursor-plugin.js +1 -3
- package/dist/internal/discovery/extension-overlay.d.ts +32 -0
- package/dist/internal/discovery/extension-overlay.d.ts.map +1 -0
- package/dist/internal/discovery/extension-overlay.js +191 -0
- package/dist/internal/discovery/extensions.d.ts +11 -2
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +211 -74
- package/dist/internal/discovery/hooks.d.ts +1 -1
- package/dist/internal/discovery/hooks.d.ts.map +1 -1
- package/dist/internal/discovery/hooks.js +15 -2
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +10 -1
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +8 -2
- package/dist/internal/discovery/names.d.ts +1 -1
- package/dist/internal/discovery/names.d.ts.map +1 -1
- package/dist/internal/discovery/names.js +1 -0
- package/dist/internal/discovery/project.d.ts +0 -2
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +64 -10
- package/dist/internal/discovery/runtime.d.ts.map +1 -1
- package/dist/internal/discovery/runtime.js +1 -2
- package/dist/internal/discovery/schedules.d.ts +1 -1
- package/dist/internal/discovery/schedules.d.ts.map +1 -1
- package/dist/internal/discovery/schedules.js +23 -2
- package/dist/internal/discovery/services.d.ts +6 -2
- package/dist/internal/discovery/services.d.ts.map +1 -1
- package/dist/internal/discovery/services.js +31 -1
- package/dist/internal/discovery/skills.d.ts +1 -6
- package/dist/internal/discovery/skills.d.ts.map +1 -1
- package/dist/internal/discovery/skills.js +8 -3
- package/dist/internal/discovery/subagent.d.ts +3 -0
- package/dist/internal/discovery/subagent.d.ts.map +1 -1
- package/dist/internal/discovery/subagent.js +109 -0
- package/dist/internal/discovery.d.ts +1 -2
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +1 -2
- package/dist/internal/distribution.d.ts +10 -27
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +25 -73
- package/dist/internal/docs-site.js +1 -1
- package/dist/internal/eval-run-store.d.ts +0 -1
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/factory-resource-channel.d.ts +33 -0
- package/dist/internal/factory-resource-channel.d.ts.map +1 -0
- package/dist/internal/factory-resource-channel.js +77 -0
- package/dist/internal/filesystem/errors.d.ts +64 -0
- package/dist/internal/filesystem/errors.d.ts.map +1 -0
- package/dist/internal/filesystem/errors.js +175 -0
- package/dist/internal/filesystem/format.d.ts +28 -0
- package/dist/internal/filesystem/format.d.ts.map +1 -0
- package/dist/internal/filesystem/format.js +213 -0
- package/dist/internal/filesystem/merge.d.ts +34 -0
- package/dist/internal/filesystem/merge.d.ts.map +1 -0
- package/dist/internal/filesystem/merge.js +196 -0
- package/dist/internal/filesystem/scratch.d.ts +59 -0
- package/dist/internal/filesystem/scratch.d.ts.map +1 -0
- package/dist/internal/filesystem/scratch.js +212 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts +29 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -0
- package/dist/internal/filesystem/sdk-schemas.js +153 -0
- package/dist/internal/filesystem/tools.d.ts +42 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -0
- package/dist/internal/filesystem/tools.js +618 -0
- package/dist/internal/filesystem/walk.d.ts +74 -0
- package/dist/internal/filesystem/walk.d.ts.map +1 -0
- package/dist/internal/filesystem/walk.js +339 -0
- package/dist/internal/framework-file-storage.d.ts +8 -0
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +8 -8
- package/dist/internal/github-fanout.d.ts +1 -1
- package/dist/internal/github-fanout.js +1 -1
- package/dist/internal/guest-network.d.ts +104 -0
- package/dist/internal/guest-network.d.ts.map +1 -0
- package/dist/internal/guest-network.js +309 -0
- package/dist/internal/host-otel.d.ts +3 -3
- package/dist/internal/host-otel.d.ts.map +1 -1
- package/dist/internal/host-otel.js +8 -4
- package/dist/internal/hosted-admission-adapter.d.ts +8 -7
- package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +6 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +18 -5
- package/dist/internal/hosted-delivery.d.ts +18 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +258 -118
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +1 -3
- package/dist/internal/init-interview.d.ts.map +1 -1
- package/dist/internal/init-interview.js +1 -3
- package/dist/internal/init-project.d.ts +2 -2
- package/dist/internal/init-project.js +2 -2
- package/dist/internal/inline-stdio-define-stub.d.ts +1 -1
- package/dist/internal/inline-stdio-define-stub.d.ts.map +1 -1
- package/dist/internal/inline-stdio-define-stub.js +1 -1
- package/dist/internal/is-record.d.ts +2 -0
- package/dist/internal/is-record.d.ts.map +1 -0
- package/dist/internal/is-record.js +3 -0
- package/dist/internal/json-schema.d.ts.map +1 -1
- package/dist/internal/json-schema.js +18 -10
- package/dist/internal/local-control-plane.d.ts +1 -2
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +3 -20
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +1 -3
- package/dist/internal/otel/collector.d.ts +12 -3
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +77 -125
- package/dist/internal/otel/config.d.ts +0 -2
- package/dist/internal/otel/config.d.ts.map +1 -1
- package/dist/internal/otel/config.js +17 -20
- package/dist/internal/otel/http.d.ts +2 -0
- package/dist/internal/otel/http.d.ts.map +1 -1
- package/dist/internal/otel/http.js +7 -1
- package/dist/internal/otel/mcp.d.ts.map +1 -1
- package/dist/internal/otel/mcp.js +3 -16
- package/dist/internal/otel/runtime.d.ts +26 -1
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +164 -15
- package/dist/internal/package-inline-stdio.d.ts.map +1 -1
- package/dist/internal/package-inline-stdio.js +3 -11
- package/dist/internal/playground/toolchain.d.ts +1 -1
- package/dist/internal/playground/toolchain.d.ts.map +1 -1
- package/dist/internal/playground/toolchain.js +1 -1
- package/dist/internal/request-error-status.d.ts +12 -0
- package/dist/internal/request-error-status.d.ts.map +1 -0
- package/dist/internal/request-error-status.js +52 -0
- package/dist/internal/resolve-prod-target.d.ts +1 -1
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +3 -7
- package/dist/internal/result-output.d.ts +18 -0
- package/dist/internal/result-output.d.ts.map +1 -0
- package/dist/internal/result-output.js +33 -0
- package/dist/internal/run-client.d.ts +2 -2
- package/dist/internal/run-client.js +2 -2
- package/dist/internal/runtime-dispatch-runner.d.ts +1 -11
- package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
- package/dist/internal/runtime-dispatch-runner.js +2 -15
- package/dist/internal/sdk-runner.d.ts +1 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +6 -7
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +110 -35
- package/dist/internal/session-cost.d.ts +3 -3
- package/dist/internal/session-cost.d.ts.map +1 -1
- package/dist/internal/session-cost.js +3 -3
- package/dist/internal/session-engine.d.ts +48 -11
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +507 -115
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +1 -3
- package/dist/internal/skills-sync.d.ts +1 -4
- package/dist/internal/skills-sync.d.ts.map +1 -1
- package/dist/internal/skills-sync.js +10 -50
- package/dist/internal/sleep.d.ts +2 -0
- package/dist/internal/sleep.d.ts.map +1 -0
- package/dist/internal/sleep.js +3 -0
- package/dist/internal/store-mirror.d.ts +29 -0
- package/dist/internal/store-mirror.d.ts.map +1 -0
- package/dist/internal/store-mirror.js +70 -0
- package/dist/internal/tenant-slack/relay.d.ts +73 -0
- package/dist/internal/tenant-slack/relay.d.ts.map +1 -0
- package/dist/internal/tenant-slack/relay.js +138 -0
- package/dist/internal/testing/factory-resource-fixtures.d.ts +48 -0
- package/dist/internal/testing/factory-resource-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/factory-resource-fixtures.js +41 -0
- package/dist/internal/testing/scm-continuation-fixtures.d.ts +33 -0
- package/dist/internal/testing/scm-continuation-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/scm-continuation-fixtures.js +253 -0
- package/dist/internal/workspace-sync.d.ts +22 -0
- package/dist/internal/workspace-sync.d.ts.map +1 -0
- package/dist/internal/workspace-sync.js +49 -0
- package/dist/internal/workspace.d.ts +7 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +13 -0
- package/dist/otel.d.ts +23 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +93 -2
- package/dist/playground/assets/index-8YiozU89.js +67 -0
- package/dist/playground/assets/index-MbMxXg-y.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/result.d.ts +24 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +27 -0
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +7 -4
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +1 -3
- package/dist/types.d.ts +141 -26
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +2 -2
- package/docs/concepts.md +2 -4
- package/docs/design/filesystem.md +376 -0
- package/docs/design/runtime-abstraction.md +2 -3
- package/docs/evals.md +9 -7
- package/docs/guides/cloud-agents.md +4 -6
- package/docs/guides/github.md +5 -1
- package/docs/guides/opentelemetry.md +41 -17
- package/docs/reference/agent-config.md +6 -10
- package/docs/reference/channels.md +38 -8
- package/docs/reference/cli.md +3 -4
- package/docs/reference/extensions.md +87 -23
- package/docs/reference/hooks.md +215 -46
- package/docs/reference/playground.md +3 -0
- package/docs/reference/project-layout.md +2 -1
- package/docs/reference/result.md +94 -0
- package/docs/reference/sessions.md +3 -1
- package/docs/reference/tools.md +1 -2
- package/docs/templates/pr-autofixer.md +0 -3
- package/package.json +42 -9
- package/skills/framework-map/SKILL.md +3 -1
- package/skills/otel/SKILL.md +8 -3
- package/src/ab.ts +1 -1
- package/src/bin/agent-serve.ts +121 -21
- package/src/channels/bitbucket/api.ts +623 -0
- package/src/channels/bitbucket/binding.ts +414 -0
- package/src/channels/bitbucket/bitbucket-channel.ts +182 -0
- package/src/channels/bitbucket/bitbucket-webhook.ts +576 -0
- package/src/channels/bitbucket/checks.ts +154 -0
- package/src/channels/bitbucket/cursor-account.ts +117 -0
- package/src/channels/bitbucket/defaults.ts +110 -0
- package/src/channels/bitbucket/events.ts +84 -0
- package/src/channels/bitbucket/index.ts +49 -0
- package/src/channels/bitbucket/replay.ts +439 -0
- package/src/channels/bitbucket/state.ts +59 -0
- package/src/channels/bitbucket/types.ts +266 -0
- package/src/channels/change-monitors/change-monitors-channel.ts +62 -0
- package/src/channels/change-monitors/index.ts +8 -0
- package/src/channels/change-monitors/types.ts +44 -0
- package/src/channels/deployments/deployments-channel.ts +25 -43
- package/src/channels/deployments/types.ts +12 -6
- package/src/channels/github/binding.ts +8 -1
- package/src/channels/github/cursor-account.ts +17 -6
- package/src/channels/github/defaults.ts +4 -0
- package/src/channels/github/events.ts +1 -1
- package/src/channels/github/forward.ts +3 -2
- package/src/channels/github/github-channel.ts +74 -221
- package/src/channels/github/progress.ts +76 -10
- package/src/channels/github/replay.ts +1 -1
- package/src/channels/github/state.ts +6 -0
- package/src/channels/github/types.ts +2 -5
- package/src/channels/gitlab/api.ts +228 -0
- package/src/channels/gitlab/binding.ts +233 -0
- package/src/channels/gitlab/checks.ts +243 -0
- package/src/channels/gitlab/cursor-account.ts +114 -0
- package/src/channels/gitlab/defaults.ts +93 -0
- package/src/channels/gitlab/events.ts +44 -0
- package/src/channels/gitlab/gitlab-channel.ts +176 -0
- package/src/channels/gitlab/gitlab-webhook.ts +555 -0
- package/src/channels/gitlab/index.ts +43 -0
- package/src/channels/gitlab/replay.ts +347 -0
- package/src/channels/gitlab/state.ts +55 -0
- package/src/channels/gitlab/types.ts +263 -0
- package/src/channels/issues/index.ts +9 -0
- package/src/channels/issues/issues-channel.ts +51 -0
- package/src/channels/issues/types.ts +41 -0
- package/src/channels/origin/api.ts +4 -2
- package/src/channels/origin/origin-channel.ts +19 -94
- package/src/channels/origin/types.ts +23 -2
- package/src/channels/slack/eval-directive.ts +1 -6
- package/src/channels/slack/init.ts +6 -3
- package/src/channels/slack/setup.ts +7 -6
- package/src/channels/slack/types.ts +1 -1
- package/src/channels.ts +0 -1
- package/src/client.ts +1 -1
- package/src/connections.ts +1 -1
- package/src/evals.ts +1 -1
- package/src/extensions.ts +47 -5
- package/src/files.ts +21 -3
- package/src/filesystem.ts +2074 -0
- package/src/index.ts +48 -28
- package/src/internal/ab-snapshot.ts +0 -3
- package/src/internal/advertise-tools.ts +1 -4
- package/src/internal/authored-alias-hooks.ts +4 -21
- package/src/internal/authored-loaders.ts +6 -23
- package/src/internal/channel-dispatch.ts +160 -0
- package/src/internal/chat-client.ts +1 -1
- package/src/internal/cli-ax.ts +5 -5
- package/src/internal/cli-bitbucket.ts +477 -0
- package/src/internal/cli-convert-automation.ts +7 -7
- package/src/internal/cli-cursor.ts +2 -5
- package/src/internal/cli-deploy.ts +2 -8
- package/src/internal/cli-github.ts +3 -3
- package/src/internal/cli-gitlab.ts +485 -0
- package/src/internal/cli-mcp.ts +2 -7
- package/src/internal/cli-slack.ts +2 -5
- package/src/internal/continuation-channel.ts +102 -4
- package/src/internal/continuation-identity.ts +338 -35
- package/src/internal/conversation-mirror.ts +4 -3
- package/src/internal/convert-automation/types.ts +1 -1
- package/src/internal/cursor/account-mcp.ts +1 -4
- package/src/internal/cursor/backend-client.ts +9 -10
- package/src/internal/cursor/bound-secret-file.ts +108 -0
- package/src/internal/cursor/credentials.ts +75 -10
- package/src/internal/cursor/hosted-bound-secrets.ts +75 -0
- package/src/internal/cursor/hosted-deployment-secrets.ts +42 -11
- package/src/internal/cursor/hosted-store-secrets.ts +1 -1
- package/src/internal/cursor-account-mcp-auth.ts +2 -5
- package/src/internal/cursor-deployment-relay.ts +11 -7
- package/src/internal/deploy-manifest.ts +4 -2
- package/src/internal/discovery/ab.ts +29 -9
- package/src/internal/discovery/agent.ts +181 -136
- package/src/internal/discovery/channels.ts +15 -13
- package/src/internal/discovery/connections.ts +55 -50
- package/src/internal/discovery/cursor-plugin.ts +1 -4
- package/src/internal/discovery/extension-overlay.ts +274 -0
- package/src/internal/discovery/extensions.ts +330 -105
- package/src/internal/discovery/hooks.ts +20 -2
- package/src/internal/discovery/info.ts +10 -0
- package/src/internal/discovery/modules.ts +8 -2
- package/src/internal/discovery/names.ts +2 -1
- package/src/internal/discovery/project.ts +80 -9
- package/src/internal/discovery/runtime.ts +1 -2
- package/src/internal/discovery/schedules.ts +28 -2
- package/src/internal/discovery/services.ts +37 -1
- package/src/internal/discovery/skills.ts +13 -3
- package/src/internal/discovery/subagent.ts +107 -0
- package/src/internal/discovery.ts +0 -2
- package/src/internal/distribution.ts +35 -83
- package/src/internal/docs-site.ts +1 -1
- package/src/internal/eval-run-store.ts +0 -7
- package/src/internal/eval-runner.ts +0 -1
- package/src/internal/factory-resource-channel.ts +122 -0
- package/src/internal/filesystem/errors.ts +220 -0
- package/src/internal/filesystem/format.ts +276 -0
- package/src/internal/filesystem/merge.ts +195 -0
- package/src/internal/filesystem/scratch.ts +255 -0
- package/src/internal/filesystem/sdk-schemas.ts +204 -0
- package/src/internal/filesystem/tools.ts +821 -0
- package/src/internal/filesystem/walk.ts +369 -0
- package/src/internal/framework-file-storage.ts +8 -8
- package/src/internal/github-fanout.ts +1 -1
- package/src/internal/guest-network.ts +389 -0
- package/src/internal/host-otel.ts +8 -4
- package/src/internal/hosted-admission-adapter.ts +8 -8
- package/src/internal/hosted-delivery-protocol.ts +26 -1
- package/src/internal/hosted-delivery.ts +393 -192
- package/src/internal/http-channel.ts +1 -4
- package/src/internal/init-interview.ts +1 -4
- package/src/internal/init-project.ts +2 -2
- package/src/internal/inline-stdio-define-stub.ts +1 -1
- package/src/internal/is-record.ts +3 -0
- package/src/internal/json-schema.ts +19 -10
- package/src/internal/local-control-plane.ts +5 -24
- package/src/internal/mcp-endpoint.ts +1 -4
- package/src/internal/otel/collector.ts +94 -159
- package/src/internal/otel/config.ts +10 -14
- package/src/internal/otel/http.ts +14 -1
- package/src/internal/otel/mcp.ts +3 -16
- package/src/internal/otel/runtime.ts +240 -25
- package/src/internal/package-inline-stdio.ts +3 -12
- package/src/internal/playground/toolchain.ts +1 -1
- package/src/internal/request-error-status.ts +72 -0
- package/src/internal/resolve-prod-target.ts +3 -8
- package/src/internal/result-output.ts +34 -0
- package/src/internal/run-client.ts +2 -2
- package/src/internal/runtime-dispatch-runner.ts +3 -21
- package/src/internal/sdk-runner.ts +7 -7
- package/src/internal/server.ts +153 -44
- package/src/internal/session-cost.ts +3 -3
- package/src/internal/session-engine.ts +621 -103
- package/src/internal/session-run-log.ts +1 -4
- package/src/internal/skills-sync.ts +13 -63
- package/src/internal/sleep.ts +3 -0
- package/src/internal/store-mirror.ts +86 -0
- package/src/internal/tenant-slack/relay.ts +179 -0
- package/src/internal/testing/factory-resource-fixtures.ts +85 -0
- package/src/internal/testing/scm-continuation-fixtures.ts +286 -0
- package/src/internal/workspace-sync.ts +55 -0
- package/src/internal/workspace.ts +14 -0
- package/src/otel.ts +143 -3
- package/src/result.ts +36 -0
- package/src/storage-backends/cursor-hosted.ts +7 -4
- package/src/storage-protocol.ts +1 -4
- package/src/types.ts +154 -37
- package/templates/triage/agent/lib/types.ts +0 -2
- package/dist/continuation.d.ts +0 -20
- package/dist/continuation.d.ts.map +0 -1
- package/dist/continuation.js +0 -18
- package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +0 -1
- package/dist/docs/assets/concepts.md.rPzW2HZN.js +0 -1
- package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.lean.js +0 -1
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +0 -1
- package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +0 -14
- package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +0 -1
- package/dist/docs/guides/cloud-runtime.html +0 -35
- package/dist/docs/guides/cloud-runtime.md +0 -117
- package/dist/internal/convert-automation/index.d.ts +0 -3
- package/dist/internal/convert-automation/index.d.ts.map +0 -1
- package/dist/internal/convert-automation/index.js +0 -1
- package/dist/internal/grokbot/runner.d.ts +0 -64
- package/dist/internal/grokbot/runner.d.ts.map +0 -1
- package/dist/internal/grokbot/runner.js +0 -282
- package/dist/internal/managed-delivery.d.ts +0 -80
- package/dist/internal/managed-delivery.d.ts.map +0 -1
- package/dist/internal/managed-delivery.js +0 -86
- package/dist/internal/review-comments.d.ts +0 -370
- package/dist/internal/review-comments.d.ts.map +0 -1
- package/dist/internal/review-comments.js +0 -921
- package/dist/internal/shallow-clone.d.ts +0 -176
- package/dist/internal/shallow-clone.d.ts.map +0 -1
- package/dist/internal/shallow-clone.js +0 -419
- package/dist/playground/assets/index-B6C9S9nG.css +0 -1
- package/dist/playground/assets/index-ZqNoT8Ie.js +0 -69
- package/docs/guides/cloud-runtime.md +0 -122
- package/src/continuation.ts +0 -49
- package/src/internal/convert-automation/index.ts +0 -10
- package/src/internal/grokbot/runner.ts +0 -370
- package/src/internal/managed-delivery.ts +0 -125
- package/src/internal/review-comments.ts +0 -1363
- package/src/internal/shallow-clone.ts +0 -609
- /package/dist/docs/assets/{evals.md.CPzDAwoH.lean.js → evals.md.CbMoebP1.lean.js} +0 -0
- /package/dist/docs/assets/{guides_cloud-agents.md.DumwWXba.lean.js → guides_cloud-agents.md.DS8RIjwx.lean.js} +0 -0
- /package/dist/docs/assets/{index.md.Kiht7ell.lean.js → index.md.D75GWhPl.lean.js} +0 -0
- /package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.lean.js → reference_agent-config.md.CHNpiyp4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_cli.md.DfoeyvL0.lean.js → reference_cli.md.CJNc_xYK.lean.js} +0 -0
- /package/dist/docs/assets/{reference_playground.md.DnX5nL-B.lean.js → reference_playground.md.4myJPxrf.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.lean.js → reference_project-layout.md.DuBu9a96.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.B1up2r9W.lean.js → reference_tools.md.aGrn99hP.lean.js} +0 -0
- /package/dist/docs/assets/{skills_framework-map.md.DDa4MeEW.lean.js → skills_framework-map.md.haibFyoB.lean.js} +0 -0
|
@@ -3,26 +3,16 @@
|
|
|
3
3
|
* turns stay on the Cursor SDK runner, grokbot turns go to the Grok Bot
|
|
4
4
|
* remote client (`internal/grokbot/runner.ts`), which drives the hosted
|
|
5
5
|
* Grok Bot (Sand) harness through the public `/v0/grokbot` session API.
|
|
6
|
-
* Both runners ship in the published package.
|
|
7
6
|
*/
|
|
8
7
|
import type { RunnerTurnRequest, TurnOutcome } from "../types.js";
|
|
9
|
-
import type { GrokBotRunnerOptions } from "./grokbot/runner.js";
|
|
10
8
|
import type { AgentRunner, PrewarmOutcome, RunnerPrewarmRequest, SteerAckOutcome } from "./sdk-runner.js";
|
|
11
9
|
export interface RuntimeDispatchingRunnerOptions {
|
|
12
10
|
sdkRunner: AgentRunner;
|
|
13
|
-
grokbot
|
|
14
|
-
/** Test seam — replaces the real Grok Bot remote client. */
|
|
15
|
-
createGrokBotRunner?: (options: GrokBotRunnerOptions) => AgentRunner;
|
|
11
|
+
grokbot: AgentRunner;
|
|
16
12
|
}
|
|
17
13
|
export declare class RuntimeDispatchingRunner implements AgentRunner {
|
|
18
14
|
private readonly options;
|
|
19
|
-
private grokbotRunner;
|
|
20
15
|
constructor(options: RuntimeDispatchingRunnerOptions);
|
|
21
|
-
/**
|
|
22
|
-
* The Grok Bot remote client, created on first use; a missing API key
|
|
23
|
-
* surfaces on the first grokbot turn, not at serve start.
|
|
24
|
-
*/
|
|
25
|
-
ensureGrokBotRunner(): AgentRunner;
|
|
26
16
|
runTurn(request: RunnerTurnRequest): Promise<TurnOutcome>;
|
|
27
17
|
steer(request: {
|
|
28
18
|
sessionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-dispatch-runner.d.ts","sourceRoot":"","sources":["../../src/internal/runtime-dispatch-runner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runtime-dispatch-runner.d.ts","sourceRoot":"","sources":["../../src/internal/runtime-dispatch-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,wBAAyB,YAAW,WAAW;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,+BAA+B,EAAI;IAEnE,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAK9D;IAEK,KAAK,CAAC,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,eAAe,CAAC,CAI3B;IAEK,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CASpE;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7B;CACF"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* turns stay on the Cursor SDK runner, grokbot turns go to the Grok Bot
|
|
4
4
|
* remote client (`internal/grokbot/runner.ts`), which drives the hosted
|
|
5
5
|
* Grok Bot (Sand) harness through the public `/v0/grokbot` session API.
|
|
6
|
-
* Both runners ship in the published package.
|
|
7
6
|
*/
|
|
8
7
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
8
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -14,26 +13,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
13
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
14
|
});
|
|
16
15
|
};
|
|
17
|
-
import { GrokBotRunner } from "./grokbot/runner.js";
|
|
18
16
|
export class RuntimeDispatchingRunner {
|
|
19
17
|
constructor(options) {
|
|
20
18
|
this.options = options;
|
|
21
19
|
}
|
|
22
|
-
/**
|
|
23
|
-
* The Grok Bot remote client, created on first use; a missing API key
|
|
24
|
-
* surfaces on the first grokbot turn, not at serve start.
|
|
25
|
-
*/
|
|
26
|
-
ensureGrokBotRunner() {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
var _c, _d, _e;
|
|
29
|
-
const options = (_c = this.options.grokbot) !== null && _c !== void 0 ? _c : {};
|
|
30
|
-
(_d = this.grokbotRunner) !== null && _d !== void 0 ? _d : (this.grokbotRunner = (_e = (_b = (_a = this.options).createGrokBotRunner) === null || _b === void 0 ? void 0 : _b.call(_a, options)) !== null && _e !== void 0 ? _e : new GrokBotRunner(options));
|
|
31
|
-
return this.grokbotRunner;
|
|
32
|
-
}
|
|
33
20
|
runTurn(request) {
|
|
34
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
22
|
if (request.runtime === "grokbot") {
|
|
36
|
-
return this.
|
|
23
|
+
return this.options.grokbot.runTurn(request);
|
|
37
24
|
}
|
|
38
25
|
return this.options.sdkRunner.runTurn(request);
|
|
39
26
|
});
|
|
@@ -61,7 +48,7 @@ export class RuntimeDispatchingRunner {
|
|
|
61
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
49
|
var _a, _b, _c, _d;
|
|
63
50
|
yield (_b = (_a = this.options.sdkRunner).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
64
|
-
yield (_d = (_c = this.
|
|
51
|
+
yield (_d = (_c = this.options.grokbot).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
65
52
|
});
|
|
66
53
|
}
|
|
67
54
|
}
|
|
@@ -31,7 +31,7 @@ export interface AgentRunner {
|
|
|
31
31
|
* a subset of {@link RunnerTurnRequest} — anything that disagrees warms an
|
|
32
32
|
* executor no turn will ask for.
|
|
33
33
|
*/
|
|
34
|
-
export type RunnerPrewarmRequest = Pick<RunnerTurnRequest, "workspaceDir" | "runnerStateDir" | "sandbox" | "tools" | "mcpServers" | "perSendMcpServers" | "subagents" | "model">;
|
|
34
|
+
export type RunnerPrewarmRequest = Pick<RunnerTurnRequest, "workspaceDir" | "runnerStateDir" | "sandbox" | "tools" | "disallowedTools" | "mcpServers" | "perSendMcpServers" | "subagents" | "model">;
|
|
35
35
|
/** Whether a workspace was actually resolved, and why not when it wasn't. */
|
|
36
36
|
export type PrewarmOutcome = {
|
|
37
37
|
readonly warmed: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-runner.d.ts","sourceRoot":"","sources":["../../src/internal/sdk-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk-runner.d.ts","sourceRoot":"","sources":["../../src/internal/sdk-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAMnE,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAE1E,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,KAAK,CAAC,CAAC,OAAO,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,EACf,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,OAAO,GACP,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,WAAW,GACX,OAAO,CACV,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAcxD;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAA4B,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,IAAI,EAAE;IACxD,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,GAAG,SAAS,CAYrB;AAED,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAwBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKvE;AAwBD,qBAAa,eAAgB,YAAW,WAAW;IAMrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAElE,YAA6B,OAAO,GAAE,sBAA2B,EAShE;IAEK,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwC9D;YAEa,cAAc;IA8HtB,KAAK,CAAC,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,eAAe,CAAC,CAiB3B;IAED;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAepE;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7B;IAED,OAAO,CAAC,QAAQ;IA0BhB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,GAAG;IAIX;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,kBAAkB;IAmB1B;;;OAGG;YACW,iBAAiB;YA6BjB,SAAS;YAOT,cAAc;YAsCd,cAAc;IA6C5B,OAAO,CAAC,YAAY;IAQpB;;;OAGG;YACW,mBAAmB;IAoBjC,OAAO,CAAC,QAAQ;CAajB;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAMT;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,CAQpE;AAiGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,CAExE"}
|
|
@@ -21,6 +21,8 @@ import { DEFAULT_MODEL, } from "../types.js";
|
|
|
21
21
|
import { mapSdkTokenUsage, usageTokenSum } from "./cloud-turn-cost.js";
|
|
22
22
|
import { resolveApiKeySync } from "./cursor/credentials.js";
|
|
23
23
|
import { describeError } from "./describe-error.js";
|
|
24
|
+
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
25
|
+
import { sleep } from "./sleep.js";
|
|
24
26
|
/**
|
|
25
27
|
* How long a non-`--dev` serve holds workspace scans (rules, skills,
|
|
26
28
|
* `AGENTS.md`, ignore files). The SDK default is 20s for an editor whose
|
|
@@ -349,7 +351,7 @@ export class CursorSdkRunner {
|
|
|
349
351
|
requireApiKey() {
|
|
350
352
|
const resolved = resolveApiKeySync({ apiKey: this.options.apiKey });
|
|
351
353
|
if (resolved === undefined) {
|
|
352
|
-
throw new Error(
|
|
354
|
+
throw new Error(`The Cursor SDK runner requires a Cursor credential: run \`${CLI} login\`, set CURSOR_API_KEY or CURSOR_API_KEY_FILE, or pass serve({ apiKey }).`);
|
|
353
355
|
}
|
|
354
356
|
return resolved.apiKey;
|
|
355
357
|
}
|
|
@@ -372,7 +374,9 @@ export class CursorSdkRunner {
|
|
|
372
374
|
// microtask, no thenable assimilation), exactly as before the mirror
|
|
373
375
|
// existed.
|
|
374
376
|
const store = (_a = this.options.store) !== null && _a !== void 0 ? _a : (yield this.getStore(request.runnerStateDir));
|
|
375
|
-
return Object.assign(Object.assign(Object.assign({}, this.buildSharedOptions(request)), (request.tools === undefined ? {} : { tools: request.tools })),
|
|
377
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, this.buildSharedOptions(request)), (request.tools === undefined ? {} : { tools: request.tools })), (request.disallowedTools === undefined
|
|
378
|
+
? {}
|
|
379
|
+
: { disallowedTools: request.disallowedTools })), { local: Object.assign({ cwd: request.workspaceDir, settingSources: ["project"], store }, (request.sandbox === true
|
|
376
380
|
? { sandboxOptions: { enabled: true } }
|
|
377
381
|
: {})) });
|
|
378
382
|
});
|
|
@@ -575,11 +579,6 @@ function fillMissingCloudUsage(agent, runId, outcome) {
|
|
|
575
579
|
return outcome;
|
|
576
580
|
});
|
|
577
581
|
}
|
|
578
|
-
function sleep(ms) {
|
|
579
|
-
return new Promise((resolve) => {
|
|
580
|
-
setTimeout(resolve, ms);
|
|
581
|
-
});
|
|
582
|
-
}
|
|
583
582
|
export function runErrorMessage(result) {
|
|
584
583
|
var _a, _b;
|
|
585
584
|
return ((_b = (_a = result.error) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.trim()) || "The Cursor agent run failed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoDH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;AA2FrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AA8CpE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AASpE,OAAO,EAEL,wBAAwB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAsB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB/E,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACvB;AAmCD,6EAA6E;AAC7E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,yEAAyE;IACzE,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAC5D,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,YAAY,GAAG,0BAA+B,GACtD,OAAO,CAAC,gBAAgB,CAAC,CAmmC3B"}
|
package/dist/internal/server.js
CHANGED
|
@@ -35,14 +35,16 @@ import { Buffer } from "node:buffer";
|
|
|
35
35
|
import { once } from "node:events";
|
|
36
36
|
import { createServer, } from "node:http";
|
|
37
37
|
import { join } from "node:path";
|
|
38
|
+
import { CURSOR_BITBUCKET_REPOS_HEADER, } from "../channels/bitbucket/api.js";
|
|
39
|
+
import { getBitbucketCursorAccountRuntime, resolveCursorBitbucketProxyUrl, } from "../channels/bitbucket/cursor-account.js";
|
|
38
40
|
import { dispatchDeploymentEvent, getDeploymentsChannelOptions, } from "../channels/deployments/deployments-channel.js";
|
|
39
41
|
import { createCursorAccountGithubTokenResolver, createCursorGithubProxyHostResolver, cursorGithubPermissionsForChannel, getGithubCursorAccountRuntime, resolveCursorGithubCredentialScope, resolveCursorGithubPermissions, resolveCursorGithubProxyUrl, } from "../channels/github/cursor-account.js";
|
|
40
42
|
import { findGitHubChannelTargets } from "../channels/github/forward.js";
|
|
43
|
+
import { CURSOR_GITLAB_PROJECTS_HEADER, } from "../channels/gitlab/api.js";
|
|
44
|
+
import { getGitLabCursorAccountRuntime, resolveCursorGitLabProxyUrl, } from "../channels/gitlab/cursor-account.js";
|
|
41
45
|
import { getOriginCursorAccountRuntime, parseCursorOriginRepoScope, } from "../channels/origin/cursor-account.js";
|
|
42
46
|
import { findOriginChannelTargets } from "../channels/origin/origin-channel.js";
|
|
43
47
|
import { allowAll, bearerAuth, localDevStrict } from "../channels.js";
|
|
44
|
-
import { InvalidAsOfError, VacuousTimeArgsError } from "./as-of.js";
|
|
45
|
-
import { V2EngineError } from "./continuation-identity.js";
|
|
46
48
|
import { selectConversationMirror } from "./conversation-mirror.js";
|
|
47
49
|
import { CursorAccountMcpBridge, collectCursorAccountConnections, cursorAccountMcpPath, } from "./cursor/account-mcp.js";
|
|
48
50
|
import { CursorBackendClient } from "./cursor/backend-client.js";
|
|
@@ -56,6 +58,7 @@ import { formatDiagnostics, hasErrorDiagnostics, projectInfo, } from "./discover
|
|
|
56
58
|
import { packageVersion } from "./distribution.js";
|
|
57
59
|
import { docsSiteExists, ensureDocsSiteBundle, renderDocsFile, } from "./docs-site.js";
|
|
58
60
|
import { EvalRunConflictError, EvalRunEmptyError, EvalRunNotRunningError, EvalRunStore, EvalRunUnknownError, } from "./eval-run-store.js";
|
|
61
|
+
import { GUEST_NETWORK_PATH, guestNetworkReadinessResponse, } from "./guest-network.js";
|
|
59
62
|
import { collectGitHubTriggerTargets, collectOriginTriggerTargets, handleAgentServeTrigger, } from "./handleAgentServeTrigger.js";
|
|
60
63
|
import { createHostPlatforms, warmupHostGitHubAuth } from "./host-platforms.js";
|
|
61
64
|
import { registerHostedDeliveryRoute } from "./hosted-delivery.js";
|
|
@@ -72,7 +75,7 @@ import { isLoopbackAddress } from "./net.js";
|
|
|
72
75
|
import { createOtelCollector } from "./otel/collector.js";
|
|
73
76
|
import { pickAuthoredOtel, resolveOtelConfig } from "./otel/config.js";
|
|
74
77
|
import { instrumentHttp } from "./otel/http.js";
|
|
75
|
-
import { createOtelRuntime, shutdownOtelRuntime } from "./otel/runtime.js";
|
|
78
|
+
import { createOtelRuntime, forceFlushOtelRuntime, shutdownOtelRuntime, } from "./otel/runtime.js";
|
|
76
79
|
import { collectPeerConnections } from "./peer-connections.js";
|
|
77
80
|
import { PLATFORM_SCHEDULE_CATALOG_FILENAME, syncHostedPlatformSchedules, } from "./platform-schedule-sync.js";
|
|
78
81
|
import { createCursorHostedPlatformTimers } from "./platform-timers.js";
|
|
@@ -80,12 +83,13 @@ import { renderAgentsIndexHtml, renderPlaygroundAsset, renderPlaygroundIndexHtml
|
|
|
80
83
|
import { ensurePlaygroundBundle, playgroundDevBaseFromEnv, playgroundDevBasePath, startPlaygroundDevServer, } from "./playground/toolchain.js";
|
|
81
84
|
import { collectMemoryHealthFields, sumEventLogStats, } from "./process-memory-telemetry.js";
|
|
82
85
|
import { ReminderRunner, ReminderValidationError, UnknownReminderError, } from "./reminder-runner.js";
|
|
86
|
+
import { mapThrownRequestError } from "./request-error-status.js";
|
|
83
87
|
import { assertAccountConnectionsNotAnonymous, resolveMountConnections, validateMountConnectionsConfig, } from "./resolved-connections.js";
|
|
84
88
|
import { Router } from "./router.js";
|
|
85
89
|
import { RuntimeDispatchingRunner } from "./runtime-dispatch-runner.js";
|
|
86
90
|
import { ScheduleRunner, UnknownScheduleError } from "./schedule-runner.js";
|
|
87
91
|
import { CursorSdkRunner } from "./sdk-runner.js";
|
|
88
|
-
import { InvalidContinuationTokenError,
|
|
92
|
+
import { InvalidContinuationTokenError, SessionEngine, ToolInputError, ToolNotDirectlyCallableError, UnknownToolError, WorkspaceUnavailableError, } from "./session-engine.js";
|
|
89
93
|
import { registerSessionRunFatalFlush, selectSessionRunLogStore, unregisterSessionRunFatalFlush, } from "./session-run-log.js";
|
|
90
94
|
import { sessionUrlsForRequest } from "./session-urls.js";
|
|
91
95
|
import { flushLocalStartLog, selectStartLogStore } from "./start-log-store.js";
|
|
@@ -140,6 +144,7 @@ export function startServer(mounts_1) {
|
|
|
140
144
|
const playground = (_j = options.playground) !== null && _j !== void 0 ? _j : true;
|
|
141
145
|
const hosted = options;
|
|
142
146
|
const noControlPlane = hosted.noControlPlane === true;
|
|
147
|
+
const scmProxyRequested = hosted.cursorScmProxy === true || hosted.cursorGithubProxy === true;
|
|
143
148
|
const runSchedules = (_k = options.schedules) !== null && _k !== void 0 ? _k : !dev;
|
|
144
149
|
const runReminders = (_l = options.reminders) !== null && _l !== void 0 ? _l : !dev;
|
|
145
150
|
// CURSOR_AGENTKIT_VERSION is still the env the SDK reads when building
|
|
@@ -151,15 +156,13 @@ export function startServer(mounts_1) {
|
|
|
151
156
|
name: m.project.name,
|
|
152
157
|
otel: m.project.otel,
|
|
153
158
|
})));
|
|
154
|
-
const
|
|
159
|
+
const resolveOtelExport = () => resolveOtelConfig({
|
|
155
160
|
authored: authoredOtel,
|
|
156
161
|
serve: options.otel,
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
logger("[agent-sdk] otel: agent/otel.ts present but no OTLP exporters configured (set exporters or OTEL_EXPORTER_OTLP_ENDPOINT)");
|
|
162
|
-
}
|
|
162
|
+
});
|
|
163
|
+
const otelRuntime = createOtelRuntime(resolveOtelExport(), logger, {
|
|
164
|
+
resolveExport: resolveOtelExport,
|
|
165
|
+
});
|
|
163
166
|
const cursorGithubTargets = collectCursorGithubTargets(mounts);
|
|
164
167
|
const cursorOriginTargets = collectCursorOriginTargets(mounts);
|
|
165
168
|
const cursorGithubConfig = resolveCursorGithubEventConfig({
|
|
@@ -176,7 +179,7 @@ export function startServer(mounts_1) {
|
|
|
176
179
|
// One resolution for every Cursor credential consumer (SDK runner, account
|
|
177
180
|
// MCP bridge, SCM event relay, GitHub credentials): explicit option →
|
|
178
181
|
// CURSOR_API_KEY → CURSOR_API_KEY_FILE (or the hosted default path) →
|
|
179
|
-
// stored `agent-
|
|
182
|
+
// stored `agent-sdk login`. SDK / GitHub / account MCP re-read later;
|
|
180
183
|
// Slack and deployment-event relays capture the key at start.
|
|
181
184
|
const accountKey = yield resolveApiKey(options.apiKey === undefined ? {} : { apiKey: options.apiKey });
|
|
182
185
|
// First present source wins (we define the order): option → env → file →
|
|
@@ -207,7 +210,7 @@ export function startServer(mounts_1) {
|
|
|
207
210
|
// through github-proxy exactly like channel Octokit calls.
|
|
208
211
|
let hostGithubProxyResolver;
|
|
209
212
|
if (cursorGithubTargets.length > 0) {
|
|
210
|
-
const githubProxyRequested =
|
|
213
|
+
const githubProxyRequested = scmProxyRequested;
|
|
211
214
|
const needsGithubAuth = cursorGithubConfig.scope !== undefined || githubProxyRequested;
|
|
212
215
|
if (needsGithubAuth) {
|
|
213
216
|
const currentGithubApiKey = () => {
|
|
@@ -307,6 +310,73 @@ export function startServer(mounts_1) {
|
|
|
307
310
|
}
|
|
308
311
|
}
|
|
309
312
|
}
|
|
313
|
+
// GitLab `cursorAccount` channels: `ctx.gitlab` routes through the SCM
|
|
314
|
+
// proxy in proxy mode. Without `--cursor-scm-proxy` the runtime stays
|
|
315
|
+
// unbound and the handle falls back to direct `GITLAB_TOKEN` access.
|
|
316
|
+
if (scmProxyRequested) {
|
|
317
|
+
const gitlabProxyUrl = resolveCursorGitLabProxyUrl(cursorExternalApiUrl());
|
|
318
|
+
let gitlabTargets = 0;
|
|
319
|
+
for (const mount of mounts) {
|
|
320
|
+
for (const channel of mount.project.channels) {
|
|
321
|
+
const runtime = getGitLabCursorAccountRuntime(channel.definition);
|
|
322
|
+
if (runtime === undefined) {
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
gitlabTargets += 1;
|
|
326
|
+
const transport = Object.assign({ apiBaseUrl: gitlabProxyUrl }, (runtime.scope === undefined
|
|
327
|
+
? {}
|
|
328
|
+
: {
|
|
329
|
+
headers: {
|
|
330
|
+
[CURSOR_GITLAB_PROJECTS_HEADER]: runtime.scope.projects.join(","),
|
|
331
|
+
},
|
|
332
|
+
}));
|
|
333
|
+
runtime.credentials.bind(() => __awaiter(this, void 0, void 0, function* () {
|
|
334
|
+
const apiKey = liveCursorApiKey();
|
|
335
|
+
if (apiKey === undefined) {
|
|
336
|
+
throw new Error(`gitlabChannel({ cursorAccount }) has no Cursor credential yet. ${SIGN_IN_HINT}`);
|
|
337
|
+
}
|
|
338
|
+
return apiKey;
|
|
339
|
+
}));
|
|
340
|
+
runtime.credentials.bindProxyTransport(transport);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
if (gitlabTargets > 0) {
|
|
344
|
+
logger(`[agent-sdk] GitLab auth: channel API calls route through ${gitlabProxyUrl}`);
|
|
345
|
+
}
|
|
346
|
+
// Bitbucket `cursorAccount` channels: same shape, `/v0/bitbucket-proxy`
|
|
347
|
+
// with `x-cursor-bitbucket-repos` scope. The proxy picks Cloud 2.0 or
|
|
348
|
+
// the DC host's 1.0 upstream per tenant; the pack picks the dialect
|
|
349
|
+
// from the delivery payload.
|
|
350
|
+
const bitbucketProxyUrl = resolveCursorBitbucketProxyUrl(cursorExternalApiUrl());
|
|
351
|
+
let bitbucketTargets = 0;
|
|
352
|
+
for (const mount of mounts) {
|
|
353
|
+
for (const channel of mount.project.channels) {
|
|
354
|
+
const runtime = getBitbucketCursorAccountRuntime(channel.definition);
|
|
355
|
+
if (runtime === undefined) {
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
bitbucketTargets += 1;
|
|
359
|
+
const transport = Object.assign({ apiBaseUrl: bitbucketProxyUrl }, (runtime.scope === undefined
|
|
360
|
+
? {}
|
|
361
|
+
: {
|
|
362
|
+
headers: {
|
|
363
|
+
[CURSOR_BITBUCKET_REPOS_HEADER]: runtime.scope.repos.join(","),
|
|
364
|
+
},
|
|
365
|
+
}));
|
|
366
|
+
runtime.credentials.bind(() => __awaiter(this, void 0, void 0, function* () {
|
|
367
|
+
const apiKey = liveCursorApiKey();
|
|
368
|
+
if (apiKey === undefined) {
|
|
369
|
+
throw new Error(`bitbucketChannel({ cursorAccount }) has no Cursor credential yet. ${SIGN_IN_HINT}`);
|
|
370
|
+
}
|
|
371
|
+
return apiKey;
|
|
372
|
+
}));
|
|
373
|
+
runtime.credentials.bindProxyTransport(transport);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
if (bitbucketTargets > 0) {
|
|
377
|
+
logger(`[agent-sdk] Bitbucket auth: channel API calls route through ${bitbucketProxyUrl}`);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
310
380
|
const resolvedCursorGithubCredentials = cursorGithubCredentials;
|
|
311
381
|
const hostGithubToken = hostGithubProxyResolver !== null && hostGithubProxyResolver !== void 0 ? hostGithubProxyResolver : (resolvedCursorGithubCredentials === undefined
|
|
312
382
|
? undefined
|
|
@@ -387,16 +457,22 @@ export function startServer(mounts_1) {
|
|
|
387
457
|
}
|
|
388
458
|
let runner = sdkRunner;
|
|
389
459
|
if (hasGrokBotMounts && options.runner === undefined) {
|
|
460
|
+
// Cursor-internal client, left out of the npm tarball (`files`); loaded
|
|
461
|
+
// only when a mount needs it, so a published install fails here, before
|
|
462
|
+
// listen, rather than on the first turn.
|
|
463
|
+
const { GrokBotRunner } = yield import("./grokbot/runner.js").catch(() => {
|
|
464
|
+
throw new Error('runtime: "grokbot" is not available in the published @cursor/july package');
|
|
465
|
+
});
|
|
390
466
|
runner = new RuntimeDispatchingRunner({
|
|
391
467
|
sdkRunner,
|
|
392
|
-
grokbot:
|
|
393
|
-
|
|
394
|
-
: { apiKey: options.apiKey })), {
|
|
468
|
+
grokbot: new GrokBotRunner({
|
|
469
|
+
apiKey: options.apiKey,
|
|
395
470
|
// `/v0/grokbot` lives on the external API (api.cursor.com), not
|
|
396
471
|
// api2. Prefer that default over the account key's backendUrl.
|
|
397
472
|
// Do not pass stored login as apiKey: that would pin it as an
|
|
398
473
|
// option and beat a later CURSOR_API_KEY_FILE bind.
|
|
399
|
-
backendUrl: cursorExternalApiUrl()
|
|
474
|
+
backendUrl: cursorExternalApiUrl(),
|
|
475
|
+
}),
|
|
400
476
|
});
|
|
401
477
|
logger("[agent-sdk] grokbot runtime: remote client (turns run on the hosted Grok Bot harness)");
|
|
402
478
|
}
|
|
@@ -535,7 +611,7 @@ export function startServer(mounts_1) {
|
|
|
535
611
|
multi,
|
|
536
612
|
logger,
|
|
537
613
|
logRing, diagStateRoot: baseStateRoot, sessionRunLog,
|
|
538
|
-
flushStartLog }, (options.authToken === undefined
|
|
614
|
+
flushStartLog, flushOtel: () => forceFlushOtelRuntime(otelRuntime) }, (options.authToken === undefined
|
|
539
615
|
? {}
|
|
540
616
|
: { authToken: options.authToken })), (options.allowAnonymous === true ? { allowAnonymous: true } : {})), (accountRefs !== undefined && accountBridge !== undefined
|
|
541
617
|
? { accountBridge, accountRefs }
|
|
@@ -663,7 +739,6 @@ export function startServer(mounts_1) {
|
|
|
663
739
|
})),
|
|
664
740
|
});
|
|
665
741
|
const collectGitHubTargets = () => collectGitHubTargetsFrom(runtimes);
|
|
666
|
-
const collectOriginTargets = () => collectOriginTargetsFrom(runtimes);
|
|
667
742
|
const v1Runtimes = runtimes.filter((runtime) => !isV2Project(runtime.project));
|
|
668
743
|
const v2Runtimes = runtimes.filter((runtime) => isV2Project(runtime.project));
|
|
669
744
|
const v1Mounts = mounts.filter((mount) => !isV2Project(mount.project));
|
|
@@ -1004,7 +1079,7 @@ function mountAgentRoutes(router, runtime, args) {
|
|
|
1004
1079
|
runtime,
|
|
1005
1080
|
channelId,
|
|
1006
1081
|
hostedSessionId,
|
|
1007
|
-
}), drainSessionDurability: (sessionId) => engine.drainSessionDurability(sessionId) }, (args.diagStateRoot === undefined
|
|
1082
|
+
}), drainSessionDurability: (sessionId) => engine.drainSessionDurability(sessionId), flushOtel: args.flushOtel }, (args.diagStateRoot === undefined
|
|
1008
1083
|
? {}
|
|
1009
1084
|
: { stateRoot: args.diagStateRoot })), (sessionRunLog === undefined
|
|
1010
1085
|
? {}
|
|
@@ -1041,6 +1116,15 @@ function mountAgentRoutes(router, runtime, args) {
|
|
|
1041
1116
|
// version from the process that will serve turns, with no second request.
|
|
1042
1117
|
handler: () => jsonResponse(Object.assign({ ok: true, name: project.name, version: packageVersion() }, memoryHealthFields([engine]))),
|
|
1043
1118
|
});
|
|
1119
|
+
// TAS polls this after `/v1/health` and before the hosted POST. Auth none
|
|
1120
|
+
// mirrors health: the engine is reachable only through the anyrun port
|
|
1121
|
+
// proxy (network token) or the alias route.
|
|
1122
|
+
router.add({
|
|
1123
|
+
method: "GET",
|
|
1124
|
+
pattern: `${base}${GUEST_NETWORK_PATH}`,
|
|
1125
|
+
auth: "none",
|
|
1126
|
+
handler: () => guestNetworkReadinessResponse(),
|
|
1127
|
+
});
|
|
1044
1128
|
// Bootstrap the SPA can't derive from its own URL (agent name, dev mode, and
|
|
1045
1129
|
// — in multi-agent mode — where the agents index lives).
|
|
1046
1130
|
router.add({
|
|
@@ -2038,11 +2122,11 @@ function startCursorDeploymentRelay(input) {
|
|
|
2038
2122
|
logger("[agent-sdk] deployment-events: skipped while unsigned; long-poll relays need a key at start");
|
|
2039
2123
|
return undefined;
|
|
2040
2124
|
}
|
|
2041
|
-
throw new Error(`This project has channels subscribed to deployment events (deploymentsChannel({
|
|
2125
|
+
throw new Error(`This project has channels subscribed to deployment events (deploymentsChannel({ ... })) but the host is not signed in to Cursor. ${SIGN_IN_HINT}`);
|
|
2042
2126
|
}
|
|
2043
2127
|
// Union is re-resolved on each heartbeat and fan-out so a channel that
|
|
2044
|
-
//
|
|
2045
|
-
//
|
|
2128
|
+
// fills `deploySourceUris` after start registers the new URIs. This wire
|
|
2129
|
+
// names every source, so a channel that omits the option registers nothing.
|
|
2046
2130
|
const initial = liveDeploymentSubscriptionUnion(targets);
|
|
2047
2131
|
if (initial.length === 0) {
|
|
2048
2132
|
logger(`[agent-sdk] deployment-events: no deploy sources yet on ${targets
|
|
@@ -2134,18 +2218,9 @@ function handleRequest(router, req, res, logger) {
|
|
|
2134
2218
|
}
|
|
2135
2219
|
}
|
|
2136
2220
|
catch (error) {
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
else if (error instanceof V2EngineError) {
|
|
2141
|
-
response = errorResponse(409, "v2_identity_conflict", "Control-plane session identity conflicts with existing state.");
|
|
2142
|
-
}
|
|
2143
|
-
else if (error instanceof SessionAuthError) {
|
|
2144
|
-
response = errorResponse(403, "forbidden", error.message);
|
|
2145
|
-
}
|
|
2146
|
-
else if (error instanceof InvalidAsOfError ||
|
|
2147
|
-
error instanceof VacuousTimeArgsError) {
|
|
2148
|
-
response = errorResponse(400, "invalid_request", error.message);
|
|
2221
|
+
const mapped = mapThrownRequestError(error);
|
|
2222
|
+
if (mapped !== undefined) {
|
|
2223
|
+
response = errorResponse(mapped.status, mapped.code, mapped.message);
|
|
2149
2224
|
}
|
|
2150
2225
|
else {
|
|
2151
2226
|
logger(`[agent-sdk] request failed: ${error instanceof Error
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-session cost metrics folded from a durable session event stream.
|
|
3
3
|
*
|
|
4
|
-
* Powers `agent-
|
|
4
|
+
* Powers `agent-sdk cost [sessionId]`: each `turn.completed` event carries
|
|
5
5
|
* the turn's token usage and the estimated dollar cost recorded by the
|
|
6
6
|
* engine via `POST /v1/models/estimate-cost`, so a session's spend is a
|
|
7
7
|
* pure fold over its `events.ndjson`. `GET /v1/session/:id/cost` is the
|
|
@@ -36,7 +36,7 @@ export declare function emptySessionCostTotals(): SessionCostTotals;
|
|
|
36
36
|
export declare function addSessionCostTotals(target: SessionCostTotals, delta: SessionCostTotals): void;
|
|
37
37
|
/** Fold a session event stream into per-turn and total cost metrics. */
|
|
38
38
|
export declare function buildSessionCostReport(events: readonly SessionEvent[]): SessionCostReport;
|
|
39
|
-
/** Per-turn table for `agent-
|
|
39
|
+
/** Per-turn table for `agent-sdk cost <sessionId>`. */
|
|
40
40
|
export declare function formatSessionCostText(report: SessionCostReport): string;
|
|
41
41
|
export interface SessionCostRow {
|
|
42
42
|
sessionId: string;
|
|
@@ -45,6 +45,6 @@ export interface SessionCostRow {
|
|
|
45
45
|
updatedAt?: string;
|
|
46
46
|
totals: SessionCostTotals;
|
|
47
47
|
}
|
|
48
|
-
/** All-sessions table for `agent-
|
|
48
|
+
/** All-sessions table for `agent-sdk cost` (no session id). */
|
|
49
49
|
export declare function formatSessionsCostText(rows: SessionCostRow[]): string;
|
|
50
50
|
//# sourceMappingURL=session-cost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cost.d.ts","sourceRoot":"","sources":["../../src/internal/session-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrE,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,IAAI,iBAAiB,CAW1D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,iBAAiB,GACvB,IAAI,CASN;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,iBAAiB,CAyCnB;AAMD,
|
|
1
|
+
{"version":3,"file":"session-cost.d.ts","sourceRoot":"","sources":["../../src/internal/session-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrE,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,IAAI,iBAAiB,CAW1D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,iBAAiB,GACvB,IAAI,CASN;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,iBAAiB,CAyCnB;AAMD,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4CvE;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAsCrE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-session cost metrics folded from a durable session event stream.
|
|
3
3
|
*
|
|
4
|
-
* Powers `agent-
|
|
4
|
+
* Powers `agent-sdk cost [sessionId]`: each `turn.completed` event carries
|
|
5
5
|
* the turn's token usage and the estimated dollar cost recorded by the
|
|
6
6
|
* engine via `POST /v1/models/estimate-cost`, so a session's spend is a
|
|
7
7
|
* pure fold over its `events.ndjson`. `GET /v1/session/:id/cost` is the
|
|
@@ -76,7 +76,7 @@ export function buildSessionCostReport(events) {
|
|
|
76
76
|
function formatCount(value) {
|
|
77
77
|
return String(value);
|
|
78
78
|
}
|
|
79
|
-
/** Per-turn table for `agent-
|
|
79
|
+
/** Per-turn table for `agent-sdk cost <sessionId>`. */
|
|
80
80
|
export function formatSessionCostText(report) {
|
|
81
81
|
const lines = [];
|
|
82
82
|
lines.push(`session ${report.sessionId || "(unknown)"} cost: ${formatCostUsd(report.totals.costUsd)}`);
|
|
@@ -120,7 +120,7 @@ export function formatSessionCostText(report) {
|
|
|
120
120
|
appendUnpricedNote(lines, report.totals.unpricedTurns);
|
|
121
121
|
return `${lines.join("\n")}\n`;
|
|
122
122
|
}
|
|
123
|
-
/** All-sessions table for `agent-
|
|
123
|
+
/** All-sessions table for `agent-sdk cost` (no session id). */
|
|
124
124
|
export function formatSessionsCostText(rows) {
|
|
125
125
|
if (rows.length === 0) {
|
|
126
126
|
return "No sessions.\n";
|
|
@@ -157,8 +157,8 @@ export declare class SessionEngine {
|
|
|
157
157
|
private readonly restoreInFlight;
|
|
158
158
|
/** Once-per-process cache for the A/B snapshot backfill (see abSnapshot). */
|
|
159
159
|
private restoredAbSnapshot;
|
|
160
|
-
/** In-flight
|
|
161
|
-
private
|
|
160
|
+
/** In-flight authored files → Agent Store syncs (see syncToCloudStore). */
|
|
161
|
+
private readonly cloudSyncs;
|
|
162
162
|
private readonly runner;
|
|
163
163
|
private readonly logger;
|
|
164
164
|
private readonly logs;
|
|
@@ -236,6 +236,12 @@ export declare class SessionEngine {
|
|
|
236
236
|
private readonly cloudCostBackfillDone;
|
|
237
237
|
/** Deduped in-flight cloud cost backfills, keyed by session id. */
|
|
238
238
|
private readonly cloudCostBackfill;
|
|
239
|
+
/** Per-session FileSystem handle cache (not a tree snapshot). */
|
|
240
|
+
private readonly sessionRoots;
|
|
241
|
+
/** In-flight factory resolves, so the first turn and a racing callTool share one handle. */
|
|
242
|
+
private readonly sessionRootInflight;
|
|
243
|
+
/** Per-turn `unionFs({ "/": authored, "/tmp": tempFs() })`. Dropped at end of turn. */
|
|
244
|
+
private readonly turnRoots;
|
|
239
245
|
constructor(options: SessionEngineOptions);
|
|
240
246
|
/**
|
|
241
247
|
* Attach serve-time resolved connections (peers, Cursor account bridge).
|
|
@@ -252,9 +258,9 @@ export declare class SessionEngine {
|
|
|
252
258
|
/** Shared host services (MCP / GitHub / Slack / reminders / evals / kv / files / otel / Slack nudges). */
|
|
253
259
|
get host(): HostContext;
|
|
254
260
|
/**
|
|
255
|
-
* Host services with `files` bound to one session, so a relative
|
|
256
|
-
*
|
|
257
|
-
*
|
|
261
|
+
* Host services with `files` and `otel` bound to one session, so a relative
|
|
262
|
+
* path resolves to that session's scope and can never read another
|
|
263
|
+
* session's. Unbound (no session) keeps `host.files` usable for
|
|
258
264
|
* `{ scope: "deployment" }` and fails loudly on session-scoped calls.
|
|
259
265
|
*/
|
|
260
266
|
private hostForSession;
|
|
@@ -417,6 +423,22 @@ export declare class SessionEngine {
|
|
|
417
423
|
*/
|
|
418
424
|
getContinuationLastBotMessageTs(channelId: string, continuationToken: string): Promise<string | undefined>;
|
|
419
425
|
interruptContinuation(channelId: string, continuationToken: string): Promise<boolean>;
|
|
426
|
+
private hasRootOverride;
|
|
427
|
+
/**
|
|
428
|
+
* FileSystem for this turn or `callTool`. Authored `root` (static or
|
|
429
|
+
* factory) is cached per session when `cache` is set; unscoped
|
|
430
|
+
* `callTool` passes the invocation id and does not cache, so factories
|
|
431
|
+
* cannot share one tree across callers. A static handle is used as
|
|
432
|
+
* authored — every session sees that same object. Host-default agents
|
|
433
|
+
* get `localFileSystem` against the harness cwd — same path verbs as
|
|
434
|
+
* the Cursor SDK natives, always through the synthesized tools.
|
|
435
|
+
*/
|
|
436
|
+
private resolveFileSystem;
|
|
437
|
+
private resolveAuthoredFileSystem;
|
|
438
|
+
private dropTurnFileSystem;
|
|
439
|
+
private prepareScratchToolInput;
|
|
440
|
+
private withTurnScratchTools;
|
|
441
|
+
private nativeFileSystemOutcome;
|
|
420
442
|
/**
|
|
421
443
|
* Local harness cwd for a session: per-send override, else the shared
|
|
422
444
|
* `agent.local.workspaceDir`, else `<agent.local.cwd>/<sessionId>`, else
|
|
@@ -449,24 +471,33 @@ export declare class SessionEngine {
|
|
|
449
471
|
* first-turn S3 scan can discover them. False when the sync fails: the
|
|
450
472
|
* turn then runs without store skills rather than pointing discovery at
|
|
451
473
|
* paths that do not exist.
|
|
452
|
-
|
|
453
|
-
|
|
474
|
+
*/
|
|
475
|
+
private ensureCloudSkillsSynced;
|
|
476
|
+
/**
|
|
477
|
+
* Sync `agent/sandbox/workspace/**` seeds onto the Agent Store at
|
|
478
|
+
* `workspace/…` (hosted) or `agent-serve/<agent>/workspace/…`
|
|
479
|
+
* (personal-key local+cloud) before the first cloud prompt, which names
|
|
480
|
+
* the mounted directory (see buildCloudWorkspaceSection).
|
|
481
|
+
*/
|
|
482
|
+
private ensureCloudWorkspaceSynced;
|
|
483
|
+
/**
|
|
484
|
+
* With files authored, every first cloud turn re-copies the authored
|
|
454
485
|
* bytes and the memo only dedupes concurrent first turns. The mount is
|
|
455
486
|
* writable from cloud sessions, so a once-per-process copy would let one
|
|
456
487
|
* session's edits masquerade as agent definition for every later session
|
|
457
488
|
* until the engine restarts; re-syncing keeps the store true to discovery
|
|
458
489
|
* the same way local materialization always rewrites skills. Without
|
|
459
|
-
*
|
|
460
|
-
* process is enough, success or not — a deployment without the files
|
|
490
|
+
* authored files the sync is best-effort stale cleanup and one attempt
|
|
491
|
+
* per process is enough, success or not — a deployment without the files
|
|
461
492
|
* surface must not fail and log on every new session for a feature it
|
|
462
493
|
* does not use.
|
|
463
494
|
*/
|
|
464
|
-
private
|
|
495
|
+
private syncToCloudStore;
|
|
465
496
|
/**
|
|
466
497
|
* Hosted deployments own the deployment store. Local `serve`/`run` with
|
|
467
498
|
* a personal API key writes into the USER store under `agent-serve/`.
|
|
468
499
|
*/
|
|
469
|
-
private
|
|
500
|
+
private cloudStore;
|
|
470
501
|
private buildTurnRequest;
|
|
471
502
|
/**
|
|
472
503
|
* Connection names a cloud turn can only reach through the host connection
|
|
@@ -523,6 +554,12 @@ export declare class SessionEngine {
|
|
|
523
554
|
hasActiveTurn(sessionId: string): boolean;
|
|
524
555
|
callActiveServerTool(sessionId: string, toolName: string, input: unknown): Promise<SDKCustomToolResult>;
|
|
525
556
|
private executeServerTool;
|
|
557
|
+
/**
|
|
558
|
+
* Bind outbound inject (Factory / Cursor API `traceparent`) to the
|
|
559
|
+
* turn span for the whole harness run. Host files / VFS RPCs happen
|
|
560
|
+
* here, not under `runInCall`. No-op when OTel is off.
|
|
561
|
+
*/
|
|
562
|
+
private runTurnExecute;
|
|
526
563
|
/**
|
|
527
564
|
* Bind outbound inject (Factory / Cursor API `traceparent`) to the
|
|
528
565
|
* tool span. No-op when OTel is off.
|