@cursor/bdk 0.2.10 → 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_skills.md.C0guGcH0.js → reference_skills.md.ClkMoQsV.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.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-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -0
- 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-JekUQERK.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-DXm_VXAQ.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.C0guGcH0.lean.js → reference_skills.md.ClkMoQsV.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 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
|
|
@@ -78,7 +78,7 @@ export function convertWorkflow(input) {
|
|
|
78
78
|
emitBoilerplateChannel(automation, trigger, kind, channelSlugs, out);
|
|
79
79
|
}
|
|
80
80
|
emitMcpConnections(automation, mcpServers, out);
|
|
81
|
-
const hasSlackAction = (workflow.actions ?? []).some(action => action.slack !== undefined || action.readSlack !== undefined);
|
|
81
|
+
const hasSlackAction = (workflow.actions ?? []).some((action) => action.slack !== undefined || action.readSlack !== undefined);
|
|
82
82
|
const hasSlackConnection = hasSlackAction && emitSlackAccountConnection(automation, out);
|
|
83
83
|
if (workflow.memoryEnabled === true) {
|
|
84
84
|
out.files.push({
|
|
@@ -284,7 +284,7 @@ function emitGithubChannel(automation, workflow, triggers, slugs, out) {
|
|
|
284
284
|
const userAllowlist = [];
|
|
285
285
|
for (const trigger of triggers) {
|
|
286
286
|
const git = trigger.git;
|
|
287
|
-
userAllowlist.push(...(git.userAllowlist ?? []).filter(user => user !== ""));
|
|
287
|
+
userAllowlist.push(...(git.userAllowlist ?? []).filter((user) => user !== ""));
|
|
288
288
|
for (const [eventKey, events] of Object.entries(GIT_EVENT_WEBHOOKS)) {
|
|
289
289
|
const event = git[eventKey];
|
|
290
290
|
if (event === undefined || typeof event !== "object") {
|
|
@@ -407,7 +407,7 @@ function emitGithubChannel(automation, workflow, triggers, slugs, out) {
|
|
|
407
407
|
}
|
|
408
408
|
if (label.pullRequests === true || label.issues !== true) {
|
|
409
409
|
webhookEvents.push("pull_request");
|
|
410
|
-
prConditions.push(...labelActions.map(action => `(pr.action === ${JSON.stringify(action)})`));
|
|
410
|
+
prConditions.push(...labelActions.map((action) => `(pr.action === ${JSON.stringify(action)})`));
|
|
411
411
|
}
|
|
412
412
|
if (label.issues === true) {
|
|
413
413
|
webhookEvents.push("issues");
|
|
@@ -420,7 +420,7 @@ function emitGithubChannel(automation, workflow, triggers, slugs, out) {
|
|
|
420
420
|
}
|
|
421
421
|
repos.push(...(workflow.gitConfig?.repos ?? []));
|
|
422
422
|
const uniqueEvents = dedupe(webhookEvents);
|
|
423
|
-
const uniqueRepos = dedupe(dedupe(repos.filter(repo => repo !== "")).flatMap(repo => {
|
|
423
|
+
const uniqueRepos = dedupe(dedupe(repos.filter((repo) => repo !== "")).flatMap((repo) => {
|
|
424
424
|
const normalized = normalizeRepoIdentifier(repo, out);
|
|
425
425
|
return normalized === undefined ? [] : [normalized];
|
|
426
426
|
}));
|
|
@@ -437,11 +437,11 @@ function emitGithubChannel(automation, workflow, triggers, slugs, out) {
|
|
|
437
437
|
const configLines = [];
|
|
438
438
|
if (uniqueRepos.length > 0) {
|
|
439
439
|
configLines.push(" cursorAccount: {");
|
|
440
|
-
configLines.push(` repos: [${uniqueRepos.map(repo => JSON.stringify(repo)).join(", ")}],`);
|
|
440
|
+
configLines.push(` repos: [${uniqueRepos.map((repo) => JSON.stringify(repo)).join(", ")}],`);
|
|
441
441
|
configLines.push(" },");
|
|
442
442
|
}
|
|
443
|
-
configLines.push(` webhookEvents: [${uniqueEvents.map(event => JSON.stringify(event)).join(", ")}],`);
|
|
444
|
-
const uniqueAllowlist = dedupe(userAllowlist.map(user => user.toLowerCase()));
|
|
443
|
+
configLines.push(` webhookEvents: [${uniqueEvents.map((event) => JSON.stringify(event)).join(", ")}],`);
|
|
444
|
+
const uniqueAllowlist = dedupe(userAllowlist.map((user) => user.toLowerCase()));
|
|
445
445
|
if (triggers.length > 1 && uniqueAllowlist.length > 0) {
|
|
446
446
|
out.warnings.push(`user_allowlist applies per trigger in the backend; the export unions every trigger's allowlist across all hooks in ${path} — tighten per hook if the triggers differed.`);
|
|
447
447
|
}
|
|
@@ -488,7 +488,7 @@ function emitGithubChannel(automation, workflow, triggers, slugs, out) {
|
|
|
488
488
|
"",
|
|
489
489
|
`// Exported from Cursor automation "${commentSafe(automation.name)}" git trigger(s).`,
|
|
490
490
|
"// Original trigger config:",
|
|
491
|
-
...jsonComment(triggers.map(trigger => trigger.git)),
|
|
491
|
+
...jsonComment(triggers.map((trigger) => trigger.git)),
|
|
492
492
|
"//",
|
|
493
493
|
"// The hooks below reproduce the triggers' mechanical filters. Cursor's",
|
|
494
494
|
"// backend also enforced any bespoke conditions (comment matching, CI",
|
|
@@ -532,7 +532,7 @@ function renderGithubHooks(args) {
|
|
|
532
532
|
allowlistUsed = true;
|
|
533
533
|
lines.push(" // The backend gated push on the user allowlist (actor).", " if (", " ctx.senderLogin === undefined ||", " !ALLOWED_USERS.includes(ctx.senderLogin.toLowerCase())", " ) {", " return null;", " }");
|
|
534
534
|
}
|
|
535
|
-
const refs = args.pushBranches.map(branch => JSON.stringify(`refs/heads/${branch}`));
|
|
535
|
+
const refs = args.pushBranches.map((branch) => JSON.stringify(`refs/heads/${branch}`));
|
|
536
536
|
lines.push(' if (event.eventName === "push") {', " // Branch filter from the original trigger.", " const ref = (event.payload as { ref?: string }).ref;", refs.length === 1
|
|
537
537
|
? ` if (ref !== ${refs[0]}) {`
|
|
538
538
|
: ` if (ref === undefined || ![${refs.join(", ")}].includes(ref)) {`, " return null;", " }", " return { auth: defaultGitHubAuth(ctx) };", " }");
|
|
@@ -554,7 +554,7 @@ function renderGithubHooks(args) {
|
|
|
554
554
|
if (args.issueActions.length > 0) {
|
|
555
555
|
const condition = args.issueActions.length === 1
|
|
556
556
|
? `issue.action === ${JSON.stringify(args.issueActions[0])}`
|
|
557
|
-
: `[${args.issueActions.map(action => JSON.stringify(action)).join(", ")}].includes(issue.action)`;
|
|
557
|
+
: `[${args.issueActions.map((action) => JSON.stringify(action)).join(", ")}].includes(issue.action)`;
|
|
558
558
|
lines.push(" onIssue: (ctx, issue) => {");
|
|
559
559
|
if (hasAllowlist) {
|
|
560
560
|
allowlistUsed = true;
|
|
@@ -580,7 +580,7 @@ function renderGithubHooks(args) {
|
|
|
580
580
|
? [
|
|
581
581
|
"// user_allowlist from the original trigger(s), lowercased — GitHub",
|
|
582
582
|
"// logins are case-insensitive and the backend compared them that way.",
|
|
583
|
-
`const ALLOWED_USERS = [${args.userAllowlist.map(user => JSON.stringify(user)).join(", ")}];`,
|
|
583
|
+
`const ALLOWED_USERS = [${args.userAllowlist.map((user) => JSON.stringify(user)).join(", ")}];`,
|
|
584
584
|
"",
|
|
585
585
|
]
|
|
586
586
|
: [];
|
|
@@ -592,7 +592,7 @@ function repoLabel(eventObject) {
|
|
|
592
592
|
...(Array.isArray(eventObject.repos)
|
|
593
593
|
? eventObject.repos.filter((repo) => typeof repo === "string")
|
|
594
594
|
: []),
|
|
595
|
-
].filter(repo => repo !== ""));
|
|
595
|
+
].filter((repo) => repo !== ""));
|
|
596
596
|
return repos.length > 0 ? ` (${repos.join(", ")})` : "";
|
|
597
597
|
}
|
|
598
598
|
/**
|
|
@@ -623,7 +623,7 @@ function normalizeRepoIdentifier(raw, out) {
|
|
|
623
623
|
out.setupSteps.push(`Trigger repo ${JSON.stringify(raw)} is not on GitHub, so its events will NOT reach this agent. Re-deliver them yourself (e.g. a webhook to the deployed agent's /v1/channels/github route) or drop that trigger.`);
|
|
624
624
|
return undefined;
|
|
625
625
|
}
|
|
626
|
-
const segments = url.pathname.split("/").filter(s => s !== "");
|
|
626
|
+
const segments = url.pathname.split("/").filter((s) => s !== "");
|
|
627
627
|
if (segments.length < 2) {
|
|
628
628
|
out.warnings.push(`Repo URL ${JSON.stringify(raw)} has no owner/repo path — excluded from the GitHub channel's cursorAccount repos.`);
|
|
629
629
|
return undefined;
|
|
@@ -643,8 +643,8 @@ function isSlackTrigger(trigger) {
|
|
|
643
643
|
function emitSlackChannel(automation, triggers, slugs, out) {
|
|
644
644
|
const slug = slugs.claim("slack");
|
|
645
645
|
const path = projectPath(out.projectRoot, `channels/${slug}.ts`);
|
|
646
|
-
const watches = triggers.filter(t => t.slackTrigger !== undefined);
|
|
647
|
-
const unsupported = triggers.filter(t => t.slackReactionAdded !== undefined ||
|
|
646
|
+
const watches = triggers.filter((t) => t.slackTrigger !== undefined);
|
|
647
|
+
const unsupported = triggers.filter((t) => t.slackReactionAdded !== undefined ||
|
|
648
648
|
t.slackAnyReactionAdded !== undefined ||
|
|
649
649
|
t.slackChannelCreated !== undefined);
|
|
650
650
|
const socketMode = watches.length > 0 || unsupported.length > 0;
|
|
@@ -680,17 +680,17 @@ function emitSlackChannel(automation, triggers, slugs, out) {
|
|
|
680
680
|
];
|
|
681
681
|
let body;
|
|
682
682
|
if (socketMode) {
|
|
683
|
-
const allow = dedupe(watches.flatMap(watch => slackChannelList(watch.slackTrigger)));
|
|
684
|
-
const anyThreadReplies = watches.some(watch => watch.slackTrigger.topLevelOnly === false);
|
|
683
|
+
const allow = dedupe(watches.flatMap((watch) => slackChannelList(watch.slackTrigger)));
|
|
684
|
+
const anyThreadReplies = watches.some((watch) => watch.slackTrigger.topLevelOnly === false);
|
|
685
685
|
// "Authenticated Cursor users" watches require a linked Cursor account
|
|
686
686
|
// on the owning team, which bots never have — so the backend blocked
|
|
687
687
|
// bot posts for them, and the sender gate itself has no SDK equivalent.
|
|
688
688
|
// The SDK has ONE bot-post setting per channel, so mixed watches must
|
|
689
689
|
// pick a side: keep bots when any watch allowed everyone (alert /
|
|
690
690
|
// scorebot watches depend on them), and say so loudly.
|
|
691
|
-
const blocksUnauthenticated = watches.some(watch => watch.slackTrigger.blockUnauthenticatedSlackUsers === true);
|
|
691
|
+
const blocksUnauthenticated = watches.some((watch) => watch.slackTrigger.blockUnauthenticatedSlackUsers === true);
|
|
692
692
|
const includeBotPosts = watches.length > 0 &&
|
|
693
|
-
watches.some(watch => watch.slackTrigger.blockUnauthenticatedSlackUsers !== true);
|
|
693
|
+
watches.some((watch) => watch.slackTrigger.blockUnauthenticatedSlackUsers !== true);
|
|
694
694
|
if (blocksUnauthenticated) {
|
|
695
695
|
out.warnings.push(includeBotPosts
|
|
696
696
|
? "Some Slack watches only fired for authenticated Cursor users while others allowed anyone; BDK has one bot-post setting per channel, so the export keeps bot posts ENABLED (the open watches depend on them) and the authenticated-only watches lose both their sender gate and their bot exclusion. Split the channels or add an onChannelPost gate."
|
|
@@ -700,7 +700,7 @@ function emitSlackChannel(automation, triggers, slugs, out) {
|
|
|
700
700
|
if (allow.length > 0) {
|
|
701
701
|
engagement.push(" engagement: {");
|
|
702
702
|
engagement.push(" channelPosts: {");
|
|
703
|
-
engagement.push(` allow: [${allow.map(channel => JSON.stringify(channel)).join(", ")}],`);
|
|
703
|
+
engagement.push(` allow: [${allow.map((channel) => JSON.stringify(channel)).join(", ")}],`);
|
|
704
704
|
if (anyThreadReplies) {
|
|
705
705
|
engagement.push(' posts: "all",');
|
|
706
706
|
}
|
|
@@ -763,7 +763,7 @@ const BOILERPLATE_KINDS = [
|
|
|
763
763
|
},
|
|
764
764
|
];
|
|
765
765
|
function boilerplateKind(trigger) {
|
|
766
|
-
return BOILERPLATE_KINDS.find(kind => trigger[kind.key] !== undefined);
|
|
766
|
+
return BOILERPLATE_KINDS.find((kind) => trigger[kind.key] !== undefined);
|
|
767
767
|
}
|
|
768
768
|
function emitBoilerplateChannel(automation, trigger, kind, slugs, out) {
|
|
769
769
|
const slug = slugs.claim(kind.slug);
|
|
@@ -876,7 +876,7 @@ function emitMcpConnections(automation, mcpServers, out) {
|
|
|
876
876
|
*/
|
|
877
877
|
function emitSlackAccountConnection(automation, out) {
|
|
878
878
|
const path = projectPath(out.projectRoot, "mcp-connections/slack.ts");
|
|
879
|
-
if (out.files.some(file => file.path === path)) {
|
|
879
|
+
if (out.files.some((file) => file.path === path)) {
|
|
880
880
|
return true;
|
|
881
881
|
}
|
|
882
882
|
const lines = [
|
|
@@ -893,7 +893,7 @@ function emitSlackAccountConnection(automation, out) {
|
|
|
893
893
|
"",
|
|
894
894
|
];
|
|
895
895
|
out.files.push({ path, contents: lines.join("\n") });
|
|
896
|
-
if (!out.mcpConnections.some(connection => connection.name === "slack")) {
|
|
896
|
+
if (!out.mcpConnections.some((connection) => connection.name === "slack")) {
|
|
897
897
|
out.mcpConnections.push({ name: "slack", kind: "cursorAccount" });
|
|
898
898
|
}
|
|
899
899
|
return true;
|
|
@@ -981,7 +981,7 @@ function jsonComment(value) {
|
|
|
981
981
|
.replace(/\u2028/g, "\\u2028")
|
|
982
982
|
.replace(/\u2029/g, "\\u2029")
|
|
983
983
|
.split("\n")
|
|
984
|
-
.map(line => `// ${line}`);
|
|
984
|
+
.map((line) => `// ${line}`);
|
|
985
985
|
}
|
|
986
986
|
function dedupe(values) {
|
|
987
987
|
return [...new Set(values)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-mcp.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/account-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAsB,MAAM,gBAAgB,CAAC;AAQnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAU7B,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAC5F,2EAA2E;AAC3E,eAAO,MAAM,oCAAoC,yDACO,CAAC;AAMzD,MAAM,WAAW,0BAA0B;IACzC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,GACrD,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAuB3C;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACnC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,wBAAwB,EAAE,CAe7B;AAqCD,qBAAa,sBAAsB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,YAAY,IAAI,EAAE;QAChB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,2EAA2E;QAC3E,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,EAMA;IAED;;;;OAIG;IACH,UAAU,IAAI,UAAU,CAevB;IAED;;;OAGG;IACH,MAAM,CACJ,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,0BAA0B,EAC/B,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,KAAK,oBAAoB,GACnF,OAAO,CAAC,QAAQ,CAAC,CAQnB;IAED;;;;;;;;OAQG;IACG,YAAY,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB/E;IAED,YAAY,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;YAEa,YAAY;
|
|
1
|
+
{"version":3,"file":"account-mcp.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/account-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAsB,MAAM,gBAAgB,CAAC;AAQnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAU7B,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAC5F,2EAA2E;AAC3E,eAAO,MAAM,oCAAoC,yDACO,CAAC;AAMzD,MAAM,WAAW,0BAA0B;IACzC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,GACrD,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAuB3C;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACnC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,wBAAwB,EAAE,CAe7B;AAqCD,qBAAa,sBAAsB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,YAAY,IAAI,EAAE;QAChB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,2EAA2E;QAC3E,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,EAMA;IAED;;;;OAIG;IACH,UAAU,IAAI,UAAU,CAevB;IAED;;;OAGG;IACH,MAAM,CACJ,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,0BAA0B,EAC/B,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,KAAK,oBAAoB,GACnF,OAAO,CAAC,QAAQ,CAAC,CAQnB;IAED;;;;;;;;OAQG;IACG,YAAY,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB/E;IAED,YAAY,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;YAEa,YAAY;IAyD1B,OAAO,CAAC,WAAW;IAgFnB,0EAA0E;YAC5D,QAAQ;IAatB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAqCnB;AAqED,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2CD;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAQT;AAyCD,yFAAyF;AACzF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBhG;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,EAC1D,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwB7B"}
|