@cursor/bdk 0.2.1 → 0.2.3

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 (336) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +1 -6
  3. package/dist/artifacts.d.ts +5 -2
  4. package/dist/artifacts.d.ts.map +1 -1
  5. package/dist/artifacts.js +5 -2
  6. package/dist/bin/agent-serve.js +23 -7
  7. package/dist/channels/github/auth.d.ts.map +1 -1
  8. package/dist/channels/github/auth.js +36 -5
  9. package/dist/channels/slack/manifest.d.ts.map +1 -1
  10. package/dist/channels/slack/manifest.js +3 -2
  11. package/dist/channels/slack/types.d.ts +6 -1
  12. package/dist/channels/slack/types.d.ts.map +1 -1
  13. package/dist/connections.d.ts +1 -1
  14. package/dist/connections.js +1 -1
  15. package/dist/docs/404.html +2 -2
  16. package/dist/docs/assets/{app.JVQvbRO-.js → app.BOIHhrKi.js} +4 -4
  17. package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +1 -0
  18. package/dist/docs/assets/chunks/{VPLocalSearchBox.BkhY63uW.js → VPLocalSearchBox.D49zVZqM.js} +1 -1
  19. package/dist/docs/assets/chunks/{arc.Cc1unYd3.js → arc.hmjb-sc4.js} +1 -1
  20. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CAY_TPVz.js → architectureDiagram-Q4EWVU46.CxEI1KqM.js} +1 -1
  21. package/dist/docs/assets/chunks/{baseUniq.my2VD3Xm.js → baseUniq.DHHvBWoV.js} +1 -1
  22. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CQXAOmqd.js → blockDiagram-DXYQGD6D.DnXW-3bu.js} +1 -1
  23. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D0AsQFSX.js → c4Diagram-AHTNJAMY.e-47O2jM.js} +1 -1
  24. package/dist/docs/assets/chunks/channel.BbOGaJQP.js +1 -0
  25. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DZjhgNls.js → chunk-4BX2VUAB.3ry4pYXB.js} +1 -1
  26. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.qdcp_qbo.js → chunk-4TB4RGXK.DGIZFRx6.js} +1 -1
  27. package/dist/docs/assets/chunks/{chunk-55IACEB6.BHXoZhJ-.js → chunk-55IACEB6.DKBnqg9U.js} +1 -1
  28. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.Cds_Vwj3.js → chunk-EDXVE4YY.BIU8Ue5k.js} +1 -1
  29. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CSl0HknT.js → chunk-FMBD7UC4.DP-TFhjI.js} +1 -1
  30. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.DJMvAt5N.js → chunk-OYMX7WX6.Ux0OYj5v.js} +1 -1
  31. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BYQzBK9D.js → chunk-QZHKN3VN.BzHMwYox.js} +1 -1
  32. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.BAvw7N4o.js → chunk-YZCP3GAM.D4OGAsSP.js} +1 -1
  33. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +1 -0
  34. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +1 -0
  35. package/dist/docs/assets/chunks/clone.Co4MBflG.js +1 -0
  36. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Buf3seya.js → cose-bilkent-S5V4N54A.Jq_7BUNx.js} +1 -1
  37. package/dist/docs/assets/chunks/{dagre-KV5264BT.DMGGa3uA.js → dagre-KV5264BT.Di-skR2x.js} +1 -1
  38. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DDjnwRmY.js → diagram-5BDNPKRD.DeREHIdH.js} +1 -1
  39. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.RwyrIr8Q.js → diagram-G4DWMVQ6.C7Kcqxro.js} +1 -1
  40. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DRvQV16Z.js → diagram-MMDJMWI5.BK3eohyo.js} +1 -1
  41. package/dist/docs/assets/chunks/{diagram-TYMM5635.Dw8W9BTk.js → diagram-TYMM5635.C6TyymXT.js} +1 -1
  42. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DQT1Hnwf.js → erDiagram-SMLLAGMA.DYGG-gGx.js} +1 -1
  43. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.6_Aky-ut.js → flowDiagram-DWJPFMVM.C9nBcSV4.js} +1 -1
  44. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHIwqnqN.js → ganttDiagram-T4ZO3ILL.wAg_ymsp.js} +1 -1
  45. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CGd_eJbn.js → gitGraphDiagram-UUTBAWPF.B87j9Oeg.js} +1 -1
  46. package/dist/docs/assets/chunks/{graph.ChMEylkh.js → graph.CuFMj31w.js} +1 -1
  47. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Cd4gMyAz.js → infoDiagram-42DDH7IO.P_mLGumP.js} +1 -1
  48. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.D1uw7MXq.js → ishikawaDiagram-UXIWVN3A.DyuL_MsT.js} +1 -1
  49. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.AWLXtelc.js → journeyDiagram-VCZTEJTY.CtP09IoJ.js} +1 -1
  50. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CagPhAn5.js → kanban-definition-6JOO6SKY.BoeSYPZo.js} +1 -1
  51. package/dist/docs/assets/chunks/{layout.ClTBBkE_.js → layout.B0lMMtNo.js} +1 -1
  52. package/dist/docs/assets/chunks/{linear.SwS2rOLA.js → linear.HxRBiAFX.js} +1 -1
  53. package/dist/docs/assets/chunks/{min.By_x-Btb.js → min.BGlFFHwS.js} +1 -1
  54. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.By_RAMaP.js → mindmap-definition-QFDTVHPH.JyLBD9M8.js} +1 -1
  55. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DfAl9sy4.js → pieDiagram-DEJITSTG.DnSmNZF8.js} +1 -1
  56. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CNuqFRBj.js → quadrantDiagram-34T5L4WZ.CUCnbfCa.js} +1 -1
  57. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DJ5CmTCl.js → requirementDiagram-MS252O5E.py0IVUn5.js} +1 -1
  58. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.D-T_AKJj.js → sankeyDiagram-XADWPNL6.Bkc-HWYp.js} +1 -1
  59. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BRn9WcrR.js → sequenceDiagram-FGHM5R23.Dqn8Mlv2.js} +1 -1
  60. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.F12urmm7.js → stateDiagram-FHFEXIEX.JikkoQUU.js} +1 -1
  61. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +1 -0
  62. package/dist/docs/assets/chunks/{theme.zK3OJa_C.js → theme.b6HQ6zG_.js} +2 -2
  63. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.B7GiQBeC.js → timeline-definition-GMOUNBTQ.BvpSXiBj.js} +1 -1
  64. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.D0niwuY_.js → vennDiagram-DHZGUBPP.CU7MVnZx.js} +1 -1
  65. package/dist/docs/assets/chunks/{wardley-RL74JXVD.1zhHNRsx.js → wardley-RL74JXVD.BKwC4ctG.js} +1 -1
  66. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.DKaqpT7K.js → wardleyDiagram-NUSXRM2D.BfaF6Uhe.js} +1 -1
  67. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.e8BPicch.js → xychartDiagram-5P7HB3ND.Bg5dcpj4.js} +1 -1
  68. package/dist/docs/assets/{deployment.md.nGo1yIsa.js → deployment.md.BJ8i7Q6p.js} +5 -8
  69. package/dist/docs/assets/{deployment.md.nGo1yIsa.lean.js → deployment.md.BJ8i7Q6p.lean.js} +1 -1
  70. package/dist/docs/assets/{guides_github.md.C2_DSWlE.js → guides_github.md.Bq9kQU9B.js} +9 -3
  71. package/dist/docs/assets/{guides_github.md.C2_DSWlE.lean.js → guides_github.md.Bq9kQU9B.lean.js} +1 -1
  72. package/dist/docs/assets/{guides_slack.md.ZbHQETOT.js → guides_slack.md.diqqXTTm.js} +2 -2
  73. package/dist/docs/assets/{guides_slack.md.ZbHQETOT.lean.js → guides_slack.md.diqqXTTm.lean.js} +1 -1
  74. package/dist/docs/assets/{quickstart.md.wG4shE1f.js → quickstart.md.CHpHPBUN.js} +5 -3
  75. package/dist/docs/assets/{quickstart.md.wG4shE1f.lean.js → quickstart.md.CHpHPBUN.lean.js} +1 -1
  76. package/dist/docs/assets/{reference_artifacts.md.IFFC5Zln.js → reference_artifacts.md.CQfKq8F2.js} +1 -1
  77. package/dist/docs/assets/reference_cli.md.DgeLTO18.js +91 -0
  78. package/dist/docs/assets/reference_cli.md.DgeLTO18.lean.js +1 -0
  79. package/dist/docs/assets/{reference_connections.md._XpKiOaF.js → reference_connections.md.COq--gAm.js} +7 -3
  80. package/dist/docs/assets/{reference_connections.md._XpKiOaF.lean.js → reference_connections.md.COq--gAm.lean.js} +1 -1
  81. package/dist/docs/assets/{reference_evals.md.DqNyHMA6.js → reference_evals.md.CJm3uCUm.js} +4 -4
  82. package/dist/docs/assets/{reference_evals.md.DqNyHMA6.lean.js → reference_evals.md.CJm3uCUm.lean.js} +1 -1
  83. package/dist/docs/assets/{reference_hooks.md.Dg3dEugd.js → reference_hooks.md.DbthhtIR.js} +1 -1
  84. package/dist/docs/assets/{reference_sessions.md.BtpTjZmh.js → reference_sessions.md.DeRUItHD.js} +1 -1
  85. package/dist/docs/assets/troubleshooting.md.Cw5PKa3t.js +1 -0
  86. package/dist/docs/assets/{troubleshooting.md.BzZSu1Gz.lean.js → troubleshooting.md.Cw5PKa3t.lean.js} +1 -1
  87. package/dist/docs/building-with-agents.html +35 -35
  88. package/dist/docs/deployment.html +40 -43
  89. package/dist/docs/deployment.md +45 -15
  90. package/dist/docs/evals.html +35 -35
  91. package/dist/docs/guides/agent-to-agent.html +35 -35
  92. package/dist/docs/guides/bitbucket.html +35 -35
  93. package/dist/docs/guides/cloud-agents.html +35 -35
  94. package/dist/docs/guides/convert-automation.html +35 -35
  95. package/dist/docs/guides/github.html +43 -37
  96. package/dist/docs/guides/github.md +34 -0
  97. package/dist/docs/guides/gitlab.html +35 -35
  98. package/dist/docs/guides/grokbot-agents.html +35 -35
  99. package/dist/docs/guides/hooks.html +35 -35
  100. package/dist/docs/guides/improve.html +35 -35
  101. package/dist/docs/guides/jev.html +35 -35
  102. package/dist/docs/guides/mcp-oauth.html +35 -35
  103. package/dist/docs/guides/opentelemetry.html +35 -35
  104. package/dist/docs/guides/slack.html +37 -37
  105. package/dist/docs/guides/slack.md +5 -0
  106. package/dist/docs/guides/webhooks.html +35 -35
  107. package/dist/docs/hashmap.json +1 -1
  108. package/dist/docs/hillclimbing.html +35 -35
  109. package/dist/docs/index.html +35 -35
  110. package/dist/docs/llms-full.txt +205 -97
  111. package/dist/docs/quickstart.html +40 -38
  112. package/dist/docs/quickstart.md +7 -1
  113. package/dist/docs/reference/agent-config.html +35 -35
  114. package/dist/docs/reference/artifacts.html +37 -37
  115. package/dist/docs/reference/artifacts.md +1 -1
  116. package/dist/docs/reference/channels.html +35 -35
  117. package/dist/docs/reference/cli.html +55 -61
  118. package/dist/docs/reference/cli.md +65 -63
  119. package/dist/docs/reference/connections.html +42 -38
  120. package/dist/docs/reference/connections.md +28 -2
  121. package/dist/docs/reference/evals.html +39 -39
  122. package/dist/docs/reference/evals.md +6 -7
  123. package/dist/docs/reference/extensions.html +35 -35
  124. package/dist/docs/reference/hooks.html +37 -37
  125. package/dist/docs/reference/hooks.md +3 -2
  126. package/dist/docs/reference/http-api.html +35 -35
  127. package/dist/docs/reference/instructions.html +35 -35
  128. package/dist/docs/reference/playground.html +35 -35
  129. package/dist/docs/reference/project-layout.html +35 -35
  130. package/dist/docs/reference/prompt.html +35 -35
  131. package/dist/docs/reference/schedules.html +35 -35
  132. package/dist/docs/reference/sessions.html +36 -36
  133. package/dist/docs/reference/sessions.md +4 -3
  134. package/dist/docs/reference/skills.html +35 -35
  135. package/dist/docs/reference/subagents.html +35 -35
  136. package/dist/docs/reference/tools.html +35 -35
  137. package/dist/docs/templates/agentic-owners.html +35 -35
  138. package/dist/docs/templates/security-reviewer.html +35 -35
  139. package/dist/docs/templates/thermo-quality-review.html +35 -35
  140. package/dist/docs/templates/thermo-review.html +35 -35
  141. package/dist/docs/templates/triage.html +35 -35
  142. package/dist/docs/troubleshooting.html +36 -36
  143. package/dist/docs/troubleshooting.md +7 -3
  144. package/dist/extensions/cursor-cloud-agents/extension.d.ts +16 -4
  145. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  146. package/dist/extensions/cursor-cloud-agents/extension.js +7 -3
  147. package/dist/extensions/cursor-cloud-agents/lib/channels.d.ts +3 -0
  148. package/dist/extensions/cursor-cloud-agents/lib/channels.d.ts.map +1 -0
  149. package/dist/extensions/cursor-cloud-agents/lib/channels.js +7 -0
  150. package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts +4 -2
  151. package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -1
  152. package/dist/extensions/cursor-cloud-agents/lib/repos.js +21 -12
  153. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -1
  154. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +2 -0
  155. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  156. package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -1
  157. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -1
  158. package/dist/extensions/cursor-cloud-agents/tools/reply.js +2 -0
  159. package/dist/extensions/cursor-grokbot-agents/extension.d.ts +77 -0
  160. package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -0
  161. package/dist/extensions/cursor-grokbot-agents/extension.js +63 -0
  162. package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts +11 -0
  163. package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts.map +1 -0
  164. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +31 -0
  165. package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts +56 -0
  166. package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts.map +1 -0
  167. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +158 -0
  168. package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts +28 -0
  169. package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts.map +1 -0
  170. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +59 -0
  171. package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts +53 -0
  172. package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts.map +1 -0
  173. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +206 -0
  174. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +4 -0
  175. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -0
  176. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +15 -0
  177. package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts +12 -0
  178. package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts.map +1 -0
  179. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +25 -0
  180. package/dist/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
  181. package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts +4 -0
  182. package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts.map +1 -0
  183. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +37 -0
  184. package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts +4 -0
  185. package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts.map +1 -0
  186. package/dist/extensions/cursor-grokbot-agents/tools/check.js +32 -0
  187. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts +4 -0
  188. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts.map +1 -0
  189. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +24 -0
  190. package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts +4 -0
  191. package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts.map +1 -0
  192. package/dist/extensions/cursor-grokbot-agents/tools/list.js +34 -0
  193. package/dist/files-backends/cursor-hosted.js +4 -4
  194. package/dist/internal/artifacts-store.d.ts +12 -2
  195. package/dist/internal/artifacts-store.d.ts.map +1 -1
  196. package/dist/internal/artifacts-store.js +8 -4
  197. package/dist/internal/cli-ax.d.ts +1 -0
  198. package/dist/internal/cli-ax.d.ts.map +1 -1
  199. package/dist/internal/cli-ax.js +43 -10
  200. package/dist/internal/cli-deploy.d.ts +5 -1
  201. package/dist/internal/cli-deploy.d.ts.map +1 -1
  202. package/dist/internal/cli-deploy.js +22 -4
  203. package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
  204. package/dist/internal/cli-mcp-oauth.js +2 -1
  205. package/dist/internal/cli-skills.d.ts +1 -1
  206. package/dist/internal/cli-skills.d.ts.map +1 -1
  207. package/dist/internal/cli-skills.js +5 -5
  208. package/dist/internal/connection-env.d.ts +31 -0
  209. package/dist/internal/connection-env.d.ts.map +1 -0
  210. package/dist/internal/connection-env.js +84 -0
  211. package/dist/internal/cursor/backend-client.js +5 -0
  212. package/dist/internal/deploy-client.d.ts +30 -6
  213. package/dist/internal/deploy-client.d.ts.map +1 -1
  214. package/dist/internal/deploy-client.js +45 -9
  215. package/dist/internal/discovery/connections.d.ts.map +1 -1
  216. package/dist/internal/discovery/connections.js +11 -0
  217. package/dist/internal/event-mapper.d.ts +46 -4
  218. package/dist/internal/event-mapper.d.ts.map +1 -1
  219. package/dist/internal/event-mapper.js +316 -25
  220. package/dist/internal/hosted-delivery-protocol.d.ts +36 -11
  221. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  222. package/dist/internal/hosted-delivery-protocol.js +31 -8
  223. package/dist/internal/hosted-delivery.d.ts +2 -2
  224. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  225. package/dist/internal/hosted-delivery.js +229 -49
  226. package/dist/internal/hosting.d.ts +2 -2
  227. package/dist/internal/hosting.d.ts.map +1 -1
  228. package/dist/internal/hosting.js +9 -3
  229. package/dist/internal/install-cursor-skills.d.ts +20 -24
  230. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  231. package/dist/internal/install-cursor-skills.js +50 -48
  232. package/dist/internal/legacy-command-guard.d.ts +2 -0
  233. package/dist/internal/legacy-command-guard.d.ts.map +1 -1
  234. package/dist/internal/legacy-command-guard.js +10 -1
  235. package/dist/internal/mcp-host.d.ts +6 -0
  236. package/dist/internal/mcp-host.d.ts.map +1 -1
  237. package/dist/internal/mcp-host.js +35 -16
  238. package/dist/internal/sdk-runner.d.ts +2 -0
  239. package/dist/internal/sdk-runner.d.ts.map +1 -1
  240. package/dist/internal/sdk-runner.js +10 -0
  241. package/dist/internal/server.d.ts.map +1 -1
  242. package/dist/internal/server.js +11 -1
  243. package/dist/internal/session-engine.d.ts +1 -1
  244. package/dist/internal/session-engine.d.ts.map +1 -1
  245. package/dist/internal/session-engine.js +33 -8
  246. package/dist/playground/assets/index-6BbTPnaT.css +1 -0
  247. package/dist/playground/assets/{index-FFdUqTt_.js → index-CI7FAmOP.js} +43 -43
  248. package/dist/playground/index.html +2 -2
  249. package/dist/types.d.ts +50 -4
  250. package/dist/types.d.ts.map +1 -1
  251. package/docs/deployment.md +45 -15
  252. package/docs/guides/github.md +34 -0
  253. package/docs/guides/slack.md +5 -0
  254. package/docs/quickstart.md +7 -1
  255. package/docs/reference/artifacts.md +1 -1
  256. package/docs/reference/cli.md +65 -63
  257. package/docs/reference/connections.md +28 -2
  258. package/docs/reference/evals.md +6 -7
  259. package/docs/reference/hooks.md +3 -2
  260. package/docs/reference/sessions.md +4 -3
  261. package/docs/troubleshooting.md +7 -3
  262. package/package.json +2 -4
  263. package/scripts/install-cursor-skills.mjs +1 -1
  264. package/skills/create-agent/SKILL.md +1 -1
  265. package/skills/debug/SKILL.md +1 -1
  266. package/skills/deploy/SKILL.md +1 -1
  267. package/skills/evals/SKILL.md +1 -1
  268. package/skills/framework-map/SKILL.md +1 -1
  269. package/skills/github/SKILL.md +1 -1
  270. package/skills/hillclimb/SKILL.md +1 -1
  271. package/skills/mcp-auth/SKILL.md +1 -1
  272. package/skills/otel/SKILL.md +1 -1
  273. package/skills/setup-slack/SKILL.md +1 -1
  274. package/src/artifacts.ts +5 -2
  275. package/src/bin/agent-serve.ts +27 -6
  276. package/src/channels/github/auth.ts +44 -5
  277. package/src/channels/slack/manifest.ts +2 -1
  278. package/src/channels/slack/types.ts +6 -1
  279. package/src/connections.ts +1 -1
  280. package/src/extensions/cursor-cloud-agents/extension.ts +23 -6
  281. package/src/extensions/cursor-cloud-agents/lib/channels.ts +11 -0
  282. package/src/extensions/cursor-cloud-agents/lib/repos.ts +19 -7
  283. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +2 -0
  284. package/src/extensions/cursor-cloud-agents/tools/launch.ts +3 -1
  285. package/src/extensions/cursor-cloud-agents/tools/reply.ts +2 -0
  286. package/src/extensions/cursor-grokbot-agents/extension.ts +132 -0
  287. package/src/extensions/cursor-grokbot-agents/lib/agents.ts +42 -0
  288. package/src/extensions/cursor-grokbot-agents/lib/backend.ts +208 -0
  289. package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +74 -0
  290. package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +260 -0
  291. package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +21 -0
  292. package/src/extensions/cursor-grokbot-agents/lib/lock.ts +26 -0
  293. package/src/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
  294. package/src/extensions/cursor-grokbot-agents/tools/ask.ts +32 -0
  295. package/src/extensions/cursor-grokbot-agents/tools/check.ts +25 -0
  296. package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +17 -0
  297. package/src/extensions/cursor-grokbot-agents/tools/list.ts +26 -0
  298. package/src/files-backends/cursor-hosted.ts +4 -4
  299. package/src/internal/artifacts-store.ts +14 -3
  300. package/src/internal/cli-ax.ts +52 -7
  301. package/src/internal/cli-deploy.ts +39 -6
  302. package/src/internal/cli-mcp-oauth.ts +2 -1
  303. package/src/internal/cli-skills.ts +4 -5
  304. package/src/internal/connection-env.ts +106 -0
  305. package/src/internal/cursor/backend-client.ts +6 -0
  306. package/src/internal/deploy-client.ts +79 -9
  307. package/src/internal/discovery/connections.ts +11 -0
  308. package/src/internal/event-mapper.ts +367 -36
  309. package/src/internal/hosted-delivery-protocol.ts +57 -20
  310. package/src/internal/hosted-delivery.ts +487 -229
  311. package/src/internal/hosting.ts +10 -3
  312. package/src/internal/install-cursor-skills.ts +56 -53
  313. package/src/internal/legacy-command-guard.ts +13 -1
  314. package/src/internal/mcp-host.ts +45 -17
  315. package/src/internal/sdk-runner.ts +11 -0
  316. package/src/internal/server.ts +13 -1
  317. package/src/internal/session-engine.ts +33 -13
  318. package/src/types.ts +56 -5
  319. package/templates/agents-md/bot/lib/collect.ts +1 -4
  320. package/templates/code-wiki/bot/channels/github.ts +2 -2
  321. package/templates/demo/bot/channels/github.ts +5 -1
  322. package/templates/pr-autofixer/bot/lib/start-drive.ts +4 -4
  323. package/templates/triage/bot/lib/types.ts +6 -6
  324. package/dist/docs/assets/chunks/@localSearchIndexroot.Caw9W1pM.js +0 -1
  325. package/dist/docs/assets/chunks/channel.Sapo9HJZ.js +0 -1
  326. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.NPiy3Hz7.js +0 -1
  327. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.NPiy3Hz7.js +0 -1
  328. package/dist/docs/assets/chunks/clone.zl2qolPE.js +0 -1
  329. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2._auCa3fR.js +0 -1
  330. package/dist/docs/assets/reference_cli.md.BK2QUH67.js +0 -97
  331. package/dist/docs/assets/reference_cli.md.BK2QUH67.lean.js +0 -1
  332. package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.js +0 -1
  333. package/dist/playground/assets/index-BMV_IcEE.css +0 -1
  334. /package/dist/docs/assets/{reference_artifacts.md.IFFC5Zln.lean.js → reference_artifacts.md.CQfKq8F2.lean.js} +0 -0
  335. /package/dist/docs/assets/{reference_hooks.md.Dg3dEugd.lean.js → reference_hooks.md.DbthhtIR.lean.js} +0 -0
  336. /package/dist/docs/assets/{reference_sessions.md.BtpTjZmh.lean.js → reference_sessions.md.DeRUItHD.lean.js} +0 -0
@@ -53,12 +53,12 @@ provide their own `help` subcommands.
53
53
  | --- | --- |
54
54
  | [`chat`](#chat) | Talk to a running agent |
55
55
  | [`resume`](#resume) | Reattach chat to a previous session |
56
- | [`run`](#run) | Start or continue work on a local, running, or managed agent |
56
+ | [`run`](#run) | Start or continue work on a local, running, or hosted agent |
57
57
  | [`call`](#call) | Call a server tool without a model turn |
58
58
  | [`skill`](#skill) | Read an authored skill without a model turn |
59
59
  | [`logs`](#logs) | Follow or dump agent logs |
60
60
  | [`sessions`](#sessions) | List sessions |
61
- | [`session`](#session) | Inspect a session or start a managed session turn |
61
+ | [`session`](#session) | Inspect a session or start a hosted session turn |
62
62
  | [`cost`](#cost) | Report token usage and estimated cost |
63
63
  | [`playground`](#playground) | Open an agent's playground |
64
64
  | [`trajectory`](#trajectory) | Summarize a saved event stream |
@@ -73,8 +73,8 @@ provide their own `help` subcommands.
73
73
  | [`deployment`](#deployment) | Inspect one deployment |
74
74
  | [`stop`](#stop) | Stop a deployment |
75
75
  | [`cancel-runs`](#cancel-runs) | Cancel active runs and reminder wakes |
76
- | [`event-repos`](#event-repos) | Replace a managed application's event repositories |
77
- | [`upgrade`](#upgrade) | Move a managed application to a release |
76
+ | [`event-repos`](#event-repos) | Replace a deployment's event repositories |
77
+ | [`upgrade`](#upgrade) | Move a deployment to a release |
78
78
  | [`delete`](#delete) | Delete a deployment |
79
79
  | [`rotate-token`](#rotate-token) | Replace a deployment's alias token |
80
80
  | [`secrets`](#secrets) | Set, list, or remove deployment secrets |
@@ -100,8 +100,7 @@ Commands that send requests support these targets:
100
100
  | Ephemeral local server | Omit `--url` and `--prod` | `run`, `call`, `skill`, `eval` |
101
101
  | Running server | Pass `--url <baseUrl>` | `chat`, `resume`, `run`, `call`, `skill`, `eval`, `logs`, `sessions`, `session`, `cost`, `playground`, `mcp` |
102
102
  | Default local server | Omit `--url` and `--prod`; uses `http://127.0.0.1:3000` | `chat`, `resume`, `logs`, `sessions`, `session`, `cost`, `playground` |
103
- | Hosted deployment | Pass `--prod` | `chat`, `resume`, `run`, `call`, `skill`, `eval`, `logs`, `sessions`, `session`, `cost`, `playground`, `mcp` |
104
- | Managed application | Pass `--prod` | `run`, `session` |
103
+ | Hosted deployment | Pass `--prod` | `run`, `session`, `playground` |
105
104
 
106
105
  An explicit `--url` must include the slug for a multi-agent server, such as
107
106
  `http://127.0.0.1:3000/pr-approver`. `--slug` never changes an explicit URL.
@@ -111,7 +110,7 @@ An explicit `--url` must include the slug for a multi-agent server, such as
111
110
  | --- | --- |
112
111
  | `--dir <path>` | Select the project root. The default is the current directory. |
113
112
  | `--url <baseUrl>` | Use a running agent instead of local project discovery. |
114
- | `--prod` | Use a hosted deployment or managed application. Command support depends on the target type as listed above. |
113
+ | `--prod` | Use the hosted deployment. Only `run`, `session`, and `playground` accept it. |
115
114
  | `--slug <slug>` | Select an agent from a multi-agent project or a hosted resource. Under `--prod`, the default is the `--dir` basename. |
116
115
  | `--team <id>` | Select a Cursor team. The signed-in account's team is the default. |
117
116
  | `--api-key <key>` | Override the Cursor credential for commands that authenticate with Cursor. |
@@ -189,9 +188,9 @@ prints the URL without opening a browser.
189
188
  `chat` connects to a running server and never starts an ephemeral one:
190
189
 
191
190
  ```text
192
- bdk chat [--url <baseUrl> | --prod] [--message <text>]
191
+ bdk chat [--url <baseUrl>] [--message <text>]
193
192
  [--session <id> | --resume] [--continuation-token <token>]
194
- [--slug <slug>] [--team <id>] [--json] [--text] [--no-color]
193
+ [--slug <slug>] [--json] [--text] [--no-color]
195
194
  ```
196
195
 
197
196
  | Input mode | Behavior |
@@ -213,9 +212,9 @@ token. An explicit session ID takes precedence.
213
212
  `resume` provides the same reattachment contract as `chat --session`:
214
213
 
215
214
  ```text
216
- bdk resume [sessionId] [--url <baseUrl> | --prod]
215
+ bdk resume [sessionId] [--url <baseUrl>]
217
216
  [--message <text>] [--json] [--text]
218
- [--continuation-token <token>] [--slug <slug>] [--team <id>]
217
+ [--continuation-token <token>] [--slug <slug>]
219
218
  ```
220
219
 
221
220
  Omit the session ID to select the most recently updated followable session.
@@ -237,27 +236,28 @@ bdk run [--dir <path>] [--message <text>]...
237
236
 
238
237
  | Option | Contract |
239
238
  | --- | --- |
240
- | `--message <text>` | Send a user message. Repeat it for a multi-turn local or `--url` run. Managed starts accept one message. |
239
+ | `--message <text>` | Send a user message. Repeat it for a multi-turn local or `--url` run. `--prod` starts accept one message. |
241
240
  | `--messages-file <path>` | Read a JSON array of strings. File messages run before repeated `--message` values. |
242
- | `--session <id>` | Continue a session. Managed session starts accept a hosted `ses_...` ID. |
243
- | `--continuation-token <token>` | Continue the session selected by `--session` on a running server. Managed session starts use `--session` instead. |
241
+ | `--session <id>` | Continue a session. With `--prod`, pass a hosted `ses_...` ID. |
242
+ | `--continuation-token <token>` | Continue the session selected by `--session` on a running server. `--prod` starts use `--session` instead. |
244
243
  | `--events <file>` | Write the raw NDJSON stream to this path. |
245
244
  | `--no-events` | Skip the NDJSON trace. |
246
245
  | `--text` | Print a compact trajectory instead of JSON. |
247
246
  | `--timeout-ms <n>` | Stop waiting after a positive number of milliseconds. There is no default timeout. |
248
247
  | `--no-stream` | Hide live tool and reply progress on stderr. |
249
- | `--dry-run` | Mark a managed session turn as non-mutating. |
250
- | `--as-of <instant>` | Freeze a managed session's clock at a timezone-bearing ISO-8601 instant. |
251
- | `--component <key>` | Select a managed application's component instead of its default. |
248
+ | `--dry-run` | Mark a `--prod` turn as non-mutating. |
249
+ | `--as-of <instant>` | Freeze a `--prod` session's clock at a timezone-bearing ISO-8601 instant. |
250
+ | `--component <key>` | Select a hosted deployment's component instead of its default. |
252
251
 
253
252
  For local and running-server targets, JSON output contains `ok`, `sessionId`,
254
253
  `continuationToken`, `trace`, `playgroundUrl`, `playgroundHint`, `visualize`,
255
254
  and `trajectory`. The `trace` value gives the saved path when event output is
256
- enabled. A managed session start confirms acceptance; a continuation also
257
- returns `sessionId`. Managed starts return before the turn finishes and ignore
258
- `--events`, `--no-events`, `--text`, `--timeout-ms`, and `--no-stream`.
259
- A successful managed start exits `0` on acceptance, before its turn outcome is
260
- known. A fresh start doesn't return `sessionId` synchronously.
255
+ enabled. With `--prod`, `run` prints a `deliveryId` when the deployment accepts
256
+ the turn and returns before the turn finishes. A fresh start has no
257
+ `sessionId` yet, even with `--dry-run`; a continuation includes it. `--prod`
258
+ starts ignore `--events`, `--no-events`, `--text`, `--timeout-ms`, and
259
+ `--no-stream`, and a successful start exits `0` before the turn outcome is
260
+ known. See [Verify a hosted turn](../deployment.md#verify-a-hosted-turn).
261
261
 
262
262
  ### Call a tool {#call}
263
263
 
@@ -265,8 +265,8 @@ known. A fresh start doesn't return `sessionId` synchronously.
265
265
 
266
266
  ```text
267
267
  bdk call <tool> [--input <json>]
268
- [--dir <path> | --url <baseUrl> | --prod]
269
- [--session <id>] [--slug <slug>] [--team <id>]
268
+ [--dir <path> | --url <baseUrl>]
269
+ [--session <id>] [--slug <slug>]
270
270
  ```
271
271
 
272
272
  `--input` accepts JSON and defaults to `{}`. `--session` uses the session
@@ -274,6 +274,9 @@ workspace and records the call on its event stream. The command prints the
274
274
  server's JSON response and succeeds only when the HTTP response succeeds with
275
275
  `ok: true`.
276
276
 
277
+ Hosted deployments don't support `call`. Start a model turn with `run --prod`
278
+ and check it with [`session`](#session).
279
+
277
280
  See [Tools](./tools.md#call-a-tool-without-a-model-turn) for validation,
278
281
  busy-session behavior, and error codes.
279
282
 
@@ -282,8 +285,8 @@ busy-session behavior, and error codes.
282
285
  `skill` reads an authored skill without a model turn:
283
286
 
284
287
  ```text
285
- bdk skill <name> [--dir <path> | --url <baseUrl> | --prod]
286
- [--slug <slug>] [--team <id>] [--text]
288
+ bdk skill <name> [--dir <path> | --url <baseUrl>]
289
+ [--slug <slug>] [--text]
287
290
  ```
288
291
 
289
292
  The default output is the server's JSON response. `--text` prints the rendered
@@ -292,14 +295,18 @@ The default output is the server's JSON response. `--text` prints the rendered
292
295
  ### List sessions {#sessions}
293
296
 
294
297
  ```text
295
- bdk sessions [--url <baseUrl> | --prod]
296
- [--slug <slug>] [--team <id>] [--bearer-token <token>] [--json]
298
+ bdk sessions [--url <baseUrl>]
299
+ [--slug <slug>] [--bearer-token <token>] [--json]
297
300
  ```
298
301
 
299
302
  Text output shows the session ID, channel, mode, turn count, running status,
300
303
  and update time. `--json` prints `{ sessions }`, including continuation
301
304
  tokens.
302
305
 
306
+ Hosted deployments don't support `sessions`. Find a hosted session in the
307
+ deployment's **Sessions** list in the dashboard, then check it with
308
+ [`session <sessionId> --prod`](#session).
309
+
303
310
  ### Inspect a session {#session}
304
311
 
305
312
  ```text
@@ -318,29 +325,31 @@ bdk session --prod [<sessionId>] --slug <slug> --message <text>
318
325
  | `--json` | Print the trajectory object. |
319
326
  | `--events` | Print `{ sessionId, events }` with the raw event list. |
320
327
  | `--out <file.ndjson>` | Write the raw NDJSON trace instead of printing it. |
321
- | `--prod --message <text>` | Start a managed session or continue the supplied managed session ID. |
328
+ | `--prod --message <text>` | Start a hosted session or continue the supplied hosted session ID. |
322
329
 
323
- `--events` and `--json` are mutually exclusive. Managed sessions without an
324
- event trajectory return hosted execution status and logs in text or JSON;
325
- `--events` and `--out` require an event trajectory. Use [`resume`](#resume) to
326
- continue a conversational session.
330
+ `--events` and `--json` are mutually exclusive. With `--prod`, the command
331
+ prints the session's runs and logs in text or JSON, and `--events` and `--out`
332
+ aren't available. While a hosted turn is running, text output also reports the
333
+ event count so far and prints `Turn running; runs may lag behind events.` Use
334
+ [`resume`](#resume) to continue a conversational session.
327
335
 
328
336
  ### Follow logs {#logs}
329
337
 
330
338
  ```text
331
- bdk logs [--url <baseUrl> | --prod]
332
- [--slug <slug>] [--team <id>] [--once] [--json]
339
+ bdk logs [--url <baseUrl>]
340
+ [--slug <slug>] [--once] [--json]
333
341
  ```
334
342
 
335
343
  The command follows logs until Ctrl-C. `--once` prints the current buffer and
336
- exits; `--json` emits newline-delimited JSON events. A hosted deployment
337
- reports deployment progress before runtime logs become available.
344
+ exits; `--json` emits newline-delimited JSON events. For a hosted deployment,
345
+ use [`deployment`](#deployment) for rollout status and
346
+ [`session <sessionId> --prod`](#session) for a session's runs and logs.
338
347
 
339
348
  ### Report costs {#cost}
340
349
 
341
350
  ```text
342
- bdk cost [sessionId] [--url <baseUrl> | --prod]
343
- [--slug <slug>] [--team <id>] [--json]
351
+ bdk cost [sessionId] [--url <baseUrl>]
352
+ [--slug <slug>] [--json]
344
353
  ```
345
354
 
346
355
  With a session ID, `cost` prints per-turn token usage and estimated cost.
@@ -358,6 +367,8 @@ bdk playground [--url <baseUrl> | --prod] [--session <id>]
358
367
  The command prints the playground URL and opens it unless `--print` is set.
359
368
  `--session` opens a deep link. A running target with credentials that a
360
369
  browser can't send starts a loopback proxy and stays open until Ctrl-C.
370
+ `--session` links for a hosted deployment may not open yet; check that session
371
+ with [`session <sessionId> --prod`](#session) instead.
361
372
 
362
373
  ### Inspect a trajectory {#trajectory}
363
374
 
@@ -380,8 +391,7 @@ bdk eval [--dir <path>] [evalId...]
380
391
  [--timeout-ms <n>] [--strict] [--max-concurrency <n>]
381
392
  [--junit <path>] [--artifacts <dir> | --no-artifacts]
382
393
  [--skip-report] [--out <file.json>] [--no-stream]
383
- [--url <baseUrl> | --prod] [--no-wait]
384
- [--slug <slug>] [--team <id>]
394
+ [--url <baseUrl>] [--no-wait] [--slug <slug>]
385
395
  ```
386
396
 
387
397
  Select an exact case such as `weather/nyc`, a file prefix such as `weather`,
@@ -404,22 +414,18 @@ between 1 and 200.
404
414
  | `--no-artifacts` | Skip artifacts for an ephemeral local run. |
405
415
  | `--skip-report` | Ignore reporters from eval files and the eval config during an ephemeral local run. |
406
416
  | `--out <file.json>` | Also write the full result JSON. |
407
- | `--no-wait` | Return after a running server or hosted deployment accepts the batch. |
417
+ | `--no-wait` | Return after a running server accepts the batch. |
408
418
 
409
- A running server or hosted deployment prints its Eval ID when it accepts the
410
- batch.
419
+ A running server prints its Eval ID when it accepts the batch.
411
420
  Use these commands to inspect or cancel it:
412
421
 
413
422
  ```text
414
- bdk eval status [evalId] --prod [--slug <slug>] [--team <id>]
415
423
  bdk eval status [evalId] --url <baseUrl>
416
- bdk eval cancel <evalId> --prod [--slug <slug>] [--team <id>]
417
424
  bdk eval cancel <evalId> --url <baseUrl>
418
425
  ```
419
426
 
420
427
  `eval status` without an ID lists recent remote runs. `eval status --out`
421
- requires an ID. The `status` and `cancel` subcommands require `--url` or
422
- `--prod`.
428
+ requires an ID. The `status` and `cancel` subcommands require `--url`.
423
429
 
424
430
  ## Projects
425
431
 
@@ -571,7 +577,7 @@ service-account API key with agent access can deploy.
571
577
  | `--repo <https-url>` | Set the source repository. The CLI infers it from the current checkout when possible. HTTPS is required. |
572
578
  | `--ref <git-ref>` | Set the source Git ref. The CLI infers the current branch when possible. |
573
579
  | `--path <agent-path>` | Set the project path relative to the repository root. |
574
- | `--cursor-events-repo <owner/name>` | Add a repository whose SCM events reach the deployment. Repeat for multiple repositories. |
580
+ | `--cursor-events-repo <owner/name>` | Watch a repository's Cursor events. Repeat the flag for each repository; the repositories you pass replace the previous list. Without the flag, the deployment watches its GitHub source repository. |
575
581
  | `--allow-domain <domain>` | Add an egress hostname. Repeat for multiple domains; values are combined with `hosting.egressDomains`. |
576
582
  | `--no-wait` | Return after the deployment request is accepted. |
577
583
  | `--json` | Print one object for one target or an array for multiple targets. |
@@ -579,7 +585,8 @@ service-account API key with agent access can deploy.
579
585
  Deployment slugs contain lowercase letters, digits, `_`, or `-`, start with a
580
586
  letter or digit, and have at most 64 characters. Egress entries are lowercase
581
587
  hostnames with an alphabetic top-level domain; one leading `*.` wildcard is
582
- allowed, with at most 20 entries.
588
+ allowed, or a trailing `:port` for a protocol that is not HTTPS, with at most
589
+ 64 entries.
583
590
 
584
591
  By default, `deploy` waits until the deployment is running and exits nonzero
585
592
  if it reaches a failed state. A first deployment can return an alias token
@@ -614,8 +621,7 @@ bdk stop <slug> [--team <id>] [--no-wait] [--cancel-runs] [--json]
614
621
 
615
622
  The command waits for `stopped` by default. `--no-wait` returns after the
616
623
  request is accepted. `--cancel-runs` also requests cancellation of active
617
- runs and reminder wakes for a managed application. Other deployment types
618
- reject this option.
624
+ runs and reminder wakes.
619
625
 
620
626
  ### Cancel active runs {#cancel-runs}
621
627
 
@@ -623,8 +629,8 @@ reject this option.
623
629
  bdk cancel-runs <slug> [--team <id>] [--json]
624
630
  ```
625
631
 
626
- The command requests cancellation for a managed application's active runs and
627
- reminder wakes. Other deployment types reject it. For a multi-tenant
632
+ The command requests cancellation for a deployment's active runs and reminder
633
+ wakes. For a multi-tenant
628
634
  application, this cancels every install; use `stop --cancel-runs` for
629
635
  install-local cancellation. It exits nonzero if any cancellation request fails
630
636
  to start.
@@ -636,11 +642,11 @@ bdk event-repos <slug> [--repo <owner/name>]...
636
642
  [--team <id>] [--json]
637
643
  ```
638
644
 
639
- The supplied repositories replace the managed application's complete event
640
- repository list; they aren't merged with the previous list. Omit `--repo` to
641
- clear the list.
645
+ The supplied repositories replace the deployment's complete event repository
646
+ list; they aren't merged with the previous list. Omit `--repo` to clear the
647
+ list.
642
648
 
643
- ### Upgrade a managed application {#upgrade}
649
+ ### Upgrade a deployment {#upgrade}
644
650
 
645
651
  ```text
646
652
  bdk upgrade <slug> [--release <id-or-version>]
@@ -695,11 +701,8 @@ most 4096 bytes, and each deployment holds at most 32 secrets.
695
701
  ### Connect an MCP client {#mcp}
696
702
 
697
703
  ```text
698
- bdk mcp --prod [--slug <slug>] [--team <id>]
699
704
  bdk mcp --url <baseUrl> [--bearer-token <token>]
700
705
 
701
- bdk mcp install --prod [--slug <slug>] [--team <id>]
702
- [--name <server-name>] [--print] [--json] [--remote]
703
706
  bdk mcp install --url <baseUrl> [--bearer-token <token>]
704
707
  [--name <server-name>] [--print] [--json]
705
708
  ```
@@ -708,7 +711,6 @@ bdk mcp install --url <baseUrl> [--bearer-token <token>]
708
711
  | --- | --- |
709
712
  | `mcp` | Read newline-delimited JSON-RPC from stdin and proxy it to the selected agent's MCP endpoint. stdout is reserved for MCP messages. A target is required. |
710
713
  | `mcp install` | Add the selected agent to `~/.cursor/mcp.json`. `--name` sets the server name, `--print` previews the entry, and `--json` prints a machine-readable result. A `--url` entry with `--bearer-token` contains that token; handle printed and written copies as credentials. |
711
- | `mcp install --remote --prod` | Write a remote HTTP entry for clients that can't spawn a stdio process. The entry contains the API key in plain text and must be handled as a credential. |
712
714
 
713
715
  ### Authorize MCP OAuth {#mcp-oauth}
714
716
 
@@ -723,7 +725,7 @@ bdk mcp oauth <connection> [--dir <path>] [--store]
723
725
  | Connection | Result |
724
726
  | --- | --- |
725
727
  | `defineConnection({ url, oauth: true })` | Open a browser PKCE flow and save tokens in `mcp-auth.json` under the CLI config directory. `--store` also sets the matching deployment secrets. |
726
- | `defineConnection({ cursorAccount: true })` | Authorize the managed deployment's service account through Cursor. `--store` isn't needed. |
728
+ | `defineConnection({ cursorAccount: true })` | Authorize the hosted deployment's service account through Cursor. `--store` isn't needed. |
727
729
 
728
730
  Stored secret names are `MCP_OAUTH_<NAME>_ACCESS_TOKEN`,
729
731
  `MCP_OAUTH_<NAME>_REFRESH_TOKEN`, and `MCP_OAUTH_<NAME>_CLIENT_ID`. Declare
@@ -28,11 +28,37 @@ import { defineConnection } from "@cursor/bdk/connections";
28
28
 
29
29
  export default defineConnection({
30
30
  url: "https://mcp.linear.app/mcp",
31
- headers: { authorization: `Bearer ${process.env.LINEAR_TOKEN}` },
31
+ headers: { authorization: "Bearer ${LINEAR_TOKEN}" },
32
32
  });
33
33
  ```
34
34
 
35
- Tokens come from env vars. Never hardcode them in the file.
35
+ ## Credentials in headers and env
36
+
37
+ Write a credential as a `${NAME}` template in `headers` on a remote
38
+ connection or in `env` on a stdio one. The connection stores the template
39
+ as you wrote it and reads `NAME` from the environment every time it opens a
40
+ client, so the value can arrive after the project loads.
41
+
42
+ ```ts
43
+ export default defineConnection({
44
+ command: "slack-mcp-server",
45
+ args: ["--transport", "stdio"],
46
+ env: { SLACK_MCP_XOXB_TOKEN: "${SLACK_BOT_TOKEN}" },
47
+ });
48
+ ```
49
+
50
+ That timing is the point of the template. Your connection file is imported
51
+ once, when the project loads, and a hosted deployment has none of its
52
+ secrets in the environment yet, because the platform passes them to the
53
+ agent per request. So a `process.env.SLACK_BOT_TOKEN` read at the top of
54
+ the file captures an empty string and keeps sending it for the life of the
55
+ process, while the same file works locally because `.env.local` was read
56
+ before the import. The template form is right in both places.
57
+
58
+ `bdk validate` warns about a template the environment does not define and
59
+ names the variable. It stays a warning rather than an error, since a
60
+ hosted deployment resolves it later. An unset variable resolves to an
61
+ empty value at connect time, which the server reports as an auth failure.
36
62
 
37
63
  ## Host MCP OAuth
38
64
 
@@ -270,19 +270,18 @@ disables them. This location is independent of `--state-root`.
270
270
 
271
271
  ## Run evals against a server
272
272
 
273
- The playground **Evals** view starts batches on its running server.
274
- `--url` targets a named running server, and `--prod --slug <slug>`
275
- targets a hosted deployment.
273
+ The playground **Evals** view starts batches on its running server, and
274
+ `--url` targets a named running server:
276
275
 
277
276
  ```text
278
- bdk eval --prod --slug vulnerability-scanner --tag smoke
279
- bdk eval status <eval-id> --prod --slug vulnerability-scanner
280
- bdk eval cancel <eval-id> --prod --slug vulnerability-scanner
277
+ bdk eval --url http://127.0.0.1:3000/vulnerability-scanner --tag smoke
278
+ bdk eval status <eval-id> --url http://127.0.0.1:3000/vulnerability-scanner
279
+ bdk eval cancel <eval-id> --url http://127.0.0.1:3000/vulnerability-scanner
281
280
  ```
282
281
 
283
282
  Server-side batches use the target's discovered cases and return an eval
284
283
  ID for `status` or `cancel`. Local reporter and concurrency flags don't
285
- apply to `--url` or `--prod` runs.
284
+ apply to `--url` runs.
286
285
 
287
286
  ## Related
288
287
 
@@ -78,8 +78,9 @@ want the final text; `message.completed` already has it.
78
78
  | `message.received` | `{ text }` |
79
79
  | `turn.completed` | `{ result?, usage?, cost? }`. `usage` has `inputTokens`, `outputTokens`, `cacheReadTokens`, `cacheWriteTokens`, and optional `reasoningTokens`. `cost` has `totalUsd` and the `model` it was priced against |
80
80
  | `turn.failed` | `{ message, status? }`. `status` is `"error"` or `"cancelled"` when present |
81
- | `actions.requested` | `{ calls: [{ callId, toolName, args?, parentCallId? }], parentCallId? }`. `parentCallId` marks subagent work |
82
- | `action.result` | `{ callId, toolName, output?, isError, stubbed?, parentCallId? }`. `stubbed` means a dry-run session answered a write without running it |
81
+ | `actions.requested` | `{ calls: [{ callId, toolName, args?, parentCallId? }], parentCallId? }`. One envelope per model step once that step has listed its tools. A single tool is a batch of one. `parentCallId` marks subagent work |
82
+ | `actions.completed` | `{ results: [{ callId, toolName, output?, isError, stubbed?, parentCallId? }], parentCallId? }`. Pair with `actions.requested`; emitted when every call in that batch has a result |
83
+ | `action.result` | `{ callId, toolName, output?, isError, stubbed?, parentCallId? }`. Live per-call envelope for chips and spans. `stubbed` means a dry-run session answered a write without running it |
83
84
 
84
85
  The types are `SessionEvent`, `SessionEventType`, and `HookContext`,
85
86
  exported from `@cursor/bdk`.
@@ -90,13 +90,14 @@ within one session. The `at` field is an ISO-8601 timestamp.
90
90
  | Steps | `step.started`, `step.completed` | Model step boundaries and duration |
91
91
  | Reasoning | `reasoning.appended`, `reasoning.completed` | Streamed reasoning blocks |
92
92
  | Reply | `message.appended`, `message.completed` | Text deltas and finalized assistant messages |
93
- | Tools | `actions.requested`, `action.result` | Tool names, validated arguments, outputs, and errors |
93
+ | Tools | `actions.requested`, `actions.completed`, `action.result` | Tool names, validated arguments, outputs, and errors |
94
94
  | Approvals | `action.approval_requested`, `action.approval_resolved` | A parked tool call and the human decision |
95
95
  | Subagents | `subagent.called`, `subagent.completed` | Delegated work |
96
96
  | Artifacts | `artifact.tagged` | A durable [artifact](./artifacts.md) was tagged for this session, by host code or `tag_artifact` |
97
97
 
98
- Pair `actions.requested` with `action.result` to reconstruct the tool
99
- trajectory. Read `turn.completed.data.usage` for input, output, and
98
+ Pair `actions.requested` with `actions.completed` for each model-step
99
+ batch. `action.result` is the live per-call envelope. Read
100
+ `turn.completed.data.usage` for input, output, and
100
101
  cache token counts. With `bot/result.ts`, `turn.failed` is emitted when
101
102
  `commit` throws, the turn has no assistant text, or `ctx.reject(message)`
102
103
  doesn't lead to an accepted revision.
@@ -35,6 +35,7 @@ Match the visible symptom below. The `bdk` binary ships with
35
35
  | File reads and greps fail repeatedly with `NGHTTP2_FRAME_SIZE_ERROR` | Run the agent under Node 22.13 or newer, never Bun. |
36
36
  | The turn immediately reports a missing API key | Set `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE`, or `CURSOR_SERVICE_ACCOUNT_KEY`, or run `bdk login`. |
37
37
  | Login succeeds but the model host rejects the key | Point login and model traffic at the same API host; check `CURSOR_API_BASE_URL` and `CURSOR_BACKEND_URL`. |
38
+ | The first turn reports `[resource_exhausted]` | Treat it as a capacity-shaped error. For a GitHub wake, also check the connected GitHub credential and any GitHub `429` rate limit before assuming the model quota is exhausted. |
38
39
 
39
40
  ## A turn behaves unexpectedly
40
41
 
@@ -61,9 +62,12 @@ Match the visible symptom below. The `bdk` binary ships with
61
62
  | What you see | What to do |
62
63
  | --- | --- |
63
64
  | Local changes do not appear after deploy | `deploy` reads a pushed Git ref, not the working tree. Commit and push the intended ref, then deploy it again. |
64
- | The deployment never becomes running | Run `bdk deployment <slug>` and `bdk logs --prod --slug <slug>`, then act on the reported build or startup error. |
65
+ | The deployment never becomes running | Run `bdk deployment <slug>`, then act on the reported build or startup error. |
65
66
  | 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. |
66
- | Cursor events stopped after redeploy | Redeploy replaces CLI-supplied event repositories. Pass every `--cursor-events-repo` value again. |
67
+ | 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. |
68
+ | `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). |
69
+ | 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. |
70
+ | A dashboard link to a single session returns 404 | Check the session with `bdk session <sessionId> --prod --slug <slug>`. |
67
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. |
68
72
 
69
73
  See [Deployment](./deployment.md) for source, credential, and
@@ -86,7 +90,7 @@ direct webhooks.
86
90
  | What you see | What to do |
87
91
  | --- | --- |
88
92
  | 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. |
89
- | `slack create` is waiting for workspace approval | Open the approval link printed by the CLI, keep the command running, and retry after an admin approves. |
93
+ | `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). |
90
94
  | The bot ignores ordinary channel posts | Configure `engagement.channelPosts`, create the app with `--channel-posts`, and invite it to every allowed channel. |
91
95
  | Approval buttons do nothing | Set `toolApprovals: true`, then recreate the app if its interactivity is not enabled. |
92
96
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cursor/bdk",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "(early alpha) Filesystem-first framework for defining Cursor agents as markdown and TypeScript and serving them over channels with the Cursor SDK.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -25,7 +25,6 @@
25
25
  "!dist/internal/tenant-mcp/**",
26
26
  "!dist/internal/tenant-slack/**",
27
27
  "!dist/internal/grokbot/**",
28
- "!dist/extensions/cursor-grokbot-agents/**",
29
28
  "!dist/internal/review-comments*",
30
29
  "!dist/internal/shallow-clone.*",
31
30
  "!dist/internal/managed-delivery.*",
@@ -34,7 +33,6 @@
34
33
  "!src/internal/tenant-mcp/**",
35
34
  "!src/internal/tenant-slack/**",
36
35
  "!src/internal/grokbot/**",
37
- "!src/extensions/cursor-grokbot-agents/**",
38
36
  "!src/internal/review-comments*",
39
37
  "!src/internal/shallow-clone.ts",
40
38
  "!src/internal/managed-delivery.ts",
@@ -314,7 +312,7 @@
314
312
  },
315
313
  "dependencies": {
316
314
  "@bazel/runfiles": "6.5.0",
317
- "@cursor/sdk": "1.0.31",
315
+ "@cursor/sdk": "1.0.32",
318
316
  "@modelcontextprotocol/sdk": "1.25.1",
319
317
  "@octokit/auth-app": "^7.2.0",
320
318
  "@octokit/rest": "^21.1.1",
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * postinstall: copy Agent SDK coding-agent skills into ~/.cursor/skills/agentsdk
3
+ * postinstall: copy BDK coding-agent skills into ~/.cursor/skills/bdk
4
4
  * so Cursor discovers them after `npm install` / `npx @cursor/bdk`.
5
5
  *
6
6
  * Never fails the package install. No-op in the monorepo source checkout
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-create-agent
2
+ name: bdk-create-agent
3
3
  description: >-
4
4
  Scaffold a new BDK agent: short AskQuestion interview, then
5
5
  verify a turn and hand off to hillclimb. Use when creating a new
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-debug
2
+ name: bdk-debug
3
3
  description: >-
4
4
  Diagnose a misbehaving local BDK agent: blank playground,
5
5
  missing sessions, failed reads, webhook 401s, 403/409, lost
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-deploy
2
+ name: bdk-deploy
3
3
  description: >-
4
4
  Deploy or redeploy an BDK project to Cursor-managed hosting
5
5
  with an attached service account. Use when asked to deploy,
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-evals
2
+ name: bdk-evals
3
3
  description: >-
4
4
  Author and run defineEval cases. Use when writing, fixing, seeding,
5
5
  or hillclimbing evals. Ask whether to generate samples or take
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-framework-map
2
+ name: bdk-framework-map
3
3
  description: >-
4
4
  Orient on BDK layout, local runtime, sessions, and
5
5
  invariants (Node not Bun, root evals/, typecheck after tsx,
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-github
2
+ name: bdk-github
3
3
  description: >-
4
4
  Build and test GitHub-driven BDK agents: githubChannel hooks
5
5
  (auth turn vs host task), cursorAccount / --cursor-events, and
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-hillclimb
2
+ name: bdk-hillclimb
3
3
  description: >-
4
4
  Improve one existing BDK agent: pin fixtures, measure, change
5
5
  one lever, remeasure, lock the win with an eval. Use when an agent
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-mcp-auth
2
+ name: bdk-mcp-auth
3
3
  description: >-
4
4
  Authorize host MCP OAuth for defineConnection({ url, oauth: true }):
5
5
  bdk mcp oauth, local tokens, --store, advertiseTools, egress.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-otel
2
+ name: bdk-otel
3
3
  description: >-
4
4
  Wire OpenTelemetry export (OTLP env, serve({ otel }), traces/metrics/logs,
5
5
  ctx.host.otel). Use when adding collector export or custom metrics.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agentsdk-setup-slack
2
+ name: bdk-setup-slack
3
3
  description: >-
4
4
  Wire Slack to an BDK agent. Mint a dedicated Socket Mode app
5
5
  with slack create, then doctor and smoke. Use slack init --manual
package/src/artifacts.ts CHANGED
@@ -39,7 +39,10 @@ export type {
39
39
  ArtifactTagInput,
40
40
  } from "./types.js";
41
41
 
42
- /** Default {@link ArtifactsConfig.max} retention cap. */
42
+ /**
43
+ * Default {@link ArtifactsConfig.max}. Architecture v1 and self-hosted v2
44
+ * evict to this cap. Hosted architecture v2 does not evict.
45
+ */
43
46
  export const ARTIFACTS_DEFAULT_MAX = 1_000;
44
47
 
45
48
  export function defineArtifacts(config: ArtifactsConfig): ArtifactsDefinition {
@@ -59,7 +62,7 @@ export function defineArtifacts(config: ArtifactsConfig): ArtifactsDefinition {
59
62
  return brandDefinition("artifacts", config);
60
63
  }
61
64
 
62
- /** Effective retention cap for a config (default {@link ARTIFACTS_DEFAULT_MAX}). */
65
+ /** Effective cap where eviction still runs (default {@link ARTIFACTS_DEFAULT_MAX}). */
63
66
  export function resolveArtifactsMax(config: ArtifactsConfig | undefined): number {
64
67
  return config?.max ?? ARTIFACTS_DEFAULT_MAX;
65
68
  }