@cursor/bdk 0.2.23 → 0.2.25

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.
Files changed (421) hide show
  1. package/AGENTS.md +1 -0
  2. package/dist/artifacts.d.ts +1 -1
  3. package/dist/artifacts.js +1 -1
  4. package/dist/bin/agent-serve.d.ts +1 -1
  5. package/dist/bin/agent-serve.js +48 -12
  6. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  7. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +3 -2
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-webhook.js +14 -9
  10. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  11. package/dist/channels/deployments/deployments-channel.js +1 -1
  12. package/dist/channels/github/github-channel.d.ts.map +1 -1
  13. package/dist/channels/github/github-channel.js +10 -19
  14. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  15. package/dist/channels/issues/issues-channel.js +1 -1
  16. package/dist/channels/origin/origin-channel.js +1 -1
  17. package/dist/channels/pagerduty/api.d.ts +74 -0
  18. package/dist/channels/pagerduty/api.d.ts.map +1 -0
  19. package/dist/channels/pagerduty/api.js +101 -0
  20. package/dist/channels/pagerduty/defaults.d.ts +42 -0
  21. package/dist/channels/pagerduty/defaults.d.ts.map +1 -0
  22. package/dist/channels/pagerduty/defaults.js +132 -0
  23. package/dist/channels/pagerduty/events.d.ts +24 -0
  24. package/dist/channels/pagerduty/events.d.ts.map +1 -0
  25. package/dist/channels/pagerduty/events.js +38 -0
  26. package/dist/channels/pagerduty/index.d.ts +31 -0
  27. package/dist/channels/pagerduty/index.d.ts.map +1 -0
  28. package/dist/channels/pagerduty/index.js +30 -0
  29. package/dist/channels/pagerduty/pagerduty-channel.d.ts +64 -0
  30. package/dist/channels/pagerduty/pagerduty-channel.d.ts.map +1 -0
  31. package/dist/channels/pagerduty/pagerduty-channel.js +195 -0
  32. package/dist/channels/pagerduty/pagerduty-webhook.d.ts +70 -0
  33. package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -0
  34. package/dist/channels/pagerduty/pagerduty-webhook.js +280 -0
  35. package/dist/channels/pagerduty/payload.d.ts +33 -0
  36. package/dist/channels/pagerduty/payload.d.ts.map +1 -0
  37. package/dist/channels/pagerduty/payload.js +150 -0
  38. package/dist/channels/pagerduty/replay.d.ts +35 -0
  39. package/dist/channels/pagerduty/replay.d.ts.map +1 -0
  40. package/dist/channels/pagerduty/replay.js +115 -0
  41. package/dist/channels/pagerduty/secrets.d.ts +16 -0
  42. package/dist/channels/pagerduty/secrets.d.ts.map +1 -0
  43. package/dist/channels/pagerduty/secrets.js +23 -0
  44. package/dist/channels/pagerduty/self-user.d.ts +51 -0
  45. package/dist/channels/pagerduty/self-user.d.ts.map +1 -0
  46. package/dist/channels/pagerduty/self-user.js +157 -0
  47. package/dist/channels/pagerduty/state.d.ts +31 -0
  48. package/dist/channels/pagerduty/state.d.ts.map +1 -0
  49. package/dist/channels/pagerduty/state.js +30 -0
  50. package/dist/channels/pagerduty/types.d.ts +217 -0
  51. package/dist/channels/pagerduty/types.d.ts.map +1 -0
  52. package/dist/channels/pagerduty/types.js +1 -0
  53. package/dist/channels/runs/runs-channel.js +1 -1
  54. package/dist/channels/slack/tool-approval-events.js +5 -5
  55. package/dist/channels.d.ts +14 -1
  56. package/dist/channels.d.ts.map +1 -1
  57. package/dist/channels.js +24 -9
  58. package/dist/docs/404.html +3 -3
  59. package/dist/docs/assets/{app.AXQcJZaf.js → app.BjS1QEI4.js} +4 -4
  60. package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +1 -0
  61. package/dist/docs/assets/chunks/{VPLocalSearchBox.hlZ2vmun.js → VPLocalSearchBox.BOuvjb5Y.js} +2 -2
  62. package/dist/docs/assets/chunks/{arc.9KNWdH-l.js → arc.3WR6Jf-y.js} +1 -1
  63. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.BfGzkBHI.js → architectureDiagram-Q4EWVU46.Dtb6Dqh6.js} +1 -1
  64. package/dist/docs/assets/chunks/{baseUniq.Btk8-2Rs.js → baseUniq.BUyrgrZE.js} +1 -1
  65. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BmHm9OH5.js → blockDiagram-DXYQGD6D.BVLV_voZ.js} +1 -1
  66. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.9POrbDHJ.js → c4Diagram-AHTNJAMY.jXJ1q70M.js} +1 -1
  67. package/dist/docs/assets/chunks/channel.Dt4aweTm.js +1 -0
  68. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.YWZVSM6S.js → chunk-4BX2VUAB.zz1SMBvK.js} +1 -1
  69. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.Cxr_SFgw.js → chunk-4TB4RGXK.CzYKuv3I.js} +1 -1
  70. package/dist/docs/assets/chunks/{chunk-55IACEB6.DtiJyPlD.js → chunk-55IACEB6.C7_tcJZD.js} +1 -1
  71. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.b5gNHJPH.js → chunk-EDXVE4YY.DeTwQPVO.js} +1 -1
  72. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DmN9yA_M.js → chunk-FMBD7UC4.DhMTl7ut.js} +1 -1
  73. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Dfm3xgV5.js → chunk-OYMX7WX6.Me7f5hEp.js} +1 -1
  74. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.sXNxDcJA.js → chunk-QZHKN3VN.D0E0Bb6g.js} +1 -1
  75. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DgBnDUV7.js → chunk-YZCP3GAM.CdOOBFYL.js} +1 -1
  76. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +1 -0
  77. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +1 -0
  78. package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +1 -0
  79. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.D18MEcoN.js → cose-bilkent-S5V4N54A.BNbGESzN.js} +1 -1
  80. package/dist/docs/assets/chunks/{dagre-KV5264BT.CSf3tihh.js → dagre-KV5264BT.zU7Lu_xJ.js} +1 -1
  81. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.cbfzAfoC.js → diagram-5BDNPKRD.B9qOdE5h.js} +1 -1
  82. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.6i6P3uu9.js → diagram-G4DWMVQ6.D8X-sf77.js} +1 -1
  83. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.B9HAIfN6.js → diagram-MMDJMWI5.CW7MvMlE.js} +1 -1
  84. package/dist/docs/assets/chunks/{diagram-TYMM5635.B9baAjUv.js → diagram-TYMM5635.J489G0Nd.js} +1 -1
  85. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DaBmX_GN.js → erDiagram-SMLLAGMA.BkW7tGfs.js} +1 -1
  86. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CJqQJjkb.js → flowDiagram-DWJPFMVM.jc9iWORD.js} +1 -1
  87. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.CIXBLQhC.js → ganttDiagram-T4ZO3ILL.B-UQfd9E.js} +1 -1
  88. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CDgentto.js → gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js} +1 -1
  89. package/dist/docs/assets/chunks/{graph.BWHn6JBQ.js → graph.C5IB6_e_.js} +1 -1
  90. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.d9VU_ts_.js → infoDiagram-42DDH7IO.DwF0-c8L.js} +1 -1
  91. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.BNO79Prj.js → ishikawaDiagram-UXIWVN3A.fBaTqzE7.js} +1 -1
  92. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CPgUTM1R.js → journeyDiagram-VCZTEJTY.CM8gDVJy.js} +1 -1
  93. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.idl0Eoe1.js → kanban-definition-6JOO6SKY.YiD1p0LB.js} +1 -1
  94. package/dist/docs/assets/chunks/{layout.BY7DIMr6.js → layout.6Um-DVJT.js} +1 -1
  95. package/dist/docs/assets/chunks/{linear.DYaUDrHd.js → linear.DcTeg4Hn.js} +1 -1
  96. package/dist/docs/assets/chunks/{min.V6MWb1UC.js → min.CIxkY8Fe.js} +1 -1
  97. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BRlJXuFS.js → mindmap-definition-QFDTVHPH.D4QM_voR.js} +1 -1
  98. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BIhkDLcB.js → pieDiagram-DEJITSTG.nmB309G1.js} +1 -1
  99. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.Bw-_VEL3.js → quadrantDiagram-34T5L4WZ.D1HtZR3C.js} +1 -1
  100. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DolEGwxw.js → requirementDiagram-MS252O5E.CZgQWob-.js} +1 -1
  101. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.hMM-8BhN.js → sankeyDiagram-XADWPNL6.DtiBfU-P.js} +1 -1
  102. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bg_CRVDy.js → sequenceDiagram-FGHM5R23.Cld4gDSt.js} +1 -1
  103. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DNWdl34_.js → stateDiagram-FHFEXIEX.DatP823_.js} +1 -1
  104. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +1 -0
  105. package/dist/docs/assets/chunks/{theme.CBW1oolh.js → theme.D5jbBys7.js} +2 -2
  106. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Cr1wJ1mB.js → timeline-definition-GMOUNBTQ.DwQLI2be.js} +1 -1
  107. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BltDV9j7.js → vennDiagram-DHZGUBPP.a5yMfnsa.js} +1 -1
  108. package/dist/docs/assets/chunks/{wardley-RL74JXVD.BWPaUhOs.js → wardley-RL74JXVD.B-FXivgT.js} +1 -1
  109. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.nsADqCCo.js → wardleyDiagram-NUSXRM2D.Dz--Opy3.js} +1 -1
  110. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CCwbO3dK.js → xychartDiagram-5P7HB3ND.Dl8w8TeT.js} +1 -1
  111. package/dist/docs/assets/{deployment.md.CtSJ6sF9.js → deployment.md.3MMWuPeV.js} +5 -5
  112. package/dist/docs/assets/{deployment.md.CtSJ6sF9.lean.js → deployment.md.3MMWuPeV.lean.js} +1 -1
  113. package/dist/docs/assets/{guides_cloud-agents.md.CBK7W0-O.js → guides_cloud-agents.md.BzbzcOyj.js} +2 -2
  114. package/dist/docs/assets/{guides_cloud-agents.md.CBK7W0-O.lean.js → guides_cloud-agents.md.BzbzcOyj.lean.js} +1 -1
  115. package/dist/docs/assets/{guides_opentelemetry.md.ByW1Fs7b.js → guides_opentelemetry.md.DBQtp7_V.js} +13 -5
  116. package/dist/docs/assets/{guides_opentelemetry.md.ByW1Fs7b.lean.js → guides_opentelemetry.md.DBQtp7_V.lean.js} +1 -1
  117. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.js +60 -0
  118. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.lean.js +1 -0
  119. package/dist/docs/assets/{reference_agent-config.md.DYA6ge6t.js → reference_agent-config.md.IplwL25I.js} +1 -2
  120. package/dist/docs/assets/{reference_agent-config.md.DYA6ge6t.lean.js → reference_agent-config.md.IplwL25I.lean.js} +1 -1
  121. package/dist/docs/assets/{reference_channels.md.DYg0CLud.js → reference_channels.md.Bxaa020x.js} +1 -1
  122. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.js → reference_cli.md.1o_TqKdt.js} +7 -2
  123. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.lean.js → reference_cli.md.1o_TqKdt.lean.js} +1 -1
  124. package/dist/docs/assets/{reference_extensions.md.OUacPetl.js → reference_extensions.md.DKxTuCIw.js} +11 -8
  125. package/dist/docs/assets/{reference_extensions.md.OUacPetl.lean.js → reference_extensions.md.DKxTuCIw.lean.js} +1 -1
  126. package/dist/docs/assets/{reference_instructions.md.DrcHZXig.js → reference_instructions.md.BYMVxAkw.js} +4 -4
  127. package/dist/docs/assets/{reference_instructions.md.DrcHZXig.lean.js → reference_instructions.md.BYMVxAkw.lean.js} +1 -1
  128. package/dist/docs/assets/{reference_schedules.md.BqWnJES4.js → reference_schedules.md.03Ryy9ca.js} +3 -3
  129. package/dist/docs/assets/{reference_tools.md.08XR7lIl.js → reference_tools.md.-6pypsWt.js} +1 -1
  130. package/dist/docs/assets/{style.Dwls12uf.css → style.nMsabY-V.css} +1 -1
  131. package/dist/docs/assets/templates_agentic-owners.md.CTEnR0jp.js +13 -0
  132. package/dist/docs/assets/{templates_agentic-owners.md.CvmABtia.lean.js → templates_agentic-owners.md.CTEnR0jp.lean.js} +1 -1
  133. package/dist/docs/building-with-agents.html +37 -37
  134. package/dist/docs/deployment.html +42 -42
  135. package/dist/docs/deployment.md +9 -4
  136. package/dist/docs/evals.html +37 -37
  137. package/dist/docs/guides/agent-to-agent.html +37 -37
  138. package/dist/docs/guides/bitbucket.html +37 -37
  139. package/dist/docs/guides/cloud-agents.html +38 -38
  140. package/dist/docs/guides/cloud-agents.md +1 -0
  141. package/dist/docs/guides/convert-automation.html +37 -37
  142. package/dist/docs/guides/export-grokbot.html +37 -37
  143. package/dist/docs/guides/github.html +37 -37
  144. package/dist/docs/guides/gitlab.html +37 -37
  145. package/dist/docs/guides/grokbot-agents.html +37 -37
  146. package/dist/docs/guides/hooks.html +37 -37
  147. package/dist/docs/guides/improve.html +37 -37
  148. package/dist/docs/guides/jev.html +37 -37
  149. package/dist/docs/guides/mcp-oauth.html +37 -37
  150. package/dist/docs/guides/migrate.html +37 -37
  151. package/dist/docs/guides/opentelemetry.html +49 -41
  152. package/dist/docs/guides/opentelemetry.md +54 -3
  153. package/dist/docs/guides/pagerduty.html +119 -0
  154. package/dist/docs/guides/pagerduty.md +336 -0
  155. package/dist/docs/guides/slack.html +37 -37
  156. package/dist/docs/guides/webhooks.html +37 -37
  157. package/dist/docs/hashmap.json +1 -1
  158. package/dist/docs/hillclimbing.html +37 -37
  159. package/dist/docs/index.html +37 -37
  160. package/dist/docs/llms-full.txt +510 -42
  161. package/dist/docs/llms.txt +1 -0
  162. package/dist/docs/quickstart.html +37 -37
  163. package/dist/docs/reference/agent-config.html +38 -39
  164. package/dist/docs/reference/agent-config.md +0 -1
  165. package/dist/docs/reference/artifacts.html +37 -37
  166. package/dist/docs/reference/channels.html +38 -38
  167. package/dist/docs/reference/channels.md +2 -1
  168. package/dist/docs/reference/cli.html +43 -38
  169. package/dist/docs/reference/cli.md +27 -0
  170. package/dist/docs/reference/connections.html +37 -37
  171. package/dist/docs/reference/evals.html +37 -37
  172. package/dist/docs/reference/extensions.html +47 -44
  173. package/dist/docs/reference/extensions.md +15 -9
  174. package/dist/docs/reference/hooks.html +37 -37
  175. package/dist/docs/reference/http-api.html +37 -37
  176. package/dist/docs/reference/instructions.html +40 -40
  177. package/dist/docs/reference/instructions.md +5 -1
  178. package/dist/docs/reference/memory.html +37 -37
  179. package/dist/docs/reference/playground.html +36 -36
  180. package/dist/docs/reference/project-layout.html +37 -37
  181. package/dist/docs/reference/prompt.html +37 -37
  182. package/dist/docs/reference/schedules.html +40 -40
  183. package/dist/docs/reference/sessions.html +36 -36
  184. package/dist/docs/reference/skills.html +37 -37
  185. package/dist/docs/reference/subagents.html +37 -37
  186. package/dist/docs/reference/tools.html +39 -39
  187. package/dist/docs/reference/tools.md +1 -0
  188. package/dist/docs/templates/agentic-owners.html +42 -43
  189. package/dist/docs/templates/agentic-owners.md +55 -23
  190. package/dist/docs/templates/grokbot-agents.html +37 -37
  191. package/dist/docs/templates/security-reviewer.html +37 -37
  192. package/dist/docs/templates/thermo-quality-review.html +37 -37
  193. package/dist/docs/templates/thermo-review.html +37 -37
  194. package/dist/docs/templates/triage.html +37 -37
  195. package/dist/docs/troubleshooting.html +36 -36
  196. package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
  197. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  198. package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
  199. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +1 -0
  200. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  201. package/dist/extensions/cursor-cloud-agents/lib/backend.js +2 -1
  202. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  203. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
  204. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
  205. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
  206. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
  207. package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
  208. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  209. package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
  210. package/dist/extensions/cursor-grokbot-agents/extension.js +1 -1
  211. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
  212. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
  213. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
  214. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
  215. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
  216. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
  217. package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
  218. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
  219. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  220. package/dist/extensions/improve/extension.js +1 -1
  221. package/dist/extensions/jev/extension.js +1 -1
  222. package/dist/extensions/jev/tools/evaluate.js +1 -1
  223. package/dist/extensions/slack-communication/extension.js +1 -1
  224. package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
  225. package/dist/extensions/slack-communication/tools/edit-message.js +1 -1
  226. package/dist/extensions/slack-communication/tools/post-card.js +1 -1
  227. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  228. package/dist/extensions/slack-communication/tools/post-update.js +1 -1
  229. package/dist/extensions/slack-communication/tools/react.js +1 -1
  230. package/dist/extensions/slack-communication/tools/set-status.js +1 -1
  231. package/dist/extensions.d.ts +1 -1
  232. package/dist/extensions.js +1 -1
  233. package/dist/internal/approval-gate.d.ts +4 -2
  234. package/dist/internal/approval-gate.d.ts.map +1 -1
  235. package/dist/internal/approval-gate.js +2 -1
  236. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
  237. package/dist/internal/builtin-tools/artifacts.js +46 -13
  238. package/dist/internal/builtin-tools/reminders.js +1 -1
  239. package/dist/internal/channel-architecture.d.ts +1 -1
  240. package/dist/internal/channel-architecture.d.ts.map +1 -1
  241. package/dist/internal/channel-architecture.js +4 -2
  242. package/dist/internal/cli-deploy.d.ts.map +1 -1
  243. package/dist/internal/cli-deploy.js +21 -12
  244. package/dist/internal/cli-pagerduty.d.ts +32 -0
  245. package/dist/internal/cli-pagerduty.d.ts.map +1 -0
  246. package/dist/internal/cli-pagerduty.js +242 -0
  247. package/dist/internal/continuation-channel.d.ts.map +1 -1
  248. package/dist/internal/continuation-channel.js +7 -0
  249. package/dist/internal/continuation-identity.d.ts +11 -3
  250. package/dist/internal/continuation-identity.d.ts.map +1 -1
  251. package/dist/internal/continuation-identity.js +83 -0
  252. package/dist/internal/convert-automation/convert-workflow.js +1 -1
  253. package/dist/internal/convert-grokbot/answers.js +1 -1
  254. package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
  255. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
  256. package/dist/internal/convert-grokbot/recipe.js +1 -1
  257. package/dist/internal/cursor/backend-client.d.ts +1 -1
  258. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  259. package/dist/internal/cursor/backend-client.js +1 -1
  260. package/dist/internal/cursor/credentials.d.ts +1 -1
  261. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  262. package/dist/internal/cursor/credentials.js +1 -1
  263. package/dist/internal/deploy-client.js +1 -1
  264. package/dist/internal/deploy-manifest.d.ts +11 -4
  265. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  266. package/dist/internal/deploy-manifest.js +19 -6
  267. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  268. package/dist/internal/discovery/agent-config.js +10 -10
  269. package/dist/internal/discovery/agent.d.ts.map +1 -1
  270. package/dist/internal/discovery/agent.js +10 -10
  271. package/dist/internal/discovery/channels.d.ts.map +1 -1
  272. package/dist/internal/discovery/channels.js +20 -16
  273. package/dist/internal/discovery/context.d.ts +16 -0
  274. package/dist/internal/discovery/context.d.ts.map +1 -1
  275. package/dist/internal/discovery/context.js +66 -0
  276. package/dist/internal/discovery/cursor-plugin.js +1 -1
  277. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
  278. package/dist/internal/discovery/extension-overlay.js +2 -6
  279. package/dist/internal/discovery/info.d.ts.map +1 -1
  280. package/dist/internal/discovery/info.js +3 -0
  281. package/dist/internal/discovery/instructions.d.ts.map +1 -1
  282. package/dist/internal/discovery/instructions.js +3 -6
  283. package/dist/internal/discovery/modules.d.ts.map +1 -1
  284. package/dist/internal/discovery/modules.js +3 -6
  285. package/dist/internal/discovery/project.d.ts +6 -0
  286. package/dist/internal/discovery/project.d.ts.map +1 -1
  287. package/dist/internal/discovery/project.js +27 -5
  288. package/dist/internal/discovery/runtime.d.ts.map +1 -1
  289. package/dist/internal/discovery/runtime.js +8 -8
  290. package/dist/internal/discovery.d.ts +1 -1
  291. package/dist/internal/discovery.d.ts.map +1 -1
  292. package/dist/internal/discovery.js +1 -1
  293. package/dist/internal/expected-delivery-failure.d.ts.map +1 -1
  294. package/dist/internal/expected-delivery-failure.js +6 -0
  295. package/dist/internal/factory-resource-channel.d.ts +1 -1
  296. package/dist/internal/factory-resource-channel.d.ts.map +1 -1
  297. package/dist/internal/filesystem/sdk-schemas.d.ts +1 -1
  298. package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -1
  299. package/dist/internal/filesystem/sdk-schemas.js +5 -4
  300. package/dist/internal/filesystem/tools.js +1 -1
  301. package/dist/internal/hmac-secret-values.d.ts +48 -0
  302. package/dist/internal/hmac-secret-values.d.ts.map +1 -0
  303. package/dist/internal/hmac-secret-values.js +68 -0
  304. package/dist/internal/host-otel.d.ts +2 -1
  305. package/dist/internal/host-otel.d.ts.map +1 -1
  306. package/dist/internal/host-otel.js +20 -6
  307. package/dist/internal/host-platforms.d.ts.map +1 -1
  308. package/dist/internal/host-platforms.js +8 -2
  309. package/dist/internal/hosted-delivery-protocol.d.ts +4 -0
  310. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  311. package/dist/internal/hosted-delivery.d.ts +7 -0
  312. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  313. package/dist/internal/hosted-delivery.js +19 -17
  314. package/dist/internal/hosting.d.ts +6 -0
  315. package/dist/internal/hosting.d.ts.map +1 -1
  316. package/dist/internal/hosting.js +9 -0
  317. package/dist/internal/init-scaffold.js +1 -1
  318. package/dist/internal/interview/agent-questions.d.ts +1 -1
  319. package/dist/internal/interview/agent-questions.d.ts.map +1 -1
  320. package/dist/internal/interview/agent-questions.js +1 -1
  321. package/dist/internal/interview/question.d.ts +1 -1
  322. package/dist/internal/interview/question.d.ts.map +1 -1
  323. package/dist/internal/interview/question.js +1 -1
  324. package/dist/internal/json-schema.d.ts +7 -7
  325. package/dist/internal/json-schema.d.ts.map +1 -1
  326. package/dist/internal/json-schema.js +14 -17
  327. package/dist/internal/mcp-endpoint.js +1 -1
  328. package/dist/internal/otel/collector.d.ts.map +1 -1
  329. package/dist/internal/otel/collector.js +50 -19
  330. package/dist/internal/otel/config.d.ts +10 -1
  331. package/dist/internal/otel/config.d.ts.map +1 -1
  332. package/dist/internal/otel/config.js +47 -10
  333. package/dist/internal/otel/http.d.ts +1 -1
  334. package/dist/internal/otel/http.d.ts.map +1 -1
  335. package/dist/internal/otel/http.js +1 -1
  336. package/dist/internal/otel/runtime.d.ts +17 -14
  337. package/dist/internal/otel/runtime.d.ts.map +1 -1
  338. package/dist/internal/otel/runtime.js +203 -237
  339. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  340. package/dist/internal/package-inline-stdio.js +21 -5
  341. package/dist/internal/process-memory-telemetry.d.ts +1 -1
  342. package/dist/internal/process-memory-telemetry.d.ts.map +1 -1
  343. package/dist/internal/process-memory-telemetry.js +1 -1
  344. package/dist/internal/sdk-runner.d.ts +2 -3
  345. package/dist/internal/sdk-runner.d.ts.map +1 -1
  346. package/dist/internal/sdk-runner.js +30 -6
  347. package/dist/internal/secret-alternatives.d.ts +11 -0
  348. package/dist/internal/secret-alternatives.d.ts.map +1 -0
  349. package/dist/internal/secret-alternatives.js +13 -0
  350. package/dist/internal/server.d.ts.map +1 -1
  351. package/dist/internal/server.js +27 -15
  352. package/dist/internal/session-engine.d.ts +9 -1
  353. package/dist/internal/session-engine.d.ts.map +1 -1
  354. package/dist/internal/session-engine.js +30 -4
  355. package/dist/internal/slack-provision-client.js +1 -1
  356. package/dist/internal/sqlite-experimental-warning.d.ts +2 -0
  357. package/dist/internal/sqlite-experimental-warning.d.ts.map +1 -0
  358. package/dist/internal/sqlite-experimental-warning.js +22 -0
  359. package/dist/internal/store-api-protocol.d.ts +1 -1
  360. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  361. package/dist/internal/store-api-protocol.js +1 -1
  362. package/dist/internal/testing/conversation-identity-vectors.d.ts +6 -1
  363. package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -1
  364. package/dist/internal/testing/conversation-identity-vectors.js +34 -0
  365. package/dist/internal/testing/hmac-secret-vectors.d.ts +38 -0
  366. package/dist/internal/testing/hmac-secret-vectors.d.ts.map +1 -0
  367. package/dist/internal/testing/hmac-secret-vectors.js +89 -0
  368. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts +42 -0
  369. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts.map +1 -0
  370. package/dist/internal/testing/pagerduty-continuation-fixtures.js +175 -0
  371. package/dist/internal/update-check.d.ts +1 -1
  372. package/dist/internal/update-check.d.ts.map +1 -1
  373. package/dist/internal/update-check.js +1 -1
  374. package/dist/internal/zod-schema.d.ts +14 -0
  375. package/dist/internal/zod-schema.d.ts.map +1 -0
  376. package/dist/internal/zod-schema.js +22 -0
  377. package/dist/otel.d.ts +1 -2
  378. package/dist/otel.d.ts.map +1 -1
  379. package/dist/otel.js +0 -1
  380. package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
  381. package/dist/playground/assets/index-BdMwybMt.css +1 -0
  382. package/dist/playground/assets/index-CHk6O92d.js +62 -0
  383. package/dist/playground/index.html +2 -2
  384. package/dist/tools.d.ts +14 -11
  385. package/dist/tools.d.ts.map +1 -1
  386. package/dist/tools.js +4 -3
  387. package/dist/types.d.ts +67 -16
  388. package/dist/types.d.ts.map +1 -1
  389. package/docs/deployment.md +9 -4
  390. package/docs/guides/cloud-agents.md +1 -0
  391. package/docs/guides/opentelemetry.md +54 -3
  392. package/docs/guides/pagerduty.md +341 -0
  393. package/docs/reference/agent-config.md +0 -1
  394. package/docs/reference/channels.md +2 -1
  395. package/docs/reference/cli.md +27 -0
  396. package/docs/reference/extensions.md +15 -9
  397. package/docs/reference/instructions.md +5 -1
  398. package/docs/reference/tools.md +1 -0
  399. package/docs/templates/agentic-owners.md +55 -23
  400. package/package.json +24 -19
  401. package/skills/migrate-v2/SKILL.md +1 -1
  402. package/skills/otel/SKILL.md +24 -7
  403. package/templates/agentic-owners/README.md +6 -1
  404. package/templates/agentic-owners/bot/lib/owners/decision.ts +31 -5
  405. package/templates/agentic-owners/bot/lib/owners/globalOverride.ts +60 -0
  406. package/templates/agentic-owners/bot/lib/owners/match.ts +85 -19
  407. package/templates/agentic-owners/bot/lib/owners/parse.ts +133 -2
  408. package/templates/agentic-owners/bot/lib/owners/types.ts +23 -0
  409. package/dist/docs/assets/chunks/@localSearchIndexroot.B3j7LFef.js +0 -1
  410. package/dist/docs/assets/chunks/channel.RoCpi7X1.js +0 -1
  411. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.oxdmwwqk.js +0 -1
  412. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.oxdmwwqk.js +0 -1
  413. package/dist/docs/assets/chunks/clone.BkguoIMm.js +0 -1
  414. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.7W-btjJ2.js +0 -1
  415. package/dist/docs/assets/templates_agentic-owners.md.CvmABtia.js +0 -14
  416. package/dist/playground/assets/cursor-icons-16-gwXtdAvu.woff2 +0 -0
  417. package/dist/playground/assets/index-BtsbIqV9.css +0 -1
  418. package/dist/playground/assets/index-CD8VRa25.js +0 -71
  419. /package/dist/docs/assets/{reference_channels.md.DYg0CLud.lean.js → reference_channels.md.Bxaa020x.lean.js} +0 -0
  420. /package/dist/docs/assets/{reference_schedules.md.BqWnJES4.lean.js → reference_schedules.md.03Ryy9ca.lean.js} +0 -0
  421. /package/dist/docs/assets/{reference_tools.md.08XR7lIl.lean.js → reference_tools.md.-6pypsWt.lean.js} +0 -0
@@ -6,45 +6,45 @@
6
6
  <title>Migrate an early-alpha project | Bot Development Kit (BDK)</title>
7
7
  <meta name="description" content="Move a hosted BDK architecture v1 project to v2 through a reviewed pull request.">
8
8
  <meta name="generator" content="VitePress v1.6.4">
9
- <link rel="preload stylesheet" href="/docs/assets/style.Dwls12uf.css" as="style">
9
+ <link rel="preload stylesheet" href="/docs/assets/style.nMsabY-V.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.AXQcJZaf.js"></script>
12
+ <script type="module" src="/docs/assets/app.BjS1QEI4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
14
  <link rel="modulepreload" href="/docs/assets/chunks/framework.BNw1pucY.js">
15
- <link rel="modulepreload" href="/docs/assets/chunks/theme.CBW1oolh.js">
15
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.D5jbBys7.js">
16
16
  <link rel="modulepreload" href="/docs/assets/chunks/katex.DkKDou_j.js">
17
- <link rel="modulepreload" href="/docs/assets/chunks/dagre-KV5264BT.CSf3tihh.js">
18
- <link rel="modulepreload" href="/docs/assets/chunks/cose-bilkent-S5V4N54A.D18MEcoN.js">
19
- <link rel="modulepreload" href="/docs/assets/chunks/c4Diagram-AHTNJAMY.9POrbDHJ.js">
20
- <link rel="modulepreload" href="/docs/assets/chunks/flowDiagram-DWJPFMVM.CJqQJjkb.js">
21
- <link rel="modulepreload" href="/docs/assets/chunks/erDiagram-SMLLAGMA.DaBmX_GN.js">
22
- <link rel="modulepreload" href="/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.CDgentto.js">
23
- <link rel="modulepreload" href="/docs/assets/chunks/ganttDiagram-T4ZO3ILL.CIXBLQhC.js">
24
- <link rel="modulepreload" href="/docs/assets/chunks/infoDiagram-42DDH7IO.d9VU_ts_.js">
25
- <link rel="modulepreload" href="/docs/assets/chunks/pieDiagram-DEJITSTG.BIhkDLcB.js">
26
- <link rel="modulepreload" href="/docs/assets/chunks/quadrantDiagram-34T5L4WZ.Bw-_VEL3.js">
27
- <link rel="modulepreload" href="/docs/assets/chunks/xychartDiagram-5P7HB3ND.CCwbO3dK.js">
28
- <link rel="modulepreload" href="/docs/assets/chunks/requirementDiagram-MS252O5E.DolEGwxw.js">
29
- <link rel="modulepreload" href="/docs/assets/chunks/sequenceDiagram-FGHM5R23.Bg_CRVDy.js">
30
- <link rel="modulepreload" href="/docs/assets/chunks/classDiagram-6PBFFD2Q.oxdmwwqk.js">
31
- <link rel="modulepreload" href="/docs/assets/chunks/classDiagram-v2-HSJHXN6E.oxdmwwqk.js">
32
- <link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-FHFEXIEX.DNWdl34_.js">
33
- <link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.7W-btjJ2.js">
34
- <link rel="modulepreload" href="/docs/assets/chunks/journeyDiagram-VCZTEJTY.CPgUTM1R.js">
35
- <link rel="modulepreload" href="/docs/assets/chunks/timeline-definition-GMOUNBTQ.Cr1wJ1mB.js">
36
- <link rel="modulepreload" href="/docs/assets/chunks/mindmap-definition-QFDTVHPH.BRlJXuFS.js">
37
- <link rel="modulepreload" href="/docs/assets/chunks/kanban-definition-6JOO6SKY.idl0Eoe1.js">
38
- <link rel="modulepreload" href="/docs/assets/chunks/sankeyDiagram-XADWPNL6.hMM-8BhN.js">
39
- <link rel="modulepreload" href="/docs/assets/chunks/diagram-TYMM5635.B9baAjUv.js">
40
- <link rel="modulepreload" href="/docs/assets/chunks/diagram-MMDJMWI5.B9HAIfN6.js">
41
- <link rel="modulepreload" href="/docs/assets/chunks/blockDiagram-DXYQGD6D.BmHm9OH5.js">
42
- <link rel="modulepreload" href="/docs/assets/chunks/diagram-5BDNPKRD.cbfzAfoC.js">
43
- <link rel="modulepreload" href="/docs/assets/chunks/architectureDiagram-Q4EWVU46.BfGzkBHI.js">
44
- <link rel="modulepreload" href="/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.BNO79Prj.js">
45
- <link rel="modulepreload" href="/docs/assets/chunks/vennDiagram-DHZGUBPP.BltDV9j7.js">
46
- <link rel="modulepreload" href="/docs/assets/chunks/diagram-G4DWMVQ6.6i6P3uu9.js">
47
- <link rel="modulepreload" href="/docs/assets/chunks/wardleyDiagram-NUSXRM2D.nsADqCCo.js">
17
+ <link rel="modulepreload" href="/docs/assets/chunks/dagre-KV5264BT.zU7Lu_xJ.js">
18
+ <link rel="modulepreload" href="/docs/assets/chunks/cose-bilkent-S5V4N54A.BNbGESzN.js">
19
+ <link rel="modulepreload" href="/docs/assets/chunks/c4Diagram-AHTNJAMY.jXJ1q70M.js">
20
+ <link rel="modulepreload" href="/docs/assets/chunks/flowDiagram-DWJPFMVM.jc9iWORD.js">
21
+ <link rel="modulepreload" href="/docs/assets/chunks/erDiagram-SMLLAGMA.BkW7tGfs.js">
22
+ <link rel="modulepreload" href="/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js">
23
+ <link rel="modulepreload" href="/docs/assets/chunks/ganttDiagram-T4ZO3ILL.B-UQfd9E.js">
24
+ <link rel="modulepreload" href="/docs/assets/chunks/infoDiagram-42DDH7IO.DwF0-c8L.js">
25
+ <link rel="modulepreload" href="/docs/assets/chunks/pieDiagram-DEJITSTG.nmB309G1.js">
26
+ <link rel="modulepreload" href="/docs/assets/chunks/quadrantDiagram-34T5L4WZ.D1HtZR3C.js">
27
+ <link rel="modulepreload" href="/docs/assets/chunks/xychartDiagram-5P7HB3ND.Dl8w8TeT.js">
28
+ <link rel="modulepreload" href="/docs/assets/chunks/requirementDiagram-MS252O5E.CZgQWob-.js">
29
+ <link rel="modulepreload" href="/docs/assets/chunks/sequenceDiagram-FGHM5R23.Cld4gDSt.js">
30
+ <link rel="modulepreload" href="/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js">
31
+ <link rel="modulepreload" href="/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js">
32
+ <link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-FHFEXIEX.DatP823_.js">
33
+ <link rel="modulepreload" href="/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js">
34
+ <link rel="modulepreload" href="/docs/assets/chunks/journeyDiagram-VCZTEJTY.CM8gDVJy.js">
35
+ <link rel="modulepreload" href="/docs/assets/chunks/timeline-definition-GMOUNBTQ.DwQLI2be.js">
36
+ <link rel="modulepreload" href="/docs/assets/chunks/mindmap-definition-QFDTVHPH.D4QM_voR.js">
37
+ <link rel="modulepreload" href="/docs/assets/chunks/kanban-definition-6JOO6SKY.YiD1p0LB.js">
38
+ <link rel="modulepreload" href="/docs/assets/chunks/sankeyDiagram-XADWPNL6.DtiBfU-P.js">
39
+ <link rel="modulepreload" href="/docs/assets/chunks/diagram-TYMM5635.J489G0Nd.js">
40
+ <link rel="modulepreload" href="/docs/assets/chunks/diagram-MMDJMWI5.CW7MvMlE.js">
41
+ <link rel="modulepreload" href="/docs/assets/chunks/blockDiagram-DXYQGD6D.BVLV_voZ.js">
42
+ <link rel="modulepreload" href="/docs/assets/chunks/diagram-5BDNPKRD.B9qOdE5h.js">
43
+ <link rel="modulepreload" href="/docs/assets/chunks/architectureDiagram-Q4EWVU46.Dtb6Dqh6.js">
44
+ <link rel="modulepreload" href="/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.fBaTqzE7.js">
45
+ <link rel="modulepreload" href="/docs/assets/chunks/vennDiagram-DHZGUBPP.a5yMfnsa.js">
46
+ <link rel="modulepreload" href="/docs/assets/chunks/diagram-G4DWMVQ6.D8X-sf77.js">
47
+ <link rel="modulepreload" href="/docs/assets/chunks/wardleyDiagram-NUSXRM2D.Dz--Opy3.js">
48
48
  <link rel="modulepreload" href="/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js">
49
49
  <link rel="modulepreload" href="/docs/assets/guides_migrate.md.CQlGaBKX.lean.js">
50
50
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -53,14 +53,14 @@
53
53
  <link rel="alternate" type="text/markdown" href="/docs/guides/migrate.md">
54
54
  </head>
55
55
  <body>
56
- <div id="app"><div class="Layout" data-v-5ebc75e4><!--[--><!--]--><!--[--><span tabindex="-1" data-v-7de63af3></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-7de63af3>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5ebc75e4 data-v-e8579816><div class="VPNavBar" data-v-e8579816 data-v-bbf4446f><div class="wrapper" data-v-bbf4446f><div class="container" data-v-bbf4446f><div class="title" data-v-bbf4446f><div class="VPNavBarTitle has-sidebar" data-v-bbf4446f data-v-ebd5f04e><a class="title" href="/docs/" data-v-ebd5f04e><!--[--><!--]--><!----><span data-v-ebd5f04e>Bot Development Kit (BDK)</span><!--[--><!--[--><!--[--><!--[--><span class="bdk-version" title="BDK 0.2.23 (@cursor/bdk package)" data-v-d89e5038>0.2.23</span><!--]--><!--]--><!--]--><!--]--></a></div></div><div class="content" data-v-bbf4446f><div class="content-body" data-v-bbf4446f><!--[--><!--]--><div class="VPNavBarSearch search" data-v-bbf4446f><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-bbf4446f data-v-7fa90d1c><span id="main-nav-aria-label" class="visually-hidden" data-v-7fa90d1c> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/quickstart.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Quickstart</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/mcp-oauth.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Guides</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/github.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Integrations</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/templates/security-reviewer.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Templates</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/reference/project-layout.html" tabindex="0" data-v-7fa90d1c data-v-8d7ed182><!--[--><span data-v-8d7ed182>Reference</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-bbf4446f data-v-6a44a4fa><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6a44a4fa data-v-b541f24b data-v-a48af969><span class="check" data-v-a48af969><span class="icon" data-v-a48af969><!--[--><span class="vpi-sun sun" data-v-b541f24b></span><span class="vpi-moon moon" data-v-b541f24b></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-bbf4446f data-v-8d21ceac data-v-269c0ea1><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-269c0ea1><span class="vpi-more-horizontal icon" data-v-269c0ea1></span></button><div class="menu" data-v-269c0ea1><div class="VPMenu" data-v-269c0ea1 data-v-ab92b832><!----><!--[--><!--[--><!----><div class="group" data-v-8d21ceac><div class="item appearance" data-v-8d21ceac><p class="label" data-v-8d21ceac>Appearance</p><div class="appearance-action" data-v-8d21ceac><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-8d21ceac data-v-b541f24b data-v-a48af969><span class="check" data-v-a48af969><span class="icon" data-v-a48af969><!--[--><span class="vpi-sun sun" data-v-b541f24b></span><span class="vpi-moon moon" data-v-b541f24b></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-bbf4446f data-v-efff335d><span class="container" data-v-efff335d><span class="top" data-v-efff335d></span><span class="middle" data-v-efff335d></span><span class="bottom" data-v-efff335d></span></span></button></div></div></div></div><div class="divider" data-v-bbf4446f><div class="divider-line" data-v-bbf4446f></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5ebc75e4 data-v-636a9279><div class="container" data-v-636a9279><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-636a9279><span class="vpi-align-left menu-icon" data-v-636a9279></span><span class="menu-text" data-v-636a9279>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-636a9279 data-v-ae38d8b4><button data-v-ae38d8b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5ebc75e4 data-v-f102723c><div class="curtain" data-v-f102723c></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-f102723c><span class="visually-hidden" id="sidebar-aria-label" data-v-f102723c> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Getting started</h2><!----></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/quickstart.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Building your first agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Integrations</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/github.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>GitHub</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/slack.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Slack</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/webhooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Webhooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/convert-automation.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Cursor Automations</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/opentelemetry.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>OpenTelemetry</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/gitlab.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>GitLab</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/bitbucket.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Bitbucket</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Extensions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/extensions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/cloud-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Cloud agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/grokbot-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/improve.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Self-improvement</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/jev.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Jev</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible has-active" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Guides</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/mcp-oauth.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>MCP</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/hooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/agent-to-agent.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Peer agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/deployment.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Deployment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/export-grokbot.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Export a Grok Bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/guides/migrate.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Early-alpha migration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/evals.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/hillclimbing.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hillclimbing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/building-with-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Build with a coding agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/troubleshooting.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Troubleshooting</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Templates</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/grokbot-agents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/security-reviewer.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Security reviewer</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/thermo-review.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Thermo review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/thermo-quality-review.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Thermo quality review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/agentic-owners.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Agentic Approver</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/templates/triage.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Triage agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9c447dd5><section class="VPSidebarItem level-0 collapsible" data-v-9c447dd5 data-v-8ccd545c><div class="item" role="button" tabindex="0" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><h2 class="text" data-v-8ccd545c>Reference</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8ccd545c><span class="vpi-chevron-right caret-icon" data-v-8ccd545c></span></div></div><div class="items" data-v-8ccd545c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/project-layout.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Project layout</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/agent-config.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Agent config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/instructions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Instructions</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/tools.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Tools</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/prompt.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>prompt</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/skills.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Skills</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/connections.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>MCP Connections</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/subagents.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Subagents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/channels.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Channels</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/schedules.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Schedules & reminders</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/hooks.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/memory.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/evals.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/artifacts.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Artifacts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/sessions.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Sessions & streaming</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/playground.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>Playground</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/cli.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>CLI</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8ccd545c><div class="item" data-v-8ccd545c><div class="indicator" data-v-8ccd545c></div><a class="VPLink link link" href="/docs/reference/http-api.html" data-v-8ccd545c><!--[--><p class="text" data-v-8ccd545c>HTTP API</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5ebc75e4 data-v-4ab733be><div class="VPDoc has-sidebar has-aside" data-v-4ab733be data-v-4e7466dc><!--[--><!--]--><div class="container" data-v-4e7466dc><div class="aside" data-v-4e7466dc><div class="aside-curtain" data-v-4e7466dc></div><div class="aside-container" data-v-4e7466dc><div class="aside-content" data-v-4e7466dc><div class="VPDocAside" data-v-4e7466dc data-v-4f3f9a30><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-4f3f9a30 data-v-aacbb3fc><div class="content" data-v-aacbb3fc><div class="outline-marker" data-v-aacbb3fc></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-aacbb3fc>On this page</div><ul class="VPDocOutlineItem root" data-v-aacbb3fc data-v-0ffefe2a><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-4f3f9a30></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-4e7466dc><div class="content-container" data-v-4e7466dc><!--[--><!--]--><main class="main" data-v-4e7466dc><div style="position:relative;" class="vp-doc _docs_guides_migrate" data-v-4e7466dc><div><h1 id="migrate-an-early-alpha-project-to-architecture-v2" tabindex="-1">Migrate an early-alpha project to architecture v2 <a class="header-anchor" href="#migrate-an-early-alpha-project-to-architecture-v2" aria-label="Permalink to &quot;Migrate an early-alpha project to architecture v2&quot;">​</a></h1><p>Use this guide only for Bot Development Kit (BDK) projects deployed during the early alpha. Projects that never deployed on architecture v1 already use v2 and need no migration.</p><h2 id="check-whether-your-project-needs-migration" tabindex="-1">Check whether your project needs migration <a class="header-anchor" href="#check-whether-your-project-needs-migration" aria-label="Permalink to &quot;Check whether your project needs migration&quot;">​</a></h2><p>Migrate when at least one of these signals is present:</p><ul><li><p><code>package.json</code> depends on the legacy early-alpha package <code>@cursor/july</code>.</p></li><li><p>A script or CI job runs the legacy early-alpha <code>agent-sdk</code> binary.</p></li><li><p><code>agent/agent.ts</code> sets <code>architecture: &quot;v1&quot;</code>.</p></li><li><p><code>bdk deployment &lt;slug&gt;</code> does not print <code>architecture: v2</code>.</p></li></ul><p>Stop when none of these is true. An existing <code>agent/</code> project root can remain in place; BDK still loads it even though current examples use <code>bot/</code>.</p><p><code>bdk migrate</code> prints <code>Nothing to migrate.</code> and exits 0 only when <code>--dir</code> shows no migration work. The check looks for an <code>@cursor/july</code> dependency, <code>architecture: &quot;v1&quot;</code>, <code>bot/storage.ts</code> or <code>agent/storage.ts</code>, <code>runtime: &quot;grokbot&quot;</code>, a literal SCM credential, a <code>/v1</code> continuation selector, an anonymous reminder, and a <code>*_MCP_URL</code> peer connection. When any of those is present, or a project file cannot be read, the command starts the agent. It does not read the hosted deployment. Run <code>bdk deployment &lt;slug&gt;</code> when you still need to see whether that copy is on v1.</p><h2 id="start-the-migration" tabindex="-1">Start the migration <a class="header-anchor" href="#start-the-migration" aria-label="Permalink to &quot;Start the migration&quot;">​</a></h2><p>Commit and push the source you want to migrate. <code>bdk migrate</code> reads that pushed Git ref, starts a Cursor cloud agent with the bundled migration skill, and waits for the agent to open a pull request. It does not deploy the project.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> login</span></span>
56
+ <div id="app"><div class="Layout" data-v-f430d453><!--[--><!--]--><!--[--><span tabindex="-1" data-v-680db83d></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-680db83d>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f430d453 data-v-ac9780a6><div class="VPNavBar" data-v-ac9780a6 data-v-dabff950><div class="wrapper" data-v-dabff950><div class="container" data-v-dabff950><div class="title" data-v-dabff950><div class="VPNavBarTitle has-sidebar" data-v-dabff950 data-v-1fdc3e33><a class="title" href="/docs/" data-v-1fdc3e33><!--[--><!--]--><!----><span data-v-1fdc3e33>Bot Development Kit (BDK)</span><!--[--><!--[--><!--[--><!--[--><span class="bdk-version" title="BDK 0.2.25 (@cursor/bdk package)" data-v-d89e5038>0.2.25</span><!--]--><!--]--><!--]--><!--]--></a></div></div><div class="content" data-v-dabff950><div class="content-body" data-v-dabff950><!--[--><!--]--><div class="VPNavBarSearch search" data-v-dabff950><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-dabff950 data-v-eea646b1><span id="main-nav-aria-label" class="visually-hidden" data-v-eea646b1> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/quickstart.html" tabindex="0" data-v-eea646b1 data-v-356b6b19><!--[--><span data-v-356b6b19>Quickstart</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/mcp-oauth.html" tabindex="0" data-v-eea646b1 data-v-356b6b19><!--[--><span data-v-356b6b19>Guides</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/guides/github.html" tabindex="0" data-v-eea646b1 data-v-356b6b19><!--[--><span data-v-356b6b19>Integrations</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/templates/security-reviewer.html" tabindex="0" data-v-eea646b1 data-v-356b6b19><!--[--><span data-v-356b6b19>Templates</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/reference/project-layout.html" tabindex="0" data-v-eea646b1 data-v-356b6b19><!--[--><span data-v-356b6b19>Reference</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-dabff950 data-v-bc95e225><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bc95e225 data-v-d980e0ed data-v-18f4a150><span class="check" data-v-18f4a150><span class="icon" data-v-18f4a150><!--[--><span class="vpi-sun sun" data-v-d980e0ed></span><span class="vpi-moon moon" data-v-d980e0ed></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-dabff950 data-v-f342cad0 data-v-c62f596b><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-c62f596b><span class="vpi-more-horizontal icon" data-v-c62f596b></span></button><div class="menu" data-v-c62f596b><div class="VPMenu" data-v-c62f596b data-v-9eccc516><!----><!--[--><!--[--><!----><div class="group" data-v-f342cad0><div class="item appearance" data-v-f342cad0><p class="label" data-v-f342cad0>Appearance</p><div class="appearance-action" data-v-f342cad0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-f342cad0 data-v-d980e0ed data-v-18f4a150><span class="check" data-v-18f4a150><span class="icon" data-v-18f4a150><!--[--><span class="vpi-sun sun" data-v-d980e0ed></span><span class="vpi-moon moon" data-v-d980e0ed></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-dabff950 data-v-06592ead><span class="container" data-v-06592ead><span class="top" data-v-06592ead></span><span class="middle" data-v-06592ead></span><span class="bottom" data-v-06592ead></span></span></button></div></div></div></div><div class="divider" data-v-dabff950><div class="divider-line" data-v-dabff950></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-f430d453 data-v-2bfb3d4b><div class="container" data-v-2bfb3d4b><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2bfb3d4b><span class="vpi-align-left menu-icon" data-v-2bfb3d4b></span><span class="menu-text" data-v-2bfb3d4b>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2bfb3d4b data-v-993d5022><button data-v-993d5022>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-f430d453 data-v-4d843d7b><div class="curtain" data-v-4d843d7b></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-4d843d7b><span class="visually-hidden" id="sidebar-aria-label" data-v-4d843d7b> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-1c552b11><section class="VPSidebarItem level-0" data-v-1c552b11 data-v-1cdea42a><div class="item" role="button" tabindex="0" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><h2 class="text" data-v-1cdea42a>Getting started</h2><!----></div><div class="items" data-v-1cdea42a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/quickstart.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Building your first agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-1c552b11><section class="VPSidebarItem level-0 collapsible" data-v-1c552b11 data-v-1cdea42a><div class="item" role="button" tabindex="0" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><h2 class="text" data-v-1cdea42a>Integrations</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1cdea42a><span class="vpi-chevron-right caret-icon" data-v-1cdea42a></span></div></div><div class="items" data-v-1cdea42a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/github.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>GitHub</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/slack.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Slack</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/webhooks.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Webhooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/convert-automation.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Cursor Automations</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/opentelemetry.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>OpenTelemetry</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/gitlab.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>GitLab</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/bitbucket.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Bitbucket</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/pagerduty.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>PagerDuty</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-1c552b11><section class="VPSidebarItem level-0 collapsible" data-v-1c552b11 data-v-1cdea42a><div class="item" role="button" tabindex="0" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><h2 class="text" data-v-1cdea42a>Extensions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1cdea42a><span class="vpi-chevron-right caret-icon" data-v-1cdea42a></span></div></div><div class="items" data-v-1cdea42a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/extensions.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/cloud-agents.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Cloud agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/grokbot-agents.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/improve.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Self-improvement</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/jev.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Jev</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-1c552b11><section class="VPSidebarItem level-0 collapsible has-active" data-v-1c552b11 data-v-1cdea42a><div class="item" role="button" tabindex="0" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><h2 class="text" data-v-1cdea42a>Guides</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1cdea42a><span class="vpi-chevron-right caret-icon" data-v-1cdea42a></span></div></div><div class="items" data-v-1cdea42a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/mcp-oauth.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>MCP</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/hooks.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/agent-to-agent.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Peer agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/deployment.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Deployment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/export-grokbot.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Export a Grok Bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/guides/migrate.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Early-alpha migration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/evals.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/hillclimbing.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Hillclimbing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/building-with-agents.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Build with a coding agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/troubleshooting.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Troubleshooting</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-1c552b11><section class="VPSidebarItem level-0 collapsible" data-v-1c552b11 data-v-1cdea42a><div class="item" role="button" tabindex="0" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><h2 class="text" data-v-1cdea42a>Templates</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1cdea42a><span class="vpi-chevron-right caret-icon" data-v-1cdea42a></span></div></div><div class="items" data-v-1cdea42a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/templates/grokbot-agents.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Grok Bot agents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/templates/security-reviewer.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Security reviewer</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/templates/thermo-review.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Thermo review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/templates/thermo-quality-review.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Thermo quality review</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/templates/agentic-owners.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Agentic Approver</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/templates/triage.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Triage agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-1c552b11><section class="VPSidebarItem level-0 collapsible" data-v-1c552b11 data-v-1cdea42a><div class="item" role="button" tabindex="0" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><h2 class="text" data-v-1cdea42a>Reference</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1cdea42a><span class="vpi-chevron-right caret-icon" data-v-1cdea42a></span></div></div><div class="items" data-v-1cdea42a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/project-layout.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Project layout</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/agent-config.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Agent config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/instructions.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Instructions</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/tools.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Tools</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/prompt.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>prompt</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/skills.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Skills</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/connections.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>MCP Connections</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/subagents.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Subagents</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/channels.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Channels</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/schedules.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Schedules & reminders</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/hooks.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/memory.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/evals.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Evals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/artifacts.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Artifacts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/sessions.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Sessions & streaming</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/playground.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>Playground</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/cli.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>CLI</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1cdea42a><div class="item" data-v-1cdea42a><div class="indicator" data-v-1cdea42a></div><a class="VPLink link link" href="/docs/reference/http-api.html" data-v-1cdea42a><!--[--><p class="text" data-v-1cdea42a>HTTP API</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-f430d453 data-v-44f169b4><div class="VPDoc has-sidebar has-aside" data-v-44f169b4 data-v-2c214b72><!--[--><!--]--><div class="container" data-v-2c214b72><div class="aside" data-v-2c214b72><div class="aside-curtain" data-v-2c214b72></div><div class="aside-container" data-v-2c214b72><div class="aside-content" data-v-2c214b72><div class="VPDocAside" data-v-2c214b72 data-v-b6955c51><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-b6955c51 data-v-46e03482><div class="content" data-v-46e03482><div class="outline-marker" data-v-46e03482></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-46e03482>On this page</div><ul class="VPDocOutlineItem root" data-v-46e03482 data-v-1b25c5bc><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-b6955c51></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-2c214b72><div class="content-container" data-v-2c214b72><!--[--><!--]--><main class="main" data-v-2c214b72><div style="position:relative;" class="vp-doc _docs_guides_migrate" data-v-2c214b72><div><h1 id="migrate-an-early-alpha-project-to-architecture-v2" tabindex="-1">Migrate an early-alpha project to architecture v2 <a class="header-anchor" href="#migrate-an-early-alpha-project-to-architecture-v2" aria-label="Permalink to &quot;Migrate an early-alpha project to architecture v2&quot;">​</a></h1><p>Use this guide only for Bot Development Kit (BDK) projects deployed during the early alpha. Projects that never deployed on architecture v1 already use v2 and need no migration.</p><h2 id="check-whether-your-project-needs-migration" tabindex="-1">Check whether your project needs migration <a class="header-anchor" href="#check-whether-your-project-needs-migration" aria-label="Permalink to &quot;Check whether your project needs migration&quot;">​</a></h2><p>Migrate when at least one of these signals is present:</p><ul><li><p><code>package.json</code> depends on the legacy early-alpha package <code>@cursor/july</code>.</p></li><li><p>A script or CI job runs the legacy early-alpha <code>agent-sdk</code> binary.</p></li><li><p><code>agent/agent.ts</code> sets <code>architecture: &quot;v1&quot;</code>.</p></li><li><p><code>bdk deployment &lt;slug&gt;</code> does not print <code>architecture: v2</code>.</p></li></ul><p>Stop when none of these is true. An existing <code>agent/</code> project root can remain in place; BDK still loads it even though current examples use <code>bot/</code>.</p><p><code>bdk migrate</code> prints <code>Nothing to migrate.</code> and exits 0 only when <code>--dir</code> shows no migration work. The check looks for an <code>@cursor/july</code> dependency, <code>architecture: &quot;v1&quot;</code>, <code>bot/storage.ts</code> or <code>agent/storage.ts</code>, <code>runtime: &quot;grokbot&quot;</code>, a literal SCM credential, a <code>/v1</code> continuation selector, an anonymous reminder, and a <code>*_MCP_URL</code> peer connection. When any of those is present, or a project file cannot be read, the command starts the agent. It does not read the hosted deployment. Run <code>bdk deployment &lt;slug&gt;</code> when you still need to see whether that copy is on v1.</p><h2 id="start-the-migration" tabindex="-1">Start the migration <a class="header-anchor" href="#start-the-migration" aria-label="Permalink to &quot;Start the migration&quot;">​</a></h2><p>Commit and push the source you want to migrate. <code>bdk migrate</code> reads that pushed Git ref, starts a Cursor cloud agent with the bundled migration skill, and waits for the agent to open a pull request. It does not deploy the project.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> login</span></span>
57
57
  <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> migrate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span></code></pre></div><p>Inside a checkout, the command infers the repository, current ref, and project path. Pass them when you need to target a different pushed source:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> migrate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \</span></span>
58
58
  <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./bots/triage</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \</span></span>
59
59
  <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --repo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://github.com/acme/agents</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \</span></span>
60
60
  <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --ref</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> migrate-triage-v2</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \</span></span>
61
61
  <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --path</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> bots/triage</span></span></code></pre></div><p>Use <code>--no-wait</code> to print the cloud agent URL and return while it works. Use <code>--json</code> for machine-readable status. The <a href="./../reference/cli.html#migrate">CLI reference</a> covers every flag, output, and exit status.</p><h2 id="use-the-coding-agent-skill-directly" tabindex="-1">Use the coding-agent skill directly <a class="header-anchor" href="#use-the-coding-agent-skill-directly" aria-label="Permalink to &quot;Use the coding-agent skill directly&quot;">​</a></h2><p>You can instead ask a coding agent working in the project checkout to follow the bundled <a href="./../../skills/migrate-v2/SKILL.html"><code>bdk-migrate-v2</code> skill</a>. The skill owns the code changes, capability checks, local verification, and deployment handoff.</p><blockquote><p>Follow the <code>bdk-migrate-v2</code> skill for this project. Open one pull request with the migration, but do not deploy it or change deployment secrets.</p></blockquote><p>If the project depends on a v1 capability without a supported v2 path, the skill tells the coding agent to stop and name the blocker instead of removing the behavior.</p><h2 id="review-the-pull-request" tabindex="-1">Review the pull request <a class="header-anchor" href="#review-the-pull-request" aria-label="Permalink to &quot;Review the pull request&quot;">​</a></h2><p>Before merging, confirm the pull request:</p><ul><li><p>Uses <code>@cursor/bdk</code> and <code>bdk</code>, and removes the v1 architecture opt-in.</p></li><li><p>Moves durable state to <code>ctx.host.kv</code> or <code>ctx.host.files</code>, reads secrets inside the handler that needs them, and accounts for hosted HTTP routes returning <code>202</code>.</p></li><li><p>Names SCM channel secrets instead of reading them: every <code>githubChannel({ credentials })</code> field and the GitLab or Bitbucket <code>webhookSecret</code> is <code>{ secretName: &quot;NAME&quot; }</code>. <code>bdk validate</code> reports each field still written as a literal or <code>() =&gt; process.env.NAME</code> getter, as a warning while <code>architecture: &quot;v1&quot;</code> is set and as an error once it is removed. The <a href="./github.html#other-hosts">GitHub guide</a> explains the named form.</p></li><li><p>Rewrites each peer call that took its URL from a secret or environment variable, such as <code>BUILDER_MCP_URL</code>, to <code>defineConnection({ agent: &quot;&lt;slug&gt;&quot; })</code> under <code>bot/mcp-connections/</code> (or <code>agent/mcp-connections/</code> when the project root is <code>agent/</code>). Confirm the slug before you merge. The pull request lists each secret the rewrite left unused, and it leaves a TODO where it could not determine the slug.</p></li><li><p>Calls out unsupported behavior and any follow-up needed for reminders, schedules, Slack, or MCP connections.</p></li><li><p>Reports the validation, type checks, tests, and credential-dependent checks it ran or handed off.</p></li></ul><p>The migration pull request should change source only. Deploy after it merges.</p><h2 id="choose-a-cutover" tabindex="-1">Choose a cutover <a class="header-anchor" href="#choose-a-cutover" aria-label="Permalink to &quot;Choose a cutover&quot;">​</a></h2><table tabindex="0"><thead><tr><th>Cutover</th><th>What happens</th><th>Choose it when</th></tr></thead><tbody><tr><td>Same slug</td><td>The v2 deployment copies the v1 secrets and replaces v1 after it starts. The cutover cannot be undone, and it deletes v1&#39;s hosted sessions, KV, files, and eval runs.</td><td>A service interruption and an empty v2 state are acceptable.</td></tr><tr><td>New slug</td><td>The v1 deployment keeps serving while you configure and test v2. Move senders to the new URL, then delete the old deployment.</td><td>You use Slack, webhooks, or hosted state, or want a staged cutover.</td></tr></tbody></table><p>Prefer a new slug for Slack, webhooks, or data in <code>ctx.host.kv</code>. Point the trial at a test repository so both deployments do not act on the same source-control events. If the CLI reports that same-slug replacement is unavailable, use a new slug.</p><h2 id="deploy-after-merge" tabindex="-1">Deploy after merge <a class="header-anchor" href="#deploy-after-merge" aria-label="Permalink to &quot;Deploy after merge&quot;">​</a></h2><p>Deploy from the merged, pushed ref. Reuse every <code>--cursor-events-repo</code> and <code>--allow-domain</code> value from the v1 deployment.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> validate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span>
62
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> deploy</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --slug</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">existing-or-new-slu</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">g</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span></span></code></pre></div><p>When the folder contains more than one agent, deploy each agent folder alone. Run <code>bdk deploy --dir &lt;agent folder&gt;</code> one time for each agent. One <code>bdk deploy</code> on the parent folder prints those commands and does not deploy. Do not use <code>bdk deploy --all</code>. Repeat <code>bdk slack create --prod</code> for each agent folder. The Slack app slug is the folder name.</p><p>When the pull request calls another agent with <code>defineConnection({ agent: &quot;&lt;slug&gt;&quot; })</code>, deploy the caller and that peer on <code>@cursor/bdk</code> 0.2.18 or newer. Both deployments must belong to the same team, and the caller reaches the peer once the peer deployment is running. The connection file is already in the merged source, so unset each URL secret the pull request lists after both deploys:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> secrets</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> unset</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">slu</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">g</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> NAME</span></span></code></pre></div><p><code>bdk migrate</code> prints the steps that follow the first deploy: one deploy per agent folder, <code>bdk slack create --prod --dir &lt;agent-folder&gt;</code> for each Slack agent, <code>bdk secrets unset</code> for peer URL secrets the pull request lists, and <code>bdk secrets list</code> / <code>bdk secrets set</code> when the slug is new. Slack setup redeploys the deployment by itself. <code>bdk secrets set</code> takes effect on the next request. Neither step needs another deploy.</p><p>After the deployment starts, follow that checklist for Slack, webhook callers, peer connections, and secrets, then verify a hosted turn. The <a href="./../deployment.html">deployment guide</a> covers the managed hosting workflow.</p><h2 id="related" tabindex="-1">Related <a class="header-anchor" href="#related" aria-label="Permalink to &quot;Related&quot;">​</a></h2><ul><li><a href="./../reference/cli.html#migrate">CLI reference</a>: migration flags, output, and exit status</li><li><a href="./../../skills/migrate-v2/SKILL.html"><code>bdk-migrate-v2</code> skill</a>: the coding procedure and complete capability matrix</li><li><a href="./agent-to-agent.html">Peer agents</a>: how a deployed caller reaches another agent by slug</li><li><a href="./../deployment.html">Deployment</a>: deploy and verify the reviewed project</li></ul></div></div></main><footer class="VPDocFooter" data-v-4e7466dc data-v-5e6607d6><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-5e6607d6><span class="visually-hidden" id="doc-footer-aria-label" data-v-5e6607d6>Pager</span><div class="pager" data-v-5e6607d6><a class="VPLink link pager-link prev" href="/docs/guides/export-grokbot.html" data-v-5e6607d6><!--[--><span class="desc" data-v-5e6607d6>Previous page</span><span class="title" data-v-5e6607d6>Export a Grok Bot</span><!--]--></a></div><div class="pager" data-v-5e6607d6><a class="VPLink link pager-link next" href="/docs/evals.html" data-v-5e6607d6><!--[--><span class="desc" data-v-5e6607d6>Next page</span><span class="title" data-v-5e6607d6>Evals</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
63
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"building-with-agents.md\":\"FZXrY8Nk\",\"deployment.md\":\"CtSJ6sF9\",\"evals.md\":\"CHR34K1Y\",\"guides_agent-to-agent.md\":\"CwL5cwuE\",\"guides_bitbucket.md\":\"CKUayYtD\",\"guides_cloud-agents.md\":\"CBK7W0-O\",\"guides_convert-automation.md\":\"DMEX9nF-\",\"guides_export-grokbot.md\":\"qo5bxi4h\",\"guides_github.md\":\"TuNiZAOQ\",\"guides_gitlab.md\":\"CtNI4fSH\",\"guides_grokbot-agents.md\":\"BwAykJ7U\",\"guides_hooks.md\":\"Bfj0pK91\",\"guides_improve.md\":\"CZKVt1cT\",\"guides_jev.md\":\"D7XH4JH3\",\"guides_mcp-oauth.md\":\"BM_eFC0L\",\"guides_migrate.md\":\"CQlGaBKX\",\"guides_opentelemetry.md\":\"ByW1Fs7b\",\"guides_slack.md\":\"Bn-WupSE\",\"guides_webhooks.md\":\"Cpdc3BDX\",\"hillclimbing.md\":\"Dxvd-0gT\",\"index.md\":\"CAnsLl8D\",\"quickstart.md\":\"D8JDfkKO\",\"reference_agent-config.md\":\"DYA6ge6t\",\"reference_artifacts.md\":\"DLV9MZES\",\"reference_channels.md\":\"DYg0CLud\",\"reference_cli.md\":\"DB7Llw3T\",\"reference_connections.md\":\"BJE2Zllp\",\"reference_evals.md\":\"Ccwp4x3o\",\"reference_extensions.md\":\"OUacPetl\",\"reference_hooks.md\":\"B1jq3oGl\",\"reference_http-api.md\":\"Dji-DD_Z\",\"reference_instructions.md\":\"DrcHZXig\",\"reference_memory.md\":\"BwyJXYZe\",\"reference_playground.md\":\"q4MI-0td\",\"reference_project-layout.md\":\"mFcS8yDD\",\"reference_prompt.md\":\"DqPh71XN\",\"reference_schedules.md\":\"BqWnJES4\",\"reference_sessions.md\":\"C8FXuGwk\",\"reference_skills.md\":\"C2GWh7g8\",\"reference_subagents.md\":\"ChNGh6HK\",\"reference_tools.md\":\"08XR7lIl\",\"templates_agentic-owners.md\":\"CvmABtia\",\"templates_grokbot-agents.md\":\"DgpPEs7B\",\"templates_security-reviewer.md\":\"Gh6EF9Us\",\"templates_thermo-quality-review.md\":\"B77UyTrX\",\"templates_thermo-review.md\":\"DRJ7mC5U\",\"templates_triage.md\":\"CNN6b0JZ\",\"troubleshooting.md\":\"DFnoTDlQ\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Bot Development Kit (BDK)\",\"description\":\"Build and serve bots and agents from versioned Markdown and TypeScript.\",\"base\":\"/docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"sdkVersion\":\"0.2.23\",\"nav\":[{\"text\":\"Quickstart\",\"link\":\"/quickstart\"},{\"text\":\"Guides\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Integrations\",\"link\":\"/guides/github\"},{\"text\":\"Templates\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Reference\",\"link\":\"/reference/project-layout\"}],\"search\":{\"provider\":\"local\"},\"outline\":{\"level\":[2,3]},\"sidebar\":[{\"text\":\"Getting started\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"Building your first agent\",\"link\":\"/quickstart\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"GitHub\",\"link\":\"/guides/github\"},{\"text\":\"Slack\",\"link\":\"/guides/slack\"},{\"text\":\"Webhooks\",\"link\":\"/guides/webhooks\"},{\"text\":\"Cursor Automations\",\"link\":\"/guides/convert-automation\"},{\"text\":\"OpenTelemetry\",\"link\":\"/guides/opentelemetry\"},{\"text\":\"GitLab\",\"link\":\"/guides/gitlab\"},{\"text\":\"Bitbucket\",\"link\":\"/guides/bitbucket\"}]},{\"text\":\"Extensions\",\"collapsed\":false,\"items\":[{\"text\":\"Overview\",\"link\":\"/reference/extensions\"},{\"text\":\"Cloud agents\",\"link\":\"/guides/cloud-agents\"},{\"text\":\"Grok Bot agents\",\"link\":\"/guides/grokbot-agents\"},{\"text\":\"Self-improvement\",\"link\":\"/guides/improve\"},{\"text\":\"Jev\",\"link\":\"/guides/jev\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"MCP\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Hooks\",\"link\":\"/guides/hooks\"},{\"text\":\"Peer agents\",\"link\":\"/guides/agent-to-agent\"},{\"text\":\"Deployment\",\"link\":\"/deployment\"},{\"text\":\"Export a Grok Bot\",\"link\":\"/guides/export-grokbot\"},{\"text\":\"Early-alpha migration\",\"link\":\"/guides/migrate\"},{\"text\":\"Evals\",\"link\":\"/evals\"},{\"text\":\"Hillclimbing\",\"link\":\"/hillclimbing\"},{\"text\":\"Build with a coding agent\",\"link\":\"/building-with-agents\"},{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]},{\"text\":\"Templates\",\"collapsed\":false,\"items\":[{\"text\":\"Grok Bot agents\",\"link\":\"/templates/grokbot-agents\"},{\"text\":\"Security reviewer\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Thermo review\",\"link\":\"/templates/thermo-review\"},{\"text\":\"Thermo quality review\",\"link\":\"/templates/thermo-quality-review\"},{\"text\":\"Agentic Approver\",\"link\":\"/templates/agentic-owners\"},{\"text\":\"Triage agent\",\"link\":\"/templates/triage\"}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Project layout\",\"link\":\"/reference/project-layout\"},{\"text\":\"Agent config\",\"link\":\"/reference/agent-config\"},{\"text\":\"Instructions\",\"link\":\"/reference/instructions\"},{\"text\":\"Tools\",\"link\":\"/reference/tools\"},{\"text\":\"prompt\",\"link\":\"/reference/prompt\"},{\"text\":\"Skills\",\"link\":\"/reference/skills\"},{\"text\":\"MCP Connections\",\"link\":\"/reference/connections\"},{\"text\":\"Subagents\",\"link\":\"/reference/subagents\"},{\"text\":\"Channels\",\"link\":\"/reference/channels\"},{\"text\":\"Schedules & reminders\",\"link\":\"/reference/schedules\"},{\"text\":\"Hooks\",\"link\":\"/reference/hooks\"},{\"text\":\"Memory\",\"link\":\"/reference/memory\"},{\"text\":\"Evals\",\"link\":\"/reference/evals\"},{\"text\":\"Artifacts\",\"link\":\"/reference/artifacts\"},{\"text\":\"Sessions & streaming\",\"link\":\"/reference/sessions\"},{\"text\":\"Playground\",\"link\":\"/reference/playground\"},{\"text\":\"CLI\",\"link\":\"/reference/cli\"},{\"text\":\"HTTP API\",\"link\":\"/reference/http-api\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
62
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> deploy</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --slug</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">existing-or-new-slu</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">g</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span></span></code></pre></div><p>When the folder contains more than one agent, deploy each agent folder alone. Run <code>bdk deploy --dir &lt;agent folder&gt;</code> one time for each agent. One <code>bdk deploy</code> on the parent folder prints those commands and does not deploy. Do not use <code>bdk deploy --all</code>. Repeat <code>bdk slack create --prod</code> for each agent folder. The Slack app slug is the folder name.</p><p>When the pull request calls another agent with <code>defineConnection({ agent: &quot;&lt;slug&gt;&quot; })</code>, deploy the caller and that peer on <code>@cursor/bdk</code> 0.2.18 or newer. Both deployments must belong to the same team, and the caller reaches the peer once the peer deployment is running. The connection file is already in the merged source, so unset each URL secret the pull request lists after both deploys:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> secrets</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> unset</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">slu</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">g</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> NAME</span></span></code></pre></div><p><code>bdk migrate</code> prints the steps that follow the first deploy: one deploy per agent folder, <code>bdk slack create --prod --dir &lt;agent-folder&gt;</code> for each Slack agent, <code>bdk secrets unset</code> for peer URL secrets the pull request lists, and <code>bdk secrets list</code> / <code>bdk secrets set</code> when the slug is new. Slack setup redeploys the deployment by itself. <code>bdk secrets set</code> takes effect on the next request. Neither step needs another deploy.</p><p>After the deployment starts, follow that checklist for Slack, webhook callers, peer connections, and secrets, then verify a hosted turn. The <a href="./../deployment.html">deployment guide</a> covers the managed hosting workflow.</p><h2 id="related" tabindex="-1">Related <a class="header-anchor" href="#related" aria-label="Permalink to &quot;Related&quot;">​</a></h2><ul><li><a href="./../reference/cli.html#migrate">CLI reference</a>: migration flags, output, and exit status</li><li><a href="./../../skills/migrate-v2/SKILL.html"><code>bdk-migrate-v2</code> skill</a>: the coding procedure and complete capability matrix</li><li><a href="./agent-to-agent.html">Peer agents</a>: how a deployed caller reaches another agent by slug</li><li><a href="./../deployment.html">Deployment</a>: deploy and verify the reviewed project</li></ul></div></div></main><footer class="VPDocFooter" data-v-2c214b72 data-v-a3a61b15><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-a3a61b15><span class="visually-hidden" id="doc-footer-aria-label" data-v-a3a61b15>Pager</span><div class="pager" data-v-a3a61b15><a class="VPLink link pager-link prev" href="/docs/guides/export-grokbot.html" data-v-a3a61b15><!--[--><span class="desc" data-v-a3a61b15>Previous page</span><span class="title" data-v-a3a61b15>Export a Grok Bot</span><!--]--></a></div><div class="pager" data-v-a3a61b15><a class="VPLink link pager-link next" href="/docs/evals.html" data-v-a3a61b15><!--[--><span class="desc" data-v-a3a61b15>Next page</span><span class="title" data-v-a3a61b15>Evals</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
63
+ <script>window.__VP_HASH_MAP__=JSON.parse("{\"building-with-agents.md\":\"FZXrY8Nk\",\"deployment.md\":\"3MMWuPeV\",\"evals.md\":\"CHR34K1Y\",\"guides_agent-to-agent.md\":\"CwL5cwuE\",\"guides_bitbucket.md\":\"CKUayYtD\",\"guides_cloud-agents.md\":\"BzbzcOyj\",\"guides_convert-automation.md\":\"DMEX9nF-\",\"guides_export-grokbot.md\":\"qo5bxi4h\",\"guides_github.md\":\"TuNiZAOQ\",\"guides_gitlab.md\":\"CtNI4fSH\",\"guides_grokbot-agents.md\":\"BwAykJ7U\",\"guides_hooks.md\":\"Bfj0pK91\",\"guides_improve.md\":\"CZKVt1cT\",\"guides_jev.md\":\"D7XH4JH3\",\"guides_mcp-oauth.md\":\"BM_eFC0L\",\"guides_migrate.md\":\"CQlGaBKX\",\"guides_opentelemetry.md\":\"DBQtp7_V\",\"guides_pagerduty.md\":\"BHXMcMtx\",\"guides_slack.md\":\"Bn-WupSE\",\"guides_webhooks.md\":\"Cpdc3BDX\",\"hillclimbing.md\":\"Dxvd-0gT\",\"index.md\":\"CAnsLl8D\",\"quickstart.md\":\"D8JDfkKO\",\"reference_agent-config.md\":\"IplwL25I\",\"reference_artifacts.md\":\"DLV9MZES\",\"reference_channels.md\":\"Bxaa020x\",\"reference_cli.md\":\"1o_TqKdt\",\"reference_connections.md\":\"BJE2Zllp\",\"reference_evals.md\":\"Ccwp4x3o\",\"reference_extensions.md\":\"DKxTuCIw\",\"reference_hooks.md\":\"B1jq3oGl\",\"reference_http-api.md\":\"Dji-DD_Z\",\"reference_instructions.md\":\"BYMVxAkw\",\"reference_memory.md\":\"BwyJXYZe\",\"reference_playground.md\":\"q4MI-0td\",\"reference_project-layout.md\":\"mFcS8yDD\",\"reference_prompt.md\":\"DqPh71XN\",\"reference_schedules.md\":\"03Ryy9ca\",\"reference_sessions.md\":\"C8FXuGwk\",\"reference_skills.md\":\"C2GWh7g8\",\"reference_subagents.md\":\"ChNGh6HK\",\"reference_tools.md\":\"-6pypsWt\",\"templates_agentic-owners.md\":\"CTEnR0jp\",\"templates_grokbot-agents.md\":\"DgpPEs7B\",\"templates_security-reviewer.md\":\"Gh6EF9Us\",\"templates_thermo-quality-review.md\":\"B77UyTrX\",\"templates_thermo-review.md\":\"DRJ7mC5U\",\"templates_triage.md\":\"CNN6b0JZ\",\"troubleshooting.md\":\"DFnoTDlQ\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Bot Development Kit (BDK)\",\"description\":\"Build and serve bots and agents from versioned Markdown and TypeScript.\",\"base\":\"/docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"sdkVersion\":\"0.2.25\",\"nav\":[{\"text\":\"Quickstart\",\"link\":\"/quickstart\"},{\"text\":\"Guides\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Integrations\",\"link\":\"/guides/github\"},{\"text\":\"Templates\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Reference\",\"link\":\"/reference/project-layout\"}],\"search\":{\"provider\":\"local\"},\"outline\":{\"level\":[2,3]},\"sidebar\":[{\"text\":\"Getting started\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"Building your first agent\",\"link\":\"/quickstart\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"GitHub\",\"link\":\"/guides/github\"},{\"text\":\"Slack\",\"link\":\"/guides/slack\"},{\"text\":\"Webhooks\",\"link\":\"/guides/webhooks\"},{\"text\":\"Cursor Automations\",\"link\":\"/guides/convert-automation\"},{\"text\":\"OpenTelemetry\",\"link\":\"/guides/opentelemetry\"},{\"text\":\"GitLab\",\"link\":\"/guides/gitlab\"},{\"text\":\"Bitbucket\",\"link\":\"/guides/bitbucket\"},{\"text\":\"PagerDuty\",\"link\":\"/guides/pagerduty\"}]},{\"text\":\"Extensions\",\"collapsed\":false,\"items\":[{\"text\":\"Overview\",\"link\":\"/reference/extensions\"},{\"text\":\"Cloud agents\",\"link\":\"/guides/cloud-agents\"},{\"text\":\"Grok Bot agents\",\"link\":\"/guides/grokbot-agents\"},{\"text\":\"Self-improvement\",\"link\":\"/guides/improve\"},{\"text\":\"Jev\",\"link\":\"/guides/jev\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"MCP\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Hooks\",\"link\":\"/guides/hooks\"},{\"text\":\"Peer agents\",\"link\":\"/guides/agent-to-agent\"},{\"text\":\"Deployment\",\"link\":\"/deployment\"},{\"text\":\"Export a Grok Bot\",\"link\":\"/guides/export-grokbot\"},{\"text\":\"Early-alpha migration\",\"link\":\"/guides/migrate\"},{\"text\":\"Evals\",\"link\":\"/evals\"},{\"text\":\"Hillclimbing\",\"link\":\"/hillclimbing\"},{\"text\":\"Build with a coding agent\",\"link\":\"/building-with-agents\"},{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]},{\"text\":\"Templates\",\"collapsed\":false,\"items\":[{\"text\":\"Grok Bot agents\",\"link\":\"/templates/grokbot-agents\"},{\"text\":\"Security reviewer\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Thermo review\",\"link\":\"/templates/thermo-review\"},{\"text\":\"Thermo quality review\",\"link\":\"/templates/thermo-quality-review\"},{\"text\":\"Agentic Approver\",\"link\":\"/templates/agentic-owners\"},{\"text\":\"Triage agent\",\"link\":\"/templates/triage\"}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Project layout\",\"link\":\"/reference/project-layout\"},{\"text\":\"Agent config\",\"link\":\"/reference/agent-config\"},{\"text\":\"Instructions\",\"link\":\"/reference/instructions\"},{\"text\":\"Tools\",\"link\":\"/reference/tools\"},{\"text\":\"prompt\",\"link\":\"/reference/prompt\"},{\"text\":\"Skills\",\"link\":\"/reference/skills\"},{\"text\":\"MCP Connections\",\"link\":\"/reference/connections\"},{\"text\":\"Subagents\",\"link\":\"/reference/subagents\"},{\"text\":\"Channels\",\"link\":\"/reference/channels\"},{\"text\":\"Schedules & reminders\",\"link\":\"/reference/schedules\"},{\"text\":\"Hooks\",\"link\":\"/reference/hooks\"},{\"text\":\"Memory\",\"link\":\"/reference/memory\"},{\"text\":\"Evals\",\"link\":\"/reference/evals\"},{\"text\":\"Artifacts\",\"link\":\"/reference/artifacts\"},{\"text\":\"Sessions & streaming\",\"link\":\"/reference/sessions\"},{\"text\":\"Playground\",\"link\":\"/reference/playground\"},{\"text\":\"CLI\",\"link\":\"/reference/cli\"},{\"text\":\"HTTP API\",\"link\":\"/reference/http-api\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
64
64
 
65
65
  </body>
66
66
  </html>