@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
|
@@ -78,10 +78,10 @@ async function resolveTargets(options) {
|
|
|
78
78
|
const port = options.port ?? DEFAULT_PORT;
|
|
79
79
|
let candidates = channels;
|
|
80
80
|
if (options.slug !== undefined) {
|
|
81
|
-
candidates = candidates.filter(c => c.slug === options.slug);
|
|
81
|
+
candidates = candidates.filter((c) => c.slug === options.slug);
|
|
82
82
|
}
|
|
83
83
|
if (options.channel !== undefined) {
|
|
84
|
-
candidates = candidates.filter(c => c.channelId === options.channel);
|
|
84
|
+
candidates = candidates.filter((c) => c.channelId === options.channel);
|
|
85
85
|
}
|
|
86
86
|
if (options.url !== undefined && candidates.length > 1) {
|
|
87
87
|
process.stderr.write("--url targets a single channel; narrow with --slug/--channel\n");
|
|
@@ -102,7 +102,7 @@ async function resolveTargets(options) {
|
|
|
102
102
|
},
|
|
103
103
|
];
|
|
104
104
|
}
|
|
105
|
-
return candidates.map(c => ({
|
|
105
|
+
return candidates.map((c) => ({
|
|
106
106
|
slug: c.slug,
|
|
107
107
|
channelId: c.channelId,
|
|
108
108
|
url: channelForwardUrl({
|
|
@@ -131,7 +131,7 @@ async function cmdBitbucketReplay(options) {
|
|
|
131
131
|
return 1;
|
|
132
132
|
}
|
|
133
133
|
const requested = parseEventList(options.events);
|
|
134
|
-
const declared = [...new Set(targets.flatMap(target => target.events))];
|
|
134
|
+
const declared = [...new Set(targets.flatMap((target) => target.events))];
|
|
135
135
|
const { events, unsupported } = selectBitbucketReplayEvents(requested, declared);
|
|
136
136
|
if (unsupported.length > 0) {
|
|
137
137
|
process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
|
|
@@ -174,7 +174,7 @@ async function cmdBitbucketReplay(options) {
|
|
|
174
174
|
}
|
|
175
175
|
const secret = options.secret ?? process.env.BITBUCKET_WEBHOOK_SECRET;
|
|
176
176
|
process.stderr.write(`[bdk] replaying ${ref.label} (${ref.dialect}; ${synthesized
|
|
177
|
-
.map(event => event.eventType)
|
|
177
|
+
.map((event) => event.eventType)
|
|
178
178
|
.join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
|
|
179
179
|
const report = [];
|
|
180
180
|
let anyRejected = false;
|
|
@@ -200,13 +200,13 @@ async function cmdBitbucketReplay(options) {
|
|
|
200
200
|
continue;
|
|
201
201
|
}
|
|
202
202
|
const deliveries = await deliverReplayEvent(body, headers, event.eventType, targets);
|
|
203
|
-
if (deliveries.length === 0 || deliveries.some(d => !d.ok)) {
|
|
203
|
+
if (deliveries.length === 0 || deliveries.some((d) => !d.ok)) {
|
|
204
204
|
anyRejected = true;
|
|
205
205
|
}
|
|
206
206
|
report.push({ ...eventReport(event), deliveries });
|
|
207
207
|
if (options.json !== true) {
|
|
208
208
|
const summary = deliveries
|
|
209
|
-
.map(d => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
|
|
209
|
+
.map((d) => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
|
|
210
210
|
.join(", ") || "(no matching channel)";
|
|
211
211
|
process.stderr.write(`[bdk] ${event.header} → ${summary}\n`);
|
|
212
212
|
}
|
|
@@ -222,7 +222,7 @@ async function cmdBitbucketReplay(options) {
|
|
|
222
222
|
return anyRejected ? 1 : 0;
|
|
223
223
|
}
|
|
224
224
|
async function deliverReplayEvent(body, headers, eventType, targets) {
|
|
225
|
-
const recipients = targets.filter(target => target.events.length === 0 || target.events.includes(eventType));
|
|
225
|
+
const recipients = targets.filter((target) => target.events.length === 0 || target.events.includes(eventType));
|
|
226
226
|
return Promise.all(recipients.map(async (target) => {
|
|
227
227
|
const label = target.slug === "" ? target.channelId : `${target.slug}/${target.channelId}`;
|
|
228
228
|
try {
|
|
@@ -259,7 +259,7 @@ async function cmdBitbucketEvents(options) {
|
|
|
259
259
|
const channels = findBitbucketChannelTargets(await resolveAgentMounts(dir));
|
|
260
260
|
const host = options.host ?? DEFAULT_HOST;
|
|
261
261
|
const port = options.port ?? DEFAULT_PORT;
|
|
262
|
-
const rows = channels.map(c => ({
|
|
262
|
+
const rows = channels.map((c) => ({
|
|
263
263
|
slug: c.slug,
|
|
264
264
|
channelId: c.channelId,
|
|
265
265
|
url: channelForwardUrl({
|
|
@@ -326,7 +326,7 @@ function parseEventList(value) {
|
|
|
326
326
|
}
|
|
327
327
|
const events = value
|
|
328
328
|
.split(/[\s,]+/)
|
|
329
|
-
.map(event => event.trim())
|
|
329
|
+
.map((event) => event.trim())
|
|
330
330
|
.filter(Boolean);
|
|
331
331
|
return events.length === 0 ? undefined : events;
|
|
332
332
|
}
|
|
@@ -45,7 +45,7 @@ export function parseAutomationRef(input) {
|
|
|
45
45
|
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
46
46
|
return undefined;
|
|
47
47
|
}
|
|
48
|
-
const segments = parsed.pathname.split("/").filter(s => s !== "");
|
|
48
|
+
const segments = parsed.pathname.split("/").filter((s) => s !== "");
|
|
49
49
|
if (segments.length !== 2) {
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
@@ -144,7 +144,7 @@ export async function cmdConvertAutomation(options) {
|
|
|
144
144
|
installError: installed.ok
|
|
145
145
|
? null
|
|
146
146
|
: installed.stderr.trim() || `npm install exited ${installed.exitCode}`,
|
|
147
|
-
mcpConnections: result.mcpConnections.map(connection => ({
|
|
147
|
+
mcpConnections: result.mcpConnections.map((connection) => ({
|
|
148
148
|
name: connection.name,
|
|
149
149
|
kind: connection.kind,
|
|
150
150
|
})),
|
|
@@ -34,7 +34,7 @@ export async function cmdLogin(options) {
|
|
|
34
34
|
uuid,
|
|
35
35
|
verifier,
|
|
36
36
|
backendUrl,
|
|
37
|
-
logger: line => process.stderr.write(`warning: ${line}\n`),
|
|
37
|
+
logger: (line) => process.stderr.write(`warning: ${line}\n`),
|
|
38
38
|
});
|
|
39
39
|
if (login.status !== "signed_in") {
|
|
40
40
|
process.stderr.write(`${describeLoginPollFailure(login)}\n`);
|
|
@@ -164,7 +164,7 @@ export async function cmdWhoami(options) {
|
|
|
164
164
|
}
|
|
165
165
|
function formatIdentity(identity) {
|
|
166
166
|
const name = [identity.firstName, identity.lastName]
|
|
167
|
-
.filter(part => part !== undefined && part !== "")
|
|
167
|
+
.filter((part) => part !== undefined && part !== "")
|
|
168
168
|
.join(" ");
|
|
169
169
|
const email = identity.email ?? identity.authId ?? "(unknown user)";
|
|
170
170
|
const team = identity.teamName === undefined ? "" : ` — team ${identity.teamName}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -145,18 +145,18 @@ export async function cmdDeploy(options) {
|
|
|
145
145
|
for (const target of targets) {
|
|
146
146
|
manifests.push(await readDeployManifest(target.dir));
|
|
147
147
|
}
|
|
148
|
-
if (manifests.every(manifest => manifest.architecture === "v2")) {
|
|
148
|
+
if (manifests.every((manifest) => manifest.architecture === "v2")) {
|
|
149
149
|
return deployAgentsdkApplication(ctx, options, targets, {
|
|
150
150
|
// `persistent` is per child agent, like `agentPath`: each release
|
|
151
151
|
// component carries its own.
|
|
152
152
|
componentPersistent: Object.fromEntries(targets.map((target, index) => [target.slug, manifests[index]?.persistent === true])),
|
|
153
153
|
componentImage: Object.fromEntries(targets.flatMap((target, index) => manifests[index]?.image === undefined ? [] : [[target.slug, manifests[index].image]])),
|
|
154
|
-
hasScmChannels: manifests.some(manifest => manifest.hasScmChannels),
|
|
154
|
+
hasScmChannels: manifests.some((manifest) => manifest.hasScmChannels),
|
|
155
155
|
declaredSecretNames: declaredSecretNames(manifests),
|
|
156
|
-
hasDeploymentsChannels: manifests.some(manifest => manifest.hasDeploymentsChannels),
|
|
156
|
+
hasDeploymentsChannels: manifests.some((manifest) => manifest.hasDeploymentsChannels),
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
|
-
if (!ctx.json && manifests.some(manifest => manifest.architecture === "v2")) {
|
|
159
|
+
if (!ctx.json && manifests.some((manifest) => manifest.architecture === "v2")) {
|
|
160
160
|
ctx.err(`warning: agents under this parent mix architectures; deploying each separately (v2 children become standalone single-component applications).\n`);
|
|
161
161
|
}
|
|
162
162
|
// --path is per-agent (relative to the repo root). When deploying several
|
|
@@ -254,7 +254,7 @@ async function resolveDeployTargets(options, ctx) {
|
|
|
254
254
|
}
|
|
255
255
|
// Deploy slugs are lowercase-only; normalize directory names the same way
|
|
256
256
|
// single-agent deploy does so MixedCase child dirs still deploy.
|
|
257
|
-
children = children.flatMap(child => {
|
|
257
|
+
children = children.flatMap((child) => {
|
|
258
258
|
const slug = slugFromDirectoryName(basename(child.dir));
|
|
259
259
|
if (slug === undefined) {
|
|
260
260
|
return [];
|
|
@@ -301,13 +301,13 @@ async function resolveDeployTargets(options, ctx) {
|
|
|
301
301
|
// Multiple children.
|
|
302
302
|
if (options.all === true) {
|
|
303
303
|
if (!ctx.json) {
|
|
304
|
-
ctx.err(`Deploying all ${children.length} agents under ${basename(dir)}: ${children.map(c => c.slug).join(", ")}.\n`);
|
|
304
|
+
ctx.err(`Deploying all ${children.length} agents under ${basename(dir)}: ${children.map((c) => c.slug).join(", ")}.\n`);
|
|
305
305
|
}
|
|
306
306
|
return [...children];
|
|
307
307
|
}
|
|
308
308
|
if (options.slug !== undefined) {
|
|
309
309
|
const wanted = options.slug.toLowerCase();
|
|
310
|
-
const match = children.find(child => child.slug === wanted);
|
|
310
|
+
const match = children.find((child) => child.slug === wanted);
|
|
311
311
|
if (match === undefined) {
|
|
312
312
|
ctx.err(`No agent "${options.slug}" under ${dir}.\n` +
|
|
313
313
|
formatAgentList(children) +
|
|
@@ -327,7 +327,7 @@ async function resolveDeployTargets(options, ctx) {
|
|
|
327
327
|
return [...children];
|
|
328
328
|
}
|
|
329
329
|
const chooser = options.chooseTargets ??
|
|
330
|
-
(agents => promptChooseDeployTargets(agents, {
|
|
330
|
+
((agents) => promptChooseDeployTargets(agents, {
|
|
331
331
|
err: ctx.err,
|
|
332
332
|
stdin: options.stdin ?? process.stdin,
|
|
333
333
|
interactive: ctx.json !== true &&
|
|
@@ -396,7 +396,7 @@ export async function promptChooseDeployTargets(agents, options) {
|
|
|
396
396
|
asIndex <= agents.length) {
|
|
397
397
|
return [agents[asIndex - 1]];
|
|
398
398
|
}
|
|
399
|
-
const bySlug = agents.find(agent => agent.slug.toLowerCase() === answer);
|
|
399
|
+
const bySlug = agents.find((agent) => agent.slug.toLowerCase() === answer);
|
|
400
400
|
if (bySlug !== undefined) {
|
|
401
401
|
return [bySlug];
|
|
402
402
|
}
|
|
@@ -462,7 +462,7 @@ async function deployOne(ctx, options, target, extras) {
|
|
|
462
462
|
const egressAllowedDomains = [
|
|
463
463
|
...new Set([...(hosting?.egressDomains ?? []), ...(options.allowDomains ?? [])]),
|
|
464
464
|
];
|
|
465
|
-
const publicRoutePaths = (manifest?.publicChannelIds ?? []).map(channelId => `/v1/channels/${channelId}`);
|
|
465
|
+
const publicRoutePaths = (manifest?.publicChannelIds ?? []).map((channelId) => `/v1/channels/${channelId}`);
|
|
466
466
|
if (!ctx.json && manifest?.httpChannelPublicEndpoint === true) {
|
|
467
467
|
ctx.err(`warning: publicEndpoint() on the built-in HTTP channel has no effect on hosting — only custom channels (/v1/channels/…) can be public; the session API always requires the alias token.\n`);
|
|
468
468
|
}
|
|
@@ -478,13 +478,13 @@ async function deployOne(ctx, options, target, extras) {
|
|
|
478
478
|
// Mounted packages widen the pod's egress without an agent.ts edit; name
|
|
479
479
|
// each one before the deploy is accepted.
|
|
480
480
|
ctx.err(` egress from extensions: ${extensionEgress
|
|
481
|
-
.map(entry => `${entry.extension} (${entry.egressDomains.join(", ")})`)
|
|
481
|
+
.map((entry) => `${entry.extension} (${entry.egressDomains.join(", ")})`)
|
|
482
482
|
.join("; ")}\n`);
|
|
483
483
|
}
|
|
484
484
|
const deadSecretChannels = manifest?.publicChannelIdsWithDeadSecretPolicies ?? [];
|
|
485
485
|
if (!ctx.json && deadSecretChannels.length > 0) {
|
|
486
486
|
ctx.err(`warning: ${deadSecretChannels
|
|
487
|
-
.map(channelId => `/v1/channels/${channelId}`)
|
|
487
|
+
.map((channelId) => `/v1/channels/${channelId}`)
|
|
488
488
|
.join(", ")}: publicEndpoint() sits beside sharedSecretAuth()/hmacSignatureAuth() — auth chains are any-of, so every request is admitted and those secret policies never run. Drop publicEndpoint() to enforce them, or drop them to make the intent explicit.\n`);
|
|
489
489
|
}
|
|
490
490
|
if (manifest?.architecture === "v2") {
|
|
@@ -588,7 +588,7 @@ async function deployOne(ctx, options, target, extras) {
|
|
|
588
588
|
// Paste-ready webhook URLs: these subtrees skip the alias token, so
|
|
589
589
|
// the channel handler must verify deliveries (webhook signatures).
|
|
590
590
|
deployedPublicRoutes
|
|
591
|
-
.map(path => ` public: ${aliasUrl}${path} (no alias token)\n`)
|
|
591
|
+
.map((path) => ` public: ${aliasUrl}${path} (no alias token)\n`)
|
|
592
592
|
.join(""));
|
|
593
593
|
await runPostDeployConnectorAuth(ctx, options, {
|
|
594
594
|
slug,
|
|
@@ -635,7 +635,7 @@ async function deployAgentsdkApplication(ctx, options, targets, declarations) {
|
|
|
635
635
|
return 1;
|
|
636
636
|
}
|
|
637
637
|
}
|
|
638
|
-
const components = targets.map(target => ({
|
|
638
|
+
const components = targets.map((target) => ({
|
|
639
639
|
componentKey: target.slug,
|
|
640
640
|
agentPath: [parentPath, basename(target.dir)]
|
|
641
641
|
.filter((part) => part !== undefined && part !== "")
|
|
@@ -648,7 +648,7 @@ async function deployAgentsdkApplication(ctx, options, targets, declarations) {
|
|
|
648
648
|
` architecture: v2\n` +
|
|
649
649
|
` source: ${gitRepoUrl}${gitRef === undefined ? "" : ` @ ${gitRef}`}\n` +
|
|
650
650
|
components
|
|
651
|
-
.map(component => ` component: ${component.componentKey} (${component.agentPath ?? "."})${component.persistent ? " persistent" : ""}${component.image === undefined ? "" : ` image ${component.image}`}\n`)
|
|
651
|
+
.map((component) => ` component: ${component.componentKey} (${component.agentPath ?? "."})${component.persistent ? " persistent" : ""}${component.image === undefined ? "" : ` image ${component.image}`}\n`)
|
|
652
652
|
.join(""));
|
|
653
653
|
}
|
|
654
654
|
return deployOneAgentsdk(ctx, undefined, {
|
|
@@ -674,7 +674,7 @@ async function deployOneAgentsdk(ctx, extras, args) {
|
|
|
674
674
|
const { slug } = args;
|
|
675
675
|
const componentsLine = args.components === undefined
|
|
676
676
|
? ""
|
|
677
|
-
: ` components: ${args.components.map(component => component.componentKey).join(", ")}\n`;
|
|
677
|
+
: ` components: ${args.components.map((component) => component.componentKey).join(", ")}\n`;
|
|
678
678
|
if (args.multiTenant && !ctx.json) {
|
|
679
679
|
ctx.err(" multi-tenant: existing product\n");
|
|
680
680
|
}
|
|
@@ -749,7 +749,7 @@ async function deployOneAgentsdk(ctx, extras, args) {
|
|
|
749
749
|
(args.components === undefined
|
|
750
750
|
? ""
|
|
751
751
|
: ` components: ${args.components
|
|
752
|
-
.map(component => component.componentKey)
|
|
752
|
+
.map((component) => component.componentKey)
|
|
753
753
|
.join(", ")}\n`) +
|
|
754
754
|
(detail.repositories === undefined || !watchesRepositories
|
|
755
755
|
? ""
|
|
@@ -834,42 +834,42 @@ async function readDeployManifest(dir) {
|
|
|
834
834
|
// diagnostics (e.g. agent/storage.ts on architecture v2) would only be
|
|
835
835
|
// refused later by `serve` inside the hosted build, wasting a bake.
|
|
836
836
|
if (hasErrorDiagnostics(project)) {
|
|
837
|
-
throw new Error(`Refusing to deploy ${project.name} — it has errors:\n${formatDiagnostics(project.diagnostics.filter(d => d.severity === "error"))}`);
|
|
837
|
+
throw new Error(`Refusing to deploy ${project.name} — it has errors:\n${formatDiagnostics(project.diagnostics.filter((d) => d.severity === "error"))}`);
|
|
838
838
|
}
|
|
839
839
|
return {
|
|
840
840
|
hosting: project.agent.hosting,
|
|
841
841
|
architecture: project.agent.architecture,
|
|
842
842
|
persistent: project.agent.persistent === true,
|
|
843
843
|
image: project.agent.hosting?.image,
|
|
844
|
-
cursorAccountConnections: project.agent.connections.flatMap(connection => isCursorAccountTransport(connection.transport)
|
|
844
|
+
cursorAccountConnections: project.agent.connections.flatMap((connection) => isCursorAccountTransport(connection.transport)
|
|
845
845
|
? [{ name: connection.name, servers: connection.transport.servers }]
|
|
846
846
|
: []),
|
|
847
847
|
publicChannelIds: project.channels
|
|
848
|
-
.filter(channel => (channel.definition.auth ?? []).some(isPublicEndpointPolicy))
|
|
849
|
-
.map(channel => channel.id),
|
|
848
|
+
.filter((channel) => (channel.definition.auth ?? []).some(isPublicEndpointPolicy))
|
|
849
|
+
.map((channel) => channel.id),
|
|
850
850
|
publicChannelIdsWithDeadSecretPolicies: project.channels
|
|
851
|
-
.filter(channel => {
|
|
851
|
+
.filter((channel) => {
|
|
852
852
|
const auth = channel.definition.auth ?? [];
|
|
853
853
|
return (auth.some(isPublicEndpointPolicy) &&
|
|
854
|
-
auth.some(policy => {
|
|
854
|
+
auth.some((policy) => {
|
|
855
855
|
const kind = catchAuthDeclaration(policy)?.kind;
|
|
856
856
|
return kind !== undefined && kind !== "public";
|
|
857
857
|
}));
|
|
858
858
|
})
|
|
859
|
-
.map(channel => channel.id),
|
|
859
|
+
.map((channel) => channel.id),
|
|
860
860
|
httpChannelPublicEndpoint: (project.httpChannel.auth ?? []).some(isPublicEndpointPolicy),
|
|
861
861
|
catchSecretNames: [
|
|
862
|
-
...new Set(project.channels.flatMap(channel => channelCatchSecretNames(channel.definition))),
|
|
862
|
+
...new Set(project.channels.flatMap((channel) => channelCatchSecretNames(channel.definition))),
|
|
863
863
|
],
|
|
864
864
|
credentialSecretNames: [
|
|
865
|
-
...new Set(project.channels.flatMap(channel => channelCredentialSecretNames(channel.definition))),
|
|
865
|
+
...new Set(project.channels.flatMap((channel) => channelCredentialSecretNames(channel.definition))),
|
|
866
866
|
],
|
|
867
|
-
hasScmChannels: project.channels.some(channel => {
|
|
867
|
+
hasScmChannels: project.channels.some((channel) => {
|
|
868
868
|
const kind = channel.definition.meta?.kind;
|
|
869
869
|
return kind === "github" || kind === "origin";
|
|
870
870
|
}),
|
|
871
|
-
hasDeploymentsChannels: project.channels.some(channel => channel.definition.meta?.kind === "deployments"),
|
|
872
|
-
extensionEgress: (project.agent.extensions ?? []).flatMap(extension => {
|
|
871
|
+
hasDeploymentsChannels: project.channels.some((channel) => channel.definition.meta?.kind === "deployments"),
|
|
872
|
+
extensionEgress: (project.agent.extensions ?? []).flatMap((extension) => {
|
|
873
873
|
const egressDomains = extension.hosting?.egressDomains ?? [];
|
|
874
874
|
return egressDomains.length === 0 ? [] : [{ extension: extension.name, egressDomains }];
|
|
875
875
|
}),
|
|
@@ -882,7 +882,7 @@ async function readDeployManifest(dir) {
|
|
|
882
882
|
*/
|
|
883
883
|
function declaredSecretNames(manifests) {
|
|
884
884
|
return [
|
|
885
|
-
...new Set(manifests.flatMap(manifest => manifest === undefined
|
|
885
|
+
...new Set(manifests.flatMap((manifest) => manifest === undefined
|
|
886
886
|
? []
|
|
887
887
|
: [
|
|
888
888
|
...(manifest.hosting?.secretNames ?? []),
|
|
@@ -902,7 +902,7 @@ function warnMissingSecrets(ctx, slug, declared, set) {
|
|
|
902
902
|
const setNames = new Set(set ?? []);
|
|
903
903
|
// Platform-managed names (CURSOR_*, hosted storage) are injected by the
|
|
904
904
|
// control plane and never appear in secrets list — do not warn on them.
|
|
905
|
-
const missing = declared.filter(name => !setNames.has(name) && !isReservedSecretName(name));
|
|
905
|
+
const missing = declared.filter((name) => !setNames.has(name) && !isReservedSecretName(name));
|
|
906
906
|
if (missing.length === 0) {
|
|
907
907
|
return;
|
|
908
908
|
}
|
|
@@ -946,7 +946,7 @@ export async function cmdDeployments(options) {
|
|
|
946
946
|
return 0;
|
|
947
947
|
}
|
|
948
948
|
ctx.out(`${renderTable(["SLUG", "ARCH", "STATUS", "GEN", "KIND", "UPDATED"], [
|
|
949
|
-
...deployments.map(d => [
|
|
949
|
+
...deployments.map((d) => [
|
|
950
950
|
d.slug,
|
|
951
951
|
"v1",
|
|
952
952
|
d.status,
|
|
@@ -954,14 +954,14 @@ export async function cmdDeployments(options) {
|
|
|
954
954
|
d.deploymentKind,
|
|
955
955
|
d.desiredUpdatedAt ?? "",
|
|
956
956
|
]),
|
|
957
|
-
...applications.map(application => [
|
|
957
|
+
...applications.map((application) => [
|
|
958
958
|
application.slug,
|
|
959
959
|
"v2",
|
|
960
960
|
application.status,
|
|
961
961
|
"-",
|
|
962
962
|
"application",
|
|
963
963
|
application.deployments
|
|
964
|
-
.map(row => row.desiredUpdatedAt)
|
|
964
|
+
.map((row) => row.desiredUpdatedAt)
|
|
965
965
|
.sort()
|
|
966
966
|
.at(-1) ?? "",
|
|
967
967
|
]),
|
|
@@ -1075,7 +1075,7 @@ function livePublicWebhookLines(ctx, detail) {
|
|
|
1075
1075
|
return "";
|
|
1076
1076
|
}
|
|
1077
1077
|
return (detail.publicRoutePaths ?? [])
|
|
1078
|
-
.map(path => ` public: ${ctx.client.aliasUrl(engineAlias)}${path} (no alias token)\n`)
|
|
1078
|
+
.map((path) => ` public: ${ctx.client.aliasUrl(engineAlias)}${path} (no alias token)\n`)
|
|
1079
1079
|
.join("");
|
|
1080
1080
|
}
|
|
1081
1081
|
function renderAgentkitDeploymentStatus(ctx, detail) {
|
|
@@ -1535,7 +1535,7 @@ export async function cmdSecretsSet(slug, specs, options) {
|
|
|
1535
1535
|
}
|
|
1536
1536
|
parsed.push(eq === -1 ? { name } : { name, value: spec.slice(eq + 1) });
|
|
1537
1537
|
}
|
|
1538
|
-
const hasArgvValues = parsed.some(entry => entry.value !== undefined);
|
|
1538
|
+
const hasArgvValues = parsed.some((entry) => entry.value !== undefined);
|
|
1539
1539
|
if (hasArgvValues && options.fromArgv !== true) {
|
|
1540
1540
|
usageErr(`Refusing NAME=VALUE on argv (shows up in shell history and agent-captured terminals).\n` +
|
|
1541
1541
|
`Pass names only:\n` +
|
|
@@ -1629,7 +1629,7 @@ export async function cmdSecretsList(slug, options) {
|
|
|
1629
1629
|
ctx.out(`No secrets set on ${slug}. Add one with \`${CLI} secrets set ${slug} NAME\`.\n`);
|
|
1630
1630
|
return 0;
|
|
1631
1631
|
}
|
|
1632
|
-
ctx.out(`${renderTable(["NAME", "CREATED"], secrets.map(secret => [secret.name, secret.createdAt]))}\n`);
|
|
1632
|
+
ctx.out(`${renderTable(["NAME", "CREATED"], secrets.map((secret) => [secret.name, secret.createdAt]))}\n`);
|
|
1633
1633
|
return 0;
|
|
1634
1634
|
}
|
|
1635
1635
|
export async function cmdSecretsUnset(slug, name, options) {
|
|
@@ -1678,7 +1678,7 @@ export async function cmdSecretsUnset(slug, name, options) {
|
|
|
1678
1678
|
*/
|
|
1679
1679
|
function createSecretValueReader(stdin, err) {
|
|
1680
1680
|
if (stdin.isTTY === true) {
|
|
1681
|
-
return name => promptHidden(stdin, err, `Value for ${name}: `);
|
|
1681
|
+
return (name) => promptHidden(stdin, err, `Value for ${name}: `);
|
|
1682
1682
|
}
|
|
1683
1683
|
const readLine = createLineReader(stdin);
|
|
1684
1684
|
return async (name) => {
|
|
@@ -1831,7 +1831,7 @@ export function createLineReader(stream) {
|
|
|
1831
1831
|
drain();
|
|
1832
1832
|
});
|
|
1833
1833
|
stream.resume();
|
|
1834
|
-
return () => new Promise(resolvePromise => {
|
|
1834
|
+
return () => new Promise((resolvePromise) => {
|
|
1835
1835
|
waiters.push(resolvePromise);
|
|
1836
1836
|
drain();
|
|
1837
1837
|
});
|
|
@@ -2000,7 +2000,7 @@ export function renderApiError(error, err, context) {
|
|
|
2000
2000
|
throw error;
|
|
2001
2001
|
}
|
|
2002
2002
|
export function renderTable(header, rows) {
|
|
2003
|
-
const widths = header.map((h, i) => Math.max(h.length, ...rows.map(row => (row[i] ?? "").length)));
|
|
2003
|
+
const widths = header.map((h, i) => Math.max(h.length, ...rows.map((row) => (row[i] ?? "").length)));
|
|
2004
2004
|
const renderRow = (row) => row
|
|
2005
2005
|
.map((cell, i) => cell.padEnd(widths[i] ?? 0))
|
|
2006
2006
|
.join(" ")
|
|
@@ -8,8 +8,8 @@ import { PACKAGE_NAME } from "./distribution.js";
|
|
|
8
8
|
import { docsSiteExists, ensureDocsSiteBundle, renderDocsFile } from "./docs-site.js";
|
|
9
9
|
import { openBrowser } from "./open-browser.js";
|
|
10
10
|
export async function cmdDocs(options = {}) {
|
|
11
|
-
const stdout = options.stdoutWrite ?? (c => void process.stdout.write(c));
|
|
12
|
-
const stderr = options.stderrWrite ?? (c => void process.stderr.write(c));
|
|
11
|
+
const stdout = options.stdoutWrite ?? ((c) => void process.stdout.write(c));
|
|
12
|
+
const stderr = options.stderrWrite ?? ((c) => void process.stderr.write(c));
|
|
13
13
|
await (options.ensureBundle ?? ensureDocsSiteBundle)();
|
|
14
14
|
if (!(options.siteExists ?? docsSiteExists)()) {
|
|
15
15
|
stderr(`Documentation site is missing from this install. Reinstall ${PACKAGE_NAME}, or from a source checkout run: pnpm run docs:build\n`);
|
|
@@ -20,7 +20,7 @@ export async function cmdDocs(options = {}) {
|
|
|
20
20
|
handle = await startDocsServer({
|
|
21
21
|
port: options.port ?? 0,
|
|
22
22
|
host: options.host ?? "127.0.0.1",
|
|
23
|
-
renderFile: options.renderFile ?? (path => renderDocsFile(path)),
|
|
23
|
+
renderFile: options.renderFile ?? ((path) => renderDocsFile(path)),
|
|
24
24
|
createServerImpl: options.createServerImpl ?? createServer,
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -49,7 +49,7 @@ export async function cmdDocs(options = {}) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
try {
|
|
52
|
-
await new Promise(resolve => {
|
|
52
|
+
await new Promise((resolve) => {
|
|
53
53
|
if (controller.signal.aborted) {
|
|
54
54
|
resolve();
|
|
55
55
|
return;
|
|
@@ -87,7 +87,7 @@ export async function startDocsServer(args) {
|
|
|
87
87
|
docsUrl: `${url}/docs/`,
|
|
88
88
|
port: address.port,
|
|
89
89
|
close: () => new Promise((resolve, reject) => {
|
|
90
|
-
server.close(err => (err !== undefined ? reject(err) : resolve()));
|
|
90
|
+
server.close((err) => (err !== undefined ? reject(err) : resolve()));
|
|
91
91
|
}),
|
|
92
92
|
};
|
|
93
93
|
}
|
|
@@ -177,10 +177,10 @@ async function cmdGithubReplay(options) {
|
|
|
177
177
|
const port = options.port ?? DEFAULT_PORT;
|
|
178
178
|
let candidates = channels;
|
|
179
179
|
if (options.slug !== undefined) {
|
|
180
|
-
candidates = candidates.filter(c => c.slug === options.slug);
|
|
180
|
+
candidates = candidates.filter((c) => c.slug === options.slug);
|
|
181
181
|
}
|
|
182
182
|
if (options.channel !== undefined) {
|
|
183
|
-
candidates = candidates.filter(c => c.channelId === options.channel);
|
|
183
|
+
candidates = candidates.filter((c) => c.channelId === options.channel);
|
|
184
184
|
}
|
|
185
185
|
if (options.url !== undefined && candidates.length > 1) {
|
|
186
186
|
process.stderr.write("--url targets a single channel; narrow with --slug/--channel\n");
|
|
@@ -192,7 +192,7 @@ async function cmdGithubReplay(options) {
|
|
|
192
192
|
return 1;
|
|
193
193
|
}
|
|
194
194
|
const targets = options.url === undefined
|
|
195
|
-
? candidates.map(c => ({
|
|
195
|
+
? candidates.map((c) => ({
|
|
196
196
|
slug: c.slug,
|
|
197
197
|
channelId: c.channelId,
|
|
198
198
|
url: channelForwardUrl({
|
|
@@ -233,7 +233,7 @@ async function cmdGithubReplay(options) {
|
|
|
233
233
|
return 1;
|
|
234
234
|
}
|
|
235
235
|
// Best-effort: mirror a real CI check (app slug / conclusion) for CI events.
|
|
236
|
-
const wantsCi = eventsToReplay.some(event => ["check_run", "check_suite", "workflow_run", "status"].includes(event));
|
|
236
|
+
const wantsCi = eventsToReplay.some((event) => ["check_run", "check_suite", "workflow_run", "status"].includes(event));
|
|
237
237
|
const check = wantsCi ? await fetchReplayCheck(ref, pull.head.sha) : undefined;
|
|
238
238
|
const synthesized = [];
|
|
239
239
|
for (const event of eventsToReplay) {
|
|
@@ -259,7 +259,7 @@ async function cmdGithubReplay(options) {
|
|
|
259
259
|
}
|
|
260
260
|
const secret = options.secret ?? process.env.GITHUB_WEBHOOK_SECRET;
|
|
261
261
|
process.stderr.write(`[bdk] replaying ${ref.label} (${synthesized
|
|
262
|
-
.map(s => s.eventName)
|
|
262
|
+
.map((s) => s.eventName)
|
|
263
263
|
.join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
|
|
264
264
|
const report = [];
|
|
265
265
|
let anyRejected = false;
|
|
@@ -286,13 +286,13 @@ async function cmdGithubReplay(options) {
|
|
|
286
286
|
continue;
|
|
287
287
|
}
|
|
288
288
|
const deliveries = await deliverReplayEvent(body, headers, event.eventName, targets);
|
|
289
|
-
if (deliveries.length === 0 || deliveries.some(delivery => !delivery.ok)) {
|
|
289
|
+
if (deliveries.length === 0 || deliveries.some((delivery) => !delivery.ok)) {
|
|
290
290
|
anyRejected = true;
|
|
291
291
|
}
|
|
292
292
|
report.push({ ...eventReport(event), deliveries });
|
|
293
293
|
if (options.json !== true) {
|
|
294
294
|
const summary = deliveries
|
|
295
|
-
.map(delivery => `${delivery.label} ${delivery.status || "ERR"}${delivery.ok ? "" : " (rejected)"}`)
|
|
295
|
+
.map((delivery) => `${delivery.label} ${delivery.status || "ERR"}${delivery.ok ? "" : " (rejected)"}`)
|
|
296
296
|
.join(", ") || "(no matching channel)";
|
|
297
297
|
process.stderr.write(`[bdk] ${label} → ${summary}\n`);
|
|
298
298
|
}
|
|
@@ -304,7 +304,7 @@ async function cmdGithubReplay(options) {
|
|
|
304
304
|
}
|
|
305
305
|
/** POST one synthesized event to every channel whose event set matches. */
|
|
306
306
|
async function deliverReplayEvent(body, headers, eventName, targets) {
|
|
307
|
-
const recipients = targets.filter(target => target.events.length === 0 || target.events.includes(eventName));
|
|
307
|
+
const recipients = targets.filter((target) => target.events.length === 0 || target.events.includes(eventName));
|
|
308
308
|
const payload = new Uint8Array(body);
|
|
309
309
|
// Bounded by the channel count (a handful) — see fanoutDelivery.
|
|
310
310
|
return Promise.all(recipients.map(async (target) => {
|
|
@@ -350,7 +350,7 @@ async function fetchReplayCheck(ref, sha) {
|
|
|
350
350
|
try {
|
|
351
351
|
const data = await ghApiJson(`repos/${ref.owner}/${ref.repo}/commits/${sha}/check-runs?per_page=100`);
|
|
352
352
|
const runs = data.check_runs ?? [];
|
|
353
|
-
const chosen = runs.find(run => run.conclusion === "failure") ?? runs[0];
|
|
353
|
+
const chosen = runs.find((run) => run.conclusion === "failure") ?? runs[0];
|
|
354
354
|
if (chosen === undefined) {
|
|
355
355
|
return undefined;
|
|
356
356
|
}
|
|
@@ -386,7 +386,7 @@ async function cmdGithubEvents(options) {
|
|
|
386
386
|
});
|
|
387
387
|
if (options.json) {
|
|
388
388
|
process.stdout.write(`${JSON.stringify({
|
|
389
|
-
channels: targets.map(t => ({
|
|
389
|
+
channels: targets.map((t) => ({
|
|
390
390
|
slug: t.slug,
|
|
391
391
|
channelId: t.channelId,
|
|
392
392
|
url: urlFor(t),
|
|
@@ -479,7 +479,7 @@ async function cmdGithubDoctor(options) {
|
|
|
479
479
|
}
|
|
480
480
|
function reportDoctor(checks, json) {
|
|
481
481
|
// Warnings (e.g. an env-token override) are advisory and do not fail doctor.
|
|
482
|
-
const ok = checks.every(check => check.ok || check.warn === true);
|
|
482
|
+
const ok = checks.every((check) => check.ok || check.warn === true);
|
|
483
483
|
if (json === true) {
|
|
484
484
|
process.stdout.write(`${JSON.stringify({ ok, checks }, null, 2)}\n`);
|
|
485
485
|
}
|
|
@@ -565,7 +565,7 @@ async function tryExec(options) {
|
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
567
|
function spawnGh(args) {
|
|
568
|
-
return new Promise(resolve => {
|
|
568
|
+
return new Promise((resolve) => {
|
|
569
569
|
const child = spawn("gh", args, { stdio: "inherit" });
|
|
570
570
|
const forward = (signal) => {
|
|
571
571
|
if (!child.killed) {
|
|
@@ -574,7 +574,7 @@ function spawnGh(args) {
|
|
|
574
574
|
};
|
|
575
575
|
process.on("SIGINT", forward);
|
|
576
576
|
process.on("SIGTERM", forward);
|
|
577
|
-
child.on("error", error => {
|
|
577
|
+
child.on("error", (error) => {
|
|
578
578
|
process.stderr.write(`failed to run gh: ${error.message}\n`);
|
|
579
579
|
resolve(1);
|
|
580
580
|
});
|
|
@@ -590,11 +590,11 @@ function parseEventList(value) {
|
|
|
590
590
|
}
|
|
591
591
|
const events = value
|
|
592
592
|
.split(/[\s,]+/)
|
|
593
|
-
.map(event => event.trim())
|
|
593
|
+
.map((event) => event.trim())
|
|
594
594
|
.filter(Boolean);
|
|
595
595
|
return events.length === 0 ? undefined : events;
|
|
596
596
|
}
|
|
597
597
|
/** Render the gh argv for logging with the signing secret masked. */
|
|
598
598
|
function redact(args) {
|
|
599
|
-
return args.map(arg => (arg.startsWith("--secret=") ? "--secret=***" : arg)).join(" ");
|
|
599
|
+
return args.map((arg) => (arg.startsWith("--secret=") ? "--secret=***" : arg)).join(" ");
|
|
600
600
|
}
|