@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
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
# One FileSystem for every Agent SDK agent
|
|
2
|
+
|
|
3
|
+
> **Status:** first implementation, this PR. `@cursor/july` only.
|
|
4
|
+
> No Cursor SDK change.
|
|
5
|
+
> **Audience:** Agent SDK maintainers.
|
|
6
|
+
|
|
7
|
+
Every local turn binds a **FileSystem** and synthesizes native file
|
|
8
|
+
tools from it. There is no "is there an override?" branch on the
|
|
9
|
+
tool path. Authors pick the tree with `root`. Omit `root` and the
|
|
10
|
+
tree is the host disk, through internal `localFileSystem`.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
// Host disk. Relative paths resolve against the harness cwd.
|
|
14
|
+
export default defineAgent({
|
|
15
|
+
name: "reviewer",
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Override. The model sees only this tree. Paths are posix `/`.
|
|
19
|
+
export default defineAgent({
|
|
20
|
+
name: "notes",
|
|
21
|
+
root: tempFs({ "/notes.md": "hello" }),
|
|
22
|
+
});
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Names
|
|
28
|
+
|
|
29
|
+
| Name | Kind | Meaning |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| `FileSystem` | Type on `@cursor/july` | Path verbs. Authors provide this. |
|
|
32
|
+
| `root` | Field on `defineAgent` | The FileSystem the agent runs on. Omit it and the root is the host disk. |
|
|
33
|
+
|
|
34
|
+
No `root()` method and no public `Workspace` type.
|
|
35
|
+
`local.workspaceDir` stays the harness cwd. `workspaceFiles` stays
|
|
36
|
+
per-send seed files. Those names are not the path namespace.
|
|
37
|
+
|
|
38
|
+
Do not pass `local.root` into `Agent.create`. The published SDK
|
|
39
|
+
does not have that field.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## FileSystem
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
interface FileSystem {
|
|
47
|
+
list(prefix?: string): AsyncIterable<DirEntry>;
|
|
48
|
+
stat(path: string): Promise<FileInfo>;
|
|
49
|
+
glob(pattern: string, dir?: string): AsyncIterable<DirEntry>;
|
|
50
|
+
read(path: string): Promise<string | Uint8Array>;
|
|
51
|
+
grep(query: GrepQuery): AsyncIterable<GrepResult>;
|
|
52
|
+
write(path: string, contents: string): Promise<void>;
|
|
53
|
+
delete(path: string): Promise<void>;
|
|
54
|
+
search(query: SearchQuery): AsyncIterable<SearchResult>;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Every method is required. A tree without an index yields nothing
|
|
59
|
+
from `search`. Methods do not fall back to the host tree.
|
|
60
|
+
Diagnostics are not a FileSystem verb.
|
|
61
|
+
|
|
62
|
+
Path verbs take a path (and contents for `write`). Bags with two
|
|
63
|
+
or more independent options (`grep`, `search`) take a
|
|
64
|
+
named query object.
|
|
65
|
+
|
|
66
|
+
`read` returns text as a string, or image bytes as a
|
|
67
|
+
`Uint8Array` (`jpeg` / `png` / `gif` / `webp`). Native Read
|
|
68
|
+
applies `offset` / `limit` and numbers lines on text. Images
|
|
69
|
+
become a base64 image content part, the same shape the Cursor
|
|
70
|
+
harness sends the model.
|
|
71
|
+
|
|
72
|
+
FileSystem methods throw; they do not return a status envelope.
|
|
73
|
+
`@cursor/july` does not export `FileSystemResult`.
|
|
74
|
+
|
|
75
|
+
### Paths
|
|
76
|
+
|
|
77
|
+
Authored `root` (`tempFs`, `unionFs`, `overlayFs`, `hostFs`, a custom tree) is one posix
|
|
78
|
+
namespace rooted at `/`. Query paths and yielded paths are
|
|
79
|
+
absolute (`/src/a.ts`). No trailing slash except `/`. `""`, `"/"`,
|
|
80
|
+
and an omitted optional scope mean the root. Prefix tests are
|
|
81
|
+
path-segment: `/agent` matches `/agent/skills`, not
|
|
82
|
+
`/agent-tools`. `normalizeFsPath` resolves `..`. `/tmp` is
|
|
83
|
+
reserved for turn-local scratch. See `/tmp` scratch.
|
|
84
|
+
|
|
85
|
+
Host-default `localFileSystem` follows Cursor SDK natives:
|
|
86
|
+
relative paths resolve against the harness cwd; absolute paths
|
|
87
|
+
are used as-is. Yielded paths are host paths, not rewritten to
|
|
88
|
+
`/`. `search` is empty (no host index).
|
|
89
|
+
|
|
90
|
+
### Iterators
|
|
91
|
+
|
|
92
|
+
Async iterators are already sorted. `unionFs` k-way merges them
|
|
93
|
+
and does not re-sort a source.
|
|
94
|
+
|
|
95
|
+
- `list` / `glob`: lexicographic by `path`. Paths are unique.
|
|
96
|
+
- `grep`: by `path`, then `lineNumber` ascending. Keep every hit.
|
|
97
|
+
- `search`: by `score` descending, then `path` ascending.
|
|
98
|
+
|
|
99
|
+
A file is not under itself, so listing a file path is empty.
|
|
100
|
+
Empty `list` is not "missing"; `stat` answers that.
|
|
101
|
+
|
|
102
|
+
`glob(pattern, dir?)` matches relative to `dir`, not
|
|
103
|
+
basename-anywhere (`*.ts` under `/src` is `/src/a.ts`, not
|
|
104
|
+
`/src/nested/c.ts`).
|
|
105
|
+
|
|
106
|
+
`grep` has no `output_mode` or `offset`. A slash-free `glob`
|
|
107
|
+
(`*.ts`) matches the basename at any depth under `path`.
|
|
108
|
+
`grep` / `search` take optional `maxResults` as predicate
|
|
109
|
+
pushdown; implementations should stop after that many hits.
|
|
110
|
+
Composers push the same cap to children and apply it again
|
|
111
|
+
after the merge.
|
|
112
|
+
|
|
113
|
+
Native-tool pagination (`head_limit`, `offset`, `output_mode`,
|
|
114
|
+
`numResults`) stays on synthesized tools. Native `LS` is built
|
|
115
|
+
from `list` + `stat`; there is no `ls` method.
|
|
116
|
+
|
|
117
|
+
### Errors
|
|
118
|
+
|
|
119
|
+
FileSystem methods throw `PathError`. `path` is the absolute
|
|
120
|
+
posix path the error is about. Messages stay these contract
|
|
121
|
+
strings so synthesized tools can show them as-is.
|
|
122
|
+
|
|
123
|
+
- `list` / `stat` / `glob` must not throw for a missing path.
|
|
124
|
+
Missing is an empty iterator or `{ kind: "missing" }`.
|
|
125
|
+
- `read` / `delete` missing file: `FileNotFoundError`
|
|
126
|
+
(`not found: ${path}`).
|
|
127
|
+
- `write` has no `not found`. I/O uses the OS message or
|
|
128
|
+
`WriteFailedError` (`write failed: ${path}`). A read-only
|
|
129
|
+
mount uses `ReadOnlyMountError` (`read-only mount: ${path}`).
|
|
130
|
+
- Synthesized StrReplace is `read` + exact replace + `write`.
|
|
131
|
+
Uniqueness failures throw `EditError` (`oldText is empty`,
|
|
132
|
+
`oldText and newText are exactly the same`, `The string to
|
|
133
|
+
replace was not found in the file`, and `The string to replace
|
|
134
|
+
was found multiple times in the file. Use replace_all to replace
|
|
135
|
+
all occurrences, or include more context to only edit one
|
|
136
|
+
occurrence.`). Write-back failures are `WriteFailedError`.
|
|
137
|
+
- `grep` throws `InvalidGrepPatternError`
|
|
138
|
+
(`invalid grep pattern: ${pattern}`). A missing host search
|
|
139
|
+
root throws. A missing virtual path yields nothing.
|
|
140
|
+
- `search` without an index is empty success.
|
|
141
|
+
- `unionFs` with no mount throws `NoMountError`
|
|
142
|
+
(`no mount for path: ${path}`) on `read` / `write` /
|
|
143
|
+
`delete`. Walk verbs stay empty or missing.
|
|
144
|
+
- `unionFs` catches `PathError` from a child and rethrows
|
|
145
|
+
`error.withPath(mountPrefix + childPath)`. Untyped `Error` still
|
|
146
|
+
gets a best-effort message rewrite.
|
|
147
|
+
|
|
148
|
+
Invoke wraps FileSystem throws into the executor success / error
|
|
149
|
+
envelope.
|
|
150
|
+
|
|
151
|
+
### Write and StrReplace
|
|
152
|
+
|
|
153
|
+
`write(path, contents)` creates or overwrites a file. Success is
|
|
154
|
+
empty. Native Write maps `fileText` onto `contents` and prints
|
|
155
|
+
`Wrote contents to ${path}`.
|
|
156
|
+
|
|
157
|
+
StrReplace is not a FileSystem verb. The synthesized tool reads
|
|
158
|
+
the file, applies an exact non-overlapping replace, and writes
|
|
159
|
+
the result. It fails when `oldText` is empty, equals `newText`,
|
|
160
|
+
is missing, or occurs more than once without `replaceAll`.
|
|
161
|
+
Success is `{ occurrencesModified }`. Splice is literal; do not
|
|
162
|
+
use `String.prototype.replace`. Native aliases (`old_string`,
|
|
163
|
+
`new_string`, `replace_all`) map onto those fields at invoke
|
|
164
|
+
time.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Helpers
|
|
169
|
+
|
|
170
|
+
| Helper | Role |
|
|
171
|
+
| --- | --- |
|
|
172
|
+
| `emptyFs()` | No files. Overlay leaf or missing catalog. Reads miss; writes are read-only. |
|
|
173
|
+
| `tempFs(files)` | In-memory snapshot. Tests and fixtures. |
|
|
174
|
+
| `unionFs({ "/repo": a, "/plans": b })` | Longest-prefix compose, path-segment match. Children are FileSystems rooted at `/`; `unionFs` strips the mount prefix on the way in and re-prefixes yields. List and glob use `unique` so an earlier mount shadows a later one. Grep and search keep every hit. Grep and search at `/` fan out to every child. |
|
|
175
|
+
| `overlayFs([upper, lower])` | Same-root overlay. Earlier layers win. Read-only. A downed layer costs its own files, not the overlay — `stat` / `grep` / `search` only fail when no layer served. |
|
|
176
|
+
| `hostFs(files, scope)` | `HostFilesApi` as a FileSystem rooted at `/`. Mount with `unionFs({ "/host": hostFs(files, scope) })`. `search` is empty (no index). Write without a cached etag is unconditional; after a successful read or write, write is CAS on that etag. |
|
|
177
|
+
|
|
178
|
+
`localFileSystem({ cwd })` is the host-default handle. It is not
|
|
179
|
+
exported from `@cursor/july`. Name helpers and `mergeSorted`
|
|
180
|
+
stay private. `emptyFs`, `tempFs`, `unionFs`, `overlayFs`, `hostFs`, and
|
|
181
|
+
the `PathError` classes (`FileNotFoundError`,
|
|
182
|
+
`ReadOnlyMountError`, `NoMountError`, `InvalidGrepPatternError`,
|
|
183
|
+
`WriteFailedError`, `EditError`,
|
|
184
|
+
`DeleteNotSupportedError`) are the public helpers.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Tool synthesis
|
|
189
|
+
|
|
190
|
+
Local turns synthesize these natives from the bound FileSystem:
|
|
191
|
+
`Read`, `LS`, `Grep`, `Glob`, `Write`, `StrReplace`, `Delete`,
|
|
192
|
+
`SemanticSearch`. `list` + `stat` synthesize `LS`. `search`
|
|
193
|
+
synthesizes `SemanticSearch`. `StrReplace` is `read` + exact
|
|
194
|
+
replace + `write`. Other execute bodies call the matching
|
|
195
|
+
FileSystem method.
|
|
196
|
+
|
|
197
|
+
Authored `tools` can filter that set. `tools: ["read", "shell"]`
|
|
198
|
+
on a host-default agent synthesizes `Read` only.
|
|
199
|
+
`tools: ["edit"]` synthesizes `Write` and `StrReplace`.
|
|
200
|
+
`tools: ["semSearch"]` synthesizes `SemanticSearch`.
|
|
201
|
+
`tools: []` synthesizes nothing.
|
|
202
|
+
|
|
203
|
+
Host-default does not synthesize `SemanticSearch`. Native
|
|
204
|
+
`semSearch` stays on so the host index can run;
|
|
205
|
+
`localFileSystem.search` is empty. Authored `root` synthesizes
|
|
206
|
+
`SemanticSearch` from `FileSystem.search` and does not advertise
|
|
207
|
+
native `semSearch`. `search` is not an allowlist alias, so an
|
|
208
|
+
authored `search` tool is not treated as SemanticSearch.
|
|
209
|
+
`ReadLints` is not a FileSystem verb. Authored
|
|
210
|
+
`tools: ["readLints"]` fails closed so the host language service
|
|
211
|
+
cannot run.
|
|
212
|
+
|
|
213
|
+
Do not also ship `agent/tools/Read.ts` (and the other synthesized
|
|
214
|
+
names). Discovery fails closed on that clash for host-default and
|
|
215
|
+
authored `root`.
|
|
216
|
+
|
|
217
|
+
A factory root re-resolves the handle before a turn. The session
|
|
218
|
+
cache is the handle, not a tree snapshot. Unscoped `callTool`
|
|
219
|
+
uses the invocation id and does not cache, so factories cannot
|
|
220
|
+
share one tree across callers. A static `root` is the authored
|
|
221
|
+
object on every session — Write / StrReplace / Delete /
|
|
222
|
+
`workspaceFiles` are shared. Return a new handle from
|
|
223
|
+
`(ctx) => …` when a session should have its own tree. A factory
|
|
224
|
+
that returns the same object still shares.
|
|
225
|
+
|
|
226
|
+
Per-send `workspaceFiles` write through the FileSystem.
|
|
227
|
+
`memory/` is reserved (same as the host-default workspace
|
|
228
|
+
symlink into durable agent memory) and is refused after
|
|
229
|
+
normalize, including `./memory/x` and `foo/../memory/x`.
|
|
230
|
+
Host-default `list` / `glob` / `grep` do not follow directory
|
|
231
|
+
symlinks, including `memory/` — same as native LS/Glob/Grep.
|
|
232
|
+
Exact-path `read` / `stat` still follow.
|
|
233
|
+
|
|
234
|
+
Authored `root` skips session-directory materialize, git init,
|
|
235
|
+
and host-cwd checks. First turns prepend `buildAgentsMdContent`
|
|
236
|
+
and print `Workspace Path: /`. Host-default agents keep today's
|
|
237
|
+
materialize path.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Allowlist
|
|
242
|
+
|
|
243
|
+
| `root` | `tools` | Model-facing harness |
|
|
244
|
+
| --- | --- | --- |
|
|
245
|
+
| omitted | omitted | The seven host-disk file tools (no synthesized `SemanticSearch`). Host shell / webSearch / sandbox / native `semSearch` stay. Host file natives are hidden with `disallowedTools: ["read","ls","grep","glob","edit","delete"]`. |
|
|
246
|
+
| omitted | `["read", "shell"]` | Synthesized `Read` + SDK `shell` + `mcp`. |
|
|
247
|
+
| omitted | `[]` | No synthesized file tools. |
|
|
248
|
+
| set | omitted | All eight synthesized file tools (including `SemanticSearch`) + webSearch + webFetch + updateTodos + readTodos + `mcp`. Bind `/tmp` scratch. Not the host-default full catalog (no shell / sandbox / task / native semSearch). |
|
|
249
|
+
| set | `["updateTodos"]` | All eight synthesized file tools + `updateTodos` + `mcp`. |
|
|
250
|
+
| set | `["semSearch"]` | Synthesized `SemanticSearch` + `mcp`. Native host index stays off. |
|
|
251
|
+
| set | `[]` | No synthesized file tools. Legal and empty. |
|
|
252
|
+
| set | `["shell"]` / `["task"]` / `["readLints"]` | Fail closed. |
|
|
253
|
+
| set | `["webSearch"]` / `["webFetch"]` | All eight synthesized file tools + the listed web tool + `mcp`. Bind `/tmp` scratch. |
|
|
254
|
+
|
|
255
|
+
`mcp` is granted when any tools ride that path. File-family
|
|
256
|
+
allowlist names are omitted from the SDK allowlist; the
|
|
257
|
+
synthesized tools replace them.
|
|
258
|
+
|
|
259
|
+
`local.sandbox` is Cursor's process sandbox around child
|
|
260
|
+
processes on the host-default path. It is not a FileSystem.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Fail closed
|
|
265
|
+
|
|
266
|
+
| Combination | Result |
|
|
267
|
+
| --- | --- |
|
|
268
|
+
| `root` + `local.cwd` / `workspaceDir` / `sandbox` | Fail closed |
|
|
269
|
+
| `root` + `runtime: "cloud"` or `"grokbot"` | Fail closed |
|
|
270
|
+
| `root` + `tools` containing `"shell"` | Fail closed |
|
|
271
|
+
| `root` + `tools` containing `"task"` | Fail closed. A child keeps the host toolset. Sharing `root` needs a Cursor SDK inherit, not an overridden Task. |
|
|
272
|
+
| `root` + `tools` containing `"readLints"` | Fail closed. Diagnostics are not a FileSystem verb. |
|
|
273
|
+
| `agent/tools/Read.ts` (etc.) | Fail closed on host-default and authored `root`. |
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## `/tmp` scratch for webSearch and webFetch
|
|
278
|
+
|
|
279
|
+
Native `WebSearch` and `WebFetch` stay native. They still scratch
|
|
280
|
+
large output to `{harnessCwd}/agent-tools/{uuid}.txt` on the host
|
|
281
|
+
disk. Under `root`, the turn composes
|
|
282
|
+
`unionFs({ "/": authored, "/tmp": tempFs() })`, copies only the file
|
|
283
|
+
the native tool wrote this turn, and drops that composed root at
|
|
284
|
+
end of turn.
|
|
285
|
+
|
|
286
|
+
### Why `/tmp`
|
|
287
|
+
|
|
288
|
+
The FileSystem is the model's disk. Host `{cwd}/agent-tools/` is a
|
|
289
|
+
harness path. Under `root`, the model never sees it.
|
|
290
|
+
|
|
291
|
+
`/tmp` is the reserved scratch prefix. An authored `/tmp` is
|
|
292
|
+
shadowed. Do not put durable files there. `{cwd}/agent-tools/` and
|
|
293
|
+
`/tmp` are different namespaces.
|
|
294
|
+
|
|
295
|
+
`/agent-tools` is not reserved. Prefix `/agent` does not cover
|
|
296
|
+
`/agent-tools`. Those notes are path-prefix tests, not a mount.
|
|
297
|
+
|
|
298
|
+
Process or VM death also loses `/tmp`. Same as POSIX `/tmp`. That
|
|
299
|
+
is acceptable. Do not persist scratch across turns or process
|
|
300
|
+
restarts.
|
|
301
|
+
|
|
302
|
+
### Overlay
|
|
303
|
+
|
|
304
|
+
| Piece | Rule |
|
|
305
|
+
| --- | --- |
|
|
306
|
+
| Native tool | Still searches and fetches. |
|
|
307
|
+
| Bind | Per turn: `unionFs({ "/": authored, "/tmp": tempFs() })`. `/tmp` is a mount, not a FileSystem type. |
|
|
308
|
+
| Session cache | Authored handle may stay cached. The composed root does not. |
|
|
309
|
+
| Drop | End of turn. Next turn gets a new empty `/tmp`. |
|
|
310
|
+
| Small results | Stay inline. No disk, no rewrite. |
|
|
311
|
+
| Copy | Only a file the native tool wrote this turn under `{cwd}/agent-tools/`. |
|
|
312
|
+
| Dest | `/tmp/{uuid}.txt`. Same uuid as the host file. |
|
|
313
|
+
| Host file | Delete after copy. |
|
|
314
|
+
| Other paths | Ignore. Do not copy from the result text at large. |
|
|
315
|
+
|
|
316
|
+
Do not put that composed root on the session handle. A later turn
|
|
317
|
+
must not read another turn's `/tmp`.
|
|
318
|
+
|
|
319
|
+
### Result rewrite
|
|
320
|
+
|
|
321
|
+
Keep the native tool descriptions. They do not mention spill.
|
|
322
|
+
|
|
323
|
+
This package does not change the Cursor SDK. Native WebSearch /
|
|
324
|
+
WebFetch results land in the AgentService conversation inside
|
|
325
|
+
the local executor. That transcript is not rewritten here.
|
|
326
|
+
|
|
327
|
+
What this package rewrites:
|
|
328
|
+
|
|
329
|
+
| Surface | Overlay (`root` set) |
|
|
330
|
+
| --- | --- |
|
|
331
|
+
| `webSearch` / `webFetch` result | Host path and follow-up, in strings or structured fields (`output_location`). Other tools are untouched. |
|
|
332
|
+
| Synthesized Read / Grep input | `{cwd}/agent-tools/{uuid}.txt` → `/tmp/{uuid}.txt` |
|
|
333
|
+
|
|
334
|
+
| Field | Host path (`root` unset) | Overlay (`root` set) |
|
|
335
|
+
| --- | --- | --- |
|
|
336
|
+
| Path | `{cwd}/agent-tools/{uuid}.txt` | `/tmp/{uuid}.txt` |
|
|
337
|
+
| Follow-up | Native text (today: shell / grep / `read_file`) | Read / Grep |
|
|
338
|
+
|
|
339
|
+
Two modes, two paths. Do not invent a third.
|
|
340
|
+
|
|
341
|
+
WebFetch proto has `output_location`. WebSearch only embeds the
|
|
342
|
+
path in the chunk string. Rewrite whichever form the native tool
|
|
343
|
+
used.
|
|
344
|
+
|
|
345
|
+
The model follow path is Read / Grep on `/tmp/{uuid}.txt`,
|
|
346
|
+
including when the model still holds the host path.
|
|
347
|
+
|
|
348
|
+
### Out of scope here
|
|
349
|
+
|
|
350
|
+
MCP `spillLargeMcpTextOutput` uses the same host `agent-tools`
|
|
351
|
+
directory. The same overlay can cover it later. This section is
|
|
352
|
+
webSearch and webFetch only.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Live `root`
|
|
357
|
+
|
|
358
|
+
When the tree depends on the conversation, pass a factory. The
|
|
359
|
+
factory returns a handle. Agent SDK may reuse the object for the
|
|
360
|
+
session. Reuse is not a snapshot of mount contents.
|
|
361
|
+
|
|
362
|
+
```ts
|
|
363
|
+
export default defineAgent({
|
|
364
|
+
name: "notes",
|
|
365
|
+
root: (ctx) => notesForSession(ctx.sessionId),
|
|
366
|
+
});
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
```ts
|
|
370
|
+
interface RootContext {
|
|
371
|
+
sessionId: string;
|
|
372
|
+
agentName?: string;
|
|
373
|
+
continuationKey?: string;
|
|
374
|
+
host?: { files: HostFilesApi; reminders?: ReminderHostApi };
|
|
375
|
+
}
|
|
376
|
+
```
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
> until this document has been reviewed.
|
|
6
6
|
> **Audience:** Agent SDK and cursor-sdk maintainers; change-monitor as the
|
|
7
7
|
> first consumer that is already faking a third runtime.
|
|
8
|
-
> **Companions:** [
|
|
9
|
-
> user-facing contract),
|
|
8
|
+
> **Companions:** [agent-config.md](../reference/agent-config.md#choose-a-runtime)
|
|
9
|
+
> (today's user-facing contract),
|
|
10
10
|
> [factory/change-monitor/docs/tools.md](../../../../factory/change-monitor/docs/tools.md)
|
|
11
11
|
> (why change-monitor is pinned to local),
|
|
12
12
|
> [factory/change-monitor/docs/computer-use.md](../../../../factory/change-monitor/docs/computer-use.md)
|
|
@@ -1604,7 +1604,6 @@ sandbox })`, next to `cloudRuntime({ repos })`. Sibling
|
|
|
1604
1604
|
| Page | Change |
|
|
1605
1605
|
|---|---|
|
|
1606
1606
|
| [reference/agent-config.md](../reference/agent-config.md) | `runtime` type becomes constructors **or** the deprecated string. Table + "Choose a runtime" show `localRuntime(opts)` / `cloudRuntime(opts)` / `virtualRuntime(fs)` first. Move cwd / sandbox / workspaceDir onto the `localRuntime` section. Mark sibling `local` / `cloud` and string `runtime` deprecated. |
|
|
1607
|
-
| [guides/cloud-runtime.md](../guides/cloud-runtime.md) | Open with `cloudRuntime({ repos })`. Keep `runtime: "cloud"` as the still-supported form. Cloud is a turn host, not a filesystem. Hybrid is `send({ runtime: cloudRuntime(opts) })`; local overlay is `send({ runtime: localRuntime(opts) })`. `send({ cloud })` / `send({ workspaceDir })` deprecated. |
|
|
1608
1607
|
| [concepts.md](../concepts.md) | Local vs cloud table: same facts, constructor names. Add one line that `virtualRuntime` is local-with-your-files, not a third host. |
|
|
1609
1608
|
|
|
1610
1609
|
**New page**
|
package/docs/evals.md
CHANGED
|
@@ -157,17 +157,19 @@ Drive the agent with `t.send(message, options?)`. It runs one turn and
|
|
|
157
157
|
waits for the session to park or fail. Multiple sends in one case share
|
|
158
158
|
the session, which is how you write multi-turn evals.
|
|
159
159
|
|
|
160
|
-
Each `t.send` resolves to a turn result with `message`,
|
|
161
|
-
`events`, `toolCalls`, `ok`, and `index`. The turn carries
|
|
162
|
-
assertion vocabulary as `t`, scoped to that turn, so you can
|
|
163
|
-
intermediate turn before the next send overwrites `t.reply`.
|
|
164
|
-
`turn.expectOk()` throws when the turn failed, for later
|
|
165
|
-
depend on it.
|
|
160
|
+
Each `t.send` resolves to a turn result with `message`,
|
|
161
|
+
`sessionId`, `events`, `toolCalls`, `ok`, and `index`. The turn carries
|
|
162
|
+
the same assertion vocabulary as `t`, scoped to that turn, so you can
|
|
163
|
+
grade an intermediate turn before the next send overwrites `t.reply`.
|
|
164
|
+
`turn.expectOk()` throws when the turn failed, for later
|
|
165
|
+
steps that depend on it.
|
|
166
166
|
|
|
167
167
|
Read the full case state with `t.reply` (the last assistant text),
|
|
168
168
|
`t.events` (session events captured so far), `t.turns` (settled
|
|
169
169
|
turns, oldest first), and `t.sessionId`. `t.signal` aborts when the
|
|
170
|
-
case hits its timeout; pass it to your own async work.
|
|
170
|
+
case hits its timeout; pass it to your own async work. A thrown
|
|
171
|
+
[turn result](./reference/result.md) `commit` fails the turn, so
|
|
172
|
+
`t.succeeded()` fails too.
|
|
171
173
|
|
|
172
174
|
Assert with the gates:
|
|
173
175
|
|
|
@@ -13,7 +13,8 @@ questions in the meantime. A Slack triage agent turns a bug report into
|
|
|
13
13
|
a PR, a planner fans a refactor out across repositories, a reviewer asks
|
|
14
14
|
a cloud agent to address its own comments.
|
|
15
15
|
|
|
16
|
-
This is different from
|
|
16
|
+
This is different from
|
|
17
|
+
[`runtime: "cloud"`](../reference/agent-config.md#choose-a-runtime). The
|
|
17
18
|
runtime moves *this* agent's turns onto a cloud VM. The extension keeps
|
|
18
19
|
the agent where it is and lets it start *other* cloud agents.
|
|
19
20
|
|
|
@@ -38,9 +39,8 @@ Launches run under the host's signed-in account (`agent-sdk login` or
|
|
|
38
39
|
repositories the agent may target, and keep approval on when you can't.
|
|
39
40
|
|
|
40
41
|
Mount it on an agent that runs on the local runtime; that is where
|
|
41
|
-
launches park for approval. On the
|
|
42
|
-
|
|
43
|
-
don't resolve.
|
|
42
|
+
launches park for approval. On the cloud runtime approvals don't
|
|
43
|
+
resolve.
|
|
44
44
|
|
|
45
45
|
## What the agent can do
|
|
46
46
|
|
|
@@ -94,5 +94,3 @@ Continue with these pages:
|
|
|
94
94
|
overrides work
|
|
95
95
|
- [Human-in-the-loop approvals](./human-in-the-loop.md): where parked
|
|
96
96
|
launches get approved
|
|
97
|
-
- [Cloud runtime](./cloud-runtime.md): run the agent's own turns on
|
|
98
|
-
cloud agents instead
|
package/docs/guides/github.md
CHANGED
|
@@ -260,6 +260,11 @@ behavior. Reactions still default on; set `reactions: false` when the
|
|
|
260
260
|
eyes emoji is noise. Descriptions are optional; defaults derive from
|
|
261
261
|
`botName` or the check `context`.
|
|
262
262
|
|
|
263
|
+
To match dashboard automations, set `detailsUrl(sessionId)`,
|
|
264
|
+
`summaryLinkText: "View agent"`, and `outputTitle: "context"` so the
|
|
265
|
+
check title is the check name, the summary includes `[View agent](…)`,
|
|
266
|
+
and Details opens the session.
|
|
267
|
+
|
|
263
268
|
A comment-only first wake has no head SHA, so the check waits for a
|
|
264
269
|
PR or CI event. The banner still posts. A later turn on the same SHA
|
|
265
270
|
creates a new check run; GitHub cannot reopen a completed run.
|
|
@@ -275,6 +280,5 @@ key. Handlers you author replace the matching defaults (same as
|
|
|
275
280
|
- [Webhooks and custom channels](./webhooks.md): the HTTP mechanism under
|
|
276
281
|
this pack
|
|
277
282
|
- [Evals](../evals.md): turn replay snapshots into regression fixtures
|
|
278
|
-
- [Cloud runtime](./cloud-runtime.md): attach PRs to cloud VMs
|
|
279
283
|
- [Hooks](../reference/hooks.md): observe-only; use channel `progress` for
|
|
280
284
|
GitHub surfaces
|
|
@@ -8,7 +8,7 @@ description: "Push session, turn, and tool traces from the serve process to an O
|
|
|
8
8
|
Agent SDK can push traces, metrics, and logs from the serve process to
|
|
9
9
|
an OTLP collector you run. Point the process at the collector with
|
|
10
10
|
standard `OTEL_EXPORTER_OTLP_*` env, or author `agent/otel.ts`. Traces
|
|
11
|
-
cover the inbound request,
|
|
11
|
+
cover the inbound request, each turn, and every tool call.
|
|
12
12
|
|
|
13
13
|
Export is opt-in. Nothing leaves the process until you set an endpoint
|
|
14
14
|
or a `defineOtel` config.
|
|
@@ -17,7 +17,7 @@ or a `defineOtel` config.
|
|
|
17
17
|
|
|
18
18
|
| Signal | Default | What you get |
|
|
19
19
|
| --- | --- | --- |
|
|
20
|
-
| Traces | on | `agent_sdk.http`
|
|
20
|
+
| Traces | on | `agent_sdk.http` (per request) and `agent_sdk.turn` → `agent_sdk.tool` / `agent_sdk.subagent` |
|
|
21
21
|
| Metrics | on | `cursor.token.usage`, `cursor.tool.calls`, `cursor.cost.usage`, plus `agent_sdk.*` session and turn counts |
|
|
22
22
|
| Logs | off | Session events as log records. Prompt text, tool payloads, and failure messages stay off unless you opt in |
|
|
23
23
|
|
|
@@ -89,7 +89,17 @@ destination with `signals: ["traces"]`.
|
|
|
89
89
|
|
|
90
90
|
You can also pass the same object to `serve(dir, { otel })`. Precedence
|
|
91
91
|
is `serve({ otel })` over `agent/otel.ts` over env. An empty
|
|
92
|
-
`defineOtel()` still
|
|
92
|
+
`defineOtel()` still records traces; export starts when
|
|
93
|
+
`OTEL_EXPORTER_OTLP_*` or a factory-returned `exporters` list appears.
|
|
94
|
+
|
|
95
|
+
Hosted v2 binds deployment secrets after bake, onto the already-listening
|
|
96
|
+
process. Pass a factory so flush can re-read them. Spans record from
|
|
97
|
+
bake; the hosted handler flush constructs the OTLP client and sends the
|
|
98
|
+
queued batch.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
export default defineOtel(() => resolveMyOtelConfig());
|
|
102
|
+
```
|
|
93
103
|
|
|
94
104
|
The companion skill is [`skills/otel/SKILL.md`](../skills/otel.md).
|
|
95
105
|
|
|
@@ -97,17 +107,23 @@ The companion skill is [`skills/otel/SKILL.md`](../skills/otel.md).
|
|
|
97
107
|
|
|
98
108
|
```text
|
|
99
109
|
agent_sdk.http inbound channel request (W3C traceparent)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
└─ agent_sdk.tool
|
|
110
|
+
agent_sdk.turn one root per turn (`agent_sdk.session_id` = session id)
|
|
111
|
+
├─ agent_sdk.tool
|
|
112
|
+
└─ agent_sdk.subagent
|
|
113
|
+
└─ agent_sdk.tool
|
|
105
114
|
```
|
|
106
115
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
116
|
+
Conversational sessions stay on `session.waiting` and can take more
|
|
117
|
+
turns, so there is no `agent_sdk.session` span — it would never end
|
|
118
|
+
and OTel only exports ended spans. Each turn is its own root. Inbound
|
|
119
|
+
HTTP is a separate SERVER span (it extracts W3C `traceparent`) and
|
|
120
|
+
does not parent the turn, so the turn tree can export when the turn
|
|
121
|
+
ends. Hosted flush ends that SERVER span before the one-shot export so
|
|
122
|
+
`agent_sdk.http` is in the same batch.
|
|
123
|
+
|
|
124
|
+
Turns that resume after restore, or a direct `callTool` with no
|
|
125
|
+
`turn.started` in this process, open a synthetic turn span so tool
|
|
126
|
+
calls still nest.
|
|
111
127
|
|
|
112
128
|
## Which attributes land on the wire?
|
|
113
129
|
|
|
@@ -118,6 +134,12 @@ Every signal carries these resource attributes:
|
|
|
118
134
|
- `cursor.surface=unspecified`
|
|
119
135
|
- `agent_sdk.framework=@cursor/july`
|
|
120
136
|
|
|
137
|
+
Span attributes (not process resource attributes — one serve process
|
|
138
|
+
handles many sessions):
|
|
139
|
+
|
|
140
|
+
- `agent_sdk.session_id` / `cursor.conversation.id`: the session id.
|
|
141
|
+
Search all turns for one conversation with `@agent_sdk.session_id`.
|
|
142
|
+
|
|
121
143
|
Shared names (same keys as enterprise export):
|
|
122
144
|
|
|
123
145
|
- `cursor.conversation.id`: the session id
|
|
@@ -128,22 +150,24 @@ Shared names (same keys as enterprise export):
|
|
|
128
150
|
`cursor.tool.status`
|
|
129
151
|
- `cursor.cost.usage` (USD)
|
|
130
152
|
|
|
131
|
-
Agent SDK only (`agent_sdk.*`): agent name, turn id, channel,
|
|
132
|
-
subagent name, session mode, and HTTP duration
|
|
153
|
+
Agent SDK only (`agent_sdk.*`): session id, agent name, turn id, channel,
|
|
154
|
+
call id, subagent name, session mode, and HTTP duration
|
|
155
|
+
(`agent_sdk.http.duration`).
|
|
133
156
|
|
|
134
157
|
## How do I emit my own metrics?
|
|
135
158
|
|
|
136
159
|
`ctx.host.otel` is always present on tools, hooks, and channel
|
|
137
160
|
handlers. Counters and histograms no-op when no meter is running.
|
|
138
|
-
`setAttributes` still tags
|
|
161
|
+
`setAttributes` still tags open turn/tool spans when a collector is
|
|
139
162
|
attached.
|
|
140
163
|
|
|
141
164
|
Prefix metric names with your team or agent. First-party names
|
|
142
165
|
(`cursor.token.usage`, `cursor.tool.calls`, `cursor.cost.usage`,
|
|
143
166
|
`agent_sdk.session.count`, `agent_sdk.turn.count`,
|
|
144
167
|
`agent_sdk.subagent.count`, `agent_sdk.http.duration`) and join keys
|
|
145
|
-
(`cursor.conversation.id`, `agent_sdk.
|
|
146
|
-
`agent_sdk.framework`) are reserved. Custom spans
|
|
168
|
+
(`cursor.conversation.id`, `agent_sdk.session_id`, `agent_sdk.agent`,
|
|
169
|
+
`agent_sdk.turn_id`, `agent_sdk.framework`) are reserved. Custom spans
|
|
170
|
+
are not on this
|
|
147
171
|
surface.
|
|
148
172
|
|
|
149
173
|
```ts
|
|
@@ -82,11 +82,10 @@ the first prompt, because the local session workspace is not the cloud
|
|
|
82
82
|
VM.
|
|
83
83
|
|
|
84
84
|
`validate` warns when `runtime: "cloud"` is combined with agent tools
|
|
85
|
-
|
|
86
|
-
when skills are present (they sync onto an Agent Store
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
up are in the [Cloud runtime guide](../guides/cloud-runtime.md).
|
|
85
|
+
(they are described on the first prompt instead of written to the VM),
|
|
86
|
+
when skills or sandbox seeds are present (they sync onto an Agent Store
|
|
87
|
+
rather than the session workspace), and when the `cloud` block is
|
|
88
|
+
missing.
|
|
90
89
|
|
|
91
90
|
## Local options
|
|
92
91
|
|
|
@@ -172,9 +171,8 @@ set `local: { sandbox: true }`.
|
|
|
172
171
|
Cloud agent defaults forwarded to the Cursor SDK: `repos` (each
|
|
173
172
|
`{ url, startingRef? }`), environment selection, `envVars`, and the
|
|
174
173
|
rest. A local agent uses the same block as the base config when a
|
|
175
|
-
channel opens a cloud-attached session per send
|
|
176
|
-
|
|
177
|
-
[Cloud runtime](../guides/cloud-runtime.md#hybrid-local-agent-cloud-sessions).
|
|
174
|
+
channel opens a cloud-attached session per send (the `cloud` option on
|
|
175
|
+
[`send`](./channels.md#handler-arguments)).
|
|
178
176
|
|
|
179
177
|
## Concurrency
|
|
180
178
|
|
|
@@ -251,6 +249,4 @@ Continue with these pages:
|
|
|
251
249
|
|
|
252
250
|
- [Instructions](./instructions.md): the required half of a minimal
|
|
253
251
|
agent
|
|
254
|
-
- [Cloud runtime](../guides/cloud-runtime.md): when and how to leave
|
|
255
|
-
the host
|
|
256
252
|
- [CLI](./cli.md): the `serve` flags `serve()` accepts
|