@cursor/bdk 0.2.14 → 0.2.16

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 (392) hide show
  1. package/AGENTS.md +51 -52
  2. package/README.md +1 -1
  3. package/dist/bin/agent-sdk.js +0 -0
  4. package/dist/bin/agent-serve.js +41 -3
  5. package/dist/channels/github/index.d.ts +1 -1
  6. package/dist/channels/github/index.d.ts.map +1 -1
  7. package/dist/channels/github/index.js +1 -1
  8. package/dist/channels/slack/attachments.d.ts +2 -0
  9. package/dist/channels/slack/attachments.d.ts.map +1 -1
  10. package/dist/channels/slack/attachments.js +17 -5
  11. package/dist/channels/slack/channel-watch.d.ts +4 -2
  12. package/dist/channels/slack/channel-watch.d.ts.map +1 -1
  13. package/dist/channels/slack/channel-watch.js +4 -2
  14. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  15. package/dist/channels/slack/slack-channel.js +4 -2
  16. package/dist/channels/slack/types.d.ts +6 -4
  17. package/dist/channels/slack/types.d.ts.map +1 -1
  18. package/dist/connections.d.ts +29 -0
  19. package/dist/connections.d.ts.map +1 -1
  20. package/dist/connections.js +54 -0
  21. package/dist/docs/404.html +2 -2
  22. package/dist/docs/assets/{app.BN3sgOOo.js → app.BSrZkTHD.js} +4 -4
  23. package/dist/docs/assets/{building-with-agents.md.Df87rAe1.js → building-with-agents.md.Bi9CQ-bR.js} +3 -3
  24. package/dist/docs/assets/{building-with-agents.md.Df87rAe1.lean.js → building-with-agents.md.Bi9CQ-bR.lean.js} +1 -1
  25. package/dist/docs/assets/chunks/@localSearchIndexroot.JUnN1Be1.js +1 -0
  26. package/dist/docs/assets/chunks/{VPLocalSearchBox.CbA00dML.js → VPLocalSearchBox.BxmgcwIX.js} +1 -1
  27. package/dist/docs/assets/chunks/{arc.Byug8CZM.js → arc.CAid9y9R.js} +1 -1
  28. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.D1_qmnQy.js → architectureDiagram-Q4EWVU46.kLxg-1A5.js} +1 -1
  29. package/dist/docs/assets/chunks/{baseUniq.Dj-Nurf-.js → baseUniq.BWvpjFlO.js} +1 -1
  30. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BZwq3EIg.js → blockDiagram-DXYQGD6D.DyjX8R7M.js} +1 -1
  31. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.dx75urO7.js → c4Diagram-AHTNJAMY.DBdWlnqr.js} +1 -1
  32. package/dist/docs/assets/chunks/channel.CWc3NN9g.js +1 -0
  33. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CIoddsDQ.js → chunk-4BX2VUAB.T5enPS2D.js} +1 -1
  34. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.O3VsVBES.js → chunk-4TB4RGXK.D6zswRAS.js} +1 -1
  35. package/dist/docs/assets/chunks/{chunk-55IACEB6.WNNWh0Pe.js → chunk-55IACEB6.Bh05N-a3.js} +1 -1
  36. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BKVQwEME.js → chunk-EDXVE4YY.DZv_O-d9.js} +1 -1
  37. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.Cv5iBz7A.js → chunk-FMBD7UC4.BY53CZaL.js} +1 -1
  38. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.wCDCToee.js → chunk-OYMX7WX6.CO5lI2PE.js} +1 -1
  39. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D3IGXhXA.js → chunk-QZHKN3VN.DMfpW0s4.js} +1 -1
  40. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CAPPh-E7.js → chunk-YZCP3GAM.COPT56Nr.js} +1 -1
  41. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D5a745iS.js +1 -0
  42. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D5a745iS.js +1 -0
  43. package/dist/docs/assets/chunks/clone.CCGVqN_B.js +1 -0
  44. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BQCFH3M5.js → cose-bilkent-S5V4N54A.BJSj7zzd.js} +1 -1
  45. package/dist/docs/assets/chunks/{dagre-KV5264BT.lHmdrh7L.js → dagre-KV5264BT.DDv7IQZT.js} +1 -1
  46. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.EtSPnHgD.js → diagram-5BDNPKRD.BUoE9HFH.js} +1 -1
  47. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DCyUnQT8.js → diagram-G4DWMVQ6.BF3JtrnJ.js} +1 -1
  48. package/dist/docs/assets/chunks/{diagram-MMDJMWI5._E0Qqblb.js → diagram-MMDJMWI5.BvuCWc4e.js} +1 -1
  49. package/dist/docs/assets/chunks/{diagram-TYMM5635.BDj4oyy_.js → diagram-TYMM5635._EqUGqFN.js} +1 -1
  50. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.CrvnO6a3.js → erDiagram-SMLLAGMA.DxNvSdzj.js} +1 -1
  51. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.DIhYc-2F.js → flowDiagram-DWJPFMVM.DVtRP546.js} +1 -1
  52. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.hFqm_vio.js → ganttDiagram-T4ZO3ILL.Bn9vb7xI.js} +1 -1
  53. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.N3GDaVDD.js → gitGraphDiagram-UUTBAWPF.45r6n737.js} +1 -1
  54. package/dist/docs/assets/chunks/{graph.DK28rMBx.js → graph.BOkX3Ws_.js} +1 -1
  55. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.DHmE6W9M.js → infoDiagram-42DDH7IO.DyBCcxOm.js} +1 -1
  56. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.ByUJuOYm.js → ishikawaDiagram-UXIWVN3A.kg0ywDlx.js} +1 -1
  57. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BIUChFMh.js → journeyDiagram-VCZTEJTY.BUfrLnXA.js} +1 -1
  58. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CNgFXwo-.js → kanban-definition-6JOO6SKY.Bn7X35b2.js} +1 -1
  59. package/dist/docs/assets/chunks/{layout.BDnwE4ET.js → layout.B0QW6d8M.js} +1 -1
  60. package/dist/docs/assets/chunks/{linear.DmrYLXFs.js → linear.C59eCF0D.js} +1 -1
  61. package/dist/docs/assets/chunks/{min.BbYcWakN.js → min.BnDl0p08.js} +1 -1
  62. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.C9x-klkv.js → mindmap-definition-QFDTVHPH.u2HYLooo.js} +1 -1
  63. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.iufpEbi0.js → pieDiagram-DEJITSTG.CbnIrr9l.js} +1 -1
  64. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DdoXbWL9.js → quadrantDiagram-34T5L4WZ.D2zWIixq.js} +1 -1
  65. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.XL1-_pNk.js → requirementDiagram-MS252O5E.DvOFa3oO.js} +1 -1
  66. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DySXofNs.js → sankeyDiagram-XADWPNL6.BfKCkH3x.js} +1 -1
  67. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Cp0GZoOU.js → sequenceDiagram-FGHM5R23.CUPKdYN0.js} +1 -1
  68. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DvK-sXUX.js → stateDiagram-FHFEXIEX.CimDCRiK.js} +1 -1
  69. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.ClNUVSTQ.js +1 -0
  70. package/dist/docs/assets/chunks/{theme.Clup4iIo.js → theme.CKht7z82.js} +2 -2
  71. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.gHI9ZLm6.js → timeline-definition-GMOUNBTQ.BFTd5qKs.js} +1 -1
  72. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.G2N2zXYe.js → vennDiagram-DHZGUBPP.N6t5MmCb.js} +1 -1
  73. package/dist/docs/assets/chunks/wardley-RL74JXVD.D2G6Zyds.js +162 -0
  74. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BgUKEagd.js → wardleyDiagram-NUSXRM2D.BqScALbL.js} +1 -1
  75. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CwH7oege.js → xychartDiagram-5P7HB3ND.Br0WiDkT.js} +1 -1
  76. package/dist/docs/assets/deployment.md.hKKN9I4c.js +31 -0
  77. package/dist/docs/assets/{deployment.md.BYuEcDBv.lean.js → deployment.md.hKKN9I4c.lean.js} +1 -1
  78. package/dist/docs/assets/{evals.md.C851kViu.js → evals.md.CHR34K1Y.js} +3 -7
  79. package/dist/docs/assets/{evals.md.C851kViu.lean.js → evals.md.CHR34K1Y.lean.js} +1 -1
  80. package/dist/docs/assets/guides_cloud-agents.md.CBK7W0-O.js +9 -0
  81. package/dist/docs/assets/guides_cloud-agents.md.CBK7W0-O.lean.js +1 -0
  82. package/dist/docs/assets/guides_grokbot-agents.md.BwAykJ7U.js +15 -0
  83. package/dist/docs/assets/{guides_grokbot-agents.md.tD1smFhU.lean.js → guides_grokbot-agents.md.BwAykJ7U.lean.js} +1 -1
  84. package/dist/docs/assets/{guides_hooks.md.5Ce3NXxZ.js → guides_hooks.md.B_bKG1oA.js} +1 -1
  85. package/dist/docs/assets/{guides_improve.md.CRrYq22s.js → guides_improve.md.CZKVt1cT.js} +2 -3
  86. package/dist/docs/assets/{guides_improve.md.CRrYq22s.lean.js → guides_improve.md.CZKVt1cT.lean.js} +1 -1
  87. package/dist/docs/assets/{guides_mcp-oauth.md.DR3zhC9r.js → guides_mcp-oauth.md.BM_eFC0L.js} +3 -15
  88. package/dist/docs/assets/guides_mcp-oauth.md.BM_eFC0L.lean.js +1 -0
  89. package/dist/docs/assets/{guides_webhooks.md.BBvAm_VF.js → guides_webhooks.md.Cpdc3BDX.js} +13 -12
  90. package/dist/docs/assets/{guides_webhooks.md.BBvAm_VF.lean.js → guides_webhooks.md.Cpdc3BDX.lean.js} +1 -1
  91. package/dist/docs/assets/{index.md.Dxxr7pFa.js → index.md.BIBHIQtU.js} +1 -1
  92. package/dist/docs/assets/{quickstart.md.BK5gjHM2.js → quickstart.md.CduLGBAB.js} +1 -1
  93. package/dist/docs/assets/{reference_agent-config.md.DrtLxWgR.js → reference_agent-config.md.DYA6ge6t.js} +7 -4
  94. package/dist/docs/assets/{reference_agent-config.md.DrtLxWgR.lean.js → reference_agent-config.md.DYA6ge6t.lean.js} +1 -1
  95. package/dist/docs/assets/reference_channels.md.DYg0CLud.js +22 -0
  96. package/dist/docs/assets/{reference_channels.md.LbNIJBwd.lean.js → reference_channels.md.DYg0CLud.lean.js} +1 -1
  97. package/dist/docs/assets/{reference_cli.md.dYCAL2lB.js → reference_cli.md.2d2Y0O-d.js} +16 -13
  98. package/dist/docs/assets/{reference_cli.md.dYCAL2lB.lean.js → reference_cli.md.2d2Y0O-d.lean.js} +1 -1
  99. package/dist/docs/assets/{reference_connections.md.DLrgAd5f.js → reference_connections.md.CxbLpaaP.js} +4 -5
  100. package/dist/docs/assets/{reference_connections.md.DLrgAd5f.lean.js → reference_connections.md.CxbLpaaP.lean.js} +1 -1
  101. package/dist/docs/assets/{reference_evals.md.D5i8PuXJ.js → reference_evals.md.Ccwp4x3o.js} +4 -4
  102. package/dist/docs/assets/{reference_evals.md.D5i8PuXJ.lean.js → reference_evals.md.Ccwp4x3o.lean.js} +1 -1
  103. package/dist/docs/assets/{reference_hooks.md.B-eGa2km.js → reference_hooks.md.DbJC8mcZ.js} +1 -1
  104. package/dist/docs/assets/reference_http-api.md.CrqhTv6S.js +11 -0
  105. package/dist/docs/assets/{reference_http-api.md.DbFNOubV.lean.js → reference_http-api.md.CrqhTv6S.lean.js} +1 -1
  106. package/dist/docs/assets/reference_playground.md.q4MI-0td.js +1 -0
  107. package/dist/docs/assets/reference_playground.md.q4MI-0td.lean.js +1 -0
  108. package/dist/docs/assets/{reference_schedules.md.BuJ8fgMa.js → reference_schedules.md.03Ryy9ca.js} +5 -5
  109. package/dist/docs/assets/{reference_schedules.md.BuJ8fgMa.lean.js → reference_schedules.md.03Ryy9ca.lean.js} +1 -1
  110. package/dist/docs/assets/reference_sessions.md.C_uzIWuy.js +1 -0
  111. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C2GWh7g8.js} +4 -4
  112. package/dist/docs/assets/{reference_tools.md.DzIY9JzY.js → reference_tools.md.08XR7lIl.js} +3 -14
  113. package/dist/docs/assets/reference_tools.md.08XR7lIl.lean.js +1 -0
  114. package/dist/docs/assets/{templates_grokbot-agents.md.2sydjFiO.js → templates_grokbot-agents.md.DgpPEs7B.js} +1 -1
  115. package/dist/docs/assets/troubleshooting.md.PCafNCb5.js +1 -0
  116. package/dist/docs/assets/{troubleshooting.md.x-GBa7wN.lean.js → troubleshooting.md.PCafNCb5.lean.js} +1 -1
  117. package/dist/docs/building-with-agents.html +37 -37
  118. package/dist/docs/building-with-agents.md +5 -5
  119. package/dist/docs/deployment.html +43 -41
  120. package/dist/docs/deployment.md +70 -33
  121. package/dist/docs/evals.html +38 -42
  122. package/dist/docs/evals.md +1 -16
  123. package/dist/docs/guides/agent-to-agent.html +35 -35
  124. package/dist/docs/guides/bitbucket.html +35 -35
  125. package/dist/docs/guides/cloud-agents.html +38 -39
  126. package/dist/docs/guides/cloud-agents.md +2 -8
  127. package/dist/docs/guides/convert-automation.html +35 -35
  128. package/dist/docs/guides/github.html +35 -35
  129. package/dist/docs/guides/gitlab.html +35 -35
  130. package/dist/docs/guides/grokbot-agents.html +37 -38
  131. package/dist/docs/guides/grokbot-agents.md +9 -13
  132. package/dist/docs/guides/hooks.html +37 -37
  133. package/dist/docs/guides/hooks.md +0 -1
  134. package/dist/docs/guides/improve.html +37 -38
  135. package/dist/docs/guides/improve.md +4 -6
  136. package/dist/docs/guides/jev.html +35 -35
  137. package/dist/docs/guides/mcp-oauth.html +39 -51
  138. package/dist/docs/guides/mcp-oauth.md +17 -40
  139. package/dist/docs/guides/migrate.html +35 -35
  140. package/dist/docs/guides/opentelemetry.html +35 -35
  141. package/dist/docs/guides/slack.html +35 -35
  142. package/dist/docs/guides/webhooks.html +47 -46
  143. package/dist/docs/guides/webhooks.md +35 -18
  144. package/dist/docs/hashmap.json +1 -1
  145. package/dist/docs/hillclimbing.html +35 -35
  146. package/dist/docs/index.html +36 -36
  147. package/dist/docs/index.md +1 -1
  148. package/dist/docs/llms-full.txt +388 -272
  149. package/dist/docs/llms.txt +4 -4
  150. package/dist/docs/quickstart.html +37 -37
  151. package/dist/docs/quickstart.md +2 -2
  152. package/dist/docs/reference/agent-config.html +41 -38
  153. package/dist/docs/reference/agent-config.md +26 -1
  154. package/dist/docs/reference/artifacts.html +35 -35
  155. package/dist/docs/reference/channels.html +42 -43
  156. package/dist/docs/reference/channels.md +29 -13
  157. package/dist/docs/reference/cli.html +50 -47
  158. package/dist/docs/reference/cli.md +115 -42
  159. package/dist/docs/reference/connections.html +39 -40
  160. package/dist/docs/reference/connections.md +6 -5
  161. package/dist/docs/reference/evals.html +38 -38
  162. package/dist/docs/reference/evals.md +15 -4
  163. package/dist/docs/reference/extensions.html +35 -35
  164. package/dist/docs/reference/hooks.html +37 -37
  165. package/dist/docs/reference/hooks.md +0 -1
  166. package/dist/docs/reference/http-api.html +38 -38
  167. package/dist/docs/reference/http-api.md +7 -17
  168. package/dist/docs/reference/instructions.html +35 -35
  169. package/dist/docs/reference/playground.html +37 -37
  170. package/dist/docs/reference/playground.md +1 -4
  171. package/dist/docs/reference/project-layout.html +35 -35
  172. package/dist/docs/reference/prompt.html +35 -35
  173. package/dist/docs/reference/schedules.html +39 -39
  174. package/dist/docs/reference/schedules.md +26 -3
  175. package/dist/docs/reference/sessions.html +36 -36
  176. package/dist/docs/reference/sessions.md +1 -2
  177. package/dist/docs/reference/skills.html +39 -39
  178. package/dist/docs/reference/skills.md +1 -1
  179. package/dist/docs/reference/subagents.html +35 -35
  180. package/dist/docs/reference/tools.html +39 -50
  181. package/dist/docs/reference/tools.md +2 -28
  182. package/dist/docs/templates/agentic-owners.html +35 -35
  183. package/dist/docs/templates/grokbot-agents.html +37 -37
  184. package/dist/docs/templates/grokbot-agents.md +1 -1
  185. package/dist/docs/templates/security-reviewer.html +35 -35
  186. package/dist/docs/templates/thermo-quality-review.html +35 -35
  187. package/dist/docs/templates/thermo-review.html +35 -35
  188. package/dist/docs/templates/triage.html +35 -35
  189. package/dist/docs/troubleshooting.html +36 -36
  190. package/dist/docs/troubleshooting.md +12 -7
  191. package/dist/extensions/cursor-cloud-agents/extension.d.ts +5 -1
  192. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  193. package/dist/extensions/cursor-cloud-agents/extension.js +4 -0
  194. package/dist/extensions/cursor-cloud-agents/lib/channels.d.ts.map +1 -1
  195. package/dist/extensions/cursor-cloud-agents/lib/channels.js +5 -1
  196. package/dist/filesystem.d.ts.map +1 -1
  197. package/dist/filesystem.js +4 -8
  198. package/dist/internal/cli-convert-automation.js +9 -19
  199. package/dist/internal/cli-deploy.d.ts +1 -1
  200. package/dist/internal/cli-deploy.d.ts.map +1 -1
  201. package/dist/internal/cli-deploy.js +18 -3
  202. package/dist/internal/cli-init-grokbot.d.ts +29 -0
  203. package/dist/internal/cli-init-grokbot.d.ts.map +1 -0
  204. package/dist/internal/cli-init-grokbot.js +181 -0
  205. package/dist/internal/cli-slack.js +1 -1
  206. package/dist/internal/comment-safe.d.ts +8 -0
  207. package/dist/internal/comment-safe.d.ts.map +1 -0
  208. package/dist/internal/comment-safe.js +12 -0
  209. package/dist/internal/continuation-identity.js +1 -1
  210. package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
  211. package/dist/internal/convert-automation/convert-workflow.js +2 -14
  212. package/dist/internal/convert-grokbot/answers.d.ts +127 -0
  213. package/dist/internal/convert-grokbot/answers.d.ts.map +1 -0
  214. package/dist/internal/convert-grokbot/answers.js +443 -0
  215. package/dist/internal/convert-grokbot/bot.d.ts +50 -0
  216. package/dist/internal/convert-grokbot/bot.d.ts.map +1 -0
  217. package/dist/internal/convert-grokbot/bot.js +72 -0
  218. package/dist/internal/convert-grokbot/checks.d.ts +26 -0
  219. package/dist/internal/convert-grokbot/checks.d.ts.map +1 -0
  220. package/dist/internal/convert-grokbot/checks.js +170 -0
  221. package/dist/internal/convert-grokbot/convert.d.ts +60 -0
  222. package/dist/internal/convert-grokbot/convert.d.ts.map +1 -0
  223. package/dist/internal/convert-grokbot/convert.js +470 -0
  224. package/dist/internal/convert-grokbot/handoff.d.ts +44 -0
  225. package/dist/internal/convert-grokbot/handoff.d.ts.map +1 -0
  226. package/dist/internal/convert-grokbot/handoff.js +160 -0
  227. package/dist/internal/convert-grokbot/recipe.d.ts +61 -0
  228. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -0
  229. package/dist/internal/convert-grokbot/recipe.js +94 -0
  230. package/dist/internal/convert-grokbot/routine.d.ts +51 -0
  231. package/dist/internal/convert-grokbot/routine.d.ts.map +1 -0
  232. package/dist/internal/convert-grokbot/routine.js +128 -0
  233. package/dist/internal/convert-grokbot/slack.d.ts +28 -0
  234. package/dist/internal/convert-grokbot/slack.d.ts.map +1 -0
  235. package/dist/internal/convert-grokbot/slack.js +50 -0
  236. package/dist/internal/deploy-client.d.ts +0 -2
  237. package/dist/internal/deploy-client.d.ts.map +1 -1
  238. package/dist/internal/deploy-client.js +2 -11
  239. package/dist/internal/discovery/agent-config.d.ts +6 -0
  240. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  241. package/dist/internal/discovery/agent-config.js +19 -0
  242. package/dist/internal/discovery/agent.d.ts.map +1 -1
  243. package/dist/internal/discovery/agent.js +2 -1
  244. package/dist/internal/discovery/names.d.ts +2 -0
  245. package/dist/internal/discovery/names.d.ts.map +1 -1
  246. package/dist/internal/discovery/names.js +2 -0
  247. package/dist/internal/discovery/project.d.ts.map +1 -1
  248. package/dist/internal/discovery/project.js +1 -3
  249. package/dist/internal/eval-judge-model.d.ts +10 -5
  250. package/dist/internal/eval-judge-model.d.ts.map +1 -1
  251. package/dist/internal/eval-judge-model.js +36 -25
  252. package/dist/internal/filesystem/subagent-inherit.d.ts +39 -0
  253. package/dist/internal/filesystem/subagent-inherit.d.ts.map +1 -0
  254. package/dist/internal/filesystem/subagent-inherit.js +96 -0
  255. package/dist/internal/filesystem/tools.d.ts +6 -0
  256. package/dist/internal/filesystem/tools.d.ts.map +1 -1
  257. package/dist/internal/filesystem/tools.js +38 -1
  258. package/dist/internal/hosted-catch-protocol.d.ts +2 -0
  259. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  260. package/dist/internal/hosted-catch-protocol.js +2 -0
  261. package/dist/internal/hosted-catch.d.ts +2 -3
  262. package/dist/internal/hosted-catch.d.ts.map +1 -1
  263. package/dist/internal/hosted-catch.js +2 -3
  264. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  265. package/dist/internal/hosted-delivery.js +46 -13
  266. package/dist/internal/hosted-execution-flush.d.ts +6 -3
  267. package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
  268. package/dist/internal/hosted-execution-flush.js +28 -31
  269. package/dist/internal/hosting.d.ts +1 -1
  270. package/dist/internal/hosting.d.ts.map +1 -1
  271. package/dist/internal/hosting.js +7 -3
  272. package/dist/internal/init-interview.d.ts +3 -5
  273. package/dist/internal/init-interview.d.ts.map +1 -1
  274. package/dist/internal/init-interview.js +15 -88
  275. package/dist/internal/init-project.d.ts +13 -0
  276. package/dist/internal/init-project.d.ts.map +1 -1
  277. package/dist/internal/init-project.js +30 -37
  278. package/dist/internal/init-scaffold.d.ts +11 -0
  279. package/dist/internal/init-scaffold.d.ts.map +1 -1
  280. package/dist/internal/init-scaffold.js +47 -13
  281. package/dist/internal/interview/agent-questions.d.ts +19 -0
  282. package/dist/internal/interview/agent-questions.d.ts.map +1 -0
  283. package/dist/internal/interview/agent-questions.js +120 -0
  284. package/dist/internal/interview/question.d.ts +82 -0
  285. package/dist/internal/interview/question.d.ts.map +1 -0
  286. package/dist/internal/interview/question.js +198 -0
  287. package/dist/internal/local-control-plane.d.ts.map +1 -1
  288. package/dist/internal/local-control-plane.js +5 -1
  289. package/dist/internal/otel/collector.d.ts +2 -0
  290. package/dist/internal/otel/collector.d.ts.map +1 -1
  291. package/dist/internal/otel/collector.js +4 -0
  292. package/dist/internal/peer-connections.d.ts +6 -2
  293. package/dist/internal/peer-connections.d.ts.map +1 -1
  294. package/dist/internal/peer-connections.js +23 -19
  295. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  296. package/dist/internal/resolve-prod-target.js +2 -1
  297. package/dist/internal/sdk-runner.d.ts.map +1 -1
  298. package/dist/internal/sdk-runner.js +43 -16
  299. package/dist/internal/sdk-subagent-inherit-support.d.ts +9 -0
  300. package/dist/internal/sdk-subagent-inherit-support.d.ts.map +1 -0
  301. package/dist/internal/sdk-subagent-inherit-support.js +89 -0
  302. package/dist/internal/server.d.ts.map +1 -1
  303. package/dist/internal/server.js +6 -5
  304. package/dist/internal/session-engine.d.ts +13 -0
  305. package/dist/internal/session-engine.d.ts.map +1 -1
  306. package/dist/internal/session-engine.js +62 -11
  307. package/dist/internal/session-run-log.d.ts.map +1 -1
  308. package/dist/internal/session-run-log.js +26 -11
  309. package/dist/internal/{convert-automation/slug.d.ts → slug.d.ts} +4 -1
  310. package/dist/internal/slug.d.ts.map +1 -0
  311. package/dist/internal/{convert-automation/slug.js → slug.js} +11 -1
  312. package/dist/playground/assets/index-7fVUOA5l.css +1 -0
  313. package/dist/playground/assets/{index-ClxRl2Cw.js → index-U3TRnwAP.js} +43 -43
  314. package/dist/playground/index.html +2 -2
  315. package/dist/types.d.ts +26 -1
  316. package/dist/types.d.ts.map +1 -1
  317. package/docs/README.md +1 -1
  318. package/docs/building-with-agents.md +5 -5
  319. package/docs/deployment.md +70 -33
  320. package/docs/evals.md +1 -16
  321. package/docs/guides/cloud-agents.md +3 -9
  322. package/docs/guides/grokbot-agents.md +10 -14
  323. package/docs/guides/hooks.md +0 -1
  324. package/docs/guides/improve.md +4 -6
  325. package/docs/guides/mcp-oauth.md +18 -41
  326. package/docs/guides/webhooks.md +35 -18
  327. package/docs/quickstart.md +2 -2
  328. package/docs/reference/agent-config.md +26 -1
  329. package/docs/reference/channels.md +29 -13
  330. package/docs/reference/cli.md +115 -42
  331. package/docs/reference/connections.md +6 -5
  332. package/docs/reference/evals.md +15 -4
  333. package/docs/reference/hooks.md +0 -1
  334. package/docs/reference/http-api.md +7 -17
  335. package/docs/reference/playground.md +2 -5
  336. package/docs/reference/schedules.md +26 -3
  337. package/docs/reference/sessions.md +1 -2
  338. package/docs/reference/skills.md +1 -1
  339. package/docs/reference/tools.md +3 -29
  340. package/docs/templates/grokbot-agents.md +1 -1
  341. package/docs/troubleshooting.md +12 -7
  342. package/package.json +36 -35
  343. package/schemas/grokbot-answers.schema.json +343 -0
  344. package/skills/create-agent/SKILL.md +16 -11
  345. package/skills/debug/SKILL.md +3 -4
  346. package/skills/evals/SKILL.md +2 -2
  347. package/skills/framework-map/SKILL.md +10 -10
  348. package/skills/mcp-auth/SKILL.md +10 -34
  349. package/skills/migrate-v2/SKILL.md +13 -9
  350. package/skills/setup-slack/SKILL.md +0 -13
  351. package/templates/agentic-owners/bot/lib/owners/handles.ts +1 -1
  352. package/templates/agentic-owners/bot/lib/owners/matching.ts +20 -9
  353. package/templates/agents-md/README.md +3 -3
  354. package/templates/agents-md/bot/channels/queue.ts +3 -8
  355. package/templates/agents-md/bot/instructions.md +1 -2
  356. package/templates/agents-md/bot/tools/apply_agents.ts +0 -1
  357. package/templates/agents-md/evals/agents.eval.ts +2 -2
  358. package/templates/demo/bot/channels/queue.ts +5 -15
  359. package/templates/grokbot-agents/.gitignore +4 -0
  360. package/templates/pr-autofixer/bot/channels/drive.ts +3 -16
  361. package/templates/security-help/.gitignore +4 -0
  362. package/templates/triage/bot/channels/queue.ts +11 -22
  363. package/templates/triage/bot/channels/webhook.ts +3 -6
  364. package/templates/triage/bot/lib/parse-queue-event.ts +0 -6
  365. package/dist/docs/assets/chunks/@localSearchIndexroot.CzrtdJ8s.js +0 -1
  366. package/dist/docs/assets/chunks/channel.6ebHhoF9.js +0 -1
  367. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.BJ-CwKwu.js +0 -1
  368. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.BJ-CwKwu.js +0 -1
  369. package/dist/docs/assets/chunks/clone.DfV2fkWH.js +0 -1
  370. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DNdUCJyd.js +0 -1
  371. package/dist/docs/assets/chunks/wardley-RL74JXVD.C46G0P5a.js +0 -162
  372. package/dist/docs/assets/deployment.md.BYuEcDBv.js +0 -29
  373. package/dist/docs/assets/guides_cloud-agents.md.CWJjS9No.js +0 -10
  374. package/dist/docs/assets/guides_cloud-agents.md.CWJjS9No.lean.js +0 -1
  375. package/dist/docs/assets/guides_grokbot-agents.md.tD1smFhU.js +0 -16
  376. package/dist/docs/assets/guides_mcp-oauth.md.DR3zhC9r.lean.js +0 -1
  377. package/dist/docs/assets/reference_channels.md.LbNIJBwd.js +0 -23
  378. package/dist/docs/assets/reference_http-api.md.DbFNOubV.js +0 -11
  379. package/dist/docs/assets/reference_playground.md.1hx0gcIu.js +0 -1
  380. package/dist/docs/assets/reference_playground.md.1hx0gcIu.lean.js +0 -1
  381. package/dist/docs/assets/reference_sessions.md.CyM7ARz1.js +0 -1
  382. package/dist/docs/assets/reference_tools.md.DzIY9JzY.lean.js +0 -1
  383. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +0 -1
  384. package/dist/internal/convert-automation/slug.d.ts.map +0 -1
  385. package/dist/playground/assets/index-BKSsuEMw.css +0 -1
  386. /package/dist/docs/assets/{guides_hooks.md.5Ce3NXxZ.lean.js → guides_hooks.md.B_bKG1oA.lean.js} +0 -0
  387. /package/dist/docs/assets/{index.md.Dxxr7pFa.lean.js → index.md.BIBHIQtU.lean.js} +0 -0
  388. /package/dist/docs/assets/{quickstart.md.BK5gjHM2.lean.js → quickstart.md.CduLGBAB.lean.js} +0 -0
  389. /package/dist/docs/assets/{reference_hooks.md.B-eGa2km.lean.js → reference_hooks.md.DbJC8mcZ.lean.js} +0 -0
  390. /package/dist/docs/assets/{reference_sessions.md.CyM7ARz1.lean.js → reference_sessions.md.C_uzIWuy.lean.js} +0 -0
  391. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C2GWh7g8.lean.js} +0 -0
  392. /package/dist/docs/assets/{templates_grokbot-agents.md.2sydjFiO.lean.js → templates_grokbot-agents.md.DgpPEs7B.lean.js} +0 -0
@@ -62,10 +62,17 @@ Match the visible symptom below.
62
62
  | The deployment never becomes running | Run `bdk deployment <slug>`, then act on the reported build or startup error. |
63
63
  | A secret or egress change has no effect | Confirm the name with `secrets list`, verify the `hosting` block exists on the pushed ref, and follow the CLI or dashboard prompt to redeploy. |
64
64
  | Cursor events stopped after redeploy | Each redeploy replaces the watched repositories. Pass every `--cursor-events-repo` value again; without the flag, the deployment watches only its GitHub source repository. |
65
- | `run --prod` prints a `deliveryId` but no `sessionId` | The deployment accepted the turn and is still starting it, which is expected with or without `--dry-run`. Find the session in the deployment's **Sessions** list in the dashboard, then follow [Verify a hosted turn](./deployment.md#verify-a-hosted-turn). |
66
- | A high-effort turn runs for several minutes while runs look empty | Turns can take about eight minutes. Rerun `bdk session <sessionId> --prod --slug <slug>`; a growing event count means the turn is still working. Escalate only after about two to three minutes with no new events. |
67
- | A dashboard link to a single session returns 404 | Check the session with `bdk session <sessionId> --prod --slug <slug>`. |
65
+ | `run --prod` prints a `deliveryId` but no `sessionId` | Expected, with or without `--dry-run`: the session is created when the turn starts. Find it with `bdk logs --prod --once --slug <slug>`, then follow [Verify a hosted turn](./deployment.md#verify-a-hosted-turn). |
66
+ | `session <sessionId> --prod` shows a `running` run with no logs | Runs lag behind events, and a high-effort turn can take several minutes. Rerun the command; a growing event count means the turn is still working. |
67
+ | A dashboard link to a single session doesn't open | Check the session with `bdk session <sessionId> --prod --slug <slug>`. |
68
+ | `chat`, `call`, `sessions`, `cost`, or `mcp` with `--prod` says the command is not supported | Hosted deployments accept `--prod` only on `run`, `session`, `logs`, and `playground`. See [Verify a hosted turn](./deployment.md#verify-a-hosted-turn). |
69
+ | `run --prod --session <sessionId>` reports the session belongs to another channel | `--session` continues only sessions that `run --prod` or `session --prod` started. Reach Slack, SCM, and custom-route sessions through their own channel. |
70
+ | A custom route returns `202` with no body | Expected on managed hosting. The handler runs after the response, so deliver results from the channel. See [Route responses](./reference/channels.md#route-responses). |
68
71
  | External HTTP rejects the alias token | Update the caller with the current token. If the token is lost or exposed, run `bdk rotate-token <slug>` and replace it everywhere. |
72
+ | `deploy` says deployments are not available under legacy privacy mode | The team uses Privacy Mode (Legacy), which does not let Cursor store code. Managed hosting is not available with this setting. |
73
+ | `deploy` says persistent deployments are limited to 1 per team | Another deployment of the team already sets `persistent: true`. Remove the setting from one agent, or delete that deployment. |
74
+ | A schedule does not fire on the hosted deployment | Make sure the deployment is running and its release has the schedule. Deploy again with `@cursor/bdk` 0.2.14 or newer. |
75
+ | A request to a custom route gets `429` | The deployment received more requests than its limit. Wait for the time in `Retry-After`, then send the request again. |
69
76
 
70
77
  See [Deployment](./deployment.md) for source, credential, and
71
78
  redeployment boundaries.
@@ -89,7 +96,6 @@ direct webhooks.
89
96
  | Logs say `channel idle ... missing credentials` | Run `bdk slack create --dir <agent>`, then check the generated prefix with `bdk slack doctor`. Use `slack init --manual` only for an app you own. |
90
97
  | `slack create` is waiting for workspace approval | Keep the CLI running, open the **Request approval** link it prints, and select **Retry** in the dashboard's **Add Slack** wizard after an admin approves. See [Slack](./guides/slack.md#connect). |
91
98
  | The bot ignores ordinary channel posts | Configure `engagement.channelPosts`, create the app with `--channel-posts`, and invite it to every allowed channel. |
92
- | Approval buttons do nothing | Set `toolApprovals: true`, then recreate the app if its interactivity is not enabled. |
93
99
 
94
100
  See the [Slack guide](./guides/slack.md) for app setup and engagement
95
101
  choices.
@@ -99,17 +105,16 @@ choices.
99
105
  | What you see | What to do |
100
106
  | --- | --- |
101
107
  | `must be defineConnection({ url, oauth: true })` | Add `oauth: true` to the named URL connection or correct the connection filename passed to `mcp oauth`. |
102
- | Local auth works but hosted calls return unauthorized | Complete Connect for the running process, or run `mcp oauth <name> --store` and redeploy for future replacements. |
108
+ | Local auth works but hosted calls return unauthorized | Locally stored OAuth tokens don't reach a deployment. Use a `cursorAccount: true` connection and connect the server from **Deployed Agents** in the dashboard. See [Host MCP OAuth](./guides/mcp-oauth.md#use-an-oauth-server-from-a-hosted-agent). |
103
109
  | The model invents `mcp_auth` instead of calling the server | Set `advertiseTools: true` for named local tools, or expose a host-side wrapper through `ctx.host.mcp`. |
104
110
 
105
111
  See [Host MCP OAuth](./guides/mcp-oauth.md) for the credential lifecycle.
106
112
 
107
- ## Schedules, reminders, or approvals stall
113
+ ## Schedules or reminders stall
108
114
 
109
115
  | What you see | What to do |
110
116
  | --- | --- |
111
117
  | A schedule or reminder never fires under `--dev` | Trigger it through the matching `/v1/dev/schedules/<id>` or `/v1/dev/reminders/<id>` route; development mode does not auto-fire. |
112
- | A pending approval disappears after restart | Parked approvals do not survive restart. Run the turn again. |
113
118
  | A reminder is disarmed with `handler_lost_on_restart` | Recreate handler-form reminders after restart, or use a prompt-form reminder. |
114
119
  | The same schedule fires on several self-hosted processes | Enable schedules on one serving process per project and pass `--no-schedules` to the others. |
115
120
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cursor/bdk",
3
- "version": "0.2.14",
3
+ "version": "0.2.16",
4
4
  "description": "Build, test, and deploy BDK bots and agents as code on Cursor's agent harness.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -30,6 +30,7 @@
30
30
  "!dist/internal/managed-delivery.*",
31
31
  "!dist/filesystem-executors.*",
32
32
  "skills/**/*",
33
+ "schemas/**/*.json",
33
34
  "templates/**/*",
34
35
  "!templates/pr-autofixer/README.md",
35
36
  "docs/**/*.md",
@@ -286,34 +287,13 @@
286
287
  "default": "./package.json"
287
288
  }
288
289
  },
289
- "scripts": {
290
- "build": "tsc -p tsconfig.build.json && node scripts/bundle-publish-shims.mjs && node scripts/copy-extension-assets.mjs && pnpm run build:playground && pnpm run docs:build",
291
- "build:dist": "node scripts/build-hosted-dist.mjs",
292
- "postinstall": "node -e \"try{const p='./scripts/install-cursor-skills.mjs';if(require('fs').existsSync(p))require('child_process').execFileSync(process.execPath,[p],{stdio:'inherit'})}catch{}\"",
293
- "build:playground": "vite build --config playground/vite.config.ts",
294
- "build:playground:central": "vite build --mode central --config playground/vite.config.ts",
295
- "dev:playground": "vite --config playground/vite.config.ts",
296
- "check": "oxlint src && tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
297
- "docs:dev": "vitepress dev docs",
298
- "docs:build": "vitepress build docs",
299
- "docs:preview": "vitepress preview docs",
300
- "docs:verify-links": "node scripts/verify-docs-links.mjs",
301
- "fix": "oxlint --fix src && oxfmt --write --no-error-on-unmatched-pattern src",
302
- "test": "vitest run --passWithNoTests",
303
- "type-check": "tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
304
- "build-dev": "echo noop",
305
- "build-types": "tsc -p tsconfig.build.json --emitDeclarationOnly",
306
- "verify-publish": "node scripts/verify-publish-artifacts.mjs",
307
- "smoke-publish": "node scripts/smoke-publish-artifact.mjs",
308
- "publish-check": "pnpm run build && pnpm run verify-publish && pnpm run smoke-publish"
309
- },
310
290
  "engines": {
311
291
  "node": ">=22.13"
312
292
  },
313
293
  "dependencies": {
314
294
  "@bazel/runfiles": "6.5.0",
315
- "@cursor/sdk": "1.0.32",
316
- "@modelcontextprotocol/sdk": "1.25.1",
295
+ "@cursor/sdk": "1.0.35",
296
+ "@modelcontextprotocol/sdk": "1.30.0",
317
297
  "@octokit/auth-app": "^7.2.0",
318
298
  "@octokit/rest": "^21.1.1",
319
299
  "@opentelemetry/api": "^1.9.0",
@@ -336,7 +316,7 @@
336
316
  "croner": "^8.0.1",
337
317
  "esbuild": "^0.25.0",
338
318
  "javascript-time-ago": "^2.6.4",
339
- "js-yaml": "4.1.0",
319
+ "js-yaml": "4.3.2",
340
320
  "minimatch": "^10.2.5",
341
321
  "ms": "^2.1.3",
342
322
  "proper-lockfile": "^4.1.2",
@@ -346,22 +326,17 @@
346
326
  "zod-to-json-schema": "^3.24.5"
347
327
  },
348
328
  "devDependencies": {
349
- "@anysphere/agent-exec": "workspace:*",
350
- "@anysphere/agent-store-sync": "workspace:*",
351
- "@anysphere/context": "workspace:*",
352
- "@anysphere/proto": "workspace:*",
353
- "@anysphere/ui": "workspace:*",
354
329
  "@braintree/sanitize-url": "7.1.2",
355
330
  "@stylexswc/rs-compiler": "^0.18.0",
356
331
  "@tanstack/react-virtual": "3.13.23",
357
332
  "@types/js-yaml": "4.0.9",
358
333
  "@types/ms": "^2.1.0",
359
- "@types/node": "catalog:",
334
+ "@types/node": "22.14.1",
360
335
  "@types/pg": "^8.16.0",
361
336
  "@types/proper-lockfile": "^4.1.4",
362
337
  "@types/react": "^19.0.0",
363
338
  "@types/react-dom": "^19.0.0",
364
- "@typescript/native": "catalog:",
339
+ "@typescript/native": "npm:typescript@^7.0.2",
365
340
  "@vitejs/plugin-react": "^5.1.2",
366
341
  "cytoscape": "3.33.3",
367
342
  "cytoscape-cose-bilkent": "4.1.0",
@@ -374,12 +349,38 @@
374
349
  "react-markdown": "^10.1.0",
375
350
  "rehype-highlight": "^7.0.2",
376
351
  "remark-gfm": "^4.0.1",
377
- "typescript": "catalog:",
352
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
378
353
  "vite": "^7.3.0",
379
354
  "vitepress": "1.6.4",
380
355
  "vitepress-plugin-mermaid": "^2.0.17",
381
356
  "vitest": "^4.0.18",
382
357
  "yaml": "^2.4.2",
383
- "zustand": "^5.0.9"
358
+ "zustand": "^5.0.9",
359
+ "@anysphere/agent-exec": "1.0.0",
360
+ "@anysphere/context": "1.0.0",
361
+ "@anysphere/ui": "1.0.0",
362
+ "@anysphere/proto": "1.0.0",
363
+ "@anysphere/agent-store-sync": "1.0.0"
364
+ },
365
+ "scripts": {
366
+ "build": "tsc -p tsconfig.build.json && node scripts/bundle-publish-shims.mjs && node scripts/copy-extension-assets.mjs && pnpm run build:playground && pnpm run docs:build",
367
+ "build:dist": "node scripts/build-hosted-dist.mjs",
368
+ "postinstall": "node -e \"try{const p='./scripts/install-cursor-skills.mjs';if(require('fs').existsSync(p))require('child_process').execFileSync(process.execPath,[p],{stdio:'inherit'})}catch{}\"",
369
+ "build:playground": "vite build --config playground/vite.config.ts",
370
+ "build:playground:central": "vite build --mode central --config playground/vite.config.ts",
371
+ "dev:playground": "vite --config playground/vite.config.ts",
372
+ "check": "oxlint src && tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
373
+ "docs:dev": "vitepress dev docs",
374
+ "docs:build": "vitepress build docs",
375
+ "docs:preview": "vitepress preview docs",
376
+ "docs:verify-links": "node scripts/verify-docs-links.mjs",
377
+ "fix": "oxlint --fix src && oxfmt --write --no-error-on-unmatched-pattern src",
378
+ "test": "vitest run --passWithNoTests",
379
+ "type-check": "tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
380
+ "build-dev": "echo noop",
381
+ "build-types": "tsc -p tsconfig.build.json --emitDeclarationOnly",
382
+ "verify-publish": "node scripts/verify-publish-artifacts.mjs",
383
+ "smoke-publish": "node scripts/smoke-publish-artifact.mjs",
384
+ "publish-check": "pnpm run build && pnpm run verify-publish && pnpm run smoke-publish"
384
385
  }
385
- }
386
+ }
@@ -0,0 +1,343 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "bdk init --from-grokbot answers",
4
+ "description": "Decisions for exporting a Grok Bot recipe. Every field is optional: a missing answer takes the default an interactive run offers. Names only, never secret values.",
5
+ "type": "object",
6
+ "properties": {
7
+ "$schema": {
8
+ "type": "string",
9
+ "description": "Path or URL of this schema, for editors. Ignored."
10
+ },
11
+ "version": {
12
+ "type": "integer",
13
+ "minimum": 1,
14
+ "maximum": 1,
15
+ "description": "Answers format version."
16
+ },
17
+ "name": {
18
+ "type": "string",
19
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
20
+ "title": "Name",
21
+ "description": "Agent name (also its directory)? Directory: `[A-Za-z0-9][A-Za-z0-9_-]*`, not `v1`/`playground`/`docs`",
22
+ "x-round": "identity"
23
+ },
24
+ "description": {
25
+ "type": "string",
26
+ "minLength": 1,
27
+ "title": "Description",
28
+ "description": "What does the bot do, in a sentence or two?",
29
+ "x-round": "identity"
30
+ },
31
+ "location": {
32
+ "type": "string",
33
+ "minLength": 1,
34
+ "title": "Location",
35
+ "description": "Directory to scaffold into?",
36
+ "x-round": "identity"
37
+ },
38
+ "model": {
39
+ "type": "string",
40
+ "minLength": 1,
41
+ "title": "Model",
42
+ "description": "Model id? Params, not id suffixes: `{ id: \"grok-4.5\", params: [{ id: \"effort\", value: \"high\" }, { id: \"fast\", value: \"true\" }] }`",
43
+ "x-round": "surface",
44
+ "default": "grok-4.5",
45
+ "x-labels": {
46
+ "grok-4.5": "`grok-4.5` + `effort=high`, `fast=true`"
47
+ }
48
+ },
49
+ "channels": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "enum": [
54
+ "slack",
55
+ "github",
56
+ "webhook",
57
+ "schedule"
58
+ ]
59
+ },
60
+ "title": "Channels",
61
+ "description": "Channels beyond the playground and HTTP? Slack: `skills/setup-slack/SKILL.md`. GitHub: `skills/github/SKILL.md`. No Discord/Teams pack; offer custom webhook.",
62
+ "x-round": "surface",
63
+ "x-labels": {
64
+ "slack": "Slack",
65
+ "github": "GitHub",
66
+ "webhook": "custom webhook",
67
+ "schedule": "schedule"
68
+ }
69
+ },
70
+ "memory": {
71
+ "type": "string",
72
+ "enum": [
73
+ "skill",
74
+ "kv",
75
+ "drop"
76
+ ],
77
+ "title": "Memory",
78
+ "description": "What should happen to the bot's memories? skill: a knowledge skill the agent reads on demand. kv: data in bot/lib/memory-seed.json for your own seeding code (BDK has no built-in KV seed). drop: leave them behind.",
79
+ "x-round": "export",
80
+ "default": "skill"
81
+ },
82
+ "skills": {
83
+ "type": "object",
84
+ "properties": {
85
+ "include": {
86
+ "type": "array",
87
+ "items": {
88
+ "type": "string",
89
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
90
+ },
91
+ "title": "Include skills",
92
+ "description": "Which skills should come along?",
93
+ "x-round": "export"
94
+ },
95
+ "exclude": {
96
+ "type": "array",
97
+ "items": {
98
+ "type": "string",
99
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
100
+ },
101
+ "title": "Exclude skills",
102
+ "description": "Which skills should stay behind, applied after the include list.",
103
+ "x-round": "export"
104
+ }
105
+ },
106
+ "additionalProperties": false
107
+ },
108
+ "routines": {
109
+ "type": "object",
110
+ "properties": {
111
+ "include": {
112
+ "type": "array",
113
+ "items": {
114
+ "type": "string",
115
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
116
+ },
117
+ "title": "Include routines",
118
+ "description": "Which routines should come along?",
119
+ "x-round": "export"
120
+ },
121
+ "exclude": {
122
+ "type": "array",
123
+ "items": {
124
+ "type": "string",
125
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
126
+ },
127
+ "title": "Exclude routines",
128
+ "description": "Which routines should stay behind, applied after the include list.",
129
+ "x-round": "export"
130
+ }
131
+ },
132
+ "additionalProperties": false
133
+ },
134
+ "plugins": {
135
+ "type": "object",
136
+ "properties": {
137
+ "include": {
138
+ "type": "array",
139
+ "items": {
140
+ "type": "string",
141
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
142
+ },
143
+ "title": "Include plugins",
144
+ "description": "Which plugins should come along?",
145
+ "x-round": "export"
146
+ },
147
+ "exclude": {
148
+ "type": "array",
149
+ "items": {
150
+ "type": "string",
151
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
152
+ },
153
+ "title": "Exclude plugins",
154
+ "description": "Which plugins should stay behind, applied after the include list.",
155
+ "x-round": "export"
156
+ }
157
+ },
158
+ "additionalProperties": false
159
+ },
160
+ "connectors": {
161
+ "type": "object",
162
+ "additionalProperties": {
163
+ "type": "object",
164
+ "properties": {
165
+ "auth": {
166
+ "type": "string",
167
+ "enum": [
168
+ "cursor-account",
169
+ "oauth",
170
+ "secret"
171
+ ],
172
+ "title": "Auth",
173
+ "description": "How should {plugin} authenticate? cursor-account: tools run through your Cursor account's connector, with no secret in the project. oauth: host OAuth against the server URL (`bdk mcp oauth`). secret: a bearer token read from a named secret.",
174
+ "x-round": "export",
175
+ "default": "cursor-account"
176
+ },
177
+ "server": {
178
+ "type": "string",
179
+ "minLength": 1,
180
+ "title": "Connector name",
181
+ "description": "Name of the {plugin} connector in your Cursor account?",
182
+ "x-round": "export"
183
+ },
184
+ "url": {
185
+ "type": "string",
186
+ "title": "Server URL",
187
+ "description": "{plugin} MCP server URL?",
188
+ "x-round": "export"
189
+ },
190
+ "secret": {
191
+ "type": "string",
192
+ "title": "Secret name",
193
+ "description": "Secret that holds the {plugin} token? A name only, like LINEAR_API_KEY. Set the value later with `bdk secrets set`.",
194
+ "x-round": "export"
195
+ }
196
+ },
197
+ "additionalProperties": false
198
+ },
199
+ "description": "How each recipe plugin connects, keyed by plugin slug."
200
+ },
201
+ "fillIns": {
202
+ "type": "object",
203
+ "additionalProperties": {
204
+ "type": "object",
205
+ "additionalProperties": {
206
+ "type": "string",
207
+ "minLength": 1,
208
+ "title": "{placeholder}",
209
+ "description": "{routine}: {placeholder}?",
210
+ "x-round": "export"
211
+ }
212
+ },
213
+ "description": "Values for recipe placeholders, keyed by routine slug, then placeholder id (e.g. slack_channel). Unfilled placeholders stay in the text."
214
+ },
215
+ "secrets": {
216
+ "type": "object",
217
+ "properties": {
218
+ "names": {
219
+ "type": "array",
220
+ "items": {
221
+ "type": "string"
222
+ },
223
+ "title": "Secret names",
224
+ "description": "Other secret names to list in SECRETS.md? Names only, UPPER_SNAKE_CASE. Names the generated files read are always listed.",
225
+ "x-round": "export"
226
+ },
227
+ "reauth": {
228
+ "type": "array",
229
+ "items": {
230
+ "type": "string",
231
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
232
+ },
233
+ "title": "Fresh sign-in",
234
+ "description": "Which other connectors need a fresh sign-in? OAuth connectors always do; they are listed without asking.",
235
+ "x-round": "export"
236
+ }
237
+ },
238
+ "additionalProperties": false
239
+ },
240
+ "repo": {
241
+ "type": "object",
242
+ "properties": {
243
+ "name": {
244
+ "type": "string",
245
+ "title": "Repository",
246
+ "description": "Repository name? (recorded only; bdk does not create repositories)",
247
+ "x-round": "export"
248
+ },
249
+ "namespace": {
250
+ "type": "string",
251
+ "title": "Repository namespace",
252
+ "description": "Repository owner or namespace? (recorded only)",
253
+ "x-round": "export"
254
+ }
255
+ },
256
+ "additionalProperties": false
257
+ },
258
+ "deploy": {
259
+ "type": "object",
260
+ "properties": {
261
+ "when": {
262
+ "type": "string",
263
+ "enum": [
264
+ "after-review",
265
+ "now",
266
+ "scheduled",
267
+ "never"
268
+ ],
269
+ "title": "Deploy",
270
+ "description": "When should it deploy? (recorded only; bdk does not deploy)",
271
+ "x-round": "export",
272
+ "default": "after-review"
273
+ },
274
+ "at": {
275
+ "type": "string",
276
+ "format": "date-time",
277
+ "title": "Deploy at",
278
+ "description": "Deploy at (ISO 8601 with a timezone)?",
279
+ "x-round": "export"
280
+ }
281
+ },
282
+ "additionalProperties": false
283
+ },
284
+ "slack": {
285
+ "type": "object",
286
+ "properties": {
287
+ "app": {
288
+ "type": "string",
289
+ "enum": [
290
+ "new",
291
+ "move"
292
+ ],
293
+ "title": "Slack app",
294
+ "description": "Mint a new Slack app, or move the bot's existing one?",
295
+ "x-round": "export",
296
+ "default": "new"
297
+ },
298
+ "cutover": {
299
+ "type": "string",
300
+ "enum": [
301
+ "manual",
302
+ "after-deploy",
303
+ "scheduled"
304
+ ],
305
+ "title": "Slack cutover",
306
+ "description": "When should Slack traffic switch to the BDK agent?",
307
+ "x-round": "export",
308
+ "default": "manual"
309
+ },
310
+ "cutoverAt": {
311
+ "type": "string",
312
+ "format": "date-time",
313
+ "title": "Slack cutover at",
314
+ "description": "Switch Slack traffic at (ISO 8601 with a timezone)?",
315
+ "x-round": "export"
316
+ },
317
+ "teamPrefix": {
318
+ "type": "string",
319
+ "minLength": 1,
320
+ "title": "Team prefix",
321
+ "description": "Team prefix the Slack bot name must start with?",
322
+ "x-round": "export"
323
+ },
324
+ "botName": {
325
+ "type": "string",
326
+ "minLength": 1,
327
+ "title": "Slack bot name",
328
+ "description": "Slack bot display name? Starts with the team prefix and must not contain \"Grok\".",
329
+ "x-round": "export"
330
+ },
331
+ "justification": {
332
+ "type": "string",
333
+ "minLength": 1,
334
+ "title": "Security justification",
335
+ "description": "Security justification for the Slack app review? What the bot does in Slack and why it needs its scopes. Saved for the Slack app setup.",
336
+ "x-round": "export"
337
+ }
338
+ },
339
+ "additionalProperties": false
340
+ }
341
+ },
342
+ "additionalProperties": false
343
+ }
@@ -6,7 +6,7 @@ description: >-
6
6
  agent. Ask only what the invoking message left open.
7
7
  ---
8
8
 
9
- # Create an BDK agent
9
+ # Create a BDK agent
10
10
 
11
11
  1. **Interview.** Two `AskQuestion` rounds, then a plan gate.
12
12
  2. **Scaffold.** `bdk init`, then shape the files.
@@ -33,13 +33,14 @@ on a running host.
33
33
  - If `AskQuestion` is missing or the user skips, state defaults
34
34
  in one list and proceed.
35
35
 
36
+ <!-- interview:start (generated from the bdk init questions; do not edit by hand) -->
36
37
  ### Round 1: identity
37
38
 
38
- | Question | Options |
39
- | --- | --- |
40
- | **Purpose** | chat assistant · PR / repo automation · domain assistant over APIs/tools · scheduled reporter · Other |
41
- | **Name** | 2–3 slugs from the purpose + Other. Directory: `[A-Za-z0-9][A-Za-z0-9_-]*`, not `v1`/`playground`/`docs` |
42
- | **Location** | `./<slug>` (default) · another directory |
39
+ | Question | Options | Guidance |
40
+ | --- | --- | --- |
41
+ | **Purpose** | chat assistant · PR / repo automation · domain assistant over APIs/tools · scheduled reporter · Other | |
42
+ | **Name** | 2–3 slugs from the purpose + Other | Directory: `[A-Za-z0-9][A-Za-z0-9_-]*`, not `v1`/`playground`/`docs` |
43
+ | **Location** | `./<slug>` (default) · another directory | |
43
44
 
44
45
  ### Round 2: surface
45
46
 
@@ -48,7 +49,8 @@ on a running host.
48
49
  | **Model** | `grok-4.5` + `effort=high`, `fast=true` · Other id | Params, not id suffixes: `{ id: "grok-4.5", params: [{ id: "effort", value: "high" }, { id: "fast", value: "true" }] }` |
49
50
  | **Channels** (multi) | playground + HTTP (always on) · Slack · GitHub · custom webhook · schedule | Slack: `skills/setup-slack/SKILL.md`. GitHub: `skills/github/SKILL.md`. No Discord/Teams pack; offer custom webhook. |
50
51
  | **MCP** (multi) | none · remote URL · local stdio · Cursor account connectors · Other | One file under `bot/mcp-connections/`. Account file is `account.ts`, never `cursor.ts`. Named local tools need `advertiseTools: true`. Privileged servers go in `bot/host-connections/`. |
51
- | **Capabilities** (multi) | server tools · agent tools · skills · subagents · hooks · sandbox seeds · approvals · evals (recommend) | Always recommend one smoke eval. |
52
+ | **Capabilities** (multi) | server tools · agent tools · skills · subagents · hooks · sandbox seeds · evals (recommend) | Always recommend one smoke eval. |
53
+ <!-- interview:end -->
52
54
 
53
55
  Close with the plan and file tree, then "Scaffold it" / "Adjust
54
56
  something". Write files only after approval.
@@ -72,13 +74,13 @@ Defaults:
72
74
  - `bot/instructions.md`: identity, when to use which tool,
73
75
  output shape.
74
76
  - One tool per file. Prefer `execution: "server"` + zod
75
- `inputSchema`. Gate side effects with `needsApproval: true`.
77
+ `inputSchema`. Declare `effect: "read"` or `"write"` on each tool.
76
78
  - Long prompts: `prompt\`…\`` / `prompt.lines\`…\`` from
77
79
  `@cursor/bdk`.
78
80
  - Host prep is for evidence (`callTool`, `workspaceFiles`), not
79
81
  judgment, formatting, or replies.
80
- - Remembered state is `ctx.host.kv`. The process is not a
81
- persistent box: a module `Map` is empty on the next replica.
82
+ - Remembered state is `ctx.host.kv`. On Cursor hosting, a later
83
+ event can run in a new process, where a module `Map` starts empty.
82
84
  File bytes that must outlive the process go in `ctx.host.files`.
83
85
  See `skills/framework-map/SKILL.md`.
84
86
 
@@ -154,7 +156,10 @@ project state directory (`--state-root`). That is not harness cwd.
154
156
  - **Slack.** `skills/setup-slack/SKILL.md`
155
157
  - **GitHub.** `skills/github/SKILL.md`
156
158
  - **Custom webhook.** `POST /v1/channels/<id>/<route>`.
157
- Loopback-only until you add `bearerAuth(...)`.
159
+ Loopback-only until you add `bearerAuth(...)`. Hosted callers
160
+ get an empty `202` before the handler runs, so return
161
+ `new Response(null, { status: 202 })` and deliver results from
162
+ the channel's `events`.
158
163
  - **Schedules.** Never auto-fire under `--dev`.
159
164
  `POST /v1/dev/schedules/<id>`.
160
165
 
@@ -2,13 +2,13 @@
2
2
  name: bdk-debug
3
3
  description: >-
4
4
  Diagnose a misbehaving local BDK agent: blank playground,
5
- missing sessions, failed reads, webhook 401s, 403/409, lost
6
- approvals. Use when a project runs but behaves wrong locally.
5
+ missing sessions, failed reads, webhook 401s, 403/409. Use when
6
+ a project runs but behaves wrong locally.
7
7
  ---
8
8
 
9
9
  # Debugging the BDK locally
10
10
 
11
- Local `bdk serve`. Hosted start or health failures:
11
+ Local `bdk serve`. Hosted start failures:
12
12
  `docs/troubleshooting.md` and `docs/deployment.md`.
13
13
 
14
14
  1. **Validate.** `bdk validate --dir <project>`
@@ -27,7 +27,6 @@ Local `bdk serve`. Hosted start or health failures:
27
27
  | Answers cite ancestor `AGENTS.md` | Nested checkout. Default `local.cwd` is a cache directory under `~/.cache`. |
28
28
  | Model lists IDE `cursor` tools, never MCP | `advertiseTools: true`. Check `GET /v1/info`. |
29
29
  | Port 3000 in use | `lsof -iTCP:3000 -sTCP:LISTEN` and kill that pid. |
30
- | Approval vanished after restart | Parked calls do not survive restart. Re-run. |
31
30
  | Schedule / reminder silent under `--dev` | Dev never auto-fires. `POST /<slug>/v1/dev/schedules/<id>`. |
32
31
  | `409` on follow-up | Stale `continuationToken`, busy session, or a task session. |
33
32
  | `409 session_busy` on `call --session` | Wait, or drop `--session`. |
@@ -84,11 +84,11 @@ export default defineEvalConfig({
84
84
  ```
85
85
 
86
86
  Either `test(t)` or `cases`, not both. `t.send` waits for the turn to
87
- settle (complete, park, or fail) and returns it; `turn.calledTool(...)`
87
+ settle (complete or fail) and returns it; `turn.calledTool(...)`
88
88
  reads only that turn, `t.*` reads the whole run. First-send options:
89
89
  `workspaceFiles`, `workspaceDir`.
90
90
 
91
- Gates: `t.succeeded()` / `t.parked()`,
91
+ Gates: `t.succeeded()`,
92
92
  `calledTool(name, { input, output, status, count })` / `notCalledTool`,
93
93
  `toolOrder`, `maxToolCalls`, `taggedArtifact`, `event` / `notEvent`,
94
94
  `t.check(value, includes | equals | matches | similarity | satisfies)`.