@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
@@ -14,7 +14,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  };
15
15
  import { randomBytes } from "node:crypto";
16
16
  import { channelContinuationIdentity, httpContinuationIdentity } from "./continuation-channel.js";
17
- import { continuationSource } from "./continuation-identity.js";
17
+ import { continuationSource, isOneShotContinuationKey } from "./continuation-identity.js";
18
18
  import { NAME_PATTERN } from "./discovery/names.js";
19
19
  import { parseDuration } from "./duration.js";
20
20
  import { REMINDER_CP_PROTOCOL_VERSION, scheduleSpecFromCreateInput, toWireReschedule, } from "./reminder-control-plane-protocol.js";
@@ -181,7 +181,7 @@ export class ReminderRunner {
181
181
  return;
182
182
  }
183
183
  this.controlPlaneReadFailureLogged = true;
184
- this.logger(`[agent-sdk] reminders: control-plane ${what} failed: ${error instanceof Error ? error.message : String(error)}`);
184
+ this.logger(`[bdk] reminders: control-plane ${what} failed: ${error instanceof Error ? error.message : String(error)}`);
185
185
  }
186
186
  /**
187
187
  * Load reminder documents from the control plane into memory. Does not
@@ -210,7 +210,7 @@ export class ReminderRunner {
210
210
  // The CP owns status; a fire whose handler is missing reports `stop`
211
211
  // from executeFire instead of the guest writing a disarm.
212
212
  if (remote.length > 0) {
213
- this.logger(`[agent-sdk] reminders: hydrated ${remote.length} reminder(s) from control plane`);
213
+ this.logger(`[bdk] reminders: hydrated ${remote.length} reminder(s) from control plane`);
214
214
  }
215
215
  return;
216
216
  }
@@ -233,7 +233,7 @@ export class ReminderRunner {
233
233
  }
234
234
  }
235
235
  if (remote.length > 0 || disarmedOrphan > 0) {
236
- this.logger(`[agent-sdk] reminders: hydrated ${remote.length} reminder(s) from control plane` +
236
+ this.logger(`[bdk] reminders: hydrated ${remote.length} reminder(s) from control plane` +
237
237
  (disarmedOrphan > 0 ? `; disarmed ${disarmedOrphan} without live handlers` : ""));
238
238
  }
239
239
  });
@@ -272,7 +272,7 @@ export class ReminderRunner {
272
272
  restored += 1;
273
273
  }
274
274
  if (restored > 0 || disarmedOrphan > 0) {
275
- this.logger(`[agent-sdk] reminders: restored ${restored} armed reminder(s)` +
275
+ this.logger(`[bdk] reminders: restored ${restored} armed reminder(s)` +
276
276
  (disarmedOrphan > 0 ? `; disarmed ${disarmedOrphan} without live handlers` : ""));
277
277
  }
278
278
  });
@@ -334,6 +334,32 @@ export class ReminderRunner {
334
334
  return [...this.records.values()];
335
335
  });
336
336
  }
337
+ /**
338
+ * A keyed list asks the control plane for that key. An unfiltered list
339
+ * still uses allRecords. Do not replace the in-memory map with the keyed page.
340
+ */
341
+ recordsForList(filter) {
342
+ return __awaiter(this, void 0, void 0, function* () {
343
+ if (this.usesControlPlaneProtocol &&
344
+ ((filter === null || filter === void 0 ? void 0 : filter.purpose) !== undefined || (filter === null || filter === void 0 ? void 0 : filter.continuationToken) !== undefined)) {
345
+ try {
346
+ const remote = yield this.controlPlane.listReminders(Object.assign(Object.assign({}, (filter.purpose === undefined ? {} : { purpose: filter.purpose })), (filter.continuationToken === undefined
347
+ ? {}
348
+ : { continuationToken: filter.continuationToken })));
349
+ this.controlPlaneReadFailureLogged = false;
350
+ for (const record of remote) {
351
+ this.records.set(record.id, record);
352
+ }
353
+ return remote;
354
+ }
355
+ catch (error) {
356
+ this.logControlPlaneReadFailure("list", error);
357
+ throw error;
358
+ }
359
+ }
360
+ return this.allRecords();
361
+ });
362
+ }
337
363
  stop() {
338
364
  this.started = false;
339
365
  for (const timer of this.timers.values()) {
@@ -385,12 +411,15 @@ export class ReminderRunner {
385
411
  if (name === "") {
386
412
  throw new ReminderValidationError("handler name is required");
387
413
  }
388
- if (!isValidReminderHandlerName(name)) {
414
+ // A mounted extension's handler registers as `<ns>__<name>`, a name no
415
+ // authored stem may take.
416
+ const registered = this.namedHandlers.has(name);
417
+ if (!registered && !isValidReminderHandlerName(name)) {
389
418
  throw new ReminderValidationError(name.includes("__")
390
- ? `Invalid reminder handler name "${name}": may not contain "__"`
419
+ ? `Invalid reminder handler name "${name}": may not contain "__" (reserved for mounted extensions' <ns>__<name> handlers)`
391
420
  : `Invalid reminder handler name "${name}": must match ${NAME_PATTERN}`);
392
421
  }
393
- if (this.namedHandlers.get(name) === undefined) {
422
+ if (!registered) {
394
423
  throw new ReminderValidationError(`Unknown reminder handler "${name}" (expected reminders/${name}.ts under the project root)`);
395
424
  }
396
425
  if (input.args !== undefined && !isJsonObject(input.args)) {
@@ -469,7 +498,7 @@ export class ReminderRunner {
469
498
  }
470
499
  list(filter) {
471
500
  return __awaiter(this, void 0, void 0, function* () {
472
- const all = yield this.allRecords();
501
+ const all = yield this.recordsForList(filter);
473
502
  return all
474
503
  .filter(r => {
475
504
  if ((filter === null || filter === void 0 ? void 0 : filter.status) !== undefined) {
@@ -634,7 +663,7 @@ export class ReminderRunner {
634
663
  }
635
664
  }
636
665
  catch (error) {
637
- this.logger(`[agent-sdk] reminder "${record.id}" until() failed: ${error instanceof Error ? error.message : String(error)}`);
666
+ this.logger(`[bdk] reminder "${record.id}" until() failed: ${error instanceof Error ? error.message : String(error)}`);
638
667
  }
639
668
  }
640
669
  if (yield this.isSessionBusy(record.channelId, record.continuationToken)) {
@@ -688,7 +717,7 @@ export class ReminderRunner {
688
717
  * beside the control plane's `timed_work.fire` count.
689
718
  */
690
719
  recordFireOutcome(record, fire) {
691
- this.logger(`[agent-sdk] reminder fire_outcome kind=${fire.kind} reason=${fire.reason}` +
720
+ this.logger(`[bdk] reminder fire_outcome kind=${fire.kind} reason=${fire.reason}` +
692
721
  ` reminderId=${record.id} purpose=${record.purpose}` +
693
722
  ` channelId=${record.channelId} fireCount=${record.fireCount}` +
694
723
  (fire.turnStatus === undefined ? "" : ` turn=${fire.turnStatus}`) +
@@ -706,7 +735,7 @@ export class ReminderRunner {
706
735
  });
707
736
  }
708
737
  catch (error) {
709
- this.logger(`[agent-sdk] reminder fire_outcome metric failed: ${error instanceof Error ? error.message : String(error)}`);
738
+ this.logger(`[bdk] reminder fire_outcome metric failed: ${error instanceof Error ? error.message : String(error)}`);
710
739
  }
711
740
  }
712
741
  recordFromDescriptor(descriptor) {
@@ -745,7 +774,7 @@ export class ReminderRunner {
745
774
  const delay = Math.min(MAX_TIMER_MS, Math.max(0, nextFireAtMs - Date.now()));
746
775
  const timer = setTimeout(() => {
747
776
  void this.fire(record.id).catch((error) => __awaiter(this, void 0, void 0, function* () {
748
- this.logger(`[agent-sdk] reminder "${record.id}" fire failed: ${error instanceof Error ? error.message : String(error)}`);
777
+ this.logger(`[bdk] reminder "${record.id}" fire failed: ${error instanceof Error ? error.message : String(error)}`);
749
778
  // Keep recurring reminders alive after unexpected throws.
750
779
  // One-shots stay armed so a failed wake can be retried / dispatched.
751
780
  try {
@@ -760,7 +789,7 @@ export class ReminderRunner {
760
789
  yield this.afterFire(current, "skip");
761
790
  }
762
791
  catch (rescheduleError) {
763
- this.logger(`[agent-sdk] reminder "${record.id}" reschedule after failure failed: ${rescheduleError instanceof Error ? rescheduleError.message : String(rescheduleError)}`);
792
+ this.logger(`[bdk] reminder "${record.id}" reschedule after failure failed: ${rescheduleError instanceof Error ? rescheduleError.message : String(rescheduleError)}`);
764
793
  }
765
794
  }));
766
795
  }, delay);
@@ -818,13 +847,13 @@ export class ReminderRunner {
818
847
  }
819
848
  }
820
849
  catch (error) {
821
- this.logger(`[agent-sdk] reminder "${id}" until() failed: ${error instanceof Error ? error.message : String(error)}`);
850
+ this.logger(`[bdk] reminder "${id}" until() failed: ${error instanceof Error ? error.message : String(error)}`);
822
851
  }
823
852
  }
824
853
  if (yield this.isSessionBusy(record.channelId, record.continuationToken)) {
825
854
  if (record.busyPolicy === "skipIfBusy") {
826
855
  yield this.afterFire(record, "skip");
827
- this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) skipped: session busy`);
856
+ this.logger(`[bdk] reminder "${id}" (${record.purpose}) skipped: session busy`);
828
857
  return { outcome: "fired", reason: "skipped_busy" };
829
858
  }
830
859
  yield this.whenSessionIdle(record.channelId, record.continuationToken);
@@ -857,7 +886,7 @@ export class ReminderRunner {
857
886
  if (result.action === "stop") {
858
887
  if (latest !== undefined && latest.status === "armed") {
859
888
  yield this.disarm(latest, "run_stop");
860
- this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) disarmed: run_stop`);
889
+ this.logger(`[bdk] reminder "${id}" (${record.purpose}) disarmed: run_stop`);
861
890
  return { outcome: "fired", reason: "run_stop" };
862
891
  }
863
892
  return {
@@ -870,11 +899,11 @@ export class ReminderRunner {
870
899
  }
871
900
  if (result.action === "skip") {
872
901
  yield this.afterFire(latest, "skip", result.reschedule);
873
- this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) skipped`);
902
+ this.logger(`[bdk] reminder "${id}" (${record.purpose}) skipped`);
874
903
  return { outcome: "fired", reason: "skipped" };
875
904
  }
876
905
  yield this.afterFire(latest, "delivered", result.reschedule);
877
- this.logger(`[agent-sdk] reminder "${id}" (${record.purpose}) fired`);
906
+ this.logger(`[bdk] reminder "${id}" (${record.purpose}) fired`);
878
907
  return { outcome: "fired", reason: "delivered" };
879
908
  }
880
909
  finally {
@@ -910,14 +939,8 @@ export class ReminderRunner {
910
939
  * Follow-ups must use the bound session's principal. If the session is gone,
911
940
  * disarm rather than creating a fresh APP_AUTH conversation.
912
941
  */
913
- resolveFollowupAuth(channelId, continuationToken) {
914
- return __awaiter(this, void 0, void 0, function* () {
915
- const existing = yield this.engine.sessions.findByContinuation(channelId, continuationToken);
916
- if (existing !== undefined) {
917
- return existing.auth;
918
- }
919
- return undefined;
920
- });
942
+ boundSession(record) {
943
+ return this.engine.sessions.findByContinuation(record.channelId, record.continuationToken);
921
944
  }
922
945
  deliverPrompt(record) {
923
946
  return __awaiter(this, void 0, void 0, function* () {
@@ -933,9 +956,9 @@ export class ReminderRunner {
933
956
  */
934
957
  resolveFollowupTarget(record) {
935
958
  return __awaiter(this, void 0, void 0, function* () {
936
- const local = yield this.resolveFollowupAuth(record.channelId, record.continuationToken);
959
+ const local = yield this.boundSession(record);
937
960
  if (local !== undefined) {
938
- return { auth: local, reached: "session_joined" };
961
+ return { auth: local.auth, sessionId: local.sessionId, reached: "session_joined" };
939
962
  }
940
963
  if (this.hostedGuest === undefined) {
941
964
  return { auth: undefined, reached: "session_gone" };
@@ -946,20 +969,20 @@ export class ReminderRunner {
946
969
  if (!restored) {
947
970
  return { auth: undefined, reached: "session_gone" };
948
971
  }
949
- const auth = yield this.resolveFollowupAuth(record.channelId, record.continuationToken);
950
- return auth === undefined
972
+ const session = yield this.boundSession(record);
973
+ return session === undefined
951
974
  ? { auth: undefined, reached: "session_unreadable" }
952
- : { auth, reached: "session_restored" };
975
+ : { auth: session.auth, sessionId: session.sessionId, reached: "session_restored" };
953
976
  });
954
977
  }
955
978
  deliverPromptFire(record) {
956
979
  return __awaiter(this, void 0, void 0, function* () {
957
980
  const target = yield this.resolveFollowupTarget(record);
958
981
  if (target.auth !== undefined) {
959
- return this.promptDelivery(record, target.auth, target.reached);
982
+ return this.promptDelivery(record, target, target.reached);
960
983
  }
961
984
  if (target.reached === "session_unreadable") {
962
- this.logger(`[agent-sdk] reminder "${record.id}" (${record.purpose}) durable session did not materialize locally; not opening a new one`);
985
+ this.logger(`[bdk] reminder "${record.id}" (${record.purpose}) durable session did not materialize locally; not opening a new one`);
963
986
  return { result: { action: "stop" }, reason: "session_gone" };
964
987
  }
965
988
  if (this.hostedGuest !== undefined &&
@@ -978,7 +1001,7 @@ export class ReminderRunner {
978
1001
  };
979
1002
  }
980
1003
  try {
981
- return yield this.promptDelivery(record, fireAuth, "session_opened");
1004
+ return yield this.promptDelivery(record, { auth: fireAuth }, "session_opened");
982
1005
  }
983
1006
  catch (error) {
984
1007
  if (!(error instanceof SessionAuthError)) {
@@ -987,7 +1010,7 @@ export class ReminderRunner {
987
1010
  // A session landed on this key under another principal between the
988
1011
  // lookup and the send. That does not change on retry, so stop
989
1012
  // rather than let the control plane re-admit until its attempt cap.
990
- this.logger(`[agent-sdk] reminder "${record.id}" (${record.purpose}) cannot join session on its continuation: ${error.message}`);
1013
+ this.logger(`[bdk] reminder "${record.id}" (${record.purpose}) cannot join session on its continuation: ${error.message}`);
991
1014
  return { result: { action: "stop" }, reason: "session_gone" };
992
1015
  }
993
1016
  }
@@ -999,11 +1022,11 @@ export class ReminderRunner {
999
1022
  return { result: { action: "stop" }, reason: "session_gone" };
1000
1023
  });
1001
1024
  }
1002
- promptDelivery(record, auth, delivered) {
1025
+ promptDelivery(record, address, delivered) {
1003
1026
  return __awaiter(this, void 0, void 0, function* () {
1004
1027
  var _a;
1005
1028
  const settle = {};
1006
- const result = yield this.sendFollowup(record, buildFirePrompt(record), auth, settle);
1029
+ const result = yield this.sendFollowup(record, buildFirePrompt(record), address, settle);
1007
1030
  return {
1008
1031
  result,
1009
1032
  reason: result.action === "skip" ? ((_a = settle.skipReason) !== null && _a !== void 0 ? _a : "busy") : delivered,
@@ -1015,14 +1038,16 @@ export class ReminderRunner {
1015
1038
  * Join the reminder's existing session. Control-plane (`/v2`) channels
1016
1039
  * refuse authored `continuationToken`; pass the stored key as
1017
1040
  * {@link EngineSendOptions.mailboxContinuation} so the engine reuses the
1018
- * CP-selected identity without channel admission.
1041
+ * CP-selected identity without channel admission. A one-shot key (an HTTP
1042
+ * session's) names the event that opened the session and never joins, so
1043
+ * the follow-up names the bound session itself.
1019
1044
  */
1020
- followupSendOptions(record, auth) {
1045
+ followupSendOptions(record, address) {
1046
+ const { auth, sessionId } = address;
1021
1047
  if (this.channelUsesControlPlaneContinuation(record.channelId)) {
1022
- return {
1023
- auth,
1024
- mailboxContinuation: { key: record.continuationToken },
1025
- };
1048
+ return Object.assign({ auth, mailboxContinuation: { key: record.continuationToken } }, (sessionId !== undefined && isOneShotContinuationKey(record.continuationToken)
1049
+ ? { hostedSessionId: sessionId }
1050
+ : {}));
1026
1051
  }
1027
1052
  return {
1028
1053
  auth,
@@ -1061,9 +1086,9 @@ export class ReminderRunner {
1061
1086
  }
1062
1087
  });
1063
1088
  }
1064
- sendFollowup(record, message, auth, settle, extra) {
1089
+ sendFollowup(record, message, address, settle, extra) {
1065
1090
  return __awaiter(this, void 0, void 0, function* () {
1066
- const sendOptions = Object.assign(Object.assign({}, this.followupSendOptions(record, auth)), { state: extra === null || extra === void 0 ? void 0 : extra.state, refreshState: extra === null || extra === void 0 ? void 0 : extra.refreshState, title: extra === null || extra === void 0 ? void 0 : extra.title, clearCloudOverride: extra === null || extra === void 0 ? void 0 : extra.clearCloudOverride });
1091
+ const sendOptions = Object.assign(Object.assign({}, this.followupSendOptions(record, address)), { state: extra === null || extra === void 0 ? void 0 : extra.state, refreshState: extra === null || extra === void 0 ? void 0 : extra.refreshState, title: extra === null || extra === void 0 ? void 0 : extra.title, clearCloudOverride: extra === null || extra === void 0 ? void 0 : extra.clearCloudOverride });
1067
1092
  try {
1068
1093
  const session = yield this.engine.send(record.channelId, message, sendOptions);
1069
1094
  yield this.settleFollowup(session, settle);
@@ -1084,7 +1109,7 @@ export class ReminderRunner {
1084
1109
  return { action: "delivered" };
1085
1110
  }
1086
1111
  catch (retryError) {
1087
- this.logger(`[agent-sdk] reminder "${record.id}" followup failed after wait: ${retryError instanceof Error ? retryError.message : String(retryError)}`);
1112
+ this.logger(`[bdk] reminder "${record.id}" followup failed after wait: ${retryError instanceof Error ? retryError.message : String(retryError)}`);
1088
1113
  if (settle !== undefined) {
1089
1114
  settle.skipReason = "followup_failed";
1090
1115
  }
@@ -1111,16 +1136,16 @@ export class ReminderRunner {
1111
1136
  followup(args) {
1112
1137
  return __awaiter(this, void 0, void 0, function* () {
1113
1138
  const target = yield self.resolveFollowupTarget(record);
1114
- let auth = target.auth;
1139
+ let address = target.auth === undefined ? undefined : target;
1115
1140
  // `openAuth` opens only when nothing exists anywhere: an unreadable
1116
1141
  // durable session must not be shadowed by a second one on the same
1117
1142
  // key (prompt-fire parity).
1118
- if (auth === undefined &&
1143
+ if (address === undefined &&
1119
1144
  target.reached === "session_gone" &&
1120
1145
  args.openAuth !== undefined) {
1121
- auth = args.openAuth;
1146
+ address = { auth: args.openAuth };
1122
1147
  }
1123
- if (auth === undefined) {
1148
+ if (address === undefined) {
1124
1149
  // Under the CP protocol the guest never writes reminder status;
1125
1150
  // the fire's `stop` outcome carries the reason instead.
1126
1151
  if (!self.usesControlPlaneProtocol) {
@@ -1128,11 +1153,11 @@ export class ReminderRunner {
1128
1153
  }
1129
1154
  throw new Error(`Reminder "${record.id}" followup: session gone for continuation`);
1130
1155
  }
1131
- const result = yield self.sendFollowup(record, args.message, auth, undefined, args);
1156
+ const result = yield self.sendFollowup(record, args.message, address, undefined, args);
1132
1157
  if (result.action === "skip") {
1133
1158
  throw new Error(`Reminder "${record.id}" followup skipped: session busy`);
1134
1159
  }
1135
- const existing = yield self.engine.sessions.findByContinuation(record.channelId, record.continuationToken);
1160
+ const existing = yield self.boundSession(record);
1136
1161
  if (existing === undefined) {
1137
1162
  throw new Error(`Reminder "${record.id}" followup: session not found for continuation`);
1138
1163
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Resolve a hosted (managed) agent-sdk deployment into a base URL +
3
- * request headers for chat/run/call/eval `--prod`.
3
+ * request headers for chat/run/call `--prod`.
4
4
  *
5
5
  * Uses short-lived `engineAccess` from the deployment status route
6
6
  * (Cursor API key on the management API; `X-Anyrun-Port-Token` on the
@@ -67,14 +67,6 @@ export interface ResolvedProdPlayground {
67
67
  export declare function resolveProdPlaygroundUrl(options: ResolveProdTargetOptions & {
68
68
  sessionId?: string;
69
69
  }): Promise<ResolvedProdPlayground>;
70
- /**
71
- * Look up a running deployment and return its stable alias playground URL.
72
- * Does not mint `engineAccess` — the browser signs in with the alias token.
73
- * Throws {@link Error} with a CLI-ready message on failure.
74
- */
75
- export declare function resolveProdAliasPlaygroundUrl(options: ResolveProdTargetOptions & {
76
- sessionId?: string;
77
- }): Promise<ResolvedProdAliasPlayground>;
78
70
  /** Resolve the deployment slug the same way `deploy` does for a single dir. */
79
71
  export declare function resolveProdSlug(options: {
80
72
  dir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-prod-target.d.ts","sourceRoot":"","sources":["../../src/internal/resolve-prod-target.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGrE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,gDAAgD;IAChD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAFxD,YACE,OAAO,EAAE,MAAM,EACN,OAAO,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAiB,EAItE;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA6F7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,sBAAsB,CAAC,CAsCjC;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,2BAA2B,CAAC,CAoBtC;AAwDD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgB7F"}
1
+ {"version":3,"file":"resolve-prod-target.d.ts","sourceRoot":"","sources":["../../src/internal/resolve-prod-target.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGrE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,gDAAgD;IAChD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAFxD,YACE,OAAO,EAAE,MAAM,EACN,OAAO,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAiB,EAItE;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA2F7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,sBAAsB,CAAC,CAsCjC;AAwDD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgB7F"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Resolve a hosted (managed) agent-sdk deployment into a base URL +
3
- * request headers for chat/run/call/eval `--prod`.
3
+ * request headers for chat/run/call `--prod`.
4
4
  *
5
5
  * Uses short-lived `engineAccess` from the deployment status route
6
6
  * (Cursor API key on the management API; `X-Anyrun-Port-Token` on the
@@ -66,8 +66,6 @@ export function resolveProdTarget(options) {
66
66
  err,
67
67
  });
68
68
  if (typeof auth === "number") {
69
- // Not "--prod": `eval` resolves the hosted deployment by default,
70
- // without any flag.
71
69
  throw new Error(`Could not resolve Cursor credentials/team for the hosted deployment (see above).`);
72
70
  }
73
71
  if (options.skipLegacyArchitectureCheck !== true) {
@@ -172,33 +170,6 @@ export function resolveProdPlaygroundUrl(options) {
172
170
  return Object.assign(Object.assign({}, resolved), { architecture });
173
171
  });
174
172
  }
175
- /**
176
- * Look up a running deployment and return its stable alias playground URL.
177
- * Does not mint `engineAccess` — the browser signs in with the alias token.
178
- * Throws {@link Error} with a CLI-ready message on failure.
179
- */
180
- export function resolveProdAliasPlaygroundUrl(options) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- var _a;
183
- const err = (_a = options.err) !== null && _a !== void 0 ? _a : ((text) => void process.stderr.write(text));
184
- const slug = resolveProdSlug(options);
185
- const auth = yield resolveDeployAuth({
186
- team: options.team,
187
- apiKey: options.apiKey,
188
- fetchImpl: options.fetchImpl,
189
- err,
190
- });
191
- if (typeof auth === "number") {
192
- throw new Error(`Could not resolve Cursor credentials/team for the hosted deployment (see above).`);
193
- }
194
- yield rejectV2ForLegacyCommand({
195
- client: auth.client,
196
- teamId: auth.teamId,
197
- slug,
198
- });
199
- return resolveProdAliasPlaygroundUrlWithAuth(options, auth, slug, err);
200
- });
201
- }
202
173
  function resolveProdAliasPlaygroundUrlWithAuth(options, auth, slug, err) {
203
174
  return __awaiter(this, void 0, void 0, function* () {
204
175
  let detail;
@@ -26,7 +26,7 @@ export function validateMountConnectionsConfig(args) {
26
26
  if (filteredRefs.length === 0) {
27
27
  return;
28
28
  }
29
- throw new Error(`[agent-sdk] agent "${label}" has Cursor account MCP connections with \`servers\` filters (${filteredRefs
29
+ throw new Error(`[bdk] agent "${label}" has Cursor account MCP connections with \`servers\` filters (${filteredRefs
30
30
  .map(ref => ref.name)
31
31
  .join(", ")}) but no --public-url; cloud-runtime turns cannot honor those filters without a public bridge URL. Set --public-url or remove the \`servers\` filter.`);
32
32
  }
@@ -41,7 +41,7 @@ export function assertCloudCanHonorAccountServersFilters(args) {
41
41
  if (blocked.length === 0) {
42
42
  return;
43
43
  }
44
- throw new Error(`[agent-sdk] cloud turn cannot honor Cursor account \`servers\` filters (${blocked
44
+ throw new Error(`[bdk] cloud turn cannot honor Cursor account \`servers\` filters (${blocked
45
45
  .map(connection => connection.name)
46
46
  .join(", ")}) without --public-url; set --public-url so cloud turns reach the filtered account bridge instead of falling back to native connectors.`);
47
47
  }
@@ -53,7 +53,7 @@ export function assertAccountConnectionsNotAnonymous(args) {
53
53
  if (args.allowAnonymousCursorAccountMcp === true) {
54
54
  return;
55
55
  }
56
- throw new Error("[agent-sdk] --allow-anonymous cannot be used with Cursor account MCP connections (defineConnection({ cursorAccount: true })); use --bearer-token, or opt in with --allow-anonymous-cursor-account-mcp behind a trusted boundary.");
56
+ throw new Error("[bdk] --allow-anonymous cannot be used with Cursor account MCP connections (defineConnection({ cursorAccount: true })); use --bearer-token, or opt in with --allow-anonymous-cursor-account-mcp behind a trusted boundary.");
57
57
  }
58
58
  export function resolveMountConnections(args) {
59
59
  const agent = args.project.agent;
@@ -66,15 +66,15 @@ export function resolveMountConnections(args) {
66
66
  .map(connection => connection.name);
67
67
  if (hostOauthNames.length > 0) {
68
68
  args.logger(args.cloudToolsBridge === true
69
- ? `[agent-sdk] agent "${label}": host-OAuth MCP connections (${hostOauthNames.join(", ")}) reach cloud turns through the host connection bridge; their tokens stay on this serve host.`
70
- : `[agent-sdk] warning: agent "${label}" has host-OAuth MCP connections (${hostOauthNames.join(", ")}) whose tokens live on this serve host; cloud-runtime turns omit them. Serve with a cloud tools URL so they reach turns through the host connection bridge, or drop \`oauth\` and authorize the server another way.`);
69
+ ? `[bdk] agent "${label}": host-OAuth MCP connections (${hostOauthNames.join(", ")}) reach cloud turns through the host connection bridge; their tokens stay on this serve host.`
70
+ : `[bdk] warning: agent "${label}" has host-OAuth MCP connections (${hostOauthNames.join(", ")}) whose tokens live on this serve host; cloud-runtime turns omit them. Serve with a cloud tools URL so they reach turns through the host connection bridge, or drop \`oauth\` and authorize the server another way.`);
71
71
  }
72
72
  }
73
73
  if (args.peerRefs !== undefined && args.peerRefs.length > 0) {
74
74
  const peers = resolvePeerConnections(Object.assign(Object.assign({ refs: args.peerRefs, serverUrl: args.serverUrl }, (args.publicUrl === undefined ? {} : { publicUrl: args.publicUrl })), (args.authToken === undefined ? {} : { authToken: args.authToken })));
75
75
  resolved.push(...peers);
76
76
  if (cloudCapable && args.publicUrl === undefined) {
77
- args.logger(`[agent-sdk] warning: agent "${label}" has peer MCP connections (${peers
77
+ args.logger(`[bdk] warning: agent "${label}" has peer MCP connections (${peers
78
78
  .map(peer => peer.name)
79
79
  .join(", ")}) but no --public-url; cloud-runtime turns cannot reach this host's loopback address, so peers are omitted from cloud turns.`);
80
80
  }
@@ -85,8 +85,8 @@ export function resolveMountConnections(args) {
85
85
  args.accountBridge.logPreflight(args.accountRefs);
86
86
  if (cloudCapable && args.publicUrl === undefined) {
87
87
  args.logger(args.cloudToolsBridge === true
88
- ? `[agent-sdk] agent "${label}": cloud-runtime turns reach filtered account connections through the host connection bridge (unfiltered ones fall back to the account's native connectors).`
89
- : `[agent-sdk] agent "${label}": cloud-runtime turns omit the account bridge without --public-url (cloud agents fall back to the account's native connectors).`);
88
+ ? `[bdk] agent "${label}": cloud-runtime turns reach filtered account connections through the host connection bridge (unfiltered ones fall back to the account's native connectors).`
89
+ : `[bdk] agent "${label}": cloud-runtime turns omit the account bridge without --public-url (cloud agents fall back to the account's native connectors).`);
90
90
  }
91
91
  }
92
92
  return resolved;
@@ -11,12 +11,22 @@ import { type Trajectory } from "./trajectory.js";
11
11
  /** Thrown when a turn stream exceeds `timeoutMs`; carries the session id. */
12
12
  export declare class RunSessionTimeoutError extends Error {
13
13
  readonly sessionId: string;
14
- constructor(message: string, sessionId: string);
14
+ /** Events the turn recorded before the deadline. */
15
+ readonly events: SessionEvent[];
16
+ constructor(message: string, sessionId: string,
17
+ /** Events the turn recorded before the deadline. */
18
+ events: SessionEvent[]);
15
19
  }
16
20
  export interface RunClientOptions extends RequestAuth {
17
21
  baseUrl: string;
18
22
  /** Abort a hung turn. */
19
23
  timeoutMs?: number;
24
+ /**
25
+ * Longest any single read may stay silent: a quiet stream connection ends
26
+ * so the session's durable log can settle the turn, and each log read is
27
+ * bounded. Default 5s.
28
+ */
29
+ stallMs?: number;
20
30
  /** External cancel (combined with {@link timeoutMs} when both are set). */
21
31
  signal?: AbortSignal;
22
32
  /** Called for each stream event as it arrives (for CLI progress). */
@@ -1 +1 @@
1
- {"version":3,"file":"run-client.d.ts","sourceRoot":"","sources":["../../src/internal/run-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAF5B,YACE,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,MAAM,EAI3B;CACF;AACD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,GAAG;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gEAAgE;IAChE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,GACA,OAAO,CAAC,gBAAgB,CAAC,CAyD3B"}
1
+ {"version":3,"file":"run-client.d.ts","sourceRoot":"","sources":["../../src/internal/run-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtF,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE;IAJjC,YACE,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,MAAM;IAC1B,oDAAoD;IAC3C,MAAM,EAAE,YAAY,EAAE,EAIhC;CACF;AACD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,GAAG;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gEAAgE;IAChE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,GACA,OAAO,CAAC,gBAAgB,CAAC,CA0D3B"}