@cursor/bdk 0.2.11 → 0.2.13

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 (457) hide show
  1. package/dist/bin/agent-serve.js +28 -26
  2. package/dist/channels/bitbucket/api.js +8 -8
  3. package/dist/channels/bitbucket/binding.js +4 -4
  4. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  5. package/dist/channels/bitbucket/bitbucket-webhook.js +1 -1
  6. package/dist/channels/bitbucket/checks.js +1 -1
  7. package/dist/channels/bitbucket/cursor-account.js +1 -1
  8. package/dist/channels/bitbucket/events.js +1 -1
  9. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  10. package/dist/channels/checks.js +2 -2
  11. package/dist/channels/deployments/deployments-channel.js +1 -1
  12. package/dist/channels/github/cursor-account.js +3 -3
  13. package/dist/channels/github/defaults.js +3 -3
  14. package/dist/channels/github/events.js +1 -1
  15. package/dist/channels/github/forward.js +8 -8
  16. package/dist/channels/github/github-channel.js +2 -2
  17. package/dist/channels/github/index.d.ts +22 -12
  18. package/dist/channels/github/index.d.ts.map +1 -1
  19. package/dist/channels/github/index.js +11 -12
  20. package/dist/channels/gitlab/binding.js +4 -4
  21. package/dist/channels/gitlab/checks.js +1 -1
  22. package/dist/channels/gitlab/cursor-account.js +1 -1
  23. package/dist/channels/gitlab/events.js +1 -1
  24. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  25. package/dist/channels/gitlab/gitlab-webhook.js +1 -1
  26. package/dist/channels/gitlab/replay.js +2 -2
  27. package/dist/channels/origin/binding.js +3 -3
  28. package/dist/channels/origin/checks.js +1 -1
  29. package/dist/channels/origin/cursor-account.js +1 -1
  30. package/dist/channels/origin/events.js +1 -1
  31. package/dist/channels/origin/index.d.ts +21 -11
  32. package/dist/channels/origin/index.d.ts.map +1 -1
  33. package/dist/channels/origin/index.js +10 -11
  34. package/dist/channels/origin/origin-channel.js +1 -1
  35. package/dist/channels/origin/origin-webhook.js +2 -2
  36. package/dist/channels/slack/agentic-delivery.js +3 -3
  37. package/dist/channels/slack/agentic-signals.js +1 -1
  38. package/dist/channels/slack/api.js +5 -5
  39. package/dist/channels/slack/approvals.js +1 -1
  40. package/dist/channels/slack/attachments.js +3 -3
  41. package/dist/channels/slack/blocks.js +3 -3
  42. package/dist/channels/slack/bot-mentions.js +4 -4
  43. package/dist/channels/slack/channel-watch.js +4 -4
  44. package/dist/channels/slack/cli-project.js +3 -3
  45. package/dist/channels/slack/dispatch.js +1 -1
  46. package/dist/channels/slack/doctor.js +1 -1
  47. package/dist/channels/slack/eval-directive.js +1 -1
  48. package/dist/channels/slack/footer.js +1 -1
  49. package/dist/channels/slack/interactive.js +2 -2
  50. package/dist/channels/slack/log.d.ts.map +1 -1
  51. package/dist/channels/slack/log.js +1 -1
  52. package/dist/channels/slack/manifest.js +1 -1
  53. package/dist/channels/slack/nudge-carrier.js +1 -1
  54. package/dist/channels/slack/nudge-store.js +2 -2
  55. package/dist/channels/slack/recording-sink.js +6 -6
  56. package/dist/channels/slack/reply-options.js +6 -6
  57. package/dist/channels/slack/self-identity.d.ts +7 -4
  58. package/dist/channels/slack/self-identity.d.ts.map +1 -1
  59. package/dist/channels/slack/self-identity.js +17 -8
  60. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  61. package/dist/channels/slack/sender-name.js +2 -6
  62. package/dist/channels/slack/setup.d.ts.map +1 -1
  63. package/dist/channels/slack/setup.js +1 -1
  64. package/dist/channels/slack/slack-channel.js +2 -2
  65. package/dist/channels/slack/socket-mode.js +2 -2
  66. package/dist/channels/slack/thread-context.js +8 -8
  67. package/dist/channels/slack/tool-cards.js +1 -1
  68. package/dist/channels/slack/user-info.d.ts +2 -1
  69. package/dist/channels/slack/user-info.d.ts.map +1 -1
  70. package/dist/channels/slack/user-info.js +16 -1
  71. package/dist/channels.js +1 -1
  72. package/dist/docs/404.html +3 -3
  73. package/dist/docs/assets/{app.DXI7bwox.js → app.CaLG1pPt.js} +4 -4
  74. package/dist/docs/assets/chunks/@localSearchIndexroot.DvlKuIO-.js +1 -0
  75. package/dist/docs/assets/chunks/{VPLocalSearchBox.BrbO5mEe.js → VPLocalSearchBox.YsP_2wqD.js} +2 -2
  76. package/dist/docs/assets/chunks/{arc.BOG1yms8.js → arc.C2j9hR7c.js} +1 -1
  77. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C0hsMZnZ.js → architectureDiagram-Q4EWVU46.C5qkGp7y.js} +1 -1
  78. package/dist/docs/assets/chunks/{baseUniq.H044KjKs.js → baseUniq.U6GgTHOD.js} +1 -1
  79. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BsRW6GoB.js → blockDiagram-DXYQGD6D.D51mJop2.js} +1 -1
  80. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.B9HV5PFR.js → c4Diagram-AHTNJAMY.w1d6QxV7.js} +1 -1
  81. package/dist/docs/assets/chunks/channel.BRSFxCcD.js +1 -0
  82. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CPoT_ajl.js → chunk-4BX2VUAB.B_A815un.js} +1 -1
  83. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DZBwWuCL.js → chunk-4TB4RGXK.DMrm-ZCb.js} +1 -1
  84. package/dist/docs/assets/chunks/{chunk-55IACEB6.CZ3yTiyq.js → chunk-55IACEB6.8qw6Xdal.js} +1 -1
  85. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.6DfvHSd8.js → chunk-EDXVE4YY.Cq_nHODn.js} +1 -1
  86. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CpBj8HfK.js → chunk-FMBD7UC4.B67ohCYn.js} +1 -1
  87. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BdKo8YqS.js → chunk-OYMX7WX6.Bo8rQI8F.js} +1 -1
  88. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnXNyxJx.js → chunk-QZHKN3VN.BERUMfE9.js} +1 -1
  89. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cg1OcF8G.js → chunk-YZCP3GAM.DWG2tXIX.js} +1 -1
  90. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Cmtm6WkN.js +1 -0
  91. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Cmtm6WkN.js +1 -0
  92. package/dist/docs/assets/chunks/clone.JMC96Eo6.js +1 -0
  93. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.1SP8al9c.js → cose-bilkent-S5V4N54A.tezXBs9b.js} +1 -1
  94. package/dist/docs/assets/chunks/{dagre-KV5264BT.DS1L6hJt.js → dagre-KV5264BT.aSbEUwT7.js} +1 -1
  95. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.ChsausbG.js → diagram-5BDNPKRD.vnT6aJ57.js} +1 -1
  96. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.3XsptNWj.js → diagram-G4DWMVQ6.hGYdrDa2.js} +1 -1
  97. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DPA9Dk_P.js → diagram-MMDJMWI5.CmdSUP6L.js} +1 -1
  98. package/dist/docs/assets/chunks/{diagram-TYMM5635.BVswXWrB.js → diagram-TYMM5635.BbAnLEBB.js} +1 -1
  99. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BSak5OSP.js → erDiagram-SMLLAGMA.H40W4HWE.js} +1 -1
  100. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CQgN4TTz.js → flowDiagram-DWJPFMVM.BFMtUSv-.js} +1 -1
  101. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.GrT0kA4a.js → ganttDiagram-T4ZO3ILL.CbYiu7Dt.js} +1 -1
  102. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CdS7Ucll.js → gitGraphDiagram-UUTBAWPF.Cyc5mzZD.js} +1 -1
  103. package/dist/docs/assets/chunks/{graph.BVqKRmRo.js → graph.BRptDG1H.js} +1 -1
  104. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.C3C9FRto.js → infoDiagram-42DDH7IO.Bz6KCA3a.js} +1 -1
  105. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js → ishikawaDiagram-UXIWVN3A.DDJ_7_Fq.js} +1 -1
  106. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CaHMfK4b.js → journeyDiagram-VCZTEJTY.D0t_ltlb.js} +1 -1
  107. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CjhIUwcA.js → kanban-definition-6JOO6SKY.DyyNsMfi.js} +1 -1
  108. package/dist/docs/assets/chunks/{layout.CGU3gfSf.js → layout.Cbxq-Rhp.js} +1 -1
  109. package/dist/docs/assets/chunks/{linear.DaihpW_n.js → linear.DxGYL0MP.js} +1 -1
  110. package/dist/docs/assets/chunks/{min.BS-j8kHQ.js → min.DA5KL8wu.js} +1 -1
  111. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BVJ1Bbnk.js → mindmap-definition-QFDTVHPH.Bc72Utls.js} +1 -1
  112. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.Cz1WIv9r.js → pieDiagram-DEJITSTG.BtpHnIB_.js} +1 -1
  113. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DKLFxcjy.js → quadrantDiagram-34T5L4WZ.Cx4oCSRR.js} +1 -1
  114. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.BHegiK7x.js → requirementDiagram-MS252O5E.BC0hXWlW.js} +1 -1
  115. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DYkY6yPc.js → sankeyDiagram-XADWPNL6.Dg8T1SEp.js} +1 -1
  116. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DYQ1QUrI.js → sequenceDiagram-FGHM5R23.CWSdHYAF.js} +1 -1
  117. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.Iru8BsFo.js → stateDiagram-FHFEXIEX.0MVPRI28.js} +1 -1
  118. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.N4Am6sXd.js +1 -0
  119. package/dist/docs/assets/chunks/{theme.DaplWQhQ.js → theme.DO1avLBn.js} +2 -2
  120. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BwFA8hiX.js → timeline-definition-GMOUNBTQ.BuRinAVi.js} +1 -1
  121. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZ60W1C_.js → vennDiagram-DHZGUBPP.DXf0PCoJ.js} +1 -1
  122. package/dist/docs/assets/chunks/wardley-RL74JXVD._eATmGtu.js +162 -0
  123. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.B69D2r8-.js → wardleyDiagram-NUSXRM2D.T4ThngYV.js} +1 -1
  124. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CLPZEIU9.js → xychartDiagram-5P7HB3ND.b4pZF3D5.js} +1 -1
  125. package/dist/docs/assets/{reference_connections.md.Bljpve-y.js → reference_connections.md.DLrgAd5f.js} +1 -1
  126. package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.js → reference_hooks.md.B-eGa2km.js} +3 -3
  127. package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.lean.js → reference_hooks.md.B-eGa2km.lean.js} +1 -1
  128. package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.js → reference_sessions.md.CyM7ARz1.js} +1 -1
  129. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  130. package/dist/docs/assets/{reference_tools.md.v3SXVSs_.js → reference_tools.md.DzIY9JzY.js} +3 -3
  131. package/dist/docs/assets/{reference_tools.md.v3SXVSs_.lean.js → reference_tools.md.DzIY9JzY.lean.js} +1 -1
  132. package/dist/docs/assets/{style.C130MVnH.css → style.Dwls12uf.css} +1 -1
  133. package/dist/docs/building-with-agents.html +37 -37
  134. package/dist/docs/deployment.html +37 -37
  135. package/dist/docs/evals.html +37 -37
  136. package/dist/docs/guides/agent-to-agent.html +37 -37
  137. package/dist/docs/guides/bitbucket.html +37 -37
  138. package/dist/docs/guides/cloud-agents.html +37 -37
  139. package/dist/docs/guides/convert-automation.html +37 -37
  140. package/dist/docs/guides/github.html +37 -37
  141. package/dist/docs/guides/gitlab.html +37 -37
  142. package/dist/docs/guides/grokbot-agents.html +37 -37
  143. package/dist/docs/guides/hooks.html +37 -37
  144. package/dist/docs/guides/improve.html +37 -37
  145. package/dist/docs/guides/jev.html +37 -37
  146. package/dist/docs/guides/mcp-oauth.html +37 -37
  147. package/dist/docs/guides/migrate.html +37 -37
  148. package/dist/docs/guides/opentelemetry.html +37 -37
  149. package/dist/docs/guides/slack.html +37 -37
  150. package/dist/docs/guides/webhooks.html +37 -37
  151. package/dist/docs/hashmap.json +1 -1
  152. package/dist/docs/hillclimbing.html +37 -37
  153. package/dist/docs/index.html +37 -37
  154. package/dist/docs/llms-full.txt +15 -2
  155. package/dist/docs/quickstart.html +37 -37
  156. package/dist/docs/reference/agent-config.html +37 -37
  157. package/dist/docs/reference/artifacts.html +37 -37
  158. package/dist/docs/reference/channels.html +37 -37
  159. package/dist/docs/reference/cli.html +37 -37
  160. package/dist/docs/reference/connections.html +39 -39
  161. package/dist/docs/reference/connections.md +2 -1
  162. package/dist/docs/reference/evals.html +37 -37
  163. package/dist/docs/reference/extensions.html +37 -37
  164. package/dist/docs/reference/hooks.html +39 -39
  165. package/dist/docs/reference/hooks.md +1 -0
  166. package/dist/docs/reference/http-api.html +37 -37
  167. package/dist/docs/reference/instructions.html +37 -37
  168. package/dist/docs/reference/playground.html +36 -36
  169. package/dist/docs/reference/project-layout.html +37 -37
  170. package/dist/docs/reference/prompt.html +37 -37
  171. package/dist/docs/reference/schedules.html +37 -37
  172. package/dist/docs/reference/sessions.html +37 -37
  173. package/dist/docs/reference/sessions.md +1 -1
  174. package/dist/docs/reference/skills.html +40 -40
  175. package/dist/docs/reference/subagents.html +37 -37
  176. package/dist/docs/reference/tools.html +39 -39
  177. package/dist/docs/reference/tools.md +11 -0
  178. package/dist/docs/templates/agentic-owners.html +37 -37
  179. package/dist/docs/templates/grokbot-agents.html +37 -37
  180. package/dist/docs/templates/security-reviewer.html +37 -37
  181. package/dist/docs/templates/thermo-quality-review.html +37 -37
  182. package/dist/docs/templates/thermo-review.html +37 -37
  183. package/dist/docs/templates/triage.html +37 -37
  184. package/dist/docs/troubleshooting.html +36 -36
  185. package/dist/evals/assertions.d.ts.map +1 -1
  186. package/dist/evals/assertions.js +21 -19
  187. package/dist/evals/expect.js +1 -1
  188. package/dist/evals/judge.js +1 -1
  189. package/dist/evals/reporters.js +8 -8
  190. package/dist/evals/run-facts.js +2 -2
  191. package/dist/evals.js +6 -6
  192. package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
  193. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  194. package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
  195. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +16 -0
  196. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  197. package/dist/extensions/cursor-cloud-agents/lib/backend.js +44 -3
  198. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  199. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts +23 -0
  200. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts.map +1 -0
  201. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.js +32 -0
  202. package/dist/extensions/cursor-cloud-agents/lib/repos.js +2 -2
  203. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -2
  204. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -1
  205. package/dist/extensions/cursor-cloud-agents/lib/watch.js +1 -1
  206. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  207. package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -8
  208. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  209. package/dist/extensions/cursor-grokbot-agents/extension.js +3 -3
  210. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  211. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +3 -3
  212. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +4 -4
  213. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  214. package/dist/extensions/improve/skills/yourself.js +1 -1
  215. package/dist/extensions/jev/extension.js +2 -2
  216. package/dist/extensions/jev/tools/evaluate.js +1 -1
  217. package/dist/extensions/slack-communication/tools/react.js +1 -1
  218. package/dist/files-backends/cursor-hosted.js +8 -8
  219. package/dist/files-backends/local-fs.js +1 -1
  220. package/dist/filesystem.d.ts.map +1 -1
  221. package/dist/filesystem.js +15 -15
  222. package/dist/internal/advertise-tools.d.ts +3 -2
  223. package/dist/internal/advertise-tools.d.ts.map +1 -1
  224. package/dist/internal/advertise-tools.js +11 -9
  225. package/dist/internal/approval-gate.js +1 -1
  226. package/dist/internal/artifacts-store.js +13 -13
  227. package/dist/internal/as-of.js +2 -2
  228. package/dist/internal/authored-alias-hooks.d.ts +4 -3
  229. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  230. package/dist/internal/authored-alias-hooks.js +16 -7
  231. package/dist/internal/authored-loaders.d.ts.map +1 -1
  232. package/dist/internal/authored-loaders.js +21 -5
  233. package/dist/internal/builtin-tools/reminders.js +2 -2
  234. package/dist/internal/chat-client.js +5 -5
  235. package/dist/internal/cli-ax.js +14 -14
  236. package/dist/internal/cli-bitbucket.js +10 -10
  237. package/dist/internal/cli-convert-automation.js +2 -2
  238. package/dist/internal/cli-cursor.js +2 -2
  239. package/dist/internal/cli-deploy.d.ts.map +1 -1
  240. package/dist/internal/cli-deploy.js +40 -40
  241. package/dist/internal/cli-docs.js +5 -5
  242. package/dist/internal/cli-github.js +15 -15
  243. package/dist/internal/cli-gitlab.js +10 -10
  244. package/dist/internal/cli-images.js +16 -16
  245. package/dist/internal/cli-manifest.js +1 -1
  246. package/dist/internal/cli-mcp-oauth.js +5 -5
  247. package/dist/internal/cli-mcp.js +3 -3
  248. package/dist/internal/cli-migrate.js +1 -1
  249. package/dist/internal/cli-skills.js +2 -2
  250. package/dist/internal/cli-slack.js +5 -5
  251. package/dist/internal/cloud-turn-cost.js +1 -1
  252. package/dist/internal/continuation-identity.js +6 -6
  253. package/dist/internal/conversation-mirror.js +5 -5
  254. package/dist/internal/convert-automation/convert-workflow.js +24 -24
  255. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  256. package/dist/internal/cursor/account-mcp.js +20 -20
  257. package/dist/internal/cursor/backend-client.js +6 -6
  258. package/dist/internal/cursor/credentials.js +1 -1
  259. package/dist/internal/cursor/store-api-client.js +1 -1
  260. package/dist/internal/cursor-account-mcp-auth.js +9 -9
  261. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  262. package/dist/internal/cursor-deployment-relay.js +9 -9
  263. package/dist/internal/cursor-event-relay.js +10 -10
  264. package/dist/internal/cursor-relay-core.js +2 -2
  265. package/dist/internal/deploy-manifest.d.ts +14 -0
  266. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  267. package/dist/internal/deploy-manifest.js +33 -10
  268. package/dist/internal/discovery/agent-config.js +2 -2
  269. package/dist/internal/discovery/agent.js +6 -6
  270. package/dist/internal/discovery/connections.js +5 -5
  271. package/dist/internal/discovery/cursor-plugin.js +12 -12
  272. package/dist/internal/discovery/extension-overlay.js +3 -3
  273. package/dist/internal/discovery/extensions.js +6 -6
  274. package/dist/internal/discovery/info.js +9 -9
  275. package/dist/internal/discovery/instructions.js +1 -1
  276. package/dist/internal/discovery/project.js +3 -3
  277. package/dist/internal/discovery/services.js +1 -1
  278. package/dist/internal/discovery/tools.js +1 -1
  279. package/dist/internal/docs-site.js +2 -2
  280. package/dist/internal/env-file.js +1 -1
  281. package/dist/internal/eval-run-store.js +7 -7
  282. package/dist/internal/eval-runner.d.ts.map +1 -1
  283. package/dist/internal/eval-runner.js +14 -14
  284. package/dist/internal/eval-transport.js +1 -1
  285. package/dist/internal/evals-client.d.ts.map +1 -1
  286. package/dist/internal/evals-client.js +4 -4
  287. package/dist/internal/event-log.js +8 -8
  288. package/dist/internal/event-mapper.js +13 -13
  289. package/dist/internal/expected-delivery-failure.js +2 -2
  290. package/dist/internal/filesystem/format.js +2 -2
  291. package/dist/internal/filesystem/nearest.js +3 -3
  292. package/dist/internal/filesystem/scratch.js +3 -3
  293. package/dist/internal/filesystem/tools.js +6 -6
  294. package/dist/internal/filesystem/walk.d.ts.map +1 -1
  295. package/dist/internal/filesystem/walk.js +2 -2
  296. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  297. package/dist/internal/framework-file-storage.js +6 -5
  298. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  299. package/dist/internal/framework-storage-selection.js +4 -2
  300. package/dist/internal/github-fanout.d.ts.map +1 -1
  301. package/dist/internal/github-fanout.js +3 -3
  302. package/dist/internal/guest-network.js +4 -4
  303. package/dist/internal/host-files.js +1 -1
  304. package/dist/internal/host-kv.js +2 -2
  305. package/dist/internal/hosted-catch-protocol.js +1 -1
  306. package/dist/internal/hosted-catch.js +1 -1
  307. package/dist/internal/hosted-delivery-protocol.d.ts +24 -0
  308. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  309. package/dist/internal/hosted-delivery-protocol.js +58 -14
  310. package/dist/internal/hosted-delivery.d.ts +6 -0
  311. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  312. package/dist/internal/hosted-delivery.js +64 -13
  313. package/dist/internal/hosted-eval-cases.js +4 -4
  314. package/dist/internal/hosted-execution-diag.js +3 -3
  315. package/dist/internal/hosted-managed-automation.d.ts +3 -3
  316. package/dist/internal/hosted-managed-automation.js +3 -3
  317. package/dist/internal/hosting.js +1 -1
  318. package/dist/internal/http-channel.js +1 -1
  319. package/dist/internal/http-control-plane-session.js +2 -2
  320. package/dist/internal/init-interview.js +7 -7
  321. package/dist/internal/init-project.d.ts.map +1 -1
  322. package/dist/internal/init-project.js +12 -12
  323. package/dist/internal/inline-stdio-mcp.js +2 -2
  324. package/dist/internal/install-cursor-skills.js +11 -11
  325. package/dist/internal/json-schema.js +1 -1
  326. package/dist/internal/local-control-plane.js +3 -3
  327. package/dist/internal/local-env.js +3 -3
  328. package/dist/internal/log-ring.js +1 -1
  329. package/dist/internal/logs-client.js +1 -1
  330. package/dist/internal/mcp-endpoint.js +8 -8
  331. package/dist/internal/mcp-host.d.ts.map +1 -1
  332. package/dist/internal/mcp-host.js +5 -5
  333. package/dist/internal/mcp-oauth-on-demand.js +3 -3
  334. package/dist/internal/mcp-oauth.js +5 -5
  335. package/dist/internal/net.js +2 -2
  336. package/dist/internal/otel/config.js +3 -3
  337. package/dist/internal/otel/runtime.js +13 -13
  338. package/dist/internal/peer-connections.js +2 -2
  339. package/dist/internal/persistent-stage-log-mirror.d.ts +57 -0
  340. package/dist/internal/persistent-stage-log-mirror.d.ts.map +1 -0
  341. package/dist/internal/persistent-stage-log-mirror.js +231 -0
  342. package/dist/internal/platform-schedule-sync.js +1 -1
  343. package/dist/internal/platform-timers.js +1 -1
  344. package/dist/internal/playground/static.js +2 -2
  345. package/dist/internal/playground/toolchain.js +2 -2
  346. package/dist/internal/playground-proxy.js +3 -3
  347. package/dist/internal/process-memory-telemetry.js +1 -1
  348. package/dist/internal/reminder-runner.d.ts +1 -1
  349. package/dist/internal/reminder-runner.d.ts.map +1 -1
  350. package/dist/internal/reminder-runner.js +14 -16
  351. package/dist/internal/reminder-store.js +1 -1
  352. package/dist/internal/resolved-connections.js +8 -8
  353. package/dist/internal/router.js +4 -4
  354. package/dist/internal/run-client.js +2 -2
  355. package/dist/internal/schedule-runner.d.ts +13 -2
  356. package/dist/internal/schedule-runner.d.ts.map +1 -1
  357. package/dist/internal/schedule-runner.js +48 -9
  358. package/dist/internal/sdk-runner.d.ts +2 -1
  359. package/dist/internal/sdk-runner.d.ts.map +1 -1
  360. package/dist/internal/sdk-runner.js +13 -8
  361. package/dist/internal/serve-restart.js +1 -1
  362. package/dist/internal/server.d.ts.map +1 -1
  363. package/dist/internal/server.js +101 -76
  364. package/dist/internal/session-cost.js +3 -3
  365. package/dist/internal/session-engine.d.ts +8 -0
  366. package/dist/internal/session-engine.d.ts.map +1 -1
  367. package/dist/internal/session-engine.js +183 -118
  368. package/dist/internal/session-live-publisher.d.ts +48 -0
  369. package/dist/internal/session-live-publisher.d.ts.map +1 -0
  370. package/dist/internal/session-live-publisher.js +415 -0
  371. package/dist/internal/session-run-log.js +6 -6
  372. package/dist/internal/sessions-client.js +3 -3
  373. package/dist/internal/skill-catalog.js +2 -2
  374. package/dist/internal/sleep.js +1 -1
  375. package/dist/internal/start-log-store.d.ts +5 -1
  376. package/dist/internal/start-log-store.d.ts.map +1 -1
  377. package/dist/internal/start-log-store.js +5 -3
  378. package/dist/internal/storage-coordinator.js +12 -12
  379. package/dist/internal/store-api-protocol.d.ts +51 -0
  380. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  381. package/dist/internal/store-api-protocol.js +39 -2
  382. package/dist/internal/store-mirror.js +4 -4
  383. package/dist/internal/stream-progress.d.ts.map +1 -1
  384. package/dist/internal/stream-progress.js +4 -0
  385. package/dist/internal/terminal-style.js +2 -2
  386. package/dist/internal/testing/conversation-identity-vectors.d.ts +48 -0
  387. package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -0
  388. package/dist/internal/testing/conversation-identity-vectors.js +136 -0
  389. package/dist/internal/tool-call-retry.d.ts +87 -0
  390. package/dist/internal/tool-call-retry.d.ts.map +1 -0
  391. package/dist/internal/tool-call-retry.js +387 -0
  392. package/dist/internal/tool-result.js +3 -3
  393. package/dist/internal/trajectory.js +7 -7
  394. package/dist/internal/turn-governor.js +2 -2
  395. package/dist/internal/turn-outbox.js +1 -1
  396. package/dist/internal/update-check.d.ts.map +1 -1
  397. package/dist/internal/update-check.js +4 -2
  398. package/dist/internal/v2-hosting.d.ts +6 -0
  399. package/dist/internal/v2-hosting.d.ts.map +1 -1
  400. package/dist/internal/v2-hosting.js +7 -1
  401. package/dist/internal/workspace.js +4 -4
  402. package/dist/kv/memory-kv.js +3 -3
  403. package/dist/playground/assets/index-CzttDc-d.css +1 -0
  404. package/dist/playground/assets/{index-Be0-1hw2.js → index-DIiKbZ25.js} +42 -42
  405. package/dist/playground/index.html +2 -2
  406. package/dist/prompt.js +1 -1
  407. package/dist/storage-backends/cursor-hosted-v2.js +2 -2
  408. package/dist/storage-backends/file-kv.js +7 -7
  409. package/dist/storage-protocol.d.ts +7 -0
  410. package/dist/storage-protocol.d.ts.map +1 -1
  411. package/dist/storage-protocol.js +7 -0
  412. package/dist/storage.js +3 -3
  413. package/dist/types.d.ts +21 -4
  414. package/dist/types.d.ts.map +1 -1
  415. package/dist/types.js +4 -4
  416. package/docs/reference/connections.md +2 -1
  417. package/docs/reference/hooks.md +1 -0
  418. package/docs/reference/sessions.md +1 -1
  419. package/docs/reference/tools.md +11 -0
  420. package/package.json +6 -6
  421. package/templates/agentic-owners/bot/channels/github.ts +2 -2
  422. package/templates/agentic-owners/bot/lib/github.ts +7 -5
  423. package/templates/agentic-owners/bot/lib/owners/decision.ts +9 -9
  424. package/templates/agentic-owners/bot/lib/owners/handles.ts +2 -2
  425. package/templates/agentic-owners/bot/lib/owners/match.ts +5 -3
  426. package/templates/agentic-owners/bot/lib/owners/matching.ts +1 -1
  427. package/templates/agentic-owners/bot/lib/owners/parse.ts +4 -4
  428. package/templates/agentic-owners/bot/lib/owners/prompt.ts +1 -1
  429. package/templates/agentic-owners/bot/lib/review.ts +18 -17
  430. package/templates/agentic-owners/evals/owners.eval.ts +2 -2
  431. package/templates/agents-md/bot/lib/collect.ts +6 -6
  432. package/templates/agents-md/bot/lib/config.ts +1 -1
  433. package/templates/agents-md/bot/tools/apply_agents.ts +4 -4
  434. package/templates/code-wiki/bot/channels/github.ts +3 -3
  435. package/templates/code-wiki/bot/lib/repos.ts +1 -1
  436. package/templates/code-wiki/bot/tools/apply_wiki.ts +2 -2
  437. package/templates/demo/bot/lib/collect.ts +1 -1
  438. package/templates/demo/bot/lib/repos.ts +1 -1
  439. package/templates/demo/bot/tools/record_demo.ts +1 -1
  440. package/templates/pr-autofixer/bot/channels/github.ts +2 -2
  441. package/templates/pr-autofixer/bot/lib/merge-watch.ts +2 -2
  442. package/templates/pr-autofixer/bot/lib/repos.ts +2 -2
  443. package/templates/pr-autofixer/bot/lib/webhook-routing.ts +1 -1
  444. package/templates/security-help/bot/lib/repos.ts +1 -1
  445. package/templates/security-reviewer/bot/lib/repos.ts +1 -1
  446. package/templates/triage/bot/lib/actuate.ts +15 -15
  447. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +0 -1
  448. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +0 -1
  449. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +0 -1
  450. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +0 -1
  451. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +0 -1
  452. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +0 -1
  453. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +0 -162
  454. package/dist/playground/assets/index-Clz6uHj9.css +0 -1
  455. /package/dist/docs/assets/{reference_connections.md.Bljpve-y.lean.js → reference_connections.md.DLrgAd5f.lean.js} +0 -0
  456. /package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.lean.js → reference_sessions.md.CyM7ARz1.lean.js} +0 -0
  457. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -177,10 +177,10 @@ async function cmdGithubReplay(options) {
177
177
  const port = options.port ?? DEFAULT_PORT;
178
178
  let candidates = channels;
179
179
  if (options.slug !== undefined) {
180
- candidates = candidates.filter(c => c.slug === options.slug);
180
+ candidates = candidates.filter((c) => c.slug === options.slug);
181
181
  }
182
182
  if (options.channel !== undefined) {
183
- candidates = candidates.filter(c => c.channelId === options.channel);
183
+ candidates = candidates.filter((c) => c.channelId === options.channel);
184
184
  }
185
185
  if (options.url !== undefined && candidates.length > 1) {
186
186
  process.stderr.write("--url targets a single channel; narrow with --slug/--channel\n");
@@ -192,7 +192,7 @@ async function cmdGithubReplay(options) {
192
192
  return 1;
193
193
  }
194
194
  const targets = options.url === undefined
195
- ? candidates.map(c => ({
195
+ ? candidates.map((c) => ({
196
196
  slug: c.slug,
197
197
  channelId: c.channelId,
198
198
  url: channelForwardUrl({
@@ -233,7 +233,7 @@ async function cmdGithubReplay(options) {
233
233
  return 1;
234
234
  }
235
235
  // Best-effort: mirror a real CI check (app slug / conclusion) for CI events.
236
- const wantsCi = eventsToReplay.some(event => ["check_run", "check_suite", "workflow_run", "status"].includes(event));
236
+ const wantsCi = eventsToReplay.some((event) => ["check_run", "check_suite", "workflow_run", "status"].includes(event));
237
237
  const check = wantsCi ? await fetchReplayCheck(ref, pull.head.sha) : undefined;
238
238
  const synthesized = [];
239
239
  for (const event of eventsToReplay) {
@@ -259,7 +259,7 @@ async function cmdGithubReplay(options) {
259
259
  }
260
260
  const secret = options.secret ?? process.env.GITHUB_WEBHOOK_SECRET;
261
261
  process.stderr.write(`[bdk] replaying ${ref.label} (${synthesized
262
- .map(s => s.eventName)
262
+ .map((s) => s.eventName)
263
263
  .join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
264
264
  const report = [];
265
265
  let anyRejected = false;
@@ -286,13 +286,13 @@ async function cmdGithubReplay(options) {
286
286
  continue;
287
287
  }
288
288
  const deliveries = await deliverReplayEvent(body, headers, event.eventName, targets);
289
- if (deliveries.length === 0 || deliveries.some(delivery => !delivery.ok)) {
289
+ if (deliveries.length === 0 || deliveries.some((delivery) => !delivery.ok)) {
290
290
  anyRejected = true;
291
291
  }
292
292
  report.push({ ...eventReport(event), deliveries });
293
293
  if (options.json !== true) {
294
294
  const summary = deliveries
295
- .map(delivery => `${delivery.label} ${delivery.status || "ERR"}${delivery.ok ? "" : " (rejected)"}`)
295
+ .map((delivery) => `${delivery.label} ${delivery.status || "ERR"}${delivery.ok ? "" : " (rejected)"}`)
296
296
  .join(", ") || "(no matching channel)";
297
297
  process.stderr.write(`[bdk] ${label} → ${summary}\n`);
298
298
  }
@@ -304,7 +304,7 @@ async function cmdGithubReplay(options) {
304
304
  }
305
305
  /** POST one synthesized event to every channel whose event set matches. */
306
306
  async function deliverReplayEvent(body, headers, eventName, targets) {
307
- const recipients = targets.filter(target => target.events.length === 0 || target.events.includes(eventName));
307
+ const recipients = targets.filter((target) => target.events.length === 0 || target.events.includes(eventName));
308
308
  const payload = new Uint8Array(body);
309
309
  // Bounded by the channel count (a handful) — see fanoutDelivery.
310
310
  return Promise.all(recipients.map(async (target) => {
@@ -350,7 +350,7 @@ async function fetchReplayCheck(ref, sha) {
350
350
  try {
351
351
  const data = await ghApiJson(`repos/${ref.owner}/${ref.repo}/commits/${sha}/check-runs?per_page=100`);
352
352
  const runs = data.check_runs ?? [];
353
- const chosen = runs.find(run => run.conclusion === "failure") ?? runs[0];
353
+ const chosen = runs.find((run) => run.conclusion === "failure") ?? runs[0];
354
354
  if (chosen === undefined) {
355
355
  return undefined;
356
356
  }
@@ -386,7 +386,7 @@ async function cmdGithubEvents(options) {
386
386
  });
387
387
  if (options.json) {
388
388
  process.stdout.write(`${JSON.stringify({
389
- channels: targets.map(t => ({
389
+ channels: targets.map((t) => ({
390
390
  slug: t.slug,
391
391
  channelId: t.channelId,
392
392
  url: urlFor(t),
@@ -479,7 +479,7 @@ async function cmdGithubDoctor(options) {
479
479
  }
480
480
  function reportDoctor(checks, json) {
481
481
  // Warnings (e.g. an env-token override) are advisory and do not fail doctor.
482
- const ok = checks.every(check => check.ok || check.warn === true);
482
+ const ok = checks.every((check) => check.ok || check.warn === true);
483
483
  if (json === true) {
484
484
  process.stdout.write(`${JSON.stringify({ ok, checks }, null, 2)}\n`);
485
485
  }
@@ -565,7 +565,7 @@ async function tryExec(options) {
565
565
  }
566
566
  }
567
567
  function spawnGh(args) {
568
- return new Promise(resolve => {
568
+ return new Promise((resolve) => {
569
569
  const child = spawn("gh", args, { stdio: "inherit" });
570
570
  const forward = (signal) => {
571
571
  if (!child.killed) {
@@ -574,7 +574,7 @@ function spawnGh(args) {
574
574
  };
575
575
  process.on("SIGINT", forward);
576
576
  process.on("SIGTERM", forward);
577
- child.on("error", error => {
577
+ child.on("error", (error) => {
578
578
  process.stderr.write(`failed to run gh: ${error.message}\n`);
579
579
  resolve(1);
580
580
  });
@@ -590,11 +590,11 @@ function parseEventList(value) {
590
590
  }
591
591
  const events = value
592
592
  .split(/[\s,]+/)
593
- .map(event => event.trim())
593
+ .map((event) => event.trim())
594
594
  .filter(Boolean);
595
595
  return events.length === 0 ? undefined : events;
596
596
  }
597
597
  /** Render the gh argv for logging with the signing secret masked. */
598
598
  function redact(args) {
599
- return args.map(arg => (arg.startsWith("--secret=") ? "--secret=***" : arg)).join(" ");
599
+ return args.map((arg) => (arg.startsWith("--secret=") ? "--secret=***" : arg)).join(" ");
600
600
  }
@@ -78,10 +78,10 @@ async function resolveTargets(options) {
78
78
  const port = options.port ?? DEFAULT_PORT;
79
79
  let candidates = channels;
80
80
  if (options.slug !== undefined) {
81
- candidates = candidates.filter(c => c.slug === options.slug);
81
+ candidates = candidates.filter((c) => c.slug === options.slug);
82
82
  }
83
83
  if (options.channel !== undefined) {
84
- candidates = candidates.filter(c => c.channelId === options.channel);
84
+ candidates = candidates.filter((c) => c.channelId === options.channel);
85
85
  }
86
86
  if (options.url !== undefined && candidates.length > 1) {
87
87
  process.stderr.write("--url targets a single channel; narrow with --slug/--channel\n");
@@ -102,7 +102,7 @@ async function resolveTargets(options) {
102
102
  },
103
103
  ];
104
104
  }
105
- return candidates.map(c => ({
105
+ return candidates.map((c) => ({
106
106
  slug: c.slug,
107
107
  channelId: c.channelId,
108
108
  url: channelForwardUrl({
@@ -131,7 +131,7 @@ async function cmdGitlabReplay(options) {
131
131
  return 1;
132
132
  }
133
133
  const requested = parseEventList(options.events);
134
- const declared = [...new Set(targets.flatMap(target => target.events))];
134
+ const declared = [...new Set(targets.flatMap((target) => target.events))];
135
135
  const { events, unsupported } = selectGitLabReplayEvents(requested, declared);
136
136
  if (unsupported.length > 0) {
137
137
  process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
@@ -168,7 +168,7 @@ async function cmdGitlabReplay(options) {
168
168
  method: "GET",
169
169
  path: `/projects/${projectSegment}/merge_requests/${ref.iid}/pipelines`,
170
170
  })
171
- .then(list => list[0])
171
+ .then((list) => list[0])
172
172
  .catch(() => undefined);
173
173
  }
174
174
  const synthesized = [];
@@ -221,13 +221,13 @@ async function cmdGitlabReplay(options) {
221
221
  continue;
222
222
  }
223
223
  const deliveries = await deliverReplayEvent(body, headers, event.eventName, targets);
224
- if (deliveries.length === 0 || deliveries.some(d => !d.ok)) {
224
+ if (deliveries.length === 0 || deliveries.some((d) => !d.ok)) {
225
225
  anyRejected = true;
226
226
  }
227
227
  report.push({ ...eventReport(event), deliveries });
228
228
  if (options.json !== true) {
229
229
  const summary = deliveries
230
- .map(d => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
230
+ .map((d) => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
231
231
  .join(", ") || "(no matching channel)";
232
232
  process.stderr.write(`[bdk] ${label} → ${summary}\n`);
233
233
  }
@@ -238,7 +238,7 @@ async function cmdGitlabReplay(options) {
238
238
  return anyRejected ? 1 : 0;
239
239
  }
240
240
  async function deliverReplayEvent(body, headers, eventName, targets) {
241
- const recipients = targets.filter(target => target.events.length === 0 || target.events.includes(eventName));
241
+ const recipients = targets.filter((target) => target.events.length === 0 || target.events.includes(eventName));
242
242
  return Promise.all(recipients.map(async (target) => {
243
243
  const label = target.slug === "" ? target.channelId : `${target.slug}/${target.channelId}`;
244
244
  try {
@@ -278,7 +278,7 @@ async function cmdGitlabEvents(options) {
278
278
  const channels = findGitLabChannelTargets(await resolveAgentMounts(dir));
279
279
  const host = options.host ?? DEFAULT_HOST;
280
280
  const port = options.port ?? DEFAULT_PORT;
281
- const rows = channels.map(c => ({
281
+ const rows = channels.map((c) => ({
282
282
  slug: c.slug,
283
283
  channelId: c.channelId,
284
284
  url: channelForwardUrl({
@@ -344,7 +344,7 @@ function parseEventList(value) {
344
344
  }
345
345
  const events = value
346
346
  .split(/[\s,]+/)
347
- .map(event => event.trim())
347
+ .map((event) => event.trim())
348
348
  .filter(Boolean);
349
349
  return events.length === 0 ? undefined : events;
350
350
  }
@@ -153,10 +153,10 @@ export function checkImage(inspected, probe) {
153
153
  detail: "The image runs as a non-root user. The hosted state directory is mounted root-owned, so installs may fail to write it; prefer no USER instruction or USER root.",
154
154
  });
155
155
  const osIds = [probe.os ?? "", ...(probe.osLike ?? "").split(/\s+/)]
156
- .map(id => id.trim().toLowerCase())
157
- .filter(id => id !== "");
156
+ .map((id) => id.trim().toLowerCase())
157
+ .filter((id) => id !== "");
158
158
  const osValue = probe.os === undefined || probe.os === "" ? "unknown" : probe.os;
159
- if (osIds.some(id => KNOWN_GOOD_OS_IDS.has(id))) {
159
+ if (osIds.some((id) => KNOWN_GOOD_OS_IDS.has(id))) {
160
160
  checks.push({ label: "base", value: osValue, status: "ok" });
161
161
  }
162
162
  else if (osIds.includes("alpine")) {
@@ -178,8 +178,8 @@ export function checkImage(inspected, probe) {
178
178
  return checks;
179
179
  }
180
180
  function renderChecks(image, checks) {
181
- const width = Math.max(...checks.map(check => check.label.length));
182
- const valueWidth = Math.max(...checks.map(check => check.value.length));
181
+ const width = Math.max(...checks.map((check) => check.label.length));
182
+ const valueWidth = Math.max(...checks.map((check) => check.value.length));
183
183
  const lines = [`Checking ${image}…`];
184
184
  for (const check of checks) {
185
185
  lines.push(` ${check.label.padEnd(width)} ${check.value.padEnd(valueWidth)} ${check.status}`);
@@ -190,18 +190,18 @@ function renderChecks(image, checks) {
190
190
  return `${lines.join("\n")}\n`;
191
191
  }
192
192
  function runDocker(args) {
193
- return new Promise(resolvePromise => {
193
+ return new Promise((resolvePromise) => {
194
194
  const child = spawn("docker", args, { stdio: ["ignore", "pipe", "pipe"] });
195
195
  let stdout = "";
196
196
  let stderr = "";
197
- child.stdout.on("data", chunk => {
197
+ child.stdout.on("data", (chunk) => {
198
198
  stdout += String(chunk);
199
199
  });
200
- child.stderr.on("data", chunk => {
200
+ child.stderr.on("data", (chunk) => {
201
201
  stderr += String(chunk);
202
202
  });
203
- child.on("error", error => resolvePromise({ code: 1, stdout: "", stderr: error.message }));
204
- child.on("close", code => resolvePromise({ code, stdout, stderr }));
203
+ child.on("error", (error) => resolvePromise({ code: 1, stdout: "", stderr: error.message }));
204
+ child.on("close", (code) => resolvePromise({ code, stdout, stderr }));
205
205
  });
206
206
  }
207
207
  /**
@@ -263,7 +263,7 @@ function shellDocker() {
263
263
  save(image) {
264
264
  const child = spawn("docker", savePlatform ? ["save", "--platform", REQUIRED_PLATFORM, image] : ["save", image], { stdio: ["ignore", "pipe", "inherit"] });
265
265
  const stream = child.stdout;
266
- child.on("close", code => {
266
+ child.on("close", (code) => {
267
267
  if (code !== 0) {
268
268
  stream.destroy(new Error(`docker save exited with ${code}`));
269
269
  }
@@ -373,14 +373,14 @@ export async function cmdImagesPush(args, options) {
373
373
  // Everything the hosted install needs is knowable locally; decide it
374
374
  // before signing in or moving any bytes. The platform check gates the
375
375
  // probe: a wrong-arch container cannot run here to be probed.
376
- const checks = checkImage(inspected, inspected.platform === REQUIRED_PLATFORM ? await docker.probe(args.image) : undefined).filter(check => inspected.platform === REQUIRED_PLATFORM || check.label === "platform");
376
+ const checks = checkImage(inspected, inspected.platform === REQUIRED_PLATFORM ? await docker.probe(args.image) : undefined).filter((check) => inspected.platform === REQUIRED_PLATFORM || check.label === "platform");
377
377
  if (options.json !== true) {
378
378
  out(renderChecks(args.image, checks));
379
379
  }
380
- const failed = checks.filter(check => check.status === "failed");
380
+ const failed = checks.filter((check) => check.status === "failed");
381
381
  if (failed.length > 0) {
382
382
  err(`${args.image} cannot run as a hosted agent image:\n${failed
383
- .map(check => ` ${check.label}: ${check.value}. ${check.detail ?? ""}`)
383
+ .map((check) => ` ${check.label}: ${check.value}. ${check.detail ?? ""}`)
384
384
  .join("\n")}\n`);
385
385
  return 1;
386
386
  }
@@ -399,7 +399,7 @@ export async function cmdImagesPush(args, options) {
399
399
  return renderApiError(error, ctx.err);
400
400
  }
401
401
  if (listed.images.length >= listed.limit &&
402
- !listed.images.some(image => image.name === args.name)) {
402
+ !listed.images.some((image) => image.name === args.name)) {
403
403
  ctx.err(`${listed.images.length} of ${listed.limit} images used; delete some at ${IMAGES_DASHBOARD_URL} or with \`${CLI} images rm <name>\`.\n`);
404
404
  return 1;
405
405
  }
@@ -476,7 +476,7 @@ export async function cmdImagesList(options) {
476
476
  ctx.out(`No images pushed yet. Push one with \`${CLI} images push <local-image> --name <name>\`.\n`);
477
477
  return 0;
478
478
  }
479
- ctx.out(`${renderTable(["NAME", "SIZE", "PLATFORM", "SHA256", "PUSHED"], listed.images.map(image => [
479
+ ctx.out(`${renderTable(["NAME", "SIZE", "PLATFORM", "SHA256", "PUSHED"], listed.images.map((image) => [
480
480
  image.name,
481
481
  formatBytes(image.sizeBytes),
482
482
  image.platform ?? "",
@@ -20,7 +20,7 @@ export async function cmdManifest(options) {
20
20
  for (const diagnostic of project.diagnostics) {
21
21
  err(`${diagnostic.severity}: ${diagnostic.message}\n`);
22
22
  }
23
- if (project.diagnostics.some(d => d.severity === "error")) {
23
+ if (project.diagnostics.some((d) => d.severity === "error")) {
24
24
  return 1;
25
25
  }
26
26
  const manifest = buildAgentDeployManifest(project);
@@ -36,13 +36,13 @@ function describe(error) {
36
36
  return `${error.message}: ${detail}`;
37
37
  }
38
38
  export async function cmdMcpOauth(options) {
39
- const err = options.err ?? (text => process.stderr.write(text));
40
- const out = options.out ?? (text => process.stdout.write(text));
39
+ const err = options.err ?? ((text) => process.stderr.write(text));
40
+ const out = options.out ?? ((text) => process.stdout.write(text));
41
41
  const project = await loadAgentProject(options.dir);
42
42
  const authored = [...project.agent.connections, ...(project.agent.hostConnections ?? [])];
43
- const connection = authored.find(entry => entry.name === options.connection);
43
+ const connection = authored.find((entry) => entry.name === options.connection);
44
44
  if (connection === undefined) {
45
- const known = authored.map(entry => entry.name).join(", ") || "(none)";
45
+ const known = authored.map((entry) => entry.name).join(", ") || "(none)";
46
46
  err(`${LOG_PREFIX} Unknown MCP connection "${options.connection}". Authored: ${known}.\n`);
47
47
  return 1;
48
48
  }
@@ -96,7 +96,7 @@ export async function authorizeHostMcpOauth(args) {
96
96
  const provider = await createHostMcpOAuthProvider({
97
97
  identifier: connection,
98
98
  resourceUrl: args.url,
99
- onRedirect: url => {
99
+ onRedirect: (url) => {
100
100
  authorizationUrl = url;
101
101
  },
102
102
  });
@@ -120,7 +120,7 @@ export async function cmdMcpServe(options) {
120
120
  }
121
121
  emitFailure(stdout, line, outcome.message, err);
122
122
  };
123
- await new Promise(done => {
123
+ await new Promise((done) => {
124
124
  let buffer = "";
125
125
  const enqueueLine = (raw) => {
126
126
  const line = raw.trim();
@@ -234,7 +234,7 @@ function createProdTargetSource(options, err) {
234
234
  }
235
235
  if (inFlight === undefined) {
236
236
  inFlight = resolveFresh()
237
- .then(target => {
237
+ .then((target) => {
238
238
  cached = target;
239
239
  return target;
240
240
  })
@@ -607,7 +607,7 @@ function resolveServerName(name, fallback) {
607
607
  }
608
608
  /** Last path segment of the agent base URL (the mount slug), if any. */
609
609
  function deriveNameFromUrl(baseUrl) {
610
- const segments = new URL(baseUrl).pathname.split("/").filter(s => s !== "");
610
+ const segments = new URL(baseUrl).pathname.split("/").filter((s) => s !== "");
611
611
  const last = segments.at(-1);
612
612
  if (last === undefined || last === "") {
613
613
  return undefined;
@@ -116,7 +116,7 @@ function reportFor(agentId, result) {
116
116
  error: `Migration agent ended ${result.status}: ${result.error?.message ?? "no details"}`,
117
117
  };
118
118
  }
119
- const prUrl = result.git?.branches.find(branch => branch.prUrl !== undefined)?.prUrl;
119
+ const prUrl = result.git?.branches.find((branch) => branch.prUrl !== undefined)?.prUrl;
120
120
  if (prUrl === undefined) {
121
121
  return { ok: false, status: "blocked", agentId, url, summary: result.result?.trim() };
122
122
  }
@@ -11,8 +11,8 @@ import { CLI_COMMAND_NAME } from "./distribution.js";
11
11
  import { formatSkillInstall, installCursorSkills, planSkillInstall, } from "./install-cursor-skills.js";
12
12
  import { stdoutPalette } from "./terminal-style.js";
13
13
  export async function cmdInstallSkills(options = {}) {
14
- const out = options.out ?? (text => process.stdout.write(text));
15
- const err = options.err ?? (text => process.stderr.write(text));
14
+ const out = options.out ?? ((text) => process.stdout.write(text));
15
+ const err = options.err ?? ((text) => process.stderr.write(text));
16
16
  const plan = await planSkillInstall({
17
17
  packageRoot: options.packageRoot,
18
18
  skillsHome: options.skillsHome,
@@ -467,7 +467,7 @@ export async function cmdSlackCreate(options) {
467
467
  }
468
468
  ctx.out(`Slack is connected for ${target.slug}` +
469
469
  (poll.appId === undefined ? "" : ` (app ${poll.appId})`) +
470
- `.\n wrote ${envEntries.map(entry => entry.key).join(" + ")} to ${envFile}\n\n`);
470
+ `.\n wrote ${envEntries.map((entry) => entry.key).join(" + ")} to ${envFile}\n\n`);
471
471
  const doctor = options.doctorImpl ?? runSlackDoctor;
472
472
  const doctorResult = await doctor(target.envPrefix === undefined ? {} : { envPrefix: target.envPrefix });
473
473
  ctx.out(renderDoctorReport(doctorResult));
@@ -489,10 +489,10 @@ async function resolveProvisionedApp(ctx, target, options) {
489
489
  catch (error) {
490
490
  return renderSlackApiError(error, ctx.err);
491
491
  }
492
- const sameSlug = status.apps.filter(app => app.slug === target.slug);
493
- let candidates = sameSlug.filter(app => app.env === target.env);
492
+ const sameSlug = status.apps.filter((app) => app.slug === target.slug);
493
+ let candidates = sameSlug.filter((app) => app.env === target.env);
494
494
  if (options.slackTeam !== undefined) {
495
- candidates = candidates.filter(app => app.slackTeamId === options.slackTeam);
495
+ candidates = candidates.filter((app) => app.slackTeamId === options.slackTeam);
496
496
  }
497
497
  if (candidates.length === 0) {
498
498
  ctx.err(`No provisioned ${target.env} Slack app for "${target.slug}"${options.slackTeam === undefined ? "" : ` in workspace ${options.slackTeam}`} (team ${ctx.teamId}).\n` +
@@ -594,7 +594,7 @@ export async function cmdSlackIcon(options) {
594
594
  }
595
595
  function formatAppList(apps) {
596
596
  return apps
597
- .map(app => ` - ${app.slackAppId} (${app.env}) in workspace ${app.slackTeamId} — ${app.installStatus}\n`)
597
+ .map((app) => ` - ${app.slackAppId} (${app.env}) in workspace ${app.slackTeamId} — ${app.installStatus}\n`)
598
598
  .join("");
599
599
  }
600
600
  /**
@@ -65,7 +65,7 @@ export function applyCloudUsageToEvents(events, billed, model) {
65
65
  }
66
66
  }
67
67
  else if (billed.runs.length === unpricedIndexes.length &&
68
- billed.runs.every(run => usageTokenSum(run.usage) > 0)) {
68
+ billed.runs.every((run) => usageTokenSum(run.usage) > 0)) {
69
69
  for (let i = 0; i < unpricedIndexes.length; i++) {
70
70
  const index = unpricedIndexes[i];
71
71
  const run = billed.runs[i];
@@ -217,7 +217,7 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
217
217
  /** Typed selector when every declared event is in the type's membership. */
218
218
  function membershipOrNone(eventTypes, type, typed, none) {
219
219
  const allowed = new Set(builtinForType(type)?.events ?? []);
220
- if ((eventTypes ?? []).some(event => !allowed.has(event))) {
220
+ if ((eventTypes ?? []).some((event) => !allowed.has(event))) {
221
221
  return none;
222
222
  }
223
223
  return typed;
@@ -226,10 +226,10 @@ function githubV2Default(eventTypes) {
226
226
  const events = eventTypes ?? [];
227
227
  const issueEvents = new Set(builtinForType("issue")?.events ?? []);
228
228
  const prEvents = new Set(builtinForType("pr")?.events ?? []);
229
- if (events.length > 0 && events.every(event => issueEvents.has(event))) {
229
+ if (events.length > 0 && events.every((event) => issueEvents.has(event))) {
230
230
  return "github.issue/v2";
231
231
  }
232
- if (events.some(event => !prEvents.has(event))) {
232
+ if (events.some((event) => !prEvents.has(event))) {
233
233
  return "github.none/v2";
234
234
  }
235
235
  return "github.pr/v2";
@@ -266,7 +266,7 @@ export function omittedV2MembershipDowngrade(kind, eventTypes) {
266
266
  return undefined;
267
267
  }
268
268
  const allowed = new Set(typed.events);
269
- const unexpected = events.filter(event => !allowed.has(event));
269
+ const unexpected = events.filter((event) => !allowed.has(event));
270
270
  if (unexpected.length === 0) {
271
271
  return undefined;
272
272
  }
@@ -303,7 +303,7 @@ function newEvtKey() {
303
303
  return `evt:${randomBytes(16).toString("hex")}`;
304
304
  }
305
305
  function builtinForType(type) {
306
- return BUILTINS.find(builtin => builtin.type === type);
306
+ return BUILTINS.find((builtin) => builtin.type === type);
307
307
  }
308
308
  function formatConversationKey(type, fields) {
309
309
  switch (type) {
@@ -414,7 +414,7 @@ export function handshakeContinuation(input) {
414
414
  }
415
415
  const eventTypes = input.eventTypes ?? [];
416
416
  const allowed = new Set(builtin.events);
417
- const unexpected = eventTypes.filter(event => !allowed.has(event));
417
+ const unexpected = eventTypes.filter((event) => !allowed.has(event));
418
418
  if (unexpected.length > 0) {
419
419
  return {
420
420
  ok: false,
@@ -146,7 +146,7 @@ export function createConversationMirror(options) {
146
146
  }
147
147
  const uploaded = await mirroredBlobIds(sdkAgentId);
148
148
  const blobIds = await listCheckpointBlobIds(store, sdkAgentId);
149
- const pending = blobIds.filter(blobId => !uploaded.has(blobId));
149
+ const pending = blobIds.filter((blobId) => !uploaded.has(blobId));
150
150
  for (let start = 0; start < pending.length; start += PERSIST_UPLOAD_BATCH_SIZE) {
151
151
  await uploadBlobs(store, sdkAgentId, pending.slice(start, start + PERSIST_UPLOAD_BATCH_SIZE), uploaded);
152
152
  }
@@ -155,7 +155,7 @@ export function createConversationMirror(options) {
155
155
  // The referenced run is process-local bookkeeping and is not mirrored;
156
156
  // a hydrated store must not point at a run row it does not hold.
157
157
  agent: { ...document, activeRunId: null },
158
- blobIds: blobIds.filter(blobId => uploaded.has(blobId)),
158
+ blobIds: blobIds.filter((blobId) => uploaded.has(blobId)),
159
159
  persistedAtMs: Date.now(),
160
160
  };
161
161
  // Skip the rewrite when nothing durable changed. `persistedAtMs`
@@ -200,15 +200,15 @@ export function createConversationMirror(options) {
200
200
  }
201
201
  // This sits on the resume critical path. Prefer a batched read and
202
202
  // fall back to bounded parallel reads when the sink has no batch API.
203
- const blobKeys = manifest.blobIds.map(blobId => agentSdkAgentStoreKeys.conversationBlob(agentName, sdkAgentId, blobId));
203
+ const blobKeys = manifest.blobIds.map((blobId) => agentSdkAgentStoreKeys.conversationBlob(agentName, sdkAgentId, blobId));
204
204
  const blobBodies = sink.getMany !== undefined
205
205
  ? await sink.getMany(blobKeys)
206
- : await mapBounded(blobKeys, HYDRATE_DOWNLOAD_CONCURRENCY, key => sink.get(key));
206
+ : await mapBounded(blobKeys, HYDRATE_DOWNLOAD_CONCURRENCY, (key) => sink.get(key));
207
207
  const bodies = manifest.blobIds.map((blobId, index) => ({
208
208
  blobId,
209
209
  body: blobBodies[index],
210
210
  }));
211
- const missing = bodies.filter(entry => entry.body === undefined);
211
+ const missing = bodies.filter((entry) => entry.body === undefined);
212
212
  if (missing.length > 0) {
213
213
  // The manifest lists exactly what a previous persist uploaded, so
214
214
  // any definitive absence is store loss — and the checkpoint graph