@cursor/bdk 0.2.5 → 0.2.7

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 (376) hide show
  1. package/dist/bin/agent-serve.js +55 -54
  2. package/dist/channels/github/github-channel.d.ts +4 -4
  3. package/dist/channels/github/github-channel.d.ts.map +1 -1
  4. package/dist/channels/github/github-channel.js +39 -13
  5. package/dist/channels/github/types.d.ts +6 -0
  6. package/dist/channels/github/types.d.ts.map +1 -1
  7. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  8. package/dist/channels/slack/dispatch.js +37 -29
  9. package/dist/channels/slack/eval-directive.js +1 -1
  10. package/dist/channels/slack/external-policy.d.ts.map +1 -1
  11. package/dist/channels/slack/external-policy.js +6 -6
  12. package/dist/channels/slack/inbound.d.ts +5 -0
  13. package/dist/channels/slack/inbound.d.ts.map +1 -1
  14. package/dist/channels/slack/inbound.js +13 -0
  15. package/dist/channels/slack/index.d.ts +3 -0
  16. package/dist/channels/slack/index.d.ts.map +1 -1
  17. package/dist/channels/slack/index.js +3 -0
  18. package/dist/channels/slack/log.d.ts +1 -1
  19. package/dist/channels/slack/log.js +1 -1
  20. package/dist/channels/slack/self-identity.d.ts +15 -0
  21. package/dist/channels/slack/self-identity.d.ts.map +1 -0
  22. package/dist/channels/slack/self-identity.js +48 -0
  23. package/dist/channels/slack/sender-name.d.ts +17 -0
  24. package/dist/channels/slack/sender-name.d.ts.map +1 -0
  25. package/dist/channels/slack/sender-name.js +87 -0
  26. package/dist/channels/slack/setup.js +1 -1
  27. package/dist/channels/slack/user-info.d.ts +15 -0
  28. package/dist/channels/slack/user-info.d.ts.map +1 -0
  29. package/dist/channels/slack/user-info.js +57 -0
  30. package/dist/docs/404.html +2 -2
  31. package/dist/docs/assets/{app.94Iu5dyD.js → app.oyjtOr3W.js} +4 -4
  32. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +1 -0
  33. package/dist/docs/assets/chunks/{VPLocalSearchBox.DTKFDlBr.js → VPLocalSearchBox.D0P6J_UJ.js} +1 -1
  34. package/dist/docs/assets/chunks/{arc.DuzwHEeg.js → arc.B0LY1J1h.js} +1 -1
  35. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C6lyhLs0.js → architectureDiagram-Q4EWVU46.dPduLUxY.js} +1 -1
  36. package/dist/docs/assets/chunks/{baseUniq.DUNEWlY8.js → baseUniq.B_Ohm21h.js} +1 -1
  37. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CXOQGI0O.js → blockDiagram-DXYQGD6D.B4zcanaJ.js} +1 -1
  38. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BYdPE-Oe.js → c4Diagram-AHTNJAMY.D9Iw21nx.js} +1 -1
  39. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +1 -0
  40. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.YIV9HeX0.js → chunk-4BX2VUAB.DDVwRShI.js} +1 -1
  41. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BG80DEOc.js → chunk-4TB4RGXK.DsYcdn1i.js} +1 -1
  42. package/dist/docs/assets/chunks/{chunk-55IACEB6.BDKJSZQc.js → chunk-55IACEB6.BzzQvcYp.js} +1 -1
  43. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.CtYnQqts.js → chunk-EDXVE4YY.BMiXZ7FX.js} +1 -1
  44. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CityOth-.js → chunk-FMBD7UC4.D_mBcLoc.js} +1 -1
  45. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMD22CQX.js → chunk-OYMX7WX6.CMVjWVMx.js} +1 -1
  46. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.WWpc3ND0.js → chunk-QZHKN3VN.BG-FrPv9.js} +1 -1
  47. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.BMg-yhj3.js → chunk-YZCP3GAM.CkFE1ap3.js} +1 -1
  48. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +1 -0
  49. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +1 -0
  50. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +1 -0
  51. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Buu_LC5q.js → cose-bilkent-S5V4N54A.BVNnCTvY.js} +1 -1
  52. package/dist/docs/assets/chunks/{dagre-KV5264BT.DW7onj6E.js → dagre-KV5264BT.CDN5PR9l.js} +1 -1
  53. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B3NxIbEV.js → diagram-5BDNPKRD.DQRUlT-i.js} +1 -1
  54. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.BJvN6Vkv.js → diagram-G4DWMVQ6.CoeblYQT.js} +1 -1
  55. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.wfRWrexs.js → diagram-MMDJMWI5.DW3ymjl0.js} +1 -1
  56. package/dist/docs/assets/chunks/{diagram-TYMM5635.7QtjSYio.js → diagram-TYMM5635.BP0uN4Jw.js} +1 -1
  57. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.jxPgDH1t.js → erDiagram-SMLLAGMA.DVFUWEn4.js} +1 -1
  58. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BhDWA-TO.js → flowDiagram-DWJPFMVM.HU-eHspv.js} +1 -1
  59. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.Ijq8iYKv.js → ganttDiagram-T4ZO3ILL.DHNhXijY.js} +1 -1
  60. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DXpfW4YG.js → gitGraphDiagram-UUTBAWPF.DkISXcO3.js} +1 -1
  61. package/dist/docs/assets/chunks/{graph.CoPlssRl.js → graph.CCV0fuRR.js} +1 -1
  62. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.eJuv_EOz.js → infoDiagram-42DDH7IO.bgILzOoc.js} +1 -1
  63. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A._OEzenCR.js → ishikawaDiagram-UXIWVN3A.CuryXC0F.js} +1 -1
  64. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CwlTjirB.js → journeyDiagram-VCZTEJTY.BL1Pr-wu.js} +1 -1
  65. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DSp_C8cZ.js → kanban-definition-6JOO6SKY.BbGjvk4l.js} +1 -1
  66. package/dist/docs/assets/chunks/{layout.Bms9s7uB.js → layout.C4PfdldS.js} +1 -1
  67. package/dist/docs/assets/chunks/{linear.BjnmB4je.js → linear.C3xD1T6X.js} +1 -1
  68. package/dist/docs/assets/chunks/{min.CKkYlMsn.js → min.CzgRAQ9c.js} +1 -1
  69. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.T2d0vJ7X.js → mindmap-definition-QFDTVHPH.CA9rSWum.js} +1 -1
  70. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DU0RoCvx.js → pieDiagram-DEJITSTG.B8MprgJu.js} +1 -1
  71. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.9QZjM-x0.js → quadrantDiagram-34T5L4WZ.DndDwbKT.js} +1 -1
  72. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZpylJMd.js → requirementDiagram-MS252O5E.Zhfgwlnn.js} +1 -1
  73. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.CnFdfW95.js → sankeyDiagram-XADWPNL6.B6RRm6N5.js} +1 -1
  74. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.-jC0PP1t.js → sequenceDiagram-FGHM5R23.Bfmz-1PN.js} +1 -1
  75. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DG7yBRUU.js → stateDiagram-FHFEXIEX.gbrdNqgj.js} +1 -1
  76. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +1 -0
  77. package/dist/docs/assets/chunks/{theme.B3O9koXV.js → theme.gpWjytMh.js} +2 -2
  78. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bf9u4Ebb.js → timeline-definition-GMOUNBTQ.Bl1l7M1f.js} +1 -1
  79. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BjhbbYE6.js → vennDiagram-DHZGUBPP.Dfle4U0d.js} +1 -1
  80. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +162 -0
  81. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.8fRb4Nb5.js → wardleyDiagram-NUSXRM2D.CM_4lmvZ.js} +1 -1
  82. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.DoOP3zZM.js → xychartDiagram-5P7HB3ND.CHT5X28R.js} +1 -1
  83. package/dist/docs/assets/{evals.md.LRCSn6Ik.js → evals.md.C851kViu.js} +1 -1
  84. package/dist/docs/assets/{reference_cli.md.BsgDqYPh.js → reference_cli.md.GwugN3n-.js} +5 -5
  85. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +1 -0
  86. package/dist/docs/assets/{templates_agentic-owners.md.vtjfwxbf.js → templates_agentic-owners.md.CvmABtia.js} +1 -1
  87. package/dist/docs/assets/{templates_agentic-owners.md.vtjfwxbf.lean.js → templates_agentic-owners.md.CvmABtia.lean.js} +1 -1
  88. package/dist/docs/assets/{templates_security-reviewer.md.CX9l9bcg.js → templates_security-reviewer.md.Gh6EF9Us.js} +3 -2
  89. package/dist/docs/assets/{templates_security-reviewer.md.CX9l9bcg.lean.js → templates_security-reviewer.md.Gh6EF9Us.lean.js} +1 -1
  90. package/dist/docs/assets/{templates_thermo-quality-review.md.95qmTmr1.js → templates_thermo-quality-review.md.B77UyTrX.js} +1 -1
  91. package/dist/docs/assets/{templates_thermo-review.md.DQh6Q0C-.js → templates_thermo-review.md.DRJ7mC5U.js} +1 -1
  92. package/dist/docs/assets/{templates_triage.md.BFlQhWXf.js → templates_triage.md.CNN6b0JZ.js} +3 -3
  93. package/dist/docs/assets/{templates_triage.md.BFlQhWXf.lean.js → templates_triage.md.CNN6b0JZ.lean.js} +1 -1
  94. package/dist/docs/building-with-agents.html +35 -35
  95. package/dist/docs/deployment.html +35 -35
  96. package/dist/docs/evals.html +37 -37
  97. package/dist/docs/evals.md +2 -2
  98. package/dist/docs/guides/agent-to-agent.html +35 -35
  99. package/dist/docs/guides/bitbucket.html +35 -35
  100. package/dist/docs/guides/cloud-agents.html +35 -35
  101. package/dist/docs/guides/convert-automation.html +35 -35
  102. package/dist/docs/guides/github.html +35 -35
  103. package/dist/docs/guides/gitlab.html +35 -35
  104. package/dist/docs/guides/grokbot-agents.html +35 -35
  105. package/dist/docs/guides/hooks.html +35 -35
  106. package/dist/docs/guides/improve.html +35 -35
  107. package/dist/docs/guides/jev.html +35 -35
  108. package/dist/docs/guides/mcp-oauth.html +35 -35
  109. package/dist/docs/guides/opentelemetry.html +35 -35
  110. package/dist/docs/guides/slack.html +35 -35
  111. package/dist/docs/guides/webhooks.html +35 -35
  112. package/dist/docs/hashmap.json +1 -1
  113. package/dist/docs/hillclimbing.html +35 -35
  114. package/dist/docs/index.html +35 -35
  115. package/dist/docs/llms-full.txt +41 -24
  116. package/dist/docs/quickstart.html +35 -35
  117. package/dist/docs/reference/agent-config.html +35 -35
  118. package/dist/docs/reference/artifacts.html +35 -35
  119. package/dist/docs/reference/channels.html +35 -35
  120. package/dist/docs/reference/cli.html +39 -39
  121. package/dist/docs/reference/cli.md +20 -9
  122. package/dist/docs/reference/connections.html +35 -35
  123. package/dist/docs/reference/evals.html +35 -35
  124. package/dist/docs/reference/extensions.html +35 -35
  125. package/dist/docs/reference/hooks.html +35 -35
  126. package/dist/docs/reference/http-api.html +35 -35
  127. package/dist/docs/reference/instructions.html +35 -35
  128. package/dist/docs/reference/playground.html +35 -35
  129. package/dist/docs/reference/project-layout.html +35 -35
  130. package/dist/docs/reference/prompt.html +35 -35
  131. package/dist/docs/reference/schedules.html +35 -35
  132. package/dist/docs/reference/sessions.html +35 -35
  133. package/dist/docs/reference/skills.html +35 -35
  134. package/dist/docs/reference/subagents.html +35 -35
  135. package/dist/docs/reference/tools.html +35 -35
  136. package/dist/docs/templates/agentic-owners.html +37 -37
  137. package/dist/docs/templates/agentic-owners.md +2 -0
  138. package/dist/docs/templates/grokbot-agents.html +35 -35
  139. package/dist/docs/templates/security-reviewer.html +38 -37
  140. package/dist/docs/templates/security-reviewer.md +7 -8
  141. package/dist/docs/templates/thermo-quality-review.html +37 -37
  142. package/dist/docs/templates/thermo-quality-review.md +2 -2
  143. package/dist/docs/templates/thermo-review.html +37 -37
  144. package/dist/docs/templates/thermo-review.md +2 -2
  145. package/dist/docs/templates/triage.html +38 -38
  146. package/dist/docs/templates/triage.md +6 -1
  147. package/dist/docs/troubleshooting.html +35 -35
  148. package/dist/evals.d.ts +2 -2
  149. package/dist/extensions/cursor-cloud-agents/extension.d.ts +14 -0
  150. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  151. package/dist/extensions/cursor-cloud-agents/extension.js +5 -0
  152. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts +17 -0
  153. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -0
  154. package/dist/extensions/cursor-cloud-agents/lib/watch.js +99 -0
  155. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.d.ts +19 -0
  156. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.d.ts.map +1 -0
  157. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +71 -0
  158. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +9 -5
  159. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -1
  160. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +3 -1
  161. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  162. package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -2
  163. package/dist/extensions.d.ts +1 -1
  164. package/dist/extensions.js +1 -1
  165. package/dist/files-backends/cursor-hosted.d.ts +22 -83
  166. package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
  167. package/dist/files-backends/cursor-hosted.js +46 -160
  168. package/dist/files.d.ts +9 -32
  169. package/dist/files.d.ts.map +1 -1
  170. package/dist/files.js +7 -32
  171. package/dist/internal/artifacts-store.d.ts +13 -25
  172. package/dist/internal/artifacts-store.d.ts.map +1 -1
  173. package/dist/internal/artifacts-store.js +25 -46
  174. package/dist/internal/cli-ax.d.ts +10 -17
  175. package/dist/internal/cli-ax.d.ts.map +1 -1
  176. package/dist/internal/cli-ax.js +92 -153
  177. package/dist/internal/cli-bitbucket.js +5 -5
  178. package/dist/internal/cli-deploy.d.ts +4 -1
  179. package/dist/internal/cli-deploy.d.ts.map +1 -1
  180. package/dist/internal/cli-deploy.js +117 -20
  181. package/dist/internal/cli-github.js +13 -13
  182. package/dist/internal/cli-gitlab.js +5 -5
  183. package/dist/internal/continuation-identity.d.ts +2 -0
  184. package/dist/internal/continuation-identity.d.ts.map +1 -1
  185. package/dist/internal/continuation-identity.js +4 -0
  186. package/dist/internal/conversation-mirror.d.ts +9 -38
  187. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  188. package/dist/internal/conversation-mirror.js +62 -68
  189. package/dist/internal/cursor/account-mcp.d.ts +1 -1
  190. package/dist/internal/cursor/account-mcp.js +1 -1
  191. package/dist/internal/cursor/backend-client.js +1 -1
  192. package/dist/internal/cursor/github-credentials.js +3 -3
  193. package/dist/internal/cursor/hosted-bound-secrets.d.ts +6 -2
  194. package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -1
  195. package/dist/internal/cursor/hosted-bound-secrets.js +13 -2
  196. package/dist/internal/cursor/hosted-store-secrets.d.ts +13 -37
  197. package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
  198. package/dist/internal/cursor/hosted-store-secrets.js +13 -37
  199. package/dist/internal/cursor/store-api-client.d.ts +17 -39
  200. package/dist/internal/cursor/store-api-client.d.ts.map +1 -1
  201. package/dist/internal/cursor/store-api-client.js +15 -37
  202. package/dist/internal/cursor-deployment-relay.js +3 -3
  203. package/dist/internal/cursor-event-relay.js +1 -1
  204. package/dist/internal/cursor-relay-core.d.ts +1 -1
  205. package/dist/internal/cursor-relay-core.d.ts.map +1 -1
  206. package/dist/internal/deploy-client.d.ts +55 -63
  207. package/dist/internal/deploy-client.d.ts.map +1 -1
  208. package/dist/internal/deploy-client.js +48 -28
  209. package/dist/internal/discovery/agent.d.ts +1 -1
  210. package/dist/internal/discovery/agent.d.ts.map +1 -1
  211. package/dist/internal/discovery/agent.js +4 -0
  212. package/dist/internal/discovery/extensions.d.ts +2 -1
  213. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  214. package/dist/internal/discovery/extensions.js +11 -1
  215. package/dist/internal/discovery/project.d.ts.map +1 -1
  216. package/dist/internal/discovery/project.js +1 -0
  217. package/dist/internal/distribution.d.ts +2 -2
  218. package/dist/internal/distribution.d.ts.map +1 -1
  219. package/dist/internal/distribution.js +2 -2
  220. package/dist/internal/docs-site.js +3 -3
  221. package/dist/internal/eval-run-store.js +8 -8
  222. package/dist/internal/eval-runner.js +7 -4
  223. package/dist/internal/framework-file-storage.d.ts +10 -34
  224. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  225. package/dist/internal/framework-file-storage.js +12 -39
  226. package/dist/internal/framework-storage-selection.d.ts +10 -46
  227. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  228. package/dist/internal/framework-storage-selection.js +15 -64
  229. package/dist/internal/github-fanout.js +2 -2
  230. package/dist/internal/handleAgentServeTrigger.d.ts +5 -8
  231. package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
  232. package/dist/internal/handleAgentServeTrigger.js +5 -8
  233. package/dist/internal/host-files.js +6 -9
  234. package/dist/internal/host-platforms.js +5 -5
  235. package/dist/internal/hosted-catch.d.ts +3 -2
  236. package/dist/internal/hosted-catch.d.ts.map +1 -1
  237. package/dist/internal/hosted-catch.js +27 -9
  238. package/dist/internal/hosted-delivery-protocol.d.ts +31 -8
  239. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  240. package/dist/internal/hosted-delivery-protocol.js +102 -1
  241. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  242. package/dist/internal/hosted-delivery.js +32 -12
  243. package/dist/internal/hosted-execution-diag.d.ts +13 -24
  244. package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
  245. package/dist/internal/hosted-execution-diag.js +11 -20
  246. package/dist/internal/hosted-execution-flush.d.ts +22 -10
  247. package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
  248. package/dist/internal/hosted-execution-flush.js +45 -9
  249. package/dist/internal/hosted-managed-automation.js +5 -5
  250. package/dist/internal/hosting.d.ts +5 -10
  251. package/dist/internal/hosting.d.ts.map +1 -1
  252. package/dist/internal/hosting.js +5 -10
  253. package/dist/internal/init-interview.d.ts +0 -1
  254. package/dist/internal/init-interview.d.ts.map +1 -1
  255. package/dist/internal/init-interview.js +15 -24
  256. package/dist/internal/listen-port.js +1 -1
  257. package/dist/internal/local-control-plane.js +6 -6
  258. package/dist/internal/logs-client.d.ts +20 -1
  259. package/dist/internal/logs-client.d.ts.map +1 -1
  260. package/dist/internal/logs-client.js +89 -1
  261. package/dist/internal/mcp-endpoint.js +1 -1
  262. package/dist/internal/otel/collector.js +1 -1
  263. package/dist/internal/otel/runtime.js +13 -13
  264. package/dist/internal/platform-schedule-sync.js +2 -2
  265. package/dist/internal/platform-timers.d.ts +8 -1
  266. package/dist/internal/platform-timers.d.ts.map +1 -1
  267. package/dist/internal/platform-timers.js +10 -2
  268. package/dist/internal/playground/toolchain.js +6 -6
  269. package/dist/internal/process-memory-telemetry.js +2 -2
  270. package/dist/internal/reminder-control-plane-protocol.d.ts +8 -1
  271. package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -1
  272. package/dist/internal/reminder-runner.d.ts +13 -3
  273. package/dist/internal/reminder-runner.d.ts.map +1 -1
  274. package/dist/internal/reminder-runner.js +78 -53
  275. package/dist/internal/resolve-prod-target.d.ts +1 -9
  276. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  277. package/dist/internal/resolve-prod-target.js +1 -30
  278. package/dist/internal/resolved-connections.js +8 -8
  279. package/dist/internal/run-client.d.ts +11 -1
  280. package/dist/internal/run-client.d.ts.map +1 -1
  281. package/dist/internal/run-client.js +197 -59
  282. package/dist/internal/runtime-dispatch-runner.d.ts +1 -0
  283. package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
  284. package/dist/internal/runtime-dispatch-runner.js +7 -1
  285. package/dist/internal/schedule-runner.js +1 -1
  286. package/dist/internal/sdk-runner.d.ts +4 -0
  287. package/dist/internal/sdk-runner.d.ts.map +1 -1
  288. package/dist/internal/sdk-runner.js +37 -22
  289. package/dist/internal/server.d.ts +8 -0
  290. package/dist/internal/server.d.ts.map +1 -1
  291. package/dist/internal/server.js +58 -45
  292. package/dist/internal/session-engine.d.ts +31 -44
  293. package/dist/internal/session-engine.d.ts.map +1 -1
  294. package/dist/internal/session-engine.js +67 -83
  295. package/dist/internal/session-links.d.ts.map +1 -1
  296. package/dist/internal/session-links.js +8 -7
  297. package/dist/internal/session-run-log.d.ts +10 -24
  298. package/dist/internal/session-run-log.d.ts.map +1 -1
  299. package/dist/internal/session-run-log.js +13 -27
  300. package/dist/internal/sessions-client.d.ts +1 -0
  301. package/dist/internal/sessions-client.d.ts.map +1 -1
  302. package/dist/internal/sessions-client.js +8 -3
  303. package/dist/internal/skills-sync.d.ts +3 -5
  304. package/dist/internal/skills-sync.d.ts.map +1 -1
  305. package/dist/internal/skills-sync.js +3 -5
  306. package/dist/internal/start-log-store.d.ts +7 -18
  307. package/dist/internal/start-log-store.d.ts.map +1 -1
  308. package/dist/internal/start-log-store.js +47 -24
  309. package/dist/internal/storage-coordinator.d.ts +7 -10
  310. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  311. package/dist/internal/storage-coordinator.js +18 -20
  312. package/dist/internal/storage-roles.d.ts +5 -0
  313. package/dist/internal/storage-roles.d.ts.map +1 -1
  314. package/dist/internal/store-api-protocol.d.ts +12 -33
  315. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  316. package/dist/internal/store-api-protocol.js +6 -22
  317. package/dist/internal/store-mirror.d.ts +4 -5
  318. package/dist/internal/store-mirror.d.ts.map +1 -1
  319. package/dist/internal/store-mirror.js +6 -8
  320. package/dist/internal/turn-lease-store.d.ts +12 -5
  321. package/dist/internal/turn-lease-store.d.ts.map +1 -1
  322. package/dist/internal/turn-lease-store.js +61 -8
  323. package/dist/internal/v2-hosting.d.ts +4 -7
  324. package/dist/internal/v2-hosting.d.ts.map +1 -1
  325. package/dist/internal/v2-hosting.js +4 -7
  326. package/dist/internal/workspace-sync.d.ts +3 -6
  327. package/dist/internal/workspace-sync.d.ts.map +1 -1
  328. package/dist/internal/workspace-sync.js +3 -6
  329. package/dist/internal/workspace.d.ts +10 -16
  330. package/dist/internal/workspace.d.ts.map +1 -1
  331. package/dist/internal/workspace.js +9 -14
  332. package/dist/memory.d.ts +17 -43
  333. package/dist/memory.d.ts.map +1 -1
  334. package/dist/memory.js +34 -80
  335. package/dist/playground/assets/index-DPKLl4C_.css +1 -0
  336. package/dist/playground/assets/index-MijLHTbB.js +71 -0
  337. package/dist/playground/index.html +2 -2
  338. package/dist/storage-backends/cursor-hosted-v2.d.ts +8 -36
  339. package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -1
  340. package/dist/storage-backends/cursor-hosted-v2.js +9 -37
  341. package/dist/storage-backends/cursor-hosted.d.ts +17 -30
  342. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
  343. package/dist/storage-backends/cursor-hosted.js +14 -27
  344. package/dist/storage-protocol.d.ts +13 -38
  345. package/dist/storage-protocol.d.ts.map +1 -1
  346. package/dist/storage-protocol.js +14 -39
  347. package/dist/types.d.ts +29 -30
  348. package/dist/types.d.ts.map +1 -1
  349. package/docs/evals.md +2 -2
  350. package/docs/reference/cli.md +20 -9
  351. package/docs/templates/agentic-owners.md +2 -0
  352. package/docs/templates/security-reviewer.md +7 -8
  353. package/docs/templates/thermo-quality-review.md +2 -2
  354. package/docs/templates/thermo-review.md +2 -2
  355. package/docs/templates/triage.md +6 -1
  356. package/package.json +1 -1
  357. package/templates/agents-md/evals/agents.eval.ts +1 -0
  358. package/templates/code-wiki/bot/instructions.md +4 -4
  359. package/templates/pr-autofixer/bot/instructions.md +3 -3
  360. package/templates/security-reviewer/README.md +5 -3
  361. package/templates/security-reviewer/bot/tools/post_findings.ts +8 -8
  362. package/templates/thermo-quality-review/bot/tools/post_findings.ts +8 -8
  363. package/templates/thermo-review/bot/tools/post_findings.ts +8 -8
  364. package/dist/docs/assets/chunks/@localSearchIndexroot.BITLoOQa.js +0 -1
  365. package/dist/docs/assets/chunks/channel.B46uXH41.js +0 -1
  366. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.0cmCFsSf.js +0 -1
  367. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.0cmCFsSf.js +0 -1
  368. package/dist/docs/assets/chunks/clone.1vTOFZT1.js +0 -1
  369. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CbsZcOOu.js +0 -1
  370. package/dist/docs/assets/chunks/wardley-RL74JXVD.DEA21akR.js +0 -162
  371. package/dist/docs/assets/reference_cli.md.BsgDqYPh.lean.js +0 -1
  372. package/dist/playground/assets/index-6BbTPnaT.css +0 -1
  373. package/dist/playground/assets/index-CI7FAmOP.js +0 -71
  374. /package/dist/docs/assets/{evals.md.LRCSn6Ik.lean.js → evals.md.C851kViu.lean.js} +0 -0
  375. /package/dist/docs/assets/{templates_thermo-quality-review.md.95qmTmr1.lean.js → templates_thermo-quality-review.md.B77UyTrX.lean.js} +0 -0
  376. /package/dist/docs/assets/{templates_thermo-review.md.DQh6Q0C-.lean.js → templates_thermo-review.md.DRJ7mC5U.lean.js} +0 -0
@@ -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 { 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";
@@ -70,16 +70,17 @@ function pickAgentUrl(handle, slug) {
70
70
  const root = handle.agents.find(a => a.slug === "");
71
71
  return (root !== null && root !== void 0 ? root : handle.agents[0]).url;
72
72
  }
73
- function startEphemeral(options) {
74
- return __awaiter(this, void 0, void 0, function* () {
73
+ function startEphemeral(options_1) {
74
+ return __awaiter(this, arguments, void 0, function* (options, evals = false) {
75
75
  var _a, _b;
76
76
  const dir = resolve((_a = options.cwd) !== null && _a !== void 0 ? _a : process.cwd(), options.dir);
77
77
  const stateRoot = (_b = options.stateRoot) !== null && _b !== void 0 ? _b : (yield mkdtemp(join(tmpdir(), "agent-serve-ax-")));
78
- const handle = yield serve(dir, Object.assign({ host: "127.0.0.1", port: 0, stateRoot, playground: false, schedules: false,
78
+ const serveOptions = Object.assign({ host: "127.0.0.1", port: 0, stateRoot, playground: false, schedules: false, evals,
79
79
  // Keep host/tool timing off stdout so `run`/`eval` JSON stays clean.
80
80
  logger: (line) => {
81
81
  process.stderr.write(`${line}\n`);
82
- } }, (options.bearerToken === undefined ? {} : { authToken: options.bearerToken })));
82
+ } }, (options.bearerToken === undefined ? {} : { authToken: options.bearerToken }));
83
+ const handle = yield serve(dir, serveOptions);
83
84
  return {
84
85
  agentUrl: pickAgentUrl(handle, options.slug),
85
86
  close: () => __awaiter(this, void 0, void 0, function* () {
@@ -682,25 +683,17 @@ export function cmdTrajectory(options) {
682
683
  });
683
684
  }
684
685
  /**
685
- * Which surface `eval` should target. Local (ephemeral) is the default;
686
- * `--prod` uses the hosted deployment, `--url` a running server.
687
- * 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.
688
688
  */
689
689
  export function resolveEvalTargetMode(options) {
690
- const flags = [
691
- options.prod === true ? "--prod" : undefined,
692
- options.url !== undefined ? "--url" : undefined,
693
- ].filter(flag => flag !== undefined);
694
- if (flags.length > 1) {
695
- return { error: `${flags.join(" and ")} are mutually exclusive` };
696
- }
697
- if (options.url !== undefined) {
698
- return "url";
699
- }
700
690
  if (options.prod === true) {
701
- 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
+ };
702
695
  }
703
- return "local";
696
+ return options.url === undefined ? "local" : "url";
704
697
  }
705
698
  /** Resolve the eval target; prints a CLI-ready error and returns an exit code on failure. */
706
699
  function resolveEvalTarget(options) {
@@ -713,34 +706,7 @@ function resolveEvalTarget(options) {
713
706
  if (mode === "url") {
714
707
  return { agentUrl: options.url.replace(/\/$/, "") };
715
708
  }
716
- if (mode === "local") {
717
- return startEphemeral(options);
718
- }
719
- try {
720
- const prod = yield resolveProdTarget({
721
- dir: options.dir,
722
- cwd: options.cwd,
723
- slug: options.slug,
724
- team: options.team,
725
- apiKey: options.apiKey,
726
- fetchImpl: options.fetchImpl,
727
- });
728
- return { agentUrl: prod.agentUrl, headers: prod.headers };
729
- }
730
- catch (error) {
731
- if (error instanceof ProdTargetError && error.notFound) {
732
- // Keep the API error text: a 404 can also mean a wrong API host or a
733
- // disabled feature gate, and the message distinguishes those from a
734
- // genuinely missing deployment.
735
- process.stderr.write(`${sanitizeCustomerError(error.message)}\n` +
736
- ` deploy it first: ${CLI_COMMAND_NAME} deploy --slug ${error.slug}\n` +
737
- ` or omit --prod: ${CLI_COMMAND_NAME} eval --dir ${options.dir}\n`);
738
- return 1;
739
- }
740
- process.stderr.write(`${sanitizeCustomerError(error instanceof Error ? error.message : String(error))}\n` +
741
- `Pass --prod for the hosted deployment, or omit it to run on an ephemeral local server.\n`);
742
- return 1;
743
- }
709
+ return startEphemeral(options, true);
744
710
  });
745
711
  }
746
712
  export function cmdEval(options) {
@@ -759,7 +725,7 @@ export function cmdEval(options) {
759
725
  return 2;
760
726
  }
761
727
  if (mode === "local") {
762
- 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");
763
729
  return 2;
764
730
  }
765
731
  }
@@ -777,7 +743,7 @@ export function cmdEval(options) {
777
743
  const tags = options.tags === undefined || options.tags.length === 0 ? undefined : options.tags;
778
744
  if (options.list) {
779
745
  // List the same surface a run will execute: local filesystem by default,
780
- // GET /v1/dev/evals on --prod / --url.
746
+ // GET /v1/dev/evals on --url.
781
747
  if (mode === "local") {
782
748
  return listLocalEvals(projectRoot, options, filterIds, tags);
783
749
  }
@@ -823,7 +789,7 @@ export function cmdEval(options) {
823
789
  process.stderr.write(`eval target: ${target.agentUrl}\n`);
824
790
  }
825
791
  // Default local: ephemeral in-process harness against local eval sources.
826
- // --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
827
793
  // batch lands in playground history and defineStorage evals (when set).
828
794
  if (mode === "local") {
829
795
  const progress = stream ? createStreamProgress() : undefined;
@@ -869,7 +835,7 @@ export function cmdEval(options) {
869
835
  },
870
836
  fetchImpl: options.fetchImpl,
871
837
  });
872
- return yield printEvalAccepted(started, options, target.agentUrl);
838
+ return printEvalAccepted(started, options, target.agentUrl);
873
839
  }
874
840
  const progress = createRemoteEvalProgress(options.verbose === true || stream);
875
841
  // Start first so we can print the Eval ID before the (often long) wait.
@@ -885,7 +851,7 @@ export function cmdEval(options) {
885
851
  },
886
852
  fetchImpl: options.fetchImpl,
887
853
  });
888
- yield printEvalIdBanner(started, options, target.agentUrl);
854
+ printEvalIdBanner(started, options, target.agentUrl);
889
855
  (_a = progress === null || progress === void 0 ? void 0 : progress.onSnapshot) === null || _a === void 0 ? void 0 : _a.call(progress, started);
890
856
  const snapshot = yield pollRemoteEvalRun({
891
857
  baseUrl: target.agentUrl,
@@ -924,106 +890,58 @@ export function cmdEval(options) {
924
890
  }
925
891
  });
926
892
  }
927
- /**
928
- * Flags to re-target the same surface from an `eval --no-wait` hint.
929
- * Exported for tests.
930
- */
931
- export function formatEvalStatusFlags(options) {
932
- const parts = [];
933
- if (options.url !== undefined) {
934
- parts.push(`--url ${options.url.replace(/\/$/, "")}`);
935
- }
936
- else {
937
- parts.push("--prod");
938
- if (options.slug !== undefined && options.slug !== "") {
939
- parts.push(`--slug ${options.slug}`);
940
- }
941
- }
942
- if (options.team !== undefined && options.team !== "") {
943
- parts.push(`--team ${options.team}`);
944
- }
945
- return parts.length === 0 ? "" : ` ${parts.join(" ")}`;
946
- }
947
893
  /** Print Eval ID + cancel/status hints after a remote batch is accepted. */
948
894
  function printEvalIdBanner(started, options, agentUrl) {
949
- return __awaiter(this, void 0, void 0, function* () {
950
- const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
951
- const statusFlags = formatEvalStatusFlags(options);
952
- const playgroundUrl = yield resolveEvalPlaygroundDeepLink(options, started.runId, agentUrl);
953
- if (options.json) {
954
- // Waiters still want the id on stderr so progress text stays readable.
955
- 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`);
956
- return;
957
- }
958
- const durable = started.config.durableRuns === true ? " (persisted)" : "";
959
- process.stderr.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
960
- process.stderr.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
961
- process.stderr.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
962
- if (playgroundUrl !== undefined) {
963
- process.stderr.write(`Playground: ${playgroundUrl}\n`);
964
- }
965
- });
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
+ }
966
910
  }
967
911
  /** `--no-wait`: print the accepted batch id (and how to poll) then exit. */
968
912
  function printEvalAccepted(started, options, agentUrl) {
969
- return __awaiter(this, void 0, void 0, function* () {
970
- const pollPath = `${agentUrl.replace(/\/$/, "")}/v1/dev/evals/runs/${started.runId}`;
971
- const statusFlags = formatEvalStatusFlags(options);
972
- const playgroundUrl = yield resolveEvalPlaygroundDeepLink(options, started.runId, agentUrl);
973
- if (options.json) {
974
- 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`);
975
- }
976
- else {
977
- const durable = started.config.durableRuns === true ? " (persisted)" : "";
978
- process.stdout.write(`Eval ID: ${started.runId}${durable} — ${started.summary.total} case(s)\n`);
979
- process.stdout.write(`Cancel: ${CLI_COMMAND_NAME} eval cancel ${started.runId}${statusFlags}\n`);
980
- process.stdout.write(`Status: ${CLI_COMMAND_NAME} eval status ${started.runId}${statusFlags}\n`);
981
- if (playgroundUrl !== undefined) {
982
- process.stdout.write(`Playground: ${playgroundUrl}\n`);
983
- }
984
- 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`);
985
926
  }
986
- return 0;
987
- });
927
+ process.stdout.write(`Poll: ${pollPath}\n`);
928
+ }
929
+ return 0;
988
930
  }
989
931
  /**
990
- * Hosted alias playground URL with `view=evals` + `evalRunId` so the SPA
991
- * 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).
992
934
  */
993
- function resolveEvalPlaygroundDeepLink(options, runId, agentUrl) {
994
- return __awaiter(this, void 0, void 0, function* () {
995
- if (options.prod !== true) {
996
- const base = `${agentUrl.replace(/\/$/, "")}/playground`;
997
- try {
998
- const url = new URL(base);
999
- url.searchParams.set("view", "evals");
1000
- url.searchParams.set("evalRunId", runId);
1001
- return url.toString();
1002
- }
1003
- catch (_a) {
1004
- return undefined;
1005
- }
1006
- }
1007
- try {
1008
- const resolved = yield resolveProdAliasPlaygroundUrl({
1009
- dir: options.dir,
1010
- cwd: options.cwd,
1011
- slug: options.slug,
1012
- team: options.team,
1013
- apiKey: options.apiKey,
1014
- fetchImpl: options.fetchImpl,
1015
- // Avoid a second "Using hosted deployment" line; banner already has context.
1016
- err: () => { },
1017
- });
1018
- const url = new URL(resolved.playgroundUrl);
1019
- url.searchParams.set("view", "evals");
1020
- url.searchParams.set("evalRunId", runId);
1021
- return url.toString();
1022
- }
1023
- catch (_b) {
1024
- return undefined;
1025
- }
1026
- });
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
+ }
1027
945
  }
1028
946
  /**
1029
947
  * `eval cancel <runId>` — cancel a running remote batch by Eval ID.
@@ -1036,11 +954,11 @@ export function cmdEvalCancel(runId, options) {
1036
954
  return 2;
1037
955
  }
1038
956
  if (mode === "local") {
1039
- 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");
1040
958
  return 2;
1041
959
  }
1042
960
  if (runId === undefined || runId === "") {
1043
- process.stderr.write("usage: eval cancel <evalId> --prod|--url …\n");
961
+ process.stderr.write("usage: eval cancel <evalId> --url <baseUrl>\n");
1044
962
  return 2;
1045
963
  }
1046
964
  if (options.list === true || options.noWait === true) {
@@ -1081,8 +999,8 @@ export function cmdEvalCancel(runId, options) {
1081
999
  });
1082
1000
  }
1083
1001
  /**
1084
- * `eval status [runId]` — fetch one batch (or list recent) on the deployment /
1085
- * `--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,
1086
1004
  * `1` when failed / any case failed / unknown, `2` for usage errors, `3` when
1087
1005
  * the batch is still running (for poll loops after `--no-wait`).
1088
1006
  */
@@ -1094,7 +1012,7 @@ export function cmdEvalStatus(runId, options) {
1094
1012
  return 2;
1095
1013
  }
1096
1014
  if (mode === "local") {
1097
- 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");
1098
1016
  return 2;
1099
1017
  }
1100
1018
  if (options.list === true || options.noWait === true) {
@@ -1399,7 +1317,8 @@ export function formatEvalAssertionLine(assertion) {
1399
1317
  }
1400
1318
  /**
1401
1319
  * `logs` — follow deploy progress (`--prod`) then runtime agent logs.
1402
- * 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`.
1403
1322
  */
1404
1323
  export function cmdLogs(options) {
1405
1324
  return __awaiter(this, void 0, void 0, function* () {
@@ -1408,6 +1327,11 @@ export function cmdLogs(options) {
1408
1327
  process.stderr.write("--prod and --url are mutually exclusive\n");
1409
1328
  return 2;
1410
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
+ }
1411
1335
  const controller = new AbortController();
1412
1336
  const onSignal = () => {
1413
1337
  controller.abort();
@@ -1429,11 +1353,26 @@ export function cmdLogs(options) {
1429
1353
  if (typeof auth === "number") {
1430
1354
  return auth;
1431
1355
  }
1432
- yield rejectV2ForLegacyCommand({
1356
+ const architecture = yield deploymentArchitecture({
1433
1357
  client: auth.client,
1434
1358
  teamId: auth.teamId,
1435
1359
  slug,
1436
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
+ }
1437
1376
  yield runLogsTail({
1438
1377
  prod: true,
1439
1378
  dir: options.dir,