@cursor/july 0.1.101 → 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/channels/slack/api.d.ts +1 -1
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +3 -1
- package/dist/channels/slack/assistant.d.ts +1 -1
- package/dist/channels/slack/assistant.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.d.ts +3 -2
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +28 -8
- package/dist/channels/slack/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/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +2 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.BASO9Kih.js → app.CLA03RCz.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DwkqxoE0.js → VPLocalSearchBox.ifxv-cJV.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CCil_13e.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_extensions.md.9WQMZe1l.js +56 -0
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +1 -0
- 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 +321 -4
- 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 +4 -4
- 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 +4 -4
- 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 +9 -7
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +9 -7
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +286 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +14 -38
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
- package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/tools/{follow_up.js → reply.js} +12 -14
- package/dist/extensions.d.ts +38 -14
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +49 -12
- 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 +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- 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-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/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 -2505
- package/dist/internal/framework-file-storage.js +6 -6
- 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/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +37 -20
- 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/session-engine.d.ts +5 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +68 -32
- package/dist/internal/session-run-log.d.ts +2 -1
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +13 -14
- package/dist/internal/start-log-store.d.ts +1 -1
- package/dist/internal/start-log-store.d.ts.map +1 -1
- package/dist/internal/start-log-store.js +12 -14
- package/dist/internal/storage-coordinator.d.ts +4 -1
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +15 -13
- package/dist/internal/tool-catalog.d.ts.map +1 -1
- package/dist/internal/tool-catalog.js +9 -6
- package/dist/internal/turn-cost.d.ts +14 -0
- package/dist/internal/turn-cost.d.ts.map +1 -1
- package/dist/internal/turn-cost.js +41 -9
- package/dist/internal/v2-hosting.d.ts +22 -0
- package/dist/internal/v2-hosting.d.ts.map +1 -0
- package/dist/internal/v2-hosting.js +23 -0
- package/dist/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/index.html +2 -2
- package/dist/storage-protocol.d.ts +24 -23
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +68 -65
- 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 +39 -3
- package/dist/types.d.ts.map +1 -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/extensions.md +205 -0
- 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 +1 -1
- package/skills/framework-map/SKILL.md +1 -0
- package/src/channels/slack/api.ts +4 -2
- package/src/channels/slack/assistant.ts +1 -1
- package/src/channels/slack/dispatch.ts +27 -2
- package/src/channels/slack/inbound.ts +37 -0
- package/src/channels/slack/manifest.ts +2 -1
- package/src/extensions/cursor-cloud-agents/extension.ts +9 -7
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +51 -0
- package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +22 -42
- package/src/extensions/cursor-cloud-agents/tools/list.ts +1 -1
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
- package/src/extensions.ts +55 -12
- package/src/files-backends/cursor-hosted.ts +1 -17
- package/src/files.ts +43 -34
- package/src/index.ts +10 -1
- package/src/internal/conversation-mirror.ts +23 -18
- package/src/internal/cursor/backend-client.ts +32 -10
- package/src/internal/cursor/hosted-store-secrets.ts +27 -0
- 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 -3081
- package/src/internal/framework-file-storage.ts +6 -6
- package/src/internal/framework-storage-selection.ts +9 -9
- package/src/internal/frontmatter.ts +36 -3
- package/src/internal/mcp-host.ts +84 -31
- 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/session-engine.ts +96 -11
- package/src/internal/session-run-log.ts +17 -16
- package/src/internal/start-log-store.ts +13 -16
- package/src/internal/storage-coordinator.ts +19 -16
- package/src/internal/tool-catalog.ts +9 -6
- package/src/internal/turn-cost.ts +47 -4
- package/src/internal/v2-hosting.ts +38 -0
- package/src/otel.ts +38 -0
- package/src/storage-protocol.ts +101 -91
- package/src/storage.ts +4 -0
- package/src/tools.ts +18 -0
- package/src/types.ts +43 -2
- package/dist/docs/assets/chunks/@localSearchIndexroot.DbFXINq2.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/extensions/cursor-cloud-agents/lib/cloud.d.ts +0 -30
- package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts.map +0 -1
- package/dist/extensions/cursor-cloud-agents/lib/cloud.js +0 -45
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts +0 -4
- package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts.map +0 -1
- package/dist/extensions/cursor-cloud-agents/tools/status.d.ts +0 -4
- package/dist/extensions/cursor-cloud-agents/tools/status.d.ts.map +0 -1
- package/dist/extensions/cursor-cloud-agents/tools/status.js +0 -41
- package/dist/playground/assets/index-DBQCwFp0.css +0 -1
- package/src/extensions/cursor-cloud-agents/lib/cloud.ts +0 -79
- package/src/extensions/cursor-cloud-agents/tools/follow_up.ts +0 -29
- package/src/extensions/cursor-cloud-agents/tools/status.ts +0 -39
- /package/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_skills.md.BFW9retM.lean.js → reference_skills.md.l2ezAcaN.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.CvAHsdSp.lean.js → reference_tools.md.B1up2r9W.lean.js} +0 -0
- /package/dist/playground/assets/{index-BnNN1-EK.js → index-ZqNoT8Ie.js} +0 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compile one `agent/` directory (and its subagents) into a {@link ResolvedAgent}.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { DEFAULT_MODEL, type ResolvedAgent } from "../../types.js";
|
|
7
|
+
import { builtinTools } from "../builtin-tools/index.js";
|
|
8
|
+
import { withIdentityPreamble } from "../workspace.js";
|
|
9
|
+
import {
|
|
10
|
+
isValidModelSetting,
|
|
11
|
+
loadAgentConfig,
|
|
12
|
+
resolveAgentCwd,
|
|
13
|
+
resolveArchitecture,
|
|
14
|
+
resolveConcurrency,
|
|
15
|
+
resolveHosting,
|
|
16
|
+
resolveLocalCwd,
|
|
17
|
+
runtimeArchitectureCompatibilityError,
|
|
18
|
+
} from "./agent-config.js";
|
|
19
|
+
import {
|
|
20
|
+
loadConnections,
|
|
21
|
+
loadHostConnections,
|
|
22
|
+
resolveMcpConnectionsDir,
|
|
23
|
+
} from "./connections.js";
|
|
24
|
+
import { type DiscoveryContext, displayPath } from "./context.js";
|
|
25
|
+
import { appendExtensions } from "./extensions.js";
|
|
26
|
+
import { findModuleFile, isDirectory, sortedEntries } from "./fs.js";
|
|
27
|
+
import { loadInstructions } from "./instructions.js";
|
|
28
|
+
import { validateName } from "./names.js";
|
|
29
|
+
import {
|
|
30
|
+
checkGrokBotRuntimeLimitations,
|
|
31
|
+
resolveRuntime,
|
|
32
|
+
warnCloudRuntimeLimitations,
|
|
33
|
+
} from "./runtime.js";
|
|
34
|
+
import { loadSeedFiles } from "./seed-files.js";
|
|
35
|
+
import { loadSkills } from "./skills.js";
|
|
36
|
+
import { subagent } from "./subagent.js";
|
|
37
|
+
import { appendBuiltinTools, loadTools } from "./tools.js";
|
|
38
|
+
|
|
39
|
+
export async function loadAgent(
|
|
40
|
+
ctx: DiscoveryContext,
|
|
41
|
+
agentDir: string,
|
|
42
|
+
options: { name: string; isRoot: boolean }
|
|
43
|
+
): Promise<ResolvedAgent> {
|
|
44
|
+
const config = await loadAgentConfig(ctx, agentDir, options.isRoot);
|
|
45
|
+
const name = config?.name ?? options.name;
|
|
46
|
+
const authoredInstructions = await loadInstructions(
|
|
47
|
+
ctx,
|
|
48
|
+
agentDir,
|
|
49
|
+
config,
|
|
50
|
+
options.isRoot
|
|
51
|
+
);
|
|
52
|
+
// Subagents run as Cursor SDK custom subagents (prompt + description +
|
|
53
|
+
// model); their other slots are inert today, so don't load them — just
|
|
54
|
+
// warn that they exist.
|
|
55
|
+
if (!options.isRoot) {
|
|
56
|
+
await warnUnsupportedSubagentSlots(ctx, agentDir);
|
|
57
|
+
if (config?.builtinTools !== undefined) {
|
|
58
|
+
ctx.diagnostics.push({
|
|
59
|
+
severity: "warning",
|
|
60
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
61
|
+
message: "builtinTools is not supported on subagents; ignoring.",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (config?.tools !== undefined) {
|
|
65
|
+
ctx.diagnostics.push({
|
|
66
|
+
severity: "warning",
|
|
67
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
68
|
+
message:
|
|
69
|
+
"tools is not supported on subagents (they keep the harness task-tool toolset); ignoring.",
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (config?.architecture !== undefined) {
|
|
73
|
+
ctx.diagnostics.push({
|
|
74
|
+
severity: "warning",
|
|
75
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
76
|
+
message: "architecture is not supported on subagents; ignoring.",
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const artifactsPath = await findModuleFile(agentDir, "artifacts");
|
|
80
|
+
if (artifactsPath !== undefined) {
|
|
81
|
+
ctx.diagnostics.push({
|
|
82
|
+
severity: "warning",
|
|
83
|
+
path: displayPath(ctx, artifactsPath),
|
|
84
|
+
message: "artifacts are not supported on subagents; ignoring.",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return subagent(name, {
|
|
88
|
+
description: config?.description,
|
|
89
|
+
model: config?.model,
|
|
90
|
+
prompt: authoredInstructions,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Root agents without authored instructions stay undefined (diagnostic
|
|
95
|
+
// already recorded).
|
|
96
|
+
const instructions =
|
|
97
|
+
authoredInstructions === undefined
|
|
98
|
+
? undefined
|
|
99
|
+
: withIdentityPreamble(name, authoredInstructions);
|
|
100
|
+
const tools = await loadTools(ctx, join(agentDir, "tools"));
|
|
101
|
+
const skills = await loadSkills(ctx, join(agentDir, "skills"));
|
|
102
|
+
const connections = await loadConnections(
|
|
103
|
+
ctx,
|
|
104
|
+
await resolveMcpConnectionsDir(ctx, agentDir)
|
|
105
|
+
);
|
|
106
|
+
const subagents = await loadSubagents(ctx, join(agentDir, "subagents"));
|
|
107
|
+
const extensions = await appendExtensions(ctx, join(agentDir, "extensions"), {
|
|
108
|
+
tools,
|
|
109
|
+
skills,
|
|
110
|
+
connections,
|
|
111
|
+
subagents,
|
|
112
|
+
});
|
|
113
|
+
const hostConnections = await loadHostConnections(ctx, agentDir, connections);
|
|
114
|
+
const seedFiles = await loadSeedFiles(ctx, agentDir);
|
|
115
|
+
const runtime = resolveRuntime(ctx, agentDir, config?.runtime);
|
|
116
|
+
// Keep authored `cloud` even when default runtime is local — per-session
|
|
117
|
+
// `send({ cloud })` merges it under cloudOverride for handoff sessions.
|
|
118
|
+
const cloud = config?.cloud;
|
|
119
|
+
const localWorkspaceDir = resolveAgentCwd(ctx, config?.local?.workspaceDir);
|
|
120
|
+
const localCwd = await resolveLocalCwd(
|
|
121
|
+
ctx,
|
|
122
|
+
config?.local?.cwd,
|
|
123
|
+
config?.local?.workspaceDir
|
|
124
|
+
);
|
|
125
|
+
const localSandbox = config?.local?.sandbox === true;
|
|
126
|
+
// Built-in tool allowlist (top-level `tools`). `[]` is meaningful (no
|
|
127
|
+
// native built-in tools), so presence is keyed on the field, not on
|
|
128
|
+
// emptiness. "mcp" is always granted alongside a configured allowlist:
|
|
129
|
+
// it is transport, not capability — this kit's own server tools ride the
|
|
130
|
+
// SDK custom-tool MCP path, so omitting it silently breaks
|
|
131
|
+
// `agent/tools/`, and what MCP actually exposes stays controlled by the
|
|
132
|
+
// second layer (authored tools, mcp-connections, the harness cwd's
|
|
133
|
+
// ambient config).
|
|
134
|
+
const authoredAllowlist = config?.tools;
|
|
135
|
+
const allowedTools =
|
|
136
|
+
authoredAllowlist === undefined || authoredAllowlist.includes("mcp")
|
|
137
|
+
? authoredAllowlist
|
|
138
|
+
: [...authoredAllowlist, "mcp" as const];
|
|
139
|
+
// The allowlist states runtime-agnostic intent, but only the local
|
|
140
|
+
// harness can enforce it (the Cursor SDK rejects tool restrictions on
|
|
141
|
+
// cloud agents, and the Grok Bot harness has its own fixed toolset) — a
|
|
142
|
+
// non-local agent that declares one must fail at serve start, never run
|
|
143
|
+
// unrestricted. (Hybrid per-send cloud sessions fail closed in the
|
|
144
|
+
// session engine.)
|
|
145
|
+
if (allowedTools !== undefined && runtime !== "local") {
|
|
146
|
+
ctx.diagnostics.push({
|
|
147
|
+
severity: "error",
|
|
148
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
149
|
+
message: `tools cannot be enforced on runtime: "${runtime}". Remove \`tools\` or run the agent on the local runtime.`,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
// Per-session connection features (defineConnection auth/advertiseTools)
|
|
153
|
+
// only run on local turns: advertised tools are in-process server tools,
|
|
154
|
+
// and per-session headers cannot reach a cloud VM's MCP config. A
|
|
155
|
+
// non-local agent that declares them must fail at serve start — never
|
|
156
|
+
// run without the connection's tools or identity. (Hybrid per-send
|
|
157
|
+
// cloud sessions fail closed in the session engine.)
|
|
158
|
+
const perSessionConnection = connections.find(
|
|
159
|
+
(connection) =>
|
|
160
|
+
connection.advertiseTools === true || connection.auth !== undefined
|
|
161
|
+
);
|
|
162
|
+
if (perSessionConnection !== undefined && runtime !== "local") {
|
|
163
|
+
ctx.diagnostics.push({
|
|
164
|
+
severity: "error",
|
|
165
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
166
|
+
message: `MCP connection "${perSessionConnection.name}" uses advertiseTools/auth, which only run on runtime: "local". Remove them or run the agent on the local runtime.`,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
// `execution: "agent"` tool scripts run through the shell tool. Shell is
|
|
170
|
+
// a real capability, so it is never injected — but an allowlist that
|
|
171
|
+
// strands authored scripts deserves a loud diagnostic, not silence.
|
|
172
|
+
if (
|
|
173
|
+
allowedTools !== undefined &&
|
|
174
|
+
!allowedTools.includes("shell") &&
|
|
175
|
+
tools.some((tool) => tool.execution === "agent")
|
|
176
|
+
) {
|
|
177
|
+
ctx.diagnostics.push({
|
|
178
|
+
severity: "warning",
|
|
179
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
180
|
+
message:
|
|
181
|
+
'`tools` omits "shell" but this agent has execution: "agent" tools, which run as shell scripts; the model will not be able to run them.',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (localCwd !== undefined && localWorkspaceDir !== undefined) {
|
|
185
|
+
ctx.diagnostics.push({
|
|
186
|
+
severity: "warning",
|
|
187
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
188
|
+
message:
|
|
189
|
+
"local.workspaceDir pins every session to one directory, so local.cwd is unused. Drop one of them.",
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const local =
|
|
193
|
+
localCwd === undefined && localWorkspaceDir === undefined && !localSandbox
|
|
194
|
+
? undefined
|
|
195
|
+
: {
|
|
196
|
+
cwd: localCwd,
|
|
197
|
+
workspaceDir: localWorkspaceDir,
|
|
198
|
+
sandbox: localSandbox,
|
|
199
|
+
};
|
|
200
|
+
const hosting = resolveHosting(ctx, agentDir, config?.hosting);
|
|
201
|
+
const concurrency = resolveConcurrency(ctx, agentDir, config?.concurrency);
|
|
202
|
+
const architecture = resolveArchitecture(ctx, agentDir, config?.architecture);
|
|
203
|
+
const runtimeArchitectureError = runtimeArchitectureCompatibilityError({
|
|
204
|
+
runtime,
|
|
205
|
+
architecture,
|
|
206
|
+
});
|
|
207
|
+
if (runtimeArchitectureError !== undefined) {
|
|
208
|
+
ctx.diagnostics.push({
|
|
209
|
+
severity: "error",
|
|
210
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
211
|
+
message: runtimeArchitectureError,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (runtime === "cloud") {
|
|
216
|
+
warnCloudRuntimeLimitations(ctx, agentDir, {
|
|
217
|
+
agentTools: tools.filter((tool) => tool.execution === "agent").length,
|
|
218
|
+
skills: skills.length,
|
|
219
|
+
seedFiles: seedFiles.length,
|
|
220
|
+
hasCloudOptions: cloud !== undefined,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
appendBuiltinTools(ctx, agentDir, tools, config?.builtinTools);
|
|
224
|
+
|
|
225
|
+
// After appendBuiltinTools so opted-in built-ins (server-executed) count.
|
|
226
|
+
if (runtime === "grokbot") {
|
|
227
|
+
checkGrokBotRuntimeLimitations(ctx, agentDir, {
|
|
228
|
+
serverTools: tools.filter((tool) => tool.execution === "server").length,
|
|
229
|
+
agentTools: tools.filter((tool) => tool.execution === "agent").length,
|
|
230
|
+
skills: skills.length,
|
|
231
|
+
seedFiles: seedFiles.length,
|
|
232
|
+
connections: connections.length + hostConnections.length,
|
|
233
|
+
subagents: subagents.length,
|
|
234
|
+
hasCloudOptions: cloud !== undefined,
|
|
235
|
+
hasLocalSandbox: localSandbox,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
return {
|
|
240
|
+
name,
|
|
241
|
+
description: config?.description,
|
|
242
|
+
// Root agents always get a concrete model: authored value or DEFAULT_MODEL.
|
|
243
|
+
model: isValidModelSetting(config?.model) ? config.model : DEFAULT_MODEL,
|
|
244
|
+
instructions,
|
|
245
|
+
runtime,
|
|
246
|
+
cloud,
|
|
247
|
+
local,
|
|
248
|
+
...(allowedTools === undefined ? {} : { allowedTools }),
|
|
249
|
+
hosting,
|
|
250
|
+
concurrency,
|
|
251
|
+
...(architecture === undefined ? {} : { architecture }),
|
|
252
|
+
tools,
|
|
253
|
+
skills,
|
|
254
|
+
extensions,
|
|
255
|
+
connections,
|
|
256
|
+
hostConnections,
|
|
257
|
+
subagents,
|
|
258
|
+
seedFiles,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
async function loadSubagents(
|
|
263
|
+
ctx: DiscoveryContext,
|
|
264
|
+
subagentsDir: string
|
|
265
|
+
): Promise<ResolvedAgent[]> {
|
|
266
|
+
if (!(await isDirectory(subagentsDir))) {
|
|
267
|
+
return [];
|
|
268
|
+
}
|
|
269
|
+
const subagents: ResolvedAgent[] = [];
|
|
270
|
+
for (const entry of await sortedEntries(subagentsDir)) {
|
|
271
|
+
if (!entry.isDirectory()) {
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
const subagentDir = join(subagentsDir, entry.name);
|
|
275
|
+
if (!validateName(ctx, "subagent", entry.name, subagentDir)) {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
subagents.push(
|
|
279
|
+
await loadAgent(ctx, subagentDir, { name: entry.name, isRoot: false })
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
return subagents;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
async function warnUnsupportedSubagentSlots(
|
|
286
|
+
ctx: DiscoveryContext,
|
|
287
|
+
subagentDir: string
|
|
288
|
+
): Promise<void> {
|
|
289
|
+
const unsupported = [
|
|
290
|
+
["tools", "tools"],
|
|
291
|
+
["skills", "skills"],
|
|
292
|
+
["extensions", "extensions"],
|
|
293
|
+
["mcp-connections", "MCP connections"],
|
|
294
|
+
["host-connections", "host MCP connections"],
|
|
295
|
+
["connections", "MCP connections"],
|
|
296
|
+
["subagents", "nested subagents"],
|
|
297
|
+
["channels", "channels"],
|
|
298
|
+
["schedules", "schedules"],
|
|
299
|
+
["hooks", "hooks"],
|
|
300
|
+
["sandbox", "sandbox files"],
|
|
301
|
+
] as const;
|
|
302
|
+
for (const [slot, label] of unsupported) {
|
|
303
|
+
if (await isDirectory(join(subagentDir, slot))) {
|
|
304
|
+
ctx.diagnostics.push({
|
|
305
|
+
severity: "warning",
|
|
306
|
+
path: displayPath(ctx, join(subagentDir, slot)),
|
|
307
|
+
message: `Subagent ${label} are not supported on the Cursor harness yet; the subagent runs with the parent's execution surface. Ignoring.`,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
export async function warnUnknownSlots(
|
|
314
|
+
ctx: DiscoveryContext,
|
|
315
|
+
agentDir: string
|
|
316
|
+
): Promise<void> {
|
|
317
|
+
const known = new Set([
|
|
318
|
+
"agent",
|
|
319
|
+
"instructions",
|
|
320
|
+
"tools",
|
|
321
|
+
"skills",
|
|
322
|
+
"extensions",
|
|
323
|
+
"mcp-connections",
|
|
324
|
+
"host-connections",
|
|
325
|
+
// Legacy slot name; resolveMcpConnectionsDir warns and still loads it.
|
|
326
|
+
"connections",
|
|
327
|
+
"subagents",
|
|
328
|
+
"channels",
|
|
329
|
+
"schedules",
|
|
330
|
+
"hooks",
|
|
331
|
+
"ab",
|
|
332
|
+
"sandbox",
|
|
333
|
+
"lib",
|
|
334
|
+
// Vite playground custom tool chips (agent/playground/tools).
|
|
335
|
+
"playground",
|
|
336
|
+
]);
|
|
337
|
+
for (const entry of await sortedEntries(agentDir)) {
|
|
338
|
+
if (!entry.isDirectory() || entry.name.startsWith(".")) {
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
if (entry.name === "node_modules" || known.has(entry.name)) {
|
|
342
|
+
continue;
|
|
343
|
+
}
|
|
344
|
+
// Footgun: evals live at project-root `evals/`, not under `agent/`.
|
|
345
|
+
if (entry.name === "evals") {
|
|
346
|
+
ctx.diagnostics.push({
|
|
347
|
+
severity: "warning",
|
|
348
|
+
path: displayPath(ctx, join(agentDir, entry.name)),
|
|
349
|
+
message:
|
|
350
|
+
'Directory "evals" under agent/ is ignored — put defineEval files at project-root evals/ instead.',
|
|
351
|
+
});
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
ctx.diagnostics.push({
|
|
355
|
+
severity: "warning",
|
|
356
|
+
path: displayPath(ctx, join(agentDir, entry.name)),
|
|
357
|
+
message: `Unrecognized directory "${entry.name}" under agent/ (not an authored slot; use lib/ for shared code).`,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent/channels/*.ts`: HTTP surfaces beyond the session API.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { httpChannel } from "../../channels.js";
|
|
7
|
+
import type {
|
|
8
|
+
ChannelDefinition,
|
|
9
|
+
DiscoveredChannel,
|
|
10
|
+
HttpChannelDefinition,
|
|
11
|
+
} from "../../types.js";
|
|
12
|
+
import { getDefinitionKind } from "../brand.js";
|
|
13
|
+
import { type DiscoveryContext, displayPath, errorMessage } from "./context.js";
|
|
14
|
+
import { isDirectory, isModuleFile, moduleStem, sortedEntries } from "./fs.js";
|
|
15
|
+
import { NAME_PATTERN } from "./names.js";
|
|
16
|
+
|
|
17
|
+
export async function loadChannels(
|
|
18
|
+
ctx: DiscoveryContext,
|
|
19
|
+
channelsDir: string
|
|
20
|
+
): Promise<{
|
|
21
|
+
channels: DiscoveredChannel[];
|
|
22
|
+
httpChannelDefinition: HttpChannelDefinition | undefined;
|
|
23
|
+
}> {
|
|
24
|
+
const channels: DiscoveredChannel[] = [];
|
|
25
|
+
let httpChannelDefinition: HttpChannelDefinition | undefined;
|
|
26
|
+
if (!(await isDirectory(channelsDir))) {
|
|
27
|
+
return { channels, httpChannelDefinition };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
for (const entry of await sortedEntries(channelsDir)) {
|
|
31
|
+
const entryPath = join(channelsDir, entry.name);
|
|
32
|
+
if (!entry.isFile() || !isModuleFile(entry.name)) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const id = moduleStem(entry.name);
|
|
36
|
+
if (!NAME_PATTERN.test(id)) {
|
|
37
|
+
ctx.diagnostics.push({
|
|
38
|
+
severity: "error",
|
|
39
|
+
path: displayPath(ctx, entryPath),
|
|
40
|
+
message: `Channel id "${id}" must match ${NAME_PATTERN}.`,
|
|
41
|
+
});
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let mod: Record<string, unknown>;
|
|
46
|
+
try {
|
|
47
|
+
mod = await ctx.importModule(entryPath);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
ctx.diagnostics.push({
|
|
50
|
+
severity: "error",
|
|
51
|
+
path: displayPath(ctx, entryPath),
|
|
52
|
+
message: `Failed to load module: ${errorMessage(error)}`,
|
|
53
|
+
});
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const kind = getDefinitionKind(mod.default);
|
|
57
|
+
|
|
58
|
+
if (kind === "http-channel") {
|
|
59
|
+
if (id !== "http") {
|
|
60
|
+
ctx.diagnostics.push({
|
|
61
|
+
severity: "error",
|
|
62
|
+
path: displayPath(ctx, entryPath),
|
|
63
|
+
message:
|
|
64
|
+
"httpChannel() configures the built-in HTTP channel and must be authored at channels/http.ts.",
|
|
65
|
+
});
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
httpChannelDefinition = mod.default as HttpChannelDefinition;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (kind !== "channel") {
|
|
73
|
+
ctx.diagnostics.push({
|
|
74
|
+
severity: "error",
|
|
75
|
+
path: displayPath(ctx, entryPath),
|
|
76
|
+
message:
|
|
77
|
+
id === "http"
|
|
78
|
+
? "channels/http.ts must default-export httpChannel({ ... })."
|
|
79
|
+
: "Channel modules must default-export defineChannel({ ... }).",
|
|
80
|
+
});
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (id === "http") {
|
|
84
|
+
ctx.diagnostics.push({
|
|
85
|
+
severity: "error",
|
|
86
|
+
path: displayPath(ctx, entryPath),
|
|
87
|
+
message:
|
|
88
|
+
"The channel id `http` is reserved for the built-in HTTP channel; use httpChannel() to configure it.",
|
|
89
|
+
});
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const definition = mod.default as ChannelDefinition;
|
|
93
|
+
for (const notice of definition.meta?.deprecations ?? []) {
|
|
94
|
+
ctx.diagnostics.push({
|
|
95
|
+
severity: "warning",
|
|
96
|
+
path: displayPath(ctx, entryPath),
|
|
97
|
+
message: notice,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
channels.push({ id, definition });
|
|
101
|
+
}
|
|
102
|
+
return { channels, httpChannelDefinition };
|
|
103
|
+
}
|