@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
|
@@ -10,6 +10,7 @@ import type { Histogram, Meter, Tracer } from "@opentelemetry/api";
|
|
|
10
10
|
import { DiagLogLevel, diag, metrics, trace } from "@opentelemetry/api";
|
|
11
11
|
import type { Logger as OtelLogger } from "@opentelemetry/api-logs";
|
|
12
12
|
import { logs } from "@opentelemetry/api-logs";
|
|
13
|
+
import { type ExportResult, ExportResultCode } from "@opentelemetry/core";
|
|
13
14
|
import { OTLPLogExporter as OTLPLogExporterHttp } from "@opentelemetry/exporter-logs-otlp-http";
|
|
14
15
|
import { OTLPLogExporter as OTLPLogExporterProto } from "@opentelemetry/exporter-logs-otlp-proto";
|
|
15
16
|
import { OTLPMetricExporter as OTLPMetricExporterHttp } from "@opentelemetry/exporter-metrics-otlp-http";
|
|
@@ -29,6 +30,12 @@ import {
|
|
|
29
30
|
MeterProvider,
|
|
30
31
|
PeriodicExportingMetricReader,
|
|
31
32
|
} from "@opentelemetry/sdk-metrics";
|
|
33
|
+
import type {
|
|
34
|
+
ReadableSpan,
|
|
35
|
+
SpanExporter,
|
|
36
|
+
SpanProcessor,
|
|
37
|
+
} from "@opentelemetry/sdk-trace-base";
|
|
38
|
+
import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
32
39
|
import {
|
|
33
40
|
BatchSpanProcessor,
|
|
34
41
|
NodeTracerProvider,
|
|
@@ -39,28 +46,63 @@ import {
|
|
|
39
46
|
ATTR_SERVICE_NAME,
|
|
40
47
|
ATTR_SERVICE_VERSION,
|
|
41
48
|
} from "@opentelemetry/semantic-conventions";
|
|
42
|
-
import
|
|
49
|
+
import {
|
|
50
|
+
installOutboundFetchInstrumentation,
|
|
51
|
+
type OtelExporterConfig,
|
|
52
|
+
type OtelSignal,
|
|
53
|
+
} from "../../otel.js";
|
|
43
54
|
import { exportersForSignal, type ResolvedOtelConfig } from "./config.js";
|
|
44
55
|
import { ensureW3cPropagator } from "./propagation.js";
|
|
45
56
|
|
|
46
57
|
const INSTRUMENTATION = "agent_sdk";
|
|
47
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Hosted v2 pods may be frozen or destroyed as soon as the HTTP reply
|
|
61
|
+
* lands. Bound the exporter wait so a slow collector cannot hold the
|
|
62
|
+
* delivery (OTLP BatchSpanProcessor defaults to 30s).
|
|
63
|
+
*/
|
|
64
|
+
export const OTEL_FORCE_FLUSH_TIMEOUT_MS = 1_000;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* First hosted OTLP POST may include a cold TLS handshake to Datadog.
|
|
68
|
+
* Bound separately from {@link OTEL_FORCE_FLUSH_TIMEOUT_MS} so the
|
|
69
|
+
* queued turn/tool batch is not abandoned after 1s.
|
|
70
|
+
*/
|
|
71
|
+
export const OTEL_DEFERRED_EXPORT_TIMEOUT_MS = 5_000;
|
|
72
|
+
|
|
73
|
+
/** Drop oldest finished spans when no collector has drained the buffer. */
|
|
74
|
+
export const OTEL_IN_MEMORY_SPAN_LIMIT = 2_048;
|
|
75
|
+
|
|
48
76
|
export interface OtelRuntime {
|
|
49
77
|
config: ResolvedOtelConfig;
|
|
50
78
|
tracer: Tracer;
|
|
51
79
|
meter: Meter | undefined;
|
|
52
80
|
logger: OtelLogger | undefined;
|
|
53
81
|
httpDuration: Histogram | undefined;
|
|
82
|
+
forceFlush: () => Promise<void>;
|
|
54
83
|
shutdown: () => Promise<void>;
|
|
55
84
|
}
|
|
56
85
|
|
|
86
|
+
export interface CreateOtelRuntimeOptions {
|
|
87
|
+
/**
|
|
88
|
+
* Re-resolve exporters at flush (hosted v2 binds deployment secrets
|
|
89
|
+
* after bake). When bake had no OTLP exporters, finished spans sit
|
|
90
|
+
* in memory until this returns destinations.
|
|
91
|
+
*/
|
|
92
|
+
resolveExport?: () => ResolvedOtelConfig;
|
|
93
|
+
}
|
|
94
|
+
|
|
57
95
|
export function createOtelRuntime(
|
|
58
96
|
config: ResolvedOtelConfig,
|
|
59
|
-
log: (line: string) => void
|
|
97
|
+
log: (line: string) => void,
|
|
98
|
+
options?: CreateOtelRuntimeOptions
|
|
60
99
|
): OtelRuntime | undefined {
|
|
61
100
|
if (!config.enabled) {
|
|
62
101
|
return undefined;
|
|
63
102
|
}
|
|
103
|
+
if (config.traces !== false) {
|
|
104
|
+
installOutboundFetchInstrumentation();
|
|
105
|
+
}
|
|
64
106
|
const proto = process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim().toLowerCase();
|
|
65
107
|
if (proto === "grpc") {
|
|
66
108
|
log(
|
|
@@ -68,7 +110,7 @@ export function createOtelRuntime(
|
|
|
68
110
|
);
|
|
69
111
|
}
|
|
70
112
|
ensureW3cPropagator();
|
|
71
|
-
const sdk = startOtelSdk(config, log);
|
|
113
|
+
const sdk = startOtelSdk(config, log, options?.resolveExport);
|
|
72
114
|
const meter =
|
|
73
115
|
config.metrics === false
|
|
74
116
|
? undefined
|
|
@@ -85,20 +127,50 @@ export function createOtelRuntime(
|
|
|
85
127
|
description: "HTTP request duration",
|
|
86
128
|
unit: "ms",
|
|
87
129
|
}),
|
|
130
|
+
forceFlush: sdk.forceFlush,
|
|
88
131
|
shutdown: sdk.shutdown,
|
|
89
132
|
};
|
|
90
133
|
}
|
|
91
134
|
|
|
135
|
+
export async function forceFlushOtelRuntime(
|
|
136
|
+
runtime: OtelRuntime | undefined
|
|
137
|
+
): Promise<void> {
|
|
138
|
+
await runtime?.forceFlush();
|
|
139
|
+
}
|
|
140
|
+
|
|
92
141
|
export async function shutdownOtelRuntime(
|
|
93
142
|
runtime: OtelRuntime | undefined
|
|
94
143
|
): Promise<void> {
|
|
95
144
|
await runtime?.shutdown();
|
|
96
145
|
}
|
|
97
146
|
|
|
147
|
+
export async function raceOtelForceFlush(
|
|
148
|
+
work: Promise<unknown>,
|
|
149
|
+
log: (line: string) => void,
|
|
150
|
+
timeoutMs: number = OTEL_FORCE_FLUSH_TIMEOUT_MS
|
|
151
|
+
): Promise<void> {
|
|
152
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
153
|
+
const timeout = new Promise<"timeout">((resolve) => {
|
|
154
|
+
timer = setTimeout(() => resolve("timeout"), timeoutMs);
|
|
155
|
+
});
|
|
156
|
+
const result = await Promise.race([
|
|
157
|
+
work.then(() => "done" as const).catch(() => "done" as const),
|
|
158
|
+
timeout,
|
|
159
|
+
]);
|
|
160
|
+
if (timer !== undefined) {
|
|
161
|
+
clearTimeout(timer);
|
|
162
|
+
}
|
|
163
|
+
if (result === "timeout") {
|
|
164
|
+
log(`[agent-sdk:otel] forceFlush exceeded ${timeoutMs}ms; continuing`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
98
168
|
function startOtelSdk(
|
|
99
169
|
config: ResolvedOtelConfig,
|
|
100
|
-
logger: (line: string) => void
|
|
170
|
+
logger: (line: string) => void,
|
|
171
|
+
resolveExport?: () => ResolvedOtelConfig
|
|
101
172
|
): {
|
|
173
|
+
forceFlush: () => Promise<void>;
|
|
102
174
|
shutdown: () => Promise<void>;
|
|
103
175
|
} {
|
|
104
176
|
diag.setLogger(
|
|
@@ -116,30 +188,39 @@ function startOtelSdk(
|
|
|
116
188
|
let tracerProvider: NodeTracerProvider | undefined;
|
|
117
189
|
let meterProvider: MeterProvider | undefined;
|
|
118
190
|
let loggerProvider: LoggerProvider | undefined;
|
|
191
|
+
let memoryExporter: BoundedMemorySpanExporter | undefined;
|
|
119
192
|
|
|
120
193
|
const traceOpts = config.traces;
|
|
121
194
|
if (traceOpts !== false) {
|
|
122
195
|
const exporters = exportersForSignal(config.exporters, "traces");
|
|
123
|
-
if (
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
196
|
+
if (hasRealTracerProvider()) {
|
|
197
|
+
logger(
|
|
198
|
+
"[agent-sdk:otel] TracerProvider already registered; reusing global (Agent SDK OTLP exporters not attached)"
|
|
199
|
+
);
|
|
200
|
+
} else {
|
|
201
|
+
const spanProcessors: SpanProcessor[] = [];
|
|
202
|
+
if (exporters.length > 0) {
|
|
203
|
+
for (const exporter of exporters) {
|
|
204
|
+
spanProcessors.push(
|
|
205
|
+
new BatchSpanProcessor(
|
|
206
|
+
createTraceExporter(exporter, signalUrl(exporter.url, "traces"))
|
|
207
|
+
)
|
|
208
|
+
);
|
|
209
|
+
}
|
|
128
210
|
} else {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
new BatchSpanProcessor(
|
|
134
|
-
createTraceExporter(exporter, signalUrl(exporter.url, "traces"))
|
|
135
|
-
)
|
|
136
|
-
),
|
|
137
|
-
sampler: new ParentBasedSampler({
|
|
138
|
-
root: new TraceIdRatioBasedSampler(traceOpts.sampleRatio ?? 1),
|
|
139
|
-
}),
|
|
140
|
-
});
|
|
141
|
-
tracerProvider.register();
|
|
211
|
+
memoryExporter = new BoundedMemorySpanExporter(
|
|
212
|
+
OTEL_IN_MEMORY_SPAN_LIMIT
|
|
213
|
+
);
|
|
214
|
+
spanProcessors.push(new SimpleSpanProcessor(memoryExporter));
|
|
142
215
|
}
|
|
216
|
+
tracerProvider = new NodeTracerProvider({
|
|
217
|
+
resource,
|
|
218
|
+
spanProcessors,
|
|
219
|
+
sampler: new ParentBasedSampler({
|
|
220
|
+
root: new TraceIdRatioBasedSampler(traceOpts.sampleRatio ?? 1),
|
|
221
|
+
}),
|
|
222
|
+
});
|
|
223
|
+
tracerProvider.register();
|
|
143
224
|
}
|
|
144
225
|
}
|
|
145
226
|
|
|
@@ -196,12 +277,63 @@ function startOtelSdk(
|
|
|
196
277
|
}
|
|
197
278
|
}
|
|
198
279
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
280
|
+
if (memoryExporter === undefined) {
|
|
281
|
+
logger(
|
|
282
|
+
`[agent-sdk] otel enabled service=${config.serviceName} exporters=${config.exporters.length} traces=${config.traces !== false} metrics=${config.metrics !== false} logs=${config.logs !== false}`
|
|
283
|
+
);
|
|
284
|
+
} else {
|
|
285
|
+
logger(
|
|
286
|
+
`[agent-sdk] otel recording service=${config.serviceName} (export on flush when OTLP exporters resolve)`
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
const flushDeferred = async (): Promise<void> => {
|
|
291
|
+
if (memoryExporter === undefined) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const spans = memoryExporter.getFinishedSpans();
|
|
295
|
+
if (spans.length === 0) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const exportConfig = resolveExport?.() ?? config;
|
|
299
|
+
const destinations = exportersForSignal(exportConfig.exporters, "traces");
|
|
300
|
+
if (destinations.length === 0) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
// Spans already carry the bake-time Resource. Hosted v2 binds
|
|
304
|
+
// deployment secrets after bake, so env / service extras on
|
|
305
|
+
// exportConfig must replace that Resource on the wire.
|
|
306
|
+
const ok = await exportQueuedSpans(
|
|
307
|
+
spans,
|
|
308
|
+
destinations,
|
|
309
|
+
logger,
|
|
310
|
+
buildResource(exportConfig)
|
|
311
|
+
);
|
|
312
|
+
if (ok) {
|
|
313
|
+
memoryExporter.reset();
|
|
314
|
+
}
|
|
315
|
+
};
|
|
202
316
|
|
|
203
317
|
return {
|
|
318
|
+
forceFlush: async () => {
|
|
319
|
+
await Promise.allSettled([
|
|
320
|
+
raceOtelForceFlush(
|
|
321
|
+
Promise.allSettled([
|
|
322
|
+
tracerProvider?.forceFlush(),
|
|
323
|
+
meterProvider?.forceFlush(),
|
|
324
|
+
loggerProvider?.forceFlush(),
|
|
325
|
+
]),
|
|
326
|
+
logger
|
|
327
|
+
),
|
|
328
|
+
raceOtelForceFlush(
|
|
329
|
+
flushDeferred(),
|
|
330
|
+
logger,
|
|
331
|
+
OTEL_DEFERRED_EXPORT_TIMEOUT_MS
|
|
332
|
+
),
|
|
333
|
+
]);
|
|
334
|
+
},
|
|
204
335
|
shutdown: async () => {
|
|
336
|
+
await flushDeferred();
|
|
205
337
|
await Promise.allSettled([
|
|
206
338
|
tracerProvider?.shutdown(),
|
|
207
339
|
meterProvider?.shutdown(),
|
|
@@ -211,6 +343,54 @@ function startOtelSdk(
|
|
|
211
343
|
};
|
|
212
344
|
}
|
|
213
345
|
|
|
346
|
+
function withExportResource(
|
|
347
|
+
span: ReadableSpan,
|
|
348
|
+
resource: Resource
|
|
349
|
+
): ReadableSpan {
|
|
350
|
+
return new Proxy(span, {
|
|
351
|
+
get(target, prop, receiver) {
|
|
352
|
+
if (prop === "resource") {
|
|
353
|
+
return resource;
|
|
354
|
+
}
|
|
355
|
+
return Reflect.get(target, prop, receiver);
|
|
356
|
+
},
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
async function exportQueuedSpans(
|
|
361
|
+
spans: ReadableSpan[],
|
|
362
|
+
destinations: readonly OtelExporterConfig[],
|
|
363
|
+
logger: (line: string) => void,
|
|
364
|
+
resource: Resource
|
|
365
|
+
): Promise<boolean> {
|
|
366
|
+
const payload = spans.map((span) => withExportResource(span, resource));
|
|
367
|
+
const exporters: SpanExporter[] = destinations.map((destination) =>
|
|
368
|
+
createTraceExporter(destination, signalUrl(destination.url, "traces"))
|
|
369
|
+
);
|
|
370
|
+
try {
|
|
371
|
+
const results = await Promise.all(
|
|
372
|
+
exporters.map(
|
|
373
|
+
(exporter) =>
|
|
374
|
+
new Promise<boolean>((resolve) => {
|
|
375
|
+
exporter.export(payload, (result: ExportResult) => {
|
|
376
|
+
resolve(result.code === ExportResultCode.SUCCESS);
|
|
377
|
+
});
|
|
378
|
+
})
|
|
379
|
+
)
|
|
380
|
+
);
|
|
381
|
+
return results.every((ok) => ok);
|
|
382
|
+
} catch (error) {
|
|
383
|
+
logger(
|
|
384
|
+
`[agent-sdk:otel] deferred export failed: ${
|
|
385
|
+
error instanceof Error ? error.message : String(error)
|
|
386
|
+
}`
|
|
387
|
+
);
|
|
388
|
+
return false;
|
|
389
|
+
} finally {
|
|
390
|
+
await Promise.allSettled(exporters.map((exporter) => exporter.shutdown()));
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
214
394
|
function buildResource(config: ResolvedOtelConfig): Resource {
|
|
215
395
|
// Align with Cursor enterprise wire resource attrs where they overlap so
|
|
216
396
|
// Agent SDK traces join org metrics/logs in the same collector.
|
|
@@ -271,3 +451,38 @@ function createLogExporter(exporter: OtelExporterConfig, url: string) {
|
|
|
271
451
|
? new OTLPLogExporterProto(opts)
|
|
272
452
|
: new OTLPLogExporterHttp(opts);
|
|
273
453
|
}
|
|
454
|
+
|
|
455
|
+
/** In-memory finished-span queue with a hard cap (oldest dropped). */
|
|
456
|
+
class BoundedMemorySpanExporter implements SpanExporter {
|
|
457
|
+
private spans: ReadableSpan[] = [];
|
|
458
|
+
|
|
459
|
+
constructor(private readonly limit: number) {}
|
|
460
|
+
|
|
461
|
+
export(
|
|
462
|
+
spans: ReadableSpan[],
|
|
463
|
+
resultCallback: (result: ExportResult) => void
|
|
464
|
+
): void {
|
|
465
|
+
this.spans.push(...spans);
|
|
466
|
+
if (this.spans.length > this.limit) {
|
|
467
|
+
this.spans.splice(0, this.spans.length - this.limit);
|
|
468
|
+
}
|
|
469
|
+
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
getFinishedSpans(): ReadableSpan[] {
|
|
473
|
+
return this.spans.slice();
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
reset(): void {
|
|
477
|
+
this.spans = [];
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
shutdown(): Promise<void> {
|
|
481
|
+
this.reset();
|
|
482
|
+
return Promise.resolve();
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
forceFlush(): Promise<void> {
|
|
486
|
+
return Promise.resolve();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
@@ -18,12 +18,6 @@ import { toolInputJsonSchema, toolOutputJsonSchema } from "./json-schema.js";
|
|
|
18
18
|
|
|
19
19
|
const require = createRequire(import.meta.url);
|
|
20
20
|
|
|
21
|
-
const CONNECTION_SPECIFIERS = new Set([
|
|
22
|
-
"@anysphere/agent-serve/connections",
|
|
23
|
-
"@cursor/july/connections",
|
|
24
|
-
"@cursor/agentkit/connections",
|
|
25
|
-
]);
|
|
26
|
-
|
|
27
21
|
function sibling(basename: string): string {
|
|
28
22
|
const dir = fileURLToPath(new URL(".", import.meta.url));
|
|
29
23
|
const ts = join(dir, `${basename}.ts`);
|
|
@@ -94,12 +88,9 @@ serveInlineStdioMcp(
|
|
|
94
88
|
{
|
|
95
89
|
name: "inline-stdio-connection-stub",
|
|
96
90
|
setup(build) {
|
|
97
|
-
build.onResolve({ filter:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
return undefined;
|
|
102
|
-
});
|
|
91
|
+
build.onResolve({ filter: /^@cursor\/july\/connections$/ }, () => ({
|
|
92
|
+
path: stubPath,
|
|
93
|
+
}));
|
|
103
94
|
},
|
|
104
95
|
},
|
|
105
96
|
],
|
|
@@ -16,7 +16,7 @@ import { playgroundBundleExists } from "./static.js";
|
|
|
16
16
|
|
|
17
17
|
const VITE_CONFIG = "playground/vite.config.ts";
|
|
18
18
|
|
|
19
|
-
/**
|
|
19
|
+
/** Package root (works from `src/` or `dist/`). */
|
|
20
20
|
export function packageRoot(): string {
|
|
21
21
|
// src|dist/internal/playground/toolchain.ts → packages/agent-serve/
|
|
22
22
|
return fileURLToPath(new URL("../../..", import.meta.url));
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { InvalidAsOfError, VacuousTimeArgsError } from "./as-of.js";
|
|
2
|
+
import { V2EngineError } from "./continuation-identity.js";
|
|
3
|
+
import {
|
|
4
|
+
GUEST_CONNECT_STALLED,
|
|
5
|
+
GUEST_NETWORK_UNAVAILABLE,
|
|
6
|
+
GuestNetworkUnavailableError,
|
|
7
|
+
hasGuestNetworkErrno,
|
|
8
|
+
isQuietGuestConnectStall,
|
|
9
|
+
} from "./guest-network.js";
|
|
10
|
+
import { SessionAuthError, SessionBusyError } from "./session-engine.js";
|
|
11
|
+
|
|
12
|
+
export interface MappedRequestError {
|
|
13
|
+
status: 400 | 403 | 409 | 503;
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Expected throw → HTTP mapping used by `handleRequest` and hosted flush.
|
|
20
|
+
* Undefined means a real 500 (caller logs and redacts).
|
|
21
|
+
*/
|
|
22
|
+
export function mapThrownRequestError(
|
|
23
|
+
error: unknown
|
|
24
|
+
): MappedRequestError | undefined {
|
|
25
|
+
if (error instanceof SessionBusyError) {
|
|
26
|
+
return { status: 409, code: "session_busy", message: error.message };
|
|
27
|
+
}
|
|
28
|
+
if (error instanceof V2EngineError) {
|
|
29
|
+
return {
|
|
30
|
+
status: 409,
|
|
31
|
+
code: "v2_identity_conflict",
|
|
32
|
+
message: "Control-plane session identity conflicts with existing state.",
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (error instanceof SessionAuthError) {
|
|
36
|
+
return { status: 403, code: "forbidden", message: error.message };
|
|
37
|
+
}
|
|
38
|
+
if (
|
|
39
|
+
error instanceof InvalidAsOfError ||
|
|
40
|
+
error instanceof VacuousTimeArgsError
|
|
41
|
+
) {
|
|
42
|
+
return { status: 400, code: "invalid_request", message: error.message };
|
|
43
|
+
}
|
|
44
|
+
if (
|
|
45
|
+
error instanceof GuestNetworkUnavailableError ||
|
|
46
|
+
hasGuestNetworkErrno(error)
|
|
47
|
+
) {
|
|
48
|
+
return {
|
|
49
|
+
status: 503,
|
|
50
|
+
code: GUEST_NETWORK_UNAVAILABLE,
|
|
51
|
+
message:
|
|
52
|
+
error instanceof Error
|
|
53
|
+
? error.message
|
|
54
|
+
: "Guest network is not ready for outbound requests.",
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (isQuietGuestConnectStall(error)) {
|
|
58
|
+
return {
|
|
59
|
+
status: 503,
|
|
60
|
+
code: GUEST_CONNECT_STALLED,
|
|
61
|
+
message:
|
|
62
|
+
error instanceof Error
|
|
63
|
+
? error.message
|
|
64
|
+
: "Guest Connect stalled without a network errno.",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function statusForThrownRequestError(error: unknown): number {
|
|
71
|
+
return mapThrownRequestError(error)?.status ?? 500;
|
|
72
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Resolve a hosted (managed) agent-
|
|
2
|
+
* Resolve a hosted (managed) agent-sdk deployment into a base URL +
|
|
3
3
|
* request headers for chat/run/call/eval `--prod`.
|
|
4
4
|
*
|
|
5
5
|
* Uses short-lived `engineAccess` from the deployment status route
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
validateDeploymentSlug,
|
|
17
17
|
} from "./deploy-client.js";
|
|
18
18
|
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
19
|
+
import { sleep as defaultSleep } from "./sleep.js";
|
|
19
20
|
import { stderrPalette } from "./terminal-style.js";
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -98,7 +99,7 @@ export async function resolveProdTarget(
|
|
|
98
99
|
// A hibernated engine can briefly omit engineAccess while getPod fails
|
|
99
100
|
// during wake. Retry a few times before surfacing "not reachable yet".
|
|
100
101
|
const maxReachabilityAttempts = 5;
|
|
101
|
-
const sleep = options.sleep ??
|
|
102
|
+
const sleep = options.sleep ?? defaultSleep;
|
|
102
103
|
let detail: DeploymentDetail | undefined;
|
|
103
104
|
for (let attempt = 0; attempt < maxReachabilityAttempts; attempt++) {
|
|
104
105
|
try {
|
|
@@ -250,12 +251,6 @@ function sanitizeCustomerFacingDetail(message: string): string {
|
|
|
250
251
|
.replace(/\bcursorvm\.com\b/gi, "host");
|
|
251
252
|
}
|
|
252
253
|
|
|
253
|
-
function sleepMs(ms: number): Promise<void> {
|
|
254
|
-
return new Promise((resolve) => {
|
|
255
|
-
setTimeout(resolve, ms);
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
|
|
259
254
|
/** Resolve the deployment slug the same way `deploy` does for a single dir. */
|
|
260
255
|
export function resolveProdSlug(options: {
|
|
261
256
|
dir: string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run the authored `defineResult` commit on the final assistant text.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { ResultContext, ResultDefinition } from "../types.js";
|
|
6
|
+
|
|
7
|
+
export type ResultParse =
|
|
8
|
+
| { ok: true; text: string }
|
|
9
|
+
| { ok: false; message: string };
|
|
10
|
+
|
|
11
|
+
export async function applyAuthoredResult(args: {
|
|
12
|
+
definition: ResultDefinition;
|
|
13
|
+
text: string | undefined;
|
|
14
|
+
dryRun: boolean;
|
|
15
|
+
ctx: Omit<ResultContext, "text">;
|
|
16
|
+
}): Promise<ResultParse> {
|
|
17
|
+
if (args.text === undefined || args.text.trim() === "") {
|
|
18
|
+
return { ok: false, message: "turn produced no assistant text" };
|
|
19
|
+
}
|
|
20
|
+
const text = args.text;
|
|
21
|
+
if (args.dryRun) {
|
|
22
|
+
return { ok: true, text };
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
await args.definition.commit({ ...args.ctx, text });
|
|
26
|
+
} catch (error) {
|
|
27
|
+
return {
|
|
28
|
+
ok: false,
|
|
29
|
+
message:
|
|
30
|
+
error instanceof Error ? error.message : `on commit: ${String(error)}`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return { ok: true, text };
|
|
34
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Programmatic HTTP client for agent-
|
|
2
|
+
* Programmatic HTTP client for agent-sdk sessions.
|
|
3
3
|
*
|
|
4
|
-
* Used by `agent-
|
|
4
|
+
* Used by `agent-sdk run` and `chat --json`: create/follow a
|
|
5
5
|
* session, collect the NDJSON stream until the turn parks, and return a
|
|
6
6
|
* compact {@link Trajectory} plus the continuation token for follow-ups.
|
|
7
7
|
*/
|
|
@@ -3,12 +3,9 @@
|
|
|
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
|
|
|
9
8
|
import type { RunnerTurnRequest, TurnOutcome } from "../types.js";
|
|
10
|
-
import type { GrokBotRunnerOptions } from "./grokbot/runner.js";
|
|
11
|
-
import { GrokBotRunner } from "./grokbot/runner.js";
|
|
12
9
|
import type {
|
|
13
10
|
AgentRunner,
|
|
14
11
|
PrewarmOutcome,
|
|
@@ -18,30 +15,15 @@ import type {
|
|
|
18
15
|
|
|
19
16
|
export interface RuntimeDispatchingRunnerOptions {
|
|
20
17
|
sdkRunner: AgentRunner;
|
|
21
|
-
grokbot
|
|
22
|
-
/** Test seam — replaces the real Grok Bot remote client. */
|
|
23
|
-
createGrokBotRunner?: (options: GrokBotRunnerOptions) => AgentRunner;
|
|
18
|
+
grokbot: AgentRunner;
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
export class RuntimeDispatchingRunner implements AgentRunner {
|
|
27
|
-
private grokbotRunner: AgentRunner | undefined;
|
|
28
|
-
|
|
29
22
|
constructor(private readonly options: RuntimeDispatchingRunnerOptions) {}
|
|
30
23
|
|
|
31
|
-
/**
|
|
32
|
-
* The Grok Bot remote client, created on first use; a missing API key
|
|
33
|
-
* surfaces on the first grokbot turn, not at serve start.
|
|
34
|
-
*/
|
|
35
|
-
ensureGrokBotRunner(): AgentRunner {
|
|
36
|
-
const options = this.options.grokbot ?? {};
|
|
37
|
-
this.grokbotRunner ??=
|
|
38
|
-
this.options.createGrokBotRunner?.(options) ?? new GrokBotRunner(options);
|
|
39
|
-
return this.grokbotRunner;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
24
|
async runTurn(request: RunnerTurnRequest): Promise<TurnOutcome> {
|
|
43
25
|
if (request.runtime === "grokbot") {
|
|
44
|
-
return this.
|
|
26
|
+
return this.options.grokbot.runTurn(request);
|
|
45
27
|
}
|
|
46
28
|
return this.options.sdkRunner.runTurn(request);
|
|
47
29
|
}
|
|
@@ -68,6 +50,6 @@ export class RuntimeDispatchingRunner implements AgentRunner {
|
|
|
68
50
|
|
|
69
51
|
async dispose(): Promise<void> {
|
|
70
52
|
await this.options.sdkRunner.dispose?.();
|
|
71
|
-
await this.
|
|
53
|
+
await this.options.grokbot.dispose?.();
|
|
72
54
|
}
|
|
73
55
|
}
|
|
@@ -33,6 +33,8 @@ import { mapSdkTokenUsage, usageTokenSum } from "./cloud-turn-cost.js";
|
|
|
33
33
|
import type { ConversationMirror } from "./conversation-mirror.js";
|
|
34
34
|
import { resolveApiKeySync } from "./cursor/credentials.js";
|
|
35
35
|
import { describeError } from "./describe-error.js";
|
|
36
|
+
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
37
|
+
import { sleep } from "./sleep.js";
|
|
36
38
|
|
|
37
39
|
/** Mirrors @cursor/sdk's SteerAckOutcome; the published dist may predate it. */
|
|
38
40
|
export type SteerAckOutcome = "complete_delivered" | "revert_to_followup";
|
|
@@ -65,6 +67,7 @@ export type RunnerPrewarmRequest = Pick<
|
|
|
65
67
|
| "runnerStateDir"
|
|
66
68
|
| "sandbox"
|
|
67
69
|
| "tools"
|
|
70
|
+
| "disallowedTools"
|
|
68
71
|
| "mcpServers"
|
|
69
72
|
| "perSendMcpServers"
|
|
70
73
|
| "subagents"
|
|
@@ -496,7 +499,7 @@ export class CursorSdkRunner implements AgentRunner {
|
|
|
496
499
|
const resolved = resolveApiKeySync({ apiKey: this.options.apiKey });
|
|
497
500
|
if (resolved === undefined) {
|
|
498
501
|
throw new Error(
|
|
499
|
-
|
|
502
|
+
`The Cursor SDK runner requires a Cursor credential: run \`${CLI} login\`, set CURSOR_API_KEY or CURSOR_API_KEY_FILE, or pass serve({ apiKey }).`
|
|
500
503
|
);
|
|
501
504
|
}
|
|
502
505
|
return resolved.apiKey;
|
|
@@ -540,6 +543,9 @@ export class CursorSdkRunner implements AgentRunner {
|
|
|
540
543
|
// tool restrictions on cloud agents. Passed on create *and* resume
|
|
541
544
|
// (both flow through here) — the SDK does not persist it across runs.
|
|
542
545
|
...(request.tools === undefined ? {} : { tools: request.tools }),
|
|
546
|
+
...(request.disallowedTools === undefined
|
|
547
|
+
? {}
|
|
548
|
+
: { disallowedTools: request.disallowedTools }),
|
|
543
549
|
local: {
|
|
544
550
|
cwd: request.workspaceDir,
|
|
545
551
|
settingSources: ["project"],
|
|
@@ -815,12 +821,6 @@ async function fillMissingCloudUsage(
|
|
|
815
821
|
return outcome;
|
|
816
822
|
}
|
|
817
823
|
|
|
818
|
-
function sleep(ms: number): Promise<void> {
|
|
819
|
-
return new Promise((resolve) => {
|
|
820
|
-
setTimeout(resolve, ms);
|
|
821
|
-
});
|
|
822
|
-
}
|
|
823
|
-
|
|
824
824
|
export function runErrorMessage(result: Pick<RunResult, "error">): string {
|
|
825
825
|
return result.error?.message?.trim() || "The Cursor agent run failed";
|
|
826
826
|
}
|