@cursor/july 0.1.101 → 0.1.103
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 +28 -3
- 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/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/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/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/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/api.d.ts +1 -1
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +3 -1
- package/dist/channels/slack/assistant.d.ts +1 -1
- package/dist/channels/slack/assistant.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.d.ts +3 -2
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +28 -8
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +1 -7
- package/dist/channels/slack/inbound.d.ts +8 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +28 -0
- package/dist/channels/slack/init.d.ts.map +1 -1
- package/dist/channels/slack/init.js +3 -3
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +2 -1
- 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.BASO9Kih.js → app.DW9pXkpL.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.nrl1ifBq.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DwkqxoE0.js → VPLocalSearchBox.CdEIUwDg.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CCil_13e.js → theme.YZMHgPgg.js} +2 -2
- package/dist/docs/assets/{concepts.md.lwAgBIMI.js → concepts.md.DgEcZOfT.js} +1 -1
- package/dist/docs/assets/{concepts.md.lwAgBIMI.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_cloud-agents.md.DS8RIjwx.lean.js +1 -0
- package/dist/docs/assets/{guides_github.md.BtPr9GaP.js → guides_github.md.DKYiT9do.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.D75GWhPl.js +5 -0
- package/dist/docs/assets/{index.md.Bb4k8kUm.lean.js → index.md.D75GWhPl.lean.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.Dz8Cnudp.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.lean.js → reference_channels.md.Dz8Cnudp.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.DykHW3qL.js +62 -0
- 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.Bv4KOtlB.js → reference_project-layout.md.DuBu9a96.js} +2 -2
- package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.lean.js → reference_project-layout.md.DuBu9a96.lean.js} +1 -1
- 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_skills.md.BFW9retM.js → reference_skills.md.l2ezAcaN.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.CvAHsdSp.js → reference_tools.md.aGrn99hP.js} +2 -2
- package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +1 -0
- package/dist/docs/assets/{skills_framework-map.md.BTi817yv.lean.js → skills_framework-map.md.haibFyoB.lean.js} +1 -1
- 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 +5 -7
- package/dist/docs/deployment.html +4 -4
- 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 +35 -0
- package/dist/docs/guides/cloud-agents.md +91 -0
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/github.md +0 -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 +11 -12
- 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 +7 -3
- package/dist/docs/llms-full.txt +765 -209
- package/dist/docs/llms.txt +3 -1
- 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 +18 -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 +88 -0
- package/dist/docs/reference/extensions.md +264 -0
- 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 +4 -0
- 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 +6 -6
- package/dist/docs/reference/skills.md +2 -0
- package/dist/docs/reference/subagents.html +5 -5
- package/dist/docs/reference/tools.html +6 -6
- package/dist/docs/reference/tools.md +3 -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 -0
- 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/cursor-cloud-agents/extension.d.ts +9 -7
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +9 -7
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +286 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +14 -38
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/{follow_up.js → reply.js} +12 -14
- package/dist/extensions.d.ts +54 -17
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +83 -15
- package/dist/files-backends/cursor-hosted.d.ts +0 -8
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +1 -11
- package/dist/files.d.ts +21 -4
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +38 -21
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- 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 +14 -0
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +56 -3
- package/dist/internal/continuation-identity.d.ts +14 -15
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +182 -7
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +17 -18
- 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 +13 -5
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +30 -15
- 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 +12 -1
- package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +16 -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 +9 -0
- package/dist/internal/discovery/ab.d.ts.map +1 -0
- package/dist/internal/discovery/ab.js +113 -0
- package/dist/internal/discovery/agent-config.d.ts +35 -0
- package/dist/internal/discovery/agent-config.d.ts.map +1 -0
- package/dist/internal/discovery/agent-config.js +173 -0
- package/dist/internal/discovery/agent.d.ts +16 -0
- package/dist/internal/discovery/agent.d.ts.map +1 -0
- package/dist/internal/discovery/agent.js +255 -0
- package/dist/internal/discovery/channels.d.ts +10 -0
- package/dist/internal/discovery/channels.d.ts.map +1 -0
- package/dist/internal/discovery/channels.js +97 -0
- package/dist/internal/discovery/connections.d.ts +13 -0
- package/dist/internal/discovery/connections.d.ts.map +1 -0
- package/dist/internal/discovery/connections.js +422 -0
- package/dist/internal/discovery/context.d.ts +20 -0
- package/dist/internal/discovery/context.d.ts.map +1 -0
- package/dist/internal/discovery/context.js +30 -0
- package/dist/internal/discovery/cursor-plugin.d.ts +25 -0
- package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -0
- package/dist/internal/discovery/cursor-plugin.js +568 -0
- 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 +28 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -0
- package/dist/internal/discovery/extensions.js +375 -0
- package/dist/internal/discovery/fs.d.ts +15 -0
- package/dist/internal/discovery/fs.d.ts.map +1 -0
- package/dist/internal/discovery/fs.js +115 -0
- package/dist/internal/discovery/hooks.d.ts +7 -0
- package/dist/internal/discovery/hooks.d.ts.map +1 -0
- package/dist/internal/discovery/hooks.js +61 -0
- package/dist/internal/discovery/info.d.ts +6 -0
- package/dist/internal/discovery/info.d.ts.map +1 -0
- package/dist/internal/discovery/info.js +147 -0
- package/dist/internal/discovery/instructions.d.ts +7 -0
- package/dist/internal/discovery/instructions.d.ts.map +1 -0
- package/dist/internal/discovery/instructions.js +95 -0
- package/dist/internal/discovery/modules.d.ts +20 -0
- package/dist/internal/discovery/modules.d.ts.map +1 -0
- package/dist/internal/discovery/modules.js +107 -0
- package/dist/internal/discovery/names.d.ts +12 -0
- package/dist/internal/discovery/names.d.ts.map +1 -0
- package/dist/internal/discovery/names.js +37 -0
- package/dist/internal/discovery/project.d.ts +51 -0
- package/dist/internal/discovery/project.d.ts.map +1 -0
- package/dist/internal/discovery/project.js +293 -0
- package/dist/internal/discovery/runtime.d.ts +34 -0
- package/dist/internal/discovery/runtime.d.ts.map +1 -0
- package/dist/internal/discovery/runtime.js +97 -0
- package/dist/internal/discovery/schedules.d.ts +7 -0
- package/dist/internal/discovery/schedules.d.ts.map +1 -0
- package/dist/internal/discovery/schedules.js +118 -0
- package/dist/internal/discovery/seed-files.d.ts +7 -0
- package/dist/internal/discovery/seed-files.d.ts.map +1 -0
- package/dist/internal/discovery/seed-files.js +41 -0
- package/dist/internal/discovery/services.d.ts +21 -0
- package/dist/internal/discovery/services.d.ts.map +1 -0
- package/dist/internal/discovery/services.js +134 -0
- package/dist/internal/discovery/skills.d.ts +11 -0
- package/dist/internal/discovery/skills.d.ts.map +1 -0
- package/dist/internal/discovery/skills.js +156 -0
- package/dist/internal/discovery/subagent.d.ts +16 -0
- package/dist/internal/discovery/subagent.d.ts.map +1 -0
- package/dist/internal/discovery/subagent.js +128 -0
- package/dist/internal/discovery/tools.d.ts +18 -0
- package/dist/internal/discovery/tools.d.ts.map +1 -0
- package/dist/internal/discovery/tools.js +159 -0
- package/dist/internal/discovery.d.ts +8 -63
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +6 -2504
- 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/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 +14 -14
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +8 -7
- package/dist/internal/frontmatter.d.ts +11 -3
- package/dist/internal/frontmatter.d.ts.map +1 -1
- package/dist/internal/frontmatter.js +29 -3
- package/dist/internal/github-fanout.d.ts +1 -1
- package/dist/internal/github-fanout.js +1 -1
- package/dist/internal/guest-network.d.ts +101 -0
- package/dist/internal/guest-network.d.ts.map +1 -0
- package/dist/internal/guest-network.js +304 -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 +248 -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/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +37 -20
- package/dist/internal/otel/collector.d.ts +22 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +145 -126
- 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 +8 -10
- package/dist/internal/otel/mcp.d.ts +16 -0
- package/dist/internal/otel/mcp.d.ts.map +1 -0
- package/dist/internal/otel/mcp.js +55 -0
- package/dist/internal/otel/propagation.d.ts +6 -0
- package/dist/internal/otel/propagation.d.ts.map +1 -0
- package/dist/internal/otel/propagation.js +14 -0
- 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 +166 -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.map +1 -1
- package/dist/internal/sdk-runner.js +3 -6
- 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 +31 -11
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +208 -102
- package/dist/internal/session-run-log.d.ts +2 -1
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +14 -17
- 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/start-log-store.d.ts +1 -1
- package/dist/internal/start-log-store.d.ts.map +1 -1
- package/dist/internal/start-log-store.js +12 -14
- package/dist/internal/storage-coordinator.d.ts +4 -1
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +15 -13
- 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/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/tool-catalog.d.ts.map +1 -1
- package/dist/internal/tool-catalog.js +9 -6
- package/dist/internal/turn-cost.d.ts +14 -0
- package/dist/internal/turn-cost.d.ts.map +1 -1
- package/dist/internal/turn-cost.js +41 -9
- package/dist/internal/v2-hosting.d.ts +22 -0
- package/dist/internal/v2-hosting.d.ts.map +1 -0
- package/dist/internal/v2-hosting.js +23 -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 +39 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +118 -1
- package/dist/playground/assets/index-59KvgREd.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 +24 -23
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +69 -68
- package/dist/storage.d.ts +2 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/tools.d.ts +9 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +9 -0
- package/dist/types.d.ts +126 -23
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +7 -3
- package/docs/concepts.md +5 -7
- package/docs/design/runtime-abstraction.md +2 -3
- package/docs/evals.md +9 -7
- package/docs/guides/cloud-agents.md +96 -0
- package/docs/guides/github.md +0 -1
- package/docs/guides/opentelemetry.md +41 -17
- package/docs/reference/agent-config.md +6 -10
- package/docs/reference/channels.md +18 -8
- package/docs/reference/cli.md +3 -4
- package/docs/reference/extensions.md +269 -0
- package/docs/reference/hooks.md +215 -46
- package/docs/reference/playground.md +3 -0
- package/docs/reference/project-layout.md +4 -0
- package/docs/reference/result.md +94 -0
- package/docs/reference/sessions.md +3 -1
- package/docs/reference/skills.md +2 -0
- package/docs/reference/tools.md +3 -2
- package/docs/templates/pr-autofixer.md +0 -3
- package/package.json +29 -10
- package/skills/framework-map/SKILL.md +3 -0
- 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/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/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/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/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/api.ts +4 -2
- package/src/channels/slack/assistant.ts +1 -1
- package/src/channels/slack/dispatch.ts +27 -2
- package/src/channels/slack/eval-directive.ts +1 -6
- package/src/channels/slack/inbound.ts +37 -0
- package/src/channels/slack/init.ts +6 -3
- package/src/channels/slack/manifest.ts +2 -1
- 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/cursor-cloud-agents/extension.ts +9 -7
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +51 -0
- package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +22 -42
- package/src/extensions/cursor-cloud-agents/tools/list.ts +1 -1
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
- package/src/extensions.ts +100 -15
- package/src/files-backends/cursor-hosted.ts +1 -17
- package/src/files.ts +64 -37
- package/src/index.ts +27 -26
- 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 +82 -1
- package/src/internal/continuation-identity.ts +229 -11
- package/src/internal/conversation-mirror.ts +27 -21
- 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 +41 -20
- 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 +28 -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 +131 -0
- package/src/internal/discovery/agent-config.ts +222 -0
- package/src/internal/discovery/agent.ts +319 -0
- package/src/internal/discovery/channels.ts +105 -0
- package/src/internal/discovery/connections.ts +545 -0
- package/src/internal/discovery/context.ts +46 -0
- package/src/internal/discovery/cursor-plugin.ts +705 -0
- package/src/internal/discovery/extension-overlay.ts +274 -0
- package/src/internal/discovery/extensions.ts +573 -0
- package/src/internal/discovery/fs.ts +108 -0
- package/src/internal/discovery/hooks.ts +63 -0
- package/src/internal/discovery/info.ts +186 -0
- package/src/internal/discovery/instructions.ts +113 -0
- package/src/internal/discovery/modules.ts +113 -0
- package/src/internal/discovery/names.ts +45 -0
- package/src/internal/discovery/project.ts +341 -0
- package/src/internal/discovery/runtime.ts +158 -0
- package/src/internal/discovery/schedules.ts +120 -0
- package/src/internal/discovery/seed-files.ts +37 -0
- package/src/internal/discovery/services.ts +160 -0
- package/src/internal/discovery/skills.ts +186 -0
- package/src/internal/discovery/subagent.ts +136 -0
- package/src/internal/discovery/tools.ts +182 -0
- package/src/internal/discovery.ts +18 -3081
- 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/framework-file-storage.ts +14 -14
- package/src/internal/framework-storage-selection.ts +9 -9
- package/src/internal/frontmatter.ts +36 -3
- package/src/internal/github-fanout.ts +1 -1
- package/src/internal/guest-network.ts +383 -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 +376 -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/mcp-host.ts +84 -31
- package/src/internal/otel/collector.ts +200 -165
- package/src/internal/otel/config.ts +10 -14
- package/src/internal/otel/http.ts +16 -13
- package/src/internal/otel/mcp.ts +56 -0
- package/src/internal/otel/propagation.ts +17 -0
- package/src/internal/otel/runtime.ts +242 -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 +3 -7
- package/src/internal/server.ts +153 -44
- package/src/internal/session-cost.ts +3 -3
- package/src/internal/session-engine.ts +274 -81
- package/src/internal/session-run-log.ts +18 -20
- package/src/internal/skills-sync.ts +13 -63
- package/src/internal/sleep.ts +3 -0
- package/src/internal/start-log-store.ts +13 -16
- package/src/internal/storage-coordinator.ts +19 -16
- package/src/internal/store-mirror.ts +86 -0
- package/src/internal/tenant-slack/relay.ts +179 -0
- package/src/internal/testing/scm-continuation-fixtures.ts +286 -0
- package/src/internal/tool-catalog.ts +9 -6
- package/src/internal/turn-cost.ts +47 -4
- package/src/internal/v2-hosting.ts +38 -0
- package/src/internal/workspace-sync.ts +55 -0
- package/src/internal/workspace.ts +14 -0
- package/src/otel.ts +180 -2
- package/src/result.ts +36 -0
- package/src/storage-backends/cursor-hosted.ts +7 -4
- package/src/storage-protocol.ts +102 -95
- package/src/storage.ts +4 -0
- package/src/tools.ts +18 -0
- package/src/types.ts +146 -34
- 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.DbFXINq2.js +0 -1
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.lean.js +0 -1
- package/dist/docs/assets/index.md.Bb4k8kUm.js +0 -5
- package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +0 -14
- package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +0 -1
- package/dist/docs/guides/cloud-runtime.html +0 -35
- package/dist/docs/guides/cloud-runtime.md +0 -115
- package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts +0 -30
- package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts.map +0 -1
- package/dist/extensions/cursor-cloud-agents/lib/cloud.js +0 -45
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts +0 -4
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts.map +0 -1
- package/dist/extensions/cursor-cloud-agents/tools/status.d.ts +0 -4
- package/dist/extensions/cursor-cloud-agents/tools/status.d.ts.map +0 -1
- package/dist/extensions/cursor-cloud-agents/tools/status.js +0 -41
- 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-BnNN1-EK.js +0 -69
- package/dist/playground/assets/index-DBQCwFp0.css +0 -1
- package/docs/guides/cloud-runtime.md +0 -120
- package/src/continuation.ts +0 -49
- package/src/extensions/cursor-cloud-agents/lib/cloud.ts +0 -79
- package/src/extensions/cursor-cloud-agents/tools/follow_up.ts +0 -29
- package/src/extensions/cursor-cloud-agents/tools/status.ts +0 -39
- 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_github.md.BtPr9GaP.lean.js → guides_github.md.DKYiT9do.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_skills.md.BFW9retM.lean.js → reference_skills.md.l2ezAcaN.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.CvAHsdSp.lean.js → reference_tools.md.aGrn99hP.lean.js} +0 -0
|
@@ -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
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Cursor cloud agents"
|
|
3
|
+
description: "Let an agent-sdk agent hand coding work to Cursor cloud agents and steer them: mount the extension, pick the repositories it may touch, and decide what needs approval."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cursor cloud agents
|
|
7
|
+
|
|
8
|
+
The `cursor-cloud-agents` extension lets an agent delegate coding work
|
|
9
|
+
to Cursor cloud agents and stay in the conversation while they do it.
|
|
10
|
+
The cloud agents work on real repository checkouts and push branches and
|
|
11
|
+
pull requests; your agent hands off the task, reports back, and answers
|
|
12
|
+
questions in the meantime. A Slack triage agent turns a bug report into
|
|
13
|
+
a PR, a planner fans a refactor out across repositories, a reviewer asks
|
|
14
|
+
a cloud agent to address its own comments.
|
|
15
|
+
|
|
16
|
+
This is different from
|
|
17
|
+
[`runtime: "cloud"`](../reference/agent-config.md#choose-a-runtime). The
|
|
18
|
+
runtime moves *this* agent's turns onto a cloud VM. The extension keeps
|
|
19
|
+
the agent where it is and lets it start *other* cloud agents.
|
|
20
|
+
|
|
21
|
+
## Mount it
|
|
22
|
+
|
|
23
|
+
The extension ships with `@cursor/july`. Mount it with one file.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
// agent/extensions/cloud.ts
|
|
27
|
+
import cursorCloudAgents from "@cursor/july/extensions/cursor-cloud-agents";
|
|
28
|
+
|
|
29
|
+
export default cursorCloudAgents({
|
|
30
|
+
cloud: {
|
|
31
|
+
repos: [{ url: "https://github.com/acme/api", startingRef: "main" }],
|
|
32
|
+
autoCreatePR: true,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Launches run under the host's signed-in account (`agent-sdk login` or
|
|
38
|
+
`CURSOR_API_KEY`) and spend its cloud-agent budget. Name the
|
|
39
|
+
repositories the agent may target, and keep approval on when you can't.
|
|
40
|
+
|
|
41
|
+
Mount it on an agent that runs on the local runtime; that is where
|
|
42
|
+
launches park for approval. On the cloud runtime approvals don't
|
|
43
|
+
resolve.
|
|
44
|
+
|
|
45
|
+
## What the agent can do
|
|
46
|
+
|
|
47
|
+
With the extension mounted, the agent can hand off coding work and stay
|
|
48
|
+
in the conversation while it happens:
|
|
49
|
+
|
|
50
|
+
- **Hand off a task.** Launch a cloud agent on one of your repositories,
|
|
51
|
+
or on a pull request, with a self-contained brief. It gets back an
|
|
52
|
+
agent id and a URL to share.
|
|
53
|
+
- **Check on it.** See whether the agent is still running, what it
|
|
54
|
+
produced, and which branches or pull requests it pushed.
|
|
55
|
+
- **Read what was done.** Pull the agent's full conversation into the
|
|
56
|
+
workspace, quote its final report, or trace the exact edits before
|
|
57
|
+
summarizing for a person.
|
|
58
|
+
- **Steer or stop.** Send a follow-up to an agent it launched; it queues
|
|
59
|
+
behind the current run, or interrupts it on request. Cancel a run that
|
|
60
|
+
went sideways.
|
|
61
|
+
- **Keep track.** List the agents launched in this conversation, or
|
|
62
|
+
everything it has launched before.
|
|
63
|
+
|
|
64
|
+
A skill teaches the model when to delegate, how to write a brief a cloud
|
|
65
|
+
agent can act on alone, and how to follow up. Everything the extension
|
|
66
|
+
launches stays bound to whoever launched it: an agent started by another
|
|
67
|
+
user, or outside the extension, is out of reach. That separation is only
|
|
68
|
+
as fine as your host's auth; a shared bearer token or `--allow-anonymous`
|
|
69
|
+
makes every caller one principal, so use
|
|
70
|
+
[authored auth](../reference/channels.md#auth-policies) when callers need
|
|
71
|
+
their own.
|
|
72
|
+
|
|
73
|
+
## Configure it
|
|
74
|
+
|
|
75
|
+
| Option | What it controls |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| `cloud` | Launch defaults, in the same shape as the agent's own [cloud options](../reference/agent-config.md#cloud-options). |
|
|
78
|
+
| `cloud.repos` | The repositories the agent may hand work to, with a default branch or pull request for each. Without it, launches run with no repository and the model can't name one, so secrets in `cloud.envVars` never reach a repository you didn't list. |
|
|
79
|
+
| `model` | The model launched agents run. Omit it to use the account default. |
|
|
80
|
+
| `needsApproval` | Park launches and follow-ups for a [human decision](./human-in-the-loop.md). Defaults to `true` when no `cloud.repos` are configured, `false` otherwise. |
|
|
81
|
+
| `apiKey` | A Cursor API key to launch with instead of the host's own. |
|
|
82
|
+
|
|
83
|
+
## Adjust it
|
|
84
|
+
|
|
85
|
+
To take a capability away, such as sending follow-ups, mount as a
|
|
86
|
+
directory and disable that tool; see
|
|
87
|
+
[overlays](../reference/extensions.md#adjust-a-mounted-extension).
|
|
88
|
+
|
|
89
|
+
## What's next
|
|
90
|
+
|
|
91
|
+
Continue with these pages:
|
|
92
|
+
|
|
93
|
+
- [Extensions](../reference/extensions.md): how mounts, namespaces, and
|
|
94
|
+
overrides work
|
|
95
|
+
- [Human-in-the-loop approvals](./human-in-the-loop.md): where parked
|
|
96
|
+
launches get approved
|
package/docs/guides/github.md
CHANGED
|
@@ -275,6 +275,5 @@ key. Handlers you author replace the matching defaults (same as
|
|
|
275
275
|
- [Webhooks and custom channels](./webhooks.md): the HTTP mechanism under
|
|
276
276
|
this pack
|
|
277
277
|
- [Evals](../evals.md): turn replay snapshots into regression fixtures
|
|
278
|
-
- [Cloud runtime](./cloud-runtime.md): attach PRs to cloud VMs
|
|
279
278
|
- [Hooks](../reference/hooks.md): observe-only; use channel `progress` for
|
|
280
279
|
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
|
|
@@ -142,8 +142,10 @@ The `events` map subscribes the channel to stream events for the
|
|
|
142
142
|
sessions it owns. Keys are event types from the
|
|
143
143
|
[event vocabulary](./sessions.md#which-events-can-i-stream), or `"*"`.
|
|
144
144
|
Handlers receive `(event, channel, ctx)`, where `channel.state` is the
|
|
145
|
-
per-session adapter state
|
|
146
|
-
|
|
145
|
+
per-session adapter state, `ctx.session` is the session info, and
|
|
146
|
+
`ctx.host` is the shared host services, bound to that session as in a
|
|
147
|
+
[hook](./hooks.md#handler-context). This is where a channel delivers
|
|
148
|
+
replies back to its surface.
|
|
147
149
|
|
|
148
150
|
## State and lifecycle
|
|
149
151
|
|
|
@@ -216,13 +218,21 @@ converge a merge-box check and sticky PR comment from default stream
|
|
|
216
218
|
events. Guide: [GitHub](../guides/github.md).
|
|
217
219
|
|
|
218
220
|
**Deployments** (`@cursor/july/channels/deployments`): pull deploy
|
|
219
|
-
events.
|
|
220
|
-
|
|
221
|
-
`
|
|
221
|
+
events. Declare `events` and handle each one in `onEvent`. Each event
|
|
222
|
+
carries `deploySourceUri` and `deployVersion`. Author
|
|
223
|
+
`agent/channels/deployments.ts` with `deploymentsChannel()`.
|
|
224
|
+
|
|
225
|
+
Omit `deploySourceUris` on hosted v2. The control plane binds
|
|
226
|
+
`deploy_source` edges from the deploy's watched `repositories` and the
|
|
227
|
+
channel admits what it is sent, which is what makes it multi-tenant
|
|
228
|
+
safe.
|
|
229
|
+
|
|
230
|
+
Name sources to narrow below that scope, or to drive the self-hosted
|
|
231
|
+
pull relay, which has no deploy scope to inherit. There, subscribe per
|
|
232
|
+
deploy source with `deploySourceUris` and narrow with `environments` /
|
|
233
|
+
`events`. Each entry must match `Deployment.deploy_source_uri` as your
|
|
222
234
|
deployment writer records it; matching is case-insensitive but
|
|
223
|
-
otherwise literal.
|
|
224
|
-
`deployVersion`. Author `agent/channels/deployments.ts` with
|
|
225
|
-
`deploymentsChannel()`. It uses the host credential. A restart resumes
|
|
235
|
+
otherwise literal. It uses the host credential. A restart resumes
|
|
226
236
|
rather than dropping events. An empty `deploySourceUris` list mounts
|
|
227
237
|
the channel but starts no pull, so an env-configured agent stays inert
|
|
228
238
|
until its deploy sources are set.
|
package/docs/reference/cli.md
CHANGED
|
@@ -5,10 +5,9 @@ description: "Commands and common flags for local development, running servers,
|
|
|
5
5
|
|
|
6
6
|
# CLI reference
|
|
7
7
|
|
|
8
|
-
`@cursor/july` installs
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
streams from the Cursor SDK.
|
|
8
|
+
`@cursor/july` installs one command, `agent-sdk`; `npx @cursor/july <cmd>`
|
|
9
|
+
runs it. Run the CLI with Node 22.13 or newer. Don't run it with Bun; Bun
|
|
10
|
+
corrupts tool-result streams from the Cursor SDK.
|
|
12
11
|
|
|
13
12
|
`agent-sdk help` prints the built-in summary. The Slack and GitHub packs
|
|
14
13
|
also provide `agent-sdk slack help` and `agent-sdk github help`.
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Extensions"
|
|
3
|
+
description: "Mount a package of agent contributions or a Cursor plugin under a namespace with one file, adjust what it contributes, and author your own as a directory laid out like agent/."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Extensions
|
|
7
|
+
|
|
8
|
+
An extension packages the same contributions an agent authors under
|
|
9
|
+
`agent/` and installs them as one unit. You mount it with a single file
|
|
10
|
+
under `agent/extensions/`, and its contributions join the agent under a
|
|
11
|
+
namespace. The package updates like any other dependency; nothing is
|
|
12
|
+
copied into your project. A Cursor plugin mounts the same way; see
|
|
13
|
+
[Mount a Cursor plugin](#mount-a-cursor-plugin).
|
|
14
|
+
|
|
15
|
+
Extensions are native to the Agent SDK. Slot files use the `@cursor/july`
|
|
16
|
+
helpers, so a package built on another agent framework fails
|
|
17
|
+
`agent-sdk validate` until you rewrite it onto `@cursor/july`.
|
|
18
|
+
|
|
19
|
+
## Mount an extension
|
|
20
|
+
|
|
21
|
+
Install the package, then add one file. The filename is the namespace.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
// agent/extensions/ci.ts
|
|
25
|
+
import ci from "@acme/ci-triage";
|
|
26
|
+
|
|
27
|
+
export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Every contribution is exposed as `<namespace>__<name>`. A `failed_jobs`
|
|
31
|
+
tool from this mount runs in the agent as `ci__failed_jobs`, and a
|
|
32
|
+
`triage` skill loads as `ci__triage`. `agent-sdk info` lists each mount
|
|
33
|
+
with what it contributed, and `GET /v1/info` returns the same under
|
|
34
|
+
`extensions`.
|
|
35
|
+
|
|
36
|
+
Pass the configuration the extension asks for. The extension validates it
|
|
37
|
+
when the agent loads, so a missing or mistyped field fails
|
|
38
|
+
`agent-sdk validate` instead of a tool call later.
|
|
39
|
+
|
|
40
|
+
Namespaces follow the tool-name rule, and `__` is reserved: an authored
|
|
41
|
+
`agent/tools/ci__failed_jobs.ts` fails discovery, so nothing outside a
|
|
42
|
+
mount can pose as one of its tools.
|
|
43
|
+
|
|
44
|
+
## What an extension can contribute
|
|
45
|
+
|
|
46
|
+
An extension tree uses the same slots as [`agent/`](./project-layout.md).
|
|
47
|
+
Each shareable contribution lands on the agent under the mount's
|
|
48
|
+
namespace:
|
|
49
|
+
|
|
50
|
+
| Path | Becomes |
|
|
51
|
+
| --- | --- |
|
|
52
|
+
| `tools/<name>.ts` | tool `<ns>__<name>` |
|
|
53
|
+
| `skills/<name>` | skill `<ns>__<name>` |
|
|
54
|
+
| `mcp-connections/<name>.ts` | connection `<ns>__<name>` |
|
|
55
|
+
| `host-connections/<name>.ts` | host connection `<ns>__<name>` |
|
|
56
|
+
| `hooks/<name>.ts` | hook `<ns>__<name>` |
|
|
57
|
+
| `channels/<name>.ts` | channel `<ns>__<name>` |
|
|
58
|
+
| `schedules/<name>` | schedule `<ns>__<name>` |
|
|
59
|
+
| `subagents/<id>/` | subagent `<ns>__<id>` |
|
|
60
|
+
| `instructions.md` / `.ts` / dir | appended to the agent's system prompt |
|
|
61
|
+
| `sandbox/workspace/**` | seeded into each local session workspace |
|
|
62
|
+
| `ab.ts` / `ab/<name>.ts` | A/B experiment `<ns>__<name>` |
|
|
63
|
+
| `artifacts.ts` | artifact kinds `<ns>__<kind>` |
|
|
64
|
+
|
|
65
|
+
The root agent still needs its own `instructions.md`. Extension
|
|
66
|
+
instructions are extra fragments, not a substitute.
|
|
67
|
+
|
|
68
|
+
`httpChannel()` stays on the agent. An extension authors
|
|
69
|
+
`defineChannel` only; a file named `http.ts` becomes `<ns>__http`.
|
|
70
|
+
|
|
71
|
+
These stay on the agent that mounts the extension. Each is a singleton
|
|
72
|
+
or is outside discovery:
|
|
73
|
+
|
|
74
|
+
| Path | Why it stays on the agent |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `agent.ts` | One `defineAgent` runtime per agent |
|
|
77
|
+
| `storage.ts` | One `host.kv` / `host.files` backend |
|
|
78
|
+
| `otel.ts` | One OTLP exporter |
|
|
79
|
+
| `ab.config.ts` | One experiment-platform config; `ab.ts` / `ab/` still merge |
|
|
80
|
+
| `playground/` | Custom chips are a Vite glob of the agent tree, not a discovery walk |
|
|
81
|
+
| `extensions/` | Nested mounts are not loaded |
|
|
82
|
+
| `sandbox.ts` | Custom sandbox backends stay on the agent |
|
|
83
|
+
|
|
84
|
+
`agent-sdk validate` warns when a tree carries those paths.
|
|
85
|
+
|
|
86
|
+
## Adjust a mounted extension
|
|
87
|
+
|
|
88
|
+
To replace or remove a contribution, mount the extension as a directory
|
|
89
|
+
and overlay the slot you want to change.
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
agent/extensions/ci/
|
|
93
|
+
├── extension.ts # the mount: export default ci({ ... })
|
|
94
|
+
├── tools/
|
|
95
|
+
│ ├── job_log.ts # replaces ci__job_log with your own defineTool
|
|
96
|
+
│ └── retry_job.ts # export default disableTool() removes ci__retry_job
|
|
97
|
+
├── hooks/
|
|
98
|
+
│ └── audit.ts # export default disableHook() removes ci__audit
|
|
99
|
+
└── skills/
|
|
100
|
+
└── triage.ts # export default disableSkill() removes ci__triage
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Use the extension's own names inside the directory, without the
|
|
104
|
+
namespace. A file with a name the extension doesn't contribute adds a
|
|
105
|
+
new contribution under the namespace. Each helper comes from
|
|
106
|
+
`@cursor/july/extensions` and fails discovery when it names a
|
|
107
|
+
contribution the extension doesn't have, so a typo can't silently keep
|
|
108
|
+
it alive.
|
|
109
|
+
|
|
110
|
+
| Slot | Helper |
|
|
111
|
+
| --- | --- |
|
|
112
|
+
| `tools/<name>.ts` | `disableTool()` |
|
|
113
|
+
| `mcp-connections/<name>.ts` / `host-connections/<name>.ts` | `disableConnection()` |
|
|
114
|
+
| `skills/<name>.ts` | `disableSkill()` |
|
|
115
|
+
| `hooks/<name>.ts` | `disableHook()` |
|
|
116
|
+
| `channels/<name>.ts` | `disableChannel()` |
|
|
117
|
+
| `schedules/<name>.ts` | `disableSchedule()` |
|
|
118
|
+
| `subagents/<id>.ts` | `disableSubagent()` |
|
|
119
|
+
| `instructions.ts` | `disableInstructions()` |
|
|
120
|
+
| `ab.ts` / `ab/<name>.ts` | `disableAB()` |
|
|
121
|
+
| `artifacts.ts` | `disableArtifacts()` |
|
|
122
|
+
|
|
123
|
+
`disable()` is the same brand as the slot helpers above and works in
|
|
124
|
+
any of those files.
|
|
125
|
+
|
|
126
|
+
A Cursor plugin mount overlays its MCP servers the same way; see below.
|
|
127
|
+
|
|
128
|
+
## Mount a Cursor plugin
|
|
129
|
+
|
|
130
|
+
A Cursor plugin is a directory with `.cursor-plugin/plugin.json` (or
|
|
131
|
+
`.claude-plugin/plugin.json`, or `plugin.json`) and any of `skills/`,
|
|
132
|
+
`commands/`, `agents/`, and `mcp.json`. Copy the plugin into your project
|
|
133
|
+
and mount it with `cursorPlugin`. The filename is the namespace, as with
|
|
134
|
+
any extension.
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
// agent/extensions/notion.ts
|
|
138
|
+
import { cursorPlugin } from "@cursor/july/extensions";
|
|
139
|
+
|
|
140
|
+
export default cursorPlugin({
|
|
141
|
+
path: "plugins/notion-workspace", // relative to the project root
|
|
142
|
+
variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The plugin joins the agent under that namespace:
|
|
147
|
+
|
|
148
|
+
| Plugin content | Becomes |
|
|
149
|
+
| --- | --- |
|
|
150
|
+
| `skills/<name>/SKILL.md` | skill `notion__<name>` |
|
|
151
|
+
| `commands/<name>.md` | skill `notion__<name>`, since a command is a procedure the model runs on request |
|
|
152
|
+
| `agents/<name>.md` | subagent `notion__<name>` |
|
|
153
|
+
| MCP servers in `mcp.json` or the manifest | connection `notion__<server>` |
|
|
154
|
+
|
|
155
|
+
`variables` fills the `${NAME}` placeholders the plugin's MCP config
|
|
156
|
+
declares; names you leave out come from the environment by exact name. A
|
|
157
|
+
placeholder nothing fills fails `agent-sdk validate`, so a server never
|
|
158
|
+
attaches half configured. A server that declares an OAuth client
|
|
159
|
+
authorizes through [host MCP OAuth](../guides/mcp-oauth.md) as
|
|
160
|
+
`agent-sdk mcp oauth notion__<server>`; its secret names collapse the
|
|
161
|
+
namespace separator, so `notion__notion` stores `MCP_OAUTH_NOTION_NOTION_*`.
|
|
162
|
+
A server that lists `enabledTools` mounts as an advertised connection with
|
|
163
|
+
that allowlist and requires the local runtime; `agent-sdk validate` fails
|
|
164
|
+
otherwise.
|
|
165
|
+
|
|
166
|
+
Mounting a plugin trusts it like authored code: its servers run the
|
|
167
|
+
commands and read the environment variables its config names. Review a
|
|
168
|
+
plugin before you vendor it.
|
|
169
|
+
|
|
170
|
+
Plugin rules and hooks are not mounted; `agent-sdk validate` warns when a
|
|
171
|
+
plugin carries them. To drop or reconfigure one of the plugin's servers,
|
|
172
|
+
mount as a directory and overlay `mcp-connections/<server>.ts`. An
|
|
173
|
+
overlaid server is never read from the plugin, so it needs no variables.
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
agent/extensions/cloudflare/
|
|
177
|
+
├── extension.ts # export default cursorPlugin({ path: "plugins/cloudflare" })
|
|
178
|
+
└── mcp-connections/
|
|
179
|
+
├── cloudflare-docs.ts # replaces cloudflare__cloudflare-docs with your defineConnection
|
|
180
|
+
└── cloudflare-bindings.ts # export default disableConnection() drops it
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
`disableConnection()` comes from `@cursor/july/extensions` and fails
|
|
184
|
+
discovery when it names a server the plugin doesn't declare.
|
|
185
|
+
|
|
186
|
+
## Build an extension
|
|
187
|
+
|
|
188
|
+
An extension is a directory laid out like `agent/`. `extension.ts`
|
|
189
|
+
declares it; the slots in [What an extension can contribute](#what-an-extension-can-contribute)
|
|
190
|
+
use the same authoring forms as the rest of this reference.
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
@acme/ci-triage/
|
|
194
|
+
├── package.json
|
|
195
|
+
├── extension.ts # defineExtension
|
|
196
|
+
├── tools/
|
|
197
|
+
│ ├── failed_jobs.ts
|
|
198
|
+
│ ├── job_log.ts
|
|
199
|
+
│ └── retry_job.ts
|
|
200
|
+
├── skills/
|
|
201
|
+
│ └── triage.md
|
|
202
|
+
├── hooks/
|
|
203
|
+
│ └── audit.ts
|
|
204
|
+
├── mcp-connections/
|
|
205
|
+
│ └── buildkite.ts
|
|
206
|
+
└── lib/
|
|
207
|
+
└── buildkite.ts # shared code, never discovered
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Declare the extension with its root and, when consumers must configure
|
|
211
|
+
it, a schema for their settings.
|
|
212
|
+
|
|
213
|
+
```ts
|
|
214
|
+
// extension.ts
|
|
215
|
+
import { defineExtension } from "@cursor/july/extensions";
|
|
216
|
+
import { z } from "zod";
|
|
217
|
+
|
|
218
|
+
export default defineExtension({
|
|
219
|
+
root: import.meta.dirname,
|
|
220
|
+
description: "Investigate failing CI builds on Buildkite.",
|
|
221
|
+
config: z.object({
|
|
222
|
+
org: z.string(),
|
|
223
|
+
token: z.string(),
|
|
224
|
+
logTailLines: z.number().int().positive().default(200),
|
|
225
|
+
}),
|
|
226
|
+
});
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
The default export is what consumers call to mount the extension, and it
|
|
230
|
+
is also how your own modules read the consumer's settings. Import it and
|
|
231
|
+
read `extension.config`; the value is validated and has defaults applied.
|
|
232
|
+
|
|
233
|
+
```ts
|
|
234
|
+
// tools/job_log.ts
|
|
235
|
+
import { defineTool } from "@cursor/july/tools";
|
|
236
|
+
import { z } from "zod";
|
|
237
|
+
import extension from "../extension.js";
|
|
238
|
+
import { jobLogTail } from "../lib/buildkite.js";
|
|
239
|
+
|
|
240
|
+
export default defineTool({
|
|
241
|
+
description: "Read the tail of a CI job's log.",
|
|
242
|
+
effect: "read",
|
|
243
|
+
inputSchema: z.object({ pipeline: z.string(), build: z.number(), job: z.string() }),
|
|
244
|
+
async execute({ pipeline, build, job }) {
|
|
245
|
+
const { org, token, logTailLines } = extension.config;
|
|
246
|
+
return jobLogTail({ org, token, pipeline, build, job, lines: logTailLines });
|
|
247
|
+
},
|
|
248
|
+
});
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Because the consumer picks the namespace, have skills and tool
|
|
252
|
+
descriptions refer to sibling tools by their short names and say they
|
|
253
|
+
appear under the mount's namespace (`<namespace>__job_log`).
|
|
254
|
+
|
|
255
|
+
Publish the built `extension.js` as the package entry point with the
|
|
256
|
+
slot directories beside it. `root` is read from the built file, so copy
|
|
257
|
+
`skills/*.md` and `instructions.md` into the build output or author them
|
|
258
|
+
as `.ts`.
|
|
259
|
+
|
|
260
|
+
## What's next
|
|
261
|
+
|
|
262
|
+
Continue with these pages:
|
|
263
|
+
|
|
264
|
+
- [Cursor cloud agents](../guides/cloud-agents.md): the extension that
|
|
265
|
+
lets an agent launch and steer cloud agents
|
|
266
|
+
- [Tools](./tools.md): the tool contract extensions contribute to
|
|
267
|
+
- [Skills](./skills.md): the skill forms an extension can carry
|
|
268
|
+
- [Project layout](./project-layout.md): where `agent/extensions/` sits
|
|
269
|
+
in the tree
|