@cursor/bdk 0.2.11 → 0.2.12

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 (432) 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/gitlab/binding.js +4 -4
  18. package/dist/channels/gitlab/checks.js +1 -1
  19. package/dist/channels/gitlab/cursor-account.js +1 -1
  20. package/dist/channels/gitlab/events.js +1 -1
  21. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  22. package/dist/channels/gitlab/gitlab-webhook.js +1 -1
  23. package/dist/channels/gitlab/replay.js +2 -2
  24. package/dist/channels/origin/binding.js +3 -3
  25. package/dist/channels/origin/checks.js +1 -1
  26. package/dist/channels/origin/cursor-account.js +1 -1
  27. package/dist/channels/origin/events.js +1 -1
  28. package/dist/channels/origin/origin-channel.js +1 -1
  29. package/dist/channels/origin/origin-webhook.js +2 -2
  30. package/dist/channels/slack/agentic-delivery.js +3 -3
  31. package/dist/channels/slack/agentic-signals.js +1 -1
  32. package/dist/channels/slack/api.js +5 -5
  33. package/dist/channels/slack/approvals.js +1 -1
  34. package/dist/channels/slack/attachments.js +3 -3
  35. package/dist/channels/slack/blocks.js +3 -3
  36. package/dist/channels/slack/bot-mentions.js +4 -4
  37. package/dist/channels/slack/channel-watch.js +4 -4
  38. package/dist/channels/slack/cli-project.js +3 -3
  39. package/dist/channels/slack/dispatch.js +1 -1
  40. package/dist/channels/slack/doctor.js +1 -1
  41. package/dist/channels/slack/eval-directive.js +1 -1
  42. package/dist/channels/slack/footer.js +1 -1
  43. package/dist/channels/slack/interactive.js +2 -2
  44. package/dist/channels/slack/log.d.ts.map +1 -1
  45. package/dist/channels/slack/log.js +1 -1
  46. package/dist/channels/slack/manifest.js +1 -1
  47. package/dist/channels/slack/nudge-carrier.js +1 -1
  48. package/dist/channels/slack/nudge-store.js +2 -2
  49. package/dist/channels/slack/recording-sink.js +6 -6
  50. package/dist/channels/slack/reply-options.js +6 -6
  51. package/dist/channels/slack/self-identity.d.ts +7 -4
  52. package/dist/channels/slack/self-identity.d.ts.map +1 -1
  53. package/dist/channels/slack/self-identity.js +17 -8
  54. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  55. package/dist/channels/slack/sender-name.js +2 -6
  56. package/dist/channels/slack/setup.d.ts.map +1 -1
  57. package/dist/channels/slack/setup.js +1 -1
  58. package/dist/channels/slack/slack-channel.js +2 -2
  59. package/dist/channels/slack/socket-mode.js +2 -2
  60. package/dist/channels/slack/thread-context.js +8 -8
  61. package/dist/channels/slack/tool-cards.js +1 -1
  62. package/dist/channels/slack/user-info.d.ts +2 -1
  63. package/dist/channels/slack/user-info.d.ts.map +1 -1
  64. package/dist/channels/slack/user-info.js +16 -1
  65. package/dist/channels.js +1 -1
  66. package/dist/docs/404.html +3 -3
  67. package/dist/docs/assets/{app.DXI7bwox.js → app.CKta5zX1.js} +4 -4
  68. package/dist/docs/assets/chunks/@localSearchIndexroot.DtlCe4t6.js +1 -0
  69. package/dist/docs/assets/chunks/{VPLocalSearchBox.BrbO5mEe.js → VPLocalSearchBox.4vRM3EDG.js} +2 -2
  70. package/dist/docs/assets/chunks/{arc.BOG1yms8.js → arc.CofbA8tA.js} +1 -1
  71. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C0hsMZnZ.js → architectureDiagram-Q4EWVU46.Mt2UV5M-.js} +1 -1
  72. package/dist/docs/assets/chunks/{baseUniq.H044KjKs.js → baseUniq.C_W0Aqp4.js} +1 -1
  73. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BsRW6GoB.js → blockDiagram-DXYQGD6D.dAc4goE-.js} +1 -1
  74. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.B9HV5PFR.js → c4Diagram-AHTNJAMY.dnbRC3Dm.js} +1 -1
  75. package/dist/docs/assets/chunks/channel.DpljPUVU.js +1 -0
  76. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CPoT_ajl.js → chunk-4BX2VUAB.B42ltSTd.js} +1 -1
  77. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DZBwWuCL.js → chunk-4TB4RGXK.2GbAul_E.js} +1 -1
  78. package/dist/docs/assets/chunks/{chunk-55IACEB6.CZ3yTiyq.js → chunk-55IACEB6.pjzY-v-B.js} +1 -1
  79. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.6DfvHSd8.js → chunk-EDXVE4YY.BB1GXLj2.js} +1 -1
  80. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CpBj8HfK.js → chunk-FMBD7UC4.B2WxZkoA.js} +1 -1
  81. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BdKo8YqS.js → chunk-OYMX7WX6.BMvb2w73.js} +1 -1
  82. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnXNyxJx.js → chunk-QZHKN3VN.Bmu_2lNr.js} +1 -1
  83. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cg1OcF8G.js → chunk-YZCP3GAM.Cth65EaC.js} +1 -1
  84. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DFNHq2OM.js +1 -0
  85. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DFNHq2OM.js +1 -0
  86. package/dist/docs/assets/chunks/clone.DssygCzX.js +1 -0
  87. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.1SP8al9c.js → cose-bilkent-S5V4N54A.CrfA7Iw_.js} +1 -1
  88. package/dist/docs/assets/chunks/{dagre-KV5264BT.DS1L6hJt.js → dagre-KV5264BT.PCD6KQDb.js} +1 -1
  89. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.ChsausbG.js → diagram-5BDNPKRD.CGNlYlP1.js} +1 -1
  90. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.3XsptNWj.js → diagram-G4DWMVQ6.C0cvryPD.js} +1 -1
  91. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DPA9Dk_P.js → diagram-MMDJMWI5.DHlkZHNV.js} +1 -1
  92. package/dist/docs/assets/chunks/{diagram-TYMM5635.BVswXWrB.js → diagram-TYMM5635.DDGqH_4B.js} +1 -1
  93. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BSak5OSP.js → erDiagram-SMLLAGMA.4gOY_C3v.js} +1 -1
  94. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CQgN4TTz.js → flowDiagram-DWJPFMVM.8i7zsxuh.js} +1 -1
  95. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.GrT0kA4a.js → ganttDiagram-T4ZO3ILL.BEKHYdM-.js} +1 -1
  96. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CdS7Ucll.js → gitGraphDiagram-UUTBAWPF.ACzeLGiB.js} +1 -1
  97. package/dist/docs/assets/chunks/{graph.BVqKRmRo.js → graph.08C3hS6m.js} +1 -1
  98. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.C3C9FRto.js → infoDiagram-42DDH7IO.D8R9obOH.js} +1 -1
  99. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js → ishikawaDiagram-UXIWVN3A.CmgYpCWL.js} +1 -1
  100. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CaHMfK4b.js → journeyDiagram-VCZTEJTY.DUzjGfoZ.js} +1 -1
  101. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CjhIUwcA.js → kanban-definition-6JOO6SKY.DbcW2iZ0.js} +1 -1
  102. package/dist/docs/assets/chunks/{layout.CGU3gfSf.js → layout.BaDEpJzu.js} +1 -1
  103. package/dist/docs/assets/chunks/{linear.DaihpW_n.js → linear.B_zRQgCU.js} +1 -1
  104. package/dist/docs/assets/chunks/{min.BS-j8kHQ.js → min.BYscCdSu.js} +1 -1
  105. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BVJ1Bbnk.js → mindmap-definition-QFDTVHPH.Ggu0jg86.js} +1 -1
  106. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.Cz1WIv9r.js → pieDiagram-DEJITSTG.D_q4SVDT.js} +1 -1
  107. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DKLFxcjy.js → quadrantDiagram-34T5L4WZ.D3zGj5ok.js} +1 -1
  108. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.BHegiK7x.js → requirementDiagram-MS252O5E.DVTg7zr2.js} +1 -1
  109. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DYkY6yPc.js → sankeyDiagram-XADWPNL6.D3X8jm57.js} +1 -1
  110. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DYQ1QUrI.js → sequenceDiagram-FGHM5R23.Dpjai9YP.js} +1 -1
  111. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.Iru8BsFo.js → stateDiagram-FHFEXIEX.D_AbQBuP.js} +1 -1
  112. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CWKWRxRx.js +1 -0
  113. package/dist/docs/assets/chunks/{theme.DaplWQhQ.js → theme.BcgOnbZ6.js} +2 -2
  114. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BwFA8hiX.js → timeline-definition-GMOUNBTQ.Cp3DKBe2.js} +1 -1
  115. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZ60W1C_.js → vennDiagram-DHZGUBPP.Bcvg-Aqu.js} +1 -1
  116. package/dist/docs/assets/chunks/wardley-RL74JXVD.CCpdcUSq.js +162 -0
  117. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.B69D2r8-.js → wardleyDiagram-NUSXRM2D.L0yehCc5.js} +1 -1
  118. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CLPZEIU9.js → xychartDiagram-5P7HB3ND.Cw8-tJmw.js} +1 -1
  119. package/dist/docs/assets/{reference_connections.md.Bljpve-y.js → reference_connections.md.DLrgAd5f.js} +1 -1
  120. package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.js → reference_hooks.md.B-eGa2km.js} +3 -3
  121. package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.lean.js → reference_hooks.md.B-eGa2km.lean.js} +1 -1
  122. package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.js → reference_sessions.md.CyM7ARz1.js} +1 -1
  123. package/dist/docs/assets/{reference_tools.md.v3SXVSs_.js → reference_tools.md.DzIY9JzY.js} +3 -3
  124. package/dist/docs/assets/{reference_tools.md.v3SXVSs_.lean.js → reference_tools.md.DzIY9JzY.lean.js} +1 -1
  125. package/dist/docs/assets/{style.C130MVnH.css → style.Dwls12uf.css} +1 -1
  126. package/dist/docs/building-with-agents.html +37 -37
  127. package/dist/docs/deployment.html +37 -37
  128. package/dist/docs/evals.html +37 -37
  129. package/dist/docs/guides/agent-to-agent.html +37 -37
  130. package/dist/docs/guides/bitbucket.html +37 -37
  131. package/dist/docs/guides/cloud-agents.html +37 -37
  132. package/dist/docs/guides/convert-automation.html +37 -37
  133. package/dist/docs/guides/github.html +37 -37
  134. package/dist/docs/guides/gitlab.html +37 -37
  135. package/dist/docs/guides/grokbot-agents.html +37 -37
  136. package/dist/docs/guides/hooks.html +37 -37
  137. package/dist/docs/guides/improve.html +37 -37
  138. package/dist/docs/guides/jev.html +37 -37
  139. package/dist/docs/guides/mcp-oauth.html +37 -37
  140. package/dist/docs/guides/migrate.html +37 -37
  141. package/dist/docs/guides/opentelemetry.html +37 -37
  142. package/dist/docs/guides/slack.html +37 -37
  143. package/dist/docs/guides/webhooks.html +37 -37
  144. package/dist/docs/hashmap.json +1 -1
  145. package/dist/docs/hillclimbing.html +37 -37
  146. package/dist/docs/index.html +37 -37
  147. package/dist/docs/llms-full.txt +15 -2
  148. package/dist/docs/quickstart.html +37 -37
  149. package/dist/docs/reference/agent-config.html +37 -37
  150. package/dist/docs/reference/artifacts.html +37 -37
  151. package/dist/docs/reference/channels.html +37 -37
  152. package/dist/docs/reference/cli.html +37 -37
  153. package/dist/docs/reference/connections.html +39 -39
  154. package/dist/docs/reference/connections.md +2 -1
  155. package/dist/docs/reference/evals.html +37 -37
  156. package/dist/docs/reference/extensions.html +37 -37
  157. package/dist/docs/reference/hooks.html +39 -39
  158. package/dist/docs/reference/hooks.md +1 -0
  159. package/dist/docs/reference/http-api.html +37 -37
  160. package/dist/docs/reference/instructions.html +37 -37
  161. package/dist/docs/reference/playground.html +36 -36
  162. package/dist/docs/reference/project-layout.html +37 -37
  163. package/dist/docs/reference/prompt.html +37 -37
  164. package/dist/docs/reference/schedules.html +37 -37
  165. package/dist/docs/reference/sessions.html +37 -37
  166. package/dist/docs/reference/sessions.md +1 -1
  167. package/dist/docs/reference/skills.html +37 -37
  168. package/dist/docs/reference/subagents.html +37 -37
  169. package/dist/docs/reference/tools.html +39 -39
  170. package/dist/docs/reference/tools.md +11 -0
  171. package/dist/docs/templates/agentic-owners.html +37 -37
  172. package/dist/docs/templates/grokbot-agents.html +37 -37
  173. package/dist/docs/templates/security-reviewer.html +37 -37
  174. package/dist/docs/templates/thermo-quality-review.html +37 -37
  175. package/dist/docs/templates/thermo-review.html +37 -37
  176. package/dist/docs/templates/triage.html +37 -37
  177. package/dist/docs/troubleshooting.html +36 -36
  178. package/dist/evals/assertions.d.ts.map +1 -1
  179. package/dist/evals/assertions.js +21 -19
  180. package/dist/evals/expect.js +1 -1
  181. package/dist/evals/judge.js +1 -1
  182. package/dist/evals/reporters.js +8 -8
  183. package/dist/evals/run-facts.js +2 -2
  184. package/dist/evals.js +6 -6
  185. package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
  186. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  187. package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
  188. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +16 -0
  189. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  190. package/dist/extensions/cursor-cloud-agents/lib/backend.js +44 -3
  191. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  192. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts +23 -0
  193. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts.map +1 -0
  194. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.js +32 -0
  195. package/dist/extensions/cursor-cloud-agents/lib/repos.js +2 -2
  196. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -2
  197. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -1
  198. package/dist/extensions/cursor-cloud-agents/lib/watch.js +1 -1
  199. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  200. package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -8
  201. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  202. package/dist/extensions/cursor-grokbot-agents/extension.js +3 -3
  203. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  204. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +3 -3
  205. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +4 -4
  206. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  207. package/dist/extensions/improve/skills/yourself.js +1 -1
  208. package/dist/extensions/jev/extension.js +2 -2
  209. package/dist/extensions/jev/tools/evaluate.js +1 -1
  210. package/dist/extensions/slack-communication/tools/react.js +1 -1
  211. package/dist/files-backends/cursor-hosted.js +8 -8
  212. package/dist/files-backends/local-fs.js +1 -1
  213. package/dist/filesystem.d.ts.map +1 -1
  214. package/dist/filesystem.js +15 -15
  215. package/dist/internal/advertise-tools.d.ts +3 -2
  216. package/dist/internal/advertise-tools.d.ts.map +1 -1
  217. package/dist/internal/advertise-tools.js +11 -9
  218. package/dist/internal/approval-gate.js +1 -1
  219. package/dist/internal/artifacts-store.js +13 -13
  220. package/dist/internal/as-of.js +2 -2
  221. package/dist/internal/authored-alias-hooks.js +1 -1
  222. package/dist/internal/builtin-tools/reminders.js +2 -2
  223. package/dist/internal/chat-client.js +5 -5
  224. package/dist/internal/cli-ax.js +14 -14
  225. package/dist/internal/cli-bitbucket.js +10 -10
  226. package/dist/internal/cli-convert-automation.js +2 -2
  227. package/dist/internal/cli-cursor.js +2 -2
  228. package/dist/internal/cli-deploy.d.ts.map +1 -1
  229. package/dist/internal/cli-deploy.js +40 -40
  230. package/dist/internal/cli-docs.js +5 -5
  231. package/dist/internal/cli-github.js +15 -15
  232. package/dist/internal/cli-gitlab.js +10 -10
  233. package/dist/internal/cli-images.js +16 -16
  234. package/dist/internal/cli-manifest.js +1 -1
  235. package/dist/internal/cli-mcp-oauth.js +5 -5
  236. package/dist/internal/cli-mcp.js +3 -3
  237. package/dist/internal/cli-migrate.js +1 -1
  238. package/dist/internal/cli-skills.js +2 -2
  239. package/dist/internal/cli-slack.js +5 -5
  240. package/dist/internal/cloud-turn-cost.js +1 -1
  241. package/dist/internal/continuation-identity.js +6 -6
  242. package/dist/internal/conversation-mirror.js +5 -5
  243. package/dist/internal/convert-automation/convert-workflow.js +24 -24
  244. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  245. package/dist/internal/cursor/account-mcp.js +20 -20
  246. package/dist/internal/cursor/backend-client.js +6 -6
  247. package/dist/internal/cursor/credentials.js +1 -1
  248. package/dist/internal/cursor/store-api-client.js +1 -1
  249. package/dist/internal/cursor-account-mcp-auth.js +9 -9
  250. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  251. package/dist/internal/cursor-deployment-relay.js +9 -9
  252. package/dist/internal/cursor-event-relay.js +10 -10
  253. package/dist/internal/cursor-relay-core.js +2 -2
  254. package/dist/internal/deploy-manifest.js +10 -10
  255. package/dist/internal/discovery/agent-config.js +2 -2
  256. package/dist/internal/discovery/agent.js +6 -6
  257. package/dist/internal/discovery/connections.js +5 -5
  258. package/dist/internal/discovery/cursor-plugin.js +12 -12
  259. package/dist/internal/discovery/extension-overlay.js +3 -3
  260. package/dist/internal/discovery/extensions.js +6 -6
  261. package/dist/internal/discovery/info.js +9 -9
  262. package/dist/internal/discovery/instructions.js +1 -1
  263. package/dist/internal/discovery/project.js +3 -3
  264. package/dist/internal/discovery/services.js +1 -1
  265. package/dist/internal/discovery/tools.js +1 -1
  266. package/dist/internal/docs-site.js +2 -2
  267. package/dist/internal/env-file.js +1 -1
  268. package/dist/internal/eval-run-store.js +7 -7
  269. package/dist/internal/eval-runner.d.ts.map +1 -1
  270. package/dist/internal/eval-runner.js +14 -14
  271. package/dist/internal/eval-transport.js +1 -1
  272. package/dist/internal/evals-client.js +4 -4
  273. package/dist/internal/event-log.js +8 -8
  274. package/dist/internal/event-mapper.js +13 -13
  275. package/dist/internal/expected-delivery-failure.js +2 -2
  276. package/dist/internal/filesystem/format.js +2 -2
  277. package/dist/internal/filesystem/nearest.js +3 -3
  278. package/dist/internal/filesystem/scratch.js +3 -3
  279. package/dist/internal/filesystem/tools.js +6 -6
  280. package/dist/internal/filesystem/walk.d.ts.map +1 -1
  281. package/dist/internal/filesystem/walk.js +2 -2
  282. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  283. package/dist/internal/framework-file-storage.js +6 -5
  284. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  285. package/dist/internal/framework-storage-selection.js +4 -2
  286. package/dist/internal/github-fanout.d.ts.map +1 -1
  287. package/dist/internal/github-fanout.js +3 -3
  288. package/dist/internal/guest-network.js +4 -4
  289. package/dist/internal/host-files.js +1 -1
  290. package/dist/internal/host-kv.js +2 -2
  291. package/dist/internal/hosted-catch-protocol.js +1 -1
  292. package/dist/internal/hosted-catch.js +1 -1
  293. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  294. package/dist/internal/hosted-delivery-protocol.js +14 -14
  295. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  296. package/dist/internal/hosted-delivery.js +23 -9
  297. package/dist/internal/hosted-eval-cases.js +4 -4
  298. package/dist/internal/hosted-execution-diag.js +3 -3
  299. package/dist/internal/hosting.js +1 -1
  300. package/dist/internal/http-channel.js +1 -1
  301. package/dist/internal/http-control-plane-session.js +2 -2
  302. package/dist/internal/init-interview.js +7 -7
  303. package/dist/internal/init-project.d.ts.map +1 -1
  304. package/dist/internal/init-project.js +12 -12
  305. package/dist/internal/inline-stdio-mcp.js +2 -2
  306. package/dist/internal/install-cursor-skills.js +11 -11
  307. package/dist/internal/json-schema.js +1 -1
  308. package/dist/internal/local-control-plane.js +3 -3
  309. package/dist/internal/local-env.js +3 -3
  310. package/dist/internal/log-ring.js +1 -1
  311. package/dist/internal/logs-client.js +1 -1
  312. package/dist/internal/mcp-endpoint.js +8 -8
  313. package/dist/internal/mcp-host.d.ts.map +1 -1
  314. package/dist/internal/mcp-host.js +5 -5
  315. package/dist/internal/mcp-oauth-on-demand.js +3 -3
  316. package/dist/internal/mcp-oauth.js +5 -5
  317. package/dist/internal/net.js +2 -2
  318. package/dist/internal/otel/config.js +3 -3
  319. package/dist/internal/otel/runtime.js +13 -13
  320. package/dist/internal/peer-connections.js +2 -2
  321. package/dist/internal/persistent-stage-log-mirror.d.ts +57 -0
  322. package/dist/internal/persistent-stage-log-mirror.d.ts.map +1 -0
  323. package/dist/internal/persistent-stage-log-mirror.js +231 -0
  324. package/dist/internal/platform-schedule-sync.js +1 -1
  325. package/dist/internal/platform-timers.js +1 -1
  326. package/dist/internal/playground/static.js +2 -2
  327. package/dist/internal/playground/toolchain.js +2 -2
  328. package/dist/internal/playground-proxy.js +3 -3
  329. package/dist/internal/process-memory-telemetry.js +1 -1
  330. package/dist/internal/reminder-runner.d.ts +1 -1
  331. package/dist/internal/reminder-runner.d.ts.map +1 -1
  332. package/dist/internal/reminder-runner.js +14 -16
  333. package/dist/internal/reminder-store.js +1 -1
  334. package/dist/internal/resolved-connections.js +8 -8
  335. package/dist/internal/router.js +4 -4
  336. package/dist/internal/run-client.js +2 -2
  337. package/dist/internal/schedule-runner.js +6 -6
  338. package/dist/internal/sdk-runner.d.ts.map +1 -1
  339. package/dist/internal/sdk-runner.js +6 -6
  340. package/dist/internal/serve-restart.js +1 -1
  341. package/dist/internal/server.d.ts.map +1 -1
  342. package/dist/internal/server.js +93 -72
  343. package/dist/internal/session-cost.js +3 -3
  344. package/dist/internal/session-engine.d.ts +8 -0
  345. package/dist/internal/session-engine.d.ts.map +1 -1
  346. package/dist/internal/session-engine.js +183 -118
  347. package/dist/internal/session-live-publisher.d.ts +46 -0
  348. package/dist/internal/session-live-publisher.d.ts.map +1 -0
  349. package/dist/internal/session-live-publisher.js +352 -0
  350. package/dist/internal/session-run-log.js +6 -6
  351. package/dist/internal/sessions-client.js +3 -3
  352. package/dist/internal/skill-catalog.js +2 -2
  353. package/dist/internal/sleep.js +1 -1
  354. package/dist/internal/start-log-store.d.ts +5 -1
  355. package/dist/internal/start-log-store.d.ts.map +1 -1
  356. package/dist/internal/start-log-store.js +5 -3
  357. package/dist/internal/storage-coordinator.js +12 -12
  358. package/dist/internal/store-api-protocol.d.ts +51 -0
  359. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  360. package/dist/internal/store-api-protocol.js +39 -2
  361. package/dist/internal/store-mirror.js +4 -4
  362. package/dist/internal/stream-progress.d.ts.map +1 -1
  363. package/dist/internal/stream-progress.js +4 -0
  364. package/dist/internal/terminal-style.js +2 -2
  365. package/dist/internal/tool-call-retry.d.ts +87 -0
  366. package/dist/internal/tool-call-retry.d.ts.map +1 -0
  367. package/dist/internal/tool-call-retry.js +387 -0
  368. package/dist/internal/tool-result.js +3 -3
  369. package/dist/internal/trajectory.js +7 -7
  370. package/dist/internal/turn-governor.js +2 -2
  371. package/dist/internal/turn-outbox.js +1 -1
  372. package/dist/internal/update-check.d.ts.map +1 -1
  373. package/dist/internal/update-check.js +4 -2
  374. package/dist/internal/v2-hosting.d.ts +6 -0
  375. package/dist/internal/v2-hosting.d.ts.map +1 -1
  376. package/dist/internal/v2-hosting.js +7 -1
  377. package/dist/internal/workspace.js +4 -4
  378. package/dist/kv/memory-kv.js +3 -3
  379. package/dist/playground/assets/{index-Be0-1hw2.js → index-HN5lOuAX.js} +42 -42
  380. package/dist/playground/assets/index-JY1wKCMg.css +1 -0
  381. package/dist/playground/index.html +2 -2
  382. package/dist/prompt.js +1 -1
  383. package/dist/storage-backends/cursor-hosted-v2.js +2 -2
  384. package/dist/storage-backends/file-kv.js +7 -7
  385. package/dist/storage-protocol.d.ts +7 -0
  386. package/dist/storage-protocol.d.ts.map +1 -1
  387. package/dist/storage-protocol.js +7 -0
  388. package/dist/storage.js +3 -3
  389. package/dist/types.d.ts +15 -0
  390. package/dist/types.d.ts.map +1 -1
  391. package/dist/types.js +4 -4
  392. package/docs/reference/connections.md +2 -1
  393. package/docs/reference/hooks.md +1 -0
  394. package/docs/reference/sessions.md +1 -1
  395. package/docs/reference/tools.md +11 -0
  396. package/package.json +6 -6
  397. package/templates/agentic-owners/bot/channels/github.ts +2 -2
  398. package/templates/agentic-owners/bot/lib/github.ts +7 -5
  399. package/templates/agentic-owners/bot/lib/owners/decision.ts +9 -9
  400. package/templates/agentic-owners/bot/lib/owners/handles.ts +2 -2
  401. package/templates/agentic-owners/bot/lib/owners/match.ts +5 -3
  402. package/templates/agentic-owners/bot/lib/owners/matching.ts +1 -1
  403. package/templates/agentic-owners/bot/lib/owners/parse.ts +4 -4
  404. package/templates/agentic-owners/bot/lib/owners/prompt.ts +1 -1
  405. package/templates/agentic-owners/bot/lib/review.ts +18 -17
  406. package/templates/agentic-owners/evals/owners.eval.ts +2 -2
  407. package/templates/agents-md/bot/lib/collect.ts +6 -6
  408. package/templates/agents-md/bot/lib/config.ts +1 -1
  409. package/templates/agents-md/bot/tools/apply_agents.ts +4 -4
  410. package/templates/code-wiki/bot/channels/github.ts +3 -3
  411. package/templates/code-wiki/bot/lib/repos.ts +1 -1
  412. package/templates/code-wiki/bot/tools/apply_wiki.ts +2 -2
  413. package/templates/demo/bot/lib/collect.ts +1 -1
  414. package/templates/demo/bot/lib/repos.ts +1 -1
  415. package/templates/demo/bot/tools/record_demo.ts +1 -1
  416. package/templates/pr-autofixer/bot/channels/github.ts +2 -2
  417. package/templates/pr-autofixer/bot/lib/merge-watch.ts +2 -2
  418. package/templates/pr-autofixer/bot/lib/repos.ts +2 -2
  419. package/templates/pr-autofixer/bot/lib/webhook-routing.ts +1 -1
  420. package/templates/security-help/bot/lib/repos.ts +1 -1
  421. package/templates/security-reviewer/bot/lib/repos.ts +1 -1
  422. package/templates/triage/bot/lib/actuate.ts +15 -15
  423. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +0 -1
  424. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +0 -1
  425. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +0 -1
  426. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +0 -1
  427. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +0 -1
  428. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +0 -1
  429. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +0 -162
  430. package/dist/playground/assets/index-Clz6uHj9.css +0 -1
  431. /package/dist/docs/assets/{reference_connections.md.Bljpve-y.lean.js → reference_connections.md.DLrgAd5f.lean.js} +0 -0
  432. /package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.lean.js → reference_sessions.md.CyM7ARz1.lean.js} +0 -0
@@ -36,7 +36,7 @@ export function hostMcpCallNeedsAuth(result) {
36
36
  if (result.isError !== true) {
37
37
  return false;
38
38
  }
39
- const text = result.content.map(part => (part.type === "text" ? part.text : "")).join("\n");
39
+ const text = result.content.map((part) => (part.type === "text" ? part.text : "")).join("\n");
40
40
  return text.includes("needsAuth") || text.includes("needs authorization");
41
41
  }
42
42
  function throwIfCallNeedsAuth(connection, result) {
@@ -73,7 +73,7 @@ export class McpHost {
73
73
  const listed = await client.listTools(mcpListParams());
74
74
  return listed.tools
75
75
  .map(toToolInfo)
76
- .filter(tool => connectionAllowsTool(connection, tool.name));
76
+ .filter((tool) => connectionAllowsTool(connection, tool.name));
77
77
  }));
78
78
  }
79
79
  /**
@@ -101,7 +101,7 @@ export class McpHost {
101
101
  const listed = await client.listTools(mcpListParams());
102
102
  return listed.tools
103
103
  .map(toToolInfo)
104
- .filter(tool => connectionAllowsTool(connection, tool.name));
104
+ .filter((tool) => connectionAllowsTool(connection, tool.name));
105
105
  })),
106
106
  callTool: (toolName, args = {}) => {
107
107
  assertConnectionAllowsTool(connection, toolName);
@@ -146,7 +146,7 @@ export class McpHost {
146
146
  }
147
147
  }
148
148
  async close() {
149
- const opened = await Promise.allSettled([...this.clients.values()].map(entry => entry.opened));
149
+ const opened = await Promise.allSettled([...this.clients.values()].map((entry) => entry.opened));
150
150
  this.clients.clear();
151
151
  await Promise.allSettled(opened.map(async (settled) => {
152
152
  if (settled.status === "fulfilled") {
@@ -196,7 +196,7 @@ export class McpHost {
196
196
  // replaced would otherwise orphan the client that replaced it.
197
197
  const entry = {
198
198
  credentials,
199
- opened: this.connect(name).catch(error => {
199
+ opened: this.connect(name).catch((error) => {
200
200
  if (this.clients.get(name) === entry) {
201
201
  this.clients.delete(name);
202
202
  }
@@ -27,7 +27,7 @@ export async function beginHostMcpOauth(args) {
27
27
  resourceUrl: args.url,
28
28
  store: args.store,
29
29
  redirectUrl: args.redirectUrl,
30
- onRedirect: url => {
30
+ onRedirect: (url) => {
31
31
  authorizationUrl = url;
32
32
  },
33
33
  });
@@ -109,10 +109,10 @@ export class McpOauthOnDemandHub {
109
109
  return { authUrl: started.authUrl, state: started.state };
110
110
  }
111
111
  async abortCall(sessionId, callId) {
112
- await this.dropWhere(attempt => attempt.sessionId === sessionId && attempt.callId === callId, true);
112
+ await this.dropWhere((attempt) => attempt.sessionId === sessionId && attempt.callId === callId, true);
113
113
  }
114
114
  async abortSession(sessionId) {
115
- await this.dropWhere(attempt => attempt.sessionId === sessionId, false);
115
+ await this.dropWhere((attempt) => attempt.sessionId === sessionId, false);
116
116
  }
117
117
  async close() {
118
118
  await this.dropWhere(() => true, true);
@@ -83,12 +83,12 @@ export class FileMcpOAuthStore {
83
83
  return (await this.entryFor(id, resourceUrl))?.clientInfo;
84
84
  }
85
85
  async saveTokens(id, resourceUrl, tokens) {
86
- await this.update(id, resourceUrl, entry => {
86
+ await this.update(id, resourceUrl, (entry) => {
87
87
  entry.tokens = tokens;
88
88
  });
89
89
  }
90
90
  async saveClientInformation(id, resourceUrl, clientInfo) {
91
- await this.update(id, resourceUrl, entry => {
91
+ await this.update(id, resourceUrl, (entry) => {
92
92
  entry.clientInfo = clientInfo;
93
93
  });
94
94
  }
@@ -126,7 +126,7 @@ export class FileMcpOAuthStore {
126
126
  if (this.cache !== undefined) {
127
127
  return this.cache;
128
128
  }
129
- this.loading ??= this.readDisk().then(data => {
129
+ this.loading ??= this.readDisk().then((data) => {
130
130
  this.cache = data;
131
131
  return data;
132
132
  });
@@ -161,7 +161,7 @@ export class FileMcpOAuthStore {
161
161
  async withLock(fn) {
162
162
  const prev = locks.get(this.path) ?? Promise.resolve();
163
163
  let release;
164
- locks.set(this.path, new Promise(resolve => {
164
+ locks.set(this.path, new Promise((resolve) => {
165
165
  release = resolve;
166
166
  }));
167
167
  try {
@@ -368,7 +368,7 @@ export async function waitForMcpOAuthCallback(args) {
368
368
  const timer = setTimeout(() => {
369
369
  finish(undefined, new Error(`Timed out waiting for OAuth callback on http://localhost:${port}${path}`));
370
370
  }, timeoutMs);
371
- server.on("error", error => {
371
+ server.on("error", (error) => {
372
372
  finish(undefined, new Error(`OAuth callback port ${port} failed: ${error instanceof Error ? error.message : String(error)}`));
373
373
  });
374
374
  server.listen(port, "127.0.0.1");
@@ -20,8 +20,8 @@ export function isLoopbackHostname(hostname) {
20
20
  if (ipv4 === null) {
21
21
  return false;
22
22
  }
23
- const octets = ipv4.slice(1, 5).map(part => Number(part));
24
- if (octets.some(octet => octet > 255)) {
23
+ const octets = ipv4.slice(1, 5).map((part) => Number(part));
24
+ if (octets.some((octet) => octet > 255)) {
25
25
  return false;
26
26
  }
27
27
  return octets[0] === 127;
@@ -49,7 +49,7 @@ export function resolveOtelConfig(input) {
49
49
  };
50
50
  const envExporters = exportersFromEnv(env);
51
51
  const exporters = merged.exporters !== undefined && merged.exporters.length > 0
52
- ? merged.exporters.map(e => withEnvHeaders(e, env))
52
+ ? merged.exporters.map((e) => withEnvHeaders(e, env))
53
53
  : envExporters;
54
54
  const optedIn = input.authored !== undefined || input.serve !== undefined || envExporters.length > 0;
55
55
  if (!optedIn) {
@@ -96,7 +96,7 @@ export function stripSignalPath(url) {
96
96
  }
97
97
  /** Exporters that apply to one signal (honors per-exporter `signals`). */
98
98
  export function exportersForSignal(exporters, signal) {
99
- return exporters.filter(exporter => exporter.signals === undefined || exporter.signals.includes(signal));
99
+ return exporters.filter((exporter) => exporter.signals === undefined || exporter.signals.includes(signal));
100
100
  }
101
101
  function disabled() {
102
102
  return {
@@ -210,7 +210,7 @@ function stable(value) {
210
210
  const obj = value;
211
211
  return `{${Object.keys(obj)
212
212
  .sort()
213
- .map(key => `${JSON.stringify(key)}:${stable(obj[key])}`)
213
+ .map((key) => `${JSON.stringify(key)}:${stable(obj[key])}`)
214
214
  .join(",")}}`;
215
215
  }
216
216
  function nonEmpty(value) {
@@ -75,7 +75,7 @@ export async function shutdownOtelRuntime(runtime) {
75
75
  }
76
76
  export async function raceOtelForceFlush(work, log, timeoutMs = OTEL_FORCE_FLUSH_TIMEOUT_MS) {
77
77
  let timer;
78
- const timeout = new Promise(resolve => {
78
+ const timeout = new Promise((resolve) => {
79
79
  timer = setTimeout(() => resolve("timeout"), timeoutMs);
80
80
  });
81
81
  const result = await Promise.race([
@@ -91,11 +91,11 @@ export async function raceOtelForceFlush(work, log, timeoutMs = OTEL_FORCE_FLUSH
91
91
  }
92
92
  function startOtelSdk(config, logger, resolveExport) {
93
93
  diag.setLogger({
94
- verbose: m => logger(`[bdk:otel] ${m}`),
95
- debug: m => logger(`[bdk:otel] ${m}`),
96
- info: m => logger(`[bdk:otel] ${m}`),
97
- warn: m => logger(`[bdk:otel] warn: ${m}`),
98
- error: m => logger(`[bdk:otel] error: ${m}`),
94
+ verbose: (m) => logger(`[bdk:otel] ${m}`),
95
+ debug: (m) => logger(`[bdk:otel] ${m}`),
96
+ info: (m) => logger(`[bdk:otel] ${m}`),
97
+ warn: (m) => logger(`[bdk:otel] warn: ${m}`),
98
+ error: (m) => logger(`[bdk:otel] error: ${m}`),
99
99
  }, DiagLogLevel.ERROR);
100
100
  const resource = buildResource(config);
101
101
  let tracerProvider;
@@ -136,7 +136,7 @@ function startOtelSdk(config, logger, resolveExport) {
136
136
  const exportIntervalMillis = metricOpts.exportIntervalMillis ?? 10_000;
137
137
  const provider = new MeterProvider({
138
138
  resource,
139
- readers: exporters.map(exporter => new PeriodicExportingMetricReader({
139
+ readers: exporters.map((exporter) => new PeriodicExportingMetricReader({
140
140
  exporter: createMetricExporter(exporter, signalUrl(exporter.url, "metrics")),
141
141
  exportIntervalMillis,
142
142
  })),
@@ -155,7 +155,7 @@ function startOtelSdk(config, logger, resolveExport) {
155
155
  if (exporters.length > 0) {
156
156
  const provider = new LoggerProvider({
157
157
  resource,
158
- processors: exporters.map(exporter => new BatchLogRecordProcessor(createLogExporter(exporter, signalUrl(exporter.url, "logs")))),
158
+ processors: exporters.map((exporter) => new BatchLogRecordProcessor(createLogExporter(exporter, signalUrl(exporter.url, "logs")))),
159
159
  });
160
160
  // api-logs returns the active provider (ours on success, existing otherwise).
161
161
  if (logs.setGlobalLoggerProvider(provider) === provider) {
@@ -226,22 +226,22 @@ function withExportResource(span, resource) {
226
226
  });
227
227
  }
228
228
  async function exportQueuedSpans(spans, destinations, logger, resource) {
229
- const payload = spans.map(span => withExportResource(span, resource));
230
- const exporters = destinations.map(destination => createTraceExporter(destination, signalUrl(destination.url, "traces")));
229
+ const payload = spans.map((span) => withExportResource(span, resource));
230
+ const exporters = destinations.map((destination) => createTraceExporter(destination, signalUrl(destination.url, "traces")));
231
231
  try {
232
- const results = await Promise.all(exporters.map(exporter => new Promise(resolve => {
232
+ const results = await Promise.all(exporters.map((exporter) => new Promise((resolve) => {
233
233
  exporter.export(payload, (result) => {
234
234
  resolve(result.code === ExportResultCode.SUCCESS);
235
235
  });
236
236
  })));
237
- return results.every(ok => ok);
237
+ return results.every((ok) => ok);
238
238
  }
239
239
  catch (error) {
240
240
  logger(`[bdk:otel] deferred export failed: ${error instanceof Error ? error.message : String(error)}`);
241
241
  return false;
242
242
  }
243
243
  finally {
244
- await Promise.allSettled(exporters.map(exporter => exporter.shutdown()));
244
+ await Promise.allSettled(exporters.map((exporter) => exporter.shutdown()));
245
245
  }
246
246
  }
247
247
  function buildResource(config) {
@@ -18,7 +18,7 @@ import { MCP_ENDPOINT_PATH } from "./mcp-endpoint.js";
18
18
  * self-references (an agent asking itself recurses forever).
19
19
  */
20
20
  export function collectPeerConnections(mounts) {
21
- const knownSlugs = new Set(mounts.map(({ slug }) => slug).filter(slug => slug !== ""));
21
+ const knownSlugs = new Set(mounts.map(({ slug }) => slug).filter((slug) => slug !== ""));
22
22
  const bySlug = new Map();
23
23
  for (const { slug, project } of mounts) {
24
24
  const refs = [];
@@ -57,7 +57,7 @@ export function resolvePeerConnections(args) {
57
57
  const serverBase = trimTrailingSlash(args.serverUrl);
58
58
  const publicBase = args.publicUrl === undefined ? undefined : trimTrailingSlash(args.publicUrl);
59
59
  const headers = args.authToken === undefined ? undefined : { authorization: `Bearer ${args.authToken}` };
60
- return args.refs.map(ref => ({
60
+ return args.refs.map((ref) => ({
61
61
  name: ref.name,
62
62
  localUrl: `${serverBase}/${ref.targetSlug}${MCP_ENDPOINT_PATH}`,
63
63
  ...(publicBase === undefined
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Mirror a persistent slot's `/state/logs` directory onto the framework store.
3
+ *
4
+ * One loop for every file in the folder. A file whose size and mtime match
5
+ * the last upload is left alone, including the read. Anything else is read
6
+ * from its tail, masked, and written over the same key. Store keys whose
7
+ * files are gone are deleted. The timer lives on the serve process, because
8
+ * a persistent VM stays up between turns. Freeze pods do not enter this path.
9
+ */
10
+ import type { FileSink } from "../files.js";
11
+ import type { AgentProject } from "../types.js";
12
+ /** How often the resident process snapshots the directory. */
13
+ export declare const PERSISTENT_STAGE_LOG_SYNC_INTERVAL_MS = 30000;
14
+ /**
15
+ * Basenames written by the persistent stage logger: timestamp, optional generation, stage.
16
+ * Rejects paths, so a listing cannot escape the directory.
17
+ */
18
+ export declare const PERSISTENT_STAGE_LOG_FILE_NAME: RegExp;
19
+ export interface PersistentStageLogMirror {
20
+ logsDir: string;
21
+ sink: FileSink;
22
+ agentName: string;
23
+ logger: (line: string) => void;
24
+ }
25
+ export declare function selectPersistentStageLogMirror(input: {
26
+ project: AgentProject;
27
+ logsDir: string;
28
+ logger?: (line: string) => void;
29
+ env?: Record<string, string | undefined>;
30
+ }): PersistentStageLogMirror | undefined;
31
+ /**
32
+ * Start the directory sync and return a stop that flushes once more. The
33
+ * interval does not keep the process alive on its own. A tick that lands
34
+ * while a sync is running is dropped; stop still runs one more after it.
35
+ */
36
+ export declare function startPersistentStageLogMirror(mirror: PersistentStageLogMirror, options?: {
37
+ intervalMs?: number;
38
+ }): {
39
+ stop: () => Promise<void>;
40
+ };
41
+ /**
42
+ * Upload changed files under `persistent-stage-logs/`, then drop keys for files that are
43
+ * no longer in the directory. A missing directory is a no-op, so a tick before
44
+ * the first stage command does not sweep a previous snapshot.
45
+ */
46
+ export declare function syncPersistentStageLogDirectory(args: {
47
+ dir: string;
48
+ sink: FileSink;
49
+ agentName: string;
50
+ uploaded: Map<string, {
51
+ size: number;
52
+ mtimeMs: number;
53
+ }>;
54
+ maxBytes?: number;
55
+ logger?: (line: string) => void;
56
+ }): Promise<void>;
57
+ //# sourceMappingURL=persistent-stage-log-mirror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistent-stage-log-mirror.d.ts","sourceRoot":"","sources":["../../src/internal/persistent-stage-log-mirror.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,8DAA8D;AAC9D,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAkD,CAAC;AAEhG,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,wBAAwB,GAAG,SAAS,CAiBvC;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAgD/B;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CAAC,IAAI,EAAE;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFhB"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Mirror a persistent slot's `/state/logs` directory onto the framework store.
3
+ *
4
+ * One loop for every file in the folder. A file whose size and mtime match
5
+ * the last upload is left alone, including the read. Anything else is read
6
+ * from its tail, masked, and written over the same key. Store keys whose
7
+ * files are gone are deleted. The timer lives on the serve process, because
8
+ * a persistent VM stays up between turns. Freeze pods do not enter this path.
9
+ */
10
+ import { open, readdir, stat } from "node:fs/promises";
11
+ import { join } from "node:path";
12
+ import { cursorHostedFiles } from "../files-backends/cursor-hosted.js";
13
+ import { agentSdkStorageKeys } from "../storage-protocol.js";
14
+ import { resolveApiKeySync } from "./cursor/credentials.js";
15
+ import { describeError } from "./describe-error.js";
16
+ import { maskStartLogTokens, START_LOG_STORE_MAX_BYTES } from "./start-log-store.js";
17
+ import { resolveAgentV2Hosting } from "./v2-hosting.js";
18
+ /** How often the resident process snapshots the directory. */
19
+ export const PERSISTENT_STAGE_LOG_SYNC_INTERVAL_MS = 30_000;
20
+ /**
21
+ * Basenames written by the persistent stage logger: timestamp, optional generation, stage.
22
+ * Rejects paths, so a listing cannot escape the directory.
23
+ */
24
+ export const PERSISTENT_STAGE_LOG_FILE_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,180}\.log$/;
25
+ export function selectPersistentStageLogMirror(input) {
26
+ const hosting = resolveAgentV2Hosting({
27
+ architecture: input.project.agent.architecture,
28
+ env: input.env,
29
+ });
30
+ if (hosting.kind !== "cursor-managed-persistent") {
31
+ return undefined;
32
+ }
33
+ return {
34
+ logsDir: input.logsDir,
35
+ sink: cursorHostedFiles({
36
+ resolveStoreSourceId: () => hosting.resolveStoreIds().frameworkStoreSourceId,
37
+ resolveApiKey: () => resolveApiKeySync()?.apiKey,
38
+ }),
39
+ agentName: input.project.name,
40
+ logger: input.logger ?? (() => { }),
41
+ };
42
+ }
43
+ /**
44
+ * Start the directory sync and return a stop that flushes once more. The
45
+ * interval does not keep the process alive on its own. A tick that lands
46
+ * while a sync is running is dropped; stop still runs one more after it.
47
+ */
48
+ export function startPersistentStageLogMirror(mirror, options) {
49
+ const uploaded = new Map();
50
+ let stopped = false;
51
+ let syncing = false;
52
+ let chain = Promise.resolve();
53
+ const syncOnce = () => {
54
+ chain = chain
55
+ .then(() => syncPersistentStageLogDirectory({
56
+ dir: mirror.logsDir,
57
+ sink: mirror.sink,
58
+ agentName: mirror.agentName,
59
+ uploaded,
60
+ logger: mirror.logger,
61
+ }))
62
+ .catch((error) => {
63
+ mirror.logger(`[bdk] persistent-stage-logs: sync failed (${describeError(error)})`);
64
+ });
65
+ return chain;
66
+ };
67
+ const timer = setInterval(() => {
68
+ if (stopped || syncing) {
69
+ return;
70
+ }
71
+ syncing = true;
72
+ void syncOnce().finally(() => {
73
+ syncing = false;
74
+ });
75
+ }, options?.intervalMs ?? PERSISTENT_STAGE_LOG_SYNC_INTERVAL_MS);
76
+ timer.unref();
77
+ syncing = true;
78
+ void syncOnce().finally(() => {
79
+ syncing = false;
80
+ });
81
+ return {
82
+ stop: () => {
83
+ if (stopped) {
84
+ return chain;
85
+ }
86
+ stopped = true;
87
+ clearInterval(timer);
88
+ return syncOnce();
89
+ },
90
+ };
91
+ }
92
+ /**
93
+ * Upload changed files under `persistent-stage-logs/`, then drop keys for files that are
94
+ * no longer in the directory. A missing directory is a no-op, so a tick before
95
+ * the first stage command does not sweep a previous snapshot.
96
+ */
97
+ export async function syncPersistentStageLogDirectory(args) {
98
+ const logger = args.logger ?? (() => { });
99
+ const maxBytes = args.maxBytes ?? START_LOG_STORE_MAX_BYTES;
100
+ let entries;
101
+ try {
102
+ entries = await readdir(args.dir, { withFileTypes: true });
103
+ }
104
+ catch (error) {
105
+ if (isEnoent(error)) {
106
+ return;
107
+ }
108
+ logger(`[bdk] persistent-stage-logs: read dir failed (${describeError(error)})`);
109
+ return;
110
+ }
111
+ const desired = new Set();
112
+ const names = entries
113
+ .filter((entry) => entry.isFile() && PERSISTENT_STAGE_LOG_FILE_NAME.test(entry.name))
114
+ .map((entry) => entry.name)
115
+ .sort();
116
+ for (const name of names) {
117
+ const path = join(args.dir, name);
118
+ let fileStat;
119
+ try {
120
+ fileStat = await stat(path);
121
+ }
122
+ catch (error) {
123
+ if (isEnoent(error)) {
124
+ continue;
125
+ }
126
+ // Keep the previous snapshot when this tick cannot see the file.
127
+ logger(`[bdk] persistent-stage-logs: read failed for ${name} (${describeError(error)})`);
128
+ desired.add(name);
129
+ continue;
130
+ }
131
+ if (fileStat.size === 0) {
132
+ continue;
133
+ }
134
+ const previous = args.uploaded.get(name);
135
+ if (previous?.size === fileStat.size && previous.mtimeMs === fileStat.mtimeMs) {
136
+ desired.add(name);
137
+ continue;
138
+ }
139
+ let raw;
140
+ try {
141
+ raw = await readLogTail(path, fileStat.size, maxBytes);
142
+ }
143
+ catch (error) {
144
+ if (isEnoent(error)) {
145
+ continue;
146
+ }
147
+ logger(`[bdk] persistent-stage-logs: read failed for ${name} (${describeError(error)})`);
148
+ desired.add(name);
149
+ continue;
150
+ }
151
+ if (raw.length === 0) {
152
+ desired.add(name);
153
+ continue;
154
+ }
155
+ const body = maskStartLogTokens(raw);
156
+ desired.add(name);
157
+ const key = agentSdkStorageKeys.persistentStageLog(args.agentName, name);
158
+ try {
159
+ await args.sink.put(key, new TextEncoder().encode(body));
160
+ args.uploaded.set(name, { size: fileStat.size, mtimeMs: fileStat.mtimeMs });
161
+ }
162
+ catch (error) {
163
+ logger(`[bdk] persistent-stage-logs: persist failed for ${name} (${describeError(error)})`);
164
+ }
165
+ }
166
+ const prefix = agentSdkStorageKeys.persistentStageLogsPrefix(args.agentName);
167
+ let listed;
168
+ try {
169
+ listed = await args.sink.list(prefix);
170
+ }
171
+ catch (error) {
172
+ logger(`[bdk] persistent-stage-logs: list failed (${describeError(error)})`);
173
+ return;
174
+ }
175
+ for (const item of listed) {
176
+ const name = fileNameFromPersistentStageLogKey(item.key, prefix);
177
+ if (name === undefined || desired.has(name)) {
178
+ continue;
179
+ }
180
+ try {
181
+ await args.sink.delete(item.key);
182
+ args.uploaded.delete(name);
183
+ }
184
+ catch (error) {
185
+ logger(`[bdk] persistent-stage-logs: delete failed for ${name} (${describeError(error)})`);
186
+ }
187
+ }
188
+ }
189
+ /** Read the last `maxBytes` of a file without loading the rest of it. */
190
+ async function readLogTail(path, size, maxBytes) {
191
+ const length = Math.min(size, maxBytes);
192
+ const position = size - length;
193
+ const handle = await open(path, "r");
194
+ try {
195
+ const buffer = Buffer.alloc(length);
196
+ let offset = 0;
197
+ while (offset < length) {
198
+ const { bytesRead } = await handle.read(buffer, offset, length - offset, position + offset);
199
+ if (bytesRead === 0) {
200
+ break;
201
+ }
202
+ offset += bytesRead;
203
+ }
204
+ return new TextDecoder().decode(buffer.subarray(0, offset));
205
+ }
206
+ finally {
207
+ await handle.close();
208
+ }
209
+ }
210
+ function fileNameFromPersistentStageLogKey(key, prefix) {
211
+ if (!key.startsWith(prefix)) {
212
+ return undefined;
213
+ }
214
+ const segment = key.slice(prefix.length);
215
+ if (segment.length === 0 || segment.includes("/")) {
216
+ return undefined;
217
+ }
218
+ try {
219
+ const name = decodeURIComponent(segment);
220
+ return PERSISTENT_STAGE_LOG_FILE_NAME.test(name) ? name : undefined;
221
+ }
222
+ catch {
223
+ return undefined;
224
+ }
225
+ }
226
+ function isEnoent(error) {
227
+ return (error !== null &&
228
+ typeof error === "object" &&
229
+ "code" in error &&
230
+ error.code === "ENOENT");
231
+ }
@@ -8,7 +8,7 @@ import { dirname } from "node:path";
8
8
  export const PLATFORM_SCHEDULE_CATALOG_FILENAME = "platform-schedule-names.json";
9
9
  export async function syncHostedPlatformSchedules(args) {
10
10
  const previous = await readScheduleCatalog(args.catalogPath);
11
- const currentNames = args.schedules.map(schedule => schedule.name);
11
+ const currentNames = args.schedules.map((schedule) => schedule.name);
12
12
  const currentSet = new Set(currentNames);
13
13
  const failedDeletes = [];
14
14
  for (const name of previous) {
@@ -110,7 +110,7 @@ const AGENTSDK_REMINDERS_PREFIX = "/internal/agentsdk";
110
110
  const APPLY_REMINDER_OUTCOME_MAX_ATTEMPTS = 3;
111
111
  const APPLY_REMINDER_OUTCOME_RETRY_DELAY_MS = 50;
112
112
  async function sleepMs(ms) {
113
- await new Promise(resolve => setTimeout(resolve, ms));
113
+ await new Promise((resolve) => setTimeout(resolve, ms));
114
114
  }
115
115
  async function withBoundedApplyRetries(run) {
116
116
  let lastError;
@@ -92,7 +92,7 @@ export function renderAgentsIndexHtml(agents, options = {}) {
92
92
  const docs = options.docs !== false;
93
93
  const multi = options.multi === true;
94
94
  const cards = agents
95
- .map(agent => {
95
+ .map((agent) => {
96
96
  const playground = agent.slug === "" ? "/playground" : `/${agent.slug}/playground`;
97
97
  const slugLabel = agent.slug === "" ? "/" : `/${agent.slug}`;
98
98
  const meta = `${agent.model || "—"} · ${agent.tools} tool${agent.tools === 1 ? "" : "s"} · ${agent.channels} channel${agent.channels === 1 ? "" : "s"}`;
@@ -104,7 +104,7 @@ export function renderAgentsIndexHtml(agents, options = {}) {
104
104
  })
105
105
  .join("\n");
106
106
  const routes = hostRouteRows(agents, docs, multi)
107
- .map(row => ` <tr><td><a href="${escapeHtml(row.href)}"><code>${escapeHtml(row.path)}</code></a></td><td>${escapeHtml(row.blurb)}</td></tr>`)
107
+ .map((row) => ` <tr><td><a href="${escapeHtml(row.href)}"><code>${escapeHtml(row.path)}</code></a></td><td>${escapeHtml(row.blurb)}</td></tr>`)
108
108
  .join("\n");
109
109
  return HOST_HOME_TEMPLATE.replace("<!--CARDS-->", cards || ' <div class="card-meta">No agents mounted.</div>')
110
110
  .replace("<!--COUNT-->", String(agents.length))
@@ -167,7 +167,7 @@ export function startPlaygroundDevServer(options) {
167
167
  }
168
168
  });
169
169
  let stopped = false;
170
- child.on("error", err => {
170
+ child.on("error", (err) => {
171
171
  if (stopped) {
172
172
  return;
173
173
  }
@@ -206,7 +206,7 @@ function spawnVite(toolchain, args, options) {
206
206
  stdio: "inherit",
207
207
  });
208
208
  child.on("error", reject);
209
- child.on("exit", code => {
209
+ child.on("exit", (code) => {
210
210
  resolve(code ?? 1);
211
211
  });
212
212
  });
@@ -134,7 +134,7 @@ export async function startPlaygroundProxy(args) {
134
134
  // Drop keep-alive / streamed playground connections so Ctrl-C
135
135
  // does not hang waiting for active sockets.
136
136
  server.closeAllConnections();
137
- server.close(error => {
137
+ server.close((error) => {
138
138
  if (error) {
139
139
  reject(error);
140
140
  return;
@@ -355,7 +355,7 @@ async function forwardOnce(args) {
355
355
  headers: outboundHeaders,
356
356
  };
357
357
  return await new Promise((resolve, reject) => {
358
- const upstreamReq = requestFn(options, upstreamRes => {
358
+ const upstreamReq = requestFn(options, (upstreamRes) => {
359
359
  const status = upstreamRes.statusCode ?? 502;
360
360
  if (status === 401 && args.deferWriteOnUnauthorized) {
361
361
  // Drain so the socket can be reused; caller will refresh + retry.
@@ -380,7 +380,7 @@ async function forwardOnce(args) {
380
380
  resolve(status);
381
381
  });
382
382
  });
383
- upstreamReq.on("error", error => {
383
+ upstreamReq.on("error", (error) => {
384
384
  reject(error);
385
385
  });
386
386
  res.on("close", () => {
@@ -115,7 +115,7 @@ export function buildDatadogGaugeSeries(args) {
115
115
  value: args.eventLog.residentSessions,
116
116
  },
117
117
  ];
118
- return points.map(point => ({
118
+ return points.map((point) => ({
119
119
  metric: point.name,
120
120
  type: "gauge",
121
121
  points: [[args.timestampSec, point.value]],
@@ -137,7 +137,7 @@ export declare class ReminderRunner {
137
137
  continuationToken?: string;
138
138
  }): Promise<ReminderInfo[]>;
139
139
  cancel(id: string, reason?: string): Promise<ReminderInfo | undefined>;
140
- /** Cancel all armed reminders matching a continuation token (e.g. PR closed). */
140
+ /** Cancel armed and firing reminders for one continuation. */
141
141
  cancelForContinuation(continuationToken: string, reason: string): Promise<number>;
142
142
  /**
143
143
  * Re-key armed reminders when a channel rotates a session's continuation
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-runner.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminder-runner.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-runner.ts"],"names":[],"mappings":"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"}