@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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
11
|
+
import { dirname, join } from "node:path";
|
|
12
|
+
import { defineTool } from "../../../tools.js";
|
|
13
|
+
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
14
|
+
import { assertOwned } from "../lib/fleet.js";
|
|
15
|
+
import { agentRef } from "../lib/inputs.js";
|
|
16
|
+
import { lastAssistantText, transcriptLines, transcriptPath, } from "../lib/transcript.js";
|
|
17
|
+
const dump = defineTool({
|
|
18
|
+
description: "Write a cloud agent's full conversation to a JSONL file in your workspace so you can read what it did: one JSON message per line (prompts, assistant text, thinking, tool calls). Read the last line for the final report.",
|
|
19
|
+
effect: "read",
|
|
20
|
+
inputSchema: agentRef,
|
|
21
|
+
execute(input, ctx) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
yield assertOwned(ctx, input.agent_id);
|
|
24
|
+
const backend = cloudAgentsBackend();
|
|
25
|
+
const [messages, info] = yield Promise.all([
|
|
26
|
+
backend.conversation(input.agent_id),
|
|
27
|
+
backend.info(input.agent_id),
|
|
28
|
+
]);
|
|
29
|
+
if (messages.length === 0) {
|
|
30
|
+
return {
|
|
31
|
+
agentId: input.agent_id,
|
|
32
|
+
lineCount: 0,
|
|
33
|
+
status: info.status,
|
|
34
|
+
note: "The agent has not produced any transcript yet.",
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// Absolute: the harness's shell does not run in the workspace directory.
|
|
38
|
+
const path = join(ctx.workspaceDir, transcriptPath(input.agent_id));
|
|
39
|
+
const jsonl = `${transcriptLines(messages).join("\n")}\n`;
|
|
40
|
+
yield mkdir(dirname(path), { recursive: true });
|
|
41
|
+
yield writeFile(path, jsonl, "utf8");
|
|
42
|
+
return {
|
|
43
|
+
agentId: input.agent_id,
|
|
44
|
+
path,
|
|
45
|
+
sizeBytes: Buffer.byteLength(jsonl),
|
|
46
|
+
lineCount: messages.length,
|
|
47
|
+
status: info.status,
|
|
48
|
+
finalMessage: lastAssistantText(messages),
|
|
49
|
+
note: `One JSON message per line. Grep it, or read the final report with \`tail -n 1 ${path}\`.`,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
export default dump;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/get.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,QAAA,MAAM,GAAG,EAAE,cAST,CAAC;eAEY,GAAG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { defineTool } from "../../../tools.js";
|
|
11
|
+
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
12
|
+
import { assertOwned } from "../lib/fleet.js";
|
|
13
|
+
import { agentRef } from "../lib/inputs.js";
|
|
14
|
+
const get = defineTool({
|
|
15
|
+
description: "Look up a cloud agent you launched by id: its status, branch, pull request, changed-file counts, summary, and any error. Use dump to read everything it did.",
|
|
16
|
+
effect: "read",
|
|
17
|
+
inputSchema: agentRef,
|
|
18
|
+
execute(input, ctx) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
yield assertOwned(ctx, input.agent_id);
|
|
21
|
+
return cloudAgentsBackend().info(input.agent_id);
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
export default get;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/launch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,QAAA,MAAM,MAAM,EAAE,cAqDZ,CAAC;eAEY,MAAM"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { defineTool } from "../../../tools.js";
|
|
12
|
+
import extension from "../extension.js";
|
|
13
|
+
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
14
|
+
import { recordLaunch } from "../lib/fleet.js";
|
|
15
|
+
import { launchRepos } from "../lib/repos.js";
|
|
16
|
+
const launch = defineTool({
|
|
17
|
+
description: "Launch a Cursor cloud agent on a repository with a self-contained task. Returns the agent id and URL; check on it with get, read what it did with dump.",
|
|
18
|
+
effect: "write",
|
|
19
|
+
needsApproval: () => extension.config.needsApproval,
|
|
20
|
+
inputSchema: z.object({
|
|
21
|
+
prompt: z
|
|
22
|
+
.string()
|
|
23
|
+
.min(1)
|
|
24
|
+
.describe("Self-contained task: goal, constraints, and what done looks like."),
|
|
25
|
+
repo: z
|
|
26
|
+
.string()
|
|
27
|
+
.url()
|
|
28
|
+
.optional()
|
|
29
|
+
.describe("GitHub repository URL, one of the configured repositories. Defaults to the configured repository."),
|
|
30
|
+
starting_ref: z
|
|
31
|
+
.string()
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("Branch or commit to start from; defaults to the configured or default branch."),
|
|
34
|
+
pr_url: z
|
|
35
|
+
.string()
|
|
36
|
+
.url()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Work on this pull request's branch instead of a new one."),
|
|
39
|
+
name: z
|
|
40
|
+
.string()
|
|
41
|
+
.max(100)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe("Display name; derived from the prompt when omitted."),
|
|
44
|
+
}),
|
|
45
|
+
execute(input, ctx) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const { cloud, model } = extension.config;
|
|
48
|
+
const launched = yield cloudAgentsBackend().launch({
|
|
49
|
+
prompt: input.prompt,
|
|
50
|
+
name: input.name,
|
|
51
|
+
model,
|
|
52
|
+
cloud: Object.assign(Object.assign({}, cloud), { repos: launchRepos({ repo: input.repo, ref: input.starting_ref, prUrl: input.pr_url }, cloud) }),
|
|
53
|
+
});
|
|
54
|
+
yield recordLaunch(ctx, launched.agentId, input.name);
|
|
55
|
+
return launched;
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
export default launch;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,QAAA,MAAM,IAAI,EAAE,cAsBV,CAAC;eAEY,IAAI"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { defineTool } from "../../../tools.js";
|
|
12
|
+
import { agentUrl } from "../lib/backend.js";
|
|
13
|
+
import { listFleet } from "../lib/fleet.js";
|
|
14
|
+
const list = defineTool({
|
|
15
|
+
description: 'List the cloud agents launched in this session, newest first. Pass scope "all" for every agent you launched, in any session.',
|
|
16
|
+
effect: "read",
|
|
17
|
+
inputSchema: z.object({
|
|
18
|
+
scope: z
|
|
19
|
+
.enum(["session", "all"])
|
|
20
|
+
.default("session")
|
|
21
|
+
.describe("session: agents this session launched; all: every agent launched by you, in any session."),
|
|
22
|
+
limit: z.number().int().min(1).max(100).default(20),
|
|
23
|
+
}),
|
|
24
|
+
execute(input, ctx) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const fleet = yield listFleet(ctx, input.scope);
|
|
27
|
+
return {
|
|
28
|
+
sessionId: ctx.session.id,
|
|
29
|
+
agents: fleet
|
|
30
|
+
.slice(0, input.limit)
|
|
31
|
+
.map((entry) => (Object.assign(Object.assign({}, entry), { url: agentUrl(entry.agentId) }))),
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
export default list;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cursor-cloud-agents/tools/reply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,QAAA,MAAM,KAAK,EAAE,cAuBX,CAAC;eAEY,KAAK"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { defineTool } from "../../../tools.js";
|
|
12
|
+
import extension from "../extension.js";
|
|
13
|
+
import { cloudAgentsBackend } from "../lib/backend.js";
|
|
14
|
+
import { assertOwned } from "../lib/fleet.js";
|
|
15
|
+
import { agentRef } from "../lib/inputs.js";
|
|
16
|
+
const reply = defineTool({
|
|
17
|
+
description: "Send a follow-up prompt to a cloud agent you launched. It queues behind the current run; pass interrupt to stop that run's current step and deliver it now.",
|
|
18
|
+
effect: "write",
|
|
19
|
+
needsApproval: () => extension.config.needsApproval,
|
|
20
|
+
inputSchema: agentRef.extend({
|
|
21
|
+
prompt: z.string().min(1).describe("The follow-up instruction."),
|
|
22
|
+
interrupt: z
|
|
23
|
+
.boolean()
|
|
24
|
+
.default(false)
|
|
25
|
+
.describe("Deliver now, cancelling the in-flight step, instead of waiting for the current run to finish."),
|
|
26
|
+
}),
|
|
27
|
+
execute(input, ctx) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
yield assertOwned(ctx, input.agent_id);
|
|
30
|
+
const { runId } = yield cloudAgentsBackend().followUp(input.agent_id, input.prompt, input.interrupt);
|
|
31
|
+
return { agentId: input.agent_id, runId, queued: !input.interrupt };
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
export default reply;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extensions — agent-shaped trees an agent mounts under a namespace.
|
|
3
|
+
*
|
|
4
|
+
* An extension is a directory laid out like `agent/`: `extension.ts`
|
|
5
|
+
* declares it, `tools/<name>.ts` and `skills/<name>.md|ts` are its
|
|
6
|
+
* contributions, `lib/` holds shared code.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* // extension.ts
|
|
10
|
+
* import { defineExtension } from "@cursor/july/extensions";
|
|
11
|
+
* import { z } from "zod";
|
|
12
|
+
*
|
|
13
|
+
* export default defineExtension({
|
|
14
|
+
* root: import.meta.dirname,
|
|
15
|
+
* description: "Investigate failing CI builds.",
|
|
16
|
+
* config: z.object({ org: z.string(), token: z.string() }),
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // tools/failed_jobs.ts
|
|
20
|
+
* import extension from "../extension.js";
|
|
21
|
+
*
|
|
22
|
+
* export default defineTool({
|
|
23
|
+
* description: "List the failed jobs of a build.",
|
|
24
|
+
* execute: (input) => failedJobs(extension.config, input),
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* A consumer mounts it from `agent/extensions/<ns>.ts`; the filename is the
|
|
29
|
+
* namespace, and every contribution is exposed as `<ns>__<name>`
|
|
30
|
+
* (`ci__failed_jobs`). `__` is reserved for that: an authored `agent/tools/`
|
|
31
|
+
* or `agent/skills/` name may not contain it.
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* // agent/extensions/ci.ts
|
|
35
|
+
* import ci from "@acme/ci-triage";
|
|
36
|
+
*
|
|
37
|
+
* export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* To adjust a contribution, mount as a directory instead and overlay the
|
|
41
|
+
* slot: `agent/extensions/ci/extension.ts` holds the mount, and
|
|
42
|
+
* `agent/extensions/ci/tools/job_log.ts` replaces `ci__job_log` — or removes
|
|
43
|
+
* it with `export default disableTool()`.
|
|
44
|
+
*
|
|
45
|
+
* A Cursor plugin (the marketplace format: `.cursor-plugin/plugin.json`,
|
|
46
|
+
* `skills/`, `commands/`, `agents/`, `mcp.json`) mounts the same way with
|
|
47
|
+
* `cursorPlugin`. Its skills and commands become `<ns>__<name>` skills, its
|
|
48
|
+
* agents `<ns>__<name>` subagents, and its MCP servers `<ns>__<server>`
|
|
49
|
+
* connections. Rules and hooks are not mounted yet.
|
|
50
|
+
*
|
|
51
|
+
* ```ts
|
|
52
|
+
* // agent/extensions/notion.ts
|
|
53
|
+
* import { cursorPlugin } from "@cursor/july/extensions";
|
|
54
|
+
*
|
|
55
|
+
* export default cursorPlugin({
|
|
56
|
+
* path: "plugins/notion-workspace",
|
|
57
|
+
* variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* A directory mount overlays its MCP servers too:
|
|
62
|
+
* `agent/extensions/notion/mcp-connections/notion.ts` replaces
|
|
63
|
+
* `notion__notion` with your own `defineConnection` (headers, `oauth`,
|
|
64
|
+
* `advertiseTools`), and `export default disableConnection()` drops a server
|
|
65
|
+
* the agent should not carry.
|
|
66
|
+
*/
|
|
67
|
+
import type { CursorPluginOptions, DisabledConnectionDefinition, DisabledToolDefinition, Extension, ExtensionMount, ExtensionOptions } from "./types.js";
|
|
68
|
+
export type { CursorPluginDeclaration, CursorPluginOptions, DisabledConnectionDefinition, DisabledToolDefinition, DiscoveredExtension, Extension, ExtensionDeclaration, ExtensionMount, ExtensionOptions, } from "./types.js";
|
|
69
|
+
export declare function defineExtension<TConfig = undefined, TInput = TConfig>(options: ExtensionOptions<TConfig, TInput>): Extension<TConfig, TInput>;
|
|
70
|
+
export declare function disableTool(): DisabledToolDefinition;
|
|
71
|
+
export declare function disableConnection(): DisabledConnectionDefinition;
|
|
72
|
+
export declare function cursorPlugin(options: CursorPluginOptions): ExtensionMount;
|
|
73
|
+
//# sourceMappingURL=extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,eAAe,CAAC,OAAO,GAAG,SAAS,EAAE,MAAM,GAAG,OAAO,EACnE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACzC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CA6B5B;AAED,wBAAgB,WAAW,IAAI,sBAAsB,CAEpD;AAED,wBAAgB,iBAAiB,IAAI,4BAA4B,CAEhE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,CAUzE"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extensions — agent-shaped trees an agent mounts under a namespace.
|
|
3
|
+
*
|
|
4
|
+
* An extension is a directory laid out like `agent/`: `extension.ts`
|
|
5
|
+
* declares it, `tools/<name>.ts` and `skills/<name>.md|ts` are its
|
|
6
|
+
* contributions, `lib/` holds shared code.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* // extension.ts
|
|
10
|
+
* import { defineExtension } from "@cursor/july/extensions";
|
|
11
|
+
* import { z } from "zod";
|
|
12
|
+
*
|
|
13
|
+
* export default defineExtension({
|
|
14
|
+
* root: import.meta.dirname,
|
|
15
|
+
* description: "Investigate failing CI builds.",
|
|
16
|
+
* config: z.object({ org: z.string(), token: z.string() }),
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // tools/failed_jobs.ts
|
|
20
|
+
* import extension from "../extension.js";
|
|
21
|
+
*
|
|
22
|
+
* export default defineTool({
|
|
23
|
+
* description: "List the failed jobs of a build.",
|
|
24
|
+
* execute: (input) => failedJobs(extension.config, input),
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* A consumer mounts it from `agent/extensions/<ns>.ts`; the filename is the
|
|
29
|
+
* namespace, and every contribution is exposed as `<ns>__<name>`
|
|
30
|
+
* (`ci__failed_jobs`). `__` is reserved for that: an authored `agent/tools/`
|
|
31
|
+
* or `agent/skills/` name may not contain it.
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* // agent/extensions/ci.ts
|
|
35
|
+
* import ci from "@acme/ci-triage";
|
|
36
|
+
*
|
|
37
|
+
* export default ci({ org: "acme", token: process.env.BUILDKITE_TOKEN! });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* To adjust a contribution, mount as a directory instead and overlay the
|
|
41
|
+
* slot: `agent/extensions/ci/extension.ts` holds the mount, and
|
|
42
|
+
* `agent/extensions/ci/tools/job_log.ts` replaces `ci__job_log` — or removes
|
|
43
|
+
* it with `export default disableTool()`.
|
|
44
|
+
*
|
|
45
|
+
* A Cursor plugin (the marketplace format: `.cursor-plugin/plugin.json`,
|
|
46
|
+
* `skills/`, `commands/`, `agents/`, `mcp.json`) mounts the same way with
|
|
47
|
+
* `cursorPlugin`. Its skills and commands become `<ns>__<name>` skills, its
|
|
48
|
+
* agents `<ns>__<name>` subagents, and its MCP servers `<ns>__<server>`
|
|
49
|
+
* connections. Rules and hooks are not mounted yet.
|
|
50
|
+
*
|
|
51
|
+
* ```ts
|
|
52
|
+
* // agent/extensions/notion.ts
|
|
53
|
+
* import { cursorPlugin } from "@cursor/july/extensions";
|
|
54
|
+
*
|
|
55
|
+
* export default cursorPlugin({
|
|
56
|
+
* path: "plugins/notion-workspace",
|
|
57
|
+
* variables: { NOTION_TOKEN: process.env.NOTION_TOKEN! },
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* A directory mount overlays its MCP servers too:
|
|
62
|
+
* `agent/extensions/notion/mcp-connections/notion.ts` replaces
|
|
63
|
+
* `notion__notion` with your own `defineConnection` (headers, `oauth`,
|
|
64
|
+
* `advertiseTools`), and `export default disableConnection()` drops a server
|
|
65
|
+
* the agent should not carry.
|
|
66
|
+
*/
|
|
67
|
+
import { brandDefinition } from "./internal/brand.js";
|
|
68
|
+
export function defineExtension(options) {
|
|
69
|
+
let mounted;
|
|
70
|
+
const mount = (config) => {
|
|
71
|
+
const parsed = options.config === undefined
|
|
72
|
+
? config
|
|
73
|
+
: options.config.parse(config);
|
|
74
|
+
mounted = { config: parsed };
|
|
75
|
+
return brandDefinition("extension", {
|
|
76
|
+
extension: handle,
|
|
77
|
+
config: parsed,
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
const handle = Object.defineProperties(mount, {
|
|
81
|
+
root: { value: options.root, enumerable: true },
|
|
82
|
+
description: { value: options.description, enumerable: true },
|
|
83
|
+
config: {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
get() {
|
|
86
|
+
if (mounted === undefined) {
|
|
87
|
+
throw new Error(`Extension at ${options.root} read its config before an agent mounted it. Mount it from agent/extensions/<ns>.ts; the mount runs before the tree loads.`);
|
|
88
|
+
}
|
|
89
|
+
return mounted.config;
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
return handle;
|
|
94
|
+
}
|
|
95
|
+
export function disableTool() {
|
|
96
|
+
return brandDefinition("disabled-tool", {});
|
|
97
|
+
}
|
|
98
|
+
export function disableConnection() {
|
|
99
|
+
return brandDefinition("disabled-connection", {});
|
|
100
|
+
}
|
|
101
|
+
export function cursorPlugin(options) {
|
|
102
|
+
var _a;
|
|
103
|
+
return brandDefinition("extension", {
|
|
104
|
+
extension: {
|
|
105
|
+
root: options.path,
|
|
106
|
+
description: undefined,
|
|
107
|
+
layout: "cursor-plugin",
|
|
108
|
+
variables: (_a = options.variables) !== null && _a !== void 0 ? _a : {},
|
|
109
|
+
},
|
|
110
|
+
config: undefined,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
@@ -73,14 +73,6 @@ export declare const AGENT_SERVE_FRAMEWORK_STORE_SOURCE_ID_ENV_VAR = "AGENT_SERV
|
|
|
73
73
|
* loudly when the sink is used.
|
|
74
74
|
*/
|
|
75
75
|
export declare function isCursorHostedFilesAvailable(env?: NodeJS.ProcessEnv): boolean;
|
|
76
|
-
/**
|
|
77
|
-
* The framework-level store's source id, or `undefined` when the deployment
|
|
78
|
-
* has none (v1, self-hosted, or a v2 deploy predating framework-store
|
|
79
|
-
* provisioning). Same detection posture as
|
|
80
|
-
* {@link isCursorHostedFilesAvailable}: keyed on the id alone — a missing
|
|
81
|
-
* credential must fail loudly at use, not silently deselect the store.
|
|
82
|
-
*/
|
|
83
|
-
export declare function cursorFrameworkStoreSourceId(env?: NodeJS.ProcessEnv): string | undefined;
|
|
84
76
|
/**
|
|
85
77
|
* Local `serve`/`run` with a personal `CURSOR_API_KEY` can address
|
|
86
78
|
* `/v0/agent-serve-files/user`. Hosted deployments have a store source id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-hosted.d.ts","sourceRoot":"","sources":["../../src/files-backends/cursor-hosted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor-hosted.d.ts","sourceRoot":"","sources":["../../src/files-backends/cursor-hosted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAYrB;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,gCACjB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6CAA6C,0CACjB,CAAC;AAgB1C;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAYT;AAED,MAAM,WAAW,wBAAwB;IACvC,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAChD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAuCD,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG;IAChD,gFAAgF;IAChF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,kBAAkB,CAwXpB"}
|
|
@@ -53,7 +53,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
53
53
|
};
|
|
54
54
|
import { createHash } from "node:crypto";
|
|
55
55
|
import { FileConflictError, } from "../files.js";
|
|
56
|
-
import { resolveDeploymentStoreSourceIdSync
|
|
56
|
+
import { resolveDeploymentStoreSourceIdSync } from "../internal/cursor/hosted-store-secrets.js";
|
|
57
57
|
import { createAgentStorePresignedUrlValidatorForBackend } from "./agent-store-presigned-url.js";
|
|
58
58
|
/**
|
|
59
59
|
* Same default as the hosted storage backend, inlined so this entrypoint does
|
|
@@ -105,16 +105,6 @@ const MAX_LIST_WALK_PAGES = 1000;
|
|
|
105
105
|
export function isCursorHostedFilesAvailable(env = process.env) {
|
|
106
106
|
return resolveDeploymentStoreSourceIdSync(env) !== undefined;
|
|
107
107
|
}
|
|
108
|
-
/**
|
|
109
|
-
* The framework-level store's source id, or `undefined` when the deployment
|
|
110
|
-
* has none (v1, self-hosted, or a v2 deploy predating framework-store
|
|
111
|
-
* provisioning). Same detection posture as
|
|
112
|
-
* {@link isCursorHostedFilesAvailable}: keyed on the id alone — a missing
|
|
113
|
-
* credential must fail loudly at use, not silently deselect the store.
|
|
114
|
-
*/
|
|
115
|
-
export function cursorFrameworkStoreSourceId(env = process.env) {
|
|
116
|
-
return resolveFrameworkStoreSourceIdSync(env);
|
|
117
|
-
}
|
|
118
108
|
/**
|
|
119
109
|
* Local `serve`/`run` with a personal `CURSOR_API_KEY` can address
|
|
120
110
|
* `/v0/agent-serve-files/user`. Hosted deployments have a store source id
|
package/dist/files.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ export declare const AGENT_SERVE_USER_STORE_KEY_PREFIX = "agent-serve";
|
|
|
133
133
|
* `--agent-store-skills-dir` walk finds them the same way it finds user-store
|
|
134
134
|
* skills. Memory and artifacts stay under {@link STORAGE_KEY_ROOT}.
|
|
135
135
|
*/
|
|
136
|
-
|
|
136
|
+
declare function createAgentStoreKeys(root: string): {
|
|
137
137
|
readonly artifactRow: (agent: string, id: string) => string;
|
|
138
138
|
readonly artifactRowPrefix: (agent: string) => string;
|
|
139
139
|
readonly artifactContent: (agent: string, id: string) => string;
|
|
@@ -147,6 +147,9 @@ export declare const agentStoreKeys: {
|
|
|
147
147
|
readonly conversationManifest: (agent: string, sdkAgentId: string) => string;
|
|
148
148
|
readonly conversationBlob: (agent: string, sdkAgentId: string, blobId: string) => string;
|
|
149
149
|
};
|
|
150
|
+
export type AgentStoreKeys = ReturnType<typeof createAgentStoreKeys>;
|
|
151
|
+
export declare const agentStoreKeys: AgentStoreKeys;
|
|
152
|
+
export declare const agentSdkAgentStoreKeys: AgentStoreKeys;
|
|
150
153
|
/**
|
|
151
154
|
* Deployment store FUSE mount on cloud-runtime VMs. Mirrors
|
|
152
155
|
* `AGENT_STORE_MOUNT_ROOT` / `AGENT_SERVE_DEPLOYMENT_STORE_MOUNT_NAME` in
|
|
@@ -177,4 +180,5 @@ export declare class FileTooLargeError extends Error {
|
|
|
177
180
|
readonly maxBytes: number;
|
|
178
181
|
constructor(key: string, size: number, maxBytes: number);
|
|
179
182
|
}
|
|
183
|
+
export {};
|
|
180
184
|
//# sourceMappingURL=files.d.ts.map
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GACpC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrC,0CAA0C;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IACjE,0CAA0C;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,4DAA4D;IAC5D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/C,wFAAwF;IACxF,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACvD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ;aACnB,UAAU,UAAU,MAAM,QAAQ,MAAM,KAAG,MAAM;aAEjD,mBAAmB,UACV,MAAM,aACF,MAAM,QACX,MAAM,KACX,MAAM;aAET,OAAO,UAAU,MAAM,aAAa,MAAM,QAAQ,MAAM,KAAG,MAAM;aAEjE,gBAAgB,UAAU,MAAM,KAAG,MAAM;aAEzC,aAAa,UAAU,MAAM,aAAa,MAAM,KAAG,MAAM;CAEjD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,SAAS,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,iCAAiC,gBAAgB,CAAC;AAE/D;;;;;;;;;GASG;AACH,
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
|
package/dist/files.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* their failure** — an author who writes evidence and then delegates has to
|
|
23
23
|
* know the write did not land.
|
|
24
24
|
*/
|
|
25
|
-
import { STORAGE_KEY_ROOT } from "./storage.js";
|
|
25
|
+
import { AGENTSDK_STORAGE_KEY_ROOT, STORAGE_KEY_ROOT } from "./storage.js";
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Key scheme
|
|
28
28
|
// ============================================================================
|
|
@@ -68,23 +68,27 @@ export const AGENT_SERVE_USER_STORE_KEY_PREFIX = "agent-serve";
|
|
|
68
68
|
* `--agent-store-skills-dir` walk finds them the same way it finds user-store
|
|
69
69
|
* skills. Memory and artifacts stay under {@link STORAGE_KEY_ROOT}.
|
|
70
70
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
71
|
+
function createAgentStoreKeys(root) {
|
|
72
|
+
return {
|
|
73
|
+
artifactRow: (agent, id) => `${root}/${agent}/artifacts/rows/${encodeURIComponent(id)}.json`,
|
|
74
|
+
artifactRowPrefix: (agent) => `${root}/${agent}/artifacts/rows/`,
|
|
75
|
+
artifactContent: (agent, id) => `${root}/${agent}/artifacts/content/${encodeURIComponent(id)}`,
|
|
76
|
+
skillFile: (skillName, relPath, skillsPrefix = "skills/") => `${skillsPrefix}${skillName}/${relPath}`,
|
|
77
|
+
skillsPrefix: () => "skills/",
|
|
78
|
+
/** Personal-key cloud agents: namespaced so they cannot collide with the user's own `skills/`. */
|
|
79
|
+
userSkillsPrefix: (agent) => `${AGENT_SERVE_USER_STORE_KEY_PREFIX}/${agent}/skills/`,
|
|
80
|
+
memoryDir: (agent) => `${root}/${agent}/memory`,
|
|
81
|
+
memoryJournal: (agent) => `${root}/${agent}/memory/journal.jsonl`,
|
|
82
|
+
memoryJournalRotated: (agent, stamp) => `${root}/${agent}/memory/journal-${stamp}.jsonl`,
|
|
83
|
+
// SDK conversation mirror (the runner's SQLite store, exported through the
|
|
84
|
+
// store APIs): one manifest per SDK agent id plus its content-addressed
|
|
85
|
+
// checkpoint blobs. See internal/conversation-mirror.ts.
|
|
86
|
+
conversationManifest: (agent, sdkAgentId) => `${root}/${agent}/conversations/${encodeURIComponent(sdkAgentId)}/manifest.json`,
|
|
87
|
+
conversationBlob: (agent, sdkAgentId, blobId) => `${root}/${agent}/conversations/${encodeURIComponent(sdkAgentId)}/blobs/${encodeURIComponent(blobId)}`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export const agentStoreKeys = createAgentStoreKeys(STORAGE_KEY_ROOT);
|
|
91
|
+
export const agentSdkAgentStoreKeys = createAgentStoreKeys(AGENTSDK_STORAGE_KEY_ROOT);
|
|
88
92
|
/**
|
|
89
93
|
* Deployment store FUSE mount on cloud-runtime VMs. Mirrors
|
|
90
94
|
* `AGENT_STORE_MOUNT_ROOT` / `AGENT_SERVE_DEPLOYMENT_STORE_MOUNT_NAME` in
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export { allowAll, bearerAuth, DELETE, defineChannel, GET, httpChannel, localDev
|
|
|
20
20
|
export { defineConnection } from "./connections.js";
|
|
21
21
|
export type { ContinuationBuiltin, ContinuationClaim, ContinuationIdentity, ContinuationSelector, ConversationType, MailboxContinuation, ParsedContinuation, } from "./continuation.js";
|
|
22
22
|
export { BUILTINS, bindMailboxContinuationSend, CONTINUATION_SELECTORS, continuationSource, defaultContinuationSelector, extractContinuation, formatConversationKey, handshakeContinuation, isContinuationSelector, mintClaim, normalizeIdentity, parseContinuationSelector, resolveContinuation, resolveV2Key, stampMailboxContinuation, V2EngineError, } from "./continuation.js";
|
|
23
|
+
export { cursorPlugin, defineExtension, disableConnection, disableTool, } from "./extensions.js";
|
|
23
24
|
export { defineHook } from "./hooks.js";
|
|
24
25
|
export { InvalidAsOfError, VacuousTimeArgsError, } from "./internal/as-of.js";
|
|
25
26
|
export type { LoadAgentProjectOptions } from "./internal/discovery.js";
|
|
@@ -40,11 +41,11 @@ export { prompt } from "./prompt.js";
|
|
|
40
41
|
export type { ReminderBusyPolicy, ReminderCreateInput, ReminderFireContext, ReminderFireResult, ReminderHostApi, ReminderInfo, ReminderReschedule, ReminderScheduleKind, ReminderStatus, ReminderTarget, ReminderUntilContext, } from "./reminders.js";
|
|
41
42
|
export { defineSchedule } from "./schedules.js";
|
|
42
43
|
export { defineSkill } from "./skills.js";
|
|
43
|
-
export type { DurableSessionRecord, DurableSessionSummary, StorageABTable, StorageCasTable, StorageConfig, StorageContext, StorageDefinition, StorageEntry, StorageEvalsTable, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
|
|
44
|
-
export { defineStorage, isDurableSessionRecordKey, parseDurableSessionRecord, STORAGE_KEY_ROOT, storageKeys, summarizeDurableSessionRecord, } from "./storage.js";
|
|
44
|
+
export type { DurableSessionRecord, DurableSessionSummary, StorageABTable, StorageCasTable, StorageConfig, StorageContext, StorageDefinition, StorageEntry, StorageEvalsTable, StorageKeys, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
|
|
45
|
+
export { AGENTSDK_STORAGE_KEY_ROOT, agentSdkStorageKeys, defineStorage, isDurableSessionRecordKey, parseDurableSessionRecord, STORAGE_KEY_ROOT, storageKeys, storageKeysForArchitecture, summarizeDurableSessionRecord, } from "./storage.js";
|
|
45
46
|
export { defineTool } from "./tools.js";
|
|
46
47
|
export type * from "./types.js";
|
|
47
|
-
export { cursorAccountServersHasMixedWildcard, DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isCursorAccountTransport, isPeerConnectionTransport, isSymbolicConnectionTransport, isToolEffect, MAX_RUNNING_TURNS_LIMIT, normalizeConnectionEffects, normalizeCursorAccountServers, supportsKvCas, } from "./types.js";
|
|
48
|
+
export { cursorAccountServersHasMixedWildcard, DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isCursorAccountTransport, isPeerConnectionTransport, isSymbolicConnectionTransport, isToolEffect, MAX_RUNNING_TURNS_LIMIT, normalizeConnectionEffects, normalizeConnectionTools, normalizeCursorAccountServers, supportsKvCas, } from "./types.js";
|
|
48
49
|
/**
|
|
49
50
|
* Runtime config for an agent — authored at `agent/agent.ts` (the root
|
|
50
51
|
* agent) or `agent/subagents/<id>/agent.ts` (a subagent). Set
|