@cursor/bdk 0.2.6 → 0.2.8

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 (333) hide show
  1. package/dist/bin/agent-serve.js +52 -57
  2. package/dist/channels/github/github-channel.d.ts.map +1 -1
  3. package/dist/channels/github/github-channel.js +32 -8
  4. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  5. package/dist/channels/slack/dispatch.js +37 -29
  6. package/dist/channels/slack/external-policy.d.ts.map +1 -1
  7. package/dist/channels/slack/external-policy.js +6 -6
  8. package/dist/channels/slack/inbound.d.ts +5 -0
  9. package/dist/channels/slack/inbound.d.ts.map +1 -1
  10. package/dist/channels/slack/inbound.js +13 -0
  11. package/dist/channels/slack/index.d.ts +3 -0
  12. package/dist/channels/slack/index.d.ts.map +1 -1
  13. package/dist/channels/slack/index.js +3 -0
  14. package/dist/channels/slack/log.d.ts +1 -1
  15. package/dist/channels/slack/log.js +1 -1
  16. package/dist/channels/slack/self-identity.d.ts +15 -0
  17. package/dist/channels/slack/self-identity.d.ts.map +1 -0
  18. package/dist/channels/slack/self-identity.js +48 -0
  19. package/dist/channels/slack/sender-name.d.ts +17 -0
  20. package/dist/channels/slack/sender-name.d.ts.map +1 -0
  21. package/dist/channels/slack/sender-name.js +87 -0
  22. package/dist/channels/slack/setup.js +1 -1
  23. package/dist/channels/slack/user-info.d.ts +15 -0
  24. package/dist/channels/slack/user-info.d.ts.map +1 -0
  25. package/dist/channels/slack/user-info.js +57 -0
  26. package/dist/docs/404.html +2 -2
  27. package/dist/docs/assets/{app.CJLKDVza.js → app.oyjtOr3W.js} +4 -4
  28. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +1 -0
  29. package/dist/docs/assets/chunks/{VPLocalSearchBox.BW9mrQmq.js → VPLocalSearchBox.D0P6J_UJ.js} +1 -1
  30. package/dist/docs/assets/chunks/{arc.D8ZOvM1m.js → arc.B0LY1J1h.js} +1 -1
  31. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CXEKhLW-.js → architectureDiagram-Q4EWVU46.dPduLUxY.js} +1 -1
  32. package/dist/docs/assets/chunks/{baseUniq.BJkVKblr.js → baseUniq.B_Ohm21h.js} +1 -1
  33. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DQDbHxor.js → blockDiagram-DXYQGD6D.B4zcanaJ.js} +1 -1
  34. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.ByMD6LYM.js → c4Diagram-AHTNJAMY.D9Iw21nx.js} +1 -1
  35. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +1 -0
  36. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Dtq1aVI9.js → chunk-4BX2VUAB.DDVwRShI.js} +1 -1
  37. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BL_XrkoQ.js → chunk-4TB4RGXK.DsYcdn1i.js} +1 -1
  38. package/dist/docs/assets/chunks/{chunk-55IACEB6.BDPXu94_.js → chunk-55IACEB6.BzzQvcYp.js} +1 -1
  39. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DhGOQj4k.js → chunk-EDXVE4YY.BMiXZ7FX.js} +1 -1
  40. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DSF5nr8v.js → chunk-FMBD7UC4.D_mBcLoc.js} +1 -1
  41. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Day7wayw.js → chunk-OYMX7WX6.CMVjWVMx.js} +1 -1
  42. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.CpBEC0zA.js → chunk-QZHKN3VN.BG-FrPv9.js} +1 -1
  43. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.X_7rY1rx.js → chunk-YZCP3GAM.CkFE1ap3.js} +1 -1
  44. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +1 -0
  45. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +1 -0
  46. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +1 -0
  47. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVRmi2ko.js → cose-bilkent-S5V4N54A.BVNnCTvY.js} +1 -1
  48. package/dist/docs/assets/chunks/{dagre-KV5264BT.Dei9oslB.js → dagre-KV5264BT.CDN5PR9l.js} +1 -1
  49. package/dist/docs/assets/chunks/{diagram-5BDNPKRD._M-efGt7.js → diagram-5BDNPKRD.DQRUlT-i.js} +1 -1
  50. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.D1Vmhfsj.js → diagram-G4DWMVQ6.CoeblYQT.js} +1 -1
  51. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.cE1bmvAC.js → diagram-MMDJMWI5.DW3ymjl0.js} +1 -1
  52. package/dist/docs/assets/chunks/{diagram-TYMM5635.DkXAfznP.js → diagram-TYMM5635.BP0uN4Jw.js} +1 -1
  53. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DH_pSwPg.js → erDiagram-SMLLAGMA.DVFUWEn4.js} +1 -1
  54. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.kAWVN9j1.js → flowDiagram-DWJPFMVM.HU-eHspv.js} +1 -1
  55. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.8r0w49-p.js → ganttDiagram-T4ZO3ILL.DHNhXijY.js} +1 -1
  56. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.BDa7Bi1i.js → gitGraphDiagram-UUTBAWPF.DkISXcO3.js} +1 -1
  57. package/dist/docs/assets/chunks/{graph.BMPXHz_B.js → graph.CCV0fuRR.js} +1 -1
  58. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.BmlcqewS.js → infoDiagram-42DDH7IO.bgILzOoc.js} +1 -1
  59. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CVSEQSul.js → ishikawaDiagram-UXIWVN3A.CuryXC0F.js} +1 -1
  60. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BpeWJ5n-.js → journeyDiagram-VCZTEJTY.BL1Pr-wu.js} +1 -1
  61. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DHbDXuxB.js → kanban-definition-6JOO6SKY.BbGjvk4l.js} +1 -1
  62. package/dist/docs/assets/chunks/{layout.CzrCDgkP.js → layout.C4PfdldS.js} +1 -1
  63. package/dist/docs/assets/chunks/{linear.HwBsflwN.js → linear.C3xD1T6X.js} +1 -1
  64. package/dist/docs/assets/chunks/{min.DqGHolT3.js → min.CzgRAQ9c.js} +1 -1
  65. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.ZYGlOawh.js → mindmap-definition-QFDTVHPH.CA9rSWum.js} +1 -1
  66. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.C2KRXlNR.js → pieDiagram-DEJITSTG.B8MprgJu.js} +1 -1
  67. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CHj3Qefp.js → quadrantDiagram-34T5L4WZ.DndDwbKT.js} +1 -1
  68. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.B1L4Tf7k.js → requirementDiagram-MS252O5E.Zhfgwlnn.js} +1 -1
  69. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.dNR2yi1B.js → sankeyDiagram-XADWPNL6.B6RRm6N5.js} +1 -1
  70. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BrvQ3C6m.js → sequenceDiagram-FGHM5R23.Bfmz-1PN.js} +1 -1
  71. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BtehEykA.js → stateDiagram-FHFEXIEX.gbrdNqgj.js} +1 -1
  72. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +1 -0
  73. package/dist/docs/assets/chunks/{theme.BDHBZUkP.js → theme.gpWjytMh.js} +2 -2
  74. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bn7nhqEN.js → timeline-definition-GMOUNBTQ.Bl1l7M1f.js} +1 -1
  75. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.DKhc38sz.js → vennDiagram-DHZGUBPP.Dfle4U0d.js} +1 -1
  76. package/dist/docs/assets/chunks/{wardley-RL74JXVD.DOXQ0w8J.js → wardley-RL74JXVD.BJrCW6xc.js} +1 -1
  77. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.Bbq5B2Ic.js → wardleyDiagram-NUSXRM2D.CM_4lmvZ.js} +1 -1
  78. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.B77HE1K8.js → xychartDiagram-5P7HB3ND.CHT5X28R.js} +1 -1
  79. package/dist/docs/assets/{reference_cli.md.BsgDqYPh.js → reference_cli.md.GwugN3n-.js} +5 -5
  80. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +1 -0
  81. package/dist/docs/building-with-agents.html +35 -35
  82. package/dist/docs/deployment.html +35 -35
  83. package/dist/docs/evals.html +35 -35
  84. package/dist/docs/guides/agent-to-agent.html +35 -35
  85. package/dist/docs/guides/bitbucket.html +35 -35
  86. package/dist/docs/guides/cloud-agents.html +35 -35
  87. package/dist/docs/guides/convert-automation.html +35 -35
  88. package/dist/docs/guides/github.html +35 -35
  89. package/dist/docs/guides/gitlab.html +35 -35
  90. package/dist/docs/guides/grokbot-agents.html +35 -35
  91. package/dist/docs/guides/hooks.html +35 -35
  92. package/dist/docs/guides/improve.html +35 -35
  93. package/dist/docs/guides/jev.html +35 -35
  94. package/dist/docs/guides/mcp-oauth.html +35 -35
  95. package/dist/docs/guides/opentelemetry.html +35 -35
  96. package/dist/docs/guides/slack.html +35 -35
  97. package/dist/docs/guides/webhooks.html +35 -35
  98. package/dist/docs/hashmap.json +1 -1
  99. package/dist/docs/hillclimbing.html +35 -35
  100. package/dist/docs/index.html +35 -35
  101. package/dist/docs/llms-full.txt +20 -9
  102. package/dist/docs/quickstart.html +35 -35
  103. package/dist/docs/reference/agent-config.html +35 -35
  104. package/dist/docs/reference/artifacts.html +35 -35
  105. package/dist/docs/reference/channels.html +35 -35
  106. package/dist/docs/reference/cli.html +39 -39
  107. package/dist/docs/reference/cli.md +20 -9
  108. package/dist/docs/reference/connections.html +35 -35
  109. package/dist/docs/reference/evals.html +35 -35
  110. package/dist/docs/reference/extensions.html +35 -35
  111. package/dist/docs/reference/hooks.html +35 -35
  112. package/dist/docs/reference/http-api.html +35 -35
  113. package/dist/docs/reference/instructions.html +35 -35
  114. package/dist/docs/reference/playground.html +35 -35
  115. package/dist/docs/reference/project-layout.html +35 -35
  116. package/dist/docs/reference/prompt.html +35 -35
  117. package/dist/docs/reference/schedules.html +35 -35
  118. package/dist/docs/reference/sessions.html +35 -35
  119. package/dist/docs/reference/skills.html +35 -35
  120. package/dist/docs/reference/subagents.html +35 -35
  121. package/dist/docs/reference/tools.html +35 -35
  122. package/dist/docs/templates/agentic-owners.html +35 -35
  123. package/dist/docs/templates/grokbot-agents.html +35 -35
  124. package/dist/docs/templates/security-reviewer.html +35 -35
  125. package/dist/docs/templates/thermo-quality-review.html +35 -35
  126. package/dist/docs/templates/thermo-review.html +35 -35
  127. package/dist/docs/templates/triage.html +35 -35
  128. package/dist/docs/troubleshooting.html +35 -35
  129. package/dist/extensions/cursor-cloud-agents/extension.d.ts +14 -0
  130. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  131. package/dist/extensions/cursor-cloud-agents/extension.js +5 -0
  132. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts +17 -0
  133. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -0
  134. package/dist/extensions/cursor-cloud-agents/lib/watch.js +99 -0
  135. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.d.ts +19 -0
  136. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.d.ts.map +1 -0
  137. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +71 -0
  138. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +9 -5
  139. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -1
  140. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +3 -1
  141. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  142. package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -2
  143. package/dist/extensions.d.ts +1 -1
  144. package/dist/extensions.js +1 -1
  145. package/dist/files-backends/cursor-hosted.d.ts +22 -83
  146. package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
  147. package/dist/files-backends/cursor-hosted.js +46 -160
  148. package/dist/files.d.ts +9 -32
  149. package/dist/files.d.ts.map +1 -1
  150. package/dist/files.js +7 -32
  151. package/dist/internal/artifacts-store.d.ts +13 -25
  152. package/dist/internal/artifacts-store.d.ts.map +1 -1
  153. package/dist/internal/artifacts-store.js +25 -46
  154. package/dist/internal/cli-ax.d.ts +10 -17
  155. package/dist/internal/cli-ax.d.ts.map +1 -1
  156. package/dist/internal/cli-ax.js +87 -155
  157. package/dist/internal/cli-bitbucket.js +5 -5
  158. package/dist/internal/cli-deploy.d.ts +4 -1
  159. package/dist/internal/cli-deploy.d.ts.map +1 -1
  160. package/dist/internal/cli-deploy.js +117 -20
  161. package/dist/internal/cli-github.js +13 -13
  162. package/dist/internal/cli-gitlab.js +5 -5
  163. package/dist/internal/continuation-identity.d.ts +2 -0
  164. package/dist/internal/continuation-identity.d.ts.map +1 -1
  165. package/dist/internal/continuation-identity.js +4 -0
  166. package/dist/internal/conversation-mirror.d.ts +9 -38
  167. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  168. package/dist/internal/conversation-mirror.js +62 -68
  169. package/dist/internal/cursor/account-mcp.d.ts +1 -1
  170. package/dist/internal/cursor/account-mcp.js +1 -1
  171. package/dist/internal/cursor/backend-client.js +1 -1
  172. package/dist/internal/cursor/github-credentials.js +3 -3
  173. package/dist/internal/cursor/hosted-bound-secrets.d.ts +6 -2
  174. package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -1
  175. package/dist/internal/cursor/hosted-bound-secrets.js +13 -2
  176. package/dist/internal/cursor/hosted-store-secrets.d.ts +13 -37
  177. package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
  178. package/dist/internal/cursor/hosted-store-secrets.js +13 -37
  179. package/dist/internal/cursor/store-api-client.d.ts +17 -39
  180. package/dist/internal/cursor/store-api-client.d.ts.map +1 -1
  181. package/dist/internal/cursor/store-api-client.js +15 -37
  182. package/dist/internal/cursor-deployment-relay.js +3 -3
  183. package/dist/internal/cursor-event-relay.js +1 -1
  184. package/dist/internal/cursor-relay-core.d.ts +1 -1
  185. package/dist/internal/cursor-relay-core.d.ts.map +1 -1
  186. package/dist/internal/deploy-client.d.ts +55 -63
  187. package/dist/internal/deploy-client.d.ts.map +1 -1
  188. package/dist/internal/deploy-client.js +48 -28
  189. package/dist/internal/discovery/agent.d.ts +1 -1
  190. package/dist/internal/discovery/agent.d.ts.map +1 -1
  191. package/dist/internal/discovery/agent.js +4 -0
  192. package/dist/internal/discovery/extensions.d.ts +2 -1
  193. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  194. package/dist/internal/discovery/extensions.js +11 -1
  195. package/dist/internal/discovery/project.d.ts.map +1 -1
  196. package/dist/internal/discovery/project.js +1 -0
  197. package/dist/internal/distribution.d.ts +2 -2
  198. package/dist/internal/distribution.d.ts.map +1 -1
  199. package/dist/internal/distribution.js +2 -2
  200. package/dist/internal/docs-site.js +3 -3
  201. package/dist/internal/eval-run-store.js +8 -8
  202. package/dist/internal/framework-file-storage.d.ts +10 -34
  203. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  204. package/dist/internal/framework-file-storage.js +12 -39
  205. package/dist/internal/framework-storage-selection.d.ts +10 -46
  206. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  207. package/dist/internal/framework-storage-selection.js +15 -64
  208. package/dist/internal/github-fanout.js +2 -2
  209. package/dist/internal/handleAgentServeTrigger.d.ts +5 -8
  210. package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
  211. package/dist/internal/handleAgentServeTrigger.js +5 -8
  212. package/dist/internal/host-files.js +6 -9
  213. package/dist/internal/host-platforms.js +5 -5
  214. package/dist/internal/hosted-catch.d.ts +3 -2
  215. package/dist/internal/hosted-catch.d.ts.map +1 -1
  216. package/dist/internal/hosted-catch.js +27 -9
  217. package/dist/internal/hosted-delivery-protocol.d.ts +31 -8
  218. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  219. package/dist/internal/hosted-delivery-protocol.js +102 -1
  220. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  221. package/dist/internal/hosted-delivery.js +32 -12
  222. package/dist/internal/hosted-execution-diag.d.ts +13 -24
  223. package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
  224. package/dist/internal/hosted-execution-diag.js +11 -20
  225. package/dist/internal/hosted-execution-flush.d.ts +22 -10
  226. package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
  227. package/dist/internal/hosted-execution-flush.js +45 -9
  228. package/dist/internal/hosted-managed-automation.js +5 -5
  229. package/dist/internal/hosting.d.ts +5 -10
  230. package/dist/internal/hosting.d.ts.map +1 -1
  231. package/dist/internal/hosting.js +5 -10
  232. package/dist/internal/legacy-command-guard.d.ts +1 -4
  233. package/dist/internal/legacy-command-guard.d.ts.map +1 -1
  234. package/dist/internal/legacy-command-guard.js +2 -11
  235. package/dist/internal/listen-port.js +1 -1
  236. package/dist/internal/local-control-plane.js +6 -6
  237. package/dist/internal/logs-client.d.ts +20 -1
  238. package/dist/internal/logs-client.d.ts.map +1 -1
  239. package/dist/internal/logs-client.js +89 -1
  240. package/dist/internal/mcp-endpoint.js +1 -1
  241. package/dist/internal/otel/collector.js +1 -1
  242. package/dist/internal/otel/runtime.js +13 -13
  243. package/dist/internal/platform-schedule-sync.js +2 -2
  244. package/dist/internal/playground/toolchain.js +6 -6
  245. package/dist/internal/process-memory-telemetry.js +2 -2
  246. package/dist/internal/reminder-runner.d.ts +8 -3
  247. package/dist/internal/reminder-runner.d.ts.map +1 -1
  248. package/dist/internal/reminder-runner.js +51 -52
  249. package/dist/internal/resolve-prod-target.d.ts +1 -12
  250. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  251. package/dist/internal/resolve-prod-target.js +2 -32
  252. package/dist/internal/resolved-connections.js +8 -8
  253. package/dist/internal/run-client.d.ts +4 -3
  254. package/dist/internal/run-client.d.ts.map +1 -1
  255. package/dist/internal/run-client.js +98 -61
  256. package/dist/internal/runtime-dispatch-runner.d.ts +1 -0
  257. package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
  258. package/dist/internal/runtime-dispatch-runner.js +7 -1
  259. package/dist/internal/schedule-runner.js +1 -1
  260. package/dist/internal/sdk-runner.d.ts +4 -0
  261. package/dist/internal/sdk-runner.d.ts.map +1 -1
  262. package/dist/internal/sdk-runner.js +37 -22
  263. package/dist/internal/server.d.ts +2 -0
  264. package/dist/internal/server.d.ts.map +1 -1
  265. package/dist/internal/server.js +39 -38
  266. package/dist/internal/session-engine.d.ts +40 -44
  267. package/dist/internal/session-engine.d.ts.map +1 -1
  268. package/dist/internal/session-engine.js +108 -97
  269. package/dist/internal/session-run-log.d.ts +10 -24
  270. package/dist/internal/session-run-log.d.ts.map +1 -1
  271. package/dist/internal/session-run-log.js +13 -27
  272. package/dist/internal/sessions-client.d.ts.map +1 -1
  273. package/dist/internal/sessions-client.js +6 -3
  274. package/dist/internal/skills-sync.d.ts +3 -5
  275. package/dist/internal/skills-sync.d.ts.map +1 -1
  276. package/dist/internal/skills-sync.js +3 -5
  277. package/dist/internal/start-log-store.d.ts +7 -18
  278. package/dist/internal/start-log-store.d.ts.map +1 -1
  279. package/dist/internal/start-log-store.js +47 -24
  280. package/dist/internal/storage-coordinator.d.ts +7 -10
  281. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  282. package/dist/internal/storage-coordinator.js +18 -20
  283. package/dist/internal/storage-roles.d.ts +5 -0
  284. package/dist/internal/storage-roles.d.ts.map +1 -1
  285. package/dist/internal/store-api-protocol.d.ts +12 -33
  286. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  287. package/dist/internal/store-api-protocol.js +6 -22
  288. package/dist/internal/store-mirror.d.ts +4 -5
  289. package/dist/internal/store-mirror.d.ts.map +1 -1
  290. package/dist/internal/store-mirror.js +6 -8
  291. package/dist/internal/turn-cost.d.ts.map +1 -1
  292. package/dist/internal/turn-cost.js +31 -18
  293. package/dist/internal/turn-lease-store.d.ts +12 -5
  294. package/dist/internal/turn-lease-store.d.ts.map +1 -1
  295. package/dist/internal/turn-lease-store.js +61 -8
  296. package/dist/internal/v2-hosting.d.ts +4 -7
  297. package/dist/internal/v2-hosting.d.ts.map +1 -1
  298. package/dist/internal/v2-hosting.js +4 -7
  299. package/dist/internal/workspace-sync.d.ts +3 -6
  300. package/dist/internal/workspace-sync.d.ts.map +1 -1
  301. package/dist/internal/workspace-sync.js +3 -6
  302. package/dist/internal/workspace.d.ts +10 -16
  303. package/dist/internal/workspace.d.ts.map +1 -1
  304. package/dist/internal/workspace.js +9 -14
  305. package/dist/memory.d.ts +17 -43
  306. package/dist/memory.d.ts.map +1 -1
  307. package/dist/memory.js +34 -80
  308. package/dist/playground/assets/index-DPKLl4C_.css +1 -0
  309. package/dist/playground/assets/index-MijLHTbB.js +71 -0
  310. package/dist/playground/index.html +2 -2
  311. package/dist/storage-backends/cursor-hosted-v2.d.ts +8 -36
  312. package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -1
  313. package/dist/storage-backends/cursor-hosted-v2.js +9 -37
  314. package/dist/storage-backends/cursor-hosted.d.ts +17 -30
  315. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  316. package/dist/storage-backends/cursor-hosted.js +14 -27
  317. package/dist/storage-protocol.d.ts +13 -38
  318. package/dist/storage-protocol.d.ts.map +1 -1
  319. package/dist/storage-protocol.js +14 -39
  320. package/dist/types.d.ts +29 -30
  321. package/dist/types.d.ts.map +1 -1
  322. package/docs/reference/cli.md +20 -9
  323. package/package.json +1 -1
  324. package/templates/pr-autofixer/bot/instructions.md +3 -3
  325. package/dist/docs/assets/chunks/@localSearchIndexroot.Bq-pxRXm.js +0 -1
  326. package/dist/docs/assets/chunks/channel.DCU8W1RP.js +0 -1
  327. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DwpXsM06.js +0 -1
  328. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DwpXsM06.js +0 -1
  329. package/dist/docs/assets/chunks/clone.DH6Mx2zB.js +0 -1
  330. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.kzD0-U89.js +0 -1
  331. package/dist/docs/assets/reference_cli.md.BsgDqYPh.lean.js +0 -1
  332. package/dist/playground/assets/index-6BbTPnaT.css +0 -1
  333. package/dist/playground/assets/index-CI7FAmOP.js +0 -71
@@ -2,10 +2,8 @@
2
2
  * Durable artifact rows and payloads behind `ctx.artifacts`
3
3
  * ({@link ArtifactsApi}).
4
4
  *
5
- * On Cursor-managed hosting rows and file payloads live on the deployment's
6
- * Agent Store (the same store behind `ctx.host.files`, so they survive
7
- * deploys and are visible on cloud VMs under the store mount); otherwise
8
- * they land under `--state-root/artifacts` on local disk.
5
+ * Cursor-managed hosting preserves artifacts across deployment replacement.
6
+ * Self-hosted agents store them under `--state-root/artifacts`.
9
7
  */
10
8
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
11
9
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -36,26 +34,19 @@ export const ARTIFACTS_PAGE_MAX_LIMIT = 1000;
36
34
  */
37
35
  const ARTIFACTS_PAGE_SCAN_MIN = 250;
38
36
  /**
39
- * Row-body hydration fan-out cap. `list()` fetches one object per row; on
40
- * the Agent Store each fetch is a control-plane request, and an unbounded
41
- * `Promise.all` over ~1k rows is a fleet-visible read burst (the 2026-09-18
42
- * Agent Store read storm was this exact fan-out, run once per insert by the
43
- * pre-metadata eviction path).
37
+ * Row-body hydration concurrency. A bounded fan-out keeps large listings
38
+ * from overwhelming the backing store.
44
39
  */
45
40
  const ROW_HYDRATION_CONCURRENCY = 8;
46
41
  /**
47
- * Rows hydrated per round trip when the row store batches
48
- * ({@link ArtifactRowStore.getMany}). Matches the hosted sink's presign
49
- * batch, so one page-scan slice is one control-plane request instead of one
50
- * per row.
42
+ * Rows hydrated per round trip when the row store supports
43
+ * {@link ArtifactRowStore.getMany}.
51
44
  */
52
45
  const ARTIFACTS_SCAN_BATCH_ROWS = 100;
53
46
  /**
54
47
  * Most rows one eviction pass may delete. Bounds the tag-latency cost of
55
- * draining a store that sits far past the retention cap (see
56
- * {@link ArtifactsStore.evictPastCap}): at ~0.7s per Agent Store delete and
57
- * {@link ROW_HYDRATION_CONCURRENCY}-way batching, a full pass stays under
58
- * ~10s while a backlog drains across the inserts that keep arriving.
48
+ * draining a store far past the retention cap; a backlog drains across
49
+ * subsequent inserts.
59
50
  */
60
51
  const ARTIFACTS_EVICT_MAX_PER_PASS = 64;
61
52
  /** Kind used by freeform tags when no kinds are declared. */
@@ -157,7 +148,7 @@ export class ArtifactsStore {
157
148
  }
158
149
  /**
159
150
  * Bounded cursor pagination, newest-updated first. On a store whose
160
- * listing tracks mtimes (the hosted Agent Store), a page hydrates only
151
+ * listing tracks mtimes, a page hydrates only
161
152
  * the rows it examines — roughly `limit` bodies, never the whole store.
162
153
  * Row-body order is the listing's mtime order (upserts rewrite the row,
163
154
  * so mtime tracks `updatedAt`; same argument as eviction). The
@@ -165,15 +156,15 @@ export class ArtifactsStore {
165
156
  * exactly by `updatedAt`.
166
157
  *
167
158
  * `matches` is a host-side *visibility* predicate composed with the
168
- * public filter — the engine passes session-ownership through it. Its
159
+ * public filter. The engine passes session ownership through it. Its
169
160
  * presence forces the exact hydrated lane: the metadata lane's cursor
170
- * and its short-page continuation are derived from every row in the
171
- * store, and handing them to a caller who may not see every row is a
161
+ * and short-page continuation include hidden records. Returning them to a
162
+ * caller who cannot see those records would create a
172
163
  * side channel (existence, count within the scan budget, boundary
173
164
  * mtimes and cohort depths of hidden rows) that the pre-pagination
174
165
  * filtered list never had. The exact lane's cursor names only a record
175
166
  * the caller received, and continues only while more *visible* records
176
- * remain — at the pre-pagination cost (hydrate all rows, bounded).
167
+ * remain, at the bounded cost of hydrating the full set.
177
168
  */
178
169
  page(options) {
179
170
  return __awaiter(this, void 0, void 0, function* () {
@@ -230,9 +221,8 @@ export class ArtifactsStore {
230
221
  const records = [];
231
222
  let examined = 0;
232
223
  let lastExamined = start - 1;
233
- // A batched row store hydrates a bigger slice per round trip (one
234
- // control-plane call on the hosted sink); without one, keep the slice at
235
- // the per-row fan-out bound so concurrency stays capped. An unfiltered
224
+ // A batched row store hydrates a bigger slice per round trip. Without
225
+ // one, keep the slice at the per-row fan-out bound. An unfiltered
236
226
  // page needs exactly the rows it returns — every hydrated row matches —
237
227
  // so cap its slice at the remaining page instead of over-hydrating a
238
228
  // full batch for a small `limit`.
@@ -351,21 +341,11 @@ export class ArtifactsStore {
351
341
  /**
352
342
  * Trim toward the retention cap from listing metadata alone. Past the
353
343
  * cap this runs on every new-row insert, so it must not hydrate row
354
- * bodies: on the Agent Store that is one read per row (~`max` reads per
355
- * insert, forever, since eviction trims right back to the cap) — the
356
- * 2026-09-18 read storm on the security-reviewer deployment. The store
357
- * listing carries last-modified metadata, and a row is rewritten on
358
- * every upsert, so listing mtime orders rows the same way their
359
- * `updatedAt` does.
344
+ * bodies. The listing carries last-modified metadata, and each upsert
345
+ * rewrites its row, so listing mtime orders rows like `updatedAt`.
360
346
  *
361
- * Deletes are capped per pass: eviction runs inside `tag()`'s per-pod
362
- * chain, so its wall time is tag latency for every queued caller. A
363
- * store far past the cap (evictions failed during the 2026-09-19 read
364
- * throttling and the backlog grew unchecked) must drain amortized
365
- * across inserts, not wedge one insert deleting the whole backlog — on
366
- * 2026-09-20 an uncapped pass held security-reviewer tags for hours and
367
- * tripled review stage durations. Steady state (excess of 1) is
368
- * unaffected.
347
+ * Deletes are capped per pass so a store far past the cap drains across
348
+ * inserts instead of delaying one insert for the entire backlog.
369
349
  */
370
350
  evictPastCap() {
371
351
  return __awaiter(this, void 0, void 0, function* () {
@@ -387,9 +367,8 @@ export class ArtifactsStore {
387
367
  return __awaiter(this, void 0, void 0, function* () {
388
368
  if (metas.some(meta => meta.mtimeMs !== undefined)) {
389
369
  // A store that tracks mtimes must never regress to per-insert
390
- // hydration. The rare entry missing one (anomalous on such a store)
391
- // sorts oldest via the comparator's `?? 0` and gets evicted first —
392
- // evicting an anomaly beats re-reading every row on every insert.
370
+ // hydration. An entry missing one sorts oldest via the comparator's
371
+ // `?? 0` and is evicted first, avoiding a full hydration on each insert.
393
372
  return metas
394
373
  .sort(byOldestModified)
395
374
  .slice(0, excess)
@@ -457,9 +436,9 @@ export function artifactIdForKey(key) {
457
436
  return `art_${createHash("sha256").update(key, "utf8").digest("hex").slice(0, 32)}`;
458
437
  }
459
438
  /**
460
- * Oldest-modified first. Store mtimes can be coarse (S3 rounds to the
461
- * second), so equal stamps tie-break by id — deterministic, and within a
462
- * same-stamp cohort any victim is equally past the retention cap.
439
+ * Oldest-modified first. Store mtimes can be coarse, so equal stamps
440
+ * tie-break by id. Within the same-stamp cohort, any victim is equally past
441
+ * the retention cap.
463
442
  */
464
443
  function byOldestModified(a, b) {
465
444
  var _a, _b;
@@ -517,7 +496,7 @@ function sinkBody(found) {
517
496
  }
518
497
  return found instanceof Uint8Array ? found : found.body;
519
498
  }
520
- /** Rows as one JSON file each on the deployment's Agent Store. */
499
+ /** Rows as one JSON document each in the durable sink. */
521
500
  function createSinkRowStore(sink, agentName) {
522
501
  const key = (id) => agentStoreKeys.artifactRow(agentName, id);
523
502
  return {
@@ -67,15 +67,13 @@ export interface AxCliOptions {
67
67
  /** Remote agent base URL (skip local host) for run/eval/chat. */
68
68
  url?: string;
69
69
  /**
70
- * Route chat/resume/run/call/eval/logs/sessions at the team's hosted
70
+ * Route chat/resume/run/call/logs/sessions at the team's hosted
71
71
  * deployment instead of a local ephemeral server. Mutually exclusive with
72
- * `--url`. For `eval`, this runs a server-side batch via
73
- * `/v1/dev/evals/runs` (persisted when `defineStorage` has an `evals` table);
74
- * without `--prod`, eval defaults to an ephemeral local harness.
72
+ * `--url`. `eval` rejects it.
75
73
  */
76
74
  prod?: boolean;
77
75
  /**
78
- * `eval` (`--prod` / `--url` only): start the batch via
76
+ * `eval` (`--url` only): start the batch via
79
77
  * `POST /v1/dev/evals/runs` and return the `runId` without polling.
80
78
  * Mutually exclusive with `--list`.
81
79
  */
@@ -157,26 +155,20 @@ export declare function cmdCall(options: AxCliOptions): Promise<number>;
157
155
  export declare function cmdSkill(skillName: string | undefined, options: AxCliOptions): Promise<number>;
158
156
  export declare function cmdTrajectory(options: AxCliOptions): Promise<number>;
159
157
  /**
160
- * Which surface `eval` should target. Local (ephemeral) is the default;
161
- * `--prod` uses the hosted deployment, `--url` a running server.
162
- * Exported for tests.
158
+ * Which surface `eval` should target: an ephemeral local server by default,
159
+ * or a running server with `--url`. Exported for tests.
163
160
  */
164
- export declare function resolveEvalTargetMode(options: Pick<AxCliOptions, "prod" | "url">): "local" | "url" | "deployment" | {
161
+ export declare function resolveEvalTargetMode(options: Pick<AxCliOptions, "prod" | "url">): "local" | "url" | {
165
162
  error: string;
166
163
  };
167
164
  export declare function cmdEval(options: AxCliOptions): Promise<number>;
168
- /**
169
- * Flags to re-target the same surface from an `eval --no-wait` hint.
170
- * Exported for tests.
171
- */
172
- export declare function formatEvalStatusFlags(options: Pick<AxCliOptions, "prod" | "url" | "slug" | "team">): string;
173
165
  /**
174
166
  * `eval cancel <runId>` — cancel a running remote batch by Eval ID.
175
167
  */
176
168
  export declare function cmdEvalCancel(runId: string | undefined, options: AxCliOptions): Promise<number>;
177
169
  /**
178
- * `eval status [runId]` — fetch one batch (or list recent) on the deployment /
179
- * `--url` target. Exit `0` when the batch is completed with all cases passing,
170
+ * `eval status [runId]` — fetch one batch (or list recent) on the `--url`
171
+ * target. Exit `0` when the batch is completed with all cases passing,
180
172
  * `1` when failed / any case failed / unknown, `2` for usage errors, `3` when
181
173
  * the batch is still running (for poll loops after `--no-wait`).
182
174
  */
@@ -196,7 +188,8 @@ export declare function resolveEvalArtifactsDir(projectRoot: string, options: Pi
196
188
  export declare function formatEvalAssertionLine(assertion: EvalAssertionResult): string;
197
189
  /**
198
190
  * `logs` — follow deploy progress (`--prod`) then runtime agent logs.
199
- * Local / `--url` tails `/v1/logs` only.
191
+ * Local / `--url` tails `/v1/logs` only. On architecture v2, `--prod` tails
192
+ * the output of the deployment's recent sessions, or one with `--session`.
200
193
  */
201
194
  export declare function cmdLogs(options: AxCliOptions): Promise<number>;
202
195
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"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"}
@@ -30,12 +30,12 @@ import { cancelRemoteEvalRun, getRemoteEvalRun, listRemoteEvalRuns, listRemoteEv
30
30
  import { runTemplateInit } from "./init-interview.js";
31
31
  import { checkInitTarget, formatInitNextSteps, formatInitScaffoldSummary, initNextCommands, initProject, installScaffoldDependencies, linkCliOntoPath, printInitGuide, resolveTemplate, } from "./init-project.js";
32
32
  import { offerInstallCursorSkills } from "./install-cursor-skills.js";
33
- import { isUnsupportedV2LegacyCommandError, rejectV2ForLegacyCommand, v2HostedVerifyHint, } from "./legacy-command-guard.js";
34
- import { runLogsTail, sanitizeCustomerError } from "./logs-client.js";
33
+ import { deploymentArchitecture, v2HostedVerifyHint } from "./legacy-command-guard.js";
34
+ import { followHostedLogs, runLogsTail, sanitizeCustomerError } from "./logs-client.js";
35
35
  import { mapPool } from "./map-pool.js";
36
36
  import { openBrowser } from "./open-browser.js";
37
37
  import { startPlaygroundProxy } from "./playground-proxy.js";
38
- import { ProdTargetError, resolveProdAliasPlaygroundUrl, resolveProdPlaygroundUrl, resolveProdSlug, resolveProdTarget, } from "./resolve-prod-target.js";
38
+ import { resolveProdPlaygroundUrl, resolveProdSlug, resolveProdTarget, } from "./resolve-prod-target.js";
39
39
  import { runSession } from "./run-client.js";
40
40
  import { buildSessionCostReport, formatSessionCostText, formatSessionsCostText, } from "./session-cost.js";
41
41
  import { fetchSessionEvents, formatSessionsTable, listSessionsWithSource, resolvePreviousSessionId, } from "./sessions-client.js";
@@ -683,25 +683,17 @@ export function cmdTrajectory(options) {
683
683
  });
684
684
  }
685
685
  /**
686
- * Which surface `eval` should target. Local (ephemeral) is the default;
687
- * `--prod` uses the hosted deployment, `--url` a running server.
688
- * Exported for tests.
686
+ * Which surface `eval` should target: an ephemeral local server by default,
687
+ * or a running server with `--url`. Exported for tests.
689
688
  */
690
689
  export function resolveEvalTargetMode(options) {
691
- const flags = [
692
- options.prod === true ? "--prod" : undefined,
693
- options.url !== undefined ? "--url" : undefined,
694
- ].filter(flag => flag !== undefined);
695
- if (flags.length > 1) {
696
- return { error: `${flags.join(" and ")} are mutually exclusive` };
697
- }
698
- if (options.url !== undefined) {
699
- return "url";
700
- }
701
690
  if (options.prod === true) {
702
- return "deployment";
691
+ return {
692
+ error: `eval does not support --prod. Run \`${CLI_COMMAND_NAME} eval\` locally, ` +
693
+ `or pass --url for a running server.`,
694
+ };
703
695
  }
704
- return "local";
696
+ return options.url === undefined ? "local" : "url";
705
697
  }
706
698
  /** Resolve the eval target; prints a CLI-ready error and returns an exit code on failure. */
707
699
  function resolveEvalTarget(options) {
@@ -714,39 +706,7 @@ function resolveEvalTarget(options) {
714
706
  if (mode === "url") {
715
707
  return { agentUrl: options.url.replace(/\/$/, "") };
716
708
  }
717
- if (mode === "local") {
718
- return startEphemeral(options, true);
719
- }
720
- try {
721
- const prod = yield resolveProdTarget({
722
- dir: options.dir,
723
- cwd: options.cwd,
724
- slug: options.slug,
725
- team: options.team,
726
- apiKey: options.apiKey,
727
- fetchImpl: options.fetchImpl,
728
- command: "eval",
729
- });
730
- return { agentUrl: prod.agentUrl, headers: prod.headers };
731
- }
732
- catch (error) {
733
- if (error instanceof ProdTargetError && error.notFound) {
734
- // Keep the API error text: a 404 can also mean a wrong API host or a
735
- // disabled feature gate, and the message distinguishes those from a
736
- // genuinely missing deployment.
737
- process.stderr.write(`${sanitizeCustomerError(error.message)}\n` +
738
- ` deploy it first: ${CLI_COMMAND_NAME} deploy --slug ${error.slug}\n` +
739
- ` or omit --prod: ${CLI_COMMAND_NAME} eval --dir ${options.dir}\n`);
740
- return 1;
741
- }
742
- if (isUnsupportedV2LegacyCommandError(error)) {
743
- process.stderr.write(`${error.message}\n`);
744
- return 1;
745
- }
746
- process.stderr.write(`${sanitizeCustomerError(error instanceof Error ? error.message : String(error))}\n` +
747
- `Omit --prod to run on an ephemeral local server.\n`);
748
- return 1;
749
- }
709
+ return startEphemeral(options, true);
750
710
  });
751
711
  }
752
712
  export function cmdEval(options) {
@@ -765,7 +725,7 @@ export function cmdEval(options) {
765
725
  return 2;
766
726
  }
767
727
  if (mode === "local") {
768
- process.stderr.write("--no-wait requires --prod or --url (not the default local target)\n");
728
+ process.stderr.write("--no-wait requires --url (not the default local target)\n");
769
729
  return 2;
770
730
  }
771
731
  }
@@ -783,7 +743,7 @@ export function cmdEval(options) {
783
743
  const tags = options.tags === undefined || options.tags.length === 0 ? undefined : options.tags;
784
744
  if (options.list) {
785
745
  // List the same surface a run will execute: local filesystem by default,
786
- // GET /v1/dev/evals on --prod / --url.
746
+ // GET /v1/dev/evals on --url.
787
747
  if (mode === "local") {
788
748
  return listLocalEvals(projectRoot, options, filterIds, tags);
789
749
  }
@@ -829,7 +789,7 @@ export function cmdEval(options) {
829
789
  process.stderr.write(`eval target: ${target.agentUrl}\n`);
830
790
  }
831
791
  // Default local: ephemeral in-process harness against local eval sources.
832
- // --prod / --url: run on the serve process via /v1/dev/evals/runs so the
792
+ // --url: run on the serve process via /v1/dev/evals/runs so the
833
793
  // batch lands in playground history and defineStorage evals (when set).
834
794
  if (mode === "local") {
835
795
  const progress = stream ? createStreamProgress() : undefined;
@@ -875,7 +835,7 @@ export function cmdEval(options) {
875
835
  },
876
836
  fetchImpl: options.fetchImpl,
877
837
  });
878
- return yield printEvalAccepted(started, options, target.agentUrl);
838
+ return printEvalAccepted(started, options, target.agentUrl);
879
839
  }
880
840
  const progress = createRemoteEvalProgress(options.verbose === true || stream);
881
841
  // Start first so we can print the Eval ID before the (often long) wait.
@@ -891,7 +851,7 @@ export function cmdEval(options) {
891
851
  },
892
852
  fetchImpl: options.fetchImpl,
893
853
  });
894
- yield printEvalIdBanner(started, options, target.agentUrl);
854
+ printEvalIdBanner(started, options, target.agentUrl);
895
855
  (_a = progress === null || progress === void 0 ? void 0 : progress.onSnapshot) === null || _a === void 0 ? void 0 : _a.call(progress, started);
896
856
  const snapshot = yield pollRemoteEvalRun({
897
857
  baseUrl: target.agentUrl,
@@ -930,106 +890,58 @@ export function cmdEval(options) {
930
890
  }
931
891
  });
932
892
  }
933
- /**
934
- * Flags to re-target the same surface from an `eval --no-wait` hint.
935
- * Exported for tests.
936
- */
937
- export function formatEvalStatusFlags(options) {
938
- const parts = [];
939
- if (options.url !== undefined) {
940
- parts.push(`--url ${options.url.replace(/\/$/, "")}`);
941
- }
942
- else {
943
- parts.push("--prod");
944
- if (options.slug !== undefined && options.slug !== "") {
945
- parts.push(`--slug ${options.slug}`);
946
- }
947
- }
948
- if (options.team !== undefined && options.team !== "") {
949
- parts.push(`--team ${options.team}`);
950
- }
951
- return parts.length === 0 ? "" : ` ${parts.join(" ")}`;
952
- }
953
893
  /** Print Eval ID + cancel/status hints after a remote batch is accepted. */
954
894
  function printEvalIdBanner(started, options, agentUrl) {
955
- return __awaiter(this, void 0, void 0, function* () {
956
- const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
957
- const statusFlags = formatEvalStatusFlags(options);
958
- const playgroundUrl = yield resolveEvalPlaygroundDeepLink(options, started.runId, agentUrl);
959
- if (options.json) {
960
- // Waiters still want the id on stderr so progress text stays readable.
961
- process.stderr.write(`${JSON.stringify(Object.assign({ evalId: started.runId, runId: started.runId, status: started.status, summary: started.summary, pollUrl: pollPath }, (playgroundUrl === undefined ? {} : { playgroundUrl })))}\n`);
962
- return;
963
- }
964
- const durable = started.config.durableRuns === true ? " (persisted)" : "";
965
- process.stderr.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
966
- process.stderr.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
967
- process.stderr.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
968
- if (playgroundUrl !== undefined) {
969
- process.stderr.write(`Playground: ${playgroundUrl}\n`);
970
- }
971
- });
895
+ const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
896
+ const statusFlags = ` --url ${agentUrl.replace(/\/$/, "")}`;
897
+ const playgroundUrl = evalPlaygroundDeepLink(started.runId, agentUrl);
898
+ if (options.json) {
899
+ // Waiters still want the id on stderr so progress text stays readable.
900
+ process.stderr.write(`${JSON.stringify(Object.assign({ evalId: started.runId, runId: started.runId, status: started.status, summary: started.summary, pollUrl: pollPath }, (playgroundUrl === undefined ? {} : { playgroundUrl })))}\n`);
901
+ return;
902
+ }
903
+ const durable = started.config.durableRuns === true ? " (persisted)" : "";
904
+ process.stderr.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
905
+ process.stderr.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
906
+ process.stderr.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
907
+ if (playgroundUrl !== undefined) {
908
+ process.stderr.write(`Playground: ${playgroundUrl}\n`);
909
+ }
972
910
  }
973
911
  /** `--no-wait`: print the accepted batch id (and how to poll) then exit. */
974
912
  function printEvalAccepted(started, options, agentUrl) {
975
- return __awaiter(this, void 0, void 0, function* () {
976
- const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
977
- const statusFlags = formatEvalStatusFlags(options);
978
- const playgroundUrl = yield resolveEvalPlaygroundDeepLink(options, started.runId, agentUrl);
979
- if (options.json) {
980
- process.stdout.write(`${JSON.stringify(Object.assign({ ok: true, accepted: true, evalId: started.runId, runId: started.runId, status: started.status, summary: started.summary, pollUrl: pollPath, durableRuns: started.config.durableRuns === true }, (playgroundUrl === undefined ? {} : { playgroundUrl })), null, 2)}\n`);
981
- }
982
- else {
983
- const durable = started.config.durableRuns === true ? " (persisted)" : "";
984
- process.stdout.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
985
- process.stdout.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
986
- process.stdout.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
987
- if (playgroundUrl !== undefined) {
988
- process.stdout.write(`Playground: ${playgroundUrl}\n`);
989
- }
990
- process.stdout.write(`Poll: ${pollPath}\n`);
913
+ const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
914
+ const statusFlags = ` --url ${agentUrl.replace(/\/$/, "")}`;
915
+ const playgroundUrl = evalPlaygroundDeepLink(started.runId, agentUrl);
916
+ if (options.json) {
917
+ process.stdout.write(`${JSON.stringify(Object.assign({ ok: true, accepted: true, evalId: started.runId, runId: started.runId, status: started.status, summary: started.summary, pollUrl: pollPath, durableRuns: started.config.durableRuns === true }, (playgroundUrl === undefined ? {} : { playgroundUrl })), null, 2)}\n`);
918
+ }
919
+ else {
920
+ const durable = started.config.durableRuns === true ? " (persisted)" : "";
921
+ process.stdout.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
922
+ process.stdout.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
923
+ process.stdout.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
924
+ if (playgroundUrl !== undefined) {
925
+ process.stdout.write(`Playground: ${playgroundUrl}\n`);
991
926
  }
992
- return 0;
993
- });
927
+ process.stdout.write(`Poll: ${pollPath}\n`);
928
+ }
929
+ return 0;
994
930
  }
995
931
  /**
996
- * Hosted alias playground URL with `view=evals` + `evalRunId` so the SPA
997
- * opens the batch that CLI / Slack started (not a stale sessionStorage id).
932
+ * Playground URL with `view=evals` + `evalRunId` so the SPA opens the batch
933
+ * that CLI / Slack started (not a stale sessionStorage id).
998
934
  */
999
- function resolveEvalPlaygroundDeepLink(options, runId, agentUrl) {
1000
- return __awaiter(this, void 0, void 0, function* () {
1001
- if (options.prod !== true) {
1002
- const base = `${agentUrl.replace(/\/$/, "")}/playground`;
1003
- try {
1004
- const url = new URL(base);
1005
- url.searchParams.set("view", "evals");
1006
- url.searchParams.set("evalRunId", runId);
1007
- return url.toString();
1008
- }
1009
- catch (_a) {
1010
- return undefined;
1011
- }
1012
- }
1013
- try {
1014
- const resolved = yield resolveProdAliasPlaygroundUrl({
1015
- dir: options.dir,
1016
- cwd: options.cwd,
1017
- slug: options.slug,
1018
- team: options.team,
1019
- apiKey: options.apiKey,
1020
- fetchImpl: options.fetchImpl,
1021
- // Avoid a second "Using hosted deployment" line; banner already has context.
1022
- err: () => { },
1023
- });
1024
- const url = new URL(resolved.playgroundUrl);
1025
- url.searchParams.set("view", "evals");
1026
- url.searchParams.set("evalRunId", runId);
1027
- return url.toString();
1028
- }
1029
- catch (_b) {
1030
- return undefined;
1031
- }
1032
- });
935
+ function evalPlaygroundDeepLink(runId, agentUrl) {
936
+ try {
937
+ const url = new URL(`${agentUrl.replace(/\/$/, "")}/playground`);
938
+ url.searchParams.set("view", "evals");
939
+ url.searchParams.set("evalRunId", runId);
940
+ return url.toString();
941
+ }
942
+ catch (_a) {
943
+ return undefined;
944
+ }
1033
945
  }
1034
946
  /**
1035
947
  * `eval cancel <runId>` — cancel a running remote batch by Eval ID.
@@ -1042,11 +954,11 @@ export function cmdEvalCancel(runId, options) {
1042
954
  return 2;
1043
955
  }
1044
956
  if (mode === "local") {
1045
- process.stderr.write("eval cancel requires --prod or --url (not the default local target)\n");
957
+ process.stderr.write("eval cancel requires --url (not the default local target)\n");
1046
958
  return 2;
1047
959
  }
1048
960
  if (runId === undefined || runId === "") {
1049
- process.stderr.write("usage: eval cancel <evalId> --prod|--url …\n");
961
+ process.stderr.write("usage: eval cancel <evalId> --url <baseUrl>\n");
1050
962
  return 2;
1051
963
  }
1052
964
  if (options.list === true || options.noWait === true) {
@@ -1087,8 +999,8 @@ export function cmdEvalCancel(runId, options) {
1087
999
  });
1088
1000
  }
1089
1001
  /**
1090
- * `eval status [runId]` — fetch one batch (or list recent) on the deployment /
1091
- * `--url` target. Exit `0` when the batch is completed with all cases passing,
1002
+ * `eval status [runId]` — fetch one batch (or list recent) on the `--url`
1003
+ * target. Exit `0` when the batch is completed with all cases passing,
1092
1004
  * `1` when failed / any case failed / unknown, `2` for usage errors, `3` when
1093
1005
  * the batch is still running (for poll loops after `--no-wait`).
1094
1006
  */
@@ -1100,7 +1012,7 @@ export function cmdEvalStatus(runId, options) {
1100
1012
  return 2;
1101
1013
  }
1102
1014
  if (mode === "local") {
1103
- process.stderr.write("eval status requires --prod or --url (not the default local target)\n");
1015
+ process.stderr.write("eval status requires --url (not the default local target)\n");
1104
1016
  return 2;
1105
1017
  }
1106
1018
  if (options.list === true || options.noWait === true) {
@@ -1405,7 +1317,8 @@ export function formatEvalAssertionLine(assertion) {
1405
1317
  }
1406
1318
  /**
1407
1319
  * `logs` — follow deploy progress (`--prod`) then runtime agent logs.
1408
- * Local / `--url` tails `/v1/logs` only.
1320
+ * Local / `--url` tails `/v1/logs` only. On architecture v2, `--prod` tails
1321
+ * the output of the deployment's recent sessions, or one with `--session`.
1409
1322
  */
1410
1323
  export function cmdLogs(options) {
1411
1324
  return __awaiter(this, void 0, void 0, function* () {
@@ -1414,6 +1327,11 @@ export function cmdLogs(options) {
1414
1327
  process.stderr.write("--prod and --url are mutually exclusive\n");
1415
1328
  return 2;
1416
1329
  }
1330
+ const sessionId = trimNonEmpty(options.sessionId);
1331
+ if (sessionId !== undefined && options.prod !== true) {
1332
+ process.stderr.write("A session id needs --prod on an architecture v2 deployment\n");
1333
+ return 2;
1334
+ }
1417
1335
  const controller = new AbortController();
1418
1336
  const onSignal = () => {
1419
1337
  controller.abort();
@@ -1435,12 +1353,26 @@ export function cmdLogs(options) {
1435
1353
  if (typeof auth === "number") {
1436
1354
  return auth;
1437
1355
  }
1438
- yield rejectV2ForLegacyCommand({
1356
+ const architecture = yield deploymentArchitecture({
1439
1357
  client: auth.client,
1440
1358
  teamId: auth.teamId,
1441
1359
  slug,
1442
- command: "logs",
1443
1360
  });
1361
+ if (architecture === "v2") {
1362
+ yield followHostedLogs({
1363
+ slug,
1364
+ read: signal => auth.client.getAgentkitDeploymentLogs({ teamId: auth.teamId, slug, sessionId, signal }),
1365
+ scoped: sessionId !== undefined,
1366
+ once: options.once === true,
1367
+ json: options.json === true,
1368
+ signal: controller.signal,
1369
+ });
1370
+ return 0;
1371
+ }
1372
+ if (sessionId !== undefined) {
1373
+ process.stderr.write(`A session id needs an architecture v2 deployment; "${slug}" is v1\n`);
1374
+ return 2;
1375
+ }
1444
1376
  yield runLogsTail({
1445
1377
  prod: true,
1446
1378
  dir: options.dir,
@@ -151,7 +151,7 @@ function cmdBitbucketReplay(options) {
151
151
  const declared = [...new Set(targets.flatMap(target => target.events))];
152
152
  const { events, unsupported } = selectBitbucketReplayEvents(requested, declared);
153
153
  if (unsupported.length > 0) {
154
- process.stderr.write(`[agent-sdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
154
+ process.stderr.write(`[bdk] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
155
155
  }
156
156
  if (events.length === 0) {
157
157
  process.stderr.write("no synthesizable events selected\n");
@@ -180,7 +180,7 @@ function cmdBitbucketReplay(options) {
180
180
  comment: options.comment,
181
181
  });
182
182
  if ("error" in result) {
183
- process.stderr.write(`[agent-sdk] skipping ${event}: ${result.error}\n`);
183
+ process.stderr.write(`[bdk] skipping ${event}: ${result.error}\n`);
184
184
  continue;
185
185
  }
186
186
  synthesized.push(result);
@@ -190,7 +190,7 @@ function cmdBitbucketReplay(options) {
190
190
  return 1;
191
191
  }
192
192
  const secret = (_a = options.secret) !== null && _a !== void 0 ? _a : process.env.BITBUCKET_WEBHOOK_SECRET;
193
- process.stderr.write(`[agent-sdk] replaying ${ref.label} (${ref.dialect}; ${synthesized
193
+ process.stderr.write(`[bdk] replaying ${ref.label} (${ref.dialect}; ${synthesized
194
194
  .map(event => event.eventType)
195
195
  .join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
196
196
  const report = [];
@@ -207,7 +207,7 @@ function cmdBitbucketReplay(options) {
207
207
  }
208
208
  if (options.out !== undefined) {
209
209
  const file = yield writeReplayFixture(options.out, event);
210
- process.stderr.write(`[agent-sdk] wrote ${file}\n`);
210
+ process.stderr.write(`[bdk] wrote ${file}\n`);
211
211
  }
212
212
  if (options.dryRun === true) {
213
213
  report.push(Object.assign(Object.assign({}, eventReport(event)), { payload: event.payload }));
@@ -225,7 +225,7 @@ function cmdBitbucketReplay(options) {
225
225
  const summary = deliveries
226
226
  .map(d => `${d.label} ${d.status || "ERR"}${d.ok ? "" : " (rejected)"}`)
227
227
  .join(", ") || "(no matching channel)";
228
- process.stderr.write(`[agent-sdk] ${event.header} → ${summary}\n`);
228
+ process.stderr.write(`[bdk] ${event.header} → ${summary}\n`);
229
229
  }
230
230
  }
231
231
  if (options.json === true) {