@cursor/bdk 0.2.11 → 0.2.13
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/github/index.d.ts +22 -12
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +11 -12
- 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/index.d.ts +21 -11
- package/dist/channels/origin/index.d.ts.map +1 -1
- package/dist/channels/origin/index.js +10 -11
- 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.CaLG1pPt.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.DvlKuIO-.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BrbO5mEe.js → VPLocalSearchBox.YsP_2wqD.js} +2 -2
- package/dist/docs/assets/chunks/{arc.BOG1yms8.js → arc.C2j9hR7c.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C0hsMZnZ.js → architectureDiagram-Q4EWVU46.C5qkGp7y.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.H044KjKs.js → baseUniq.U6GgTHOD.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BsRW6GoB.js → blockDiagram-DXYQGD6D.D51mJop2.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.B9HV5PFR.js → c4Diagram-AHTNJAMY.w1d6QxV7.js} +1 -1
- package/dist/docs/assets/chunks/channel.BRSFxCcD.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CPoT_ajl.js → chunk-4BX2VUAB.B_A815un.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DZBwWuCL.js → chunk-4TB4RGXK.DMrm-ZCb.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.CZ3yTiyq.js → chunk-55IACEB6.8qw6Xdal.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.6DfvHSd8.js → chunk-EDXVE4YY.Cq_nHODn.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CpBj8HfK.js → chunk-FMBD7UC4.B67ohCYn.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BdKo8YqS.js → chunk-OYMX7WX6.Bo8rQI8F.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnXNyxJx.js → chunk-QZHKN3VN.BERUMfE9.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cg1OcF8G.js → chunk-YZCP3GAM.DWG2tXIX.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Cmtm6WkN.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Cmtm6WkN.js +1 -0
- package/dist/docs/assets/chunks/clone.JMC96Eo6.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.1SP8al9c.js → cose-bilkent-S5V4N54A.tezXBs9b.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DS1L6hJt.js → dagre-KV5264BT.aSbEUwT7.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.ChsausbG.js → diagram-5BDNPKRD.vnT6aJ57.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.3XsptNWj.js → diagram-G4DWMVQ6.hGYdrDa2.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DPA9Dk_P.js → diagram-MMDJMWI5.CmdSUP6L.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.BVswXWrB.js → diagram-TYMM5635.BbAnLEBB.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BSak5OSP.js → erDiagram-SMLLAGMA.H40W4HWE.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CQgN4TTz.js → flowDiagram-DWJPFMVM.BFMtUSv-.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.GrT0kA4a.js → ganttDiagram-T4ZO3ILL.CbYiu7Dt.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CdS7Ucll.js → gitGraphDiagram-UUTBAWPF.Cyc5mzZD.js} +1 -1
- package/dist/docs/assets/chunks/{graph.BVqKRmRo.js → graph.BRptDG1H.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.C3C9FRto.js → infoDiagram-42DDH7IO.Bz6KCA3a.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js → ishikawaDiagram-UXIWVN3A.DDJ_7_Fq.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CaHMfK4b.js → journeyDiagram-VCZTEJTY.D0t_ltlb.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CjhIUwcA.js → kanban-definition-6JOO6SKY.DyyNsMfi.js} +1 -1
- package/dist/docs/assets/chunks/{layout.CGU3gfSf.js → layout.Cbxq-Rhp.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DaihpW_n.js → linear.DxGYL0MP.js} +1 -1
- package/dist/docs/assets/chunks/{min.BS-j8kHQ.js → min.DA5KL8wu.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BVJ1Bbnk.js → mindmap-definition-QFDTVHPH.Bc72Utls.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.Cz1WIv9r.js → pieDiagram-DEJITSTG.BtpHnIB_.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DKLFxcjy.js → quadrantDiagram-34T5L4WZ.Cx4oCSRR.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.BHegiK7x.js → requirementDiagram-MS252O5E.BC0hXWlW.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DYkY6yPc.js → sankeyDiagram-XADWPNL6.Dg8T1SEp.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DYQ1QUrI.js → sequenceDiagram-FGHM5R23.CWSdHYAF.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.Iru8BsFo.js → stateDiagram-FHFEXIEX.0MVPRI28.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.N4Am6sXd.js +1 -0
- package/dist/docs/assets/chunks/{theme.DaplWQhQ.js → theme.DO1avLBn.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BwFA8hiX.js → timeline-definition-GMOUNBTQ.BuRinAVi.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZ60W1C_.js → vennDiagram-DHZGUBPP.DXf0PCoJ.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD._eATmGtu.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.B69D2r8-.js → wardleyDiagram-NUSXRM2D.T4ThngYV.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CLPZEIU9.js → xychartDiagram-5P7HB3ND.b4pZF3D5.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_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
- 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 +40 -40
- 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.d.ts +4 -3
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +16 -7
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +21 -5
- 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.d.ts +14 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +33 -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.d.ts.map +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 +24 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +58 -14
- package/dist/internal/hosted-delivery.d.ts +6 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +64 -13
- package/dist/internal/hosted-eval-cases.js +4 -4
- package/dist/internal/hosted-execution-diag.js +3 -3
- package/dist/internal/hosted-managed-automation.d.ts +3 -3
- package/dist/internal/hosted-managed-automation.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.d.ts +13 -2
- package/dist/internal/schedule-runner.d.ts.map +1 -1
- package/dist/internal/schedule-runner.js +48 -9
- package/dist/internal/sdk-runner.d.ts +2 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +13 -8
- package/dist/internal/serve-restart.js +1 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +101 -76
- 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 +48 -0
- package/dist/internal/session-live-publisher.d.ts.map +1 -0
- package/dist/internal/session-live-publisher.js +415 -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/testing/conversation-identity-vectors.d.ts +48 -0
- package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -0
- package/dist/internal/testing/conversation-identity-vectors.js +136 -0
- 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-CzttDc-d.css +1 -0
- package/dist/playground/assets/{index-Be0-1hw2.js → index-DIiKbZ25.js} +42 -42
- 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 +21 -4
- 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
- /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
|
@@ -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
|
}
|
|
@@ -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 cmdGitlabReplay(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 } = selectGitLabReplayEvents(requested, declared);
|
|
136
136
|
if (unsupported.length > 0) {
|
|
137
137
|
process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
|
|
@@ -168,7 +168,7 @@ async function cmdGitlabReplay(options) {
|
|
|
168
168
|
method: "GET",
|
|
169
169
|
path: `/projects/${projectSegment}/merge_requests/${ref.iid}/pipelines`,
|
|
170
170
|
})
|
|
171
|
-
.then(list => list[0])
|
|
171
|
+
.then((list) => list[0])
|
|
172
172
|
.catch(() => undefined);
|
|
173
173
|
}
|
|
174
174
|
const synthesized = [];
|
|
@@ -221,13 +221,13 @@ async function cmdGitlabReplay(options) {
|
|
|
221
221
|
continue;
|
|
222
222
|
}
|
|
223
223
|
const deliveries = await deliverReplayEvent(body, headers, event.eventName, targets);
|
|
224
|
-
if (deliveries.length === 0 || deliveries.some(d => !d.ok)) {
|
|
224
|
+
if (deliveries.length === 0 || deliveries.some((d) => !d.ok)) {
|
|
225
225
|
anyRejected = true;
|
|
226
226
|
}
|
|
227
227
|
report.push({ ...eventReport(event), deliveries });
|
|
228
228
|
if (options.json !== true) {
|
|
229
229
|
const summary = deliveries
|
|
230
|
-
.map(d => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
|
|
230
|
+
.map((d) => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
|
|
231
231
|
.join(", ") || "(no matching channel)";
|
|
232
232
|
process.stderr.write(`[bdk] ${label} → ${summary}\n`);
|
|
233
233
|
}
|
|
@@ -238,7 +238,7 @@ async function cmdGitlabReplay(options) {
|
|
|
238
238
|
return anyRejected ? 1 : 0;
|
|
239
239
|
}
|
|
240
240
|
async function deliverReplayEvent(body, headers, eventName, targets) {
|
|
241
|
-
const recipients = targets.filter(target => target.events.length === 0 || target.events.includes(eventName));
|
|
241
|
+
const recipients = targets.filter((target) => target.events.length === 0 || target.events.includes(eventName));
|
|
242
242
|
return Promise.all(recipients.map(async (target) => {
|
|
243
243
|
const label = target.slug === "" ? target.channelId : `${target.slug}/${target.channelId}`;
|
|
244
244
|
try {
|
|
@@ -278,7 +278,7 @@ async function cmdGitlabEvents(options) {
|
|
|
278
278
|
const channels = findGitLabChannelTargets(await resolveAgentMounts(dir));
|
|
279
279
|
const host = options.host ?? DEFAULT_HOST;
|
|
280
280
|
const port = options.port ?? DEFAULT_PORT;
|
|
281
|
-
const rows = channels.map(c => ({
|
|
281
|
+
const rows = channels.map((c) => ({
|
|
282
282
|
slug: c.slug,
|
|
283
283
|
channelId: c.channelId,
|
|
284
284
|
url: channelForwardUrl({
|
|
@@ -344,7 +344,7 @@ function parseEventList(value) {
|
|
|
344
344
|
}
|
|
345
345
|
const events = value
|
|
346
346
|
.split(/[\s,]+/)
|
|
347
|
-
.map(event => event.trim())
|
|
347
|
+
.map((event) => event.trim())
|
|
348
348
|
.filter(Boolean);
|
|
349
349
|
return events.length === 0 ? undefined : events;
|
|
350
350
|
}
|
|
@@ -153,10 +153,10 @@ export function checkImage(inspected, probe) {
|
|
|
153
153
|
detail: "The image runs as a non-root user. The hosted state directory is mounted root-owned, so installs may fail to write it; prefer no USER instruction or USER root.",
|
|
154
154
|
});
|
|
155
155
|
const osIds = [probe.os ?? "", ...(probe.osLike ?? "").split(/\s+/)]
|
|
156
|
-
.map(id => id.trim().toLowerCase())
|
|
157
|
-
.filter(id => id !== "");
|
|
156
|
+
.map((id) => id.trim().toLowerCase())
|
|
157
|
+
.filter((id) => id !== "");
|
|
158
158
|
const osValue = probe.os === undefined || probe.os === "" ? "unknown" : probe.os;
|
|
159
|
-
if (osIds.some(id => KNOWN_GOOD_OS_IDS.has(id))) {
|
|
159
|
+
if (osIds.some((id) => KNOWN_GOOD_OS_IDS.has(id))) {
|
|
160
160
|
checks.push({ label: "base", value: osValue, status: "ok" });
|
|
161
161
|
}
|
|
162
162
|
else if (osIds.includes("alpine")) {
|
|
@@ -178,8 +178,8 @@ export function checkImage(inspected, probe) {
|
|
|
178
178
|
return checks;
|
|
179
179
|
}
|
|
180
180
|
function renderChecks(image, checks) {
|
|
181
|
-
const width = Math.max(...checks.map(check => check.label.length));
|
|
182
|
-
const valueWidth = Math.max(...checks.map(check => check.value.length));
|
|
181
|
+
const width = Math.max(...checks.map((check) => check.label.length));
|
|
182
|
+
const valueWidth = Math.max(...checks.map((check) => check.value.length));
|
|
183
183
|
const lines = [`Checking ${image}…`];
|
|
184
184
|
for (const check of checks) {
|
|
185
185
|
lines.push(` ${check.label.padEnd(width)} ${check.value.padEnd(valueWidth)} ${check.status}`);
|
|
@@ -190,18 +190,18 @@ function renderChecks(image, checks) {
|
|
|
190
190
|
return `${lines.join("\n")}\n`;
|
|
191
191
|
}
|
|
192
192
|
function runDocker(args) {
|
|
193
|
-
return new Promise(resolvePromise => {
|
|
193
|
+
return new Promise((resolvePromise) => {
|
|
194
194
|
const child = spawn("docker", args, { stdio: ["ignore", "pipe", "pipe"] });
|
|
195
195
|
let stdout = "";
|
|
196
196
|
let stderr = "";
|
|
197
|
-
child.stdout.on("data", chunk => {
|
|
197
|
+
child.stdout.on("data", (chunk) => {
|
|
198
198
|
stdout += String(chunk);
|
|
199
199
|
});
|
|
200
|
-
child.stderr.on("data", chunk => {
|
|
200
|
+
child.stderr.on("data", (chunk) => {
|
|
201
201
|
stderr += String(chunk);
|
|
202
202
|
});
|
|
203
|
-
child.on("error", error => resolvePromise({ code: 1, stdout: "", stderr: error.message }));
|
|
204
|
-
child.on("close", code => resolvePromise({ code, stdout, stderr }));
|
|
203
|
+
child.on("error", (error) => resolvePromise({ code: 1, stdout: "", stderr: error.message }));
|
|
204
|
+
child.on("close", (code) => resolvePromise({ code, stdout, stderr }));
|
|
205
205
|
});
|
|
206
206
|
}
|
|
207
207
|
/**
|
|
@@ -263,7 +263,7 @@ function shellDocker() {
|
|
|
263
263
|
save(image) {
|
|
264
264
|
const child = spawn("docker", savePlatform ? ["save", "--platform", REQUIRED_PLATFORM, image] : ["save", image], { stdio: ["ignore", "pipe", "inherit"] });
|
|
265
265
|
const stream = child.stdout;
|
|
266
|
-
child.on("close", code => {
|
|
266
|
+
child.on("close", (code) => {
|
|
267
267
|
if (code !== 0) {
|
|
268
268
|
stream.destroy(new Error(`docker save exited with ${code}`));
|
|
269
269
|
}
|
|
@@ -373,14 +373,14 @@ export async function cmdImagesPush(args, options) {
|
|
|
373
373
|
// Everything the hosted install needs is knowable locally; decide it
|
|
374
374
|
// before signing in or moving any bytes. The platform check gates the
|
|
375
375
|
// probe: a wrong-arch container cannot run here to be probed.
|
|
376
|
-
const checks = checkImage(inspected, inspected.platform === REQUIRED_PLATFORM ? await docker.probe(args.image) : undefined).filter(check => inspected.platform === REQUIRED_PLATFORM || check.label === "platform");
|
|
376
|
+
const checks = checkImage(inspected, inspected.platform === REQUIRED_PLATFORM ? await docker.probe(args.image) : undefined).filter((check) => inspected.platform === REQUIRED_PLATFORM || check.label === "platform");
|
|
377
377
|
if (options.json !== true) {
|
|
378
378
|
out(renderChecks(args.image, checks));
|
|
379
379
|
}
|
|
380
|
-
const failed = checks.filter(check => check.status === "failed");
|
|
380
|
+
const failed = checks.filter((check) => check.status === "failed");
|
|
381
381
|
if (failed.length > 0) {
|
|
382
382
|
err(`${args.image} cannot run as a hosted agent image:\n${failed
|
|
383
|
-
.map(check => ` ${check.label}: ${check.value}. ${check.detail ?? ""}`)
|
|
383
|
+
.map((check) => ` ${check.label}: ${check.value}. ${check.detail ?? ""}`)
|
|
384
384
|
.join("\n")}\n`);
|
|
385
385
|
return 1;
|
|
386
386
|
}
|
|
@@ -399,7 +399,7 @@ export async function cmdImagesPush(args, options) {
|
|
|
399
399
|
return renderApiError(error, ctx.err);
|
|
400
400
|
}
|
|
401
401
|
if (listed.images.length >= listed.limit &&
|
|
402
|
-
!listed.images.some(image => image.name === args.name)) {
|
|
402
|
+
!listed.images.some((image) => image.name === args.name)) {
|
|
403
403
|
ctx.err(`${listed.images.length} of ${listed.limit} images used; delete some at ${IMAGES_DASHBOARD_URL} or with \`${CLI} images rm <name>\`.\n`);
|
|
404
404
|
return 1;
|
|
405
405
|
}
|
|
@@ -476,7 +476,7 @@ export async function cmdImagesList(options) {
|
|
|
476
476
|
ctx.out(`No images pushed yet. Push one with \`${CLI} images push <local-image> --name <name>\`.\n`);
|
|
477
477
|
return 0;
|
|
478
478
|
}
|
|
479
|
-
ctx.out(`${renderTable(["NAME", "SIZE", "PLATFORM", "SHA256", "PUSHED"], listed.images.map(image => [
|
|
479
|
+
ctx.out(`${renderTable(["NAME", "SIZE", "PLATFORM", "SHA256", "PUSHED"], listed.images.map((image) => [
|
|
480
480
|
image.name,
|
|
481
481
|
formatBytes(image.sizeBytes),
|
|
482
482
|
image.platform ?? "",
|
|
@@ -20,7 +20,7 @@ export async function cmdManifest(options) {
|
|
|
20
20
|
for (const diagnostic of project.diagnostics) {
|
|
21
21
|
err(`${diagnostic.severity}: ${diagnostic.message}\n`);
|
|
22
22
|
}
|
|
23
|
-
if (project.diagnostics.some(d => d.severity === "error")) {
|
|
23
|
+
if (project.diagnostics.some((d) => d.severity === "error")) {
|
|
24
24
|
return 1;
|
|
25
25
|
}
|
|
26
26
|
const manifest = buildAgentDeployManifest(project);
|
|
@@ -36,13 +36,13 @@ function describe(error) {
|
|
|
36
36
|
return `${error.message}: ${detail}`;
|
|
37
37
|
}
|
|
38
38
|
export async function cmdMcpOauth(options) {
|
|
39
|
-
const err = options.err ?? (text => process.stderr.write(text));
|
|
40
|
-
const out = options.out ?? (text => process.stdout.write(text));
|
|
39
|
+
const err = options.err ?? ((text) => process.stderr.write(text));
|
|
40
|
+
const out = options.out ?? ((text) => process.stdout.write(text));
|
|
41
41
|
const project = await loadAgentProject(options.dir);
|
|
42
42
|
const authored = [...project.agent.connections, ...(project.agent.hostConnections ?? [])];
|
|
43
|
-
const connection = authored.find(entry => entry.name === options.connection);
|
|
43
|
+
const connection = authored.find((entry) => entry.name === options.connection);
|
|
44
44
|
if (connection === undefined) {
|
|
45
|
-
const known = authored.map(entry => entry.name).join(", ") || "(none)";
|
|
45
|
+
const known = authored.map((entry) => entry.name).join(", ") || "(none)";
|
|
46
46
|
err(`${LOG_PREFIX} Unknown MCP connection "${options.connection}". Authored: ${known}.\n`);
|
|
47
47
|
return 1;
|
|
48
48
|
}
|
|
@@ -96,7 +96,7 @@ export async function authorizeHostMcpOauth(args) {
|
|
|
96
96
|
const provider = await createHostMcpOAuthProvider({
|
|
97
97
|
identifier: connection,
|
|
98
98
|
resourceUrl: args.url,
|
|
99
|
-
onRedirect: url => {
|
|
99
|
+
onRedirect: (url) => {
|
|
100
100
|
authorizationUrl = url;
|
|
101
101
|
},
|
|
102
102
|
});
|
package/dist/internal/cli-mcp.js
CHANGED
|
@@ -120,7 +120,7 @@ export async function cmdMcpServe(options) {
|
|
|
120
120
|
}
|
|
121
121
|
emitFailure(stdout, line, outcome.message, err);
|
|
122
122
|
};
|
|
123
|
-
await new Promise(done => {
|
|
123
|
+
await new Promise((done) => {
|
|
124
124
|
let buffer = "";
|
|
125
125
|
const enqueueLine = (raw) => {
|
|
126
126
|
const line = raw.trim();
|
|
@@ -234,7 +234,7 @@ function createProdTargetSource(options, err) {
|
|
|
234
234
|
}
|
|
235
235
|
if (inFlight === undefined) {
|
|
236
236
|
inFlight = resolveFresh()
|
|
237
|
-
.then(target => {
|
|
237
|
+
.then((target) => {
|
|
238
238
|
cached = target;
|
|
239
239
|
return target;
|
|
240
240
|
})
|
|
@@ -607,7 +607,7 @@ function resolveServerName(name, fallback) {
|
|
|
607
607
|
}
|
|
608
608
|
/** Last path segment of the agent base URL (the mount slug), if any. */
|
|
609
609
|
function deriveNameFromUrl(baseUrl) {
|
|
610
|
-
const segments = new URL(baseUrl).pathname.split("/").filter(s => s !== "");
|
|
610
|
+
const segments = new URL(baseUrl).pathname.split("/").filter((s) => s !== "");
|
|
611
611
|
const last = segments.at(-1);
|
|
612
612
|
if (last === undefined || last === "") {
|
|
613
613
|
return undefined;
|
|
@@ -116,7 +116,7 @@ function reportFor(agentId, result) {
|
|
|
116
116
|
error: `Migration agent ended ${result.status}: ${result.error?.message ?? "no details"}`,
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
|
-
const prUrl = result.git?.branches.find(branch => branch.prUrl !== undefined)?.prUrl;
|
|
119
|
+
const prUrl = result.git?.branches.find((branch) => branch.prUrl !== undefined)?.prUrl;
|
|
120
120
|
if (prUrl === undefined) {
|
|
121
121
|
return { ok: false, status: "blocked", agentId, url, summary: result.result?.trim() };
|
|
122
122
|
}
|
|
@@ -11,8 +11,8 @@ import { CLI_COMMAND_NAME } from "./distribution.js";
|
|
|
11
11
|
import { formatSkillInstall, installCursorSkills, planSkillInstall, } from "./install-cursor-skills.js";
|
|
12
12
|
import { stdoutPalette } from "./terminal-style.js";
|
|
13
13
|
export async function cmdInstallSkills(options = {}) {
|
|
14
|
-
const out = options.out ?? (text => process.stdout.write(text));
|
|
15
|
-
const err = options.err ?? (text => process.stderr.write(text));
|
|
14
|
+
const out = options.out ?? ((text) => process.stdout.write(text));
|
|
15
|
+
const err = options.err ?? ((text) => process.stderr.write(text));
|
|
16
16
|
const plan = await planSkillInstall({
|
|
17
17
|
packageRoot: options.packageRoot,
|
|
18
18
|
skillsHome: options.skillsHome,
|
|
@@ -467,7 +467,7 @@ export async function cmdSlackCreate(options) {
|
|
|
467
467
|
}
|
|
468
468
|
ctx.out(`Slack is connected for ${target.slug}` +
|
|
469
469
|
(poll.appId === undefined ? "" : ` (app ${poll.appId})`) +
|
|
470
|
-
`.\n wrote ${envEntries.map(entry => entry.key).join(" + ")} to ${envFile}\n\n`);
|
|
470
|
+
`.\n wrote ${envEntries.map((entry) => entry.key).join(" + ")} to ${envFile}\n\n`);
|
|
471
471
|
const doctor = options.doctorImpl ?? runSlackDoctor;
|
|
472
472
|
const doctorResult = await doctor(target.envPrefix === undefined ? {} : { envPrefix: target.envPrefix });
|
|
473
473
|
ctx.out(renderDoctorReport(doctorResult));
|
|
@@ -489,10 +489,10 @@ async function resolveProvisionedApp(ctx, target, options) {
|
|
|
489
489
|
catch (error) {
|
|
490
490
|
return renderSlackApiError(error, ctx.err);
|
|
491
491
|
}
|
|
492
|
-
const sameSlug = status.apps.filter(app => app.slug === target.slug);
|
|
493
|
-
let candidates = sameSlug.filter(app => app.env === target.env);
|
|
492
|
+
const sameSlug = status.apps.filter((app) => app.slug === target.slug);
|
|
493
|
+
let candidates = sameSlug.filter((app) => app.env === target.env);
|
|
494
494
|
if (options.slackTeam !== undefined) {
|
|
495
|
-
candidates = candidates.filter(app => app.slackTeamId === options.slackTeam);
|
|
495
|
+
candidates = candidates.filter((app) => app.slackTeamId === options.slackTeam);
|
|
496
496
|
}
|
|
497
497
|
if (candidates.length === 0) {
|
|
498
498
|
ctx.err(`No provisioned ${target.env} Slack app for "${target.slug}"${options.slackTeam === undefined ? "" : ` in workspace ${options.slackTeam}`} (team ${ctx.teamId}).\n` +
|
|
@@ -594,7 +594,7 @@ export async function cmdSlackIcon(options) {
|
|
|
594
594
|
}
|
|
595
595
|
function formatAppList(apps) {
|
|
596
596
|
return apps
|
|
597
|
-
.map(app => ` - ${app.slackAppId} (${app.env}) in workspace ${app.slackTeamId} — ${app.installStatus}\n`)
|
|
597
|
+
.map((app) => ` - ${app.slackAppId} (${app.env}) in workspace ${app.slackTeamId} — ${app.installStatus}\n`)
|
|
598
598
|
.join("");
|
|
599
599
|
}
|
|
600
600
|
/**
|
|
@@ -65,7 +65,7 @@ export function applyCloudUsageToEvents(events, billed, model) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
else if (billed.runs.length === unpricedIndexes.length &&
|
|
68
|
-
billed.runs.every(run => usageTokenSum(run.usage) > 0)) {
|
|
68
|
+
billed.runs.every((run) => usageTokenSum(run.usage) > 0)) {
|
|
69
69
|
for (let i = 0; i < unpricedIndexes.length; i++) {
|
|
70
70
|
const index = unpricedIndexes[i];
|
|
71
71
|
const run = billed.runs[i];
|
|
@@ -217,7 +217,7 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
|
|
|
217
217
|
/** Typed selector when every declared event is in the type's membership. */
|
|
218
218
|
function membershipOrNone(eventTypes, type, typed, none) {
|
|
219
219
|
const allowed = new Set(builtinForType(type)?.events ?? []);
|
|
220
|
-
if ((eventTypes ?? []).some(event => !allowed.has(event))) {
|
|
220
|
+
if ((eventTypes ?? []).some((event) => !allowed.has(event))) {
|
|
221
221
|
return none;
|
|
222
222
|
}
|
|
223
223
|
return typed;
|
|
@@ -226,10 +226,10 @@ function githubV2Default(eventTypes) {
|
|
|
226
226
|
const events = eventTypes ?? [];
|
|
227
227
|
const issueEvents = new Set(builtinForType("issue")?.events ?? []);
|
|
228
228
|
const prEvents = new Set(builtinForType("pr")?.events ?? []);
|
|
229
|
-
if (events.length > 0 && events.every(event => issueEvents.has(event))) {
|
|
229
|
+
if (events.length > 0 && events.every((event) => issueEvents.has(event))) {
|
|
230
230
|
return "github.issue/v2";
|
|
231
231
|
}
|
|
232
|
-
if (events.some(event => !prEvents.has(event))) {
|
|
232
|
+
if (events.some((event) => !prEvents.has(event))) {
|
|
233
233
|
return "github.none/v2";
|
|
234
234
|
}
|
|
235
235
|
return "github.pr/v2";
|
|
@@ -266,7 +266,7 @@ export function omittedV2MembershipDowngrade(kind, eventTypes) {
|
|
|
266
266
|
return undefined;
|
|
267
267
|
}
|
|
268
268
|
const allowed = new Set(typed.events);
|
|
269
|
-
const unexpected = events.filter(event => !allowed.has(event));
|
|
269
|
+
const unexpected = events.filter((event) => !allowed.has(event));
|
|
270
270
|
if (unexpected.length === 0) {
|
|
271
271
|
return undefined;
|
|
272
272
|
}
|
|
@@ -303,7 +303,7 @@ function newEvtKey() {
|
|
|
303
303
|
return `evt:${randomBytes(16).toString("hex")}`;
|
|
304
304
|
}
|
|
305
305
|
function builtinForType(type) {
|
|
306
|
-
return BUILTINS.find(builtin => builtin.type === type);
|
|
306
|
+
return BUILTINS.find((builtin) => builtin.type === type);
|
|
307
307
|
}
|
|
308
308
|
function formatConversationKey(type, fields) {
|
|
309
309
|
switch (type) {
|
|
@@ -414,7 +414,7 @@ export function handshakeContinuation(input) {
|
|
|
414
414
|
}
|
|
415
415
|
const eventTypes = input.eventTypes ?? [];
|
|
416
416
|
const allowed = new Set(builtin.events);
|
|
417
|
-
const unexpected = eventTypes.filter(event => !allowed.has(event));
|
|
417
|
+
const unexpected = eventTypes.filter((event) => !allowed.has(event));
|
|
418
418
|
if (unexpected.length > 0) {
|
|
419
419
|
return {
|
|
420
420
|
ok: false,
|
|
@@ -146,7 +146,7 @@ export function createConversationMirror(options) {
|
|
|
146
146
|
}
|
|
147
147
|
const uploaded = await mirroredBlobIds(sdkAgentId);
|
|
148
148
|
const blobIds = await listCheckpointBlobIds(store, sdkAgentId);
|
|
149
|
-
const pending = blobIds.filter(blobId => !uploaded.has(blobId));
|
|
149
|
+
const pending = blobIds.filter((blobId) => !uploaded.has(blobId));
|
|
150
150
|
for (let start = 0; start < pending.length; start += PERSIST_UPLOAD_BATCH_SIZE) {
|
|
151
151
|
await uploadBlobs(store, sdkAgentId, pending.slice(start, start + PERSIST_UPLOAD_BATCH_SIZE), uploaded);
|
|
152
152
|
}
|
|
@@ -155,7 +155,7 @@ export function createConversationMirror(options) {
|
|
|
155
155
|
// The referenced run is process-local bookkeeping and is not mirrored;
|
|
156
156
|
// a hydrated store must not point at a run row it does not hold.
|
|
157
157
|
agent: { ...document, activeRunId: null },
|
|
158
|
-
blobIds: blobIds.filter(blobId => uploaded.has(blobId)),
|
|
158
|
+
blobIds: blobIds.filter((blobId) => uploaded.has(blobId)),
|
|
159
159
|
persistedAtMs: Date.now(),
|
|
160
160
|
};
|
|
161
161
|
// Skip the rewrite when nothing durable changed. `persistedAtMs`
|
|
@@ -200,15 +200,15 @@ export function createConversationMirror(options) {
|
|
|
200
200
|
}
|
|
201
201
|
// This sits on the resume critical path. Prefer a batched read and
|
|
202
202
|
// fall back to bounded parallel reads when the sink has no batch API.
|
|
203
|
-
const blobKeys = manifest.blobIds.map(blobId => agentSdkAgentStoreKeys.conversationBlob(agentName, sdkAgentId, blobId));
|
|
203
|
+
const blobKeys = manifest.blobIds.map((blobId) => agentSdkAgentStoreKeys.conversationBlob(agentName, sdkAgentId, blobId));
|
|
204
204
|
const blobBodies = sink.getMany !== undefined
|
|
205
205
|
? await sink.getMany(blobKeys)
|
|
206
|
-
: await mapBounded(blobKeys, HYDRATE_DOWNLOAD_CONCURRENCY, key => sink.get(key));
|
|
206
|
+
: await mapBounded(blobKeys, HYDRATE_DOWNLOAD_CONCURRENCY, (key) => sink.get(key));
|
|
207
207
|
const bodies = manifest.blobIds.map((blobId, index) => ({
|
|
208
208
|
blobId,
|
|
209
209
|
body: blobBodies[index],
|
|
210
210
|
}));
|
|
211
|
-
const missing = bodies.filter(entry => entry.body === undefined);
|
|
211
|
+
const missing = bodies.filter((entry) => entry.body === undefined);
|
|
212
212
|
if (missing.length > 0) {
|
|
213
213
|
// The manifest lists exactly what a previous persist uploaded, so
|
|
214
214
|
// any definitive absence is store loss — and the checkpoint graph
|