@cursor/july 0.1.100 → 0.1.102
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/README.md +27 -0
- package/dist/bin/agent-serve.js +3 -2
- package/dist/channels/deployments/deployments-channel.d.ts +41 -5
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +88 -8
- package/dist/channels/deployments/types.d.ts +4 -3
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/origin/defaults.d.ts +43 -0
- package/dist/channels/origin/defaults.d.ts.map +1 -0
- package/dist/channels/origin/defaults.js +111 -0
- package/dist/channels/origin/index.d.ts +2 -0
- package/dist/channels/origin/index.d.ts.map +1 -1
- package/dist/channels/origin/index.js +2 -0
- package/dist/channels/origin/origin-channel.d.ts +2 -1
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +24 -3
- package/dist/channels/origin/state.d.ts +32 -0
- package/dist/channels/origin/state.d.ts.map +1 -0
- package/dist/channels/origin/state.js +23 -0
- package/dist/channels/origin/types.d.ts +23 -1
- 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 +5 -2
- package/dist/channels/slack/assistant.d.ts +1 -1
- package/dist/channels/slack/assistant.d.ts.map +1 -1
- package/dist/channels/slack/code-fences.d.ts +17 -0
- package/dist/channels/slack/code-fences.d.ts.map +1 -0
- package/dist/channels/slack/code-fences.js +168 -0
- 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/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/index.d.ts +1 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +1 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +11 -4
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +2 -1
- package/dist/connections.d.ts +18 -2
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +18 -2
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.DZ1e0Ycq.js → app.CLA03RCz.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.l8omwc6D.js → VPLocalSearchBox.ifxv-cJV.js} +1 -1
- package/dist/docs/assets/chunks/{theme.JVcD6gel.js → theme.DWCwM6p-.js} +2 -2
- package/dist/docs/assets/concepts.md.rPzW2HZN.js +1 -0
- package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +9 -0
- package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.lean.js +1 -0
- package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.js → guides_cloud-runtime.md.BRirbRAN.js} +1 -1
- package/dist/docs/assets/index.md.Kiht7ell.js +5 -0
- package/dist/docs/assets/{index.md.Bb4k8kUm.lean.js → index.md.Kiht7ell.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.BiGoBAk2.js → reference_connections.md.Di6jJAXF.js} +12 -2
- package/dist/docs/assets/{reference_connections.md.BiGoBAk2.lean.js → reference_connections.md.Di6jJAXF.lean.js} +1 -1
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.js +56 -0
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +1 -0
- package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.js → reference_http-api.md.oySXBO8o.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.js → reference_project-layout.md.CA6QP6Lw.js} +2 -2
- package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.lean.js → reference_project-layout.md.CA6QP6Lw.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.B1up2r9W.js} +1 -1
- package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +1 -0
- package/dist/docs/assets/{skills_framework-map.md.BTi817yv.lean.js → skills_framework-map.md.DDa4MeEW.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 +3 -3
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/evals.html +4 -4
- 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 +93 -0
- package/dist/docs/guides/cloud-runtime.html +6 -6
- package/dist/docs/guides/cloud-runtime.md +2 -0
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +4 -4
- package/dist/docs/guides/opentelemetry.html +5 -5
- 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 +5 -1
- package/dist/docs/llms-full.txt +353 -5
- package/dist/docs/llms.txt +2 -0
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +5 -5
- package/dist/docs/reference/cli.html +4 -4
- package/dist/docs/reference/connections.html +16 -6
- package/dist/docs/reference/connections.md +31 -0
- package/dist/docs/reference/extensions.html +82 -0
- package/dist/docs/reference/extensions.md +200 -0
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +1 -1
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +6 -6
- package/dist/docs/reference/project-layout.md +3 -0
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- 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 +2 -0
- 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 +1 -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 +4 -4
- 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 +4 -4
- 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/extensions/cursor-cloud-agents/extension.d.ts +57 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/extension.js +66 -0
- 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/fleet.d.ts +25 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +85 -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/repos.d.ts +15 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +55 -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 +41 -0
- 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 +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +59 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/list.js +36 -0
- 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/reply.js +35 -0
- package/dist/extensions.d.ts +73 -0
- package/dist/extensions.d.ts.map +1 -0
- package/dist/extensions.js +112 -0
- 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 +5 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +22 -18
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/internal/advertise-tools.d.ts +4 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +20 -1
- package/dist/internal/as-of.d.ts +18 -0
- package/dist/internal/as-of.d.ts.map +1 -1
- package/dist/internal/as-of.js +131 -0
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +64 -19
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +3 -1
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +13 -15
- package/dist/internal/cursor/backend-client.d.ts +8 -1
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +25 -9
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts +16 -0
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -0
- package/dist/internal/cursor/hosted-deployment-secrets.js +61 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts +11 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +15 -0
- package/dist/internal/cursor-deployment-relay.d.ts +15 -1
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +46 -7
- package/dist/internal/deploy-client.d.ts +23 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +54 -12
- 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 +101 -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 +11 -0
- package/dist/internal/discovery/agent.d.ts.map +1 -0
- package/dist/internal/discovery/agent.js +306 -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 +17 -0
- package/dist/internal/discovery/connections.d.ts.map +1 -0
- package/dist/internal/discovery/connections.js +436 -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 +570 -0
- package/dist/internal/discovery/extensions.d.ts +19 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -0
- package/dist/internal/discovery/extensions.js +238 -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 +48 -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 +141 -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 +101 -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 +36 -0
- package/dist/internal/discovery/project.d.ts +53 -0
- package/dist/internal/discovery/project.d.ts.map +1 -0
- package/dist/internal/discovery/project.js +239 -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 +98 -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 +97 -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 +17 -0
- package/dist/internal/discovery/services.d.ts.map +1 -0
- package/dist/internal/discovery/services.js +104 -0
- package/dist/internal/discovery/skills.d.ts +16 -0
- package/dist/internal/discovery/skills.d.ts.map +1 -0
- package/dist/internal/discovery/skills.js +151 -0
- package/dist/internal/discovery/subagent.d.ts +13 -0
- package/dist/internal/discovery/subagent.d.ts.map +1 -0
- package/dist/internal/discovery/subagent.js +19 -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 -62
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +8 -2210
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +5 -0
- package/dist/internal/framework-file-storage.d.ts +3 -3
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +38 -9
- 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/hosted-delivery.d.ts +3 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +19 -32
- package/dist/internal/hosted-execution-diag.d.ts +5 -0
- package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
- package/dist/internal/hosted-execution-diag.js +5 -0
- package/dist/internal/hosted-execution-flush.d.ts +46 -0
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -0
- package/dist/internal/hosted-execution-flush.js +81 -0
- package/dist/internal/mcp-endpoint.js +1 -0
- package/dist/internal/mcp-host.d.ts +2 -1
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +66 -29
- package/dist/internal/otel/collector.d.ts +13 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +84 -17
- package/dist/internal/otel/http.d.ts.map +1 -1
- package/dist/internal/otel/http.js +2 -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 +68 -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.map +1 -1
- package/dist/internal/otel/runtime.js +2 -0
- package/dist/internal/review-comments.d.ts +1 -1
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +4 -4
- package/dist/internal/server.d.ts +3 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +79 -104
- package/dist/internal/session-engine.d.ts +14 -7
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +113 -66
- package/dist/internal/session-run-log.d.ts +3 -1
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +14 -14
- package/dist/internal/start-log-store.d.ts +60 -0
- package/dist/internal/start-log-store.d.ts.map +1 -0
- package/dist/internal/start-log-store.js +149 -0
- 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/tool-catalog.d.ts.map +1 -1
- package/dist/internal/tool-catalog.js +9 -6
- package/dist/internal/tool-policy.d.ts +8 -0
- package/dist/internal/tool-policy.d.ts.map +1 -1
- package/dist/internal/tool-policy.js +19 -7
- 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/otel.d.ts +16 -0
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +26 -0
- package/dist/playground/assets/index-B6C9S9nG.css +1 -0
- package/dist/playground/assets/{index-DVs98vPL.js → index-ZqNoT8Ie.js} +45 -45
- package/dist/playground/index.html +2 -2
- package/dist/storage-protocol.d.ts +47 -22
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +90 -54
- 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 +154 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +29 -1
- package/docs/README.md +5 -1
- package/docs/concepts.md +3 -3
- package/docs/guides/cloud-agents.md +98 -0
- package/docs/guides/cloud-runtime.md +2 -0
- package/docs/reference/connections.md +31 -0
- package/docs/reference/extensions.md +205 -0
- package/docs/reference/http-api.md +1 -1
- package/docs/reference/project-layout.md +3 -0
- package/docs/reference/skills.md +2 -0
- package/docs/reference/tools.md +2 -0
- package/package.json +18 -4
- package/skills/framework-map/SKILL.md +1 -0
- package/src/bin/agent-serve.ts +11 -2
- package/src/channels/deployments/deployments-channel.ts +117 -8
- package/src/channels/deployments/types.ts +4 -3
- package/src/channels/origin/defaults.ts +143 -0
- package/src/channels/origin/index.ts +2 -0
- package/src/channels/origin/origin-channel.ts +37 -1
- package/src/channels/origin/state.ts +54 -0
- package/src/channels/origin/types.ts +24 -0
- package/src/channels/slack/api.ts +6 -3
- package/src/channels/slack/assistant.ts +1 -1
- package/src/channels/slack/code-fences.ts +183 -0
- package/src/channels/slack/dispatch.ts +27 -2
- package/src/channels/slack/inbound.ts +37 -0
- package/src/channels/slack/index.ts +1 -0
- package/src/channels/slack/live-delivery.ts +16 -13
- package/src/channels/slack/manifest.ts +2 -1
- package/src/connections.ts +18 -1
- package/src/extensions/cursor-cloud-agents/extension.ts +120 -0
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +109 -0
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +81 -0
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +41 -0
- 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 +64 -0
- package/src/extensions/cursor-cloud-agents/tools/list.ts +31 -0
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
- package/src/extensions.ts +141 -0
- package/src/files-backends/cursor-hosted.ts +1 -17
- package/src/files.ts +43 -34
- package/src/index.ts +11 -0
- package/src/internal/advertise-tools.ts +37 -12
- package/src/internal/as-of.ts +163 -0
- package/src/internal/cli-deploy.ts +86 -23
- package/src/internal/continuation-identity.ts +3 -1
- package/src/internal/conversation-mirror.ts +23 -18
- package/src/internal/cursor/backend-client.ts +32 -10
- package/src/internal/cursor/hosted-deployment-secrets.ts +72 -0
- package/src/internal/cursor/hosted-store-secrets.ts +27 -0
- package/src/internal/cursor-deployment-relay.ts +65 -8
- package/src/internal/deploy-client.ts +73 -18
- package/src/internal/discovery/ab.ts +111 -0
- package/src/internal/discovery/agent-config.ts +222 -0
- package/src/internal/discovery/agent.ts +360 -0
- package/src/internal/discovery/channels.ts +103 -0
- package/src/internal/discovery/connections.ts +540 -0
- package/src/internal/discovery/context.ts +46 -0
- package/src/internal/discovery/cursor-plugin.ts +708 -0
- package/src/internal/discovery/extensions.ts +348 -0
- package/src/internal/discovery/fs.ts +108 -0
- package/src/internal/discovery/hooks.ts +45 -0
- package/src/internal/discovery/info.ts +179 -0
- package/src/internal/discovery/instructions.ts +113 -0
- package/src/internal/discovery/modules.ts +107 -0
- package/src/internal/discovery/names.ts +44 -0
- package/src/internal/discovery/project.ts +270 -0
- package/src/internal/discovery/runtime.ts +159 -0
- package/src/internal/discovery/schedules.ts +94 -0
- package/src/internal/discovery/seed-files.ts +37 -0
- package/src/internal/discovery/services.ts +124 -0
- package/src/internal/discovery/skills.ts +176 -0
- package/src/internal/discovery/subagent.ts +29 -0
- package/src/internal/discovery/tools.ts +182 -0
- package/src/internal/discovery.ts +20 -2724
- package/src/internal/distribution.ts +5 -0
- package/src/internal/framework-file-storage.ts +43 -9
- package/src/internal/framework-storage-selection.ts +9 -9
- package/src/internal/frontmatter.ts +36 -3
- package/src/internal/hosted-delivery.ts +38 -63
- package/src/internal/hosted-execution-diag.ts +6 -0
- package/src/internal/hosted-execution-flush.ts +142 -0
- package/src/internal/mcp-endpoint.ts +1 -0
- package/src/internal/mcp-host.ts +116 -37
- package/src/internal/otel/collector.ts +125 -25
- package/src/internal/otel/http.ts +2 -12
- package/src/internal/otel/mcp.ts +69 -0
- package/src/internal/otel/propagation.ts +17 -0
- package/src/internal/otel/runtime.ts +2 -0
- package/src/internal/review-comments.ts +5 -2
- package/src/internal/server.ts +81 -100
- package/src/internal/session-engine.ts +152 -39
- package/src/internal/session-run-log.ts +18 -16
- package/src/internal/start-log-store.ts +174 -0
- package/src/internal/storage-coordinator.ts +19 -16
- package/src/internal/tool-catalog.ts +9 -6
- package/src/internal/tool-policy.ts +39 -9
- package/src/internal/turn-cost.ts +47 -4
- package/src/internal/v2-hosting.ts +38 -0
- package/src/otel.ts +38 -0
- package/src/storage-protocol.ts +126 -79
- package/src/storage.ts +5 -0
- package/src/tools.ts +18 -0
- package/src/types.ts +213 -14
- package/dist/docs/assets/chunks/@localSearchIndexroot.j70vvPL4.js +0 -1
- package/dist/docs/assets/concepts.md.lwAgBIMI.js +0 -1
- package/dist/docs/assets/index.md.Bb4k8kUm.js +0 -5
- package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +0 -1
- package/dist/playground/assets/index-BszoQDc6.css +0 -1
- /package/dist/docs/assets/{concepts.md.lwAgBIMI.lean.js → concepts.md.rPzW2HZN.lean.js} +0 -0
- /package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.lean.js → guides_cloud-runtime.md.BRirbRAN.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.BEJx9XVj.lean.js → reference_http-api.md.oySXBO8o.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.B1up2r9W.lean.js} +0 -0
package/dist/docs/llms-full.txt
CHANGED
|
@@ -508,9 +508,9 @@ name. For example, `agent/tools/get_weather.ts` creates a tool named
|
|
|
508
508
|
| `agent/ab.ts` or `agent/ab/*.ts` | Sticky variants and live performance metrics |
|
|
509
509
|
| `evals/**/*.eval.ts` | Repeatable checks at the project root |
|
|
510
510
|
|
|
511
|
-
Other folders add subagents, hooks, schedules, and workspace
|
|
512
|
-
don't register them elsewhere. Run `agent-sdk validate` to
|
|
513
|
-
invalid files before serving the project.
|
|
511
|
+
Other folders add subagents, extensions, hooks, schedules, and workspace
|
|
512
|
+
files. You don't register them elsewhere. Run `agent-sdk validate` to
|
|
513
|
+
catch invalid files before serving the project.
|
|
514
514
|
|
|
515
515
|
See [Project layout](/docs/reference/project-layout.md) for the folder
|
|
516
516
|
structure.
|
|
@@ -3436,6 +3436,104 @@ Continue with these pages:
|
|
|
3436
3436
|
|
|
3437
3437
|
---
|
|
3438
3438
|
|
|
3439
|
+
Source: /docs/guides/cloud-agents.md
|
|
3440
|
+
|
|
3441
|
+
# Cursor cloud agents
|
|
3442
|
+
|
|
3443
|
+
The `cursor-cloud-agents` extension lets an agent delegate coding work
|
|
3444
|
+
to Cursor cloud agents and stay in the conversation while they do it.
|
|
3445
|
+
The cloud agents work on real repository checkouts and push branches and
|
|
3446
|
+
pull requests; your agent hands off the task, reports back, and answers
|
|
3447
|
+
questions in the meantime. A Slack triage agent turns a bug report into
|
|
3448
|
+
a PR, a planner fans a refactor out across repositories, a reviewer asks
|
|
3449
|
+
a cloud agent to address its own comments.
|
|
3450
|
+
|
|
3451
|
+
This is different from the [cloud runtime](/docs/guides/cloud-runtime.md). The
|
|
3452
|
+
runtime moves *this* agent's turns onto a cloud VM. The extension keeps
|
|
3453
|
+
the agent where it is and lets it start *other* cloud agents.
|
|
3454
|
+
|
|
3455
|
+
## Mount it
|
|
3456
|
+
|
|
3457
|
+
The extension ships with `@cursor/july`. Mount it with one file.
|
|
3458
|
+
|
|
3459
|
+
```ts
|
|
3460
|
+
// agent/extensions/cloud.ts
|
|
3461
|
+
import cursorCloudAgents from "@cursor/july/extensions/cursor-cloud-agents";
|
|
3462
|
+
|
|
3463
|
+
export default cursorCloudAgents({
|
|
3464
|
+
cloud: {
|
|
3465
|
+
repos: [{ url: "https://github.com/acme/api", startingRef: "main" }],
|
|
3466
|
+
autoCreatePR: true,
|
|
3467
|
+
},
|
|
3468
|
+
});
|
|
3469
|
+
```
|
|
3470
|
+
|
|
3471
|
+
Launches run under the host's signed-in account (`agent-sdk login` or
|
|
3472
|
+
`CURSOR_API_KEY`) and spend its cloud-agent budget. Name the
|
|
3473
|
+
repositories the agent may target, and keep approval on when you can't.
|
|
3474
|
+
|
|
3475
|
+
Mount it on an agent that runs on the local runtime; that is where
|
|
3476
|
+
launches park for approval. On the
|
|
3477
|
+
[cloud runtime](/docs/guides/cloud-runtime.md#what-changes-on-cloud) approvals
|
|
3478
|
+
don't resolve.
|
|
3479
|
+
|
|
3480
|
+
## What the agent can do
|
|
3481
|
+
|
|
3482
|
+
With the extension mounted, the agent can hand off coding work and stay
|
|
3483
|
+
in the conversation while it happens:
|
|
3484
|
+
|
|
3485
|
+
- **Hand off a task.** Launch a cloud agent on one of your repositories,
|
|
3486
|
+
or on a pull request, with a self-contained brief. It gets back an
|
|
3487
|
+
agent id and a URL to share.
|
|
3488
|
+
- **Check on it.** See whether the agent is still running, what it
|
|
3489
|
+
produced, and which branches or pull requests it pushed.
|
|
3490
|
+
- **Read what was done.** Pull the agent's full conversation into the
|
|
3491
|
+
workspace, quote its final report, or trace the exact edits before
|
|
3492
|
+
summarizing for a person.
|
|
3493
|
+
- **Steer or stop.** Send a follow-up to an agent it launched; it queues
|
|
3494
|
+
behind the current run, or interrupts it on request. Cancel a run that
|
|
3495
|
+
went sideways.
|
|
3496
|
+
- **Keep track.** List the agents launched in this conversation, or
|
|
3497
|
+
everything it has launched before.
|
|
3498
|
+
|
|
3499
|
+
A skill teaches the model when to delegate, how to write a brief a cloud
|
|
3500
|
+
agent can act on alone, and how to follow up. Everything the extension
|
|
3501
|
+
launches stays bound to whoever launched it: an agent started by another
|
|
3502
|
+
user, or outside the extension, is out of reach. That separation is only
|
|
3503
|
+
as fine as your host's auth; a shared bearer token or `--allow-anonymous`
|
|
3504
|
+
makes every caller one principal, so use
|
|
3505
|
+
[authored auth](/docs/reference/channels.md#auth-policies) when callers need
|
|
3506
|
+
their own.
|
|
3507
|
+
|
|
3508
|
+
## Configure it
|
|
3509
|
+
|
|
3510
|
+
| Option | What it controls |
|
|
3511
|
+
| --- | --- |
|
|
3512
|
+
| `cloud` | Launch defaults, in the same shape as the agent's own [cloud options](/docs/reference/agent-config.md#cloud-options). |
|
|
3513
|
+
| `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. |
|
|
3514
|
+
| `model` | The model launched agents run. Omit it to use the account default. |
|
|
3515
|
+
| `needsApproval` | Park launches and follow-ups for a [human decision](/docs/guides/human-in-the-loop.md). Defaults to `true` when no `cloud.repos` are configured, `false` otherwise. |
|
|
3516
|
+
| `apiKey` | A Cursor API key to launch with instead of the host's own. |
|
|
3517
|
+
|
|
3518
|
+
## Adjust it
|
|
3519
|
+
|
|
3520
|
+
To take a capability away, such as sending follow-ups, mount as a
|
|
3521
|
+
directory and disable that tool; see
|
|
3522
|
+
[overlays](/docs/reference/extensions.md#adjust-a-mounted-extension).
|
|
3523
|
+
|
|
3524
|
+
## What's next
|
|
3525
|
+
|
|
3526
|
+
Continue with these pages:
|
|
3527
|
+
|
|
3528
|
+
- [Extensions](/docs/reference/extensions.md): how mounts, namespaces, and
|
|
3529
|
+
overrides work
|
|
3530
|
+
- [Human-in-the-loop approvals](/docs/guides/human-in-the-loop.md): where parked
|
|
3531
|
+
launches get approved
|
|
3532
|
+
- [Cloud runtime](/docs/guides/cloud-runtime.md): run the agent's own turns on
|
|
3533
|
+
cloud agents instead
|
|
3534
|
+
|
|
3535
|
+
---
|
|
3536
|
+
|
|
3439
3537
|
Source: /docs/guides/cloud-runtime.md
|
|
3440
3538
|
|
|
3441
3539
|
# Cloud runtime
|
|
@@ -3553,6 +3651,8 @@ Continue with these pages:
|
|
|
3553
3651
|
`cloud` fields
|
|
3554
3652
|
- [GitHub guide](/docs/guides/github.md): the webhook patterns that pair with
|
|
3555
3653
|
cloud triage
|
|
3654
|
+
- [Cursor cloud agents](/docs/guides/cloud-agents.md): keep the agent local and
|
|
3655
|
+
let it launch cloud agents instead
|
|
3556
3656
|
|
|
3557
3657
|
---
|
|
3558
3658
|
|
|
@@ -5404,6 +5504,7 @@ npx @cursor/july docs
|
|
|
5404
5504
|
| Starting from a packaged template | [Demo](/docs/templates/demo.md), [Code wiki](/docs/templates/code-wiki.md), [Living AGENTS.md](/docs/templates/agents-md.md), [Security reviewer](/docs/templates/security-reviewer.md), [Security help](/docs/templates/security-help.md), [Triage](/docs/templates/triage.md), or [Agentic Owners](/docs/templates/agentic-owners.md) |
|
|
5405
5505
|
| Wiring an agent to GitHub webhooks | [GitHub guide](/docs/guides/github.md) |
|
|
5406
5506
|
| Driving PRs from a cloud VM | [PR autofixer template](/docs/templates/pr-autofixer.md) |
|
|
5507
|
+
| Handing coding work to Cursor cloud agents | [Cursor cloud agents](/docs/guides/cloud-agents.md) |
|
|
5407
5508
|
| Driving an agent from Linear (or another tracker) | [Webhooks guide: Linear example](/docs/guides/webhooks.md#example-linear-as-the-control-plane) |
|
|
5408
5509
|
| Making an existing agent measurably better | [Evals](/docs/evals.md), then [Hillclimbing](/docs/hillclimbing.md) |
|
|
5409
5510
|
| Comparing variants on live traffic | [Live A/B metrics](/docs/ab.md) |
|
|
@@ -5470,6 +5571,8 @@ npx @cursor/july docs
|
|
|
5470
5571
|
server; agents can delegate to each other.
|
|
5471
5572
|
- [Cloud runtime](/docs/guides/cloud-runtime.md): run turns on Cursor cloud
|
|
5472
5573
|
agents instead of the local harness.
|
|
5574
|
+
- [Cursor cloud agents](/docs/guides/cloud-agents.md): let the agent launch
|
|
5575
|
+
and steer cloud agents through the `cursor-cloud-agents` extension.
|
|
5473
5576
|
- [OpenTelemetry](/docs/guides/opentelemetry.md): push session, turn, and
|
|
5474
5577
|
tool traces to an OTLP collector you run.
|
|
5475
5578
|
|
|
@@ -5489,7 +5592,8 @@ npx @cursor/july docs
|
|
|
5489
5592
|
[`prompt`](/docs/reference/prompt.md) ·
|
|
5490
5593
|
[Skills](/docs/reference/skills.md) ·
|
|
5491
5594
|
[MCP connections](/docs/reference/connections.md) ·
|
|
5492
|
-
[Subagents](/docs/reference/subagents.md)
|
|
5595
|
+
[Subagents](/docs/reference/subagents.md) ·
|
|
5596
|
+
[Extensions](/docs/reference/extensions.md)
|
|
5493
5597
|
- [Channels](/docs/reference/channels.md) ·
|
|
5494
5598
|
[Schedules and reminders](/docs/reference/schedules.md) ·
|
|
5495
5599
|
[Hooks](/docs/reference/hooks.md) ·
|
|
@@ -7606,6 +7710,37 @@ be called through the direct tool API.
|
|
|
7606
7710
|
In a dry-run session, MCP tools marked read-only run normally. Tools marked
|
|
7607
7711
|
as writes are stubbed. Tools without effect annotations are unavailable.
|
|
7608
7712
|
|
|
7713
|
+
## Restrict which tools a connection serves
|
|
7714
|
+
|
|
7715
|
+
Use `tools` the same way you allowlist harness tools on the agent. When
|
|
7716
|
+
set, the connection serves only those names. Use `disallowedTools` to
|
|
7717
|
+
drop names instead. The two combine as deny-wins, same as the Cursor
|
|
7718
|
+
SDK. The model and `host.mcp` only see what remains. On a model-visible
|
|
7719
|
+
connection, set `advertiseTools: true` so the raw server is not attached.
|
|
7720
|
+
|
|
7721
|
+
```ts
|
|
7722
|
+
export default defineConnection({
|
|
7723
|
+
url: "https://mcp.example.com/inventory",
|
|
7724
|
+
advertiseTools: true,
|
|
7725
|
+
tools: ["search_skus", "get_stock"],
|
|
7726
|
+
});
|
|
7727
|
+
|
|
7728
|
+
export default defineConnection({
|
|
7729
|
+
url: "https://mcp.example.com/inventory",
|
|
7730
|
+
advertiseTools: true,
|
|
7731
|
+
disallowedTools: ["place_order", "delete_sku"],
|
|
7732
|
+
});
|
|
7733
|
+
```
|
|
7734
|
+
|
|
7735
|
+
Names are the server's `tools/list` names. Unknown names are omitted. A
|
|
7736
|
+
filter that matches nothing on the server fails the turn. Combine with
|
|
7737
|
+
`effects: "read"` to keep only the listed tools the server classifies as
|
|
7738
|
+
reads.
|
|
7739
|
+
|
|
7740
|
+
A list of names is an allowlist. An object of handlers authors TypeScript
|
|
7741
|
+
tools. On `host-connections/`, a name list restricts `host.mcp` without
|
|
7742
|
+
advertising.
|
|
7743
|
+
|
|
7609
7744
|
## Local stdio MCP server
|
|
7610
7745
|
|
|
7611
7746
|
Run a local MCP server as a child process with `command`.
|
|
@@ -7758,6 +7893,211 @@ Continue with these pages:
|
|
|
7758
7893
|
|
|
7759
7894
|
---
|
|
7760
7895
|
|
|
7896
|
+
Source: /docs/reference/extensions.md
|
|
7897
|
+
|
|
7898
|
+
# Extensions
|
|
7899
|
+
|
|
7900
|
+
An extension packages tools and skills an agent installs as one unit. You
|
|
7901
|
+
mount it with a single file under `agent/extensions/`, and its
|
|
7902
|
+
contributions join the agent under a namespace. The package updates
|
|
7903
|
+
like any other dependency; nothing is copied into your project. A Cursor
|
|
7904
|
+
plugin mounts the same way; see [Mount a Cursor plugin](#mount-a-cursor-plugin).
|
|
7905
|
+
|
|
7906
|
+
## Mount an extension
|
|
7907
|
+
|
|
7908
|
+
Install the package, then add one file. The filename is the namespace.
|
|
7909
|
+
|
|
7910
|
+
```ts
|
|
7911
|
+
// agent/extensions/ci.ts
|
|
7912
|
+
import ci from "@acme/ci-triage";
|
|
7913
|
+
|
|
7914
|
+
export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
|
|
7915
|
+
```
|
|
7916
|
+
|
|
7917
|
+
Every contribution is exposed as `<namespace>__<name>`. A `failed_jobs`
|
|
7918
|
+
tool from this mount runs in the agent as `ci__failed_jobs`, and a
|
|
7919
|
+
`triage` skill loads as `ci__triage`. `agent-sdk info` lists each mount
|
|
7920
|
+
with what it contributed, and `GET /v1/info` returns the same under
|
|
7921
|
+
`extensions`.
|
|
7922
|
+
|
|
7923
|
+
Pass the configuration the extension asks for. The extension validates it
|
|
7924
|
+
when the agent loads, so a missing or mistyped field fails
|
|
7925
|
+
`agent-sdk validate` instead of a tool call later.
|
|
7926
|
+
|
|
7927
|
+
Namespaces follow the tool-name rule, and `__` is reserved: an authored
|
|
7928
|
+
`agent/tools/ci__failed_jobs.ts` fails discovery, so nothing outside a
|
|
7929
|
+
mount can pose as one of its tools.
|
|
7930
|
+
|
|
7931
|
+
## Adjust a mounted extension
|
|
7932
|
+
|
|
7933
|
+
To replace or remove a contribution, mount the extension as a directory
|
|
7934
|
+
and overlay the slot you want to change.
|
|
7935
|
+
|
|
7936
|
+
```text
|
|
7937
|
+
agent/extensions/ci/
|
|
7938
|
+
├── extension.ts # the mount: export default ci({ ... })
|
|
7939
|
+
├── tools/
|
|
7940
|
+
│ ├── job_log.ts # replaces ci__job_log with your own defineTool
|
|
7941
|
+
│ └── retry_job.ts # export default disableTool() removes ci__retry_job
|
|
7942
|
+
└── skills/
|
|
7943
|
+
└── triage.md # replaces ci__triage
|
|
7944
|
+
```
|
|
7945
|
+
|
|
7946
|
+
Use the extension's own names inside the directory, without the
|
|
7947
|
+
namespace. A file with a name the extension doesn't contribute adds a
|
|
7948
|
+
new tool or skill under the namespace. `disableTool()` comes from
|
|
7949
|
+
`@cursor/july/extensions` and fails discovery when it names a tool the
|
|
7950
|
+
extension doesn't have, so a typo can't silently keep a tool alive.
|
|
7951
|
+
A Cursor plugin mount overlays its MCP servers the same way; see below.
|
|
7952
|
+
|
|
7953
|
+
## Mount a Cursor plugin
|
|
7954
|
+
|
|
7955
|
+
A Cursor plugin is a directory with `.cursor-plugin/plugin.json` (or
|
|
7956
|
+
`.claude-plugin/plugin.json`, or `plugin.json`) and any of `skills/`,
|
|
7957
|
+
`commands/`, `agents/`, and `mcp.json`. Copy the plugin into your project
|
|
7958
|
+
and mount it with `cursorPlugin`. The filename is the namespace, as with
|
|
7959
|
+
any extension.
|
|
7960
|
+
|
|
7961
|
+
```ts
|
|
7962
|
+
// agent/extensions/notion.ts
|
|
7963
|
+
import { cursorPlugin } from "@cursor/july/extensions";
|
|
7964
|
+
|
|
7965
|
+
export default cursorPlugin({
|
|
7966
|
+
path: "plugins/notion-workspace", // relative to the project root
|
|
7967
|
+
variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
|
|
7968
|
+
});
|
|
7969
|
+
```
|
|
7970
|
+
|
|
7971
|
+
The plugin joins the agent under that namespace:
|
|
7972
|
+
|
|
7973
|
+
| Plugin content | Becomes |
|
|
7974
|
+
| --- | --- |
|
|
7975
|
+
| `skills/<name>/SKILL.md` | skill `notion__<name>` |
|
|
7976
|
+
| `commands/<name>.md` | skill `notion__<name>`, since a command is a procedure the model runs on request |
|
|
7977
|
+
| `agents/<name>.md` | subagent `notion__<name>` |
|
|
7978
|
+
| MCP servers in `mcp.json` or the manifest | connection `notion__<server>` |
|
|
7979
|
+
|
|
7980
|
+
`variables` fills the `${NAME}` placeholders the plugin's MCP config
|
|
7981
|
+
declares; names you leave out come from the environment by exact name. A
|
|
7982
|
+
placeholder nothing fills fails `agent-sdk validate`, so a server never
|
|
7983
|
+
attaches half configured. A server that declares an OAuth client
|
|
7984
|
+
authorizes through [host MCP OAuth](/docs/guides/mcp-oauth.md) as
|
|
7985
|
+
`agent-sdk mcp oauth notion__<server>`; its secret names collapse the
|
|
7986
|
+
namespace separator, so `notion__notion` stores `MCP_OAUTH_NOTION_NOTION_*`.
|
|
7987
|
+
A server that lists `enabledTools` mounts as an advertised connection with
|
|
7988
|
+
that allowlist and requires the local runtime; `agent-sdk validate` fails
|
|
7989
|
+
otherwise.
|
|
7990
|
+
|
|
7991
|
+
Mounting a plugin trusts it like authored code: its servers run the
|
|
7992
|
+
commands and read the environment variables its config names. Review a
|
|
7993
|
+
plugin before you vendor it.
|
|
7994
|
+
|
|
7995
|
+
Plugin rules and hooks are not mounted; `agent-sdk validate` warns when a
|
|
7996
|
+
plugin carries them. To drop or reconfigure one of the plugin's servers,
|
|
7997
|
+
mount as a directory and overlay `mcp-connections/<server>.ts`. An
|
|
7998
|
+
overlaid server is never read from the plugin, so it needs no variables.
|
|
7999
|
+
|
|
8000
|
+
```text
|
|
8001
|
+
agent/extensions/cloudflare/
|
|
8002
|
+
├── extension.ts # export default cursorPlugin({ path: "plugins/cloudflare" })
|
|
8003
|
+
└── mcp-connections/
|
|
8004
|
+
├── cloudflare-docs.ts # replaces cloudflare__cloudflare-docs with your defineConnection
|
|
8005
|
+
└── cloudflare-bindings.ts # export default disableConnection() drops it
|
|
8006
|
+
```
|
|
8007
|
+
|
|
8008
|
+
`disableConnection()` comes from `@cursor/july/extensions` and fails
|
|
8009
|
+
discovery when it names a server the plugin doesn't declare.
|
|
8010
|
+
|
|
8011
|
+
## Build an extension
|
|
8012
|
+
|
|
8013
|
+
An extension is a directory laid out like `agent/`. `extension.ts`
|
|
8014
|
+
declares it; `tools/` and `skills/` hold the contributions in the same
|
|
8015
|
+
authoring forms as [Tools](/docs/reference/tools.md) and [Skills](/docs/reference/skills.md).
|
|
8016
|
+
|
|
8017
|
+
```text
|
|
8018
|
+
@acme/ci-triage/
|
|
8019
|
+
├── package.json
|
|
8020
|
+
├── extension.ts # defineExtension
|
|
8021
|
+
├── tools/
|
|
8022
|
+
│ ├── failed_jobs.ts
|
|
8023
|
+
│ ├── job_log.ts
|
|
8024
|
+
│ └── retry_job.ts
|
|
8025
|
+
├── skills/
|
|
8026
|
+
│ └── triage.md
|
|
8027
|
+
└── lib/
|
|
8028
|
+
└── buildkite.ts # shared code, never discovered
|
|
8029
|
+
```
|
|
8030
|
+
|
|
8031
|
+
Declare the extension with its root and, when consumers must configure
|
|
8032
|
+
it, a schema for their settings.
|
|
8033
|
+
|
|
8034
|
+
```ts
|
|
8035
|
+
// extension.ts
|
|
8036
|
+
import { defineExtension } from "@cursor/july/extensions";
|
|
8037
|
+
import { z } from "zod";
|
|
8038
|
+
|
|
8039
|
+
export default defineExtension({
|
|
8040
|
+
root: import.meta.dirname,
|
|
8041
|
+
description: "Investigate failing CI builds on Buildkite.",
|
|
8042
|
+
config: z.object({
|
|
8043
|
+
org: z.string(),
|
|
8044
|
+
token: z.string(),
|
|
8045
|
+
logTailLines: z.number().int().positive().default(200),
|
|
8046
|
+
}),
|
|
8047
|
+
});
|
|
8048
|
+
```
|
|
8049
|
+
|
|
8050
|
+
The default export is what consumers call to mount the extension, and it
|
|
8051
|
+
is also how your own modules read the consumer's settings. Import it and
|
|
8052
|
+
read `extension.config`; the value is validated and has defaults applied.
|
|
8053
|
+
|
|
8054
|
+
```ts
|
|
8055
|
+
// tools/job_log.ts
|
|
8056
|
+
import { defineTool } from "@cursor/july/tools";
|
|
8057
|
+
import { z } from "zod";
|
|
8058
|
+
import extension from "../extension.js";
|
|
8059
|
+
import { jobLogTail } from "../lib/buildkite.js";
|
|
8060
|
+
|
|
8061
|
+
export default defineTool({
|
|
8062
|
+
description: "Read the tail of a CI job's log.",
|
|
8063
|
+
effect: "read",
|
|
8064
|
+
inputSchema: z.object({ pipeline: z.string(), build: z.number(), job: z.string() }),
|
|
8065
|
+
async execute({ pipeline, build, job }) {
|
|
8066
|
+
const { org, token, logTailLines } = extension.config;
|
|
8067
|
+
return jobLogTail({ org, token, pipeline, build, job, lines: logTailLines });
|
|
8068
|
+
},
|
|
8069
|
+
});
|
|
8070
|
+
```
|
|
8071
|
+
|
|
8072
|
+
Because the consumer picks the namespace, have skills and tool
|
|
8073
|
+
descriptions refer to sibling tools by their short names and say they
|
|
8074
|
+
appear under the mount's namespace (`<namespace>__job_log`).
|
|
8075
|
+
|
|
8076
|
+
Publish the built `extension.js` as the package entry point with
|
|
8077
|
+
`tools/` and `skills/` beside it. `root` is read from the built file, so
|
|
8078
|
+
copy `skills/*.md` into the build output or author skills as `.ts` with
|
|
8079
|
+
`defineSkill`.
|
|
8080
|
+
|
|
8081
|
+
Only `tools/` and `skills/` are mounted from an extension tree.
|
|
8082
|
+
Instructions, connections, hooks, channels, and the runtime
|
|
8083
|
+
configuration belong to the agent that mounts the extension;
|
|
8084
|
+
`agent-sdk validate` warns when a tree carries agent slots such as
|
|
8085
|
+
`instructions.md`, `connections/`, `hooks/`, `channels/`, or
|
|
8086
|
+
`schedules/`.
|
|
8087
|
+
|
|
8088
|
+
## What's next
|
|
8089
|
+
|
|
8090
|
+
Continue with these pages:
|
|
8091
|
+
|
|
8092
|
+
- [Cursor cloud agents](/docs/guides/cloud-agents.md): the extension that
|
|
8093
|
+
lets an agent launch and steer cloud agents
|
|
8094
|
+
- [Tools](/docs/reference/tools.md): the tool contract extensions contribute to
|
|
8095
|
+
- [Skills](/docs/reference/skills.md): the skill forms an extension can carry
|
|
8096
|
+
- [Project layout](/docs/reference/project-layout.md): where `agent/extensions/` sits
|
|
8097
|
+
in the tree
|
|
8098
|
+
|
|
8099
|
+
---
|
|
8100
|
+
|
|
7761
8101
|
Source: /docs/reference/hooks.md
|
|
7762
8102
|
|
|
7763
8103
|
# Hooks
|
|
@@ -7912,7 +8252,7 @@ and `playgroundUrl` deep-links the session in the playground.
|
|
|
7912
8252
|
| `message` | Required user message |
|
|
7913
8253
|
| `title` | Session title |
|
|
7914
8254
|
| `dryRun` | Run read tools and stub write tools |
|
|
7915
|
-
| `asOf` | ISO-8601 instant with a timezone, frozen at create; the prompt states it, `ctx.now()` returns it, and
|
|
8255
|
+
| `asOf` | ISO-8601 instant with a timezone, frozen at create; the prompt states it, `ctx.now()` returns it, and tool calls with relative, later-than-`asOf`, or omitted schema-declared time bounds are refused. `400` when unusable |
|
|
7916
8256
|
| `workspaceFiles` | UTF-8 files written into the session workspace |
|
|
7917
8257
|
| `cloud` | Per-session cloud options merged over the agent defaults |
|
|
7918
8258
|
|
|
@@ -8283,6 +8623,8 @@ experiments can override their file-derived name.
|
|
|
8283
8623
|
| `agent/host-connections/anytool.ts` | Host MCP connection `anytool` (host + `mcp oauth` only) |
|
|
8284
8624
|
| `agent/skills/pr-review.md` | skill `pr-review` |
|
|
8285
8625
|
| `agent/subagents/reviewer/` | subagent `reviewer` |
|
|
8626
|
+
| `agent/extensions/ci.ts` | extension mount `ci`; its tools and skills become `ci__<name>` |
|
|
8627
|
+
| `agent/extensions/notion.ts` | Cursor plugin mount `notion` (`cursorPlugin`); its skills, agents, and MCP servers become `notion__<name>` |
|
|
8286
8628
|
| `agent/channels/drive.ts` | channel `drive`, routes under `/v1/channels/drive` |
|
|
8287
8629
|
| `agent/ab.ts` | A/B experiment `ab` unless `name` overrides it |
|
|
8288
8630
|
| `agent/ab/concise.ts` | A/B experiment `concise` unless `name` overrides it |
|
|
@@ -8333,6 +8675,7 @@ Each path maps to a capability and a reference page.
|
|
|
8333
8675
|
| `agent/mcp-connections/<name>.ts` | MCP servers, available to the model, to server tools (`ctx.host.mcp`), and to channel/schedule handlers (`args.host.mcp`) | [MCP connections](/docs/reference/connections.md) |
|
|
8334
8676
|
| `agent/host-connections/<name>.ts` | Privileged MCP servers for `ctx.host.mcp` and `mcp oauth`. The model never sees them. | [MCP connections](/docs/reference/connections.md) |
|
|
8335
8677
|
| `agent/subagents/<id>/` | Child agent directory; `description` required | [Subagents](/docs/reference/subagents.md) |
|
|
8678
|
+
| `agent/extensions/<ns>.ts` or `agent/extensions/<ns>/` | A mounted extension or Cursor plugin; its contributions become `<ns>__<name>` | [Extensions](/docs/reference/extensions.md) |
|
|
8336
8679
|
| `agent/channels/*.ts` | HTTP surfaces beyond the built-in session API; `slack.ts` and `github.ts` use the platform packs | [Channels](/docs/reference/channels.md) |
|
|
8337
8680
|
| `agent/hooks/*.ts` | Observe-only event subscribers, never fatal | [Hooks](/docs/reference/hooks.md) |
|
|
8338
8681
|
| `agent/otel.ts` | `defineOtel` OTLP export (traces, metrics, optional logs) | [OpenTelemetry](/docs/guides/opentelemetry.md) |
|
|
@@ -8895,6 +9238,8 @@ Continue with these pages:
|
|
|
8895
9238
|
|
|
8896
9239
|
- [Instructions](/docs/reference/instructions.md): what stays always-on
|
|
8897
9240
|
- [Tools](/docs/reference/tools.md): when prose needs to become code
|
|
9241
|
+
- [Extensions](/docs/reference/extensions.md): skills installed as a package under a
|
|
9242
|
+
namespace
|
|
8898
9243
|
- [Project layout](/docs/reference/project-layout.md): where skills sit in the tree
|
|
8899
9244
|
|
|
8900
9245
|
---
|
|
@@ -9317,6 +9662,8 @@ Continue with these pages:
|
|
|
9317
9662
|
lifecycle in full
|
|
9318
9663
|
- [MCP connections](/docs/reference/connections.md): tools that come from MCP servers
|
|
9319
9664
|
instead
|
|
9665
|
+
- [Extensions](/docs/reference/extensions.md): tools installed as a package under a
|
|
9666
|
+
namespace
|
|
9320
9667
|
- [Evals](/docs/evals.md): gating tool decisions with `calledTool`
|
|
9321
9668
|
|
|
9322
9669
|
---
|
|
@@ -9860,6 +10207,7 @@ Path is identity. Full list: README "Folder structure".
|
|
|
9860
10207
|
| `agent/mcp-connections/<name>.ts` | MCP. Never name an account file `cursor.ts`. `advertiseTools: true` for named local tools |
|
|
9861
10208
|
| `agent/host-connections/<name>.ts` | Privileged MCP for `ctx.host.mcp` / `mcp oauth` |
|
|
9862
10209
|
| `agent/subagents/<id>/` | Child agent (`description` required) |
|
|
10210
|
+
| `agent/extensions/<ns>.ts` | Mounted extension or Cursor plugin (`cursorPlugin({ path })`); contributions are `<ns>__<name>` |
|
|
9863
10211
|
| `agent/channels/*.ts` | Slack / GitHub / custom HTTP |
|
|
9864
10212
|
| `agent/hooks/*.ts` | Observe-only |
|
|
9865
10213
|
| `agent/ab.ts` or `agent/ab/*.ts` | Live A/B (`defineAB`) |
|
package/dist/docs/llms.txt
CHANGED
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
## Guides
|
|
35
35
|
|
|
36
36
|
- [Agent-to-agent](/docs/guides/agent-to-agent.md): Every agent is an MCP server. Peer MCP connections let one agent delegate to another that keeps its own tools, sessions, and context.
|
|
37
|
+
- [Cursor cloud agents](/docs/guides/cloud-agents.md): 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.
|
|
37
38
|
- [Cloud runtime](/docs/guides/cloud-runtime.md): Run turns on Cursor cloud agents instead of the local harness: when to switch, what changes, and the patterns that hold up.
|
|
38
39
|
- [Convert a Cursor Automation](/docs/guides/convert-automation.md): Export a dashboard Automation into a local Agent SDK project, then review, validate, and run it.
|
|
39
40
|
- [GitHub](/docs/guides/github.md): Wake your agent from pull requests, CI, and comments by pulling Cursor SCM events, with fixtures and replay for local tests.
|
|
@@ -64,6 +65,7 @@
|
|
|
64
65
|
- [Channels](/docs/reference/channels.md): The authoring reference for defineChannel, the built-in HTTP channel, route schemas, handler args, and the auth policies.
|
|
65
66
|
- [CLI](/docs/reference/cli.md): Commands and common flags for local development, running servers, and Cursor-managed hosting.
|
|
66
67
|
- [MCP Connections](/docs/reference/connections.md): Pull in tools from MCP servers: remote, stdio, the signed-in Cursor account's connectors, and peer agents.
|
|
68
|
+
- [Extensions](/docs/reference/extensions.md): Mount a package of tools and skills 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/.
|
|
67
69
|
- [Hooks](/docs/reference/hooks.md): Observe-only subscribers to the session event stream: audit logs, metrics, transcript mirrors, derived state.
|
|
68
70
|
- [HTTP API](/docs/reference/http-api.md): Public session, discovery, and channel routes callers use.
|
|
69
71
|
- [Instructions](/docs/reference/instructions.md): The always-on system prompt: authoring forms, how it reaches the model on each runtime, and what makes instructions hold up.
|