@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,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime resolution and the limitations each runtime imposes on the authored surface.
|
|
3
|
+
*/
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { builtinTools } from "../builtin-tools/index.js";
|
|
6
|
+
import { displayPath } from "./context.js";
|
|
7
|
+
/**
|
|
8
|
+
* Validate the authored runtime. An unrecognized value is an error
|
|
9
|
+
* diagnostic and falls back to local — a typo must not silently pick a
|
|
10
|
+
* different harness for every turn.
|
|
11
|
+
*/
|
|
12
|
+
export function resolveRuntime(ctx, agentDir, runtime) {
|
|
13
|
+
if (runtime === undefined ||
|
|
14
|
+
runtime === "local" ||
|
|
15
|
+
runtime === "cloud" ||
|
|
16
|
+
runtime === "grokbot") {
|
|
17
|
+
return runtime !== null && runtime !== void 0 ? runtime : "local";
|
|
18
|
+
}
|
|
19
|
+
ctx.diagnostics.push({
|
|
20
|
+
severity: "error",
|
|
21
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
22
|
+
message: `runtime must be "local", "cloud", or "grokbot"; got ${JSON.stringify(runtime)}.`,
|
|
23
|
+
});
|
|
24
|
+
return "local";
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Grok Bot turns run on the Sand harness with its own toolset: authored
|
|
28
|
+
* server tools, MCP connections, and subagents have no path onto that
|
|
29
|
+
* toolset yet, so an agent declaring them must fail at serve start rather
|
|
30
|
+
* than run with capabilities silently missing.
|
|
31
|
+
*/
|
|
32
|
+
export function checkGrokBotRuntimeLimitations(ctx, agentDir, counts) {
|
|
33
|
+
const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
|
|
34
|
+
const error = (path, message) => {
|
|
35
|
+
ctx.diagnostics.push({ severity: "error", path, message });
|
|
36
|
+
};
|
|
37
|
+
const warn = (path, message) => {
|
|
38
|
+
ctx.diagnostics.push({ severity: "warning", path, message });
|
|
39
|
+
};
|
|
40
|
+
if (counts.serverTools > 0) {
|
|
41
|
+
error(displayPath(ctx, join(agentDir, "tools")), 'Server tools (execution: "server", including opted-in builtinTools) are not reachable from grokbot turns yet. Remove them or run the agent on the local runtime.');
|
|
42
|
+
}
|
|
43
|
+
if (counts.connections > 0) {
|
|
44
|
+
error(displayPath(ctx, agentDir), "MCP connections (agent/mcp-connections/ or agent/host-connections/) are not wired into grokbot turns yet. Remove them or run the agent on the local runtime.");
|
|
45
|
+
}
|
|
46
|
+
if (counts.subagents > 0) {
|
|
47
|
+
error(displayPath(ctx, join(agentDir, "subagents")), "Authored subagents are not available on grokbot turns (the Grok Bot harness runs its own subagent set). Remove them or run the agent on the local runtime.");
|
|
48
|
+
}
|
|
49
|
+
// The remaining declarations mirror the cloud runtime's warnings: the
|
|
50
|
+
// turn runs on a hosted machine (the account's box), so local-workspace
|
|
51
|
+
// materialization never reaches it.
|
|
52
|
+
if (counts.agentTools > 0) {
|
|
53
|
+
warn(displayPath(ctx, join(agentDir, "tools")), 'Agent tools (execution: "agent") are described in the hosted session\'s instructions (with script bodies); they are not written onto the box filesystem automatically.');
|
|
54
|
+
}
|
|
55
|
+
if (counts.skills > 0) {
|
|
56
|
+
warn(displayPath(ctx, join(agentDir, "skills")), "Authored skills are materialized into the local session workspace only; the hosted Grok Bot box does not see them.");
|
|
57
|
+
}
|
|
58
|
+
if (counts.seedFiles > 0) {
|
|
59
|
+
warn(displayPath(ctx, join(agentDir, "sandbox")), "sandbox/workspace seed files apply to the local session workspace only; grokbot turns run on the account's hosted box.");
|
|
60
|
+
}
|
|
61
|
+
if (counts.hasCloudOptions) {
|
|
62
|
+
warn(agentPath, 'The `cloud` block is unused on runtime: "grokbot", and grokbot sessions refuse per-session cloud attach.');
|
|
63
|
+
}
|
|
64
|
+
if (counts.hasLocalSandbox) {
|
|
65
|
+
warn(agentPath, 'local.sandbox does not apply to runtime: "grokbot"; the box is the account\'s Cursor-hosted computer.');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export function warnCloudRuntimeLimitations(ctx, agentDir, counts) {
|
|
69
|
+
const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
|
|
70
|
+
if (!counts.hasCloudOptions) {
|
|
71
|
+
ctx.diagnostics.push({
|
|
72
|
+
severity: "warning",
|
|
73
|
+
path: agentPath,
|
|
74
|
+
message: 'runtime: "cloud" usually needs a `cloud` block (e.g. repos / env). Without it the Cursor cloud API may reject create.',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (counts.agentTools > 0) {
|
|
78
|
+
ctx.diagnostics.push({
|
|
79
|
+
severity: "warning",
|
|
80
|
+
path: displayPath(ctx, join(agentDir, "tools")),
|
|
81
|
+
message: 'Agent tools (execution: "agent") are described on the first cloud prompt (with script bodies); they are not written into the cloud VM filesystem automatically.',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (counts.skills > 0) {
|
|
85
|
+
ctx.diagnostics.push({
|
|
86
|
+
severity: "warning",
|
|
87
|
+
path: displayPath(ctx, join(agentDir, "skills")),
|
|
88
|
+
message: "Authored skills reach cloud agents through native store discovery: hosted deployments write the deployment store's skills/ directory; local serve/run with a personal API key writes agent-serve/<agent>/skills/ on the USER store. Without a reachable store, only skills already in the cloud repo are visible.",
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (counts.seedFiles > 0) {
|
|
92
|
+
ctx.diagnostics.push({
|
|
93
|
+
severity: "warning",
|
|
94
|
+
path: displayPath(ctx, join(agentDir, "sandbox")),
|
|
95
|
+
message: "sandbox/workspace seed files apply to the local session workspace only; cloud agents use the configured cloud repos.",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/schedules/*.ts`: cron-driven runs.
|
|
3
|
+
*/
|
|
4
|
+
import type { DiscoveredSchedule } from "../../types.js";
|
|
5
|
+
import { type DiscoveryContext } from "./context.js";
|
|
6
|
+
export declare function loadSchedules(ctx: DiscoveryContext, schedulesDir: string): Promise<DiscoveredSchedule[]>;
|
|
7
|
+
//# sourceMappingURL=schedules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/schedules.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,gBAAgB,CAAC;AAG7E,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAIlE,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA6E/B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/schedules/*.ts`: cron-driven runs.
|
|
3
|
+
*/
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
import { readFile } from "node:fs/promises";
|
|
14
|
+
import { basename, extname, relative } from "node:path";
|
|
15
|
+
import { isValidCron } from "../cron.js";
|
|
16
|
+
import { parseFrontmatter } from "../frontmatter.js";
|
|
17
|
+
import { displayPath } from "./context.js";
|
|
18
|
+
import { isDirectory, isModuleFile, toPosix, walkFiles } from "./fs.js";
|
|
19
|
+
import { importDefault } from "./modules.js";
|
|
20
|
+
export function loadSchedules(ctx, schedulesDir) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
if (!(yield isDirectory(schedulesDir))) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
const schedules = [];
|
|
26
|
+
for (const filePath of yield walkFiles(schedulesDir)) {
|
|
27
|
+
const rel = toPosix(relative(schedulesDir, filePath));
|
|
28
|
+
if (rel.endsWith(".md")) {
|
|
29
|
+
const name = rel.slice(0, -".md".length);
|
|
30
|
+
const { data, body } = parseFrontmatter(yield readFile(filePath, "utf8"));
|
|
31
|
+
const cron = data.cron;
|
|
32
|
+
if (cron === undefined || !isValidCron(cron)) {
|
|
33
|
+
ctx.diagnostics.push({
|
|
34
|
+
severity: "error",
|
|
35
|
+
path: displayPath(ctx, filePath),
|
|
36
|
+
message: cron === undefined
|
|
37
|
+
? "Markdown schedules require `cron` frontmatter."
|
|
38
|
+
: `Invalid cron expression: "${cron}".`,
|
|
39
|
+
});
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const markdown = body.trim();
|
|
43
|
+
if (markdown === "") {
|
|
44
|
+
ctx.diagnostics.push({
|
|
45
|
+
severity: "error",
|
|
46
|
+
path: displayPath(ctx, filePath),
|
|
47
|
+
message: "Markdown schedules require a non-empty prompt body.",
|
|
48
|
+
});
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
schedules.push({
|
|
52
|
+
name,
|
|
53
|
+
cron,
|
|
54
|
+
kind: "markdown",
|
|
55
|
+
definition: {
|
|
56
|
+
__agentServe: "schedule",
|
|
57
|
+
cron,
|
|
58
|
+
markdown,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (!isModuleFile(basename(filePath))) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const name = rel.slice(0, -extname(rel).length);
|
|
67
|
+
const definition = yield importDefault(ctx, filePath, "schedule");
|
|
68
|
+
if (definition === undefined) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const schedule = definition;
|
|
72
|
+
if ((schedule.markdown === undefined) === (schedule.run === undefined)) {
|
|
73
|
+
ctx.diagnostics.push({
|
|
74
|
+
severity: "error",
|
|
75
|
+
path: displayPath(ctx, filePath),
|
|
76
|
+
message: "Schedules require exactly one of `markdown` or `run`.",
|
|
77
|
+
});
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (!isValidCron(schedule.cron)) {
|
|
81
|
+
ctx.diagnostics.push({
|
|
82
|
+
severity: "error",
|
|
83
|
+
path: displayPath(ctx, filePath),
|
|
84
|
+
message: `Invalid cron expression: "${schedule.cron}".`,
|
|
85
|
+
});
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
schedules.push({
|
|
89
|
+
name,
|
|
90
|
+
cron: schedule.cron,
|
|
91
|
+
kind: schedule.run === undefined ? "markdown" : "run",
|
|
92
|
+
definition: schedule,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return schedules;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/sandbox/workspace/**`: files seeded into each local session workspace.
|
|
3
|
+
*/
|
|
4
|
+
import type { SeedFile } from "../../types.js";
|
|
5
|
+
import { type DiscoveryContext } from "./context.js";
|
|
6
|
+
export declare function loadSeedFiles(ctx: DiscoveryContext, agentDir: string): Promise<SeedFile[]>;
|
|
7
|
+
//# sourceMappingURL=seed-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-files.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/seed-files.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAGlE,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,EAAE,CAAC,CAwBrB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/sandbox/workspace/**`: files seeded into each local session workspace.
|
|
3
|
+
*/
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
import { join, relative } from "node:path";
|
|
14
|
+
import { displayPath } from "./context.js";
|
|
15
|
+
import { isDirectory, isFile, toPosix, walkFiles } from "./fs.js";
|
|
16
|
+
export function loadSeedFiles(ctx, agentDir) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const sandboxDir = join(agentDir, "sandbox");
|
|
19
|
+
for (const candidate of ["sandbox.ts", join("sandbox", "sandbox.ts")]) {
|
|
20
|
+
if (yield isFile(join(agentDir, candidate))) {
|
|
21
|
+
ctx.diagnostics.push({
|
|
22
|
+
severity: "warning",
|
|
23
|
+
path: displayPath(ctx, join(agentDir, candidate)),
|
|
24
|
+
message: "Custom sandbox backends are not supported; the agent runs in the session workspace directory. Ignoring.",
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const workspaceDir = join(sandboxDir, "workspace");
|
|
29
|
+
if (!(yield isDirectory(workspaceDir))) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
const seedFiles = [];
|
|
33
|
+
for (const filePath of yield walkFiles(workspaceDir)) {
|
|
34
|
+
seedFiles.push({
|
|
35
|
+
relativePath: toPosix(relative(workspaceDir, filePath)),
|
|
36
|
+
sourcePath: filePath,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return seedFiles;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/storage.ts`, `agent/otel.ts`, `agent/artifacts.ts`: host services the agent configures.
|
|
3
|
+
*/
|
|
4
|
+
import type { OtelDefinition } from "../../otel.js";
|
|
5
|
+
import type { StorageDefinition } from "../../storage.js";
|
|
6
|
+
import type { AgentArchitecture, ArtifactsDefinition, ResolvedAgent } from "../../types.js";
|
|
7
|
+
import { type DiscoveryContext } from "./context.js";
|
|
8
|
+
export declare function loadStorage(ctx: DiscoveryContext, agentDir: string, architecture: AgentArchitecture | undefined): Promise<StorageDefinition | undefined>;
|
|
9
|
+
export declare function loadOtel(ctx: DiscoveryContext, agentDir: string): Promise<OtelDefinition | undefined>;
|
|
10
|
+
export declare function loadArtifacts(ctx: DiscoveryContext, agentDir: string): Promise<ArtifactsDefinition | undefined>;
|
|
11
|
+
/**
|
|
12
|
+
* Materialize the `tag_artifact` built-in when `defineArtifacts` set
|
|
13
|
+
* `agentTool: true`. Appended after `loadAgent` because the tool is
|
|
14
|
+
* generated from the artifacts kinds registry, not `AgentConfig.builtinTools`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function appendArtifactTool(ctx: DiscoveryContext, agentDir: string, agent: ResolvedAgent, artifacts: ArtifactsDefinition | undefined): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAIlE,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,iBAAiB,GAAG,SAAS,GAC1C,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA6BxC;AAED,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAOrC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAsB1C;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,mBAAmB,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/storage.ts`, `agent/otel.ts`, `agent/artifacts.ts`: host services the agent configures.
|
|
3
|
+
*/
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
import { join } from "node:path";
|
|
14
|
+
import { artifactBuiltinTool, TAG_ARTIFACT_TOOL_NAME, } from "../builtin-tools/index.js";
|
|
15
|
+
import { displayPath } from "./context.js";
|
|
16
|
+
import { findModuleFile } from "./fs.js";
|
|
17
|
+
import { importDefault } from "./modules.js";
|
|
18
|
+
export function loadStorage(ctx, agentDir, architecture) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const path = yield findModuleFile(agentDir, "storage");
|
|
21
|
+
if (path === undefined) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
if (architecture === "v2") {
|
|
25
|
+
// Storage is a hosting-mode decision on v2, made by
|
|
26
|
+
// framework-storage-selection.ts: the state root when self-hosted,
|
|
27
|
+
// Cursor-managed storage on Cursor hosting. Fail early (error
|
|
28
|
+
// diagnostics refuse serve and deploy) rather than silently running
|
|
29
|
+
// with storage the author believes they configured. Not imported.
|
|
30
|
+
ctx.diagnostics.push({
|
|
31
|
+
severity: "error",
|
|
32
|
+
path: displayPath(ctx, path),
|
|
33
|
+
message: 'agent/storage.ts is not supported on architecture "v2": the platform selects storage (the local state root when self-hosted; Cursor-managed storage on Cursor hosting). Delete the file.',
|
|
34
|
+
});
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
// v1 keeps loading the authored sink, with notice: defineStorage is going
|
|
38
|
+
// away with the v1 control plane.
|
|
39
|
+
ctx.diagnostics.push({
|
|
40
|
+
severity: "warning",
|
|
41
|
+
path: displayPath(ctx, path),
|
|
42
|
+
message: 'agent/storage.ts (defineStorage) is deprecated and going away: architecture "v2" selects storage automatically (the local state root when self-hosted; Cursor-managed storage on Cursor hosting). Still honored on v1.',
|
|
43
|
+
});
|
|
44
|
+
const definition = yield importDefault(ctx, path, "storage");
|
|
45
|
+
return definition;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export function loadOtel(ctx, agentDir) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const path = yield findModuleFile(agentDir, "otel");
|
|
51
|
+
if (path === undefined) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const definition = yield importDefault(ctx, path, "otel");
|
|
55
|
+
return definition;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
export function loadArtifacts(ctx, agentDir) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
var _a;
|
|
61
|
+
const path = yield findModuleFile(agentDir, "artifacts");
|
|
62
|
+
if (path === undefined) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const imported = yield importDefault(ctx, path, "artifacts");
|
|
66
|
+
if (imported === undefined) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const definition = imported;
|
|
70
|
+
if (definition.agentTool === true &&
|
|
71
|
+
Object.keys((_a = definition.kinds) !== null && _a !== void 0 ? _a : {}).length === 0) {
|
|
72
|
+
ctx.diagnostics.push({
|
|
73
|
+
severity: "error",
|
|
74
|
+
path: displayPath(ctx, path),
|
|
75
|
+
message: "artifacts.agentTool requires kinds: the tag_artifact tool needs at least one declared kind; its descriptions are the tool prompt.",
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return definition;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Materialize the `tag_artifact` built-in when `defineArtifacts` set
|
|
83
|
+
* `agentTool: true`. Appended after `loadAgent` because the tool is
|
|
84
|
+
* generated from the artifacts kinds registry, not `AgentConfig.builtinTools`.
|
|
85
|
+
*/
|
|
86
|
+
export function appendArtifactTool(ctx, agentDir, agent, artifacts) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
var _a;
|
|
89
|
+
const tool = artifactBuiltinTool(artifacts);
|
|
90
|
+
if (tool === undefined) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const artifactsPath = displayPath(ctx, (_a = (yield findModuleFile(agentDir, "artifacts"))) !== null && _a !== void 0 ? _a : join(agentDir, "artifacts.ts"));
|
|
94
|
+
if (agent.tools.some((t) => t.name === TAG_ARTIFACT_TOOL_NAME)) {
|
|
95
|
+
ctx.diagnostics.push({
|
|
96
|
+
severity: "warning",
|
|
97
|
+
path: artifactsPath,
|
|
98
|
+
message: `Authored tool "${TAG_ARTIFACT_TOOL_NAME}" shadows the built-in tool of the same name; the authored tool wins.`,
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
agent.tools.push(tool);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/skills/*`: markdown, packaged, and `defineSkill` skills.
|
|
3
|
+
*/
|
|
4
|
+
import type { DiscoveredSkill, SkillFileSource } from "../../types.js";
|
|
5
|
+
import { type DiscoveryContext } from "./context.js";
|
|
6
|
+
/** Declared frontmatter, else the body's first line, else a generic line. */
|
|
7
|
+
export declare function skillDescription(name: string, declared: string | undefined, body: string): string;
|
|
8
|
+
/** A packaged skill's sibling files, keyed by path relative to the skill dir. */
|
|
9
|
+
export declare function skillFiles(skillDir: string): Promise<Record<string, SkillFileSource>>;
|
|
10
|
+
export declare function loadSkills(ctx: DiscoveryContext, skillsDir: string): Promise<DiscoveredSkill[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Advertise the first non-empty, non-code-fence line of the body, with any
|
|
13
|
+
* leading `#`, `>`, `*`, or `-` markers stripped.
|
|
14
|
+
*/
|
|
15
|
+
export declare function deriveSkillDescription(markdown: string): string | undefined;
|
|
16
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/skills.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,eAAe,EAGf,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,cAAc,CAAC;AAa3E,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,GACX,MAAM,CAMR;AAED,iFAAiF;AACjF,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAS1C;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC,CA8C5B;AAoDD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB3E"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/skills/*`: markdown, packaged, and `defineSkill` skills.
|
|
3
|
+
*/
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
import { readFile } from "node:fs/promises";
|
|
14
|
+
import { join, relative } from "node:path";
|
|
15
|
+
import { parseFrontmatter } from "../frontmatter.js";
|
|
16
|
+
import { displayPath, isBlank } from "./context.js";
|
|
17
|
+
import { isDirectory, isFile, isModuleFile, moduleStem, sortedEntries, toPosix, walkFiles, } from "./fs.js";
|
|
18
|
+
import { importDefault } from "./modules.js";
|
|
19
|
+
import { validateName } from "./names.js";
|
|
20
|
+
/** Declared frontmatter, else the body's first line, else a generic line. */
|
|
21
|
+
export function skillDescription(name, declared, body) {
|
|
22
|
+
var _a;
|
|
23
|
+
return ((_a = declared !== null && declared !== void 0 ? declared : deriveSkillDescription(body)) !== null && _a !== void 0 ? _a : `Instructions for the ${name} skill.`);
|
|
24
|
+
}
|
|
25
|
+
/** A packaged skill's sibling files, keyed by path relative to the skill dir. */
|
|
26
|
+
export function skillFiles(skillDir) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const files = {};
|
|
29
|
+
for (const filePath of yield walkFiles(skillDir)) {
|
|
30
|
+
const rel = toPosix(relative(skillDir, filePath));
|
|
31
|
+
if (rel !== "SKILL.md") {
|
|
32
|
+
files[rel] = { sourcePath: filePath };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return files;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export function loadSkills(ctx, skillsDir) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
if (!(yield isDirectory(skillsDir))) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
const skills = [];
|
|
44
|
+
for (const entry of yield sortedEntries(skillsDir)) {
|
|
45
|
+
const entryPath = join(skillsDir, entry.name);
|
|
46
|
+
if (entry.isDirectory()) {
|
|
47
|
+
const skill = yield loadPackagedSkill(ctx, entryPath, entry.name);
|
|
48
|
+
if (skill !== undefined) {
|
|
49
|
+
skills.push(skill);
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!entry.isFile()) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (entry.name.endsWith(".md")) {
|
|
57
|
+
const name = entry.name.slice(0, -".md".length);
|
|
58
|
+
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const { data, body } = parseFrontmatter(yield readFile(entryPath, "utf8"));
|
|
62
|
+
skills.push({
|
|
63
|
+
name,
|
|
64
|
+
description: skillDescription(name, data.description, body),
|
|
65
|
+
markdown: body.trim(),
|
|
66
|
+
files: {},
|
|
67
|
+
});
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (isModuleFile(entry.name)) {
|
|
71
|
+
const name = moduleStem(entry.name);
|
|
72
|
+
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const definition = yield importDefault(ctx, entryPath, "skill");
|
|
76
|
+
if (definition === undefined) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
skills.push(compileSkill(name, definition));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return skills;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/** A skill whose body and sibling files are in memory (`defineSkill`, extensions). */
|
|
86
|
+
function compileSkill(name, skill) {
|
|
87
|
+
var _a;
|
|
88
|
+
const files = {};
|
|
89
|
+
for (const [rel, contents] of Object.entries((_a = skill.files) !== null && _a !== void 0 ? _a : {})) {
|
|
90
|
+
files[rel] = { contents };
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
name,
|
|
94
|
+
description: skillDescription(name, skill.description, skill.markdown),
|
|
95
|
+
markdown: skill.markdown.trim(),
|
|
96
|
+
files,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function loadPackagedSkill(ctx, skillDir, name) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const skillMdPath = join(skillDir, "SKILL.md");
|
|
102
|
+
if (!(yield isFile(skillMdPath))) {
|
|
103
|
+
ctx.diagnostics.push({
|
|
104
|
+
severity: "warning",
|
|
105
|
+
path: displayPath(ctx, skillDir),
|
|
106
|
+
message: "Skill directories must contain a SKILL.md; ignoring.",
|
|
107
|
+
});
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
if (!validateName(ctx, "skill", name, skillDir)) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
const { data, body } = parseFrontmatter(yield readFile(skillMdPath, "utf8"));
|
|
114
|
+
if (data.description === undefined || isBlank(data.description)) {
|
|
115
|
+
ctx.diagnostics.push({
|
|
116
|
+
severity: "error",
|
|
117
|
+
path: displayPath(ctx, skillMdPath),
|
|
118
|
+
message: "Packaged skills require `description` frontmatter in SKILL.md (there is no filename slug to fall back on).",
|
|
119
|
+
});
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
name,
|
|
124
|
+
description: data.description,
|
|
125
|
+
markdown: body.trim(),
|
|
126
|
+
files: yield skillFiles(skillDir),
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Advertise the first non-empty, non-code-fence line of the body, with any
|
|
132
|
+
* leading `#`, `>`, `*`, or `-` markers stripped.
|
|
133
|
+
*/
|
|
134
|
+
export function deriveSkillDescription(markdown) {
|
|
135
|
+
let inFence = false;
|
|
136
|
+
for (const rawLine of markdown.split(/\r?\n/)) {
|
|
137
|
+
const line = rawLine.trim();
|
|
138
|
+
if (line.startsWith("```")) {
|
|
139
|
+
inFence = !inFence;
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (inFence || line === "") {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const stripped = line.replace(/^[#>*\s-]+/, "").trim();
|
|
146
|
+
if (stripped !== "") {
|
|
147
|
+
return stripped.length > 200 ? `${stripped.slice(0, 197)}...` : stripped;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A subagent as the Cursor harness runs it: description, model, and prompt. Its other slots are inert.
|
|
3
|
+
*/
|
|
4
|
+
import type { ModelSetting, ResolvedAgent } from "../../types.js";
|
|
5
|
+
interface SubagentFields {
|
|
6
|
+
description?: string;
|
|
7
|
+
model?: ModelSetting;
|
|
8
|
+
/** Authored prompt; the identity preamble is prepended. */
|
|
9
|
+
prompt?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function subagent(name: string, fields: SubagentFields): ResolvedAgent;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=subagent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/subagent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,aAAa,CAc5E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A subagent as the Cursor harness runs it: description, model, and prompt. Its other slots are inert.
|
|
3
|
+
*/
|
|
4
|
+
import { withIdentityPreamble } from "../workspace.js";
|
|
5
|
+
export function subagent(name, fields) {
|
|
6
|
+
return {
|
|
7
|
+
name,
|
|
8
|
+
description: fields.description,
|
|
9
|
+
model: fields.model,
|
|
10
|
+
instructions: withIdentityPreamble(name, fields.prompt),
|
|
11
|
+
runtime: "local",
|
|
12
|
+
tools: [],
|
|
13
|
+
skills: [],
|
|
14
|
+
connections: [],
|
|
15
|
+
hostConnections: [],
|
|
16
|
+
subagents: [],
|
|
17
|
+
seedFiles: [],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/tools/*.ts`: typed tools and the built-in tools appended after them.
|
|
3
|
+
*/
|
|
4
|
+
import type { BuiltinToolsConfig, DiscoveredTool, ToolDefinition } from "../../types.js";
|
|
5
|
+
import { type DiscoveryContext } from "./context.js";
|
|
6
|
+
export declare function loadTools(ctx: DiscoveryContext, toolsDir: string): Promise<DiscoveredTool[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Validate one tool definition against the tool contract and convert its
|
|
9
|
+
* schemas. Diagnostics point at `entryPath` (the authored file, or the
|
|
10
|
+
* extension mount that contributed the tool).
|
|
11
|
+
*/
|
|
12
|
+
export declare function compileTool(ctx: DiscoveryContext, entryPath: string, name: string, tool: ToolDefinition): DiscoveredTool | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Append enabled built-in tools after authored tools. Authored tools with
|
|
15
|
+
* the same name win.
|
|
16
|
+
*/
|
|
17
|
+
export declare function appendBuiltinTools(ctx: DiscoveryContext, agentDir: string, tools: DiscoveredTool[], config: BuiltinToolsConfig | undefined): void;
|
|
18
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EAEf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,cAAc,CAAC;AAGtB,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,EAAE,CAAC,CAa3B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,cAAc,GACnB,cAAc,GAAG,SAAS,CAkF5B;AAmBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,kBAAkB,GAAG,SAAS,GACrC,IAAI,CAsBN"}
|