@cursor/bdk 0.2.11 → 0.2.12
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/dist/bin/agent-serve.js +28 -26
- package/dist/channels/bitbucket/api.js +8 -8
- package/dist/channels/bitbucket/binding.js +4 -4
- package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +1 -1
- package/dist/channels/bitbucket/checks.js +1 -1
- package/dist/channels/bitbucket/cursor-account.js +1 -1
- package/dist/channels/bitbucket/events.js +1 -1
- package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
- package/dist/channels/checks.js +2 -2
- package/dist/channels/deployments/deployments-channel.js +1 -1
- package/dist/channels/github/cursor-account.js +3 -3
- package/dist/channels/github/defaults.js +3 -3
- package/dist/channels/github/events.js +1 -1
- package/dist/channels/github/forward.js +8 -8
- package/dist/channels/github/github-channel.js +2 -2
- package/dist/channels/gitlab/binding.js +4 -4
- package/dist/channels/gitlab/checks.js +1 -1
- package/dist/channels/gitlab/cursor-account.js +1 -1
- package/dist/channels/gitlab/events.js +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +1 -1
- package/dist/channels/gitlab/gitlab-webhook.js +1 -1
- package/dist/channels/gitlab/replay.js +2 -2
- package/dist/channels/origin/binding.js +3 -3
- package/dist/channels/origin/checks.js +1 -1
- package/dist/channels/origin/cursor-account.js +1 -1
- package/dist/channels/origin/events.js +1 -1
- package/dist/channels/origin/origin-channel.js +1 -1
- package/dist/channels/origin/origin-webhook.js +2 -2
- package/dist/channels/slack/agentic-delivery.js +3 -3
- package/dist/channels/slack/agentic-signals.js +1 -1
- package/dist/channels/slack/api.js +5 -5
- package/dist/channels/slack/approvals.js +1 -1
- package/dist/channels/slack/attachments.js +3 -3
- package/dist/channels/slack/blocks.js +3 -3
- package/dist/channels/slack/bot-mentions.js +4 -4
- package/dist/channels/slack/channel-watch.js +4 -4
- package/dist/channels/slack/cli-project.js +3 -3
- package/dist/channels/slack/dispatch.js +1 -1
- package/dist/channels/slack/doctor.js +1 -1
- package/dist/channels/slack/eval-directive.js +1 -1
- package/dist/channels/slack/footer.js +1 -1
- package/dist/channels/slack/interactive.js +2 -2
- package/dist/channels/slack/log.d.ts.map +1 -1
- package/dist/channels/slack/log.js +1 -1
- package/dist/channels/slack/manifest.js +1 -1
- package/dist/channels/slack/nudge-carrier.js +1 -1
- package/dist/channels/slack/nudge-store.js +2 -2
- package/dist/channels/slack/recording-sink.js +6 -6
- package/dist/channels/slack/reply-options.js +6 -6
- package/dist/channels/slack/self-identity.d.ts +7 -4
- package/dist/channels/slack/self-identity.d.ts.map +1 -1
- package/dist/channels/slack/self-identity.js +17 -8
- package/dist/channels/slack/sender-name.d.ts.map +1 -1
- package/dist/channels/slack/sender-name.js +2 -6
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/slack-channel.js +2 -2
- package/dist/channels/slack/socket-mode.js +2 -2
- package/dist/channels/slack/thread-context.js +8 -8
- package/dist/channels/slack/tool-cards.js +1 -1
- package/dist/channels/slack/user-info.d.ts +2 -1
- package/dist/channels/slack/user-info.d.ts.map +1 -1
- package/dist/channels/slack/user-info.js +16 -1
- package/dist/channels.js +1 -1
- package/dist/docs/404.html +3 -3
- package/dist/docs/assets/{app.DXI7bwox.js → app.CKta5zX1.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.DtlCe4t6.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BrbO5mEe.js → VPLocalSearchBox.4vRM3EDG.js} +2 -2
- package/dist/docs/assets/chunks/{arc.BOG1yms8.js → arc.CofbA8tA.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C0hsMZnZ.js → architectureDiagram-Q4EWVU46.Mt2UV5M-.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.H044KjKs.js → baseUniq.C_W0Aqp4.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BsRW6GoB.js → blockDiagram-DXYQGD6D.dAc4goE-.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.B9HV5PFR.js → c4Diagram-AHTNJAMY.dnbRC3Dm.js} +1 -1
- package/dist/docs/assets/chunks/channel.DpljPUVU.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CPoT_ajl.js → chunk-4BX2VUAB.B42ltSTd.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DZBwWuCL.js → chunk-4TB4RGXK.2GbAul_E.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.CZ3yTiyq.js → chunk-55IACEB6.pjzY-v-B.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.6DfvHSd8.js → chunk-EDXVE4YY.BB1GXLj2.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CpBj8HfK.js → chunk-FMBD7UC4.B2WxZkoA.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BdKo8YqS.js → chunk-OYMX7WX6.BMvb2w73.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnXNyxJx.js → chunk-QZHKN3VN.Bmu_2lNr.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cg1OcF8G.js → chunk-YZCP3GAM.Cth65EaC.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DFNHq2OM.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DFNHq2OM.js +1 -0
- package/dist/docs/assets/chunks/clone.DssygCzX.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.1SP8al9c.js → cose-bilkent-S5V4N54A.CrfA7Iw_.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DS1L6hJt.js → dagre-KV5264BT.PCD6KQDb.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.ChsausbG.js → diagram-5BDNPKRD.CGNlYlP1.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.3XsptNWj.js → diagram-G4DWMVQ6.C0cvryPD.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DPA9Dk_P.js → diagram-MMDJMWI5.DHlkZHNV.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.BVswXWrB.js → diagram-TYMM5635.DDGqH_4B.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BSak5OSP.js → erDiagram-SMLLAGMA.4gOY_C3v.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CQgN4TTz.js → flowDiagram-DWJPFMVM.8i7zsxuh.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.GrT0kA4a.js → ganttDiagram-T4ZO3ILL.BEKHYdM-.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CdS7Ucll.js → gitGraphDiagram-UUTBAWPF.ACzeLGiB.js} +1 -1
- package/dist/docs/assets/chunks/{graph.BVqKRmRo.js → graph.08C3hS6m.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.C3C9FRto.js → infoDiagram-42DDH7IO.D8R9obOH.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js → ishikawaDiagram-UXIWVN3A.CmgYpCWL.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CaHMfK4b.js → journeyDiagram-VCZTEJTY.DUzjGfoZ.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CjhIUwcA.js → kanban-definition-6JOO6SKY.DbcW2iZ0.js} +1 -1
- package/dist/docs/assets/chunks/{layout.CGU3gfSf.js → layout.BaDEpJzu.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DaihpW_n.js → linear.B_zRQgCU.js} +1 -1
- package/dist/docs/assets/chunks/{min.BS-j8kHQ.js → min.BYscCdSu.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BVJ1Bbnk.js → mindmap-definition-QFDTVHPH.Ggu0jg86.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.Cz1WIv9r.js → pieDiagram-DEJITSTG.D_q4SVDT.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DKLFxcjy.js → quadrantDiagram-34T5L4WZ.D3zGj5ok.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.BHegiK7x.js → requirementDiagram-MS252O5E.DVTg7zr2.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DYkY6yPc.js → sankeyDiagram-XADWPNL6.D3X8jm57.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DYQ1QUrI.js → sequenceDiagram-FGHM5R23.Dpjai9YP.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.Iru8BsFo.js → stateDiagram-FHFEXIEX.D_AbQBuP.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CWKWRxRx.js +1 -0
- package/dist/docs/assets/chunks/{theme.DaplWQhQ.js → theme.BcgOnbZ6.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BwFA8hiX.js → timeline-definition-GMOUNBTQ.Cp3DKBe2.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZ60W1C_.js → vennDiagram-DHZGUBPP.Bcvg-Aqu.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.CCpdcUSq.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.B69D2r8-.js → wardleyDiagram-NUSXRM2D.L0yehCc5.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CLPZEIU9.js → xychartDiagram-5P7HB3ND.Cw8-tJmw.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Bljpve-y.js → reference_connections.md.DLrgAd5f.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.js → reference_hooks.md.B-eGa2km.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.lean.js → reference_hooks.md.B-eGa2km.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.js → reference_sessions.md.CyM7ARz1.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.v3SXVSs_.js → reference_tools.md.DzIY9JzY.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.v3SXVSs_.lean.js → reference_tools.md.DzIY9JzY.lean.js} +1 -1
- package/dist/docs/assets/{style.C130MVnH.css → style.Dwls12uf.css} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/evals.html +37 -37
- package/dist/docs/guides/agent-to-agent.html +37 -37
- package/dist/docs/guides/bitbucket.html +37 -37
- package/dist/docs/guides/cloud-agents.html +37 -37
- package/dist/docs/guides/convert-automation.html +37 -37
- package/dist/docs/guides/github.html +37 -37
- package/dist/docs/guides/gitlab.html +37 -37
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/hooks.html +37 -37
- package/dist/docs/guides/improve.html +37 -37
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/mcp-oauth.html +37 -37
- package/dist/docs/guides/migrate.html +37 -37
- package/dist/docs/guides/opentelemetry.html +37 -37
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/webhooks.html +37 -37
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +37 -37
- package/dist/docs/index.html +37 -37
- package/dist/docs/llms-full.txt +15 -2
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/channels.html +37 -37
- package/dist/docs/reference/cli.html +37 -37
- package/dist/docs/reference/connections.html +39 -39
- package/dist/docs/reference/connections.md +2 -1
- package/dist/docs/reference/evals.html +37 -37
- package/dist/docs/reference/extensions.html +37 -37
- package/dist/docs/reference/hooks.html +39 -39
- package/dist/docs/reference/hooks.md +1 -0
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +37 -37
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +37 -37
- package/dist/docs/reference/sessions.html +37 -37
- package/dist/docs/reference/sessions.md +1 -1
- package/dist/docs/reference/skills.html +37 -37
- package/dist/docs/reference/subagents.html +37 -37
- package/dist/docs/reference/tools.html +39 -39
- package/dist/docs/reference/tools.md +11 -0
- package/dist/docs/templates/agentic-owners.html +37 -37
- package/dist/docs/templates/grokbot-agents.html +37 -37
- package/dist/docs/templates/security-reviewer.html +37 -37
- package/dist/docs/templates/thermo-quality-review.html +37 -37
- package/dist/docs/templates/thermo-review.html +37 -37
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/evals/assertions.d.ts.map +1 -1
- package/dist/evals/assertions.js +21 -19
- package/dist/evals/expect.js +1 -1
- package/dist/evals/judge.js +1 -1
- package/dist/evals/reporters.js +8 -8
- package/dist/evals/run-facts.js +2 -2
- package/dist/evals.js +6 -6
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +16 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +44 -3
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts +23 -0
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts.map +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/launch-agent.js +32 -0
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +2 -2
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -2
- package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/watch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -8
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +4 -4
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
- package/dist/extensions/improve/skills/yourself.js +1 -1
- package/dist/extensions/jev/extension.js +2 -2
- package/dist/extensions/jev/tools/evaluate.js +1 -1
- package/dist/extensions/slack-communication/tools/react.js +1 -1
- package/dist/files-backends/cursor-hosted.js +8 -8
- package/dist/files-backends/local-fs.js +1 -1
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +15 -15
- package/dist/internal/advertise-tools.d.ts +3 -2
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +11 -9
- package/dist/internal/approval-gate.js +1 -1
- package/dist/internal/artifacts-store.js +13 -13
- package/dist/internal/as-of.js +2 -2
- package/dist/internal/authored-alias-hooks.js +1 -1
- package/dist/internal/builtin-tools/reminders.js +2 -2
- package/dist/internal/chat-client.js +5 -5
- package/dist/internal/cli-ax.js +14 -14
- package/dist/internal/cli-bitbucket.js +10 -10
- package/dist/internal/cli-convert-automation.js +2 -2
- package/dist/internal/cli-cursor.js +2 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +40 -40
- package/dist/internal/cli-docs.js +5 -5
- package/dist/internal/cli-github.js +15 -15
- package/dist/internal/cli-gitlab.js +10 -10
- package/dist/internal/cli-images.js +16 -16
- package/dist/internal/cli-manifest.js +1 -1
- package/dist/internal/cli-mcp-oauth.js +5 -5
- package/dist/internal/cli-mcp.js +3 -3
- package/dist/internal/cli-migrate.js +1 -1
- package/dist/internal/cli-skills.js +2 -2
- package/dist/internal/cli-slack.js +5 -5
- package/dist/internal/cloud-turn-cost.js +1 -1
- package/dist/internal/continuation-identity.js +6 -6
- package/dist/internal/conversation-mirror.js +5 -5
- package/dist/internal/convert-automation/convert-workflow.js +24 -24
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +20 -20
- package/dist/internal/cursor/backend-client.js +6 -6
- package/dist/internal/cursor/credentials.js +1 -1
- package/dist/internal/cursor/store-api-client.js +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +9 -9
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +9 -9
- package/dist/internal/cursor-event-relay.js +10 -10
- package/dist/internal/cursor-relay-core.js +2 -2
- package/dist/internal/deploy-manifest.js +10 -10
- package/dist/internal/discovery/agent-config.js +2 -2
- package/dist/internal/discovery/agent.js +6 -6
- package/dist/internal/discovery/connections.js +5 -5
- package/dist/internal/discovery/cursor-plugin.js +12 -12
- package/dist/internal/discovery/extension-overlay.js +3 -3
- package/dist/internal/discovery/extensions.js +6 -6
- package/dist/internal/discovery/info.js +9 -9
- package/dist/internal/discovery/instructions.js +1 -1
- package/dist/internal/discovery/project.js +3 -3
- package/dist/internal/discovery/services.js +1 -1
- package/dist/internal/discovery/tools.js +1 -1
- package/dist/internal/docs-site.js +2 -2
- package/dist/internal/env-file.js +1 -1
- package/dist/internal/eval-run-store.js +7 -7
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +14 -14
- package/dist/internal/eval-transport.js +1 -1
- package/dist/internal/evals-client.js +4 -4
- package/dist/internal/event-log.js +8 -8
- package/dist/internal/event-mapper.js +13 -13
- package/dist/internal/expected-delivery-failure.js +2 -2
- package/dist/internal/filesystem/format.js +2 -2
- package/dist/internal/filesystem/nearest.js +3 -3
- package/dist/internal/filesystem/scratch.js +3 -3
- package/dist/internal/filesystem/tools.js +6 -6
- package/dist/internal/filesystem/walk.d.ts.map +1 -1
- package/dist/internal/filesystem/walk.js +2 -2
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +6 -5
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +4 -2
- package/dist/internal/github-fanout.d.ts.map +1 -1
- package/dist/internal/github-fanout.js +3 -3
- package/dist/internal/guest-network.js +4 -4
- package/dist/internal/host-files.js +1 -1
- package/dist/internal/host-kv.js +2 -2
- package/dist/internal/hosted-catch-protocol.js +1 -1
- package/dist/internal/hosted-catch.js +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +14 -14
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +23 -9
- package/dist/internal/hosted-eval-cases.js +4 -4
- package/dist/internal/hosted-execution-diag.js +3 -3
- package/dist/internal/hosting.js +1 -1
- package/dist/internal/http-channel.js +1 -1
- package/dist/internal/http-control-plane-session.js +2 -2
- package/dist/internal/init-interview.js +7 -7
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +12 -12
- package/dist/internal/inline-stdio-mcp.js +2 -2
- package/dist/internal/install-cursor-skills.js +11 -11
- package/dist/internal/json-schema.js +1 -1
- package/dist/internal/local-control-plane.js +3 -3
- package/dist/internal/local-env.js +3 -3
- package/dist/internal/log-ring.js +1 -1
- package/dist/internal/logs-client.js +1 -1
- package/dist/internal/mcp-endpoint.js +8 -8
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +5 -5
- package/dist/internal/mcp-oauth-on-demand.js +3 -3
- package/dist/internal/mcp-oauth.js +5 -5
- package/dist/internal/net.js +2 -2
- package/dist/internal/otel/config.js +3 -3
- package/dist/internal/otel/runtime.js +13 -13
- package/dist/internal/peer-connections.js +2 -2
- package/dist/internal/persistent-stage-log-mirror.d.ts +57 -0
- package/dist/internal/persistent-stage-log-mirror.d.ts.map +1 -0
- package/dist/internal/persistent-stage-log-mirror.js +231 -0
- package/dist/internal/platform-schedule-sync.js +1 -1
- package/dist/internal/platform-timers.js +1 -1
- package/dist/internal/playground/static.js +2 -2
- package/dist/internal/playground/toolchain.js +2 -2
- package/dist/internal/playground-proxy.js +3 -3
- package/dist/internal/process-memory-telemetry.js +1 -1
- package/dist/internal/reminder-runner.d.ts +1 -1
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +14 -16
- package/dist/internal/reminder-store.js +1 -1
- package/dist/internal/resolved-connections.js +8 -8
- package/dist/internal/router.js +4 -4
- package/dist/internal/run-client.js +2 -2
- package/dist/internal/schedule-runner.js +6 -6
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +6 -6
- package/dist/internal/serve-restart.js +1 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +93 -72
- package/dist/internal/session-cost.js +3 -3
- package/dist/internal/session-engine.d.ts +8 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +183 -118
- package/dist/internal/session-live-publisher.d.ts +46 -0
- package/dist/internal/session-live-publisher.d.ts.map +1 -0
- package/dist/internal/session-live-publisher.js +352 -0
- package/dist/internal/session-run-log.js +6 -6
- package/dist/internal/sessions-client.js +3 -3
- package/dist/internal/skill-catalog.js +2 -2
- package/dist/internal/sleep.js +1 -1
- package/dist/internal/start-log-store.d.ts +5 -1
- package/dist/internal/start-log-store.d.ts.map +1 -1
- package/dist/internal/start-log-store.js +5 -3
- package/dist/internal/storage-coordinator.js +12 -12
- package/dist/internal/store-api-protocol.d.ts +51 -0
- package/dist/internal/store-api-protocol.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.js +39 -2
- package/dist/internal/store-mirror.js +4 -4
- package/dist/internal/stream-progress.d.ts.map +1 -1
- package/dist/internal/stream-progress.js +4 -0
- package/dist/internal/terminal-style.js +2 -2
- package/dist/internal/tool-call-retry.d.ts +87 -0
- package/dist/internal/tool-call-retry.d.ts.map +1 -0
- package/dist/internal/tool-call-retry.js +387 -0
- package/dist/internal/tool-result.js +3 -3
- package/dist/internal/trajectory.js +7 -7
- package/dist/internal/turn-governor.js +2 -2
- package/dist/internal/turn-outbox.js +1 -1
- package/dist/internal/update-check.d.ts.map +1 -1
- package/dist/internal/update-check.js +4 -2
- package/dist/internal/v2-hosting.d.ts +6 -0
- package/dist/internal/v2-hosting.d.ts.map +1 -1
- package/dist/internal/v2-hosting.js +7 -1
- package/dist/internal/workspace.js +4 -4
- package/dist/kv/memory-kv.js +3 -3
- package/dist/playground/assets/{index-Be0-1hw2.js → index-HN5lOuAX.js} +42 -42
- package/dist/playground/assets/index-JY1wKCMg.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/prompt.js +1 -1
- package/dist/storage-backends/cursor-hosted-v2.js +2 -2
- package/dist/storage-backends/file-kv.js +7 -7
- package/dist/storage-protocol.d.ts +7 -0
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +7 -0
- package/dist/storage.js +3 -3
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/docs/reference/connections.md +2 -1
- package/docs/reference/hooks.md +1 -0
- package/docs/reference/sessions.md +1 -1
- package/docs/reference/tools.md +11 -0
- package/package.json +6 -6
- package/templates/agentic-owners/bot/channels/github.ts +2 -2
- package/templates/agentic-owners/bot/lib/github.ts +7 -5
- package/templates/agentic-owners/bot/lib/owners/decision.ts +9 -9
- package/templates/agentic-owners/bot/lib/owners/handles.ts +2 -2
- package/templates/agentic-owners/bot/lib/owners/match.ts +5 -3
- package/templates/agentic-owners/bot/lib/owners/matching.ts +1 -1
- package/templates/agentic-owners/bot/lib/owners/parse.ts +4 -4
- package/templates/agentic-owners/bot/lib/owners/prompt.ts +1 -1
- package/templates/agentic-owners/bot/lib/review.ts +18 -17
- package/templates/agentic-owners/evals/owners.eval.ts +2 -2
- package/templates/agents-md/bot/lib/collect.ts +6 -6
- package/templates/agents-md/bot/lib/config.ts +1 -1
- package/templates/agents-md/bot/tools/apply_agents.ts +4 -4
- package/templates/code-wiki/bot/channels/github.ts +3 -3
- package/templates/code-wiki/bot/lib/repos.ts +1 -1
- package/templates/code-wiki/bot/tools/apply_wiki.ts +2 -2
- package/templates/demo/bot/lib/collect.ts +1 -1
- package/templates/demo/bot/lib/repos.ts +1 -1
- package/templates/demo/bot/tools/record_demo.ts +1 -1
- package/templates/pr-autofixer/bot/channels/github.ts +2 -2
- package/templates/pr-autofixer/bot/lib/merge-watch.ts +2 -2
- package/templates/pr-autofixer/bot/lib/repos.ts +2 -2
- package/templates/pr-autofixer/bot/lib/webhook-routing.ts +1 -1
- package/templates/security-help/bot/lib/repos.ts +1 -1
- package/templates/security-reviewer/bot/lib/repos.ts +1 -1
- package/templates/triage/bot/lib/actuate.ts +15 -15
- package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +0 -1
- package/dist/docs/assets/chunks/channel.CBwrU9rP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +0 -1
- package/dist/docs/assets/chunks/clone.BTvFyY1a.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +0 -162
- package/dist/playground/assets/index-Clz6uHj9.css +0 -1
- /package/dist/docs/assets/{reference_connections.md.Bljpve-y.lean.js → reference_connections.md.DLrgAd5f.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.lean.js → reference_sessions.md.CyM7ARz1.lean.js} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { metrics } from "@opentelemetry/api";
|
|
2
3
|
import { packageVersion } from "./distribution.js";
|
|
3
4
|
import { dispatchOutcome } from "./channel-dispatch.js";
|
|
4
5
|
import { consumeHostedBoundSecrets, } from "./cursor/hosted-bound-secrets.js";
|
|
@@ -227,7 +228,7 @@ async function runAdmission(input, adapter) {
|
|
|
227
228
|
captured = { message, options };
|
|
228
229
|
return createDeferredChannelSession();
|
|
229
230
|
},
|
|
230
|
-
waitUntil: promise => {
|
|
231
|
+
waitUntil: (promise) => {
|
|
231
232
|
background.push(promise);
|
|
232
233
|
},
|
|
233
234
|
};
|
|
@@ -473,7 +474,7 @@ export function registerHostedDeliveryRoute(input) {
|
|
|
473
474
|
});
|
|
474
475
|
// Hosted callers reach this only through Anyrun's signed pod-port URL.
|
|
475
476
|
// The marker is a second, route-specific fence distinct from channel auth.
|
|
476
|
-
const auth = request => {
|
|
477
|
+
const auth = (request) => {
|
|
477
478
|
if (request.headers.get(HOSTED_DELIVERY_HEADER) !== "1") {
|
|
478
479
|
return null;
|
|
479
480
|
}
|
|
@@ -538,12 +539,12 @@ export function registerHostedDeliveryRoute(input) {
|
|
|
538
539
|
const reminder = isHostedReminderAdmission(delivery);
|
|
539
540
|
const definition = reminder
|
|
540
541
|
? undefined
|
|
541
|
-
: input.channels.find(candidate => candidate.id === delivery.channelId)?.definition;
|
|
542
|
+
: input.channels.find((candidate) => candidate.id === delivery.channelId)?.definition;
|
|
542
543
|
if (!reminder && definition === undefined) {
|
|
543
544
|
return finish(terminalHostedError(404, "channel_not_found", `No channel named "${delivery.channelId}" is mounted.`));
|
|
544
545
|
}
|
|
545
546
|
let operation;
|
|
546
|
-
const execution = runAdmissionOperation(delivery, definition).then(reply => {
|
|
547
|
+
const execution = runAdmissionOperation(delivery, definition).then((reply) => {
|
|
547
548
|
operation.settledReply = reply;
|
|
548
549
|
operation.expiresAt = Date.now() + pendingTtlMs;
|
|
549
550
|
return reply;
|
|
@@ -555,7 +556,7 @@ export function registerHostedDeliveryRoute(input) {
|
|
|
555
556
|
admissions.set(delivery.deliveryId, operation);
|
|
556
557
|
const quickReply = await Promise.race([
|
|
557
558
|
execution,
|
|
558
|
-
new Promise(resolve => setImmediate(() => resolve(undefined))),
|
|
559
|
+
new Promise((resolve) => setImmediate(() => resolve(undefined))),
|
|
559
560
|
]);
|
|
560
561
|
if (quickReply !== undefined) {
|
|
561
562
|
return responseFromReply(quickReply);
|
|
@@ -824,11 +825,11 @@ export function registerHostedDeliveryRoute(input) {
|
|
|
824
825
|
}
|
|
825
826
|
}
|
|
826
827
|
});
|
|
827
|
-
}).then(reply => {
|
|
828
|
+
}).then((reply) => {
|
|
828
829
|
admitted.settledReply = reply;
|
|
829
830
|
admitted.expiresAt = Date.now() + pendingTtlMs;
|
|
830
831
|
return reply;
|
|
831
|
-
}, error => {
|
|
832
|
+
}, (error) => {
|
|
832
833
|
admitted.settledReply = {
|
|
833
834
|
status: 503,
|
|
834
835
|
body: {
|
|
@@ -845,7 +846,7 @@ export function registerHostedDeliveryRoute(input) {
|
|
|
845
846
|
if (execution.mode === "start") {
|
|
846
847
|
const quickReply = await Promise.race([
|
|
847
848
|
admitted.execution,
|
|
848
|
-
new Promise(resolve => setImmediate(() => resolve(undefined))),
|
|
849
|
+
new Promise((resolve) => setImmediate(() => resolve(undefined))),
|
|
849
850
|
]);
|
|
850
851
|
if (quickReply !== undefined) {
|
|
851
852
|
return responseFromReply(quickReply);
|
|
@@ -874,7 +875,7 @@ async function enqueueIntoActiveOwner(input) {
|
|
|
874
875
|
return { outcome: "not_active" };
|
|
875
876
|
}
|
|
876
877
|
let resolveResult;
|
|
877
|
-
const resultPromise = new Promise(resolve => {
|
|
878
|
+
const resultPromise = new Promise((resolve) => {
|
|
878
879
|
resolveResult = resolve;
|
|
879
880
|
});
|
|
880
881
|
owner.enqueueResults.set(input.deliveryId, resultPromise);
|
|
@@ -937,12 +938,22 @@ function evictHostedSdkSessions(evict, ...ids) {
|
|
|
937
938
|
}
|
|
938
939
|
const TRANSIENT_TURN_ERROR_CODES = new Set([
|
|
939
940
|
"ABORT_ERR",
|
|
941
|
+
"connection_stalled",
|
|
940
942
|
"UND_ERR_BODY_TIMEOUT",
|
|
941
943
|
"UND_ERR_HEADERS_TIMEOUT",
|
|
942
944
|
"canceled",
|
|
943
945
|
"unavailable",
|
|
944
946
|
"unknown",
|
|
945
947
|
]);
|
|
948
|
+
let stallRetriedCounter;
|
|
949
|
+
function recordStallRetried() {
|
|
950
|
+
if (stallRetriedCounter === undefined) {
|
|
951
|
+
stallRetriedCounter = metrics.getMeter("agent_sdk").createCounter("hosted.turn.stall_retried", {
|
|
952
|
+
description: "Hosted turns classified for transient retry after connection_stalled",
|
|
953
|
+
});
|
|
954
|
+
}
|
|
955
|
+
stallRetriedCounter.add(1, { failure_kind: "connection_stalled" });
|
|
956
|
+
}
|
|
946
957
|
function hostedFailureForUnfinishedTurn(outcome) {
|
|
947
958
|
if (outcome.errorCode === "agent_dependency_failed") {
|
|
948
959
|
return {
|
|
@@ -965,6 +976,9 @@ function hostedFailureForUnfinishedTurn(outcome) {
|
|
|
965
976
|
if (outcome.status === "error" &&
|
|
966
977
|
outcome.errorCode !== undefined &&
|
|
967
978
|
TRANSIENT_TURN_ERROR_CODES.has(outcome.errorCode)) {
|
|
979
|
+
if (outcome.errorCode === "connection_stalled") {
|
|
980
|
+
recordStallRetried();
|
|
981
|
+
}
|
|
968
982
|
return {
|
|
969
983
|
error: GUEST_CONNECT_STALLED,
|
|
970
984
|
retry: HOSTED_GUEST_RETRY_TRANSIENT,
|
|
@@ -19,7 +19,7 @@ export async function hostedEvalCatalog(projectRoot) {
|
|
|
19
19
|
const { evals, config } = await discoverEvals(projectRoot);
|
|
20
20
|
return {
|
|
21
21
|
protocol: 1,
|
|
22
|
-
cases: evals.map(e => ({
|
|
22
|
+
cases: evals.map((e) => ({
|
|
23
23
|
id: e.id,
|
|
24
24
|
fileId: e.fileId,
|
|
25
25
|
description: e.definition.description,
|
|
@@ -55,7 +55,7 @@ async function runHostedEvalCase(input) {
|
|
|
55
55
|
const deadline = new AbortController();
|
|
56
56
|
const cancel = new AbortController();
|
|
57
57
|
const result = await Promise.race([
|
|
58
|
-
runCase({ ...input, signal: cancel.signal }).catch(error => failedResult(input.evalCase, describeError(error), startedAt)),
|
|
58
|
+
runCase({ ...input, signal: cancel.signal }).catch((error) => failedResult(input.evalCase, describeError(error), startedAt)),
|
|
59
59
|
sleep(deadlineMs, undefined, { signal: deadline.signal }).then(async () => {
|
|
60
60
|
// The losing case body keeps running; it must not start turns after this verdict.
|
|
61
61
|
cancel.abort();
|
|
@@ -70,7 +70,7 @@ async function runHostedEvalCase(input) {
|
|
|
70
70
|
async function runCase(input) {
|
|
71
71
|
const startedAt = Date.now();
|
|
72
72
|
const { evals, config } = await discoverEvals(input.projectRoot);
|
|
73
|
-
const discovered = evals.find(e => e.id === input.evalCase.caseId);
|
|
73
|
+
const discovered = evals.find((e) => e.id === input.evalCase.caseId);
|
|
74
74
|
if (discovered === undefined) {
|
|
75
75
|
return failedResult(input.evalCase, `No eval case ${JSON.stringify(input.evalCase.caseId)} in this release`, startedAt);
|
|
76
76
|
}
|
|
@@ -152,7 +152,7 @@ function resultEventData(ref, result) {
|
|
|
152
152
|
inputs: result.inputs,
|
|
153
153
|
finalText: result.finalText,
|
|
154
154
|
tools: result.tools,
|
|
155
|
-
toolCalls: result.toolCalls?.map(call => ({
|
|
155
|
+
toolCalls: result.toolCalls?.map((call) => ({
|
|
156
156
|
toolName: call.toolName,
|
|
157
157
|
args: boundedIo(call.args),
|
|
158
158
|
output: boundedIo(call.output),
|
|
@@ -65,8 +65,8 @@ export function hostedErrorStackSnippet(error) {
|
|
|
65
65
|
if (stack !== undefined && stack.length > 0) {
|
|
66
66
|
const lines = stack
|
|
67
67
|
.split("\n")
|
|
68
|
-
.map(line => line.trimEnd())
|
|
69
|
-
.filter(line => line.trim().length > 0)
|
|
68
|
+
.map((line) => line.trimEnd())
|
|
69
|
+
.filter((line) => line.trim().length > 0)
|
|
70
70
|
.slice(0, HOSTED_ERROR_STACK_LINE_COUNT);
|
|
71
71
|
const text = lines.join("\n");
|
|
72
72
|
return text.length > HOSTED_ERROR_SNIPPET_MAX_CHARS
|
|
@@ -129,7 +129,7 @@ export function parseHostedExecutionDiag(raw) {
|
|
|
129
129
|
return undefined;
|
|
130
130
|
}
|
|
131
131
|
const body = parsed;
|
|
132
|
-
if (Object.keys(body).some(key => !DIAG_KEYS.has(key))) {
|
|
132
|
+
if (Object.keys(body).some((key) => !DIAG_KEYS.has(key))) {
|
|
133
133
|
return undefined;
|
|
134
134
|
}
|
|
135
135
|
if (body.v !== HOSTED_EXECUTION_DIAG_VERSION ||
|
package/dist/internal/hosting.js
CHANGED
|
@@ -71,7 +71,7 @@ export function isReservedSecretName(name) {
|
|
|
71
71
|
return true;
|
|
72
72
|
}
|
|
73
73
|
const upper = name.toUpperCase();
|
|
74
|
-
return PLATFORM_HOSTED_STORAGE_SECRET_NAMES.some(managed => managed === upper);
|
|
74
|
+
return PLATFORM_HOSTED_STORAGE_SECRET_NAMES.some((managed) => managed === upper);
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
77
|
* Grammar and platform-managed-name errors in declared egress domains and
|
|
@@ -181,7 +181,7 @@ export function buildHttpChannelRoutes(args) {
|
|
|
181
181
|
playgroundUrl: playgroundUrlForSession(request, base, sessionId),
|
|
182
182
|
});
|
|
183
183
|
}
|
|
184
|
-
const ndjson = `${snapshot.map(e => JSON.stringify(e)).join("\n")}${snapshot.length > 0 ? "\n" : ""}`;
|
|
184
|
+
const ndjson = `${snapshot.map((e) => JSON.stringify(e)).join("\n")}${snapshot.length > 0 ? "\n" : ""}`;
|
|
185
185
|
return new Response(ndjson, {
|
|
186
186
|
status: 200,
|
|
187
187
|
headers: {
|
|
@@ -31,7 +31,7 @@ export function parseControlPlaneSessionPayload(payload) {
|
|
|
31
31
|
if (!isRecord(payload)) {
|
|
32
32
|
return { ok: false, error: "payload must be an object" };
|
|
33
33
|
}
|
|
34
|
-
if (Object.keys(payload).some(key => !PAYLOAD_KEYS.has(key))) {
|
|
34
|
+
if (Object.keys(payload).some((key) => !PAYLOAD_KEYS.has(key))) {
|
|
35
35
|
return { ok: false, error: "payload carries an unsupported field" };
|
|
36
36
|
}
|
|
37
37
|
const message = typeof payload.message === "string" ? payload.message.trim() : "";
|
|
@@ -58,7 +58,7 @@ export function parseControlPlaneEvalCasePayload(payload) {
|
|
|
58
58
|
if (!isRecord(payload)) {
|
|
59
59
|
return { ok: false, error: "payload must be an object" };
|
|
60
60
|
}
|
|
61
|
-
if (Object.keys(payload).some(key => !EVAL_CASE_PAYLOAD_KEYS.has(key))) {
|
|
61
|
+
if (Object.keys(payload).some((key) => !EVAL_CASE_PAYLOAD_KEYS.has(key))) {
|
|
62
62
|
return { ok: false, error: "payload carries an unsupported field" };
|
|
63
63
|
}
|
|
64
64
|
for (const key of ["runId", "caseId"]) {
|
|
@@ -22,7 +22,7 @@ export function isTemplateMetaPath(rel) {
|
|
|
22
22
|
}
|
|
23
23
|
export function templateFileHasReplacements(spec, rel) {
|
|
24
24
|
const file = posixRel(rel);
|
|
25
|
-
return spec.replace.some(rule => posixRel(rule.file) === file);
|
|
25
|
+
return spec.replace.some((rule) => posixRel(rule.file) === file);
|
|
26
26
|
}
|
|
27
27
|
export async function loadTemplateInitSpec(templateDir) {
|
|
28
28
|
try {
|
|
@@ -85,7 +85,7 @@ export async function collectTemplateAnswers(input) {
|
|
|
85
85
|
const vars = input.vars ?? {};
|
|
86
86
|
const answers = {};
|
|
87
87
|
const ask = input.ask ?? promptTemplateQuestion;
|
|
88
|
-
const out = input.out ?? (text => process.stdout.write(text));
|
|
88
|
+
const out = input.out ?? ((text) => process.stdout.write(text));
|
|
89
89
|
for (const question of input.spec.questions) {
|
|
90
90
|
if (question.id in vars || !input.interactive) {
|
|
91
91
|
const raw = vars[question.id]?.trim() || question.default;
|
|
@@ -143,7 +143,7 @@ export async function promptTemplateQuestion(question, options = {}) {
|
|
|
143
143
|
if (question.hint !== undefined) {
|
|
144
144
|
output.write(` ${question.hint}\n`);
|
|
145
145
|
}
|
|
146
|
-
return await new Promise(resolve => {
|
|
146
|
+
return await new Promise((resolve) => {
|
|
147
147
|
rl.question(`${question.prompt}${suffix} `, resolve);
|
|
148
148
|
});
|
|
149
149
|
}
|
|
@@ -182,7 +182,7 @@ function parseQuestionValue(question, raw) {
|
|
|
182
182
|
}
|
|
183
183
|
if (question.parse === "owner-repo-list") {
|
|
184
184
|
try {
|
|
185
|
-
const scope = parseCursorGithubRepoScope(trimmed.split(",").map(repo => repo.trim()));
|
|
185
|
+
const scope = parseCursorGithubRepoScope(trimmed.split(",").map((repo) => repo.trim()));
|
|
186
186
|
return { ok: true, value: scope.repos.join(", ") };
|
|
187
187
|
}
|
|
188
188
|
catch (error) {
|
|
@@ -196,10 +196,10 @@ function formatReplaceValue(rule, answers) {
|
|
|
196
196
|
if (raw === undefined || raw === "") {
|
|
197
197
|
return undefined;
|
|
198
198
|
}
|
|
199
|
-
const parts = raw.split(",").map(part => part.trim());
|
|
199
|
+
const parts = raw.split(",").map((part) => part.trim());
|
|
200
200
|
let value = raw;
|
|
201
201
|
if (rule.as === "json-array") {
|
|
202
|
-
value = `[${parts.map(part => JSON.stringify(part)).join(", ")}]`;
|
|
202
|
+
value = `[${parts.map((part) => JSON.stringify(part)).join(", ")}]`;
|
|
203
203
|
}
|
|
204
204
|
else if (rule.as === "first") {
|
|
205
205
|
const first = parts[0];
|
|
@@ -234,7 +234,7 @@ function parseQuestion(value, index) {
|
|
|
234
234
|
question.default = value.default;
|
|
235
235
|
}
|
|
236
236
|
if (Array.isArray(value.choices)) {
|
|
237
|
-
question.choices = value.choices.map(choice => String(choice));
|
|
237
|
+
question.choices = value.choices.map((choice) => String(choice));
|
|
238
238
|
}
|
|
239
239
|
if (value.parse === "owner-repo-list") {
|
|
240
240
|
question.parse = "owner-repo-list";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/internal/init-project.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/internal/init-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,7 +129,7 @@ export async function initProject(options) {
|
|
|
129
129
|
const overlayDir = options.overlayDir;
|
|
130
130
|
const overlayPaths = overlayDir ? await listTemplateFiles(overlayDir) : [];
|
|
131
131
|
const overlaySet = new Set(overlayPaths);
|
|
132
|
-
const corePaths = (await listTemplateFiles(templateDir)).filter(rel => !overlaySet.has(rel));
|
|
132
|
+
const corePaths = (await listTemplateFiles(templateDir)).filter((rel) => !overlaySet.has(rel));
|
|
133
133
|
const templateName = options.templateName ?? basename(templateDir);
|
|
134
134
|
const initSpec = options.initSpec ?? (await loadTemplateInitSpec(templateDir));
|
|
135
135
|
const answers = options.answers ?? {};
|
|
@@ -170,8 +170,8 @@ export async function initProject(options) {
|
|
|
170
170
|
return {
|
|
171
171
|
rootDir,
|
|
172
172
|
files,
|
|
173
|
-
created: files.filter(entry => entry.action === "create").map(entry => entry.path),
|
|
174
|
-
skipped: files.filter(entry => entry.action === "exist").map(entry => entry.path),
|
|
173
|
+
created: files.filter((entry) => entry.action === "create").map((entry) => entry.path),
|
|
174
|
+
skipped: files.filter((entry) => entry.action === "exist").map((entry) => entry.path),
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
177
|
async function listTemplateFiles(root) {
|
|
@@ -180,9 +180,9 @@ async function listTemplateFiles(root) {
|
|
|
180
180
|
withFileTypes: true,
|
|
181
181
|
});
|
|
182
182
|
return entries
|
|
183
|
-
.filter(entry => entry.isFile())
|
|
184
|
-
.map(entry => posixRel(relative(root, join(entry.parentPath, entry.name))))
|
|
185
|
-
.filter(rel => !isTemplateMetaPath(rel))
|
|
183
|
+
.filter((entry) => entry.isFile())
|
|
184
|
+
.map((entry) => posixRel(relative(root, join(entry.parentPath, entry.name))))
|
|
185
|
+
.filter((rel) => !isTemplateMetaPath(rel))
|
|
186
186
|
.sort();
|
|
187
187
|
}
|
|
188
188
|
async function writeTemplateFile(input) {
|
|
@@ -286,7 +286,7 @@ async function resolveLinkedCli(commandName) {
|
|
|
286
286
|
}
|
|
287
287
|
async function npmGlobalPrefix() {
|
|
288
288
|
const command = process.platform === "win32" ? "npm.cmd" : "npm";
|
|
289
|
-
return await new Promise(resolvePromise => {
|
|
289
|
+
return await new Promise((resolvePromise) => {
|
|
290
290
|
const child = spawn(command, ["prefix", "-g"], {
|
|
291
291
|
stdio: ["ignore", "pipe", "ignore"],
|
|
292
292
|
env: process.env,
|
|
@@ -297,7 +297,7 @@ async function npmGlobalPrefix() {
|
|
|
297
297
|
out += chunk;
|
|
298
298
|
});
|
|
299
299
|
child.on("error", () => resolvePromise(undefined));
|
|
300
|
-
child.on("close", code => {
|
|
300
|
+
child.on("close", (code) => {
|
|
301
301
|
if (code !== 0) {
|
|
302
302
|
resolvePromise(undefined);
|
|
303
303
|
return;
|
|
@@ -342,7 +342,7 @@ async function defaultNpmInstallRunner(args) {
|
|
|
342
342
|
child.stdout?.resume();
|
|
343
343
|
}
|
|
344
344
|
child.on("error", reject);
|
|
345
|
-
child.on("close", code => {
|
|
345
|
+
child.on("close", (code) => {
|
|
346
346
|
resolvePromise({ exitCode: code ?? 1, stderr });
|
|
347
347
|
});
|
|
348
348
|
});
|
|
@@ -356,7 +356,7 @@ function formatModelLiteral(model) {
|
|
|
356
356
|
: `,
|
|
357
357
|
params: [
|
|
358
358
|
${model.params
|
|
359
|
-
.map(param => ` { id: ${JSON.stringify(param.id)}, value: ${JSON.stringify(param.value)} },`)
|
|
359
|
+
.map((param) => ` { id: ${JSON.stringify(param.id)}, value: ${JSON.stringify(param.value)} },`)
|
|
360
360
|
.join("\n")}
|
|
361
361
|
]`;
|
|
362
362
|
return `{
|
|
@@ -399,7 +399,7 @@ export function formatInitNextSteps(options) {
|
|
|
399
399
|
lines.push("Next steps:");
|
|
400
400
|
lines.push("");
|
|
401
401
|
const steps = initNextStepEntries(options);
|
|
402
|
-
const width = Math.max(...steps.map(step => step.command.length));
|
|
402
|
+
const width = Math.max(...steps.map((step) => step.command.length));
|
|
403
403
|
for (const [index, step] of steps.entries()) {
|
|
404
404
|
const command = step.note === undefined
|
|
405
405
|
? step.command
|
|
@@ -452,7 +452,7 @@ function initNextStepEntries(options) {
|
|
|
452
452
|
* the host already has a Cursor credential).
|
|
453
453
|
*/
|
|
454
454
|
export function initNextCommands(options) {
|
|
455
|
-
return initNextStepEntries(options).map(step => step.command);
|
|
455
|
+
return initNextStepEntries(options).map((step) => step.command);
|
|
456
456
|
}
|
|
457
457
|
/**
|
|
458
458
|
* Coding-agent setup guide printed by `bdk init`
|
|
@@ -35,7 +35,7 @@ function validateInput(tool, args) {
|
|
|
35
35
|
}
|
|
36
36
|
const issues = parsed.error?.issues ?? [];
|
|
37
37
|
const message = issues
|
|
38
|
-
.map(issue => {
|
|
38
|
+
.map((issue) => {
|
|
39
39
|
const path = issue.path.join(".");
|
|
40
40
|
return path === "" ? issue.message : `${path}: ${issue.message}`;
|
|
41
41
|
})
|
|
@@ -150,7 +150,7 @@ export function serveInlineStdioMcp(serverName, definition, catalog) {
|
|
|
150
150
|
const tools = definition.tools ?? {};
|
|
151
151
|
let buffer = "";
|
|
152
152
|
process.stdin.setEncoding("utf8");
|
|
153
|
-
process.stdin.on("data", chunk => {
|
|
153
|
+
process.stdin.on("data", (chunk) => {
|
|
154
154
|
buffer += chunk;
|
|
155
155
|
let newline = buffer.indexOf("\n");
|
|
156
156
|
while (newline !== -1) {
|
|
@@ -59,7 +59,7 @@ export function bdkCursorSkillsDir(skillsHome = cursorSkillsHome()) {
|
|
|
59
59
|
return join(skillsHome, CURSOR_SKILLS_NAMESPACE);
|
|
60
60
|
}
|
|
61
61
|
function legacyCursorSkillsDirs(skillsHome) {
|
|
62
|
-
return LEGACY_CURSOR_SKILLS_NAMESPACES.map(name => join(skillsHome, name));
|
|
62
|
+
return LEGACY_CURSOR_SKILLS_NAMESPACES.map((name) => join(skillsHome, name));
|
|
63
63
|
}
|
|
64
64
|
/** Absolute install path for one skill: `…/bdk/<leafDir>`. */
|
|
65
65
|
export function skillInstallPath(skill, skillsHome = cursorSkillsHome()) {
|
|
@@ -183,7 +183,7 @@ async function addOwnerWrite(path) {
|
|
|
183
183
|
}
|
|
184
184
|
/** Installed leaf dirs the package no longer ships. Installing deletes these. */
|
|
185
185
|
async function orphanLeaves(namespaceDir, skills) {
|
|
186
|
-
const shipped = new Set(skills.map(skill => skill.leafDir));
|
|
186
|
+
const shipped = new Set(skills.map((skill) => skill.leafDir));
|
|
187
187
|
let entries;
|
|
188
188
|
try {
|
|
189
189
|
entries = await readdir(namespaceDir, { withFileTypes: true });
|
|
@@ -192,8 +192,8 @@ async function orphanLeaves(namespaceDir, skills) {
|
|
|
192
192
|
return [];
|
|
193
193
|
}
|
|
194
194
|
return entries
|
|
195
|
-
.filter(entry => entry.isDirectory() && !shipped.has(entry.name))
|
|
196
|
-
.map(entry => entry.name);
|
|
195
|
+
.filter((entry) => entry.isDirectory() && !shipped.has(entry.name))
|
|
196
|
+
.map((entry) => entry.name);
|
|
197
197
|
}
|
|
198
198
|
/** Drop leftover earlier install folders so stale skill ids are not discovered. */
|
|
199
199
|
async function removeLegacyCursorSkillsNamespaces(skillsHome) {
|
|
@@ -265,7 +265,7 @@ function withAlwaysApply(frontmatter) {
|
|
|
265
265
|
}
|
|
266
266
|
const without = frontmatter
|
|
267
267
|
.split(/\r?\n/)
|
|
268
|
-
.filter(line => !/^\s*alwaysApply\s*:/.test(line))
|
|
268
|
+
.filter((line) => !/^\s*alwaysApply\s*:/.test(line))
|
|
269
269
|
.join("\n")
|
|
270
270
|
.replace(/\n+$/, "");
|
|
271
271
|
if (without === "") {
|
|
@@ -291,8 +291,8 @@ export async function planSkillInstall(options) {
|
|
|
291
291
|
shipped,
|
|
292
292
|
skillsHome,
|
|
293
293
|
directory,
|
|
294
|
-
leaves: shipped.map(skill => skill.leafDir),
|
|
295
|
-
firstInstall: present.every(isPresent => !isPresent),
|
|
294
|
+
leaves: shipped.map((skill) => skill.leafDir),
|
|
295
|
+
firstInstall: present.every((isPresent) => !isPresent),
|
|
296
296
|
orphans: await orphanLeaves(directory, shipped),
|
|
297
297
|
legacyDirs: await existingLegacyCursorSkillsDirs(skillsHome),
|
|
298
298
|
};
|
|
@@ -336,7 +336,7 @@ export async function syncCursorSkillsOnPackageInstall(options = {}) {
|
|
|
336
336
|
return { status: "skipped", reason: "no-skills" };
|
|
337
337
|
}
|
|
338
338
|
const result = await installCursorSkills(plan.shipped, plan.skillsHome);
|
|
339
|
-
const out = options.out ?? (text => process.stderr.write(text));
|
|
339
|
+
const out = options.out ?? ((text) => process.stderr.write(text));
|
|
340
340
|
out(formatSkillInstall(plan, result));
|
|
341
341
|
return {
|
|
342
342
|
status: "installed",
|
|
@@ -355,7 +355,7 @@ export async function syncCursorSkillsOnPackageInstall(options = {}) {
|
|
|
355
355
|
* rather than blocking the caller — see `SKILL_PROMPT_TIMEOUT_MS`.
|
|
356
356
|
*/
|
|
357
357
|
export async function offerInstallCursorSkills(options = {}) {
|
|
358
|
-
const out = options.out ?? (text => process.stdout.write(text));
|
|
358
|
+
const out = options.out ?? ((text) => process.stdout.write(text));
|
|
359
359
|
const interactive = options.interactive ?? (process.stdin.isTTY === true && process.stdout.isTTY === true);
|
|
360
360
|
if (!interactive) {
|
|
361
361
|
return { installed: [], skipped: true };
|
|
@@ -382,7 +382,7 @@ export async function offerInstallCursorSkills(options = {}) {
|
|
|
382
382
|
out(c.dim(` (deletes leftover ${dir})\n`));
|
|
383
383
|
}
|
|
384
384
|
const confirm = options.confirm ??
|
|
385
|
-
(q => promptYesNo(q, {
|
|
385
|
+
((q) => promptYesNo(q, {
|
|
386
386
|
defaultYes: true,
|
|
387
387
|
out,
|
|
388
388
|
timeoutMs: SKILL_PROMPT_TIMEOUT_MS,
|
|
@@ -428,7 +428,7 @@ export async function promptYesNo(question, options) {
|
|
|
428
428
|
}
|
|
429
429
|
/** The line, or `undefined` when the stream ends or the clock runs out first. */
|
|
430
430
|
function readOneLine(stream, timeoutMs) {
|
|
431
|
-
return new Promise(resolve => {
|
|
431
|
+
return new Promise((resolve) => {
|
|
432
432
|
let buffer = "";
|
|
433
433
|
let timer;
|
|
434
434
|
const onData = (chunk) => {
|
|
@@ -67,7 +67,7 @@ export function validateToolInput(inputSchema, args) {
|
|
|
67
67
|
return { ok: true, value: parsed.data };
|
|
68
68
|
}
|
|
69
69
|
const issues = parsed.error.issues
|
|
70
|
-
.map(issue => {
|
|
70
|
+
.map((issue) => {
|
|
71
71
|
const path = issue.path.join(".");
|
|
72
72
|
return path === "" ? issue.message : `${path}: ${issue.message}`;
|
|
73
73
|
})
|
|
@@ -29,7 +29,7 @@ export async function createLocalControlPlane(opts) {
|
|
|
29
29
|
const store = opts.stateDir === undefined ? undefined : new ReminderStore(join(opts.stateDir, "reminders"));
|
|
30
30
|
const schedules = new Map();
|
|
31
31
|
const reminderTimers = new Map();
|
|
32
|
-
const reminders = new Map(((await store?.list()) ?? []).map(record => [
|
|
32
|
+
const reminders = new Map(((await store?.list()) ?? []).map((record) => [
|
|
33
33
|
record.id,
|
|
34
34
|
{ ...record, generation: record.generation ?? 0 },
|
|
35
35
|
]));
|
|
@@ -68,7 +68,7 @@ export async function createLocalControlPlane(opts) {
|
|
|
68
68
|
if (!cron.matches(now)) {
|
|
69
69
|
continue;
|
|
70
70
|
}
|
|
71
|
-
void opts.fireSchedule(name).catch(error => {
|
|
71
|
+
void opts.fireSchedule(name).catch((error) => {
|
|
72
72
|
logger(`[bdk] schedule "${name}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
73
|
});
|
|
74
74
|
}
|
|
@@ -90,7 +90,7 @@ export async function createLocalControlPlane(opts) {
|
|
|
90
90
|
const delay = Math.min(MAX_TIMER_MS, Math.max(0, record.nextFireAtMs - Date.now()));
|
|
91
91
|
const timer = setTimeout(() => {
|
|
92
92
|
reminderTimers.delete(record.id);
|
|
93
|
-
void onReminderDue(record.id).catch(error => {
|
|
93
|
+
void onReminderDue(record.id).catch((error) => {
|
|
94
94
|
logger(`[bdk] reminder "${record.id}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
95
95
|
});
|
|
96
96
|
}, delay);
|
|
@@ -25,7 +25,7 @@ export function loadAgentLocalEnv(dir) {
|
|
|
25
25
|
loaded.push(path);
|
|
26
26
|
};
|
|
27
27
|
const trackLoadedKeys = () => {
|
|
28
|
-
fileLoadedKeys = new Set(Object.keys(process.env).filter(key => !realKeys.has(key)));
|
|
28
|
+
fileLoadedKeys = new Set(Object.keys(process.env).filter((key) => !realKeys.has(key)));
|
|
29
29
|
};
|
|
30
30
|
const tryLoadDir = (agentDir) => {
|
|
31
31
|
// `.env.local` first so its values win over checked-in `.env` defaults
|
|
@@ -37,8 +37,8 @@ export function loadAgentLocalEnv(dir) {
|
|
|
37
37
|
let children;
|
|
38
38
|
try {
|
|
39
39
|
children = readdirSync(dir, { withFileTypes: true })
|
|
40
|
-
.filter(entry => entry.isDirectory() && !entry.name.startsWith("."))
|
|
41
|
-
.map(entry => entry.name);
|
|
40
|
+
.filter((entry) => entry.isDirectory() && !entry.name.startsWith("."))
|
|
41
|
+
.map((entry) => entry.name);
|
|
42
42
|
}
|
|
43
43
|
catch {
|
|
44
44
|
trackLoadedKeys();
|
|
@@ -404,7 +404,7 @@ async function sleepMs(ms, signal) {
|
|
|
404
404
|
if (isAborted(signal)) {
|
|
405
405
|
return;
|
|
406
406
|
}
|
|
407
|
-
await new Promise(resolve => {
|
|
407
|
+
await new Promise((resolve) => {
|
|
408
408
|
const timer = setTimeout(() => {
|
|
409
409
|
signal?.removeEventListener("abort", onAbort);
|
|
410
410
|
resolve();
|
|
@@ -90,7 +90,7 @@ export async function handleStatelessMcpRequest(args) {
|
|
|
90
90
|
/** Tool names the MCP surface exposes for `project` (info projection). */
|
|
91
91
|
export function mcpEndpointToolNames(project) {
|
|
92
92
|
const names = ["ask", "check"];
|
|
93
|
-
if (project.agent.tools.some(tool => tool.execution === "server")) {
|
|
93
|
+
if (project.agent.tools.some((tool) => tool.execution === "server")) {
|
|
94
94
|
names.push("call_tool");
|
|
95
95
|
}
|
|
96
96
|
return names;
|
|
@@ -137,9 +137,9 @@ function buildToolMcpServer(engine, sessionId) {
|
|
|
137
137
|
capabilities: { tools: {} },
|
|
138
138
|
instructions: "Direct tools implemented by the AgentSDK deployment for its active cloud turn.",
|
|
139
139
|
});
|
|
140
|
-
const tools = engine.project.agent.tools.filter(tool => tool.execution === "server");
|
|
140
|
+
const tools = engine.project.agent.tools.filter((tool) => tool.execution === "server");
|
|
141
141
|
server.setRequestHandler(ListToolsRequestSchema, () => Promise.resolve({
|
|
142
|
-
tools: tools.map(tool => ({
|
|
142
|
+
tools: tools.map((tool) => ({
|
|
143
143
|
name: tool.name,
|
|
144
144
|
description: tool.description,
|
|
145
145
|
inputSchema: tool.inputSchema,
|
|
@@ -150,7 +150,7 @@ function buildToolMcpServer(engine, sessionId) {
|
|
|
150
150
|
if (sessionId === null || sessionId === "") {
|
|
151
151
|
return errorResult("Missing AgentSDK session binding.");
|
|
152
152
|
}
|
|
153
|
-
const tool = tools.find(candidate => candidate.name === request.params.name);
|
|
153
|
+
const tool = tools.find((candidate) => candidate.name === request.params.name);
|
|
154
154
|
if (tool === undefined) {
|
|
155
155
|
return errorResult(`Unknown server tool "${request.params.name}".`);
|
|
156
156
|
}
|
|
@@ -203,7 +203,7 @@ function buildConnectionBridgeMcpServer(engine, sessionId, connectionName) {
|
|
|
203
203
|
}
|
|
204
204
|
const tools = await engine.runWithMcpPark(sessionId ?? "", "tools/list", () => engine.host.mcp.listTools(connectionName));
|
|
205
205
|
return {
|
|
206
|
-
tools: tools.map(tool => ({
|
|
206
|
+
tools: tools.map((tool) => ({
|
|
207
207
|
name: tool.name,
|
|
208
208
|
...(tool.description === undefined ? {} : { description: tool.description }),
|
|
209
209
|
inputSchema: tool.inputSchema ?? { type: "object" },
|
|
@@ -303,11 +303,11 @@ function buildAgentMcpServer(engine, auth) {
|
|
|
303
303
|
return errorResult(describeError(error));
|
|
304
304
|
}
|
|
305
305
|
});
|
|
306
|
-
const serverTools = agent.tools.filter(tool => tool.execution === "server");
|
|
306
|
+
const serverTools = agent.tools.filter((tool) => tool.execution === "server");
|
|
307
307
|
if (serverTools.length > 0) {
|
|
308
308
|
server.registerTool("call_tool", {
|
|
309
309
|
description: `Call one of this agent's deterministic server tools directly (no model turn decides anything). Available tools: ${serverTools
|
|
310
|
-
.map(tool => tool.name)
|
|
310
|
+
.map((tool) => tool.name)
|
|
311
311
|
.join(", ")}.`,
|
|
312
312
|
inputSchema: {
|
|
313
313
|
toolName: z.string().describe("Name of the server tool to call."),
|
|
@@ -543,7 +543,7 @@ function raceTimeout(promise, ms) {
|
|
|
543
543
|
const timer = setTimeout(() => {
|
|
544
544
|
resolve(undefined);
|
|
545
545
|
}, ms);
|
|
546
|
-
promise.then(value => {
|
|
546
|
+
promise.then((value) => {
|
|
547
547
|
clearTimeout(timer);
|
|
548
548
|
resolve(value);
|
|
549
549
|
}, (error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-host.d.ts","sourceRoot":"","sources":["../../src/internal/mcp-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AASrB,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAS9C;CACF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAMvE;AAoBD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACxF;AAED,qBAAa,OAAQ,YAAW,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,YAAY,WAAW,EAAE,oBAAoB,EAAE,EAI9C;IAED,gFAAgF;IAChF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAErC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAEpD;IAED,KAAK,IAAI,MAAM,EAAE,CAEhB;IAEK,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAUlE;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,EAAE,oBAAoB,GAAG,aAAa,CAwCtD;IAEK,QAAQ,CACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAa5B;IAEK,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"mcp-host.d.ts","sourceRoot":"","sources":["../../src/internal/mcp-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AASrB,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAS9C;CACF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAMvE;AAoBD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACxF;AAED,qBAAa,OAAQ,YAAW,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,YAAY,WAAW,EAAE,oBAAoB,EAAE,EAI9C;IAED,gFAAgF;IAChF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAErC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAEpD;IAED,KAAK,IAAI,MAAM,EAAE,CAEhB;IAEK,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAUlE;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,EAAE,oBAAoB,GAAG,aAAa,CAwCtD;IAEK,QAAQ,CACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAa5B;IAEK,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAY3B;IAED;;;;;;;;OAQG;YACW,UAAU;IAcxB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;YAwBH,gBAAgB;IAc9B,OAAO,CAAC,iBAAiB;YASX,OAAO;CAGtB;AASD,+BAA+B;AAC/B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAU9D;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,kBAAkB,GAAG,SAAS,CAqB3F"}
|