@cursor/bdk 0.2.8 → 0.2.10
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/artifacts.js +3 -5
- package/dist/bin/agent-serve.d.ts +1 -0
- package/dist/bin/agent-serve.d.ts.map +1 -1
- package/dist/bin/agent-serve.js +820 -807
- package/dist/channels/bitbucket/api.js +305 -321
- package/dist/channels/bitbucket/binding.js +97 -61
- package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
- package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
- package/dist/channels/bitbucket/checks.js +9 -21
- package/dist/channels/bitbucket/cursor-account.js +1 -1
- package/dist/channels/bitbucket/defaults.js +14 -4
- package/dist/channels/bitbucket/events.js +1 -2
- package/dist/channels/bitbucket/index.d.ts +6 -2
- package/dist/channels/bitbucket/index.d.ts.map +1 -1
- package/dist/channels/bitbucket/index.js +6 -2
- package/dist/channels/bitbucket/replay.js +80 -56
- package/dist/channels/bitbucket/state.js +16 -7
- package/dist/channels/bitbucket/types.d.ts +11 -2
- package/dist/channels/bitbucket/types.d.ts.map +1 -1
- package/dist/channels/checks.js +18 -28
- package/dist/channels/deployments/deployments-channel.js +26 -34
- package/dist/channels/github/api.js +216 -210
- package/dist/channels/github/auth.d.ts +5 -1
- package/dist/channels/github/auth.d.ts.map +1 -1
- package/dist/channels/github/auth.js +157 -174
- package/dist/channels/github/binding.js +48 -39
- package/dist/channels/github/checks.js +9 -14
- package/dist/channels/github/cursor-account.js +6 -11
- package/dist/channels/github/defaults.js +105 -130
- package/dist/channels/github/forward.js +13 -17
- package/dist/channels/github/github-channel.d.ts +43 -2
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +1228 -958
- package/dist/channels/github/progress.js +145 -146
- package/dist/channels/github/replay.js +30 -39
- package/dist/channels/github/state.js +40 -16
- package/dist/channels/github/types.d.ts +30 -6
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/api.js +100 -114
- package/dist/channels/gitlab/binding.js +52 -33
- package/dist/channels/gitlab/checks.js +28 -29
- package/dist/channels/gitlab/cursor-account.js +1 -1
- package/dist/channels/gitlab/defaults.js +9 -3
- package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
- package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +95 -42
- package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
- package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
- package/dist/channels/gitlab/gitlab-webhook.js +282 -249
- package/dist/channels/gitlab/index.d.ts +6 -2
- package/dist/channels/gitlab/index.d.ts.map +1 -1
- package/dist/channels/gitlab/index.js +6 -2
- package/dist/channels/gitlab/replay.js +50 -27
- package/dist/channels/gitlab/state.js +14 -6
- package/dist/channels/gitlab/types.d.ts +13 -2
- package/dist/channels/gitlab/types.d.ts.map +1 -1
- package/dist/channels/origin/api.js +100 -116
- package/dist/channels/origin/binding.js +15 -16
- package/dist/channels/origin/checks.js +30 -28
- package/dist/channels/origin/defaults.js +50 -65
- package/dist/channels/origin/origin-channel.js +266 -272
- package/dist/channels/origin/origin-webhook.js +70 -88
- package/dist/channels/origin/reactions.js +9 -21
- package/dist/channels/origin/state.js +13 -5
- package/dist/channels/slack/agentic-delivery.js +426 -478
- package/dist/channels/slack/agentic-posted.js +9 -10
- package/dist/channels/slack/agentic-signals.js +2 -3
- package/dist/channels/slack/api.js +417 -427
- package/dist/channels/slack/approvals.js +1 -1
- package/dist/channels/slack/assistant.js +37 -47
- package/dist/channels/slack/attachments.js +188 -206
- package/dist/channels/slack/auth.js +8 -6
- package/dist/channels/slack/bot-mentions.js +31 -45
- package/dist/channels/slack/channel-watch.js +42 -48
- package/dist/channels/slack/cli-project.js +112 -137
- package/dist/channels/slack/code-fences.js +3 -5
- package/dist/channels/slack/constants.js +2 -2
- package/dist/channels/slack/credentials.js +23 -38
- package/dist/channels/slack/defaults.js +292 -331
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +533 -460
- package/dist/channels/slack/doctor.js +200 -214
- package/dist/channels/slack/eval-directive.js +79 -96
- package/dist/channels/slack/event-id-dedupe.js +1 -1
- package/dist/channels/slack/external-policy.js +26 -39
- package/dist/channels/slack/footer.js +28 -41
- package/dist/channels/slack/inbound.d.ts +1 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +50 -31
- package/dist/channels/slack/init.d.ts +1 -5
- package/dist/channels/slack/init.d.ts.map +1 -1
- package/dist/channels/slack/init.js +42 -59
- package/dist/channels/slack/interactive.d.ts +9 -3
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +160 -162
- package/dist/channels/slack/links.js +1 -2
- package/dist/channels/slack/live-delivery.js +172 -190
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +44 -23
- package/dist/channels/slack/message-body.js +2 -2
- package/dist/channels/slack/nudge-carrier.js +30 -42
- package/dist/channels/slack/nudge-store.js +164 -191
- package/dist/channels/slack/paint-start.js +66 -81
- package/dist/channels/slack/placeholder.js +123 -152
- package/dist/channels/slack/pr-ref.js +1 -1
- package/dist/channels/slack/progress-delivery.js +65 -78
- package/dist/channels/slack/reasoning-card.js +36 -49
- package/dist/channels/slack/recording-sink.js +12 -24
- package/dist/channels/slack/reply-options.js +7 -12
- package/dist/channels/slack/self-identity.js +27 -35
- package/dist/channels/slack/sender-name.d.ts +12 -3
- package/dist/channels/slack/sender-name.d.ts.map +1 -1
- package/dist/channels/slack/sender-name.js +57 -61
- package/dist/channels/slack/setup.js +2 -4
- package/dist/channels/slack/slack-channel.d.ts +6 -4
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +441 -308
- package/dist/channels/slack/socket-mode.js +38 -52
- package/dist/channels/slack/thread-context.js +143 -160
- package/dist/channels/slack/tool-approval-events.js +149 -166
- package/dist/channels/slack/tool-cards.js +6 -11
- package/dist/channels/slack/tool-chip.js +1 -2
- package/dist/channels/slack/types.d.ts +15 -17
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels/slack/upload.js +84 -97
- package/dist/channels/slack/user-info.js +27 -41
- package/dist/channels.js +9 -20
- package/dist/dashboard-session-url.js +3 -4
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
- package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
- package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
- package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
- package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
- package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
- package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
- package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
- package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
- package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
- package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
- package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
- package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
- package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
- package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
- package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
- package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
- package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
- package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
- package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
- package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/building-with-agents.md +2 -0
- package/dist/docs/deployment.html +38 -38
- package/dist/docs/deployment.md +7 -0
- package/dist/docs/evals.html +36 -36
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +38 -38
- package/dist/docs/guides/bitbucket.md +9 -1
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +39 -39
- package/dist/docs/guides/github.md +20 -4
- package/dist/docs/guides/gitlab.html +38 -38
- package/dist/docs/guides/gitlab.md +9 -1
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +35 -35
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/migrate.html +66 -0
- package/dist/docs/guides/migrate.md +122 -0
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +35 -35
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +214 -6
- package/dist/docs/llms.txt +1 -0
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +35 -35
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +39 -38
- package/dist/docs/reference/cli.md +39 -0
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/grokbot-agents.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +1 -0
- package/dist/evals/assertions.js +20 -34
- package/dist/evals/expect.js +3 -6
- package/dist/evals/judge.js +5 -8
- package/dist/evals/loaders.js +45 -62
- package/dist/evals/matchers.js +2 -3
- package/dist/evals/reporters.js +43 -67
- package/dist/evals/results.js +1 -1
- package/dist/evals/run-facts.js +5 -6
- package/dist/evals.js +27 -15
- package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
- package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
- package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
- package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
- package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
- package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
- package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
- package/dist/extensions/jev/extension.js +3 -3
- package/dist/extensions/jev/lib/evaluate.js +43 -60
- package/dist/extensions/jev/tools/evaluate.js +6 -17
- package/dist/extensions/slack-communication/tools/post-file.js +1 -1
- package/dist/extensions.js +3 -5
- package/dist/files-backends/cursor-hosted.js +504 -523
- package/dist/files-backends/local-fs.js +72 -134
- package/dist/files.js +3 -3
- package/dist/filesystem.js +562 -861
- package/dist/index.js +16 -35
- package/dist/internal/advertise-tools.js +74 -86
- package/dist/internal/artifacts-store.js +298 -361
- package/dist/internal/as-of.js +2 -4
- package/dist/internal/authored-alias-hooks.js +6 -4
- package/dist/internal/authored-loaders.js +37 -52
- package/dist/internal/bounded-int.js +1 -2
- package/dist/internal/bounded.js +13 -24
- package/dist/internal/brand.js +1 -1
- package/dist/internal/browser-origin-guard.js +4 -4
- package/dist/internal/builtin-tools/artifacts.js +15 -27
- package/dist/internal/builtin-tools/index.js +2 -3
- package/dist/internal/builtin-tools/reminders.js +33 -52
- package/dist/internal/channel-architecture.d.ts +21 -0
- package/dist/internal/channel-architecture.d.ts.map +1 -0
- package/dist/internal/channel-architecture.js +41 -0
- package/dist/internal/channel-dispatch.js +3 -4
- package/dist/internal/channel-route-dispatch.js +40 -51
- package/dist/internal/channel-state.js +1 -1
- package/dist/internal/chat-client.js +319 -340
- package/dist/internal/cli-ax.js +1262 -1294
- package/dist/internal/cli-bitbucket.js +244 -272
- package/dist/internal/cli-convert-automation.js +137 -151
- package/dist/internal/cli-cursor.js +126 -147
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +1457 -1507
- package/dist/internal/cli-docs.js +130 -147
- package/dist/internal/cli-github.js +437 -476
- package/dist/internal/cli-gitlab.js +259 -288
- package/dist/internal/cli-images.js +266 -334
- package/dist/internal/cli-manifest.js +25 -37
- package/dist/internal/cli-mcp-oauth.js +228 -247
- package/dist/internal/cli-mcp.js +358 -383
- package/dist/internal/cli-migrate.d.ts +18 -0
- package/dist/internal/cli-migrate.d.ts.map +1 -0
- package/dist/internal/cli-migrate.js +136 -0
- package/dist/internal/cli-skills.js +35 -47
- package/dist/internal/cli-slack-manual.d.ts +0 -1
- package/dist/internal/cli-slack-manual.d.ts.map +1 -1
- package/dist/internal/cli-slack-manual.js +175 -204
- package/dist/internal/cli-slack.d.ts +1 -1
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +416 -456
- package/dist/internal/cloud-merge.js +7 -3
- package/dist/internal/cloud-turn-cost.js +8 -1
- package/dist/internal/connection-env.js +5 -6
- package/dist/internal/continuation-channel.js +10 -7
- package/dist/internal/continuation-identity.js +85 -67
- package/dist/internal/conversation-mirror.js +112 -131
- package/dist/internal/convert-automation/convert-workflow.js +21 -31
- package/dist/internal/cron.js +3 -3
- package/dist/internal/cursor/account-mcp.js +147 -146
- package/dist/internal/cursor/backend-client.js +290 -320
- package/dist/internal/cursor/bound-secret-file.js +3 -3
- package/dist/internal/cursor/credentials.d.ts +1 -0
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +130 -142
- package/dist/internal/cursor/cursor-api-transport.js +4 -8
- package/dist/internal/cursor/github-credentials.js +91 -108
- package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
- package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +5 -9
- package/dist/internal/cursor/session-token.js +36 -48
- package/dist/internal/cursor/store-api-client.js +77 -92
- package/dist/internal/cursor-account-mcp-auth.js +132 -149
- package/dist/internal/cursor-agent-template.js +1 -1
- package/dist/internal/cursor-deployment-relay.js +33 -54
- package/dist/internal/cursor-event-relay.js +65 -59
- package/dist/internal/cursor-relay-core.js +258 -286
- package/dist/internal/deferred-channel-session.js +3 -12
- package/dist/internal/deploy-client.js +410 -475
- package/dist/internal/deploy-manifest.d.ts +17 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +71 -21
- package/dist/internal/deploy-source.js +31 -43
- package/dist/internal/discovery/agent-config.js +45 -59
- package/dist/internal/discovery/agent.js +276 -280
- package/dist/internal/discovery/channels.js +67 -80
- package/dist/internal/discovery/connections.js +286 -296
- package/dist/internal/discovery/context.js +2 -13
- package/dist/internal/discovery/cursor-plugin.js +223 -259
- package/dist/internal/discovery/extension-overlay.js +104 -131
- package/dist/internal/discovery/extensions.js +276 -281
- package/dist/internal/discovery/fs.js +56 -79
- package/dist/internal/discovery/hooks.js +39 -50
- package/dist/internal/discovery/info.js +17 -19
- package/dist/internal/discovery/instructions.js +58 -71
- package/dist/internal/discovery/modules.js +45 -58
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +192 -215
- package/dist/internal/discovery/reminders.js +41 -52
- package/dist/internal/discovery/runtime.js +1 -1
- package/dist/internal/discovery/schedules.js +71 -82
- package/dist/internal/discovery/seed-files.js +21 -32
- package/dist/internal/discovery/services.js +74 -96
- package/dist/internal/discovery/skills.js +77 -94
- package/dist/internal/discovery/subagent.js +79 -95
- package/dist/internal/discovery/tools.js +12 -23
- package/dist/internal/distribution.js +2 -2
- package/dist/internal/docs-site.js +30 -45
- package/dist/internal/duration.js +1 -1
- package/dist/internal/env-file.js +48 -64
- package/dist/internal/eval-judge-model.js +17 -28
- package/dist/internal/eval-run-store.js +265 -254
- package/dist/internal/eval-runner.d.ts +8 -0
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +406 -408
- package/dist/internal/eval-transport.d.ts +24 -0
- package/dist/internal/eval-transport.d.ts.map +1 -0
- package/dist/internal/eval-transport.js +22 -0
- package/dist/internal/evals-client.js +242 -246
- package/dist/internal/event-log.js +72 -120
- package/dist/internal/event-mapper.js +30 -31
- package/dist/internal/factory-resource-channel.js +16 -30
- package/dist/internal/filesystem/errors.js +6 -6
- package/dist/internal/filesystem/format.js +10 -13
- package/dist/internal/filesystem/merge.js +52 -94
- package/dist/internal/filesystem/nearest.js +15 -27
- package/dist/internal/filesystem/scratch.js +65 -85
- package/dist/internal/filesystem/tools.js +221 -241
- package/dist/internal/filesystem/walk.js +76 -143
- package/dist/internal/framework-file-storage.js +118 -139
- package/dist/internal/framework-storage-selection.js +21 -13
- package/dist/internal/frontmatter.js +4 -6
- package/dist/internal/github-fanout.js +50 -64
- package/dist/internal/guest-network.js +96 -109
- package/dist/internal/handleAgentServeTrigger.js +121 -126
- package/dist/internal/host-files.js +73 -88
- package/dist/internal/host-kv.js +21 -36
- package/dist/internal/host-otel.js +22 -19
- package/dist/internal/host-platforms.js +49 -63
- package/dist/internal/hosted-catch-protocol.d.ts +1 -0
- package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-catch-protocol.js +1 -0
- package/dist/internal/hosted-catch.d.ts +5 -3
- package/dist/internal/hosted-catch.d.ts.map +1 -1
- package/dist/internal/hosted-catch.js +84 -93
- package/dist/internal/hosted-delivery-protocol.js +32 -8
- package/dist/internal/hosted-delivery.d.ts +13 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +614 -584
- package/dist/internal/hosted-eval-cases.d.ts +21 -0
- package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
- package/dist/internal/hosted-eval-cases.js +162 -0
- package/dist/internal/hosted-execution-diag.js +38 -30
- package/dist/internal/hosted-execution-flush.js +75 -66
- package/dist/internal/hosted-execution-latency.js +16 -8
- package/dist/internal/hosted-managed-automation.js +2 -2
- package/dist/internal/hosting.js +2 -3
- package/dist/internal/http-channel-define.js +4 -1
- package/dist/internal/http-channel.js +101 -112
- package/dist/internal/http-control-plane-session.d.ts +18 -1
- package/dist/internal/http-control-plane-session.d.ts.map +1 -1
- package/dist/internal/http-control-plane-session.js +66 -32
- package/dist/internal/incoming-headers-to-fetch.js +1 -2
- package/dist/internal/init-interview.js +73 -93
- package/dist/internal/init-project.js +182 -214
- package/dist/internal/init-scaffold.js +10 -21
- package/dist/internal/inline-stdio-mcp.js +80 -86
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +238 -274
- package/dist/internal/legacy-command-guard.js +18 -31
- package/dist/internal/listen-port.js +34 -45
- package/dist/internal/local-control-plane.js +293 -307
- package/dist/internal/local-env.js +1 -1
- package/dist/internal/local-ingress.js +15 -9
- package/dist/internal/log-ring.js +1 -2
- package/dist/internal/logs-client.js +207 -227
- package/dist/internal/map-pool.js +24 -38
- package/dist/internal/mcp-endpoint.js +204 -180
- package/dist/internal/mcp-host.js +165 -168
- package/dist/internal/mcp-oauth-on-demand.js +170 -207
- package/dist/internal/mcp-oauth-persist.js +15 -29
- package/dist/internal/mcp-oauth.js +209 -266
- package/dist/internal/named-webhook-secret.d.ts +39 -0
- package/dist/internal/named-webhook-secret.d.ts.map +1 -0
- package/dist/internal/named-webhook-secret.js +47 -0
- package/dist/internal/open-browser.js +2 -3
- package/dist/internal/otel/collector.js +104 -68
- package/dist/internal/otel/config.js +24 -37
- package/dist/internal/otel/http.js +5 -7
- package/dist/internal/otel/mcp.js +3 -12
- package/dist/internal/otel/runtime.js +69 -83
- package/dist/internal/package-inline-stdio.js +57 -65
- package/dist/internal/peer-connections.js +9 -5
- package/dist/internal/platform-schedule-sync.js +39 -54
- package/dist/internal/platform-timers.js +176 -210
- package/dist/internal/playground/static.js +1 -2
- package/dist/internal/playground/toolchain.js +37 -53
- package/dist/internal/playground-proxy.js +230 -270
- package/dist/internal/process-memory-telemetry.js +33 -51
- package/dist/internal/prompt-context.js +3 -6
- package/dist/internal/reminder-control-plane-protocol.js +46 -13
- package/dist/internal/reminder-runner.js +770 -785
- package/dist/internal/reminder-schedule.js +1 -1
- package/dist/internal/reminder-store.js +57 -78
- package/dist/internal/request-error-status.js +1 -3
- package/dist/internal/request-headers.js +2 -2
- package/dist/internal/resolve-prod-target.js +119 -135
- package/dist/internal/resolved-connections.js +16 -6
- package/dist/internal/run-client.js +221 -229
- package/dist/internal/runtime-dispatch-runner.js +18 -43
- package/dist/internal/schedule-runner.js +49 -58
- package/dist/internal/scm/pr-url.js +7 -6
- package/dist/internal/sdk-runner.js +388 -363
- package/dist/internal/serve-restart.js +26 -39
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +1283 -1244
- package/dist/internal/session-cost.js +7 -9
- package/dist/internal/session-engine.d.ts +3 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +2801 -2777
- package/dist/internal/session-links.js +12 -16
- package/dist/internal/session-run-log.js +134 -82
- package/dist/internal/session-store.js +133 -164
- package/dist/internal/sessions-client.js +97 -118
- package/dist/internal/skill-catalog.js +18 -23
- package/dist/internal/skills-sync.js +16 -30
- package/dist/internal/slack-provision-client.js +90 -116
- package/dist/internal/start-log-store.js +48 -67
- package/dist/internal/steering.js +1 -2
- package/dist/internal/storage-coordinator.js +160 -196
- package/dist/internal/store-mirror.js +16 -30
- package/dist/internal/stream-progress.js +6 -8
- package/dist/internal/terminal-style.js +3 -4
- package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
- package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
- package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
- package/dist/internal/tool-catalog.js +11 -5
- package/dist/internal/tool-result.js +1 -1
- package/dist/internal/trajectory.js +19 -22
- package/dist/internal/turn-cost.js +52 -62
- package/dist/internal/turn-governor.js +5 -8
- package/dist/internal/turn-lease-store.js +85 -105
- package/dist/internal/turn-outbox.js +28 -43
- package/dist/internal/update-check.js +231 -259
- package/dist/internal/v2-hosting.js +1 -2
- package/dist/internal/workspace-sync.js +25 -41
- package/dist/internal/workspace.js +111 -139
- package/dist/kv/memory-kv.js +27 -51
- package/dist/memory.js +106 -148
- package/dist/otel.js +5 -8
- package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
- package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
- package/dist/playground/index.html +2 -2
- package/dist/prompt.js +2 -4
- package/dist/storage-backends/cursor-hosted-v2.js +53 -83
- package/dist/storage-backends/cursor-hosted.js +105 -145
- package/dist/storage-backends/file-kv.js +100 -128
- package/dist/storage-protocol.js +3 -5
- package/dist/storage.js +17 -26
- package/dist/types.d.ts +68 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +20 -18
- package/docs/building-with-agents.md +2 -0
- package/docs/deployment.md +7 -0
- package/docs/guides/bitbucket.md +9 -1
- package/docs/guides/github.md +20 -4
- package/docs/guides/gitlab.md +9 -1
- package/docs/guides/migrate.md +127 -0
- package/docs/reference/cli.md +39 -0
- package/docs/troubleshooting.md +1 -0
- package/package.json +1 -1
- package/skills/debug/SKILL.md +1 -0
- package/skills/github/SKILL.md +23 -0
- package/skills/migrate-v2/SKILL.md +264 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
- package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
- package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
- package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
- package/dist/playground/assets/index-DPKLl4C_.css +0 -1
- /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
- /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
package/docs/reference/cli.md
CHANGED
|
@@ -34,6 +34,7 @@ provide their own `help` subcommands.
|
|
|
34
34
|
| [`docs`](#docs) | Serve the documentation bundled with `@cursor/bdk` |
|
|
35
35
|
| [`init`](#init) | Scaffold a BDK project |
|
|
36
36
|
| [`convert-automation`](#convert-automation) | Export a Cursor Automation into a project |
|
|
37
|
+
| [`migrate`](#migrate) | Move an early-alpha project to architecture v2 through a pull request |
|
|
37
38
|
| [`install-skills`](#install-skills) | Refresh the bundled coding-agent skills |
|
|
38
39
|
| [`info`](#info) | Print the discovered project surface |
|
|
39
40
|
| [`validate`](#validate) | Check project diagnostics and set the exit status |
|
|
@@ -470,6 +471,35 @@ authentication, export, and file-write failures exit nonzero.
|
|
|
470
471
|
See [Convert a Cursor Automation](../guides/convert-automation.md) for the
|
|
471
472
|
generated project and features that need manual review.
|
|
472
473
|
|
|
474
|
+
### Migrate an early-alpha project {#migrate}
|
|
475
|
+
|
|
476
|
+
```text
|
|
477
|
+
bdk migrate [--dir <path>] [--repo <https-url>] [--ref <git-ref>]
|
|
478
|
+
[--path <agent-path>] [--no-wait] [--json] [--api-key <key>]
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
`migrate` applies only to projects deployed on architecture v1 during the BDK
|
|
482
|
+
early alpha. It reads a pushed Git ref, starts a Cursor cloud agent with the
|
|
483
|
+
bundled `bdk-migrate-v2` skill, and opens a pull request with the source
|
|
484
|
+
changes. The command waits for the pull request by default and never deploys
|
|
485
|
+
the project or changes deployment secrets.
|
|
486
|
+
|
|
487
|
+
| Option | Contract |
|
|
488
|
+
| --- | --- |
|
|
489
|
+
| `--dir <path>` | Select the local BDK project. The default is the current directory. |
|
|
490
|
+
| `--repo <https-url>` | Select the source repository. The CLI infers the current checkout's origin when possible. |
|
|
491
|
+
| `--ref <git-ref>` | Select the pushed ref for the cloud agent. The CLI infers the current branch when possible. |
|
|
492
|
+
| `--path <agent-path>` | Select the project path relative to the repository root. The CLI infers it from `--dir` when possible. |
|
|
493
|
+
| `--no-wait` | Print the cloud agent URL and return after the agent starts. |
|
|
494
|
+
| `--json` | Print a report with `ok`, `status`, `agentId`, and the cloud agent `url`. A completed migration adds `prUrl`; a blocked or failed migration adds its explanation. |
|
|
495
|
+
| `--api-key <key>` | Override the Cursor credential. |
|
|
496
|
+
|
|
497
|
+
Credential resolution follows the normal order: `--api-key`,
|
|
498
|
+
`CURSOR_API_KEY`, `CURSOR_API_KEY_FILE`, `CURSOR_SERVICE_ACCOUNT_KEY`, then
|
|
499
|
+
the stored `bdk login` credential. See
|
|
500
|
+
[Migrate an early-alpha project](../guides/migrate.md) for detection, pull
|
|
501
|
+
request review, and deployment cutover.
|
|
502
|
+
|
|
473
503
|
### Install coding-agent skills {#install-skills}
|
|
474
504
|
|
|
475
505
|
```text
|
|
@@ -504,6 +534,13 @@ bdk validate [--dir <path>]
|
|
|
504
534
|
when any diagnostic has error severity. Use it instead of `info --json` when a
|
|
505
535
|
script needs validation status.
|
|
506
536
|
|
|
537
|
+
Hosting checks run here too. On architecture v2 (the default), a
|
|
538
|
+
`githubChannel` credential or a GitLab or Bitbucket `webhookSecret` written
|
|
539
|
+
as a literal or a `() => process.env.NAME` getter is an error whose message
|
|
540
|
+
quotes the `{ secretName: "NAME" }` form to use instead. A project that still
|
|
541
|
+
sets `architecture: "v1"` gets the same finding as a warning, so run
|
|
542
|
+
`validate` before removing the pin to list what the migration must rename.
|
|
543
|
+
|
|
507
544
|
### Print a deployment manifest {#manifest}
|
|
508
545
|
|
|
509
546
|
```text
|
|
@@ -904,6 +941,7 @@ Credential resolution follows this order: `--api-key`, `CURSOR_API_KEY`,
|
|
|
904
941
|
| `chat`, `session` | Exit `2` for documented option conflicts or missing required input. |
|
|
905
942
|
| `validate` | Exit `1` when any project diagnostic has error severity. |
|
|
906
943
|
| `convert-automation` | Exit `1` for invalid input, authentication, export, or file-write failure. Warnings and dependency-install failure don't change a successful conversion exit. |
|
|
944
|
+
| `migrate` | Exit `0` after starting with `--no-wait` or after the agent opens a pull request. Exit `1` for invalid input, authentication or agent failure, or a completed run without a pull request. |
|
|
907
945
|
| Other commands | Exit nonzero when validation, authentication, a request, or the requested operation fails. |
|
|
908
946
|
|
|
909
947
|
## Related
|
|
@@ -913,3 +951,4 @@ Credential resolution follows this order: `--api-key`, `CURSOR_API_KEY`,
|
|
|
913
951
|
- [Evals](./evals.md)
|
|
914
952
|
- [HTTP API](./http-api.md)
|
|
915
953
|
- [Deployment](../deployment.md)
|
|
954
|
+
- [Early-alpha migration](../guides/migrate.md)
|
package/docs/troubleshooting.md
CHANGED
|
@@ -57,6 +57,7 @@ Match the visible symptom below.
|
|
|
57
57
|
|
|
58
58
|
| What you see | What to do |
|
|
59
59
|
| --- | --- |
|
|
60
|
+
| `validate` or `deploy` reports `architecture "v2" requires a named secret` | A `githubChannel` credential or a GitLab or Bitbucket `webhookSecret` is a literal or a getter. Replace it with the quoted `{ secretName: "NAME" }` and set the value with `bdk secrets set <slug> NAME`. See [Other hosts](./guides/github.md#other-hosts). |
|
|
60
61
|
| Local changes do not appear after deploy | `deploy` reads a pushed Git ref, not the working tree. Commit and push the intended ref, then deploy it again. |
|
|
61
62
|
| The deployment never becomes running | Run `bdk deployment <slug>`, then act on the reported build or startup error. |
|
|
62
63
|
| A secret or egress change has no effect | Confirm the name with `secrets list`, verify the `hosting` block exists on the pushed ref, and follow the CLI or dashboard prompt to redeploy. |
|
package/package.json
CHANGED
package/skills/debug/SKILL.md
CHANGED
|
@@ -36,6 +36,7 @@ Local `bdk serve`. Hosted start or health failures:
|
|
|
36
36
|
| Slack `channel idle … missing credentials` | Expected. `slack doctor --prefix <PREFIX>`. |
|
|
37
37
|
| Immediate API-key error | Model turns need a Cursor credential (`CURSOR_API_KEY`, then `CURSOR_API_KEY_FILE`, then `CURSOR_SERVICE_ACCOUNT_KEY`, then `bdk login`). |
|
|
38
38
|
| `validate` clean, CI typecheck fails | tsx skipped types. JSON-shaped returns; `type` not `interface`. |
|
|
39
|
+
| `validate`: `architecture "v2" requires a named secret` | Getter or literal SCM credential. Use the quoted `{ secretName: "NAME" }`; `secrets set <slug> NAME` after deploy. |
|
|
39
40
|
|
|
40
41
|
Count `action.result` by `toolName` before blaming latency.
|
|
41
42
|
`turn.failed` + `"turn interrupted"` is a follow-up or stop, not a
|
package/skills/github/SKILL.md
CHANGED
|
@@ -71,6 +71,29 @@ Without `cursorAccount`, outbound calls prefer App installation
|
|
|
71
71
|
tokens (`GITHUB_APP_ID` + `GITHUB_APP_PRIVATE_KEY`). Local tests
|
|
72
72
|
can use `GITHUB_TOKEN` / `gh auth login`.
|
|
73
73
|
|
|
74
|
+
## Credentials
|
|
75
|
+
|
|
76
|
+
Name secrets; never read them. Each `credentials` field
|
|
77
|
+
(`webhookSecret`, `token`, `installationToken`, `appId`,
|
|
78
|
+
`privateKey`) takes `{ secretName: "NAME" }`: the env var locally,
|
|
79
|
+
the deployment secret of that name on Cursor hosting. The platform
|
|
80
|
+
verifies `X-Hub-Signature-256` against the named secret before any
|
|
81
|
+
compute starts and `deploy` warns when a named secret is unset.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
credentials: {
|
|
85
|
+
webhookSecret: { secretName: "GITHUB_WEBHOOK_SECRET" },
|
|
86
|
+
appId: { secretName: "GITHUB_APP_ID" },
|
|
87
|
+
privateKey: { secretName: "GITHUB_APP_PRIVATE_KEY" },
|
|
88
|
+
},
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
A literal or `() => process.env.X` getter fails `bdk validate` on
|
|
92
|
+
architecture v2 (the default) with `requires a named secret`; the
|
|
93
|
+
message quotes the `{ secretName }` to use. Omit a field to keep its
|
|
94
|
+
default name; a numeric `appId` is allowed. Only `architecture: "v1"`
|
|
95
|
+
still accepts getters, and `validate` warns there.
|
|
96
|
+
|
|
74
97
|
The Cursor stream is metadata, not full webhook bodies. Re-read
|
|
75
98
|
the PR from GitHub.
|
|
76
99
|
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bdk-migrate-v2
|
|
3
|
+
description: >-
|
|
4
|
+
Migrate a BDK project from hosted architecture v1 to v2: upgrade the
|
|
5
|
+
package, remove v1-only code, and redeploy. Applies only to projects
|
|
6
|
+
built during the early alpha, which depend on @cursor/july, run the
|
|
7
|
+
agent-sdk CLI, or set architecture "v1".
|
|
8
|
+
alwaysApply: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Migrate a BDK agent to architecture v2
|
|
12
|
+
|
|
13
|
+
This skill applies only to projects built during the BDK early alpha,
|
|
14
|
+
when hosted agents ran on architecture v1. Projects that never deployed
|
|
15
|
+
on v1 already run on v2 and need nothing here.
|
|
16
|
+
|
|
17
|
+
## Confirm the project needs it
|
|
18
|
+
|
|
19
|
+
Migrate when any of these is true:
|
|
20
|
+
|
|
21
|
+
- `package.json` depends on `@cursor/july`.
|
|
22
|
+
- `agent/agent.ts` sets `architecture: "v1"`.
|
|
23
|
+
- `bdk deployment <slug>` for the hosted copy does not print
|
|
24
|
+
`architecture: v2`.
|
|
25
|
+
|
|
26
|
+
Stop when none is true.
|
|
27
|
+
|
|
28
|
+
## Know what changes
|
|
29
|
+
|
|
30
|
+
A v1 deployment kept one long-lived process per agent. On v2 the platform
|
|
31
|
+
starts a short-lived runtime when an event arrives, keeps sessions, KV,
|
|
32
|
+
and files in Cursor-managed storage, and stops the runtime when the work
|
|
33
|
+
ends. That model changes code in three places:
|
|
34
|
+
|
|
35
|
+
- Module-scope state and files written outside `ctx.host.files` vanish
|
|
36
|
+
between events. Keep durable state in `ctx.host.kv` or `ctx.host.files`.
|
|
37
|
+
- Secrets arrive per request, after modules load. Read `process.env`
|
|
38
|
+
inside the handler, tool, or callback that needs the value.
|
|
39
|
+
- SCM webhook channels name their secrets instead of reading them.
|
|
40
|
+
`githubChannel({ credentials })` fields and the `gitlabChannel` /
|
|
41
|
+
`bitbucketChannel` `webhookSecret` take `{ secretName: "NAME" }`, so
|
|
42
|
+
the platform can verify the provider signature at ingestion and flag
|
|
43
|
+
an unset deployment secret before the first API call. A literal or a
|
|
44
|
+
`() => process.env.X` getter is a validation error on v2.
|
|
45
|
+
- The deployment URL serves only routes your channels declare. It
|
|
46
|
+
answers `202` at once and runs the handler afterwards, so a route
|
|
47
|
+
cannot send a response body back to its caller.
|
|
48
|
+
|
|
49
|
+
## Check what v2 supports
|
|
50
|
+
|
|
51
|
+
| Capability | On v2 |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| Slack mentions, DMs, and channel posts | Supported. Provision a new Slack app after the first v2 deploy. |
|
|
54
|
+
| GitHub channels, including `cursorAccount` | Supported. Every `credentials` field must be `{ secretName }`. |
|
|
55
|
+
| GitLab and Bitbucket channels on Cursor hosting | Rolling out. Trial under a new slug first. `webhookSecret` must be `{ secretName }`. |
|
|
56
|
+
| Custom HTTP channel routes | Supported. The caller gets `202`, not the handler's response. |
|
|
57
|
+
| Tools, skills, subagents, MCP connections | Supported |
|
|
58
|
+
| `ctx.host.kv`, `ctx.host.files`, artifacts | Supported, in platform-selected storage |
|
|
59
|
+
| Reminders with `prompt` or a named `handler` | Supported |
|
|
60
|
+
| Secrets and `hosting.egressDomains` | Supported. Same-slug deploys copy v1 secrets. |
|
|
61
|
+
| `persistent: true` and `hosting.image` | Supported, one persistent deployment per team |
|
|
62
|
+
| Local `bdk dev`, `run`, `eval`, and the playground | Supported |
|
|
63
|
+
| `defineStorage` in `agent/storage.ts` | Not supported. Delete the file. |
|
|
64
|
+
| Reminders with inline `run` or a function `until` | Not supported. Use a named handler. |
|
|
65
|
+
| Cron schedules in `agent/schedules/` on Cursor hosting | Not delivered yet. Self-hosted `bdk serve` still runs them. |
|
|
66
|
+
| Slack tool-approval buttons on Cursor hosting | Not supported yet |
|
|
67
|
+
| `bdk mcp oauth --store` for host MCP OAuth | Not supported. Connect Cursor-account MCP servers from **Deployed Agents** in the dashboard. |
|
|
68
|
+
| `/v1/health`, session, tool, and MCP APIs on the deployment URL | Not reachable |
|
|
69
|
+
| `--prod` with `chat`, `resume`, `call`, `sessions`, `cost`, or `mcp` | Not supported. Use `run --prod`, `session --prod`, and `logs --prod`. |
|
|
70
|
+
| v1 sessions, KV, and files | Not carried over. v2 starts empty, and deleting v1 deletes them. |
|
|
71
|
+
|
|
72
|
+
The steps below rewrite `defineStorage`, inline reminders, SCM channel
|
|
73
|
+
credentials, and secret reads. Stop and ask before migrating an agent
|
|
74
|
+
that depends on cron schedules, Slack tool-approval buttons,
|
|
75
|
+
`mcp oauth --store`, or an HTTP route whose caller reads the response
|
|
76
|
+
body. Name the row and the file that uses it.
|
|
77
|
+
|
|
78
|
+
## Update the project
|
|
79
|
+
|
|
80
|
+
Keep the diff to the migration. Leave an `agent/` root in place; it
|
|
81
|
+
still loads.
|
|
82
|
+
|
|
83
|
+
1. **Upgrade the package.** Replace `@cursor/july` with the latest
|
|
84
|
+
`@cursor/bdk` in `package.json`, then install with the project's
|
|
85
|
+
package manager:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm uninstall @cursor/july
|
|
89
|
+
npm install @cursor/bdk@latest
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Commit the lockfile the install writes, since deploys build from Git.
|
|
93
|
+
Rewrite every `@cursor/july` import to `@cursor/bdk`; subpaths such as
|
|
94
|
+
`/channels/slack`, `/evals`, and `/reminders` keep their names. Replace
|
|
95
|
+
`agent-sdk` with `bdk` in scripts, CI jobs, and READMEs.
|
|
96
|
+
|
|
97
|
+
The new types are stricter. `ctx.session.continuationKey` is
|
|
98
|
+
`string | null`, so guard with `typeof key === "string"`, not
|
|
99
|
+
`!== undefined`. Typecheck with `npx tsc --noEmit` even when the
|
|
100
|
+
project has no script for it.
|
|
101
|
+
|
|
102
|
+
2. **Drop the v1 opt-in.** Delete `architecture: "v1"` from
|
|
103
|
+
`defineAgent`. v2 is the default, so do not add `architecture: "v2"`.
|
|
104
|
+
|
|
105
|
+
3. **Delete `agent/storage.ts`.** v2 selects storage itself, and
|
|
106
|
+
`ctx.host.kv` calls keep working against it. Data in a backend you
|
|
107
|
+
run stays there. Data in Cursor-hosted storage is deleted with the v1
|
|
108
|
+
deployment, so export what the agent still needs before deploying.
|
|
109
|
+
|
|
110
|
+
4. **Name inline reminders.** Move each inline `run` into
|
|
111
|
+
`agent/reminders/<name>.ts` and pass that module as `handler` with
|
|
112
|
+
serializable `args`. A named handler takes no `until`. Move a function
|
|
113
|
+
`until` check into the handler and call `cancel()` when it holds.
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
// agent/reminders/ci_recheck.ts
|
|
117
|
+
import { defineReminder } from "@cursor/bdk/reminders";
|
|
118
|
+
|
|
119
|
+
export default defineReminder({
|
|
120
|
+
async run({ args, followup }) {
|
|
121
|
+
await followup({ message: `Recheck CI on ${String(args.headSha)}` });
|
|
122
|
+
return { action: "delivered" };
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```ts
|
|
128
|
+
// agent/tools/watch_ci.ts, inside execute
|
|
129
|
+
await ctx.host.reminders?.create({
|
|
130
|
+
purpose: "ci_recheck",
|
|
131
|
+
channelId: ctx.session.channelId,
|
|
132
|
+
continuationToken: key,
|
|
133
|
+
delay: "2h",
|
|
134
|
+
handler: ciRecheck, // import ciRecheck from "../reminders/ci_recheck.js"
|
|
135
|
+
args: { headSha },
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
5. **Rewrite `/v1` continuation selectors.** Delete an explicit
|
|
140
|
+
`continuation: "<kind>.<scope>/v1"` on a channel so v2 picks its
|
|
141
|
+
default, or change the suffix to `/v2`. By default, GitHub PR events,
|
|
142
|
+
Slack threads, and deployment events still continue one session per
|
|
143
|
+
PR, thread, or deployment.
|
|
144
|
+
|
|
145
|
+
6. **Name SCM channel credentials.** Replace every literal and
|
|
146
|
+
`() => process.env.NAME` getter in `githubChannel({ credentials })`
|
|
147
|
+
with `{ secretName: "NAME" }`, and do the same for the `webhookSecret`
|
|
148
|
+
of `gitlabChannel` and `bitbucketChannel`. Keep the name the getter
|
|
149
|
+
read; the channel reads that environment variable locally and the
|
|
150
|
+
deployment secret of that name on Cursor hosting. A field you omit
|
|
151
|
+
keeps its default name (`GITHUB_WEBHOOK_SECRET`, `GITHUB_TOKEN`,
|
|
152
|
+
`GITHUB_APP_ID`, `GITHUB_APP_PRIVATE_KEY`), a numeric `appId` stays a
|
|
153
|
+
number, and `cursorAccount` needs no credentials.
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
// before (v1)
|
|
157
|
+
credentials: {
|
|
158
|
+
webhookSecret: () => process.env.GITHUB_WEBHOOK_SECRET,
|
|
159
|
+
appId: () => process.env.GITHUB_APP_ID,
|
|
160
|
+
privateKey: () => process.env.GITHUB_APP_PRIVATE_KEY,
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
// after (v2)
|
|
164
|
+
credentials: {
|
|
165
|
+
webhookSecret: { secretName: "GITHUB_WEBHOOK_SECRET" },
|
|
166
|
+
appId: { secretName: "GITHUB_APP_ID" },
|
|
167
|
+
privateKey: { secretName: "GITHUB_APP_PRIVATE_KEY" },
|
|
168
|
+
},
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
`bdk validate` lists each field still in the old shape. While
|
|
172
|
+
`architecture: "v1"` is set the finding is a warning, so you can run
|
|
173
|
+
it before step 2 to see the full list; after step 2 the same finding
|
|
174
|
+
is an error and blocks `deploy`. Do not set the values: a same-slug
|
|
175
|
+
deploy copies the v1 secrets, and a new slug takes
|
|
176
|
+
`bdk secrets set <new-slug> NAME` after the deploy.
|
|
177
|
+
|
|
178
|
+
7. **Move secret reads.** Replace module-scope `process.env.NAME` reads
|
|
179
|
+
with reads inside the function that uses them. Give MCP connections a
|
|
180
|
+
`${NAME}` header or env template instead.
|
|
181
|
+
|
|
182
|
+
8. **Stop answering from HTTP routes.** A custom route that returned
|
|
183
|
+
computed data must deliver it another way, such as a callback URL or a
|
|
184
|
+
tool the turn calls.
|
|
185
|
+
|
|
186
|
+
## Verify locally
|
|
187
|
+
|
|
188
|
+
Run the project's installed CLI. Prefix each command with `npx` when
|
|
189
|
+
`bdk` is not on `PATH`.
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
bdk validate --dir .
|
|
193
|
+
bdk info --dir . --json
|
|
194
|
+
bdk run --dir . --message "<a representative request>"
|
|
195
|
+
bdk eval --dir .
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Fix every validation error, but never change `runtime` to pass
|
|
199
|
+
validation; stop and report instead. An error ending in `requires a
|
|
200
|
+
named secret` names a channel credential step 6 missed; it quotes the
|
|
201
|
+
`{ secretName }` value to use. `run` and `eval` need a Cursor
|
|
202
|
+
credential. When none is set, skip them and say so in the pull request.
|
|
203
|
+
Run the project's own typecheck and tests.
|
|
204
|
+
|
|
205
|
+
## Open the pull request
|
|
206
|
+
|
|
207
|
+
Describe each removed or changed behavior, each unsupported row the
|
|
208
|
+
agent touched, and the deploy steps. Do not deploy from the pull request
|
|
209
|
+
branch.
|
|
210
|
+
|
|
211
|
+
## Deploy after merge
|
|
212
|
+
|
|
213
|
+
Deploy from a pushed ref. `bdk deploy` reads Git and never uploads the
|
|
214
|
+
working tree.
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
bdk login
|
|
218
|
+
bdk validate --dir .
|
|
219
|
+
bdk deploy --dir . --slug <existing-slug> \
|
|
220
|
+
--cursor-events-repo <owner/repo> \
|
|
221
|
+
--allow-domain <domain>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Pass every `--cursor-events-repo` and `--allow-domain` value the v1
|
|
225
|
+
deployment used. Domains already in `hosting.egressDomains` need no
|
|
226
|
+
flag. Print only those two fields, because the full output holds
|
|
227
|
+
credentials:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
bdk deployment <slug> --json | jq '{cursorEventRepos, egressAllowedDomains}'
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Choose a cutover before you deploy:
|
|
234
|
+
|
|
235
|
+
- **Same slug.** One command, and it can't be undone. The deploy copies
|
|
236
|
+
the v1 secrets, switches traffic once v2 is running, then deletes the
|
|
237
|
+
v1 deployment along with its Cursor-hosted sessions, KV, files, and
|
|
238
|
+
eval runs. Slack and webhook traffic stops until you finish the steps
|
|
239
|
+
below. If the command reports that same-slug replacement is
|
|
240
|
+
unavailable, use a new slug.
|
|
241
|
+
- **New slug.** v1 keeps serving while you test. Set secrets with
|
|
242
|
+
`bdk secrets set <new-slug> NAME`. Both deployments act on events from
|
|
243
|
+
the same repositories, so point the trial at a test repository with
|
|
244
|
+
`--cursor-events-repo`. Then move senders over and run
|
|
245
|
+
`bdk delete <old-slug>`, which deletes v1's hosted data the same way.
|
|
246
|
+
|
|
247
|
+
Prefer a new slug when the agent serves Slack, receives webhooks, or
|
|
248
|
+
keeps data in `ctx.host.kv`.
|
|
249
|
+
|
|
250
|
+
After the deploy is running:
|
|
251
|
+
|
|
252
|
+
- Store the alias token the deploy prints. Point every webhook sender
|
|
253
|
+
and HTTP caller at the new alias URL.
|
|
254
|
+
- For Slack, run `bdk slack create --prod --dir .`, then deploy again so
|
|
255
|
+
the deployment binds the workspace. The new app is a different bot, so
|
|
256
|
+
invite it to the channels the old one joined. The copied v1 Slack
|
|
257
|
+
secrets go unused.
|
|
258
|
+
- Reconnect Cursor-account MCP servers from **Deployed Agents** in the
|
|
259
|
+
dashboard.
|
|
260
|
+
- Start a turn with `bdk run --prod --slug <slug> --message "..."`, then
|
|
261
|
+
read it with `bdk session <ses_...> --prod --slug <slug>`.
|
|
262
|
+
|
|
263
|
+
The [deploy skill](../deploy/SKILL.md) covers deploys with an attached
|
|
264
|
+
service account.
|