@makaio/framework 1.0.0-dev-1789609124644 → 1.0.0-dev-1790066089222

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 (361) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{adapter-C4v_gNTI.mjs → adapter-DSRgsh2d.mjs} +1 -1
  3. package/dist/adapter-subsystem/index.d.mts +15 -7
  4. package/dist/adapter-subsystem/index.mjs +1 -1
  5. package/dist/adapters/claude/index.mjs +3 -3
  6. package/dist/adapters/config/index.d.mts +1 -1
  7. package/dist/adapters/index.d.mts +2 -2
  8. package/dist/adapters/node.d.mts +1 -1
  9. package/dist/{attempt-record-codec-DaQ3WHUs.mjs → attempt-record-codec-DXpdMgyI.mjs} +1 -1
  10. package/dist/bus/index.d.mts +120 -8
  11. package/dist/bus/index.mjs +1 -1
  12. package/dist/bus-ceMF9rsq.mjs +9 -0
  13. package/dist/client-DWSwtFyI.mjs +1 -0
  14. package/dist/clients/index.d.mts +179 -12
  15. package/dist/clients/index.mjs +1 -1
  16. package/dist/clients/managed-install.d.mts +1 -1
  17. package/dist/code-execution/worker-entry.d.mts +1 -1
  18. package/dist/code-execution/worker-entry.mjs +1 -1
  19. package/dist/{code-execution-pUF4IO462.mjs → code-execution-DWSux6k1.mjs} +1 -1
  20. package/dist/contracts/adapter/index.d.mts +2 -2
  21. package/dist/contracts/adapter/index.mjs +1 -1
  22. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  23. package/dist/contracts/artifact/index.d.mts +2 -2
  24. package/dist/contracts/auth/index.d.mts +2 -2
  25. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  26. package/dist/contracts/canonical-model/index.d.mts +1 -1
  27. package/dist/contracts/capabilities/index.d.mts +1 -1
  28. package/dist/contracts/client/index.d.mts +3 -3
  29. package/dist/contracts/client/index.mjs +1 -1
  30. package/dist/contracts/code-execution/index.d.mts +1 -1
  31. package/dist/contracts/common/index.d.mts +1 -1
  32. package/dist/contracts/config/index.d.mts +2 -47
  33. package/dist/contracts/context-projection/index.d.mts +232 -0
  34. package/dist/contracts/context-projection/index.mjs +1 -0
  35. package/dist/contracts/extension/index.d.mts +6 -6
  36. package/dist/contracts/extension/index.mjs +1 -1
  37. package/dist/contracts/facet/index.d.mts +1 -1
  38. package/dist/contracts/harness/index.d.mts +1 -1
  39. package/dist/contracts/host/index.d.mts +1 -1
  40. package/dist/contracts/index.d.mts +43 -43
  41. package/dist/contracts/index.mjs +1 -1
  42. package/dist/contracts/materialization/index.d.mts +2 -2
  43. package/dist/contracts/model-registry/index.d.mts +1 -1
  44. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  45. package/dist/contracts/platform/index.d.mts +1 -1
  46. package/dist/contracts/provider/index.d.mts +2 -2
  47. package/dist/contracts/reaction/index.d.mts +1 -1
  48. package/dist/contracts/session/index.d.mts +3 -3
  49. package/dist/contracts/session/index.mjs +1 -1
  50. package/dist/contracts/shared/index.d.mts +2 -2
  51. package/dist/contracts/skill/index.d.mts +1 -1
  52. package/dist/contracts/telemetry/index.d.mts +1 -1
  53. package/dist/contracts/timeout/index.d.mts +1 -1
  54. package/dist/contracts/variant/index.d.mts +1 -1
  55. package/dist/contracts/worker/index.d.mts +2 -2
  56. package/dist/contracts/workflow/index.d.mts +2 -2
  57. package/dist/{contribution-DDbHzCPF.d.mts → contribution-1GL7Rjaq.d.mts} +2 -2
  58. package/dist/credential-ref-w4ZYpYW0.d.mts +49 -0
  59. package/dist/{definition-CuaBQyde.d.mts → definition-DeIGoROj.d.mts} +1 -1
  60. package/dist/{descriptor-to-package-Dw8dnl5E.mjs → descriptor-to-package-BPIArq6N.mjs} +1 -1
  61. package/dist/{detached-extension-handle-DN3aqLyq.mjs → detached-extension-handle-W5_yfCyE.mjs} +1 -1
  62. package/dist/drizzle/0040_session_generation.sql +1 -0
  63. package/dist/drizzle/0041_session_principal_owner.sql +1 -0
  64. package/dist/drizzle/meta/_journal.json +14 -0
  65. package/dist/{execution-attempt-owner-recovery-CE_rvHKE.mjs → execution-attempt-owner-recovery-BZOEVYFH.mjs} +1 -1
  66. package/dist/extension-C6ANjR33.mjs +1 -0
  67. package/dist/{extension-context-BH31eOMv.d.mts → extension-context-pQ7Uio_s.d.mts} +44 -1
  68. package/dist/{extension-discovery-CA2IhDRo.d.mts → extension-discovery-Rup-gANp.d.mts} +114 -15
  69. package/dist/extension-kOwzAMud.mjs +1 -0
  70. package/dist/extension-namespace-CeRpt6C8.mjs +1 -0
  71. package/dist/{framework-packages-Bg4edkkM.mjs → framework-packages-U4Xhouxe.mjs} +1 -1
  72. package/dist/{hook-responses-Dq16X3Cb.d.mts → hook-responses-B882RcQc.d.mts} +48 -5
  73. package/dist/{index-Dm3d490n.d.mts → index-B2bxgKiK.d.mts} +1 -1
  74. package/dist/{index-7CVumCjj.d.mts → index-BTpkpHIS.d.mts} +65 -9
  75. package/dist/{index-Bh57xARQ.d.mts → index-BUv9gfRT.d.mts} +3 -3
  76. package/dist/{index-C6e9cwAl2.d.mts → index-BjQtqMxP2.d.mts} +4 -4
  77. package/dist/{index-B-u0Tu8X.d.mts → index-Bqi44ODz.d.mts} +37 -37
  78. package/dist/{index-CIzvBH8O.d.mts → index-C8two8wz.d.mts} +1 -1
  79. package/dist/{index-oxZt93RL.d.mts → index-CESqYf8a.d.mts} +2 -2
  80. package/dist/{index-C87P0WpY2.d.mts → index-CmCLAMNs.d.mts} +1 -1
  81. package/dist/index-CyEE1RI5.d.mts +869 -0
  82. package/dist/{index-De_oh9M-2.d.mts → index-D6Uq1btG.d.mts} +87 -10
  83. package/dist/{index-CRZ1jrxp.d.mts → index-DDSt0uS2.d.mts} +160 -12
  84. package/dist/{index-B6WkHnCQ.d.mts → index-DRxgmrad.d.mts} +1 -1
  85. package/dist/{index-U--ajOHy.d.mts → index-DUYjTfHD.d.mts} +1 -1
  86. package/dist/{index-HJkz7i4E.d.mts → index-DdJKsdya.d.mts} +188 -10
  87. package/dist/{index-B4pPwpKk.d.mts → index-DfREUyAk.d.mts} +1 -1
  88. package/dist/{index-ClKwF6LE.d.mts → index-Di-R1gmo.d.mts} +2 -2
  89. package/dist/{index-DWANFpTG.d.mts → index-Jdju2W3y.d.mts} +1 -1
  90. package/dist/{index-DQKVQPUS.d.mts → index-L6mssyeZ.d.mts} +1 -1
  91. package/dist/{index-B8v1-2-V2.d.mts → index-anIxF_eT.d.mts} +1 -1
  92. package/dist/{index-iVisrVdC2.d.mts → index-bYBnDBl32.d.mts} +539 -4
  93. package/dist/{index-Bg3WVL8n.d.mts → index-gNdH1F6r.d.mts} +531 -26
  94. package/dist/{index-zmDRR8gv2.d.mts → index-m5ZQFglW2.d.mts} +1 -1
  95. package/dist/{index-mTaFX2HH2.d.mts → index-uk8icWON2.d.mts} +419 -19
  96. package/dist/kernel/cli/index.d.mts +2 -2
  97. package/dist/kernel/cli/register.d.mts +1 -1
  98. package/dist/kernel/extension/index.d.mts +3 -2
  99. package/dist/kernel/extension/index.mjs +1 -1
  100. package/dist/kernel/index.d.mts +6 -6
  101. package/dist/kernel/index.mjs +1 -1
  102. package/dist/kernel/namespace/index.d.mts +1 -1
  103. package/dist/kernel/observability/index.d.mts +2 -2
  104. package/dist/kernel/observability/index.mjs +1 -1
  105. package/dist/kernel/providers/index.d.mts +1 -1
  106. package/dist/kernel/window/index.d.mts +1 -1
  107. package/dist/{lib-BF5XBSfw.mjs → lib-BdyGVjpO.mjs} +1 -1
  108. package/dist/{lib-Dljw2Cqh.mjs → lib-DxP3tPm9.mjs} +1 -1
  109. package/dist/load-extensions-BGfSWW_R.mjs +1 -0
  110. package/dist/{load-extensions-DGstT4_p.d.mts → load-extensions-Be_lOjm_.d.mts} +27 -14
  111. package/dist/mcp-http-server/index.mjs +1 -1
  112. package/dist/{namespace-BMdYJN_t.mjs → namespace-CqJhR19O.mjs} +1 -1
  113. package/dist/{namespace-Cmu-5_P9.d.mts → namespace-DudchWPb.d.mts} +457 -0
  114. package/dist/{namespace-BEbQb19g.d.mts → namespace-Eir1wQ_r.d.mts} +2 -2
  115. package/dist/node/bus-server/index.d.mts +1 -1
  116. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  117. package/dist/node/transports/index.d.mts +102 -4
  118. package/dist/node/transports/index.mjs +2 -2
  119. package/dist/{orchestrator-shared-CtPB6PAr.mjs → orchestrator-shared-CF-jPH91.mjs} +1 -1
  120. package/dist/ownership-memory-handler-C-y9zQf8.mjs +1 -0
  121. package/dist/package-AlsbnlSt.mjs +159 -0
  122. package/dist/{package-CDj3F-L3.d.mts → package-CwyC-Krg.d.mts} +1 -1
  123. package/dist/{package-DYScYC0D.mjs → package-kkPGlxMm.mjs} +1 -1
  124. package/dist/package.json +1 -1
  125. package/dist/{registry-DNMjJ-Oj.mjs → registry-DtaRGU8i.mjs} +1 -0
  126. package/dist/rules/index.d.mts +1 -1
  127. package/dist/rules/index.mjs +1 -1
  128. package/dist/rules/schemas.d.mts +1 -1
  129. package/dist/runtime-bun/index.d.mts +2 -2
  130. package/dist/runtime-bun/index.mjs +1 -1
  131. package/dist/runtime-node/boot-config.d.mts +45 -0
  132. package/dist/runtime-node/boot-config.mjs +1 -0
  133. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  134. package/dist/runtime-node/code-execution/index.mjs +1 -1
  135. package/dist/runtime-node/extension-discovery.d.mts +2 -2
  136. package/dist/runtime-node/extension-discovery.mjs +1 -1
  137. package/dist/runtime-node/extension-validation.d.mts +1 -1
  138. package/dist/runtime-node/extension-validation.mjs +1 -1
  139. package/dist/runtime-node/index.d.mts +345 -27
  140. package/dist/runtime-node/index.mjs +21 -24
  141. package/dist/runtime-node/makaio-config.d.mts +1 -1
  142. package/dist/runtime-node/makaio-config.mjs +1 -1
  143. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  144. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  145. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  146. package/dist/{schema-BA1cHBbc.d.mts → schema-FY0EakKe.d.mts} +56 -0
  147. package/dist/schemas-CkxAK13D.mjs +1 -0
  148. package/dist/{schemas-CaYEFzK_.d.mts → schemas-FgVQek-j.d.mts} +2 -2
  149. package/dist/services/adapter-runtime/index.d.mts +3 -3
  150. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  151. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  152. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  153. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  154. package/dist/services/agent-runtime/index.d.mts +2 -2
  155. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  156. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  157. package/dist/services/automation-trigger/index.d.mts +19 -0
  158. package/dist/services/capability/index.d.mts +2 -2
  159. package/dist/services/code-execution/index.d.mts +1 -1
  160. package/dist/services/codebase/index.d.mts +2 -2
  161. package/dist/services/codebase/namespace.d.mts +1 -1
  162. package/dist/services/codebase/schemas.d.mts +1 -1
  163. package/dist/services/compression/index.d.mts +2 -2
  164. package/dist/services/compression/namespace.d.mts +1 -1
  165. package/dist/services/compression/schemas.d.mts +1 -1
  166. package/dist/services/context-projection/index.d.mts +94 -0
  167. package/dist/services/context-projection/index.mjs +1 -0
  168. package/dist/services/context-rules/index.d.mts +1 -1
  169. package/dist/services/execution-target/index.d.mts +3 -3
  170. package/dist/services/execution-target/namespace.d.mts +1 -1
  171. package/dist/services/execution-target/schemas.d.mts +1 -1
  172. package/dist/services/filesystem/index.d.mts +1 -1
  173. package/dist/services/index.d.mts +45 -40
  174. package/dist/services/index.mjs +1 -1
  175. package/dist/services/log-import/browser.d.mts +2 -2
  176. package/dist/services/log-import/index.d.mts +2 -2
  177. package/dist/services/log-import/log-import.d.mts +1 -1
  178. package/dist/services/materialization/index.d.mts +1 -1
  179. package/dist/services/model-registry/index.d.mts +1 -1
  180. package/dist/services/preferences/index.d.mts +2 -2
  181. package/dist/services/preferences/schemas.d.mts +1 -1
  182. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  183. package/dist/services/provider-context/index.d.mts +1 -1
  184. package/dist/services/session/handlers/index.d.mts +1 -1
  185. package/dist/services/session/index.d.mts +9 -9
  186. package/dist/services/session/index.mjs +1 -1
  187. package/dist/services/session/messages/namespace.d.mts +1 -1
  188. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  189. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  190. package/dist/services/session/session-events/namespace.d.mts +1 -1
  191. package/dist/services/session/storage/namespace.d.mts +1 -1
  192. package/dist/services/session/storage/schema.d.mts +1 -1
  193. package/dist/services/session/storage/schema.mjs +1 -1
  194. package/dist/services/session/testing/index.mjs +4 -2
  195. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  196. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  197. package/dist/services/session/turns/namespace.d.mts +1 -1
  198. package/dist/services/session-editor/index.d.mts +1 -1
  199. package/dist/services/settings/index.d.mts +3 -3
  200. package/dist/services/settings/namespace.d.mts +232 -3
  201. package/dist/services/settings/namespace.mjs +1 -1
  202. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  203. package/dist/services/settings/storage/index.d.mts +3 -3
  204. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  205. package/dist/services/subagent/index.d.mts +1 -1
  206. package/dist/services/subagent-template/index.d.mts +2 -2
  207. package/dist/services/subagent-template/namespace.d.mts +1 -1
  208. package/dist/services/subagent-template/schemas.d.mts +1 -1
  209. package/dist/services/tool-approval/index.d.mts +1 -1
  210. package/dist/services/tool-approval/index.mjs +1 -1
  211. package/dist/services/tools/index.d.mts +1 -1
  212. package/dist/services/tools/index.mjs +1 -1
  213. package/dist/services/tray-menu/index.d.mts +3 -3
  214. package/dist/services/tray-menu/namespace.d.mts +1 -1
  215. package/dist/services/tray-menu/schemas.d.mts +1 -1
  216. package/dist/services/turn/index.d.mts +1 -1
  217. package/dist/services/turn/namespace.d.mts +1 -1
  218. package/dist/services/workflow-transitions/index.d.mts +1 -1
  219. package/dist/services/workflow-transitions/index.mjs +1 -1
  220. package/dist/session-BNiMZnfF.mjs +1 -0
  221. package/dist/session-CMbztxNO.mjs +95 -0
  222. package/dist/src-BZdw54VU.mjs +1 -0
  223. package/dist/{src-CbAw9kjJ.mjs → src-C0sw_Vs_.mjs} +1 -1
  224. package/dist/{src-Xn6SS74f.mjs → src-CqQSqLQI.mjs} +1 -1
  225. package/dist/storage/drizzle/client.d.mts +1 -1
  226. package/dist/storage/drizzle/client.mjs +1 -1
  227. package/dist/storage/drizzle/index.d.mts +1 -1
  228. package/dist/storage/drizzle/index.mjs +1 -1
  229. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  230. package/dist/storage/handlers/index.d.mts +1 -1
  231. package/dist/{tool-approval-service-pbkGcAV8.mjs → tool-approval-service-CRo3fZRF.mjs} +1 -1
  232. package/dist/{tools-C5Gy0IQG.mjs → tools-CKaxi3Mb.mjs} +1 -1
  233. package/dist/{transition-D-Lgbp1j.d.mts → transition-DMv8cgEd.d.mts} +2 -2
  234. package/dist/{types-CjYcHDPo2.d.mts → types-7L3BrU9m2.d.mts} +1 -1
  235. package/dist/{types-DhbllltK.d.mts → types-DNYO_Rxj.d.mts} +12 -3
  236. package/dist/ui-hooks/index.d.mts +17 -24
  237. package/dist/ui-hooks/index.mjs +1 -1
  238. package/dist/ui-kernel/index.d.mts +11 -2
  239. package/dist/ui-kernel/index.mjs +1 -1
  240. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  241. package/dist/ui-views/index.mjs +1 -1
  242. package/dist/utils/index.d.mts +31 -1
  243. package/dist/utils/index.mjs +2 -2
  244. package/dist/{view-builder-CHUTXJDl.d.mts → view-builder-DJGz9I-u.d.mts} +2 -2
  245. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  246. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  247. package/dist/workflow-engine/index.d.mts +2 -2
  248. package/dist/workflow-engine/index.mjs +1 -1
  249. package/dist/workflow-engine/package.d.mts +1 -1
  250. package/dist/workflow-engine/package.mjs +1 -1
  251. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  252. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  253. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  254. package/dist/workflow-engine/testing/index.d.mts +1 -1
  255. package/dist/workflow-engine/testing/index.mjs +1 -1
  256. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  257. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  258. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  259. package/dist/{workflow-transitions-C0sg3kar.mjs → workflow-transitions-t0ORS1F5.mjs} +1 -1
  260. package/dist/workflow-worker-DXCXb3g-.mjs +3 -0
  261. package/package.json +9 -1
  262. package/dist/bus-BQ64i3DN.mjs +0 -9
  263. package/dist/client-Bg3_IdaF.mjs +0 -1
  264. package/dist/extension-CfrTp3rC.mjs +0 -1
  265. package/dist/extension-CnNcY1hR.mjs +0 -1
  266. package/dist/extension-namespace-Ct9L6SKr.mjs +0 -1
  267. package/dist/index-D_j_T3nS.d.mts +0 -435
  268. package/dist/load-extensions-BVgxTj_y.mjs +0 -1
  269. package/dist/ownership-memory-handler-xex7sLiX.mjs +0 -1
  270. package/dist/schemas-ClkcU_N5.mjs +0 -1
  271. package/dist/session-6UG5udTX.mjs +0 -95
  272. package/dist/session-BB0s7c2B.mjs +0 -1
  273. package/dist/workflow-worker-ChrMIcKm.mjs +0 -2
  274. /package/dist/{adapter-binding-BxjUfkOn.d.mts → adapter-binding-CaYBrIkL.d.mts} +0 -0
  275. /package/dist/{attempt-control-evidence-7lwRG73Y.mjs → attempt-control-evidence-CHBnJoqN.mjs} +0 -0
  276. /package/dist/{attempt-fixtures-DHdYmr3o.mjs → attempt-fixtures-D3IsP0KH.mjs} +0 -0
  277. /package/dist/{authority-state-bootstrap-CvuWPywM.mjs → authority-state-bootstrap-4F5Wc_6l.mjs} +0 -0
  278. /package/dist/{base-orchestrator-CrXiMJzf.d.mts → base-orchestrator-1ofFsqUz.d.mts} +0 -0
  279. /package/dist/{bootstrap-start-client-C1ZHbv6e.mjs → bootstrap-start-client-9nOdeDYl.mjs} +0 -0
  280. /package/dist/{capability-service-CQ1aw_p-.d.mts → capability-service-CUN0MIS7.d.mts} +0 -0
  281. /package/dist/{client-ByjHcS78.d.mts → client-BY3sBW2L.d.mts} +0 -0
  282. /package/dist/{client-binary-version-verifier-C4fEAUdo.d.mts → client-binary-version-verifier-BeO4Eptw.d.mts} +0 -0
  283. /package/dist/{clients-namespace-D4BxF2Nw.d.mts → clients-namespace-D92YsbKI.d.mts} +0 -0
  284. /package/dist/{config-namespace-B1zyOYwH.d.mts → config-namespace-OEckUfVE.d.mts} +0 -0
  285. /package/dist/{create-static-mount-Dgxgi4W3.mjs → create-static-mount-4B-mNtx1.mjs} +0 -0
  286. /package/dist/{cross-spawn-BMCAyqrN.mjs → cross-spawn-DGqEuNyT.mjs} +0 -0
  287. /package/dist/{definition-ClWxAKQ2.d.mts → definition-DLJg-P4G.d.mts} +0 -0
  288. /package/dist/{esm-Ccx-3z8E.mjs → esm-DwiWcwH0.mjs} +0 -0
  289. /package/dist/{execution-attempt-repository-aabFKcXN.mjs → execution-attempt-repository-CY289HlC.mjs} +0 -0
  290. /package/dist/{execution-attempt-repository-BUah8hma.d.mts → execution-attempt-repository-DOb5V4N2.d.mts} +0 -0
  291. /package/dist/{extension-package-provenance-C7oO5JAE.mjs → extension-package-provenance-ClpN3GHp.mjs} +0 -0
  292. /package/dist/{filesystem-service-CDYoiwWY.d.mts → filesystem-service-BmavE-uO.d.mts} +0 -0
  293. /package/dist/{index-BbkcbY6d.d.mts → index--gbsE1W0.d.mts} +0 -0
  294. /package/dist/{index-DdVpWkaI.d.mts → index-B36rL4gp.d.mts} +0 -0
  295. /package/dist/{index-DM72_93s.d.mts → index-BD1SbHpP.d.mts} +0 -0
  296. /package/dist/{index-KdlZRuTp.d.mts → index-BDcK7jqJ2.d.mts} +0 -0
  297. /package/dist/{index-DAaQ--ki.d.mts → index-BQYGOXY5.d.mts} +0 -0
  298. /package/dist/{index-gAyARaKS.d.mts → index-BneZFJ7x.d.mts} +0 -0
  299. /package/dist/{index-D8ELwT5y.d.mts → index-BujgCaKt.d.mts} +0 -0
  300. /package/dist/{index-DfU8s_xP.d.mts → index-C2StVLk4.d.mts} +0 -0
  301. /package/dist/{index-BGnQ0EyD.d.mts → index-CCTzitBA.d.mts} +0 -0
  302. /package/dist/{index-CVRT01082.d.mts → index-Cj_V1aRL.d.mts} +0 -0
  303. /package/dist/{index-nkix3hP7.d.mts → index-CpN2C9jq.d.mts} +0 -0
  304. /package/dist/{index-D6p17KPs.d.mts → index-CsRPJ9FV.d.mts} +0 -0
  305. /package/dist/{index-BPNfYEA22.d.mts → index-CvdvuhTL2.d.mts} +0 -0
  306. /package/dist/{index-DmX9W3xH2.d.mts → index-D3peNmHN2.d.mts} +0 -0
  307. /package/dist/{index-DiZ4LmyE.d.mts → index-D7smT-YD.d.mts} +0 -0
  308. /package/dist/{index-B78CRVi9.d.mts → index-DEx4ZFkz.d.mts} +0 -0
  309. /package/dist/{index-CjDQn6lw.d.mts → index-DGoJayJg.d.mts} +0 -0
  310. /package/dist/{index-F7cVpFJ9.d.mts → index-DTvYp2GT.d.mts} +0 -0
  311. /package/dist/{index-Htfr-K5U2.d.mts → index-DqliLe_D2.d.mts} +0 -0
  312. /package/dist/{index-BCU5oByg.d.mts → index-DubyRZD9.d.mts} +0 -0
  313. /package/dist/{index-DjSUOMlr.d.mts → index-DwOpaQAE.d.mts} +0 -0
  314. /package/dist/{index-BZoOYV-y.d.mts → index-DxkSkszz.d.mts} +0 -0
  315. /package/dist/{index-tbjIqwa3.d.mts → index-TBJ1kIGA.d.mts} +0 -0
  316. /package/dist/{index-DXQTkwLB.d.mts → index-YOXWpZAS.d.mts} +0 -0
  317. /package/dist/{index-CXpgL3gz2.d.mts → index-aIJ7A4DC2.d.mts} +0 -0
  318. /package/dist/{index-D6liU_KS.d.mts → index-fxh7TB0q.d.mts} +0 -0
  319. /package/dist/{index-xsaaa85T.d.mts → index-qczb9Yx3.d.mts} +0 -0
  320. /package/dist/{index-C_kOkO3E.d.mts → index-zqo2mX_Z.d.mts} +0 -0
  321. /package/dist/{json-value-Ymw2f8i_.d.mts → json-value-Bjl8jzom.d.mts} +0 -0
  322. /package/dist/{jsonl-transport-Bg033Ng0.mjs → jsonl-transport-Ct1RWs0h.mjs} +0 -0
  323. /package/dist/{lib-BizqbepU.mjs → lib-DomKag_k.mjs} +0 -0
  324. /package/dist/{namespace-rJ3ycPMg.d.mts → namespace-Bhx72V7S.d.mts} +0 -0
  325. /package/dist/{namespace-BCVKdu-U.d.mts → namespace-CxEQv9iZ.d.mts} +0 -0
  326. /package/dist/{namespace-COHHDh2I.d.mts → namespace-D09uQ231.d.mts} +0 -0
  327. /package/dist/{namespace-UFcDEBJB.d.mts → namespace-D5DkpaaN.d.mts} +0 -0
  328. /package/dist/{namespace-CvK86QFk.d.mts → namespace-DHLwz4o3.d.mts} +0 -0
  329. /package/dist/{namespace-B5IFLQc-.d.mts → namespace-DHbrNQYD.d.mts} +0 -0
  330. /package/dist/{namespace-s0e215xO.d.mts → namespace-DyD06b5-.d.mts} +0 -0
  331. /package/dist/{namespace-C1pPZKtI.d.mts → namespace-Dz5_Hrz7.d.mts} +0 -0
  332. /package/dist/{namespace-Phxf0Lep.d.mts → namespace-Lkv2nyzb.d.mts} +0 -0
  333. /package/dist/{namespace-DM5vykb7.d.mts → namespace-hlhPqSsw.d.mts} +0 -0
  334. /package/dist/{namespace-DlOQmhgX.d.mts → namespace-x-gk5SmK.d.mts} +0 -0
  335. /package/dist/{namespace-f6Kz5cwX.d.mts → namespace-zusFEJPh.d.mts} +0 -0
  336. /package/dist/{orchestrator-shared--srEeSaY.d.mts → orchestrator-shared-ChU5qRSe.d.mts} +0 -0
  337. /package/dist/{packages-B98-WETs.d.mts → packages-D2s51nGU.d.mts} +0 -0
  338. /package/dist/{providers-namespace-DRcl03bo.d.mts → providers-namespace-BLVt8OyP.d.mts} +0 -0
  339. /package/dist/{runtime-inputs-DBtVIy9h.d.mts → runtime-inputs-BU_kBrP7.d.mts} +0 -0
  340. /package/dist/{schemas-CEJe8O6P.d.mts → schemas-3KTmPuZg.d.mts} +0 -0
  341. /package/dist/{schemas-D_-iXLQ9.d.mts → schemas-B-5_Dp4_.d.mts} +0 -0
  342. /package/dist/{schemas-CeItAAQM.d.mts → schemas-BLxdGZkr.d.mts} +0 -0
  343. /package/dist/{schemas-Cj6Gbqch.d.mts → schemas-BegArpU_.d.mts} +0 -0
  344. /package/dist/{schemas-Ca5RILd-2.d.mts → schemas-BzB6z9oX2.d.mts} +0 -0
  345. /package/dist/{schemas-CtzZDp29.d.mts → schemas-CBBzvIh0.d.mts} +0 -0
  346. /package/dist/{schemas-Cq1d5tid.d.mts → schemas-CD3Mq-jC.d.mts} +0 -0
  347. /package/dist/{schemas-LiiyNNpr.d.mts → schemas-Cl7fPlRv.d.mts} +0 -0
  348. /package/dist/{schemas-DJ2vMsgm.d.mts → schemas-CqawCYTY.d.mts} +0 -0
  349. /package/dist/{schemas-2_D4iVbb.d.mts → schemas-DEg6R9ph.d.mts} +0 -0
  350. /package/dist/{schemas-JjyFxrC0.d.mts → schemas-rMUsvzeJ.d.mts} +0 -0
  351. /package/dist/{server-lifecycle-DUKp1Fbf.d.mts → server-lifecycle-CTJvpdeL.d.mts} +0 -0
  352. /package/dist/{session-lineage-C3myyt5x.d.mts → session-lineage-BuGN3RZs.d.mts} +0 -0
  353. /package/dist/{storage-namespace-IvLOIP7j.d.mts → storage-namespace-B5r_ScUz.d.mts} +0 -0
  354. /package/dist/{storage-namespace-definition-Cv0XiTXb.d.mts → storage-namespace-definition-DiYr8UNl.d.mts} +0 -0
  355. /package/dist/{types-hkExapGH.d.mts → types-BSx8YYlc.d.mts} +0 -0
  356. /package/dist/{types-BYEybzjX.d.mts → types-CpEoQapk.d.mts} +0 -0
  357. /package/dist/{types-QRSc2AUU.d.mts → types-Cuhnt15L.d.mts} +0 -0
  358. /package/dist/{types-QsyX4H21.d.mts → types-DEGuc-fn.d.mts} +0 -0
  359. /package/dist/{types-BRM1AZaP.d.mts → types-DciLiPMd.d.mts} +0 -0
  360. /package/dist/{types-CsmvIK25.mjs → types-wwuw7RkB.mjs} +0 -0
  361. /package/dist/{window-registry-DeG37kt8.d.mts → window-registry-C3W2wtlX.d.mts} +0 -0
@@ -1,95 +0,0 @@
1
- import{adapterSessionClaims as e,adapterSessionClaimsDual as t,agents as n,agentsDual as r,runtimeInstanceIncarnationCounters as i,runtimeInstanceIncarnationCountersDual as a,runtimeInstances as o,runtimeInstancesDual as s,sessions as c,sessionsDual as l}from"./services/session/storage/schema.mjs";import"./schema-Cz6-4_Dn.mjs";import{a as u,n as d,o as f}from"./namespace-CMntzAPI.mjs";import{C as p,Ct as m,D as h,E as g,F as _,G as v,I as ee,J as y,K as te,N as ne,P as re,Q as b,S as ie,St as ae,T as oe,U as se,V as ce,W as le,X as x,Y as ue,Z as S,_ as de,_t as fe,at as pe,bt as me,ct as he,d as ge,dt as _e,f as ve,g as ye,gt as be,h as xe,it as Se,l as Ce,lt as we,m as Te,mt as Ee,p as De,pt as Oe,q as ke,rt as Ae,st as je,u as Me,ut as Ne,v as Pe,vt as Fe,w as Ie,xt as Le,y as Re,z as ze}from"./handlers-mjky_fP2.mjs";import{TurnStorageSubjects as C}from"./services/turn/namespace.mjs";import{a as w,n as Be,r as Ve,t as He}from"./ownership-recovery-guard-C9h8K1jo.mjs";import{SessionStorageSubjects as T}from"./services/session/storage/namespace.mjs";import{AdapterRuntimeSubjects as Ue}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as E}from"./services/session/messages/namespace.mjs";import{o as We}from"./provider-context-D6GIZ5DC.mjs";import{n as Ge}from"./namespace-Bo6-o_rW.mjs";import{a as Ke,c as qe,d as Je,i as Ye,l as Xe,o as Ze,s as Qe,u as $e}from"./ownership-memory-handler-xex7sLiX.mjs";import{z as D}from"zod";import{createBusNamespace as et}from"@makaio/framework/core";import{AdapterSubjects as tt,AgentSubjects as O,CanonicalModelSubjects as nt,CapabilitySubjects as rt,ClientSubjects as it,CompressionModeSchema as at,FORK_SESSION_LINEAGE_KIND as ot,ForkTransformsSchema as st,MessageRoutingSchema as ct,MessageStorageSubjects as lt,ROOT_SESSION_LINEAGE_KIND as ut,SessionContextSchema as dt,SessionDiscoveredSchema as ft,SessionOwnershipSettleMovementRequestSchema as pt,SessionOwnershipStorageSubjects as k,SessionRecordMetadataSchema as mt,SessionStorageSetRequestSchema as ht,SessionStorageUpdateSchema as gt,SessionSubjects as A,TurnIngestionMarkerSchema as _t,compareMessageCursorAsc as vt,compareMessageCursorDesc as yt,isCanonicalModelParseError as bt,isInactiveSafeLeadDesignationMutation as xt,messageToCursor as j,normalizeSessionOwnershipClaimRequest as St,parseCanonicalModel as Ct,resolveResumableAdapterSessionId as wt,teardownWasObserved as Tt}from"@makaio/framework/contracts";import{MakaioBus as Et,NoHandlerError as Dt,TimeoutError as Ot}from"@makaio/framework/bus";import{KernelSubjects as kt}from"@makaio/framework/kernel";import{BaseService as At}from"@makaio/framework/service-base";import{blob as jt,index as Mt,integer as Nt,primaryKey as Pt,sqliteTable as Ft,text as It,uniqueIndex as Lt}from"drizzle-orm/sqlite-core";import{index as Rt,primaryKey as zt}from"drizzle-orm/pg-core";import{acquireTransactionLocks as Bt,defineDialectSchema as Vt,defineDualTable as Ht,didAffectRows as M,executeTransaction as N,getRawSqlExecutor as Ut,getStorageEngine as Wt,resolveSchema as P,resolveStorageEngine as Gt}from"@makaio/framework/storage/drizzle";import{and as F,asc as Kt,count as I,desc as qt,eq as L,gt as Jt,gte as Yt,inArray as R,isNotNull as Xt,isNull as z,lt as Zt,lte as Qt,ne as $t,not as en,or as tn,sql as B}from"drizzle-orm";import{createStorageNamespaceDefinition as nn}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as rn}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as an}from"@makaio/framework/adapters";async function on(e,t,n,r){try{let t=await e.requestOptional(k.getRuntimeInstance,{instanceId:n.ownerInstanceId,machineId:n.machineId});if(t.handled&&t.data.instance!==null&&t.data.instance.retiredAt!==null)return!0}catch{}try{let i=await e.requestOptional(tt.stopAgent,{adapterId:n.adapterId,agentId:t,ownerInstanceId:n.ownerInstanceId,...r&&{teardown:`connector-only`}});return i.handled&&Tt(i.data.evidence)}catch{return!1}}function sn(e,t,n){let r=new Map;for(let t of e){if(t.ownerInstanceId===null)return null;let e={adapterId:t.adapterId,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId};r.set(`${e.ownerInstanceId}\0${e.machineId}\0${e.adapterId}`,e)}if(t!==void 0&&n!==void 0){let e={adapterId:n,machineId:t.machineId,ownerInstanceId:t.instanceId};r.set(`${e.ownerInstanceId}\0${e.machineId}\0${e.adapterId}`,e)}return[...r.values()]}async function cn(e,t,n={releaseClaims:!0}){let r=await e.requestOptional(k.read,{agentId:t}).catch(()=>void 0);if(r===void 0)return{released:!1,claimCount:0};let i=r.handled?r.data.ownership:null;if(i===null)return{released:!1,claimCount:0};let a=i.claims,o=await e.requestOptional(w.get,{agentId:t}).catch(()=>void 0),s=o?.handled?o.data.agent:null,c=sn(a,s?.runtimeOwner,s?.adapterId),l=c!==null&&await Promise.all(c.map(r=>on(e,t,r,!n.releaseClaims))),u=l!==!1&&l.every(Boolean);if(!n.releaseClaims)return{released:!1,claimCount:a.length};if(a.length===0)return{released:u,claimCount:0};try{let n=await e.request(A.ownership.release,{agentId:t,disposition:u?`released`:`abandoned`});return{released:u&&n.markedClaims.length===0&&n.releasedProviderSessionIds.length===a.length,claimCount:a.length}}catch{try{await e.request(A.ownership.release,{agentId:t,disposition:`abandoned`})}catch{}return{released:!1,claimCount:a.length}}}function ln(e,t){if(t!==void 0){if(t.outcome===`lead-conflict`){console.debug(`[session.agent.added] lead designation for ${e} lost to ${t.currentLeadAgentId??`no lead`}`);return}t.outcome!==`claimed`&&t.outcome!==`idempotent`&&console.debug(`[session.agent.added] lead designation for ${e} refused: ${t.outcome}`)}}function un(e){return Error(`[session.agent.removed] Failed to terminalize agent ${e}`)}async function dn(e){try{await e();return}catch(e){return e}}function fn(e){return e.on(A.agent.added,async t=>{let n=await e.requestOptional(T.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;if(!r)return;let i=t.payload.role??(r.leadAgentId?`member`:`lead`),a=i===`lead`?await fe(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:r.leadAgentId??null}):void 0;i===`lead`&&ln(t.payload.agentId,a);let o=a?.outcome===`claimed`||a?.outcome===`idempotent`,s=i===`lead`&&a===void 0;if(!r.adapterName&&(o||s)){let n=o?t.payload.agentId:r.leadAgentId;await pn(e,t.payload,n);return}await e.requestOptional(T.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()})})}async function pn(e,t,n){let r=await e.requestOptional(T.update,{sessionId:t.sessionId,lastActivityAt:Date.now(),identity:{adapterName:t.adapterName,adapterId:t.adapterId,adapterSessionId:t.adapterSessionId},expectIdentityOpenForLead:n??null});!r.handled||r.data.success||await e.requestOptional(T.update,{sessionId:t.sessionId,lastActivityAt:Date.now()})}function mn(e){return e.on(A.agent.removed,async t=>{let n=await e.requestOptional(T.get,{sessionId:t.payload.sessionId});if(!(n.handled&&n.data.session))return;let r=await dn(async()=>{let n=await e.requestOptional(w.updateStatus,{agentId:t.payload.agentId,status:`disposed`});if(!n.handled||!n.data.success)throw un(t.payload.agentId)}),i=await dn(async()=>{await fe(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:t.payload.agentId,clear:!0})}),a=await dn(async()=>{await cn(e,t.payload.agentId,{releaseClaims:r===void 0})}),o=await dn(async()=>{await e.requestOptional(T.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()})});if(r!==void 0)throw r;if(i!==void 0)throw i;if(a!==void 0)throw a;if(o!==void 0)throw o})}function hn(e){return e.on(O.started,async t=>{let{agentId:n,adapterSessionId:r,adapterName:i,adapterId:a,sessionId:o}=t.payload;if(!r||!o)return;let s=await e.requestOptional(w.get,{agentId:n}),c=s.handled?s.data.agent:null;c&&!c.adapterSessionId&&await e.requestOptional(w.updateRuntime,{agentId:n,adapterSessionId:r}),await e.requestOptional(T.update,{sessionId:o,reconcileAdapterSession:{agentId:n,adapterName:i,adapterId:a,adapterSessionId:r,lastActivityAt:Date.now()}})})}async function gn(e,t){try{let n=await e.requestOptional(tt.getCapabilities,{adapterId:t});return n.handled?new Set(n.data.capabilities).has(`session:resume`):!1}catch{return!1}}async function _n(e,t){if(t!==void 0)return t;let n=await e.requestOptional(Ue.getMachineId,{});return n.handled?n.data.machineId:void 0}async function vn(e,t,n,r,i){let a=pe(t,n);return he(_e({intent:`resume`,session:t,localMachineId:i,adapterSupportsNative:await gn(e,r),targetAdapterName:n.adapterName,currentCwd:n.cwd,targetCwd:n.cwd,resumeIdentity:a}),a.adapterSessionId)}function yn(e,t){let{agentId:n,storedAdapterId:r}=e;switch(t?.kind){case`rehydrated`:case`joined`:return{agentId:n,adapterId:t.agent.adapterId,success:!0};case`deferred`:return{agentId:n,adapterId:r,success:!0};case`refused`:return{agentId:n,adapterId:r,success:!1,error:`Ownership reservation refused: ${t.message??t.outcome}`};case`lost`:return{agentId:n,adapterId:r,success:!1,error:`Another runtime claimed this agent’s recovery`};case`stale-plan`:return{agentId:n,adapterId:r,success:!1,error:`Agent currency kept changing while its restart was planned`};default:return{agentId:n,adapterId:r,success:!1,error:`Restart produced no result`}}}async function bn(e,t,n,r){let{agentId:i,adapterId:a}=n;for(let o=0;o<=1;o+=1){let s=await oe(e,n,async()=>{let a=await re(e,i);if(a===null)return{kind:`lost`};if(!_(a))return a.agent.status===`disposed`?{kind:`refused`,outcome:`agent-disposed`}:{kind:`lost`};Object.assign(n,a.agent);let o=Se(await Ae(e,{adapterName:n.adapterName,storedAdapterId:n.adapterId,...r!==void 0&&{machineId:r}}));if(o===void 0)return{kind:`deferred`,reason:`machine-identity-unavailable`};let s=await vn(e,t,n,o.adapterId,o.machineId);if(we(s))return{kind:`deferred`,reason:`machine-identity-unavailable`};let c=await ne(e,a,o,s.resumeAdapterSessionId);return{agent:n,sessionId:n.sessionId,instance:o,resumeProviderSessionId:s.resumeAdapterSessionId,recoveryGuard:c,...n.cwd!==void 0&&{cwd:n.cwd},...n.model!==void 0&&{model:n.model}}});if(!(s?.kind===`stale-plan`&&o<1))return yn({agentId:i,storedAdapterId:a},s)}return{agentId:i,adapterId:a,success:!1,error:`Agent restart exhausted its recovery-plan retry`}}function xn(e){let t=e instanceof Error?e.cause:void 0;return t instanceof Error?t.message:e instanceof Error?e.message:String(e)}function Sn(e){return e.on(A.restartAgents,async t=>{let{sessionId:n,machineId:r}=t.payload,i=await e.requestOptional(w.listBySession,{sessionId:n}),a=i.handled?i.data.agents:[],o=[],s=await _n(e,r),c=await e.requestOptional(T.get,{sessionId:n}),l=c.handled?c.data.session:null;for(let t of a){if(l===null){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:`Session row could not be read; agent has no reachable recovery path`});continue}try{o.push(await bn(e,l,t,s))}catch(e){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:xn(e)})}}t.setResult({sessionId:n,results:o})})}function Cn(e){let t=be({bus:e.bus,machineId:e.machineId,topology:e.topology??`shared-machine`,...e.instanceId!==void 0&&{instanceId:e.instanceId}});return{cleanups:[En(e),Dn(e),On(e),wn(e),kn(e),Sn(e.bus),An(e),jn(e),Mn(e),fn(e.bus),mn(e.bus),hn(e.bus),...t.cleanups,Ee(e.bus)],ownership:t.ownership}}function wn(e){let{bus:t}=e;return t.on(A.turn.await,async e=>{let{sessionId:n,turnId:r,timeoutMs:i}=e.payload,a=new AbortController,o=t.once(A.turn.completed,{timeoutMs:i,filter:{sessionId:n,turnId:r},signal:a.signal});o.catch(()=>void 0);let s=await Tn(t,n,r);if(s!==void 0){a.abort(),e.setResult({completion:s});return}try{let t=await o;e.setResult({completion:t.payload})}catch(e){throw e instanceof Error&&e.name===`OnceTimeoutError`?new Ot(`session.turn.await`,i):e}})}async function Tn(e,t,n){let r=await e.requestOptional(C.get,{turnId:n}),i=r.handled?r.data.turn:null;if(!(i?.sessionId!==t||i.status!==`completed`&&i.status!==`error`))return{sessionId:t,turnId:n,turnNumber:i.turnNumber,success:i.status===`completed`,...i.error!==void 0&&{error:i.error},...i.usage!==void 0&&{usage:i.usage},...i.initiator!==void 0&&{initiator:i.initiator}}}function En(e){let{bus:t}=e;return t.on(A.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,originWindowId:p,machineId:m}=e.payload,h=n??crypto.randomUUID(),g=r===void 0?void 0:(await t.request(A.get,{sessionId:r})).session;if(r!==void 0&&g===null)throw Error(`[session.create] Parent session not found: ${r}`);let _=g?g.rootSessionId??g.sessionId:void 0,v=Date.now(),ee={sessionId:h,createdAt:v,lastActivityAt:v,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,..._!==void 0&&{rootSessionId:_},...m!==void 0&&{machineId:m}},y=await t.requestOptional(T.set,{sessionId:h,session:ee,ifAbsent:!0});if(y.handled&&!y.data.success){e.setResult({sessionId:h});return}await t.emit(A.created,{sessionId:h,createdAt:ee.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:h})})}function Dn(e){let{bus:t}=e;return t.on(A.get,async e=>{let n=await t.requestOptional(T.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function On(e){let{bus:t}=e;return t.on(A.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(T.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],l=s.handled?s.data.total:0;e.setResult({sessions:c,total:l})})}function kn(e){let{bus:t}=e;return t.on(A.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(T.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1});return}if(i.status===`closed`){e.setResult({success:!0});return}if(i.status!==`active`){e.setResult({success:!1});return}let a=await t.requestOptional(T.update,{sessionId:n,status:`closed`,lastActivityAt:Date.now(),expectedStatus:[`active`]});if(a.handled&&a.data.success){await t.emit(A.closed,{sessionId:n}),e.setResult({success:!0});return}let o=await t.requestOptional(T.get,{sessionId:n});e.setResult({success:o.handled&&o.data.session?.status===`closed`})})}function An(e){let{bus:t}=e;return t.on(A.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}=e.payload,s=await t.requestOptional(T.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),o!==void 0&&e.push(`metadata`),e.length>0&&await t.emit(A.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function jn(e){let{bus:t}=e;return t.on(A.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(T.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1});return}if(i.status===`archived`){e.setResult({success:!0});return}if(i.status!==`closed`){e.setResult({success:!1});return}let a=await t.requestOptional(T.update,{sessionId:n,status:`archived`,lastActivityAt:Date.now(),expectedStatus:[`closed`]});if(a.handled&&a.data.success){await t.emit(A.archived,{sessionId:n}),e.setResult({success:!0});return}let o=await t.requestOptional(T.get,{sessionId:n});e.setResult({success:o.handled&&o.data.session?.status===`archived`})})}function Mn(e){let{bus:t}=e;return t.on(A.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(T.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1,error:`Session not found`});return}if(i.status!==`archived`){e.setResult({success:!1,error:`Cannot purge session unless archived. Call close then archive first.`});return}let a=await t.requestOptional(w.listBySession,{sessionId:n}),o=a.handled?a.data.agents:[];if((await Promise.all(o.map(async e=>{let n=await t.requestOptional(w.updateStatus,{agentId:e.agentId,status:`disposed`});return n.handled&&n.data.success}))).some(e=>!e)){e.setResult({success:!1,error:`Cannot purge session because an agent could not be sealed.`});return}if((await Promise.all(o.map(e=>cn(t,e.agentId)))).some(e=>!e.released)){e.setResult({success:!1,error:`Cannot purge session while an owner runtime may still hold an agent connector.`});return}let s=await t.requestOptional(T.list,{status:`all`}),c=s.handled?s.data.sessions:[];for(let e of c)e.parentSessionId===n&&await t.requestOptional(T.update,{sessionId:e.sessionId,parentSessionId:null});let l=await t.requestOptional(d.getEvents,{sessionId:n,options:{limit:1}}),u=l.handled?l.data.totalCount:0;await t.requestOptional(d.deleteBySession,{sessionId:n}),await t.requestOptional(T.delete,{sessionId:n}),await t.emit(A.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:u})})}var Nn=class extends At{options;ownership;requireOwnershipInstanceId(){let e=this.ownership?.instanceId;if(e===void 0)throw Error(`Session ownership authority is not initialized`);return e}constructor(e=Et,t={}){super(e),this.options=t}async onInit(){let e=Cn({bus:this.bus,...this.options.machineId!==void 0&&{machineId:this.options.machineId},...this.options.topology!==void 0&&{topology:this.options.topology},instanceId:crypto.randomUUID()});this.ownership=e.ownership,this.addCleanup(async()=>{this.ownership===e.ownership&&(this.ownership=void 0),await e.ownership.close()});for(let t of e.cleanups)this.addCleanup(t);this.addCleanup(m(this.bus)),this.addCleanup(this.scheduleOwnershipReconcile()),await this.reconcileOrphanedTurns()}async onDestroy(){let e=this.ownership;this.ownership=void 0,await e?.close()}scheduleOwnershipReconcile(){let e=this.bus.on(kt.phase.coordinatorReady,async t=>{e(),t.setResult({});try{await this.bus.request(A.ownership.reconcile,{})}catch(e){console.error(`[MakaioSessionService] Ownership reconcile failed:`,e)}});return e}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(C.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(C.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});if(t){let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`,ingestionMarker:`live`};await me(this.bus,{type:`turn.completed`,sessionId:e.sessionId,payload:t}),await this.bus.emit(A.turn.completed,t)}}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function Pn(e,t){let n=t===void 0?``:` machineId="${t}"`;return Error(`No adapter found for adapterName="${e}"${n}. Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}function V(e,t){return JSON.stringify([t??null,e])}var Fn=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e;let t=this.bus.on(tt.initialized,e=>{this.registry.set(V(e.payload.adapterName),e.payload.adapterId),this.registry.set(V(e.payload.adapterName,e.payload.machineId),e.payload.adapterId)}),n=this.bus.on(tt.deinitialized,e=>{let t=[V(e.payload.adapterName),V(e.payload.adapterName,e.payload.machineId)];for(let n of t)this.registry.get(n)===e.payload.adapterId&&this.registry.delete(n)});this.cleanup=()=>{t(),n()}}resolve(e){let t=this.registry.get(V(e));if(!t)throw Pn(e);return t}async resolveAvailable(e,t){try{let{adapterId:n}=await this.bus.request(Ue.resolveId,{adapterName:e,...t!==void 0&&{machineId:t}});return this.registry.set(V(e,t),n),n}catch{let n=this.registry.get(V(e,t));if(n)return n;throw Pn(e,t)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};async function In(e,t){e.emit(E.stored,{message:structuredClone(t)});try{await e.request(d.append,{event:{sessionId:t.sessionId,eventId:crypto.randomUUID(),timestamp:t.timestamp,type:`message`,payload:{messageId:t.messageId,turnId:t.turnId,role:t.role}}})}catch(e){console.error(`[MessageStorage] Failed to emit session event for message:`,e)}}function Ln(e){return{messageId:e.messageId,turnId:e.turnId,sessionId:e.sessionId,role:e.role,contentText:e.contentText,blocks:JSON.parse(e.blocks),agentId:e.agentId??void 0,adapterSessionId:e.adapterSessionId??void 0,adapterMessageId:e.adapterMessageId??void 0,timestamp:e.timestamp,editOf:e.editOf??void 0,origin:e.origin??void 0}}function Rn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.append,async e=>{let{message:i,emitEvent:a}=e.payload,o=i.messageId??crypto.randomUUID(),s={...i,messageId:o,blocks:i.blocks??[]};await n.insert(r).values({messageId:o,turnId:s.turnId,sessionId:s.sessionId,role:s.role,contentText:s.contentText,blocks:JSON.stringify(s.blocks),agentId:s.agentId??null,adapterSessionId:s.adapterSessionId??null,adapterMessageId:s.adapterMessageId??null,timestamp:s.timestamp,editOf:s.editOf??null,origin:s.origin??null}),e.setResult({message:s}),(a??!0)&&await In(t,s)})}function zn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?qt:Kt,l=n.select().from(r).where(L(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?tn(Zt(r.timestamp,a.timestamp),F(L(r.timestamp,a.timestamp),o?Qt(r.messageId,a.messageId):Zt(r.messageId,a.messageId))):tn(Jt(r.timestamp,a.timestamp),F(L(r.timestamp,a.timestamp),o?Yt(r.messageId,a.messageId):Jt(r.messageId,a.messageId)));l=n.select().from(r).where(F(L(r.sessionId,t),e)).orderBy(c(r.timestamp),c(r.messageId))}let u=i??100,d=await l.limit(u+1),f=d.length>u,p=f?d.slice(0,u):d,m=f&&p.length>0?j(p[p.length-1]):null;e.setResult({messages:p.map(Ln),nextCursor:m})})}function Bn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(L(r.turnId,t)).orderBy(Kt(r.timestamp));e.setResult({messages:i.map(Ln)})})}function Vn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(L(r.messageId,t)).limit(1);e.setResult({message:i?Ln(i):null})})}function Hn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f),i=Gt(n).fts;return t.on(E.search,async e=>{let{query:t,sessionId:a,limit:o}=e.payload,s=o??50;if(!t.trim()){e.setResult({messages:[],total:0});return}let{rows:c,total:l}=await i.searchMessages(n,r,{query:t,sessionId:a,limit:s});e.setResult({messages:c.map(Ln),total:l})})}function Un(e){let{bus:t,db:n}=e,{messages:r}=P(n,f),i=Gt(n).fts;return t.on(E.ftsSearch,async e=>{let{query:t,sessionId:a,limit:o=20}=e.payload;if(!t.trim()){e.setResult({results:[],total:0});return}let{results:s,total:c}=await i.searchMessageExcerpts(n,r,{query:t,sessionId:a,limit:o});e.setResult({results:s,total:c})})}function Wn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(L(r.adapterMessageId,t)).limit(1);e.setResult({message:i?Ln(i):null})})}function Gn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.upsertByAdapterMessageId,async e=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=e.payload,[m]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(F(L(r.adapterMessageId,i),L(r.sessionId,a))).limit(1);if(m){m.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(L(r.messageId,m.messageId)),e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();if((await n.insert(r).values({messageId:h,turnId:o,sessionId:a,role:s,contentText:c,blocks:JSON.stringify(l),agentId:u??null,adapterSessionId:d??null,adapterMessageId:i,timestamp:f,editOf:null,origin:p??null}).onConflictDoNothing({target:[r.adapterMessageId,r.sessionId]}).returning({messageId:r.messageId})).length===0){let[t]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(F(L(r.adapterMessageId,i),L(r.sessionId,a))).limit(1);if(t===void 0)throw Error(`Message upsert conflict winner disappeared before reread completed`);t.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(L(r.messageId,t.messageId)),e.setResult({messageId:t.messageId,created:!1});return}e.setResult({messageId:h,created:!0}),await In(t,{messageId:h,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u??void 0,adapterSessionId:d??void 0,adapterMessageId:i,timestamp:f,editOf:void 0,origin:p??void 0})})}function Kn(e,t){let n={bus:e,db:t},r=[Rn(n),zn(n),Bn(n),Vn(n),Hn(n),Un(n),Gn(n),Wn(n)];return()=>r.forEach(e=>e())}function qn(e,t){return vt(j(e),j(t))}function Jn(e,t){return yt(j(e),j(t))}function Yn(e,t){let n=e.get(t);if(n!==void 0)return n;let r=new Map;return e.set(t,r),r}function Xn(e,t,n,r){if(r===null)return;let i=e.get(n);if(i===void 0||i.turnId!==null)return;i.turnId=r;let a=t.get(r)??[];a.includes(n)||(a.push(n),t.set(r,a))}function Zn(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Qn(t,n,r,i),o=[$n(e,t,a),er(e,t,n),tr(e,t,r),nr(e,t),rr(e,t),ir(e,t,r,i,a),ar(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Qn(e,t,n,r){return i=>{e.set(i.messageId,i);let a=t.get(i.sessionId)??[];if(a.push(i.messageId),t.set(i.sessionId,a),i.turnId){let e=n.get(i.turnId)??[];e.push(i.messageId),n.set(i.turnId,e)}i.adapterMessageId&&Yn(r,i.sessionId).set(i.adapterMessageId,i.messageId)}}function $n(e,t,n){return e.on(E.append,async t=>{let{message:r,emitEvent:i}=t.payload,a=r.messageId??crypto.randomUUID(),o={...r,messageId:a,blocks:r.blocks??[]};n(o),t.setResult({message:o}),(i??!0)&&await In(e,o)})}function er(e,t,n){return e.on(E.getBySession,async e=>{let{sessionId:r,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=n.get(r)??[],l=s===`desc`?Jn:qn,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?yt(j(e),a):vt(j(e),a);return o?t>=0:t>0}));let d=i??100,f=u.length>d,p=f?u.slice(0,d):u,m=f&&p.length>0?j(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function tr(e,t,n){return e.on(E.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(qn);e.setResult({messages:i})})}function nr(e,t){return e.on(E.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function rr(e,t){return e.on(E.search,async e=>{let{query:n,sessionId:r,limit:i}=e.payload,a=i??50,o=n.trim().toLowerCase(),s=[...t.values()].filter(e=>r?e.sessionId===r:!0),c=o.length===0?[]:s.filter(e=>e.contentText.toLowerCase().includes(o));c.sort(qn),e.setResult({messages:c.slice(0,a),total:c.length})})}function ir(e,t,n,r,i){return e.on(E.upsertByAdapterMessageId,async a=>{let{adapterMessageId:o,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f,adapterSessionId:p,timestamp:m,origin:h}=a.payload,g=r.get(s)?.get(o);if(g){Xn(t,n,g,c),a.setResult({messageId:g,created:!1});return}let _=crypto.randomUUID(),v={messageId:_,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f??void 0,adapterSessionId:p??void 0,adapterMessageId:o,timestamp:m,editOf:void 0,origin:h??void 0};i(v),a.setResult({messageId:_,created:!0}),await In(e,v)})}function ar(e,t,n,r,i){return e.on(T.delete,e=>{let{sessionId:a}=e.payload,o=n.get(a)??[];for(let e of o){let n=t.get(e);if(n){if(t.delete(e),n.turnId){let t=(r.get(n.turnId)??[]).filter(t=>t!==e);t.length===0?r.delete(n.turnId):r.set(n.turnId,t)}if(n.adapterMessageId){let e=i.get(n.sessionId);e?.delete(n.adapterMessageId),e?.size===0&&i.delete(n.sessionId)}}}n.delete(a)})}const or=Ht(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(u,{onDelete:`cascade`}),agentId:e.text(`agent_id`).notNull(),status:e.textEnum(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:e.epochMs(`timestamp`).notNull(),error:e.text(`error`)}),{sqlite:e=>[Pt({columns:[e.messageId,e.agentId,e.status]}),Mt(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[zt({columns:[e.messageId,e.agentId,e.status]}),Rt(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),sr=or.sqlite,cr=nn(`messageRouting`,{schemas:{record:{request:ct,response:D.object({success:D.boolean()})},getByMessage:{request:D.object({messageId:D.string()}),response:D.object({routing:D.array(ct)})},getCompleted:{request:D.object({messageId:D.string()}),response:D.object({agentIds:D.array(D.string())})},isComplete:{request:D.object({messageId:D.string(),targetAgentIds:D.array(D.string())}),response:D.object({complete:D.boolean(),pending:D.array(D.string())})}},extensions:{drizzle:{messageRouting:sr}}}),H=cr.subjects,lr=or.postgres,ur=Vt({messageRouting:sr},{messageRouting:lr});function dr(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function fr(e,t){let{messageRouting:n}=P(t,ur),r=[];return r.push(e.on(H.record,async e=>{let{messageId:r,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(n).values({messageId:r,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[n.messageId,n.agentId,n.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),r.push(e.on(H.getByMessage,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(L(n.messageId,r));e.setResult({routing:i.map(dr)})})),r.push(e.on(H.getCompleted,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(F(L(n.messageId,r),L(n.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),r.push(e.on(H.isComplete,async e=>{let{messageId:r,targetAgentIds:i}=e.payload,a=await t.select().from(n).where(F(L(n.messageId,r),L(n.status,`completed`))),o=new Set(a.map(e=>e.agentId)),s=i.filter(e=>!o.has(e));e.setResult({complete:s.length===0,pending:s})})),()=>r.forEach(e=>e())}const pr=`[session.sendMessage]`,mr={droppedAgentIds:new Set,recoveringAgentIds:new Set,deferredAgentIds:new Set,arbitratedAgentIds:new Set};function U(e,t){for(let n of t)e.add(n)}function W(e,t){let n=new Set(t.map(e=>e.agentId));return new Set([...e].filter(e=>n.has(e)))}function hr(e,t,n){let r=W(e,n);return{recovering:r,arbitrated:new Set([...W(t,n)].filter(e=>r.has(e)))}}function gr(e,t){if(e>=2)throw new S(`start-unresolved`,`[session.start] session ${t} did not stabilize after 2 deferral convergence passes`);return e+1}async function _r(e,t,n,r,i,a){let o=n,s=new Set(r),c=new Set(i),l=W(a,o),u,d=new Set(l),f=0;for(;d.size>0;){f=gr(f,t.sessionId);let n=await yr(e,t,o,d,l);o=n.targetAgents,{recovering:s,arbitrated:c}=hr(s,c,o),U(s,n.recovering),U(c,W(n.arbitrated,o)),c=new Set([...W(c,o)].filter(e=>s.has(e))),U(l,W(n.deferred,o)),u=n.recoveryContext??u,d=W(n.deferred,o)}let p=await vr(e,t.session,o,s,c);for(U(l,p.deferredAgentIds),u=p.recoveryContext??u,s=new Set,c=new Set,d=W(p.deferredAgentIds,o);d.size>0;){f=gr(f,t.sessionId);let n=await yr(e,t,o,d,l);if(o=n.targetAgents,{recovering:s,arbitrated:c}=hr(s,c,o),U(s,n.recovering),U(c,W(n.arbitrated,o)),c=new Set([...W(c,o)].filter(e=>s.has(e))),U(l,W(n.deferred,o)),u=n.recoveryContext??u,s.size>0){let n=await vr(e,t.session,o,s,c);U(l,n.deferredAgentIds),u=n.recoveryContext??u,d=W(n.deferredAgentIds,o),s=new Set,c=new Set}else d=W(n.deferred,o)}return{targetAgents:o,deferredAgentIds:l,recoveryContext:u}}async function vr(e,t,n,r,i){let a=await Promise.all(n.map(async t=>{if(t.runtimeOwner!==void 0&&!(r.has(t.agentId)&&!i.has(t.agentId)))return e.bus.requestOptional(tt.getAgent,{agentId:t.agentId,adapterId:t.adapterId,ownerInstanceId:t.runtimeOwner.instanceId})})),o=[],s=new Set;for(let[t,r]of n.entries()){if(r.runtimeOwner===void 0){s.add(r.agentId);continue}let n=a[t];if(n===void 0){o.push(r);continue}let c=n.handled?n.data.agent:void 0;if(i.has(r.agentId)){if(c==null){o.push(r);continue}await Ie(e.bus,r.agentId);continue}(!n.handled||c===null)&&o.push(r)}if(o.length===0)return{recoveryContext:void 0,deferredAgentIds:s};let c=je,l=await ee(e.bus,t,c),u=Ne(c)??null,d=0;for(let t of o)(await ie(e.bus,t,{resumeProviderSessionId:u,machineId:e.machineId})).deferred?s.add(t.agentId):d+=1;return d===0?{recoveryContext:void 0,deferredAgentIds:s}:{recoveryContext:l,deferredAgentIds:s}}async function yr(e,t,n,r,i){let a=n.filter(e=>r.has(e.agentId)),o=de(t.session,n,r);if(o.length>0)return{targetAgents:o,recovering:mr.recoveringAgentIds,arbitrated:mr.arbitratedAgentIds,deferred:mr.deferredAgentIds};Re(t.targetSpec)!==`lead-default`&&Pe(pr,t.sessionId,i);let s=await e.startReplacementLeadAgent(t.agentSelection??xe(a[0],e.machineId)),c=le(t.session,t.targetSpec);return c.length===0&&Pe(pr,t.sessionId,i),{targetAgents:c,recovering:s.recoveringAgentIds,arbitrated:s.arbitratedAgentIds,deferred:s.deferredAgentIds,recoveryContext:await ee(e.bus,t.session,je)}}const br={writesAgentStatus:!0,connectorOnlyTeardown:!0};function xr(e,t){return e.leadTransition.kind===`replace`?{...br,reservation:t}:br}async function Sr(e,t,n){let r=Fe(),i;try{i=await b(e,{sessionId:t.sessionId,agentId:n,adapterName:t.adapterName,instance:t.instance,role:`lead`,resumeProviderSessionId:null,expectedLeadAgentId:t.expectedLeadAgentId,claimToken:r})}catch(t){throw await e.requestOptional(A.ownership.release,{agentId:n,claimToken:r,disposition:`released`}).catch(()=>void 0),t}return i.outcome===`reserved`?{kind:`reserved`,reservation:i.reservation}:i.outcome===`lead-conflict`?{kind:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.outcome===`session-not-active`?{kind:`refused`,outcome:i.outcome,status:i.status}:{kind:`refused`,outcome:i.outcome}}async function Cr(e,t,n,r,i,a,o){if(i.agentId===n&&i.adapterId===t.instance.adapterId&&i.sessionId===t.sessionId&&i.ownerInstanceId===a)return{...i,ownerInstanceId:i.ownerInstanceId};throw await y(e,n,o,r),await x(e,t.instance.adapterId,n,a,!0),new S(`start-failed`,`[session.start] ${i.ownerInstanceId===void 0?`adapter omitted its owner instance`:i.ownerInstanceId===a?`adapter response identity mismatch`:`adapter owner mismatch`} for agent ${n}`)}async function wr(e,t,n,r,i,a){let o,s={...t.startRequest,adapterId:t.instance.adapterId,sessionId:t.sessionId,role:`lead`,agentId:n,ownerInstanceId:r.ownerInstanceId};try{o=t.dispatch?await t.dispatch(s):await e.request(tt.startAgent,s)}catch(o){throw await y(e,n,a,i),await x(e,t.instance.adapterId,n,r.ownerInstanceId,!0),o}if(!o.success){let s=new S(`start-failed`,`[session.start] Failed to start agent (sessionId=${t.sessionId}, adapterName=${t.adapterName}): ${o.message}`);throw o.dispatch===`not-dispatched`?await ue(e,n,r):(await y(e,n,a,i),await x(e,t.instance.adapterId,n,r.ownerInstanceId,!0)),s}return Cr(e,t,n,i,o,r.ownerInstanceId,a)}async function Tr(e,t,n){await ue(e,n,void 0,{sessionId:t.sessionId,agentId:n,expectedLeadAgentId:t.expectedLeadAgentId,transition:t.leadTransition.kind})}async function Er(e,t,n){let r=De({agentId:n,instance:t.instance,adapterName:t.adapterName,sessionId:t.sessionId,role:`lead`,runtime:t.startRequest,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId},...t.personaId!==void 0&&{personaId:t.personaId},...t.profileId!==void 0&&{profileId:t.profileId}}),i;try{await e.requestOptional(w.set,{agentId:n,agent:r}),i=await Sr(e,t,n)}catch(r){throw await Tr(e,t,n),r}if(i.kind===`lead-conflict`){if(!(await ue(e,n,void 0)).rowDeleted)throw new S(`start-unresolved`,`[session.start] lost lead designation for agent ${n}, but its rollback could not be confirmed`);return{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}}if(i.kind===`refused`)throw await ue(e,n,void 0),new S(i.outcome===`session-not-active`?`session-not-active`:`start-failed`,`[session.start] reservation for agent ${n} was refused: ${i.outcome}`,void 0,void 0,i.status);let{reservation:a}=i,o=xr(t,a),s=new ke([a.claim?.claimToken]),c=await wr(e,t,n,a,s,o),l=Fe();return s.add(l),await g(e,{sessionId:t.sessionId,agentId:n,adapterId:t.instance.adapterId,adapterName:t.adapterName,policy:o,claimTokens:s,settlementClaimToken:l,admitSessionBeforeFinalAdoption:!0,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId},machineId:t.instance.machineId,ownerInstanceId:t.instance.ownerInstanceId},c.adapterSessionId,c.settlementAckToken,c.ownerInstanceId),{outcome:`started`,agent:{...r,status:`idle`,...c.adapterSessionId!==void 0&&{adapterSessionId:c.adapterSessionId}}}}async function Dr(e,t){if(Se(t.instance)===void 0)throw new S(`start-failed`,`[session.start] lead transition requires a machine-scoped adapter instance (sessionId=${t.sessionId})`);let n=crypto.randomUUID(),r;if(await Oe(n,async()=>(r=await Er(e,t,n),r.outcome===`started`?`connected`:`no-connector`)).settled,r===void 0)throw new S(`start-failed`,`[session.start] start for agent ${n} produced no result`);return r}function Or(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var kr=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];admittedTargetsByMessageId=new Map;terminalPairs=new Map;pendingMessageAdmissions=new Set;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(Or(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return Or(this._initiator)}get messageIds(){return this._messageIds}get hasPendingMessageAppends(){return this.pendingMessageAdmissions.size>0}addMessage(e){this.admitMessage(e,this._agentIds),this.commitMessageAdmission(e)}claimMessageAppend(e){this.admitMessage(e,this._agentIds)}releaseMessageAppend(e){this.rollbackMessageAdmission(e)}admitMessage(e,t){if(this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} already admitted message ${e}`);if(t.length===0||new Set(t).size!==t.length)throw Error(`Turn ${this.turnId} requires a non-empty unique target set for message ${e}`);if(t.some(e=>!this.hasAgent(e)))throw Error(`Turn ${this.turnId} cannot admit targets outside its immutable participant set`);this._messageIds.push(e),this.admittedTargetsByMessageId.set(e,new Set(t)),this.pendingMessageAdmissions.add(e)}commitMessageAdmission(e){if(!this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} cannot commit unknown message ${e}`);this.pendingMessageAdmissions.delete(e)}rollbackMessageAdmission(e){let t=this.admittedTargetsByMessageId.get(e);if(!t)return;if([...t].some(t=>this.terminalPairs.has(this.pairKey(e,t))))throw Error(`Turn ${this.turnId} cannot roll back terminal message ${e}`);this.admittedTargetsByMessageId.delete(e),this.pendingMessageAdmissions.delete(e);let n=this._messageIds.indexOf(e);n>=0&&this._messageIds.splice(n,1)}recordPairTerminal(e,t,n,r){if(!this.admittedTargetsByMessageId.get(e)?.has(t))return{accepted:!1,turnComplete:!1};let i=this.pairKey(e,t);return this.terminalPairs.has(i)?{accepted:!1,turnComplete:!1}:(this.terminalPairs.set(i,{outcome:n,...r!==void 0&&{error:r}}),this.isComplete()?{accepted:!0,turnComplete:!0,result:this.getResult()}:{accepted:!0,turnComplete:!1})}hasAdmittedPair(e,t){return this.admittedTargetsByMessageId.get(e)?.has(t)??!1}get admittedPairs(){return[...this.admittedTargetsByMessageId].flatMap(([e,t])=>[...t].map(t=>({messageId:e,agentId:t})))}hasAgent(e){return this._agentIds.includes(e)}isComplete(){if(this.admittedTargetsByMessageId.size===0||this.pendingMessageAdmissions.size>0)return!1;for(let[e,t]of this.admittedTargetsByMessageId)for(let n of t)if(!this.terminalPairs.has(this.pairKey(e,n)))return!1;return!0}getResult(){let e=[...this.terminalPairs.values()].filter(e=>e.outcome===`error`).map(e=>e.error??`Unknown error`);return{success:e.length===0,errors:e}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}pairKey(e,t){return JSON.stringify([e,t])}},Ar=class e{byAgent=new Map;coverageByAgent=new Map;ambiguousAgents=new Set;providerCalls=new Set;add(e){if(e.granularity===`latest-request-gauge`||this.ambiguousAgents.has(e.agentId))return;let t=this.coverageByAgent.get(e.agentId);if(t!==void 0&&t!==e.granularity){this.byAgent.delete(e.agentId),this.ambiguousAgents.add(e.agentId);return}if(e.granularity===`provider-call`&&e.llmCallId!==void 0){let t=`${e.agentId}:${e.llmCallId}`;if(this.providerCalls.has(t))return;this.providerCalls.add(t)}this.coverageByAgent.set(e.agentId,e.granularity);let n=this.byAgent.get(e.agentId);n?(n.inputTokens+=e.inputTokens,e.inputCachedTokens>0&&(n.cachedInputTokens=(n.cachedInputTokens??0)+e.inputCachedTokens),n.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,...e.inputCachedTokens>0&&{cachedInputTokens:e.inputCachedTokens},outputTokens:e.outputTokens})}preview(t){let n=new e;for(let[e,t]of this.byAgent)n.byAgent.set(e,{...t});for(let[e,t]of this.coverageByAgent)n.coverageByAgent.set(e,t);for(let e of this.ambiguousAgents)n.ambiguousAgents.add(e);for(let e of this.providerCalls)n.providerCalls.add(e);for(let e of t)n.add(e);return n.snapshot()}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n=0,r={};for(let[i,a]of this.byAgent)e+=a.inputTokens,t+=a.cachedInputTokens??0,n+=a.outputTokens,r[i]={...a};return{total:{inputTokens:e,...t>0&&{cachedInputTokens:t},outputTokens:n},byAgent:r}}flush(){let e=this.snapshot();return this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear(),e}clear(){this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear()}};const jr=Symbol(`turnReservation`);var Mr=class{activeTurns=new Map;reservations=new Map;pendingAcquisitions=new Map;pendingPreparations=new Map;preparedTurnIds=new Set;pendingFinalizations=new Map;finalizingTurnIds=new Set;async awaitFinalization(e,t){let n=this.pendingFinalizations.get(e);if(n)return await n;let r=t();this.pendingFinalizations.set(e,r);try{await r}finally{this.pendingFinalizations.get(e)===r&&this.pendingFinalizations.delete(e)}}getActive(e){return this.activeTurns.get(e)}findActiveByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}async acquire(e,t){let n=this.activeTurns.get(e);if(n)return{turn:n,isNew:!1};let r=this.pendingAcquisitions.get(e);if(r)return{turn:await r,isNew:!1};let i=t(this.reserve(e));this.pendingAcquisitions.set(e,i);try{return{turn:await i,isNew:!0}}finally{this.pendingAcquisitions.get(e)===i&&this.pendingAcquisitions.delete(e)}}reserve(e){if(this.activeTurns.has(e)||this.reservations.has(e))throw Error(`Session ${e} already has a routable or pending turn`);let t={sessionId:e,[jr]:!0};return this.reservations.set(e,t),t}release(e){this.reservations.get(e.sessionId)===e&&this.reservations.delete(e.sessionId)}activate(e,t){if(this.reservations.get(e.sessionId)!==e)throw Error(`Turn reservation for session ${e.sessionId} is no longer active`);this.activeTurns.set(e.sessionId,t),this.release(e)}clearActive(e){return this.activeTurns.get(e.sessionId)?.turnId===e.turnId?(this.activeTurns.delete(e.sessionId),this.preparedTurnIds.delete(e.turnId),!0):!1}tryAdmitMessage(e,t,n){if(this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId)return;e.admitMessage(t,n);let r=!1;return{turn:e,messageId:t,agentIds:[...n],commit:()=>{r||(r=!0,e.commitMessageAdmission(t))},rollback:async()=>{r||(r=!0,e.rollbackMessageAdmission(t))}}}beginFinalization(e){return this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId?!1:(this.finalizingTurnIds.add(e.turnId),this.clearActive(e),!0)}finishFinalization(e){this.finalizingTurnIds.delete(e.turnId)}beginPreparation(e){if(this.preparedTurnIds.has(e.turnId))return{turn:e,isOwner:!1,ready:Promise.resolve()};let t=this.pendingPreparations.get(e.turnId);if(t)return{turn:e,isOwner:!1,ready:t.ready};let n,r,i=new Promise((e,t)=>{n=e,r=t});return i.catch(()=>{}),this.pendingPreparations.set(e.turnId,{turn:e,ready:i,resolve:n,reject:r}),{turn:e,isOwner:!0,ready:i}}completePreparation(e){if(!e.isOwner)throw Error(`Only the preparation owner can complete turn ${e.turn.turnId}`);let t=this.pendingPreparations.get(e.turn.turnId);if(!t||t.turn!==e.turn)throw Error(`Turn preparation for ${e.turn.turnId} is no longer active`);this.pendingPreparations.delete(e.turn.turnId),this.preparedTurnIds.add(e.turn.turnId),t.resolve()}failPreparation(e,t){if(!e.isOwner)throw Error(`Only the preparation owner can fail turn ${e.turn.turnId}`);let n=this.pendingPreparations.get(e.turn.turnId);!n||n.turn!==e.turn||(this.pendingPreparations.delete(e.turn.turnId),n.reject(t))}clear(){this.activeTurns.clear(),this.reservations.clear(),this.pendingAcquisitions.clear(),this.pendingFinalizations.clear(),this.finalizingTurnIds.clear();for(let e of this.pendingPreparations.values())e.reject(Error(`Turn slot registry was cleared during preparation`));this.pendingPreparations.clear(),this.preparedTurnIds.clear()}},Nr=class{bus;resolveTurn;timeoutMs;settledPairs=new Map;waiters=new Map;cleanup;destroyed=!1;constructor(e,t,n){this.bus=e,this.resolveTurn=t,this.timeoutMs=n,this.cleanup=e.on(A.turn.assistantPersistenceSettled,e=>{if(this.destroyed)return;let{sessionId:t,turnId:n,messageId:r,agentId:i}=e.payload,a=this.resolveTurn(n);if(!a||a.sessionId!==t||!a.hasAdmittedPair(r,i))return;let o=this.settledPairs.get(n)??new Set;o.add(this.pairKey(r,i)),this.settledPairs.set(n,o),this.isSettled(a)&&this.waiters.get(n)?.settle()})}async waitFor(e){if(this.destroyed||e.agentIds.length===0||this.isSettled(e))return;let t=await this.bus.requestOptional(E.getByTurn,{turnId:e.turnId});this.destroyed||!t.handled||await new Promise(t=>{let n=()=>{clearTimeout(r),this.waiters.delete(e.turnId),t()},r=setTimeout(n,this.timeoutMs);this.waiters.set(e.turnId,{settle:n}),this.isSettled(e)&&n()})}clear(e){this.waiters.get(e)?.settle(),this.settledPairs.delete(e)}destroy(){if(!this.destroyed){this.destroyed=!0,this.cleanup();for(let e of[...this.waiters.values()])e.settle();this.waiters.clear(),this.settledPairs.clear()}}isSettled(e){if(e.admittedPairs.length===0)return!0;let t=this.settledPairs.get(e.turnId);return t!==void 0&&e.admittedPairs.every(({messageId:e,agentId:n})=>t.has(this.pairKey(e,n)))}pairKey(e,t){return JSON.stringify([e,t])}};function Pr(e,t,n){return{...e,isPreparationOwner:t.isOwner,commit:()=>{e.commit(),t.isOwner&&n.completePreparation(t)},rollback:async(r=`message-setup-failed:${e.messageId}`)=>{let i=e.rollback();if(t.isOwner){let a={success:!1,errors:[r]};n.beginSetupFailure(e,a),n.failPreparation(t,Error(`Message ${e.messageId} setup failed`)),await i,await n.finalizeSetupFailure(e,a);return}await i,e.turn.isComplete()&&await n.finalizeCompletedLedger(e,e.turn.getResult())}}}function Fr(e){return{status:e.success?`completed`:`error`,error:e.errors.length>0?e.errors.join(`; `):void 0}}function Ir(e,t){if(e===void 0||t===void 0)return e===t;if(e.total.inputTokens!==t.total.inputTokens||e.total.cachedInputTokens!==t.total.cachedInputTokens||e.total.outputTokens!==t.total.outputTokens||e.total.cost!==t.total.cost)return!1;let n=e.byAgent??{},r=t.byAgent??{},i=Object.keys(n).sort(),a=Object.keys(r).sort();return i.length===a.length?i.every((e,t)=>{if(e!==a[t])return!1;let i=n[e],o=r[e];return i?.inputTokens===o?.inputTokens&&i?.cachedInputTokens===o?.cachedInputTokens&&i?.outputTokens===o?.outputTokens&&i?.cost===o?.cost}):!1}async function Lr(e,t,n,r,i){let a=Fr(n),o=await e.requestOptional(C.complete,{turnId:t.turnId,status:a.status,...i!==void 0&&{expectedStatus:i},error:a.error,usage:r??null});if(!o.handled)return{handled:!1,transitioned:!0};let s=o.data.turn;if(!(s.status===a.status&&s.error===a.error))return{handled:!0,transitioned:!1};if(Ir(s.usage,r))return{handled:!0,transitioned:!0};if(o.data.transitioned)throw Error(`Turn completion storage returned non-canonical usage for transitioned turn ${t.turnId}`);let c=await e.requestOptional(C.complete,{turnId:t.turnId,status:a.status,error:a.error,usage:r??null});if(!c.handled||!Ir(c.data.turn.usage,r))throw Error(`Turn completion usage reconciliation did not persist the canonical snapshot for ${t.turnId}`);if(c.data.turn.status!==a.status||c.data.turn.error!==a.error)throw Error(`Turn completion usage reconciliation changed terminal metadata for ${t.turnId}`);return{handled:!0,transitioned:!0}}async function Rr(e){let t=e.turn.turnId,n=e.currentUsage;for(;;){let r=e.bufferedUsage.get(t);if(r===void 0||r.length===0)return n;e.bufferedUsage.delete(t);let i=e.usageAccumulator?e.usageAccumulator.preview(r):n;try{await Lr(e.bus,e.turn,e.result,i)}catch(n){let i=e.bufferedUsage.get(t)??[];throw e.bufferedUsage.set(t,[...r,...i]),n}for(let t of r)e.usageAccumulator?.add(t);n=e.usageAccumulator?.snapshot()??i}}function zr(e,t,n){return[e.on(O.usage,e=>{let{agentId:n,turnId:r,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,llmCallId:c}=e.payload;if(!r){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${n}).`);return}let l=t.resolveUsageTurn(r);if(!l||!l.hasAgent(n))return;let u={agentId:n,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,...c&&{llmCallId:c}};t.isCompletionInFlight(l.turnId)?t.bufferUsage(l.turnId,u):t.addUsage(l,u)}),e.on(O.complete,async r=>{let{agentId:i,outcome:a,error:o,turnId:s,messageId:c}=r.payload;r.payload._import||!s||await Br(e,t,{agentId:i,messageId:c,outcome:a??`completed`,error:a===`error`?o:void 0,turnId:s,onTurnComplete:n})})]}async function Br(e,t,n){let r=t.resolveCompletionTurn(n.turnId);if(!r?.hasAgent(n.agentId))return;let i=r.recordPairTerminal(n.messageId,n.agentId,n.outcome,n.error);if(!i.accepted){t.canRetry(r.turnId)&&await t.retry(r.turnId);return}i.turnComplete&&t.beginFinalization(r,i.result);let a=e.emit(A.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:n.messageId,agentId:n.agentId,outcome:n.outcome,...n.error!==void 0&&{error:n.error}}),o=i.turnComplete?n.onTurnComplete(r,i.result):Promise.resolve(),[s,c]=await Promise.allSettled([a,o]);if(s.status===`rejected`&&console.error(`[SessionTurnManager] Failed to emit user-message completion:`,s.reason),c.status===`rejected`)throw c.reason}var Vr=class{bus;turnSlots=new Mr;usageAccumulators=new Map;completingTurnIds=new Set;completionPromises=new Map;completingTurns=new Map;closedUsageAdmissions=new Set;pendingTerminalCompletions=new Map;pendingTerminalResults=new Map;setupFinalizingTurnIds=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;assistantPersistenceBarrier;cleanups=[];constructor(e){this.bus=e,this.assistantPersistenceBarrier=new Nr(e,e=>this.findTurnForCompletion(e),1500)}async acquireTurn(e,t,n,r){await this.retryRetainedCompletionsForSession(e);let i=await this.turnSlots.acquire(e,e=>this.createReservedTurn(e,t,n,r));if(t.some(e=>!i.turn.hasAgent(e)))throw Error(`Turn ${i.turn.turnId} cannot route agents outside its immutable participant set (sessionId=${e})`);return i}async reserveTurn(e){return await this.retryRetainedCompletionsForSession(e),this.turnSlots.reserve(e)}releaseTurnReservation(e){this.turnSlots.release(e)}async acquireMessageAdmission(e,t,n,r,i){for(;;){let a=await this.acquireTurn(e,t,r,i),o=this.turnSlots.tryAdmitMessage(a.turn,n,t);if(!o)continue;let s=this.turnSlots.beginPreparation(a.turn);if(!s.isOwner)try{await s.ready}catch{await o.rollback();continue}return this.composeAdmissionWithPreparation(o,s)}}admitReservedMessage(e,t,n){let r=this.turnSlots.tryAdmitMessage(e,t,n);if(!r)throw Error(`Turn ${e.turnId} is no longer routable for message admission`);return this.composeAdmissionWithPreparation(r,this.turnSlots.beginPreparation(e))}async createReservedTurn(e,t,n,r){let{sessionId:i}=e;try{let a=await this.bus.requestOptional(C.create,{sessionId:i,...r!==void 0&&{turnId:r},...n!==void 0&&{initiator:n}}),o,s;if(a.handled)o=a.data.turn.turnId,s=a.data.turn.turnNumber;else{o=r??crypto.randomUUID();let e=(this.syntheticTurnCounters.get(i)??0)+1;this.syntheticTurnCounters.set(i,e),s=e}let c=new kr({sessionId:i,agentIds:t,turnId:o,turnNumber:s,initiator:n});return this.turnSlots.activate(e,c),this.usageAccumulators.set(c.turnId,new Ar),c}finally{this.releaseTurnReservation(e)}}async createTurn(e,t,n,r){return this.createReservedTurn(await this.reserveTurn(e),t,n,r)}discardActiveTurn(e){this.clearActiveRoutingTurn(e)&&(this.usageAccumulators.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId))}async failActiveTurnBeforeDispatch(e,t){if(this.turnSlots.getActive(e.sessionId)?.turnId!==e.turnId)return;let n={success:!1,errors:[t]};this.beginFinalization(e,n,`setup`),await this.completeTurn(e,n)}async failActiveTurnSetup(e,t){e.messageIds.length>0||e.hasPendingMessageAppends||await this.failActiveTurnBeforeDispatch(e,t)}clearActiveRoutingTurn(e){return this.turnSlots.clearActive(e)}composeAdmissionWithPreparation(e,t){return Pr(e,t,{completePreparation:e=>this.turnSlots.completePreparation(e),failPreparation:(e,t)=>this.turnSlots.failPreparation(e,t),beginSetupFailure:(e,t)=>this.beginFinalization(e.turn,t,`setup`),finalizeSetupFailure:async(e,t)=>this.completeTurn(e.turn,t),finalizeCompletedLedger:async(e,t)=>{this.beginFinalization(e.turn,t,`normal`),await this.completeTurn(e.turn,t)}})}registerCompletionHandlers(e){this.cleanups.push(...zr(this.bus,this.completionEventHooks(),e))}async completeTurn(e,t){let n=this.completionPromises.get(e.turnId);if(n)return await n;let r=this.completeTurnInternal(e,t);this.completionPromises.set(e.turnId,r);try{await r}finally{this.completionPromises.get(e.turnId)===r&&this.completionPromises.delete(e.turnId)}}async completeTurnInternal(e,t){if(this.completingTurnIds.has(e.turnId))return;this.completingTurnIds.add(e.turnId);let n=this.beginFinalization(e,t,`normal`),r=this.usageAccumulators.get(e.turnId),i=r?.snapshot(),a=this.pendingTerminalCompletions.get(e.turnId)??!1;try{if(!this.pendingTerminalCompletions.has(e.turnId)){let t=await Lr(this.bus,e,n,i,`active`);if(a=t.handled,!t.transitioned){this.clearActiveRoutingTurn(e),this.clearCompletionState(e,r);return}this.pendingTerminalCompletions.set(e.turnId,a),i=await Rr({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion})}}catch(t){throw this.completingTurnIds.delete(e.turnId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}let o=!1;try{a&&!this.setupFinalizingTurnIds.has(e.turnId)&&await this.assistantPersistenceBarrier.waitFor(e),this.closedUsageAdmissions.add(e.turnId),i=await Rr({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion});let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:n.success,error:n.errors.length>0?n.errors.join(`; `):void 0,...i!==void 0&&{usage:i},initiator:e.initiator,ingestionMarker:`live`};await me(this.bus,{type:`turn.completed`,sessionId:e.sessionId,eventId:`turn.completed:${e.turnId}`,payload:t}),o=!0,await this.bus.emit(A.turn.completed,t)}catch(t){throw o?this.clearCompletionState(e,r):this.completingTurnIds.delete(e.turnId),t}this.clearCompletionState(e,r)}async retryTurnCompletion(e){let t=this.completingTurns.get(e),n=this.pendingTerminalResults.get(e);if(t===void 0||n===void 0)throw Error(`Turn ${e} has no retryable completion`);await this.completeTurn(t,n)}async retryRetainedCompletionsForSession(e){await this.turnSlots.awaitFinalization(e,async()=>{for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.setupFinalizingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:this.completingTurnIds.has(t.turnId)||await this.retryTurnCompletion(t.turnId)}for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.pendingTerminalResults.has(t.turnId)&&!this.completingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:await this.retryTurnCompletion(t.turnId)}})}clearCompletionState(e,t){t?.clear(),this.usageAccumulators.delete(e.turnId),this.bufferedUsageDuringCompletion.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId),this.completingTurns.delete(e.turnId),this.closedUsageAdmissions.delete(e.turnId),this.completingTurnIds.delete(e.turnId),this.pendingTerminalCompletions.delete(e.turnId),this.pendingTerminalResults.delete(e.turnId),this.setupFinalizingTurnIds.delete(e.turnId),this.turnSlots.finishFinalization(e)}getActiveTurn(e){return this.turnSlots.getActive(e)}findActiveTurnByTurnId(e){return this.turnSlots.findActiveByTurnId(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnSlots.clear(),this.usageAccumulators.clear(),this.completingTurnIds.clear(),this.completionPromises.clear(),this.completingTurns.clear(),this.closedUsageAdmissions.clear(),this.pendingTerminalCompletions.clear(),this.pendingTerminalResults.clear(),this.setupFinalizingTurnIds.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear(),this.assistantPersistenceBarrier.destroy()}async recordAgentCompletion(e,t,n,r,i,a){await Br(this.bus,this.completionEventHooks(),{agentId:e,messageId:t,outcome:n,...r!==void 0&&{error:r},turnId:a,onTurnComplete:i})}completionEventHooks(){return{resolveUsageTurn:e=>this.findTurnForUsage(e),resolveCompletionTurn:e=>this.findTurnForCompletion(e),isCompletionInFlight:e=>this.completingTurnIds.has(e),addUsage:(e,t)=>this.usageAccumulators.get(e.turnId)?.add(t),bufferUsage:(e,t)=>this.bufferUsageDuringCompletion(e,t),canRetry:e=>this.pendingTerminalResults.has(e)&&!this.completingTurnIds.has(e),retry:async e=>this.retryTurnCompletion(e),beginFinalization:(e,t)=>this.beginFinalization(e,t,`normal`)}}beginFinalization(e,t,n){let r=this.pendingTerminalResults.get(e.turnId)??t;return this.completingTurns.set(e.turnId,e),this.pendingTerminalResults.set(e.turnId,r),n===`setup`&&this.setupFinalizingTurnIds.add(e.turnId),this.turnSlots.beginFinalization(e),r}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}findTurnForUsage(e){let t=this.findActiveTurnByTurnId(e);if(t!==void 0)return t;if(!this.closedUsageAdmissions.has(e))return this.completingTurns.get(e)}findTurnForCompletion(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}};async function Hr(e,t,n){let r=ge(t.adapterName),i=ge(t.adapterId);if(!r&&!i)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${n})`);if(i)return ve(e,i,r,`[SessionOrchestrator.sendMessage] (sessionId=${n}) `);if(r===void 0)throw Error(`[SessionOrchestrator.sendMessage] adapterName could not be resolved (sessionId=${n})`);return r}async function Ur(e,t,n,r,i){if(!t)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${n})`);if(t.kind===`adapter`)return t;if(t.kind===`canonical-model`)return await Wr(e,t,n,r,i);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${n})`)}async function Wr(e,t,n,r,i){let a=Ct(t.model);if(bt(a))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${t.model}" (sessionId=${n}): ${a.message}`);if(a.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${n})`);let o=await e.request(nt.resolve,{parsed:a,context:{sessionId:n,promptText:v(r),...i===void 0?{}:{sessionContext:i}}});return{...t,...o,kind:`adapter`,providerConfigId:t.providerConfigId??o.providerConfigId}}async function Gr(e,t,n){let{adapterName:r,sessionId:i,machineId:a}=n,o={adapterId:ge(t.adapterId),machineId:ge(t.machineId)},s=Me(o,{sessionId:i,errorPrefix:`[SessionOrchestrator.sendMessage] `});if(s!==void 0)throw new S(`start-failed`,s);if(o.adapterId===void 0){let t=await Ae(e,{adapterName:r,machineId:a});if(t===void 0||t.machineId===void 0||t.ownerInstanceId===void 0)throw new S(`start-failed`,`[SessionOrchestrator.sendMessage] adapter runtime did not prove a live owner for ${r} (sessionId=${i})`);return{adapterId:t.adapterId,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId}}let c=await Ae(e,{adapterName:r,adapterId:o.adapterId,...o.machineId!==void 0&&{machineId:o.machineId}});if(c?.machineId===void 0)throw new S(`start-failed`,`[SessionOrchestrator.sendMessage] agent instance resolution for ${o.adapterId} produced no machine (sessionId=${i})`);if(c.ownerInstanceId===void 0)throw new S(`start-failed`,`[SessionOrchestrator.sendMessage] agent instance resolution for ${o.adapterId} produced no owner (sessionId=${i})`);return{adapterId:c.adapterId,machineId:c.machineId,ownerInstanceId:c.ownerInstanceId}}async function Kr(e,t,n){let r=await Hr(e,t,n.sessionId),i=t.providerConfigId===void 0?void 0:We(e,{adapterName:r,providerConfigId:t.providerConfigId});i?.catch(()=>void 0);let a=await Gr(e,t,{...n,adapterName:r}),o=await i;return{adapterName:r,instance:a,providerContext:o,providerConfigId:t.providerConfigId??o?.providerConfigId}}var qr=class{bus;turnManager;adapterRegistry;machineId;cleanups=[];constructor(e=Et,t){this.bus=e,this.machineId=t,this.turnManager=new Vr(e),this.adapterRegistry=new Fn(e),this.cleanups.push(Ce(this.bus,this.turnManager,t)),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(A.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=ce(o,e.payload.extensionId),l=e.payload.sessionContext?dt.parse(e.payload.sessionContext):void 0,{sessionId:u,session:d}=await se(this.bus,t,l,e.payload.originWindowId,this.machineId),f=await p(this.bus,d);ye(`[session.sendMessage]`,u,d,r);let m=new Set(f.recoveringAgentIds),g=new Set(f.arbitratedAgentIds),_=new Set(f.deferredAgentIds);if(d.agents.length===0){let e=await this.startLeadAgent(d,u,a,n,l,{kind:`fresh`});for(let t of e.recoveringAgentIds)m.add(t);for(let t of e.arbitratedAgentIds)g.add(t);for(let t of e.deferredAgentIds)_.add(t)}let ee=le(d,r);if(ee.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${u})`);let{targetAgents:y,deferredAgentIds:ne,recoveryContext:re}=await _r({bus:this.bus,machineId:this.machineId,startReplacementLeadAgent:e=>this.startLeadAgent(d,u,e,n,l,{kind:`replace`})},{session:d,sessionId:u,targetSpec:r,agentSelection:a,message:n,sessionContext:l},ee,m,g,_),b=crypto.randomUUID(),ie=te(n),oe=await this.turnManager.acquireMessageAdmission(u,y.map(e=>e.agentId),b,c,e.payload.turnId),x=oe.turn;try{if(!(await this.bus.requestOptional(E.append,{message:{messageId:b,turnId:x.turnId,sessionId:u,role:`user`,contentText:v(n),blocks:ie,timestamp:Date.now(),...s!==void 0&&{origin:s}}})).handled)throw Error(`Message storage append handler is not registered`);oe.isPreparationOwner&&await Le(this.bus,{sessionId:u,turnId:x.turnId,turnNumber:x.turnNumber,messageId:b,agentIds:[...x.agentIds],initiator:x.initiator,ingestionMarker:`live`}),await ae(this.bus,{sessionId:u,turnId:x.turnId,turnNumber:x.turnNumber,messageId:b,content:n,agentIds:y.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}}),oe.commit()}catch(e){try{await oe.rollback(`user-message-persistence-failed`)}catch(e){console.error(`[SessionOrchestrator] Failed to finalize rejected message setup:`,e)}throw e}for(let e of y)this.bus.requestOptional(H.record,{messageId:b,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:u,messageId:b,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});let ue=re?{...l,...re}:l;await h(this.bus,d,y,n,b,x,i,this.completeTurn.bind(this),this.turnManager,ue,e.payload.responseSchema),e.setResult({messageId:b,turnId:x.turnId,sessionId:u,...ne.size>0&&{deferredAgentIds:[...ne]}})}))}async startLeadAgent(e,t,n,r,i,a){let o=await Ur(this.bus,n,t,r,i),{adapterName:s,instance:c,providerContext:l,providerConfigId:u}=await Kr(this.bus,o,{sessionId:t,machineId:this.machineId,registry:this.adapterRegistry}),d=await Dr(this.bus,{sessionId:t,instance:c,adapterName:s,leadTransition:a,expectedLeadAgentId:e.leadAgentId??null,...u!==void 0&&{providerConfigId:u},startRequest:Te(o,{adapterId:c.adapterId,sessionId:t,providerContext:l,sessionContext:i})});if(d.outcome===`started`)return e.agents.push(d.agent),e.leadAgentId=d.agent.agentId,{droppedAgentIds:new Set,recoveringAgentIds:new Set,deferredAgentIds:new Set,arbitratedAgentIds:new Set};let{session:f}=await this.bus.request(A.get,{sessionId:t});if(!f||f.agents.length===0)throw new S(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${d.currentLeadAgentId??`another start`}, which left no agent behind`);e.agents=f.agents,e.leadAgentId=f.leadAgentId;let m=await p(this.bus,e);if(e.agents.length===0)throw new S(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${d.currentLeadAgentId??`another start`}, whose agent did not survive its start`);return m}async completeTurn(e,t){await this.turnManager.completeTurn(e,t)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnManager.destroy(),this.adapterRegistry.destroy()}},Jr=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(E.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof Dt||console.warn(`[TurnContextEnricher] Failed to load turn-so-far context:`,e),[]}}async enrichForDeliveryMode(e,t,n){if(n!==`immediate`)return e;let r=await this.getTurnSoFarContext(t);return r.length===0?e:[...e??[],...r]}convertSessionMessagesToMessages(e){return e.map(e=>({role:e.role,blocks:e.blocks}))}};function Yr(e){let{bus:t}=e;return t.on(A.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(T.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function Xr(e){let{bus:t}=e;return t.on(A.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(T.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}let i=await t.requestOptional(T.update,{sessionId:n,status:`active`,lastActivityAt:Date.now(),expectedStatus:[`closed`]});if(i.handled&&i.data.success){await t.emit(A.resumed,{sessionId:n}),e.setResult({success:!0});return}let a=await t.requestOptional(T.get,{sessionId:n});e.setResult({success:a.handled&&a.data.session?.status===`active`})})}function Zr(e){return e.on(Ge.listActions,e=>{let t=ze.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const Qr=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function $r(e){return{...e.cwd!==void 0&&{cwd:e.cwd},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools}}}var ei=class{bus;agentToSession=new Map;pendingAssistantResponses=new Map;cleanups=[];constructor(e=Et){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(A.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(A.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&this.agentToSession.delete(t);for(let[t,n]of this.pendingAssistantResponses)n.sessionId===e.payload.sessionId&&this.pendingAssistantResponses.delete(t)}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(A.turn.started,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.has(i)||this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(A.user_message.sent,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(A.user_message.acknowledged,e=>{let t=this.pendingKey(e.payload.turnId,e.payload.messageId,e.payload.agentId);this.pendingAssistantResponses.has(t)||this.pendingAssistantResponses.set(t,{sessionId:e.payload.sessionId,turnId:e.payload.turnId,messageId:e.payload.messageId,agentId:e.payload.agentId,blocks:[]})})),this.cleanups.push(this.bus.on(A.turn.assistantPersistenceSettled,e=>{let{turnId:t,messageId:n,agentId:r}=e.payload;this.pendingAssistantResponses.delete(this.pendingKey(t,n,r))})),this.cleanups.push(this.bus.on(A.turn.completed,e=>{let{sessionId:t,turnId:n}=e.payload;for(let[e,r]of this.pendingAssistantResponses)r.sessionId===t&&r.turnId===n&&this.pendingAssistantResponses.delete(e)}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(O.message,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(O.reasoning,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(O.tool.use,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(O.tool.completed,e=>{let t=this.pendingForProviderEvent(e.payload);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.blocks.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(O.complete,async e=>{if(e.payload._import){let{turnId:t,messageId:n,agentId:r}=e.payload;t&&this.pendingAssistantResponses.delete(this.pendingKey(t,n,r));return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o,turnId:s,messageId:c}=e.payload;if(!s)return;let l=this.pendingKey(s,c,t),u=this.pendingAssistantResponses.get(l);if(u){this.pendingAssistantResponses.delete(l);try{await this.storeAssistantMessage(u,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}finally{await this.bus.emit(A.turn.assistantPersistenceSettled,{sessionId:u.sessionId,turnId:u.turnId,agentId:t,messageId:u.messageId})}}}))}async storeAssistantMessage(e,t,n,r){let i=r===void 0?e.blocks:r.content===void 0?[]:[{type:`text`,content:r.content}];if(i.length===0&&!n)return;let a=i.filter(e=>e.type===`text`).map(e=>e.content).join(`
2
- `),o=crypto.randomUUID();try{if(!(await this.bus.requestOptional(E.append,{message:{messageId:o,turnId:e.turnId,sessionId:e.sessionId,role:`assistant`,contentText:a||(n?`[Error: ${n}]`:``),blocks:i,agentId:e.agentId,adapterSessionId:t,timestamp:Date.now()}})).handled)return;let r=await this.bus.requestOptional(E.getByTurn,{turnId:e.turnId});if(r.handled){let t=r.data.messages.find(t=>t.role===`user`&&t.messageId===e.messageId);t&&await this.bus.requestOptional(H.record,{messageId:t.messageId,agentId:e.agentId,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.pendingAssistantResponses.clear()}pendingForProviderEvent(e){if(!(!e.turnId||!e.messageId))return this.pendingAssistantResponses.get(this.pendingKey(e.turnId,e.messageId,e.agentId))}pendingKey(e,t,n){return JSON.stringify([e,t,n])}},ti=class{bus;_sessionId;_extensionId;_turnId;_parentSessionId;contextTracker;contextContributions=new Map;constructor(e,t,n,r,i,a){this.bus=e,this._sessionId=t,this._extensionId=n,this._turnId=r,this._parentSessionId=i,this.contextTracker=a}get sessionId(){return this._sessionId}get turnId(){return this._turnId}get parentSessionId(){return this._parentSessionId}get extensionId(){return this._extensionId}async sendToAgent(e,t){await this.bus.request(A.sendMessage,{sessionId:this._sessionId,agentIds:[e],message:t,source:`extension`,extensionId:this._extensionId})}contributeContext(e,t){this.contextContributions.set(e,t)}getContributions(){return Object.fromEntries(this.contextContributions)}async fork(e){return(await this.bus.request(A.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(A.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(A.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(A.compressionRequested,{sessionId:this._sessionId,reason:e,source:`extension`,extensionId:this._extensionId})}async getContextWindowState(){if(this.contextTracker){let e=this.contextTracker.getSessionState(this._sessionId);if(e)return{currentTokens:e.currentTokens,maxTokens:e.maxTokens,percentage:e.percentage,level:e.level}}let{session:e}=await this.bus.request(A.get,{sessionId:this._sessionId});return!e||e.agents.length===0?{currentTokens:0,maxTokens:1,percentage:0,level:`ok`}:{currentTokens:0,maxTokens:2e5,percentage:0,level:`ok`}}async getChildSessions(){return(await this.bus.request(A.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function ni(e,t,n,r,i,a){return new ti(e,t,n,r,i,a)}const ri=l.postgres,ii=r.postgres,ai=a.postgres,oi=s.postgres,si=t.postgres,G=Vt({sessions:c,agents:n,runtimeInstanceIncarnationCounters:i,runtimeInstances:o,adapterSessionClaims:e},{sessions:ri,agents:ii,runtimeInstanceIncarnationCounters:ai,runtimeInstances:oi,adapterSessionClaims:si});function ci(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return F(n===null?z(t.clientId):L(t.clientId,n),r===null?z(t.clientAccountId):L(t.clientAccountId,r),i===null?z(t.lastClientIdentityObservation):L(t.lastClientIdentityObservation,i))}function li(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,...e.ownerMachineId!==null&&e.ownerInstanceId!==null?{runtimeOwner:{machineId:e.ownerMachineId,instanceId:e.ownerInstanceId}}:{},...e.recoveryAttemptId===null?{}:{recoveryAttemptId:e.recoveryAttemptId},role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0,allowedDirectories:e.allowedDirectories??void 0,providerConfigId:e.providerConfigId??void 0,personaId:e.personaId??void 0,profileId:e.profileId??void 0,harnessId:e.harnessId??void 0,clientId:e.clientId??void 0,compressionMode:e.compressionMode?at.parse(e.compressionMode):void 0,currentAdapterSessionId:e.currentAdapterSessionId??void 0,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function ui(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,ownerMachineId:e.runtimeOwner?.machineId??null,ownerInstanceId:e.runtimeOwner?.instanceId??null,recoveryAttemptId:e.recoveryAttemptId??null,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??null,adapterSessionId:e.adapterSessionId??null,cwd:e.cwd??null,allowedDirectories:e.allowedDirectories??null,providerConfigId:e.providerConfigId??null,personaId:e.personaId??null,profileId:e.profileId??null,harnessId:e.harnessId??null,clientId:e.clientId??null,compressionMode:e.compressionMode??null}}function di(e,t){let{adapterSessionId:n,ownerMachineId:r,ownerInstanceId:i,recoveryAttemptId:a,status:o,...s}=e;return{...s,status:B`CASE WHEN ${t.status} = 'disposed' THEN ${t.status} ELSE excluded.status END`}}function fi(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function pi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.get,async e=>{let[t]=await n.select().from(r).where(L(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?li(t):null})})}function mi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.set,async e=>{let{agent:t}=e.payload,i=ui(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:di(i,r)});e.setResult({success:M(a)})})}function hi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.delete,async e=>{let t=await n.delete(r).where(L(r.agentId,e.payload.agentId));e.setResult({success:M(t)})})}function gi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[L(r.adapterName,t)];i&&i!==`all`&&a.push(L(r.status,i));let o=a.length>1?F(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(li)})})}function _i(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(L(r.sessionId,t));e.setResult({agents:i.map(li)})})}function vi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.updateStatus,async e=>{let{agentId:t,status:i,expectedStatus:a}=e.payload,o=Date.now(),s=[L(r.agentId,t),$t(r.status,`disposed`)];if(a&&s.push(R(r.status,a)),M(await n.update(r).set({status:i,lastActivityAt:o}).where(F(...s)))){e.setResult({success:!0,transitioned:!0});return}let[c]=await n.select({agentId:r.agentId}).from(r).where(L(r.agentId,t)).limit(1);e.setResult({success:c!==void 0,transitioned:!1})})}function yi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(L(r.agentId,t));e.setResult({success:M(a)})})}function bi(e){let{bus:t,db:n}=e,{agents:r}=P(n,G);return t.on(w.updateRuntime,async e=>{let{agentId:t,adapterId:i,runtimeOwner:a,adapterSessionId:o,cwd:s,model:c,allowedDirectories:l,providerConfigId:u}=e.payload,d={lastActivityAt:Date.now()};i!==void 0&&(d.adapterId=i),a!==void 0&&(d.ownerMachineId=a.machineId,d.ownerInstanceId=a.instanceId),o!==void 0&&(d.adapterSessionId=o),s!==void 0&&(d.cwd=s),c!==void 0&&(d.model=c),l!==void 0&&(d.allowedDirectories=l),u!==void 0&&(d.providerConfigId=u);let f=await n.update(r).set(d).where(L(r.agentId,t));e.setResult({success:M(f)})})}function xi(e,t){let n={bus:e,db:t},r=[pi(n),mi(n),hi(n),gi(n),_i(n),vi(n),yi(n),bi(n)];return()=>fi(r)}function K(e){return e??void 0}function Si(e){if(e)try{let t=JSON.parse(e),n=rn.safeParse(t);return n.success?n.data:void 0}catch{return}}function Ci(e){if(e)try{let t=JSON.parse(e),n=st.safeParse(t);return n.success?n.data:void 0}catch{return}}function q(e,t){let n=Ci(e.forkTransforms),r=Si(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:K(e.leadAgentId),parentSessionId:K(e.parentSessionId),contextInheritance:K(e.contextInheritance),rootSessionId:K(e.rootSessionId),forkPointMessageId:K(e.forkPointMessageId),branchKind:K(e.branchKind),adapterName:K(e.adapterName),adapterSessionId:K(e.adapterSessionId),currentAdapterSessionId:K(e.currentAdapterSessionId),currentAdapterSessionIdState:e.currentAdapterSessionIdState,adapterId:K(e.adapterId),clientId:K(e.clientId),clientAccountId:K(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:K(e.isOrchestrated),isImported:K(e.isImported),title:K(e.title),summary:K(e.summary),summaryUpdatedAt:K(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:K(e.targetWorkingDirectory),executionTargetId:K(e.executionTargetId),agents:t.map(li),approvalPolicyOverride:K(e.approvalPolicyOverride),metadata:K(e.metadata),spawningToolCallId:K(e.spawningToolCallId),source:K(e.source),parentExternalSessionId:K(e.parentExternalSessionId),logFilePath:K(e.logFilePath),discoveredAt:K(e.discoveredAt),importStatus:K(e.importStatus),isSidechain:K(e.isSidechain),machineId:K(e.machineId)}}function wi(e){let t=new Map;for(let n of e){let e=t.get(n.sessionId)??[];e.push(n),t.set(n.sessionId,e)}return t}async function Ti(e,t,n){if(!n||t.length===0)return{};let{messages:r}=P(e,f),i=e.select({sessionId:r.sessionId,minTimestamp:B`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(F(L(r.role,`user`),R(r.sessionId,t))).groupBy(r.sessionId).as(`first_user_message_by_session`),a=await e.select({sessionId:r.sessionId,preview:r.contentText}).from(r).innerJoin(i,F(L(r.sessionId,i.sessionId),L(r.timestamp,i.minTimestamp))).where(L(r.role,`user`)),o=new Map;for(let e of a)o.has(e.sessionId)||o.set(e.sessionId,e.preview);let s=await e.select({sessionId:r.sessionId,count:I()}).from(r).where(R(r.sessionId,t)).groupBy(r.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);return{previewBySession:o,countBySession:c}}function Ei(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function Di(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function Oi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,G);return t.on(T.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a,adapterName:o}=e.payload,s=[L(r.adapterSessionId,t)];a!==void 0&&s.push(L(r.source,a)),o!==void 0&&s.push(L(r.adapterName,o));let c=await n.select().from(r).where(F(...s)).limit(2),l=c[0];if(c.length!==1||l===void 0){e.setResult({session:null});return}let u=await n.select().from(i).where(L(i.sessionId,l.sessionId));e.setResult({session:q(l,u)})})}function ki(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G),{messages:i}=P(n,f);return t.on(T.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(L(r.parentSessionId,t));if(a.length===0){e.setResult({children:[]});return}let o=a.map(e=>e.sessionId),s=await n.select({sessionId:i.sessionId,count:I()}).from(i).where(R(i.sessionId,o)).groupBy(i.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);let l=await n.select({parentSessionId:r.parentSessionId,count:I()}).from(r).where(R(r.parentSessionId,o)).groupBy(r.parentSessionId),u=new Set;for(let e of l)e.parentSessionId&&u.add(e.parentSessionId);let d=a.map(e=>e.forkPointMessageId).filter(e=>e!==null),f=new Map;if(d.length>0){let e=await n.select({messageId:i.messageId,adapterMessageId:i.adapterMessageId}).from(i).where(F(L(i.sessionId,t),R(i.adapterMessageId,d)));for(let t of e)t.adapterMessageId&&f.set(t.adapterMessageId,t.messageId)}let p=a.map(e=>{let t=e.forkPointMessageId,n=t?f.get(t)??t:null;return{sessionId:e.sessionId,title:e.title??null,forkPointMessageId:n,branchKind:e.branchKind??null,messageCount:c.get(e.sessionId)??0,hasChildren:u.has(e.sessionId),spawningToolCallId:e.spawningToolCallId??void 0}});e.setResult({children:p})})}function Ai(e){return{...e.cwd===void 0?{}:{targetWorkingDirectory:e.cwd},...e.logFilePath===void 0?{}:{logFilePath:e.logFilePath},...e.machineId===void 0?{}:{machineId:e.machineId}}}function ji(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G);return t.on(T.rebindObserved,async e=>{let i=e.payload,a=F(L(r.source,i.source),L(r.adapterSessionId,i.externalSessionId)),o=Ai(i),s=Object.keys(o),[c]=s.length===0?await n.select({sessionId:r.sessionId}).from(r).where(a).limit(1):await n.update(r).set(o).where(a).returning({sessionId:r.sessionId});if(!c){e.setResult({outcome:`not-found`});return}e.setResult({outcome:`rebound`,sessionId:c.sessionId}),s.length>0&&t.emit(A.updated,{sessionId:c.sessionId,changedProperties:s}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}const Mi=Qe();function Ni(e){return e?JSON.stringify(e):null}function Pi(e,t){return B`
3
- SELECT ${t}.key AS key,
4
- CASE ${t}.type
5
- WHEN 'object' THEN ${t}.value
6
- WHEN 'array' THEN ${t}.value
7
- WHEN 'true' THEN 'true'
8
- WHEN 'false' THEN 'false'
9
- WHEN 'null' THEN 'null'
10
- WHEN 'text' THEN json_quote(${t}.value)
11
- ELSE CAST(${t}.value AS TEXT)
12
- END AS vjson
13
- FROM json_each(${e}) AS ${t}
14
- `}function Fi(e,t){let n=t===`postgres`?B`excluded.metadata || ${e.metadata}`:B`(
15
- SELECT json_group_object(mk.key, json(mk.vjson)) FROM (
16
- ${Pi(B`excluded.metadata`,B`inc`)}
17
- WHERE inc.key NOT IN (SELECT ex2.key FROM json_each(${e.metadata}) AS ex2)
18
- UNION ALL
19
- ${Pi(B`${e.metadata}`,B`ex`)}
20
- ) AS mk
21
- )`;return B`
22
- CASE
23
- WHEN ${e.metadata} IS NULL THEN excluded.metadata
24
- WHEN excluded.metadata IS NULL THEN ${e.metadata}
25
- ELSE ${n}
26
- END
27
- `}function Ii(e,t,n){return t===void 0?B`${e}`:B`
28
- CASE
29
- WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
30
- ELSE ${e}
31
- END
32
- `}function Li(e){return B`
33
- CASE
34
- WHEN ${e.importStatus} = 'imported' OR excluded.import_status = 'imported' THEN 'imported'
35
- WHEN ${e.importStatus} = 'tracking' OR excluded.import_status = 'tracking' THEN 'tracking'
36
- ELSE COALESCE(${e.importStatus}, excluded.import_status, 'discovered')
37
- END
38
- `}function Ri(e,t){return t===`live`?B`
39
- CASE
40
- WHEN ${e.status} = 'discovered' THEN 'active'
41
- ELSE ${e.status}
42
- END
43
- `:B`
44
- CASE
45
- WHEN ${e.status} IN ('closed', 'archived') THEN ${e.status}
46
- WHEN ${e.status} = 'active' AND ${e.isImported} = TRUE THEN ${e.status}
47
- WHEN ${Li(e)} = 'discovered' THEN excluded.status
48
- ELSE ${e.status}
49
- END
50
- `}function zi(e,t,n,r,i){return{status:Ri(e,i),isImported:!0,importStatus:Li(e),adapterName:B`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:B`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:B`COALESCE(${e.source}, excluded.source)`,logFilePath:B`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:B`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:B`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:B`COALESCE(${e.forkPointMessageId}, excluded.fork_point_message_id)`,parentExternalSessionId:B`COALESCE(${e.parentExternalSessionId}, excluded.parent_external_session_id)`,branchKind:B`COALESCE(${e.branchKind}, excluded.branch_kind)`,adapterId:B`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:B`COALESCE(excluded.client_id, ${e.clientId})`,isSidechain:B`COALESCE(excluded.is_sidechain, ${e.isSidechain})`,lastClientIdentityObservation:B`COALESCE(excluded.last_client_identity_observation, ${e.lastClientIdentityObservation})`,machineId:r===void 0?B`${e.machineId}`:r===null?B`NULL`:B`COALESCE(${e.machineId}, excluded.machine_id)`,metadata:Fi(e,n),createdAt:Ii(e.createdAt,t,e),lastActivityAt:Ii(e.lastActivityAt,t,e)}}function Bi(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G),{dialect:i}=Ut(n);return t.on(T.importUpsert,async e=>{let a=e.payload,{externalSessionId:o,source:s,clientId:c,adapterId:l,cwd:u,logFilePath:d,startedAt:f,title:p,kind:m,parentAdapterSessionId:h,forkPointMessageId:g,metadata:_,lastClientIdentityObservation:v,importStatus:ee,isSidechain:y,machineId:te,activation:ne}=a,re=Mi(),b=crypto.randomUUID(),ie=f??re,ae=qe(m)??null,oe=h??null,[se]=await n.insert(r).values({sessionId:b,status:Ze(a),isImported:!0,importStatus:ee??`discovered`,adapterName:s,adapterSessionId:o,source:s??null,clientId:c??null,adapterId:l??null,targetWorkingDirectory:u??null,logFilePath:d??null,forkPointMessageId:g??null,branchKind:ae,parentExternalSessionId:oe,discoveredAt:re,title:p??null,metadata:_??null,lastClientIdentityObservation:Ni(v),isSidechain:y??null,machineId:te??null,createdAt:ie,lastActivityAt:ie}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:zi(r,f,i,te,ne)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),ce=se.sessionId===b;await Vi(t,n,se,ce,ae,ie,s),e.setResult({sessionId:se.sessionId,created:ce})})}async function Vi(e,t,n,r,i,a,o){if(r){let r=await Hi(t,n.sessionId,n.parentExternalSessionId,o);e.emit(A.created,{sessionId:n.sessionId,parentSessionId:r,branchKind:i,createdAt:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e))}else n.parentExternalSessionId!==null&&n.parentSessionId===null&&await Hi(t,n.sessionId,n.parentExternalSessionId,o),e.emit(A.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function Hi(e,t,n,r){let{sessions:i}=P(e,G);if(n===null||r===void 0)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(F(L(i.adapterSessionId,n),L(i.source,r))).limit(1);if(!a)return null;let o=a.rootSessionId??a.sessionId;return await e.update(i).set({parentSessionId:a.sessionId,rootSessionId:o}).where(L(i.sessionId,t)),a.sessionId}function Ui(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,G);return t.on(T.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(L(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(L(i.sessionId,a.sessionId));e.setResult({session:q(a,o)})})}function Wi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,G);return t.on(T.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[L(r.isImported,!0)];t!==void 0&&o.push(L(r.source,t)),a!==void 0&&o.push(L(r.importStatus,a));let s=F(...o),c=await n.select().from(r).where(s).orderBy(qt(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=wi(await n.select().from(i).where(R(i.sessionId,l)));e.setResult({sessions:c.map(e=>q(e,u.get(e.sessionId)??[]))})})}function Gi(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G);return t.on(T.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:B`count(*)`}).from(r).where(F(L(r.isImported,!0),L(r.source,t))).groupBy(r.importStatus),a=0,o=0,s=0,c=0;for(let e of i){let t=Number(e.count);a+=t,e.importStatus===`imported`&&(o+=t),e.importStatus===`tracking`&&(s+=t),e.importStatus===`discovered`&&(c=t)}e.setResult({total:a,imported:o,tracking:s,discovered:c})})}function Ki(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G);return t.on(T.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:B`
51
- CASE
52
- WHEN ${r.status} = 'discovered' THEN 'active'
53
- ELSE ${r.status}
54
- END
55
- `}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(F(L(r.sessionId,i),tn(z(r.importStatus),B`${r.importStatus} <> ${a}`))).returning({adapterSessionId:r.adapterSessionId,adapterName:r.adapterName,source:r.source}),c=s!==void 0;if(e.setResult({success:c}),c){t.emit(A.importStatusChanged,{sessionId:i,importStatus:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let e=s.source??s.adapterName;a===`imported`&&s.adapterSessionId&&e&&t.emit(A.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function qi(e,t){let n={bus:e,db:t};return[Bi(n),ji(n),Ui(n),Wi(n),Gi(n),Ki(n)]}function Ji(e){let t=e.reconcileAdapterSession;if(t!==void 0)return{adapterName:t.adapterName,adapterId:t.adapterId,adapterSessionId:t.adapterSessionId,lastActivityAt:t.lastActivityAt};let n=e.identity;return n===void 0?{}:{adapterName:n.adapterName,adapterId:n.adapterId,...n.adapterSessionId===void 0?{}:{adapterSessionId:n.adapterSessionId}}}function Yi(e,t){let n=e.expectIdentityOpenForLead,r=e.reconcileAdapterSession;return{status:e.expectedStatus===void 0?void 0:R(t.status,e.expectedStatus),identity:n===void 0?void 0:F(z(t.adapterName),z(t.adapterId),n===null?z(t.leadAgentId):L(t.leadAgentId,n)),reconciliation:r===void 0?void 0:F(z(t.adapterSessionId),L(t.leadAgentId,r.agentId),tn(F(z(t.adapterName),z(t.adapterId)),F(L(t.adapterName,r.adapterName),L(t.adapterId,r.adapterId))))}}function J(e){return e??null}function Xi(e){return e?JSON.stringify(e):null}function Zi(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:J(e.leadAgentId),parentSessionId:J(e.parentSessionId),contextInheritance:J(e.contextInheritance),rootSessionId:J(e.rootSessionId),forkPointMessageId:J(e.forkPointMessageId),branchKind:J(e.branchKind),adapterName:J(e.adapterName),adapterSessionId:J(e.adapterSessionId),adapterId:J(e.adapterId),clientId:J(e.clientId),clientAccountId:J(e.clientAccountId),lastClientIdentityObservation:$i(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:J(e.title),summary:J(e.summary),summaryUpdatedAt:J(e.summaryUpdatedAt),forkTransforms:Xi(e.forkTransforms),targetWorkingDirectory:J(e.targetWorkingDirectory),executionTargetId:J(e.executionTargetId),approvalPolicyOverride:J(e.approvalPolicyOverride),metadata:J(e.metadata),spawningToolCallId:J(e.spawningToolCallId),source:J(e.source),parentExternalSessionId:J(e.parentExternalSessionId),logFilePath:J(e.logFilePath),discoveredAt:J(e.discoveredAt),importStatus:J(e.importStatus),machineId:J(e.machineId)}}function Qi(e){let{leadAgentId:t,...n}=e;return n}function $i(e){return e?JSON.stringify(e):null}function Y(e,t,n){n!==void 0&&(e[t]=n)}function ea(e,t,n){n!==void 0&&(e[t]=n??null)}function ta(e,t){let n={};return Y(n,`status`,e.status),ea(n,`parentSessionId`,e.parentSessionId),Y(n,`contextInheritance`,e.contextInheritance),Y(n,`rootSessionId`,e.rootSessionId),Y(n,`forkPointMessageId`,e.forkPointMessageId),Y(n,`branchKind`,e.branchKind),Y(n,`isOrchestrated`,e.isOrchestrated),Y(n,`clientId`,e.clientId),Y(n,`clientAccountId`,e.clientAccountId),Y(n,`title`,e.title),Y(n,`targetWorkingDirectory`,e.targetWorkingDirectory),Y(n,`createdAt`,e.createdAt),Y(n,`lastActivityAt`,e.lastActivityAt),Y(n,`machineId`,e.machineId),Object.assign(n,Ji(e)),ea(n,`executionTargetId`,e.executionTargetId),ea(n,`approvalPolicyOverride`,e.approvalPolicyOverride),ea(n,`metadata`,e.metadata),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=B`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=$i(e.lastClientIdentityObservation)),n}function na(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,G);return t.on(T.get,async e=>{let[t]=await n.select().from(r).where(L(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(L(i.sessionId,e.payload.sessionId));e.setResult({session:q(t,a)})})}function ra(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G);return t.on(T.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=ht.parse(e.payload),s=Zi(a);if(o){$e(null,a);let o=M(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&Je(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(L(r.sessionId,i)).limit(1),c=o?q(o,[]):null;if($e(c,a),M(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:Qi(s),setWhere:ci(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),Je(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function ia(e){let{bus:t,db:n}=e,{sessions:r,agents:i,adapterSessionClaims:a}=P(n,G);return t.on(T.delete,async e=>{let{sessionId:t}=e.payload;await N(n,async e=>{await e.delete(i).where(L(i.sessionId,t)),await e.delete(a).where(L(a.sessionId,t)),await e.delete(r).where(L(r.sessionId,t))}),e.setResult({success:!0})})}function aa(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G);return t.on(T.update,async e=>{let i=gt.request.parse(e.payload),{sessionId:a}=i,o=ta(i,r),s=Di(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}let{status:c,identity:l,reconciliation:u}=Yi(i,r);if(!s){let t=await n.update(r).set(o).where(F(L(r.sessionId,a),c,l,u));e.setResult({success:M(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(L(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let d=q(s,[]),f=Ei(d,i);if($e(d,f),i.expectedStatus!==void 0&&!i.expectedStatus.includes(d.status)){e.setResult({success:!1,clientAccountChanged:!1});return}if(Ke(d,i)){e.setResult({success:!1,clientAccountChanged:!1});return}if(Ye(d,i)){e.setResult({success:!1,clientAccountChanged:!1});return}if(M(await n.update(r).set(o).where(F(L(r.sessionId,a),c,l,u,ci(s,r))))){e.setResult({success:!0,clientAccountChanged:(d.clientAccountId??null)!==(f.clientAccountId??null)}),Je(t,d,f);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function oa(e,t){let n=[];return e.status!==`all`&&n.push(L(t.status,e.status)),e.executionTargetId!==void 0&&n.push(L(t.executionTargetId,e.executionTargetId)),F(...n)}function sa(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,G);return t.on(T.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=oa({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(qt(r.lastActivityAt)):await u.orderBy(qt(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:I()}).from(r).where(l):n.select({count:I()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=wi(await n.select().from(i).where(R(i.sessionId,m))),{previewBySession:g,countBySession:_}=await Ti(n,m,s),v=d.map(e=>{let t=q(e,h.get(e.sessionId)??[]);return s&&g&&_?{...t,preview:{messageCount:_.get(e.sessionId)??0,firstUserMessage:g.get(e.sessionId)??null}}:t});e.setResult({sessions:v,total:p})})}function ca(e){let{bus:t,db:n}=e,{sessions:r}=P(n,G);return t.on(T.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:I()}).from(r).groupBy(r.status),i=0,a=0,o=0,s=0;for(let e of t)e.status===`active`?i=e.count:e.status===`closed`?a=e.count:e.status===`archived`?o=e.count:e.status===`discovered`&&(s=e.count);let c=i+a+o+s;e.setResult({all:c,active:i,closed:a,archived:o,discovered:s})})}function la(e,t){let n={bus:e,db:t},r=[na(n),ra(n),ia(n),aa(n),sa(n),ki(n),Oi(n),ca(n),...qi(e,t)];return()=>r.forEach(e=>e())}var X=class extends Error{result;constructor(e){super(`session ownership claim rolled back: ${e.outcome}`),this.name=`ClaimRollbackSignal`,this.result=e}};async function ua(e,t,n){let{agents:r}=t,[i]=await e.update(r).set({currencyFence:r.currencyFence}).where(L(r.agentId,n)).returning();return i}function Z(e){return B`cast(${e} as text)`}function da(e){return B`cast(${e} as bigint)`}function fa(e){return B`cast(${e} as integer)`}async function pa(e,t,n,r){let{runtimeInstanceIncarnationCounters:i,runtimeInstances:a}=t,[o]=await e.insert(i).values({machineId:n.machineId,lastAllocatedIncarnation:0}).onConflictDoUpdate({target:i.machineId,set:{lastAllocatedIncarnation:i.lastAllocatedIncarnation}}).returning({machineId:i.machineId});if(o===void 0)throw Error(`runtime incarnation allocation returned no counter for ${n.machineId}`);let[s]=await e.select().from(a).where(F(L(a.instanceId,n.instanceId),L(a.machineId,n.machineId))).limit(1);if(s!==void 0)return{instance:s,inserted:!1};let[c]=await e.update(i).set({lastAllocatedIncarnation:B`${i.lastAllocatedIncarnation} + 1`}).where(L(i.machineId,n.machineId)).returning({incarnation:i.lastAllocatedIncarnation});if(c===void 0)throw Error(`runtime incarnation counter disappeared while allocating for ${o.machineId}`);let[l]=await e.insert(a).values({instanceId:n.instanceId,machineId:n.machineId,incarnation:c.incarnation,startedAt:r,retiredAt:null}).onConflictDoNothing({target:[a.instanceId,a.machineId]}).returning();if(l!==void 0)return{instance:l,inserted:!0};let[u]=await e.select().from(a).where(F(L(a.instanceId,n.instanceId),L(a.machineId,n.machineId))).limit(1);if(u!==void 0)return{instance:u,inserted:!1};throw Error(`runtime instance ${n.instanceId}/${n.machineId} was neither inserted nor found`)}function ma(e,t){return B`(case when ${e} > ${t} then ${e} else ${t} end)`}function ha(e,t){let{adapterSessionClaims:n}=e;return B`coalesce((select max(${n.fence}) from ${n}
56
- where ${L(n.agentId,t)}), 0)`}function ga(e,t){let{agents:n}=e;return B`coalesce((select ${n.currencyFence} from ${n}
57
- where ${L(n.agentId,t)}), 0)`}function _a(e,t,n){return B`1 + ${ma(n,ha(e,t))}`}function va(e,t,n){return _a(e,t,ma(fa(n),ga(e,t)))}function Q(e){return{claimId:e.claimId,machineId:e.machineId,adapterId:e.adapterId,adapterName:e.adapterName,providerSessionId:e.providerSessionId,sessionId:e.sessionId,agentId:e.agentId,ownerInstanceId:e.ownerInstanceId,claimToken:e.claimToken,fence:e.fence,status:e.status,claimedAt:e.claimedAt,updatedAt:e.updatedAt}}function ya(e){return{instanceId:e.instanceId,machineId:e.machineId,incarnation:e.incarnation,startedAt:e.startedAt,retiredAt:e.retiredAt}}function ba(e,t){let{runtimeInstances:n}=P(t,G);return[e.on(k.retireInstance,async e=>{let r=await t.update(n).set({retiredAt:Date.now()}).where(F(L(n.instanceId,e.payload.instanceId),z(n.retiredAt))).returning({machineId:n.machineId});e.setResult({retiredMachines:r.length})}),e.on(k.getRuntimeInstance,async e=>{let[r]=await t.select().from(n).where(F(L(n.instanceId,e.payload.instanceId),L(n.machineId,e.payload.machineId))).limit(1);e.setResult({instance:r===void 0?null:ya(r)})})]}function xa(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState}}function Sa(e,t,n,r){let{agents:i}=e;return B`exists (select 1 from ${i} where ${F(L(i.agentId,t),L(i.sessionId,n),...r===`live`?[$t(i.status,`disposed`)]:[])})`}function Ca(e,t,n,r){let{agents:i,sessions:a}=e,o={claimId:Z(n),machineId:Z(t.machineId),adapterId:Z(t.adapterId),adapterName:Z(t.adapterName),providerSessionId:Z(t.providerSessionId),sessionId:Z(t.sessionId),agentId:Z(t.agentId),ownerInstanceId:Z(t.ownerInstanceId),claimToken:Z(t.claimToken),fence:_a(e,t.agentId,B`${i.currencyFence}`),status:Z(`held`),claimedAt:da(r),updatedAt:da(r)};return B`select ${B.join(Object.values(o),B`, `)} from ${i}
58
- where ${L(i.agentId,t.agentId)}
59
- and ${L(i.sessionId,t.sessionId)}
60
- and ${$t(i.status,`disposed`)}
61
- and exists (select 1 from ${a} where ${L(a.sessionId,t.sessionId)})`}function wa(e,t){let{agents:n,sessions:r}=e,i=L(n.agentId,t),a=e=>B`(select ${e} from ${n} where ${i})`,o=a(B`${n.currentAdapterSessionIdState}`),s=a(B`${n.currentAdapterSessionId}`),c=a(B`${n.adapterSessionId}`),l=B`${r.adapterSessionId}`,u=B`(${c} = ${l} or (${c} is null and ${l} is null))`;return{currentAdapterSessionId:B`(case
62
- when ${o} <> 'inherited' then ${s}
63
- when ${u} then null
64
- when ${c} is null then null
65
- else ${c} end)`,currentAdapterSessionIdState:B`(case
66
- when ${o} <> 'inherited' then ${o}
67
- when ${u} then ${Z(`inherited`)}
68
- when ${c} is null then ${Z(`moved`)}
69
- else ${Z(`confirmed`)} end)`}}function Ta(e,t){let{adapterSessionClaims:n}=e,r=[L(n.machineId,t.machineId)];return t.adapterId!==void 0&&r.push(L(n.adapterId,t.adapterId)),t.providerSessionId!==void 0&&r.push(L(n.providerSessionId,t.providerSessionId)),t.statuses!==void 0&&r.push(R(n.status,t.statuses)),r}function Ea(e,t){let n=P(t,G),{agents:r,adapterSessionClaims:i}=n;return[e.on(k.read,async e=>{let[n]=await t.select().from(r).where(L(r.agentId,e.payload.agentId)).limit(1);if(n===void 0){e.setResult({ownership:null});return}let a=await t.select().from(i).where(L(i.agentId,e.payload.agentId)).orderBy(Kt(i.fence),Kt(i.claimId));e.setResult({ownership:{agentId:n.agentId,sessionId:n.sessionId,currency:xa(n),revision:n.revision,currencyFence:n.currencyFence,claims:a.map(Q)}})}),e.on(k.listClaims,async e=>{let r=await t.select().from(i).where(F(...Ta(n,e.payload))).orderBy(Kt(i.claimedAt),Kt(i.claimId));e.setResult({claims:r.map(Q)})})]}function Da(e){return{outcome:`lead-conflict`,currentLeadAgentId:e}}function Oa(e,t,n){return{outcome:e,claim:t===null?null:Q(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}const ka=`makaio:session-ownership:claim:v1`;function Aa(e){return{namespace:ka,identity:JSON.stringify([e.machineId,e.adapterId,e.providerSessionId])}}async function ja(e,t,n){let{adapterSessionClaims:r}=t;return(await e.select({machineId:r.machineId,adapterId:r.adapterId,providerSessionId:r.providerSessionId}).from(r).where(F(L(r.agentId,n),L(r.status,`held`)))).map(Aa)}function Ma(e){return Aa(e)}async function Na(e,t){let n=P(e,G);return N(e,async e=>{await ua(e,n,t.agentId);let r=t.action.kind===`rollback`?{status:t.action.preimage.status,adapterId:t.action.preimage.adapterId,ownerMachineId:t.action.preimage.binding?.ownerMachineId??null,ownerInstanceId:t.action.preimage.binding?.ownerInstanceId??null,recoveryAttemptId:t.action.preimage.recoveryAttemptId??null}:{status:t.action.kind===`succeeded`?`idle`:`dead`,recoveryAttemptId:null};return{applied:M(await e.update(n.agents).set({...r,lastActivityAt:Date.now()}).where(F(L(n.agents.agentId,t.agentId),L(n.agents.status,`starting`),L(n.agents.recoveryAttemptId,t.attemptId),L(n.agents.adapterId,t.binding.adapterId),L(n.agents.ownerMachineId,t.binding.ownerMachineId),L(n.agents.ownerInstanceId,t.binding.ownerInstanceId))))}})}async function Pa(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(F(L(r.machineId,n.machineId),L(r.adapterId,n.adapterId),L(r.providerSessionId,n.providerSessionId))).limit(1);return i}async function Fa(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(L(r.claimToken,n)).limit(1);return i}async function Ia(e,t,n){let{agents:r}=t,[i]=await e.select().from(r).where(L(r.agentId,n)).limit(1);return i}async function La(e,t,n){let{sessions:r}=t,[i]=await e.select({leadAgentId:r.leadAgentId}).from(r).where(L(r.sessionId,n)).limit(1);return i===void 0?void 0:i.leadAgentId??null}async function Ra(e,t){let n=P(e,G),{adapterSessionClaims:r}=n,i=Date.now();return N(e,async e=>{await ua(e,n,t.agentId);let a=F(L(r.claimToken,t.claimToken),L(r.agentId,t.agentId));if(t.disposition===`released`){if((await e.delete(r).where(a).returning({claimId:r.claimId})).length>0)return{outcome:`released`}}else{let[n]=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();if(n!==void 0)return{outcome:`marked`,claim:Q(n)}}let o=await Fa(e,n,t.claimToken);return o===void 0?{outcome:`not-found`}:{outcome:`not-owner`,holder:Q(o)}})}async function za(e,t,n){if(await La(e,t,n.sessionId)===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=await Ia(e,t,n.agentId);return r===void 0||r.sessionId!==n.sessionId?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:r.status===`disposed`?{kind:`refused`,result:{outcome:`agent-disposed`}}:{kind:`ok`,agent:r}}async function Ba(e,t,n,r){let{adapterSessionClaims:i}=t,[a]=await e.insert(i).select(Ca(t,n,crypto.randomUUID(),r)).onConflictDoNothing({target:[i.machineId,i.adapterId,i.providerSessionId]}).returning();return a}function Va(e,t,n){let{adapterSessionClaims:r,runtimeInstances:i}=e;return n===`same-instance`?F(L(r.status,`held`),L(r.agentId,t.agentId),L(r.ownerInstanceId,t.ownerInstanceId)):n===`owner-retired`?B`exists (select 1 from ${i} where ${F(L(i.instanceId,r.ownerInstanceId),L(i.machineId,r.machineId),Xt(i.retiredAt))})`:B`(select ${i.incarnation} from ${i}
70
- where ${L(i.instanceId,t.ownerInstanceId)}
71
- and ${L(i.machineId,r.machineId)})
72
- > (select ${i.incarnation} from ${i}
73
- where ${L(i.instanceId,r.ownerInstanceId)}
74
- and ${L(i.machineId,r.machineId)})`}async function Ha(e,t,n,r,i,a,o){let{adapterSessionClaims:s}=t,c=i===`named-token`?void 0:Va(t,n,i),l=o===void 0?void 0:F(L(s.claimId,o.claimId),L(s.claimToken,o.claimToken),L(s.fence,o.fence),o.ownerInstanceId===null?z(s.ownerInstanceId):L(s.ownerInstanceId,o.ownerInstanceId),L(s.status,o.status)),[u]=await e.update(s).set({claimToken:n.claimToken,fence:va(t,n.agentId,r.fence),agentId:n.agentId,sessionId:n.sessionId,adapterName:n.adapterName,ownerInstanceId:n.ownerInstanceId,status:`held`,claimedAt:a,updatedAt:a}).where(F(L(s.claimId,r.claimId),L(s.claimToken,r.claimToken),Xt(s.ownerInstanceId),Sa(t,n.agentId,n.sessionId,`live`),...c===void 0?[]:[c],...l===void 0?[]:[l])).returning();return u}async function Ua(e,t,n,r,i){if(r.ownerInstanceId===null)return;if(i)return`named-token`;if(r.status===`held`&&r.agentId===n.agentId&&r.ownerInstanceId===n.ownerInstanceId)return`same-instance`;let{runtimeInstances:a}=t,[o]=await e.select().from(a).where(F(L(a.instanceId,r.ownerInstanceId),L(a.machineId,r.machineId))).limit(1);if(o?.retiredAt!==null&&o?.retiredAt!==void 0)return`owner-retired`;if(n.topology===`machine-exclusive`){let[t]=await e.select().from(a).where(F(L(a.instanceId,n.ownerInstanceId),L(a.machineId,n.machineId))).limit(1);if(o!==void 0&&t!==void 0&&t.incarnation>o.incarnation)return`owner-superseded`}}async function Wa(e,t,n,r){if(n.recoveryGuard===void 0)return;let i=n.providerSessionId===null?void 0:await Pa(e,t,{machineId:n.machineId,adapterId:n.adapterId,providerSessionId:n.providerSessionId});return He(n,{status:r.status,adapterId:r.adapterId,runtimeOwner:r.ownerMachineId===null||r.ownerInstanceId===null?void 0:{machineId:r.ownerMachineId,instanceId:r.ownerInstanceId},recoveryAttemptId:r.recoveryAttemptId??void 0,revision:r.revision,currencyFence:r.currencyFence,currency:xa(r)},i===void 0?null:Q(i))}async function Ga(e,t,n,r){if(n.recoveryGuard!==void 0&&(r.outcome===`claimed`||r.outcome===`idempotent`)){if(n.recoveryAttemptId===void 0||n.ownerInstance===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId and ownerInstance`);let[i]=await e.select().from(t.agents).where(L(t.agents.agentId,n.agentId));if(i===void 0)return{outcome:`not-found`,missing:`agent`};let a={status:i.status,adapterId:i.adapterId,...i.ownerMachineId===null||i.ownerInstanceId===null?{}:{binding:{adapterId:i.adapterId,ownerMachineId:i.ownerMachineId,ownerInstanceId:i.ownerInstanceId}},...i.recoveryAttemptId===null?{}:{recoveryAttemptId:i.recoveryAttemptId}};return await e.update(t.agents).set({status:`starting`,adapterId:n.adapterId,ownerMachineId:n.machineId,ownerInstanceId:n.ownerInstance.instanceId,recoveryAttemptId:n.recoveryAttemptId,lastActivityAt:Date.now()}).where(L(t.agents.agentId,n.agentId)),{...r,recovery:{attemptId:n.recoveryAttemptId,preimage:a}}}return r}function Ka(e,t){let n=e.recoveryGuard;if(n===void 0)throw Error(`recovery conflict requires a recovery guard`);return{outcome:`recovery-conflict`,status:n.expectedStatus,ownerGeneration:t===void 0?null:Be(Q(t))}}async function qa(e,t,n,r){let i=n.recoveryGuard?.ownerGeneration;if(i==null)throw Error(`guarded recovery takeover requires an observed owner generation`);let a=await Pa(e,t,n),o=a===void 0?null:Be(Q(a));if(a===void 0||!Ve(o,i))return Ka(n,a);let s=await Ua(e,t,n,a,n.supersedes?.claimToken===a.claimToken);if(s===void 0)return Ka(n,a);let c=await r(a,s);return c===void 0||c.outcome===`already-claimed`?Ka(n,c===void 0?void 0:await Pa(e,t,n)):c}function Ja(e,t){let{agents:n,adapterSessionClaims:r}=e,{target:i}=t,a=B`(${i.currentAdapterSessionId===null?z(n.currentAdapterSessionId):L(n.currentAdapterSessionId,i.currentAdapterSessionId)} and ${L(n.currentAdapterSessionIdState,i.currentAdapterSessionIdState)} and ${L(n.currencyFence,t.fence)})`;return F(L(n.agentId,t.agentId),$t(n.status,`disposed`),L(n.revision,t.expectedRevision),Qt(n.currencyFence,t.fence),B`exists (select 1 from ${r} where ${F(L(r.claimToken,t.claimToken),L(r.agentId,t.agentId),L(r.sessionId,n.sessionId),L(r.status,`held`),L(r.fence,t.fence))})`,en(a))}function Ya(e,t,n){if(t.status===`disposed`)return{outcome:`agent-disposed`};if(e===void 0||e.agentId!==n.agentId||e.sessionId!==t.sessionId||e.status!==`held`||e.fence!==n.fence)return{outcome:`not-owner`};if(n.fence<t.currencyFence)return{outcome:`superseded`,currentFence:t.currencyFence};let r=xa(t);return r.currentAdapterSessionId===n.target.currentAdapterSessionId&&r.currentAdapterSessionIdState===n.target.currentAdapterSessionIdState&&t.currencyFence===n.fence?{outcome:`idempotent`,revision:t.revision,currency:r,sessionSnapshotUpdated:!1}:{outcome:`currency-changed`,revision:t.revision,currency:r}}async function Xa(e,t,n){let r=await Ia(e,t,n.agentId);return r===void 0?{outcome:`not-found`}:Ya(await Fa(e,t,n.claimToken),r,n)}async function Za(e,t,n){let{adapterSessionClaims:r}=t;return(await e.update(r).set({updatedAt:r.updatedAt}).where(L(r.claimToken,n)).returning({claimId:r.claimId})).length>0}async function Qa(e,t,n){let{agents:r,sessions:i}=t,{target:a}=n,[o]=await e.update(r).set({currentAdapterSessionId:a.currentAdapterSessionId,currentAdapterSessionIdState:a.currentAdapterSessionIdState,currencyFence:n.fence,revision:n.expectedRevision+1,lastActivityAt:Date.now()}).where(Ja(t,n)).returning();if(o===void 0)return Xa(e,t,n);let s=await e.update(i).set({...wa(t,n.agentId)}).where(F(L(i.sessionId,o.sessionId),L(i.leadAgentId,n.agentId))).returning({sessionId:i.sessionId});return{outcome:`settled`,revision:n.expectedRevision+1,currency:{adapterSessionId:o.adapterSessionId??null,...a},sessionSnapshotUpdated:s.length>0}}async function $a(e,t){let n=P(e,G);return N(e,async e=>await ua(e,n,t.agentId)===void 0?{outcome:`not-found`}:await Za(e,n,t.claimToken)?Qa(e,n,t):Xa(e,n,t))}var eo=class extends Error{result;constructor(e){super(`session ownership movement rolled back: ${e.outcome}`),this.name=`MovementRollbackSignal`,this.result=e}};function to(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=wt(xa(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}async function no(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(F(L(r.machineId,n.machineId),L(r.adapterId,n.adapterId),L(r.providerSessionId,n.providerSessionId),L(r.agentId,n.agentId),L(r.status,`held`),tn(L(r.ownerInstanceId,n.ownerInstanceId),z(r.ownerInstanceId)))).limit(1);return i}async function ro(e,t,n,r){if(n.ownerInstanceId!==null)return n;let{adapterSessionClaims:i}=t,[a]=await e.update(i).set({ownerInstanceId:r}).where(F(L(i.claimId,n.claimId),z(i.ownerInstanceId))).returning();if(a===void 0)throw Error(`locked legacy movement generation disappeared before adoption`);return a}async function io(e,t,n,r){for(let i=0;i<2;i+=1){let i=await Ba(e,t,n,r);if(i!==void 0)return i;let a=await Pa(e,t,n);if(a===void 0){let r=await za(e,t,n);if(r.kind===`refused`)throw new eo(r.result.outcome===`agent-disposed`?{outcome:`agent-disposed`}:{outcome:`not-found`});continue}let o=await Ua(e,t,n,a,!1);if(o!==void 0){let i=await Ha(e,t,n,a,o,r);if(i!==void 0)return i;let s=await Pa(e,t,n);if(s===void 0)continue;throw new eo({outcome:`already-claimed`,holder:Q(s)})}throw new eo({outcome:`already-claimed`,holder:Q(a)})}throw Error(`session ownership movement could not acquire the key ${n.machineId}/${n.adapterId}/${n.providerSessionId}: it was taken and freed by a competitor on every attempt`)}async function ao(e,t,n,r){let{adapterSessionClaims:i}=t;return(await e.delete(i).where(F(L(i.agentId,n),L(i.status,`held`),$t(i.claimId,r))).returning({providerSessionId:i.providerSessionId})).map(e=>e.providerSessionId)}function oo(e,t){return e.outcome===`idempotent`?{outcome:`idempotent`,revision:e.revision,currency:e.currency,sessionSnapshotUpdated:!1,claim:Q(t)}:e}function so(e,t){if(t)throw new eo(e);return e}function co(e,t,n){return{machineId:e.machineId,adapterId:e.adapterId,adapterName:e.adapterName,providerSessionId:n,sessionId:e.sessionId,agentId:e.agentId,ownerInstanceId:t,topology:e.topology,claimToken:e.movement.claimToken}}async function lo(e,t){let n=P(e,G),r=Date.now(),i=t.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);try{return await N(e,async a=>{let o=await pa(a,n,{instanceId:i.instanceId,machineId:t.machineId},r),s=await ua(a,n,t.agentId);if(s===void 0||s.sessionId!==t.sessionId)return so({outcome:`not-found`},o.inserted);if(s.status===`disposed`)return so({outcome:`agent-disposed`},o.inserted);let c=to(t.movement,s);if(c===null)return so({outcome:`idempotent`,revision:s.revision,currency:xa(s),sessionSnapshotUpdated:!1,claim:null},o.inserted);let l=co(t,i.instanceId,c.providerSessionId);await Bt(e,a,[Ma(l),...await ja(a,n,t.agentId)]);let u=await no(a,n,l)??await io(a,n,l,r),d=t.movement.kind===`confirmed`?await ao(a,n,t.agentId,u.claimId):[],f=await Qa(a,n,{agentId:t.agentId,claimToken:u.claimToken,fence:u.fence,expectedRevision:t.expectedRevision,target:c.currency});if(f.outcome!==`settled`)throw new eo(oo(f,u));let p=await ro(a,n,u,i.instanceId);return{outcome:`settled`,revision:f.revision,currency:f.currency,sessionSnapshotUpdated:f.sessionSnapshotUpdated,releasedProviderSessionIds:d,claim:Q(p)}})}catch(e){if(e instanceof eo)return e.result;throw e}}async function uo(e,t,n){let{sessions:r}=t,[i]=await e.update(r).set({lastActivityAt:r.lastActivityAt}).where(L(r.sessionId,n)).returning({leadAgentId:r.leadAgentId,status:r.status});return i===void 0?void 0:{leadAgentId:i.leadAgentId??null,status:i.status}}function fo(e,t,n,r){let{sessions:i}=e,a=n===null?z(i.leadAgentId):L(i.leadAgentId,n);return r?a:tn(a,L(i.leadAgentId,t.agentId))}async function po(e,t,n){let{sessions:r}=t,i=await uo(e,t,n.sessionId);if(i===void 0)throw new X({outcome:`not-found`,missing:`session`});if(i.status!==`active`&&(i.status!==`closed`||!xt(n)))throw new X({outcome:`session-not-active`,status:i.status});let a=i.leadAgentId,o=n.designateLead;if(o===void 0)return{leadDesignated:!1,previousLeadAgentId:a};let s=o.clear===!0,c=s?null:n.agentId,l=s?`any-status`:`live`,u=c!==a;return(await e.update(r).set({leadAgentId:c,...s||!u?{}:wa(t,n.agentId)}).where(F(L(r.sessionId,n.sessionId),fo(t,n,o.expectedLeadAgentId,s),Sa(t,n.agentId,n.sessionId,l))).returning({leadAgentId:r.leadAgentId})).length===0?mo(e,t,n,a,l):{leadDesignated:u,previousLeadAgentId:a}}async function mo(e,t,n,r,i){let a=await za(e,t,n);throw a.kind===`refused`&&!(i===`any-status`&&a.result.outcome===`agent-disposed`)?new X(a.result):new X(Da(r))}async function ho(e,t,n,r,i,a){let o=await Ha(e,t,n,r,i,a,n.recoveryGuard?.ownerGeneration??void 0);if(o!==void 0)return Oa(`claimed`,o,await po(e,t,n));let s=await Pa(e,t,n);if(s===void 0)return _o;if(s.claimToken===r.claimToken){let r=await za(e,t,n);if(r.kind===`refused`)return r.result}return{outcome:`already-claimed`,holder:Q(s)}}async function go(e,t,n,r){if(r.status!==`held`)return{outcome:`already-claimed`,holder:Q(r)};let i=await za(e,t,n);return i.kind===`refused`?i.result:Oa(`idempotent`,r,await po(e,t,n))}const _o=Symbol(`retry-acquisition`);async function vo(e,t,n,r){if(n.recoveryGuard?.ownerGeneration)return qa(e,t,n,async(i,a)=>{let o=await ho(e,t,n,i,a,r);return o===_o?void 0:o});let i=await Ba(e,t,n,r);if(i!==void 0)return Oa(`claimed`,i,await po(e,t,n));let a=await Pa(e,t,n);if(n.recoveryGuard!==void 0)return Ka(n,a);if(a===void 0){let r=await za(e,t,n);return r.kind===`refused`?r.result:_o}if(a.claimToken===n.claimToken)return a.agentId===n.agentId&&a.sessionId===n.sessionId?go(e,t,n,a):{outcome:`already-claimed`,holder:Q(a)};let o=await Ua(e,t,n,a,n.supersedes?.claimToken===a.claimToken);return o===void 0?{outcome:`already-claimed`,holder:Q(a)}:ho(e,t,n,a,o,r)}async function yo(e,t,n,r){return r.sessionId===n.sessionId?r.status===`disposed`&&n.designateLead?.clear!==!0?{outcome:`agent-disposed`}:Oa(`claimed`,null,await po(e,t,n)):{outcome:`not-found`,missing:`agent`}}async function bo(e,t,n){let r=await ua(e,t,n.agentId);if(r!==void 0)return{kind:`ok`,agent:r};let i=await za(e,t,n);if(i.kind===`refused`)return{kind:`refused`,result:i.result};let a=await ua(e,t,n.agentId);return a===void 0?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:{kind:`ok`,agent:a}}async function xo(e,t,n,r,i){let a;if(n.recoveryGuard!==void 0){if(r===void 0)throw Error(`guarded recovery claim requires ownerInstance`);a=await pa(e,t,{instanceId:r.instanceId,machineId:n.machineId},i)}let o=await bo(e,t,n);if(o.kind===`refused`){if(a!==void 0)throw new X(o.result);return o.result}let s=await Wa(e,t,n,o.agent);if(s!==void 0){if(a!==void 0)throw new X(s);return s}let c=await yo(e,t,n,o.agent);if(a!==void 0&&c.outcome!==`claimed`)throw new X(c);return Ga(e,t,n,c)}async function So(e,t){let n=St(t),r=P(e,G),i=Date.now(),a=n.ownerInstance;if(n.providerSessionId!==null&&a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);if(n.recoveryGuard!==void 0&&a===void 0)throw Error(`guarded recovery claim requires ownerInstance`);try{return await N(e,async t=>{let{providerSessionId:o}=n;if(o!==null){if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let s=await pa(t,r,{instanceId:a.instanceId,machineId:n.machineId},i),c=await bo(t,r,n);if(c.kind===`refused`){if(s.inserted)throw new X(c.result);return c.result}let l={...n,providerSessionId:o,ownerInstance:a,ownerInstanceId:a.instanceId};if(await Bt(e,t,[Ma(l)]),n.recoveryGuard!==void 0){let e=await Wa(t,r,n,c.agent);if(e!==void 0){if(s.inserted)throw new X(e);return e}}for(let e=0;e<2;e+=1){let e=await vo(t,r,l,i);if(e!==_o){if(s.inserted&&e.outcome!==`claimed`)throw new X(e);return Ga(t,r,n,e)}}throw Error(`session ownership claim could not be acquired: the key ${n.machineId}/${n.adapterId}/${o} was taken and freed by a competitor on every attempt`)}return xo(t,r,n,a,i)})}catch(e){if(e instanceof X)return e.result;throw e}}async function Co(e,t){let n=P(e,G),{adapterSessionClaims:r}=n,i=Date.now();return N(e,async e=>{await ua(e,n,t.agentId);let a=t.claimToken===void 0?L(r.agentId,t.agentId):F(L(r.agentId,t.agentId),L(r.claimToken,t.claimToken));if(t.disposition===`released`){let n=await e.delete(r).where(a).returning({providerSessionId:r.providerSessionId});return{releasedProviderSessionIds:n.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:t.claimToken!==void 0&&n.length===0}}let o=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();return{releasedProviderSessionIds:[],markedClaims:o.map(Q),claimTokenNotFound:t.claimToken!==void 0&&o.length===0}})}function wo(e,t){let n=[...Ea(e,t),e.on(k.claim,async e=>{e.setResult(await So(t,e.payload))}),e.on(k.finalizeRecovery,async e=>{e.setResult(await Na(t,e.payload))}),e.on(k.settleCurrency,async e=>{e.setResult(await $a(t,e.payload))}),e.on(k.settleMovement,async e=>{let n=pt.parse(e.payload);e.setResult(await lo(t,n))}),e.on(k.release,async e=>{e.setResult(await Ra(t,e.payload))}),e.on(k.releaseAgentClaims,async e=>{e.setResult(await Co(t,e.payload))}),...ba(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}async function To(e,t){if(t.length===0)return new Map;let{agents:n}=P(e,G),r=[...new Set(t)],i=await e.select().from(n).where(R(n.sessionId,r)),a=new Map;for(let e of i){let t=a.get(e.sessionId)??[];t.push(e),a.set(e.sessionId,t)}return a}async function Eo(e,t){return Gt(e).fts.fetchFirstUserMessagePreviews(e,t)}async function Do(e,t){if(t.length===0)return new Map;let{messages:n}=P(e,f),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:I()}).from(n).where(R(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Oo(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function ko(e){if(e!==null)try{let t=typeof e==`string`?JSON.parse(e):e,n=mt.safeParse(t);return n.success?n.data:void 0}catch{return}}function Ao(e,t,n,r){return{sessionId:e.session_id,createdAt:e.created_at,lastActivityAt:e.last_activity_at,status:e.status,title:e.title??void 0,leadAgentId:e.lead_agent_id??void 0,parentSessionId:e.parent_session_id??void 0,rootSessionId:e.root_session_id??void 0,forkPointMessageId:e.fork_point_message_id??void 0,branchKind:e.branch_kind??void 0,adapterName:e.adapter_name??void 0,adapterSessionId:e.adapter_session_id??void 0,adapterId:e.adapter_id??void 0,isOrchestrated:e.is_orchestrated===null?void 0:!!e.is_orchestrated,isImported:e.is_imported===null?void 0:!!e.is_imported,summary:e.summary??void 0,summaryUpdatedAt:e.summary_updated_at??void 0,forkTransforms:Oo(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??void 0,metadata:ko(e.metadata),machineId:e.machine_id??void 0,agents:t.map(e=>({agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0})),preview:{messageCount:r.get(e.session_id)??0,firstUserMessage:n.get(e.session_id)??null}}}function jo(e,t){let n=Gt(t).fts,r=[];return r.push(e.on(T.search,async e=>{let{query:r,limit:i=20,status:a=`all`,isImported:o}=e.payload,s=r.trim();if(!s){e.setResult({sessions:[],total:0});return}let c={query:s,likePattern:`%${s.toLowerCase()}%`,status:a===`all`?void 0:a,isImported:o},l=await n.searchSessionRows(t,{...c,limit:i});if(l.length===0){e.setResult({sessions:[],total:0});return}let u=await n.countSessionMatches(t,c),d=l.map(e=>e.session_id),f=await To(t,d),p=await Eo(t,d),m=await Do(t,d),h=l.map(e=>Ao(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Mo(e,t){return(await Ut(e).all(B`
75
- WITH RECURSIVE ancestors AS (
76
- SELECT session_id, parent_session_id
77
- FROM sessions
78
- WHERE session_id = ${t}
79
-
80
- UNION ALL
81
-
82
- SELECT s.session_id, s.parent_session_id
83
- FROM sessions s
84
- JOIN ancestors a ON s.session_id = a.parent_session_id
85
- )
86
- SELECT session_id FROM ancestors
87
- `)).map(e=>e.session_id)}const No=new Map;function Po(e,t){let n=(No.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return No.set(e,r),r.then(()=>{No.get(e)===r&&No.delete(e)}),n}function Fo(e,t){return`${e}:${t}`}async function Io(e,t,n){let r=await e.requestOptional(d.getByIds,{sessionId:t,eventIds:[Fo(`turn.completed`,n)]});if(r.handled)return r.data.events.length>0}function Lo(e,t){return Po(JSON.stringify([t.sessionId,t.turnAnchorId]),()=>Ro(e,t))}async function Ro(e,t){let{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}=t,{turn:u,created:d}=await e.request(C.ingestCompleted,{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}),f,p;for(let r of t.messages){let{messageId:t}=await e.request(E.upsertByAdapterMessageId,{sessionId:n,turnId:u.turnId,adapterMessageId:r.adapterMessageId,role:r.role,contentText:r.contentText,blocks:r.blocks,agentId:r.agentId,adapterSessionId:r.adapterSessionId,timestamp:r.timestamp,origin:r.origin});p??=t,f===void 0&&r.role===`user`&&(f=t)}let m=d;return d||(m=await Io(e,n,u.turnId)===!1),m&&(p===void 0?console.warn(`[turn-ingest] Turn ${u.turnId} (session ${n}) ingested without messages — skipping session.turn.* emission (getByTurn contract unfulfillable)`):await zo(e,t,u,f??p)),{turnId:u.turnId,turnNumber:u.turnNumber,created:d}}async function zo(e,t,n,r){let{sessionId:i,status:a,error:o,usage:s,initiator:c,ingestionMarker:l}=t,u={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...new Set(t.messages.flatMap(e=>e.role===`assistant`&&e.agentId?[e.agentId]:[]))],initiator:c,ingestionMarker:l},d={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,success:a===`completed`,error:o,usage:s,initiator:c,ingestionMarker:l};await me(e,{type:`turn.started`,sessionId:i,payload:u,eventId:Fo(`turn.started`,n.turnId)}),await me(e,{type:`turn.completed`,sessionId:i,payload:d,eventId:Fo(`turn.completed`,n.turnId)}),await e.emit(A.turn.started,u),await e.emit(A.turn.completed,d)}const Bo=et(`log-import`,{listImporters:{request:D.object({}),response:D.object({importers:D.array(D.object({adapterName:D.string(),clientId:D.string().optional()}))})},importFile:{request:D.object({filePath:D.string(),adapterName:D.string(),ingestionMarker:_t.optional()}),response:D.discriminatedUnion(`status`,[D.object({status:D.literal(`imported`),sessionId:D.string(),messageCount:D.number(),turnCount:D.number()}),D.object({status:D.literal(`skipped`),reason:D.enum([`no-importer`,`file-missing`])})])},importSession:{request:D.object({adapterSessionId:D.string(),adapterName:D.string(),ingestionMarker:_t.optional()}),response:D.object({sessionId:D.string(),messageCount:D.number()})}}).subjects,Vo=`observed-session-ingestion-policy`;function Ho(e,t){return e.emit(rt.register,{capabilityId:Vo,provider:t})}function Uo(e,t){return e.emit(rt.unregister,{capabilityId:Vo,providerId:t})}function $(e,t){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] ${e}`,t??{})}function Wo(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.displayName==`string`&&typeof t.decideObservedSessionIngestion==`function`}function Go(e){return e.importStatus===`discovered`&&e.clientId!==void 0}function Ko(e){return e.isImported===!0&&e.importStatus===`tracking`&&e.clientId!==void 0}var qo=class{bus;managedAdapterSessionIds=new Set;importerByClientId=new Map;unresolvedClientIds=new Set;policyProviders=new Map;cleanups=[];constructor(e=Et){this.bus=e,this.cleanups.push(this.bus.on(it.runtime.started,async e=>{try{await this.handleRuntimeStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to handle runtime started`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(it.session.started,async e=>{try{await this.handleSessionStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to register observed session`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(it.session.turn.completed,async e=>{try{await this.handleTurnCompleted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to trigger import for observed turn`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(rt.register,e=>{let{provider:t}=e.payload;Wo(t)&&this.policyProviders.set(t.id,t)},{filter:{capabilityId:Vo}}),this.bus.on(rt.unregister,e=>{this.policyProviders.delete(e.payload.providerId)},{filter:{capabilityId:Vo}}))}destroy(){for(let e of this.cleanups.splice(0))e()}async handleRuntimeStarted(e){if(!(e.source.layer!==`adapter`||e.adapterSessionId===void 0)){if(!this.managedAdapterSessionIds.has(e.adapterSessionId)){if(this.managedAdapterSessionIds.size>=1e4){let e=this.managedAdapterSessionIds.values().next().value;e!==void 0&&this.managedAdapterSessionIds.delete(e)}this.managedAdapterSessionIds.add(e.adapterSessionId)}await this.reconcileTrackingStub(e.clientId,e.adapterSessionId)}}async reconcileTrackingStub(e,t){let n=await this.resolveImporter(e);if(n===null)return;let r=await this.bus.requestOptional(T.getByAdapterSessionId,{adapterSessionId:t,source:n.adapterName});if(!r.handled||r.data.session===null)return;let i=r.data.session;if(!Ko(i))return;let a=await this.bus.requestOptional(lt.getBySession,{sessionId:i.sessionId,limit:1});if(!a.handled){$(`Preserved tracking stub because message storage is unavailable`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}if(a.data.messages.length>0){$(`Preserved tracking stub with imported content (native takeover)`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}(await this.bus.requestOptional(T.delete,{sessionId:i.sessionId})).handled&&$(`Reconciled hook-first tracking stub`,{adapterSessionId:t,source:n.adapterName,deletedSessionId:i.sessionId})}async resolveImporter(e){let t=this.importerByClientId.get(e);if(t!==void 0)return t===null?null:{adapterName:t};let n=await this.bus.requestOptional(Bo.listImporters,{});if(!n.handled)return this.debugUnresolved(e,`no log-import service registered`),null;let r=n.data.importers.find(t=>t.clientId===e);return r===void 0?(this.importerByClientId.set(e,null),this.debugUnresolved(e,`no importer registered for client`),null):(this.importerByClientId.set(e,r.adapterName),{adapterName:r.adapterName})}debugUnresolved(e,t){this.unresolvedClientIds.has(e)||(this.unresolvedClientIds.add(e),$(`Skipping observed ingestion for client '${e}': ${t}`))}async handleSessionStarted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n===null)return;let r=e.startMode===`resume`||e.startMode===`compact`?e.startMode:void 0;(r===void 0?await this.registerObservedSession(e,t,n.adapterName):await this.rebindObservedSession(e,t,n.adapterName,r))&&this.managedAdapterSessionIds.has(t)&&await this.reconcileTrackingStub(e.clientId,t)}async rebindObservedSession(e,t,n,r){let i=await this.bus.requestOptional(T.rebindObserved,{externalSessionId:t,source:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId}});if(!i.handled)return $(`Session storage unavailable; skipped observed-session rebind`,{adapterSessionId:t}),!1;if(i.data.outcome===`not-found`){let i=await this.decideImportStatus(this.policyInput(e,t,n));return i===`discovered`?await this.registerObservedSession(e,t,n,i):($(`Observed continuation of an unknown session; leaving creation to the transcript import`,{adapterSessionId:t,source:n,startMode:r}),!1)}try{await this.bus.requestOptional(A.ownership.continuation,{sessionId:i.data.sessionId,startMode:r})}catch(e){$(`Continuation report failed; the rebind stands`,{sessionId:i.data.sessionId,startMode:r,error:e})}return!0}policyInput(e,t,n){return{clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}}}async registerObservedSession(e,t,n,r){let i=Jo(e.metadata),a=r??await this.decideImportStatus(this.policyInput(e,t,n)),o=e.startMode===`fork`&&e.parentAdapterSessionId!==void 0&&e.parentAdapterSessionId.length>0?e.parentAdapterSessionId:void 0,s=o===void 0?{kind:ut,parentAdapterSessionId:null,forkPointMessageId:null}:{kind:ot,parentAdapterSessionId:o,forkPointMessageId:null};return(await this.bus.requestOptional(T.importUpsert,{...s,externalSessionId:t,source:n,clientId:e.clientId,cwd:e.cwd??null,...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId},startedAt:e.observedAt,importStatus:a,activation:a===`tracking`?`live`:void 0,...i===void 0?{}:{metadata:i}})).handled?!0:($(`Session storage unavailable; skipped observed-session registration`,{adapterSessionId:t}),!1)}async handleTurnCompleted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n!==null&&await this.shouldImportObservedContent({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}})){if(e.transcriptPath!==void 0){let r=await this.bus.requestOptional(Bo.importFile,{filePath:e.transcriptPath,adapterName:n.adapterName,ingestionMarker:`live`});r.handled?r.data.status===`skipped`&&$(`Targeted import skipped`,{adapterSessionId:t,reason:r.data.reason}):$(`log-import.importFile unhandled; watcher fallback will ingest`,{adapterSessionId:t});return}try{await this.bus.requestOptional(Bo.importSession,{adapterSessionId:t,adapterName:n.adapterName,ingestionMarker:`live`})}catch(e){$(`Discovery-based import fallback failed (no stub yet); watcher will ingest`,{adapterSessionId:t,error:e})}}}async decideImportStatus(e){for(let t of this.policyProviders.values())if((await t.decideObservedSessionIngestion(e)).importStatus===`discovered`)return`discovered`;return`tracking`}async shouldImportObservedContent(e){let t=await this.bus.requestOptional(T.getByAdapterSessionId,{adapterSessionId:e.adapterSessionId,source:e.adapterName});if(t.handled&&t.data.session!==null){if(Go(t.data.session))return!1;if(t.data.session.importStatus!==`discovered`)return!0}return await this.decideImportStatus(e)===`tracking`}};function Jo(e){if(e===void 0)return;let t=mt.safeParse(e);return t.success?t.data:void 0}const Yo=Ht(`import_cursors`,e=>({filePath:e.text(`file_path`).primaryKey(),bytesRead:e.int8(`bytes_read`).notNull(),lastModified:e.text(`last_modified`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),Xo=Yo.sqlite,Zo=Yo.postgres,Qo=Vt({importCursors:Xo},{importCursors:Zo});function $o(e,t){let{importCursors:n}=P(t,Qo),r=[];return r.push(e.on(an.get,async e=>{let{filePath:r}=e.payload,i=(await t.select().from(n).where(L(n.filePath,r)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),r.push(e.on(an.set,async e=>{let{filePath:r,bytesRead:i,lastModified:a}=e.payload;await t.insert(n).values({filePath:r,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:n.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),r.push(e.on(an.delete,async e=>{let{filePath:r}=e.payload,i=await t.delete(n).where(L(n.filePath,r));e.setResult({success:M(i)})})),()=>{r.forEach(e=>e())}}Ft(`embeddings`,{id:Nt(`id`).primaryKey({autoIncrement:!0}),entityType:It(`entity_type`).notNull(),entityId:It(`entity_id`).notNull(),model:It(`model`).notNull(),dimensions:Nt(`dimensions`).notNull(),content:It(`content`),embedding:jt(`embedding`,{mode:`buffer`}).notNull(),createdAt:Nt(`created_at`).notNull()},e=>[Mt(`idx_embeddings_entity`).on(e.entityType,e.entityId),Mt(`idx_embeddings_model`).on(e.model),Lt(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function es(e){if(e.byteLength%4!=0)throw Error(`Invalid embedding blob: byte length ${e.byteLength} is not a multiple of 4 (IEEE-754 f32 lanes)`);return e instanceof ArrayBuffer?new Float32Array(e):e.byteOffset%4==0?new Float32Array(e.buffer,e.byteOffset,e.byteLength/4):new Float32Array(Uint8Array.from(e).buffer)}var ts=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=Ut(e),this.engine=Wt(this.rawSql.dialect)}slugify(e){return e.replace(/[^a-zA-Z0-9]/g,`_`).toLowerCase()}hashModel(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)>>>0;return t.toString(36)}getTableName(e){return`embeddings_idx_${this.slugify(e)}_${this.hashModel(e)}`}async ensureIndexTable(e,t){let n=this.getTableName(e);if(this.knownTables.has(n))return n;let r=B.identifier(n),i=B.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(B`CREATE TABLE IF NOT EXISTS ${r} (
88
- entity_type TEXT NOT NULL,
89
- entity_id TEXT NOT NULL,
90
- embedding ${i} NOT NULL,
91
- PRIMARY KEY (entity_type, entity_id)
92
- )`),this.knownTables.add(n),n}async upsertIndexed(e,t,n,r,i){let a=await this.ensureIndexTable(e,t),o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s=B.identifier(a);await this.rawSql.run(B`INSERT INTO ${s} (entity_type, entity_id, embedding)
93
- VALUES (${n}, ${r}, ${o})
94
- ON CONFLICT(entity_type, entity_id) DO UPDATE SET
95
- embedding = excluded.embedding`)}async searchSimilar(e,t,n=10){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return[];this.knownTables.add(r)}let i=B.identifier(r),a=await this.rawSql.all(B`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=es(e.embedding),r=this.euclideanDistance(t,n);return{entityType:e.entity_type,entityId:e.entity_id,distance:r}}).sort((e,t)=>e.distance-t.distance).slice(0,n)}async deleteByEntity(e,t,n){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return;this.knownTables.add(r)}let i=B.identifier(r);await this.rawSql.run(B`DELETE FROM ${i} WHERE entity_type = ${t} AND entity_id = ${n}`)}euclideanDistance(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r]-t[r];n+=i*i}return Math.sqrt(n)}},ns=class{sessionId;parentSessionId;status=`active`;_turns=[];_completedTurnIds=new Set;bus;constructor(e){this.sessionId=e.sessionId??crypto.randomUUID(),this.parentSessionId=e.parentSessionId,this.bus=e.bus}get turns(){return this._turns}async startTurn(e){if(this.status!==`active`)throw Error(`Cannot start turn on non-active session`);let t=new kr({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await Le(this.bus,{sessionId:this.sessionId,turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId,ingestionMarker:`live`}),t}getActiveTurn(){for(let e=this._turns.length-1;e>=0;e--){let t=this._turns[e];if(!this._completedTurnIds.has(t.turnId))return t}}async completeTurn(e){if(!e.isComplete())throw Error(`Turn ${e.turnId} is not complete yet`);let t=e.getResult(),n={turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0};await me(this.bus,{type:`turn.completed`,sessionId:this.sessionId,payload:{sessionId:this.sessionId,...n}}),await this.emit(A.turn.completed,n),this._completedTurnIds.add(e.turnId)}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function rs(e,t){let{sessions:n}=P(t,G);async function r(i,a,o,s=0){if(s>100)throw Error(`Cycle detected in session lineage (depth > 100)`);let c=await t.select({adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,parentSessionId:n.parentSessionId}).from(n).where(F(L(n.parentExternalSessionId,i),L(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(T.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(A.import.completed,async i=>{let{adapterSessionId:a,sessionId:o,source:s}=i.payload,c=await t.select({sessionId:n.sessionId,adapterSessionId:n.adapterSessionId,branchKind:n.branchKind}).from(n).where(F(L(n.parentExternalSessionId,a),L(n.source,s),z(n.parentSessionId)));if(c.length===0)return;let{session:l}=await e.request(T.get,{sessionId:o}),u=l?.rootSessionId??o;for(let t of c)await e.request(T.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:u,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,u)})}const is=new Set([`Agent`,`spawn_subagent`]),as=`[^A-Za-z0-9_-]`;function os(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ss(e,t){return t.test(e)}async function cs(e,t){let n=[],r,i=0;do{let a=await e.request(E.getBySession,{sessionId:t,order:`asc`,...r===void 0?{}:{after:r}});if(n.push(...a.messages),r=a.nextCursor??void 0,i+=1,r!==void 0&&i>=1e3)throw Error(`Exceeded 1000 message pages while loading session ${t}`)}while(r!==void 0);return n}function ls(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&is.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function us(e,t){let n=new Map;for(let r of e)for(let e of r.blocks)if(e.type===`tool_output`){for(let r of t)if(ss(e.output,r.pattern)){let t=n.get(e.toolCallId)??new Set;t.add(r.id),n.set(e.toolCallId,t)}}let r=new Map;for(let[e,t]of n)if(t.size===1){let[n]=t;r.set(e,n)}return r}function ds(e){let t=new Map,n=new Set;for(let r of e)if(!(r===null||n.has(r.adapterSessionId))){if(t.has(r.adapterSessionId)){t.delete(r.adapterSessionId),n.add(r.adapterSessionId);continue}t.set(r.adapterSessionId,r.sessionId)}return t}function fs(e){return[...e].map(e=>{let t=os(e);return{id:e,pattern:RegExp(`(^|${as})${t}($|${as})`)}})}async function ps(e,t,n){let{children:r}=await e.request(T.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(T.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=fs(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await cs(e,t.sessionId),r=ls(n);if(r.length===0)return null;let i=us(n,s);if(i.size===0)return null;let a=[...i.entries()].filter(([,e])=>e===o);if(a.length!==1)return null;let[c]=a[0];return r.some(e=>e.toolCallId===c)?{parentSessionId:t.sessionId,toolCallId:c}:null}))).filter(e=>e!==null);c.length===1&&await e.request(T.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function ms(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(T.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(T.getChildren,{sessionId:s}),l=await hs(e,c);if(l.size===0)return;let u=await cs(e,a),d=ls(u);if(d.length===0)return;let f=us(u,fs(new Set(l.keys()))),p=new Map;for(let e of d){let t=f.get(e.toolCallId);t!==void 0&&p.set(t,(p.get(t)??0)+1)}let m=new Map;for(let e of d){let t=f.get(e.toolCallId),n=t===void 0?void 0:l.get(t);n!==void 0&&t!==void 0&&p.get(t)===1&&m.set(n,e.toolCallId)}if(m.size===0)return;let h=[...m].map(async([t,n])=>{try{await e.request(T.update,{sessionId:t,parentSessionId:a,spawningToolCallId:n})}catch(e){console.error(`[CompressLineageResolver] Failed to re-parent subagent`,{compressChildSessionId:a,parentMakaioSessionId:s,childSessionId:t,toolCallId:n,error:e})}});await Promise.allSettled(h)}async function hs(e,t){return ds(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(T.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function gs(e){return e.on(A.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(T.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await ps(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await ms(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function _s(e){return[...e].map(e=>{let t=os(e);return{id:e,pattern:RegExp(`(^|${as})${t}($|${as})`)}})}async function vs(e,t,n){return ds(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(T.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function ys(e){return e.on(A.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(T.getChildren,{sessionId:n}),a=await vs(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await cs(e,n),c=ls(s);if(c.length===0)return;let l=us(s,_s(o)),u=new Map;for(let e of c){let t=l.get(e.toolCallId);t!==void 0&&u.set(t,(u.get(t)??0)+1)}let d=new Map;for(let e of c){let t=l.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&u.get(t)===1&&d.set(n,e.toolCallId)}let f=[...d].map(async([t,r])=>{try{let{session:n}=await e.request(T.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(T.update,{sessionId:t,spawningToolCallId:r})}catch(e){console.error(`Failed to persist spawning tool call correlation`,{parentSessionId:n,childSessionId:t,toolCallId:r,error:e})}});await Promise.allSettled(f)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function bs(e){return e.on(tt.session.discovered,async t=>{let n=ft.safeParse(t.payload);if(!n.success)throw console.error(`[registerSessionDiscoveredHandler] Invalid adapter.session.discovered payload`,{issues:n.error.issues}),n.error;let{adapterId:r,adapterSessionId:i,adapterName:a,cwd:o,title:s,logFilePath:c,startedAt:l,machineId:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=Xe({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(T.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...l===void 0?{}:{startedAt:l},...u===void 0?{}:{machineId:u},...m})})}var xs=class{bus;agentStates=new Map;sessionStates=new Map;unsubscribe;staleThresholdMs;constructor(e,t){this.bus=e,this.staleThresholdMs=t?.staleThresholdMs??36e5}start(){this.unsubscribe||=this.bus.on(O.contextWindow.updated,e=>{let{agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s}=e.payload;if(!n)return;let c={agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s,updatedAt:Date.now()};this.agentStates.set(t,c),this.recomputeSessionState(n)})}stop(){this.unsubscribe?.(),this.unsubscribe=void 0,this.agentStates.clear(),this.sessionStates.clear()}getSessionState(e){return this.sessionStates.get(e)}clearSession(e){this.sessionStates.delete(e);for(let[t,n]of this.agentStates)n.sessionId===e&&this.agentStates.delete(t)}recomputeSessionState(e){let t=Date.now(),n;for(let[r,i]of this.agentStates){if(t-i.updatedAt>this.staleThresholdMs){this.agentStates.delete(r);continue}i.sessionId===e&&(!n||i.percentage>n.percentage)&&(n=i)}n&&this.sessionStates.set(e,{currentTokens:n.currentTokens,maxTokens:n.maxTokens,percentage:n.percentage,level:n.level,worstAgentId:n.agentId,lastUpdatedAt:n.updatedAt})}};export{Zn as $,Ti as A,Yr as B,Eo as C,ka as D,wo as E,ni as F,Vr as G,Jr as H,ei as I,fr as J,kr as K,$r as L,q as M,xi as N,Aa as O,ti as P,or as Q,Qr as R,Do as S,Oo as T,qr as U,Xr as V,Gr as W,H as X,cr as Y,sr as Z,Bo as _,rs as a,jo as b,$o as c,qo as d,Kn as et,Go as f,Uo as g,Ho as h,gs as i,wi as j,la as k,Xo as l,Vo as m,bs as n,Nn as nt,ns as o,Ko as p,Dr as q,ys as r,Cn as rt,ts as s,xs as t,Fn as tt,Yo as u,Lo as v,Ao as w,To as x,Mo as y,Zr as z};
@@ -1 +0,0 @@
1
- import{$t as e,A as t,Bt as n,Cn as ee,Gt as r,Jt as i,Kt as a,Sn as o,Vt as s,en as c,nn as l,qt as u,vn as te,xn as d}from"./schemas-ClkcU_N5.mjs";import"./compression-CPrVeC42.mjs";import{t as f}from"./schemas-BmoFWBdh.mjs";import{i as p}from"./account-identity-C-v4mHq3.mjs";import{t as m}from"./storage-namespace-definition-BUpCw171.mjs";import{CompressSessionLineageSchema as h,ForkSessionLineageSchema as g,RootSessionLineageSchema as _,SubagentSessionLineageSchema as v}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as y}from"zod";import{createBusNamespace as b}from"@makaio/framework/core";const x=b(`session`,t),S=x.subjects;function ne(e){return s.includes(e.type)}const re=`ui-warnings`,ie=`connector-swap-warning-suppressed`,ae=1440*60*1e3,oe={cancel:`cancel`,edit:`edit`,continue:`continue`},C=`CONNECTOR_SWAP_CANCELLED`;var w=class extends Error{code=C;constructor(){super(`Connector swap cancelled by user`),this.name=`ConnectorSwapCancelledError`}};function T(e){return e instanceof w||e instanceof Error&&`code`in e&&e.code===`CONNECTOR_SWAP_CANCELLED`}const E={branch:{label:`branch`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},subagent:{label:`subagent`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},fork:{label:`fork`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},compress:{label:`compress`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},rewrite:{label:`rewrite`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},coordinator:{label:`coordinator`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1},aside:{label:`aside`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1}};function D(e){return e!=null&&E[e].staysInView}function O(e){return e==null||E[e].navigatesToChild}function k(e){return e!=null&&E[e].canMergeBack}function A(e){return E[e]}const j=y.object({timestamp:y.number(),messageId:y.string()}),M=m(`message`,{schemas:{append:{request:y.object({message:l.omit({messageId:!0}).extend({messageId:y.string().optional()}),emitEvent:y.boolean().optional()}),response:y.object({message:l})},getBySession:{request:y.object({sessionId:y.string(),limit:y.number().int().min(1).optional(),after:j.optional(),includeAfter:y.boolean().optional(),order:y.enum([`asc`,`desc`]).optional()}),response:y.object({messages:y.array(l),nextCursor:j.nullable()})},getByTurn:{request:y.object({turnId:y.string()}),response:y.object({messages:y.array(l)})},get:{request:y.object({messageId:y.string()}),response:y.object({message:l.nullable()})},getByAdapterMessageId:{request:y.object({adapterMessageId:y.string()}),response:y.object({message:l.nullable()})},search:{request:y.object({query:y.string(),sessionId:y.string().optional(),limit:y.number().int().min(1).optional()}),response:y.object({messages:y.array(l),total:y.number()})},ftsSearch:{request:y.object({query:y.string(),sessionId:y.string().optional(),limit:y.number().int().min(1).optional().default(20)}),response:y.object({results:y.array(y.object({messageId:y.string(),sessionId:y.string(),score:y.number(),excerpt:y.string()})),total:y.number()})},upsertByAdapterMessageId:{request:y.object({sessionId:y.string(),turnId:y.string().nullable(),adapterMessageId:y.string(),role:y.enum([`user`,`assistant`]),contentText:y.string(),blocks:y.array(e),agentId:y.string().optional(),adapterSessionId:y.string().optional(),timestamp:y.number(),origin:c.optional()}),response:y.object({messageId:y.string(),created:y.boolean()})},stored:y.object({message:l})}}),N=M.subjects;function P(e,t){return e.timestamp===t.timestamp?e.messageId.localeCompare(t.messageId):e.timestamp-t.timestamp}function F(e,t){return P(t,e)}function I(e){return{timestamp:e.timestamp,messageId:e.messageId}}function L(e){return`${e.timestamp}:${e.messageId}`}const R=y.object({after:y.string().optional(),limit:y.number().int().min(1).optional(),types:y.array(y.string()).optional(),includeReasoning:y.boolean().optional(),order:y.enum([`asc`,`desc`]).optional()}),se=y.object({events:y.array(n),nextCursor:y.string().nullable(),totalCount:y.number().optional()}),z=m(`sessionEvent`,{schemas:{append:{request:y.object({event:n}),response:y.object({success:y.boolean()})},getEvents:{request:y.object({sessionId:y.string(),options:R.optional()}),response:se},getByIds:{request:y.object({sessionId:y.string(),eventIds:y.array(y.string())}),response:y.object({events:y.array(n)})},deleteBySession:{request:y.object({sessionId:y.string()}),response:y.object({success:y.boolean(),deletedCount:y.number().optional()})},getEventsBySessions:{request:y.object({sessionIds:y.array(y.string()),types:y.array(y.string()),limitPerSession:y.number().int().min(1).optional()}),response:y.object({eventsBySession:y.record(y.string(),y.array(n))})}}}),B=z.subjects,V=r.extend({preview:a});function H(e,t){e.clientAccountId!==void 0&&e.lastClientIdentityObservation===void 0&&t.addIssue({code:y.ZodIssueCode.custom,path:[`lastClientIdentityObservation`],message:`lastClientIdentityObservation is required when clientAccountId is provided`}),e.clientAccountId!==void 0&&e.clientId===void 0&&t.addIssue({code:y.ZodIssueCode.custom,path:[`clientId`],message:`clientId is required when clientAccountId is provided`})}const U=r.superRefine((e,t)=>{H(e,t)}),W=y.object({sessionId:y.string(),session:U,ifAbsent:y.boolean().optional()}).superRefine((e,t)=>{e.sessionId!==e.session.sessionId&&t.addIssue({code:y.ZodIssueCode.custom,path:[`session`,`sessionId`],message:`session.sessionId must match the top-level sessionId`})}),G=y.string().nullable().optional(),K=y.enum([`active`,`closed`,`archived`,`discovered`]),ce=y.object({adapterName:y.string(),adapterId:y.string(),adapterSessionId:y.string().optional()}),le=y.object({agentId:y.string(),adapterName:y.string(),adapterId:y.string(),adapterSessionId:y.string(),lastActivityAt:y.number().finite()});function ue(e,t){e.identity!==void 0&&e.expectIdentityOpenForLead===void 0&&t.addIssue({code:y.ZodIssueCode.custom,path:[`expectIdentityOpenForLead`],message:`expectIdentityOpenForLead is required when identity is provided`}),e.expectIdentityOpenForLead!==void 0&&e.identity===void 0&&t.addIssue({code:y.ZodIssueCode.custom,path:[`identity`],message:`identity is required when expectIdentityOpenForLead is provided`}),e.reconcileAdapterSession!==void 0&&(e.identity!==void 0||e.expectIdentityOpenForLead!==void 0)&&t.addIssue({code:y.ZodIssueCode.custom,path:[`reconcileAdapterSession`],message:`reconcileAdapterSession cannot be combined with the identity-open-for-lead authority mode`})}const q={request:y.object({sessionId:y.string(),status:K.optional(),expectedStatus:y.array(K).nonempty().optional(),parentSessionId:y.string().nullable().optional(),contextInheritance:ee.optional(),rootSessionId:y.string().optional(),forkPointMessageId:y.string().optional(),branchKind:d.optional(),isOrchestrated:y.boolean().optional(),clientId:y.string().optional(),clientAccountId:y.string().optional(),lastClientIdentityObservation:p.optional(),executionTargetId:y.string().nullable().optional(),approvalPolicyOverride:f.nullable().optional(),title:y.string().optional(),targetWorkingDirectory:y.string().optional(),createdAt:y.number().finite().optional(),lastActivityAt:y.number().finite().optional(),metadata:u.nullable().optional(),spawningToolCallId:y.string().nullable().optional(),machineId:G,identity:ce.optional(),expectIdentityOpenForLead:y.string().nullable().optional(),reconcileAdapterSession:le.optional()}).superRefine((e,t)=>{ue(e,t)}),response:y.object({success:y.boolean(),clientAccountChanged:y.boolean().optional()})},de=y.enum([`live`]),J=y.object({externalSessionId:y.string(),source:y.string(),clientId:y.string().optional(),adapterId:y.string().optional(),cwd:y.string().nullable(),logFilePath:y.string().nullable().optional(),startedAt:y.number().finite().optional(),title:y.string().nullable().optional(),metadata:u.optional(),lastClientIdentityObservation:p.optional(),importStatus:y.enum([`discovered`,`tracking`]).optional(),activation:de.optional(),isSidechain:y.boolean().optional(),machineId:G}),Y=y.discriminatedUnion(`kind`,[J.merge(_),J.merge(g),J.merge(v),J.merge(h)]),X=y.object({externalSessionId:y.string(),source:y.string(),cwd:y.string().optional(),logFilePath:y.string().optional(),machineId:G}),Z=y.discriminatedUnion(`outcome`,[y.object({outcome:y.literal(`rebound`),sessionId:y.string()}),y.object({outcome:y.literal(`not-found`)})]),Q=m(`session`,{schemas:{get:{request:y.object({sessionId:y.string()}),response:y.object({session:r.nullable()})},set:{request:W,response:y.object({success:y.boolean(),clientAccountChanged:y.boolean().optional()})},delete:{request:y.object({sessionId:y.string()}),response:y.object({success:y.boolean()})},list:{request:y.object({status:y.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:y.number().int().min(1).optional(),offset:y.number().int().min(0).optional(),includePreview:y.boolean().optional(),executionTargetId:y.string().optional()}),response:y.object({sessions:y.array(i),total:y.number()})},getChildren:{request:y.object({sessionId:y.string()}),response:y.object({children:y.array(te)})},search:{request:y.object({query:y.string(),limit:y.number().int().min(1).optional(),status:y.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:y.boolean().optional()}),response:y.object({sessions:y.array(V),total:y.number()})},update:q,getByAdapterSessionId:{request:y.object({adapterSessionId:y.string(),source:y.string().optional(),adapterName:y.string().optional()}),response:y.object({session:r.nullable()})},getStatusCounts:{request:y.object({}),response:y.object({all:y.number(),active:y.number(),closed:y.number(),archived:y.number(),discovered:y.number()})},importUpsert:{request:Y,response:y.object({sessionId:y.string(),created:y.boolean()})},rebindObserved:{request:X,response:Z},getByLogFilePath:{request:y.object({logFilePath:y.string()}),response:y.object({session:r.nullable()})},listImported:{request:y.object({source:y.string().optional(),importStatus:o.optional()}),response:y.object({sessions:y.array(r)})},countBySource:{request:y.object({source:y.string()}),response:y.object({total:y.number(),imported:y.number(),discovered:y.number(),tracking:y.number()})},updateImportStatus:{request:y.object({sessionId:y.string(),importStatus:o}),response:y.object({success:y.boolean()})}}}),fe=Q.subjects,$=`makaio:extraction-excluded`;function pe(e){return e?.[$]===!0}function me(){return{[$]:!0}}export{ae as A,k as C,T as D,w as E,ne as M,x as N,oe as O,S as P,D as S,C as T,I as _,Q as a,N as b,W as c,q as d,z as f,L as g,F as h,Y as i,re as j,ie as k,U as l,P as m,me as n,X as o,B as p,pe as r,Z as s,$ as t,fe as u,j as v,O as w,A as x,M as y};
@@ -1,2 +0,0 @@
1
- import{resolveMakaioHome as e}from"./runtime-node/makaio-config.mjs";import{t}from"./extension-package-provenance-C7oO5JAE.mjs";import{_ as n,d as r,l as i,n as a,o,r as s,u as c,x as l,y as u}from"./bootstrap-start-client-C1ZHbv6e.mjs";import{mintOrRotateWorkflowExecutionBusSecret as d}from"./runtime-node/workflow-execution-bus-access.mjs";import{z as f}from"zod";import{execFile as p,spawn as m}from"node:child_process";import{promisify as ee}from"node:util";import*as h from"node:fs/promises";import{access as te}from"node:fs/promises";import*as g from"node:path";import{basename as ne,isAbsolute as re,join as ie,relative as ae}from"node:path";import*as _ from"node:crypto";import{randomUUID as v}from"node:crypto";import{constants as oe}from"node:fs";import{AdapterSubjects as se,BoundedRecoveryEvidenceSchema as y,ExecutionAttemptSchemas as b,ExecutionAttemptSubjects as x,FrameworkContractNamespaces as ce,FrameworkStorageNamespaces as le,JsonValueSchema as ue,PRE_REQUEST_REJECTION_CODE as de,PROVIDER_ALLOCATION_REF_VERSION as fe,ProviderAllocationRefSchema as pe,RECOVERY_EVIDENCE_LIMITS as S,WorkerCapabilitiesSchema as me,WorkerSchemas as he,WorkerSubjects as C,WorkflowRunContextSchema as ge,WorkflowRunResultSchema as _e,WorkflowWorkerConfigSchema as ve,createWorkflowCancelSubject as ye}from"@makaio/framework/contracts";import{BusAbortError as be,createBusInstance as w,isRequestCancellation as T,waitForSubscriptionPropagation as xe}from"@makaio/framework/bus";import{ExtensionCoordinator as Se,KernelSubjects as Ce,coalesceExtensionOverrides as we,filterEligibleExtensions as Te}from"@makaio/framework/kernel";import{BaseService as Ee}from"@makaio/framework/service-base";import{AdapterRuntimeSubjects as De,registerAdapterRuntimeIdentityHandlers as Oe}from"@makaio/framework/services/adapter-runtime";import{devNull as E}from"node:os";import{CLIDetectionNamespace as ke,CLIDetectionSubjects as Ae}from"@makaio/framework/services/cli-detection/namespace";import{SessionOrchestratorToken as je,ToolRegistryToken as Me,canonicalModelPackage as Ne,createSubagentServicePackage as Pe,createToolContributionProcessor as Fe,frameworkCorePackages as D,sessionBridgePackage as Ie,sessionOrchestratorPackage as Le,sessionPackage as Re,sessionStoragePackage as ze,toolRegistryPackage as Be}from"@makaio/framework/services";import{AdapterSubsystemSubjects as Ve}from"@makaio/framework/services/adapter-subsystem";import{createClientsCorePackage as He}from"@makaio/framework/clients";import{AdapterSubsystemToken as O,createAdapterSubsystemContributionProcessor as Ue,createAdapterSubsystemPackage as We,orderAfterAdapterSubsystem as Ge}from"@makaio/framework/adapter-subsystem";import{execa as Ke}from"execa";import qe from"piscina";import{ExecutionAttemptAuthority as Je,WORKFLOW_WORKLOAD_KIND as k,WORKFLOW_WORKLOAD_VERSION as A,WorkflowStorageSubjects as Ye,buildWorkflowAttemptInstruction as Xe,parseWorkflowAttemptInstruction as j,runAuthorityDispatchedAttempt as Ze,toCommittedWorkflowRunnerCompletion as Qe}from"@makaio/framework/workflow-engine";import{runWorkflowOrchestrator as $e}from"@makaio/framework/workflow-engine/workflow-orchestrator";import{setTimeout as et}from"node:timers/promises";function M(e){return e.on(se.getCapabilities,async t=>{let{adapterName:n,adapterId:r}=t.payload;if(r){await t.next();return}if(n){let r=await e.requestOptional(De.resolveId,{adapterName:n}),i=r.handled?r.data.adapterId:void 0;i&&(t.payload.adapterId=i)}await t.next()},{priority:20})}function N(e){let{coordinator:t,configRepository:n,platformDefaults:r,prepareAuthRuntime:i,runtimeSnapshotHandlerPriority:a,runtimeDefinitionHandlerPriority:o}=e,s=We({configRepository:n,coordinator:t,platformDefaults:r,...i!==void 0&&{prepareAuthRuntime:i},...a!==void 0&&{runtimeSnapshotHandlerPriority:a},...o!==void 0&&{runtimeDefinitionHandlerPriority:o}});return t.registerContributionProcessor(Ue({getAdapterSubsystemService:()=>t.getExtensionService(O)})),{adapterSubsystemPackage:s}}function P(e){let{bus:t,currentMachineId:n}=e,r=Oe(t,{currentMachineId:n,listKnownAdapterNames:e.listKnownAdapterNames??(async()=>{let{configs:e}=await t.request(Ve.listAdapterConfigs,{});return e.map(e=>e.name)}),...e.resolveLiveAdapterId!==void 0&&{resolveLiveAdapterId:e.resolveLiveAdapterId},...e.resolveLiveAdapterIdentity!==void 0&&{resolveLiveAdapterIdentity:e.resolveLiveAdapterIdentity},...e.listLiveAdapterIdentities!==void 0&&{listLiveAdapterIdentities:e.listLiveAdapterIdentities}}),i=M(t);return{cleanup:()=>{r.cleanup(),i()}}}function F(e,t){if(!(e instanceof Error))return!1;let{rootPackageName:n,subpath:r}=tt(t),i=(r===void 0?[t]:[t,n]).flatMap(e=>[`Cannot find package '${e}'`,`Cannot find module '${e}'`,`Cannot find package "${e}"`,`Cannot find module "${e}"`]),a=e;return(a.code===`ERR_MODULE_NOT_FOUND`||a.code===`MODULE_NOT_FOUND`)&&i.some(t=>e.message.includes(t))||a.code===`ERR_PACKAGE_PATH_NOT_EXPORTED`&&r!==void 0&&e.message.includes(`Package subpath '${r}' is not defined by "exports"`)&&nt(e.message,n)?!0:i.some(t=>e.message.includes(t))}async function I(e){try{return await import(e)}catch(t){if(F(t,e))return null;throw t}}function tt(e){let t=e.split(`/`);return e.startsWith(`@`)?{rootPackageName:t.slice(0,2).join(`/`),subpath:t.length>2?`./${t.slice(2).join(`/`)}`:void 0}:{rootPackageName:t[0]??e,subpath:t.length>1?`./${t.slice(1).join(`/`)}`:void 0}}function nt(e,t){let n=t,r=t.replaceAll(`/`,`\\`);return e.includes(`/${n}/package.json`)||e.includes(`\\${r}\\package.json`)}async function L(e,t=process.env,n=process.platform){let r=t[Object.keys(t).find(e=>e.toUpperCase()===`PATH`)??`PATH`]??``,i=(t.PATHEXT??`.EXE;.CMD;.BAT;.COM`).split(`;`).filter(Boolean),a=n===`win32`?g.extname(e)===``?i:[``,...i]:[``];for(let t of r.split(g.delimiter)){let n=t.replace(/^"|"$/gu,``),r=g.resolve(n||process.cwd());for(let t of a){let n=g.join(r,`${e}${t}`);try{return await te(n,oe.X_OK),n}catch{}}}}async function R(e,t=5e3,n=1e3){let{stdout:r}=await Ke(e,[`--version`],{forceKillAfterDelay:n,timeout:t});return r}function rt(e){return e.match(/(\d+\.\d+\.\d+)/u)?.[1]??`unknown`}async function it(e,t=L,n=R){try{let r=await t(e);if(r===void 0)return{binary:e,found:!1};let i=await n(r);return i.length===0?{binary:e,found:!1}:{binary:e,found:!0,path:r,version:rt(i)}}catch{return{binary:e,found:!1}}}async function at(e,t=L,n=R){return Promise.all(e.map(e=>it(e,t,n)))}var ot=class extends Ee{constructor(e){super(e)}onInit(){this.registerHandler(Ae.scan,async e=>{let t=await at(e.payload.binaries);e.setResult({results:t})})}};const st={name:`makaio.cli-detection`,displayName:`CLI Detection`,version:`0.1.0`,critical:!0,surface:`any`,namespaces:[ke],create:e=>new ot(e.bus)};function ct(e,t){e.push(...lt(t))}function lt(e){return e===void 0?[]:typeof e==`function`?[e]:[...e]}function ut(e,t=[]){let n=new Set([e]),r=new Set,i=new Map;for(let e of t)typeof e==`string`?n.add(e):(r.add(e.id),e.version!==void 0&&i.set(e.id,e.version));return{hosts:n,capabilities:r,...i.size>0?{capabilityVersions:i}:{}}}function dt(e=[]){return e.some(e=>typeof e==`string`&&e===`node`)?e:[`node`,...e]}function ft(e){return we(Te(mt(e.packages,e.configProvider),e.surface,e.runtimeEnvironment))}function pt(e,n){let r=ft(n),i=new Set(r.map(t));return e.filter(({ownerPackage:e})=>i.has(e)).map(({package:e})=>e)}function mt(e,t){return t?e.filter(e=>t.loadEnabled(e.name)!==!1):e}function ht(e,t){return e.filter(e=>e.runtimeOwnership?.[t]===!0).map(e=>e.name)}function gt(e,t){let n=ht(e,t);if(n.length>1)throw Error(`Multiple extensions own runtimeOwnership.${t}: ${n.join(`, `)}`)}function _t(e){return gt(e,`sessionOrchestrator`),ht(e,`sessionOrchestrator`).length===0}function vt(e){return e===!0||_t(e)?D:D.filter(e=>e.name!==je.name)}function yt(e,t,n){let r=[];try{for(let i of e){let e=i.runtimeBoot;e&&ct(r,e.configure({bus:t,registerContributionProcessor:e=>{r.push(n.registerContributionProcessor(e))},forEachActiveExtension:e=>{n.forEachActiveExtension(e)}}))}}catch(e){let t=[];for(let e of[...r].reverse())try{e()}catch(e){t.push(e)}throw t.length>0?AggregateError([e,...t],`Extension boot contribution failed and rollback cleanup reported additional errors`,{cause:e}):e}return r}function bt(){let e=process.env.MAKAIO_SKIP_EXTENSIONS;if(!e)return new Set;let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(t)}var xt=class{pool;constructor(e){this.pool=new qe({filename:e.workerEntry,maxThreads:e.maxConcurrency??4,idleTimeout:e.idleTimeoutMs??3e4})}async run(e,t,n){return this.pool.run(e,{signal:t,transferList:n})}onMessage(e){return this.pool.on(`message`,e),()=>this.pool.off(`message`,e)}async dispose(){await this.pool.destroy()}},z=class extends Error{code;constructor(e,t){super(e),this.code=t,this.name=`MaterializationError`}};function B(e,t,n){let r=g.resolve(t)+g.sep,i=g.resolve(e);if(i!==g.resolve(t)&&!i.startsWith(r))throw new z(`${n} escapes allowed root: ${e} is not within ${t}`,`containment-violation`)}async function V(e,t,n,r){let i=r??await h.realpath(t),a;try{a=await h.realpath(e)}catch{return e}let o=i+g.sep;if(a!==i&&!a.startsWith(o))throw new z(`${n} escapes allowed root via symlink: real path ${a} is not within ${i}`,`symlink-escape`);return a}function St(e){let t=e.indexOf(`-`);if(t===-1)throw new z(`Invalid SRI integrity format: ${e}`,`contribution-integrity-mismatch`);return{algorithm:e.slice(0,t),digest:e.slice(t+1)}}async function Ct(e,t){let n=await h.readFile(e);return _.createHash(t).update(n).digest(`base64`)}const H=new Set([`.git`,`node_modules`]);function wt(e){return H.has(e.toLowerCase())}async function Tt(e,t){let n=t.toLowerCase();if(!H.has(n))return!1;if(t===n)return!0;try{let[r,i]=await Promise.all([h.lstat(g.join(e,t)),h.lstat(g.join(e,n))]);return r.dev===i.dev&&r.ino===i.ino}catch(e){if(e.code===`ENOENT`)return!1;throw e}}const Et=H,Dt=new Set([`.DS_Store`]);async function Ot(e,t){let n=_.createHash(t),r=[];async function i(t){let n=await h.readdir(t,{withFileTypes:!0});for(let a of n){let n=g.join(t,a.name);if(a.isSymbolicLink())throw new z(`Contribution package contains a symbolic link: ${g.relative(e,n)}`,`symlink-escape`);if(a.isDirectory()){Et.has(a.name)||await i(n);continue}if(a.isFile()){Dt.has(a.name)||r.push(g.relative(e,n));continue}throw new z(`Contribution package contains an unsupported filesystem entry: ${g.relative(e,n)}`,`contribution-integrity-mismatch`)}}await i(e),r.sort();for(let t of r)n.update(t.split(g.sep).join(`/`)),n.update(`\0`),n.update(await h.readFile(g.join(e,t))),n.update(`\0`);return`${t}-${n.digest(`base64`)}`}async function kt(e,t=`sha256`){let n=_.createHash(t),r=[];async function i(t){let n=await h.readdir(t,{withFileTypes:!0});for(let a of n){let n=g.join(t,a.name);if(!await Tt(t,a.name)){if(a.isDirectory()){await i(n);continue}if(a.isFile()){r.push(g.relative(e,n));continue}throw a.isSymbolicLink()?new z(`Workspace root contains a symbolic link: ${g.relative(e,n)}`,`symlink-escape`):new z(`Workspace root contains an unsupported filesystem entry: ${g.relative(e,n)}`,`unsupported-filesystem-entry`)}}}await i(e),r.sort();for(let t of r){n.update(t),n.update(`\0`);let r=await h.readFile(g.join(e,t));n.update(r),n.update(`\0`)}return`${t}-${n.digest(`base64`)}`}async function At(e,t,n){let r=g.join(t,`node_modules`,e.packageName);B(r,t,`Contribution package directory`),await V(r,t,`Contribution package directory`,n);let i=g.join(r,`package.json`),a;try{a=await h.readFile(i,`utf-8`)}catch{throw new z(`Contribution package not found: ${e.packageName} (expected at ${r})`,`contribution-missing`)}let o=JSON.parse(a);if(o.name!==e.packageName)throw new z(`Contribution identity mismatch: expected ${e.packageName}, found ${o.name??`<none>`}`,`contribution-missing`);if(o.version!==e.version)throw new z(`Contribution version mismatch for ${e.packageName}: expected ${e.version}, found ${o.version??`<none>`}`,`contribution-version-mismatch`);let s=g.join(r,e.entrypoint);B(s,r,`Contribution entrypoint`),await V(s,t,`Contribution entrypoint`,n);try{await h.access(s)}catch{throw new z(`Contribution entrypoint not found for ${e.packageName}: ${e.entrypoint}`,`contribution-entrypoint-mismatch`)}let{algorithm:c}=St(e.integrity),l;try{l=await Ot(r,c)}catch(t){if(t instanceof z)throw t;let n=typeof t==`object`&&t&&`code`in t&&typeof t.code==`string`?t.code:void 0;throw n!==void 0&&!n.startsWith(`ERR_`)?new z(`Contribution package cannot be read for ${e.packageName}`,`contribution-entrypoint-mismatch`):t}if(l!==e.integrity)throw new z(`Contribution integrity mismatch for ${e.packageName}: expected ${e.integrity}, computed ${l}`,`contribution-integrity-mismatch`);return s}async function jt(e,t,n){let r=await n.resolveWorkspaceRoot(e.workspaceId);if(r===void 0)throw new z(`Unknown workspace ID: ${e.workspaceId}`,`unknown-workspace`);try{if(!(await h.stat(r)).isDirectory())throw new z(`Workspace root is not a directory: ${r}`,`containment-violation`)}catch(e){throw e instanceof z?e:new z(`Workspace root does not exist: ${r}`,`containment-violation`)}let i=await h.realpath(r),a=g.resolve(r,e.sourcePath);if(B(a,r,`Source path`),g.relative(r,a).split(g.sep).some(wt))throw new z(`Workflow source path selects excluded workspace content: ${e.sourcePath}`,`source-path-mismatch`);await V(a,r,`Source path`,i);let o=await kt(r);if(o!==e.rootDigest)throw new z(`Workspace root digest mismatch: expected ${e.rootDigest}, computed ${o}`,`digest-mismatch`);try{await h.access(a)}catch{throw new z(`Workflow source file not found: ${a}`,`source-missing`)}return{workspaceRoot:r,sourcePath:a,contributionEntrypoints:await Promise.all(t.map(e=>At(e,r,i))),platform:process.platform,arch:process.arch}}var U=class{options;manifest;pool;constructor(e){this.options=e,this.manifest=e.manifest}async run(e,t,n){this.pool??=new xt(this.options);let r=n??this.manifest,i=await this.materializeTask(e,r,t);return{state:`uncommitted`,result:await this.pool.run(i,t)}}runWithReadiness(e,t,r,i){this.pool??=new xt(this.options);let a=this.pool,o,s=!1,c,u=new Promise((t,n)=>{c=n,o=a.onMessage(n=>{l(n)&&n.executionAttemptId===i.executionAttemptId&&(n.executionId!==e.executionId||n.cancelSubject!==e.cancelSubject||(s=!0,o?.(),t(n)))})}),d=r??this.manifest,f=n(i.bootstrapDeadlineAt,t,async(t,n)=>{let r=await this.materializeTask(e,d,n);return a.run({...r,kind:`attempt-bound`,executionAttemptId:i.executionAttemptId,bootstrapDeadlineAt:i.bootstrapDeadlineAt,bootstrapPort:t},n,[t])});return f.then(()=>{s||(s=!0,o?.(),c(Error(`Workflow worker completed before ready signal: ${e.executionId}`)))},e=>{s||(s=!0,o?.(),c(e instanceof Error?e:Error(String(e))))}),{result:f,ready:u}}async dispose(){await this.pool?.dispose()}async materializeTask(e,t,n){if(n.throwIfAborted(),!(e.source.kind===`path`||t.contributionRefs.length>0))return{kind:`unbound`,config:e,manifest:t,contributionEntrypoints:[]};let r=e.materializationSpec;if(r?.kind!==`local-directory`)throw Error(`ThinWorkflowPiscinaRunner requires a local-directory materialization spec for path-backed workflows or declared contributions.`);if(this.options.resolveWorkspaceRoot===void 0)throw Error(`ThinWorkflowPiscinaRunner requires a host workspace-root resolver for local-directory materialization.`);let i=await jt(r,t.contributionRefs,{resolveWorkspaceRoot:this.options.resolveWorkspaceRoot});if(n.throwIfAborted(),e.source.kind!==`path`)throw Error(`local-directory materialization requires a path-backed workflow source.`);return{kind:`unbound`,config:{...e,source:{kind:`path`,path:i.sourcePath}},manifest:t,contributionEntrypoints:i.contributionEntrypoints}}};function Mt(e){return e.mode===`source`?ie(e.moduleDir,`workflow-worker`,`worker-entry.ts`):ie(e.moduleDir,`workflow-worker`,`worker-entry.mjs`)}var Nt=class{options;terminalAuthority=`authority`;constructor(e){this.options=e}async run(e,t,n,r){let i={...e,terminalAuthority:`authority`},a=n??this.options.manifest,o=this.options.requirements,s=r?.dispatchMetadata;t.throwIfAborted();let c=e.source.kind===`path`?await this.options.readRunContext?.(e.executionId,t):void 0;t.throwIfAborted();let l=Xe({id:v(),revision:`1`,config:e,...c==null?{}:{runContext:c},preservation:{required:[]}});return Qe(await Ze({authority:this.options.authority,executionId:e.executionId,instruction:l,withAttemptCreation:r?.withAttemptCreation,dispatch:e=>this.options.dispatch({executionAttemptId:e,config:i,...a!==void 0&&{manifest:a},...o!==void 0&&{requirements:o},...s!==void 0&&{metadata:s}},t)}),e)}},Pt=class{#e;constructor(e){this.#e=e.bus}async run(e,t,n){let i=ve.parse(e),a=await r(i);return{state:`uncommitted`,result:await $e({config:await c(i,a,this.#e,t),loaded:a,bus:this.#e,signal:t})}}};function Ft(){return{contributionRefs:[]}}function It(e){if(e.workflowRunner?.mode===`worker`&&!e.executionAttemptRepository)throw Error(`Worker dispatch mode requires an ExecutionAttemptRepository. Pass 'executionAttemptRepository' to createNodeWorkflowRunnerPackageOptions when workflowRunner.mode is 'worker'.`);let t;if(e.executionAttemptRepository){let n=e.executionAttemptBootstrapTimeoutMs;if(n===void 0)throw Error(`An ExecutionAttemptRepository requires executionAttemptBootstrapTimeoutMs`);t=new Je(e.executionAttemptRepository,{bootstrapTimeoutMs:n})}let n=ne(e.runtimeModuleDir)===`src`?`source`:`dist`,r=Lt({moduleDir:e.runtimeModuleDir,defaultWorkerEntryMode:n,runner:e.workflowRunner,bus:e.bus,authority:t});return{...r!==void 0&&{workflowRunner:r},executorConfig:{busUrl:e.busUrl,busAuth:{kind:`none`},platformDefaults:e.platformDefaults,makaioHome:e.makaioHome},...e.executionAttemptRepository!==void 0&&{executionAttemptRepository:e.executionAttemptRepository},...t!==void 0&&{executionAttemptAuthority:t},...e.workflowMaterializationSpecResolvers!==void 0&&{workflowMaterializationSpecResolvers:e.workflowMaterializationSpecResolvers}}}function Lt(e){let{runner:t}=e;if(t)switch(t.mode){case void 0:case`in-process`:if(e.bus===void 0)throw Error(`InProcessWorkflowRunner requires a bus instance. Pass 'bus' to createNodeWorkflowRunner when runner.mode is 'in-process'.`);return new Pt({bus:e.bus});case`worker`:{if(e.authority===void 0)throw Error(`WorkerRunner requires an ExecutionAttemptAuthority. Pass 'authority' to createNodeWorkflowRunner when runner.mode is 'worker'.`);let n=e.bus,r=t.dispatch??(n===void 0?void 0:(e,t)=>n.request(C.dispatch,{executionAttemptId:e.executionAttemptId,config:e.config,manifest:e.manifest,requirements:e.requirements,metadata:e.metadata},{signal:t}));if(r===void 0)throw Error(`WorkerRunner requires either a dispatch function or a bus instance. Pass 'bus' to createNodeWorkflowRunner when runner.mode is 'worker'.`);return new Nt({dispatch:r,authority:e.authority,...n!==void 0&&{readRunContext:async(e,t)=>(await n.request(Ye.getRunContext,{executionId:e},{signal:t})).runContext},...t.manifest!==void 0&&{manifest:t.manifest},...t.requirements!==void 0&&{requirements:t.requirements}})}case`piscina`:return new U({workerEntry:t.workerEntry??Mt({moduleDir:e.moduleDir,mode:t.workerEntryMode??e.defaultWorkerEntryMode}),manifest:t.manifest??Ft(),...t.resolveWorkspaceRoot!==void 0&&{resolveWorkspaceRoot:t.resolveWorkspaceRoot},maxConcurrency:t.maxConcurrency,idleTimeoutMs:t.idleTimeoutMs})}}const Rt=new Set([`accepted`,`duplicate`]);var W=class extends Error{decision;result;reason;constructor(e,t,n=`authority-rejected`){super(`Outcome delivery ${n===`deadline-exceeded`?`deadline exceeded`:`rejected by Authority`} (decision=${e}, executionId=${t.executionId}, status=${t.status})`),this.decision=e,this.result=t,this.reason=n,this.name=`OutcomeDeliveryError`}},G=class extends Error{decision;payload;reason;constructor(e,t,n=`authority-rejected`){super(`Attempt outcome delivery ${n===`deadline-exceeded`?`deadline exceeded`:`rejected by Authority`} (decision=${e}, executionAttemptId=${t.executionAttemptId}, outcome=${t.outcome.kind})`),this.decision=e,this.payload=t,this.reason=n,this.name=`AttemptOutcomeDeliveryError`}},zt=class extends Error{reason;constructor(e=`deadline-exceeded`){super(`Authority request delivery deadline exceeded`),this.reason=e,this.name=`AuthorityRequestDeliveryError`}};function Bt(e){let t={maxRetries:e?.maxRetries??7,baseDelayMs:e?.baseDelayMs??1e3,maxDelayMs:e?.maxDelayMs??3e4,deadlineMs:e?.deadlineMs??12e4};if(!Number.isSafeInteger(t.maxRetries)||t.maxRetries<0)throw TypeError(`Outcome submission maxRetries must be a non-negative safe integer, got ${t.maxRetries}`);for(let[e,n]of Object.entries({baseDelayMs:t.baseDelayMs,maxDelayMs:t.maxDelayMs,deadlineMs:t.deadlineMs}))if(!Number.isFinite(n)||n<=0)throw TypeError(`Outcome submission ${e} must be a positive finite number, got ${n}`);return t}async function Vt(e,t){if(t===void 0){await new Promise(t=>setTimeout(t,e));return}let n=t;n.throwIfAborted(),await new Promise((t,r)=>{let i=setTimeout(o,e),a=()=>o(n.reason);function o(e){clearTimeout(i),n.removeEventListener(`abort`,a),e===void 0?t():r(e)}n.addEventListener(`abort`,a,{once:!0})})}async function Ht(e,t,n){n?.throwIfAborted();let r;try{r=e()}catch{return}await new Promise((e,i)=>{let a=setTimeout(s,t),o=()=>s(n?.reason);function s(t){clearTimeout(a),n?.removeEventListener(`abort`,o),t===void 0?e():i(t)}r.then(()=>s(),()=>s()),n?.addEventListener(`abort`,o,{once:!0}),n?.aborted&&o()})}async function Ut(e,t,n,r,i){let a=t.baseDelayMs*2**(e-1),o=n-Date.now();await Vt(Math.min(a,t.maxDelayMs,o),i);let s=n-Date.now();if(s<=0)return!1;if(r!==void 0)try{await Ht(r,s,i)}catch{i?.throwIfAborted()}return Date.now()<n}async function Wt(e,t,n,r){let i=Bt(n?.retry),a=n?.reconnect,o=n?.signal,s=Date.now()+i.deadlineMs,c;for(let n=0;n<=i.maxRetries;n++){if(o?.throwIfAborted(),s-Date.now()<=0||n>0&&!await Ut(n,i,s,a,o))throw t();try{let n=s-Date.now();if(n<=0)throw t();return await e(n,o)}catch(e){if(o?.throwIfAborted(),r(e))throw e;if(c=e,Date.now()>=s)throw t()}}throw c??t()}async function K(e,t){return await Wt(e,()=>new zt,t,()=>!1)}async function Gt(e,t,n){return await Wt(async(n,r)=>{let i=await e(n,r);if(Rt.has(i))return i;throw t(i)},()=>t(`deadline-exceeded`,`deadline-exceeded`),n,e=>e instanceof W||e instanceof G)}async function Kt(e,t,n){return await Gt(async(n,r)=>(await e.request(C.control.outcome.submit,{executionAttemptId:t.executionAttemptId,executionId:t.executionId,result:t.result},r===void 0?{timeout:n}:{timeout:n,signal:r})).decision,(e,n)=>n===void 0?new W(e,t.result):new W(e,t.result,n),n)}async function qt(e,t,n){return await Gt(async(n,r)=>(await e.request(x.outcome.submit,t,r===void 0?{timeout:n}:{timeout:n,signal:r})).decision,(e,n)=>n===void 0?new G(e,t):new G(e,t,n),n)}const Jt={maxRetries:3,baseDelayMs:200,maxDelayMs:2e3,deadlineMs:1e4},Yt={persistentStorage:!0,customCapabilities:[`workflow.local-runtime`,`workflow.thin-runner`],suspensionStrategy:`wait-in-process`,supportsRecovery:!1,materializationModes:[`local-directory`]},Xt={code:`outcome-acknowledged`,summary:`Piscina runner settled and the Authority acknowledged its workflow outcome`},Zt={code:`outcome-delivery-ended`,summary:`Piscina runner settled and its bounded workflow outcome delivery ended`};function q(e){let t=new Set,n;return{publish:r=>{if(n!==void 0)return;let i=r();n=i;let a=[...t];t.clear();for(let t of a)try{t(i)}catch(t){console.error(`${e} observer failed:`,t)}},observe:e=>n===void 0?(t.add(e),()=>t.delete(e)):(e(n),()=>void 0)}}function Qt(e){let t=q(`[PiscinaThinWorkflowProvider] Infrastructure-conclusion`);return{conclude:n=>{t.publish(()=>({evidence:y.parse({source:e.slice(0,S.source),summary:n.slice(0,S.summary),observedAt:new Date().toISOString()})}))},observe:t.observe}}function $t(e,t){let n=q(`[PiscinaThinWorkflowProvider] Provider-completion`),r=q(`[PiscinaThinWorkflowProvider] Local-observation-loss`),i;return{completion:{complete:r=>{i===void 0&&n.publish(()=>{let n=y.parse({source:e.slice(0,S.source),code:r.code,summary:r.summary,observedAt:new Date().toISOString()});return t(),i=`completion`,n})},observe:n.observe},localObservationLoss:{lose:()=>{i===void 0&&r.publish(()=>(i=`local-observation-loss`,{}))},observe:e=>r.observe(()=>e())}}}var en=class{executionAttemptId;controller;detachCallerAbort;infrastructure;completion;localObservationLoss;revokeBusIdentity;constructor(e,t,n,r,i,a,o){this.executionAttemptId=e,this.controller=t,this.detachCallerAbort=n,this.infrastructure=r,this.completion=i,this.localObservationLoss=a,this.revokeBusIdentity=o}cancel(e){return this.controller.abort(e??`Worker cancelled`),this.detachCallerAbort(),Promise.resolve()}terminate(){return this.controller.abort(`Worker terminated`),this.detachCallerAbort(),this.revokeBusIdentity(),Promise.resolve()}release(){return this.detachCallerAbort(),Promise.resolve()}observeInfrastructureConclusion(e){return this.infrastructure.observe(e)}observeProviderCompletion(e){return this.completion.observe(e)}observeLocalObservationLoss(e){return this.localObservationLoss.observe(e)}},tn=class{options;environment=`piscina`;allocationLifetime=`provisioner-process-bound`;baseCapabilities;constructor(e){this.options=e,this.baseCapabilities=me.parse({...Yt,...e.baseCapabilities,suspensionStrategy:e.baseCapabilities?.suspensionStrategy??Yt.suspensionStrategy,supportsRecovery:!1})}get id(){return this.options.id}get displayName(){return this.options.displayName}async provision(e,t){t.throwIfAborted();let n=await this.resolveLaunchBeforeAllocation(e,t);if(t.throwIfAborted(),`kind`in n)return n;let r=n,i=new AbortController,a=Qt(this.id),o=()=>{i.abort(t.reason)};t.addEventListener(`abort`,o,{once:!0});let s=()=>t.removeEventListener(`abort`,o),c;try{let{executionAttemptId:n,executionId:o}=e,l=this.buildAllocationRef(n),u=d({executionAttemptId:n,executionId:o}),f=!1,p=()=>{f||(f=!0,u.cleanup())};c=p;let m=$t(this.id,p),ee=new en(n,i,s,a,m.completion,m.localObservationLoss,p);t.throwIfAborted();let h=this.options.runner.runWithReadiness({...r,busAuth:{kind:`hmac`,secret:u.secret}},i.signal,e.runtimeInputs.workerManifest,{executionAttemptId:n,bootstrapDeadlineAt:e.bootstrapDeadlineAt});return h.ready.then(()=>this.submitOutcomeOnSettlement(h.result,o,n,r.workflowId,a.conclude,m.completion.complete),e=>{i.abort(e),h.result.catch(()=>void 0),c?.(),a.conclude(`Piscina worker for attempt '${n}' was refused before its workflow run was admitted: `+(e instanceof Error?e.message:String(e))),m.localObservationLoss.lose()}),{kind:`allocated`,allocationRef:l,handle:ee}}catch(e){throw i.abort(e),s(),c?.(),e}}async resolveLaunchBeforeAllocation(e,t){try{let n=await this.options.launchResolver(e,t);return t.throwIfAborted(),n.busUrl?n:this.confirmedAbsent(`Piscina workflow configuration has no bus URL before local allocation setup`)}catch{return t.throwIfAborted(),this.confirmedAbsent(`Workflow launch resolution failed before Piscina local allocation setup`)}}confirmedAbsent(e){return{kind:`confirmed-absent`,evidence:y.parse({source:`piscina-thin-workflow-provider`,code:de,summary:e,observedAt:new Date().toISOString()})}}async submitOutcomeOnSettlement(e,t,n,r,i,a){let o;try{o=await e}catch(e){o={executionId:t,workflowId:r,status:`failed`,error:e instanceof Error?e.message:String(e)}}try{let e={...Jt,...this.options.outcomeRetry};await Kt(this.options.bus,{executionAttemptId:n,executionId:t,result:o},{retry:e})}catch(e){e instanceof W?console.error(`[PiscinaThinWorkflowProvider] Outcome rejected for execution '${t}' attempt '${n}' (decision=${e.decision}):`,e):console.error(`[PiscinaThinWorkflowProvider] Failed to submit outcome for execution '${t}' attempt '${n}':`,e),i(`Piscina worker for attempt '${n}' ended without an acknowledged outcome because outcome submission could not be completed`),a(Zt);return}a(Xt)}buildAllocationRef(e){let t={version:fe,providerId:this.id,providerData:{executionAttemptId:e,allocatedAt:Date.now()}};return pe.parse(t)}};function nn(e){return async(t,n)=>{n.throwIfAborted();let r=await e({executionId:t.executionId,executionAttemptId:t.executionAttemptId});if(n.throwIfAborted(),r===null)throw Error(`Workflow launch instruction is unavailable for execution '${t.executionId}' attempt '${t.executionAttemptId}'`);let i=j(r);if(i.executionId!==t.executionId)throw Error(`Workflow instruction execution '${i.executionId}' does not match Worker request '${t.executionId}'`);return ve.parse({source:i.source,...i.definitionSnapshot===void 0?{}:{definition:i.definitionSnapshot},executionId:i.executionId,executionAttemptId:t.executionAttemptId,workflowId:i.workflowId,triggerPayload:i.triggerPayload,...i.triggerMode===void 0?{}:{triggerMode:i.triggerMode},inputs:i.inputs,...i.config===void 0?{}:{config:i.config},...i.artifactRef===void 0?{}:{artifactRef:i.artifactRef},scope:i.scope,...t.connection.busUrl===void 0?{}:{busUrl:t.connection.busUrl},busAuth:t.connection.busAuth,...t.connection.env===void 0?{}:{env:t.connection.env},coordinatorSessionId:i.coordinatorSessionId,cancelSubject:i.cancelSubject,suspensionStrategy:t.runtimeInputs.suspensionStrategy,terminalAuthority:i.terminalAuthority,...i.materializationSpec===void 0?{}:{materializationSpec:i.materializationSpec}})}}const rn=[ze,Ie,Re];function an(e){let t;return()=>(t??=(async()=>{let t=[];for(let n of[...e].reverse())try{await n()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Isolated workflow runtime shutdown reported errors`)})(),t)}function on(e,t,n){return P({bus:e,currentMachineId:n,resolveLiveAdapterId:e=>t.getExtensionService(O)?.resolveLiveAdapterId(e),resolveLiveAdapterIdentity:e=>t.getExtensionService(O)?.resolveLiveAdapterIdentity(e),listLiveAdapterIdentities:()=>t.getExtensionService(O)?.getLiveAdapterIdentities()??[]})}async function sn(e){let t=w();t.registerNamespaces([...ce,...le]);let{context:n}=e,r=new Se(t,{surface:`headless`,extensionContextBase:{cwd:n.cwd,platform:n.platform,homedir:n.homedir,makaioHome:n.makaioHome,username:n.username,machineId:n.machineId,tryImport:I}}),i,a=[()=>t.disconnect()],o=an(a);try{await e.connectAuthority(t);let s=[...e.contributedPackages,...await e.loadContributedPackages?.(t)??[]],{adapterSubsystemPackage:c}=N({coordinator:r,configRepository:e.configRepository,platformDefaults:{cwd:n.cwd},runtimeSnapshotHandlerPriority:1,runtimeDefinitionHandlerPriority:1,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime}}),l=He({definitions:s.flatMap(e=>e.clients??[]),binaryResolutionPolicy:`global-only`});r.registerContributionProcessor(Fe());let u=[...rn,c,Ne,..._t(s)?[Le]:[],Pe(1),Be,st,l,...Ge(s)];r.load(u),a.push(...yt(u,t,r)),a.push(()=>r.shutdown()),await r.startAll(),i=on(t,r,n.machineId),a.push(()=>{i?.cleanup(),i=void 0});let d=r.getExtensionService(Me);if(d===void 0)throw Error(`Isolated workflow tool registry did not start.`);for(let t of e.toolsets)await d.register(t);return await t.emit(Ce.ready,{machineId:n.machineId}),{bus:t,coordinator:r,machineId:n.machineId,shutdown:o}}catch(e){throw await o().catch(()=>void 0),e}}function cn(e){return Number.isInteger(e)&&e>=1&&e<=2147483647}function J(e,t){try{return process.kill(-e,t),`signalled`}catch(e){if(e.code!==`ESRCH`)throw e;return`absent`}}function ln(e){return typeof e==`object`&&!!e&&e.code===`ENOENT`}async function un(e,t,n){try{process.kill(-e,0)}catch(e){if(e.code===`ESRCH`)return{alive:!1};if(e.code!==`EPERM`)throw e}if(n)return{alive:!0};let r;try{r=await dn(t)}catch(e){return ln(e)?{alive:!0,psMissing:!0}:{alive:!0}}let i=!1;for(let t of r.trim().split(`
2
- `)){let[n,r,a]=t.trim().split(/\s+/);if(n===``||r===void 0||a!==void 0||!/^\d+$/.test(n)||r===``||Number(n)===e&&(i=!0,!r.startsWith(`Z`)))return{alive:!0}}return i?{alive:!1}:{alive:!0}}function dn(e){return new Promise((t,n)=>{p(`ps`,[`-A`,`-o`,`pgid=,stat=`],{timeout:e,maxBuffer:1024*1024},(e,r)=>{if(e!==null){n(e);return}t(r)})})}async function fn(e){if(e===void 0)return{quiesced:!0,signalledLiveGroup:!1};let t=!1;try{try{t=J(e,`SIGKILL`)===`signalled`}catch(e){if(e.code!==`EPERM`)throw e}let n=Date.now()+2e3,r=!1;for(;Date.now()<n;){let i=n-Date.now();if(i<=0)break;let a=await un(e,Math.min(1e3,i),r);if(!a.alive)return{quiesced:!0,signalledLiveGroup:t};r||=a.psMissing===!0,await et(20)}return{quiesced:!1,cause:r?`ps-unavailable`:`poll-timeout`,signalledLiveGroup:t}}catch{return{quiesced:!1,cause:`signal-error`,signalledLiveGroup:t}}}function pn(e,t,n){let r=new Date;return n.quiesced?t||n.signalledLiveGroup?{pid:e,outcome:`signalled-and-quiesced`,observedAt:r}:{pid:e,outcome:`exited`,observedAt:r}:{pid:e,outcome:t||n.signalledLiveGroup?`signalled-unconfirmed`:`unsignalled-unconfirmed`,cause:n.cause,observedAt:r}}async function mn(e){if(e.signal?.aborted)return{status:`cancelled`,exitCode:null};if(!cn(e.recipe.timeoutMs))return{status:`spawn-failed`,exitCode:null,message:`Setup timeout must be an integer between 1 and 2147483647 milliseconds`};if(process.platform===`win32`)return{status:`spawn-failed`,exitCode:null,message:`Setup process groups require a POSIX host`};try{return await hn(e)}catch{return{status:`spawn-failed`,exitCode:null,message:`Could not start the setup command`}}}function hn(e){return new Promise(t=>{let n=m(e.recipe.command,e.recipe.args,{cwd:e.workspaceRoot,env:{...process.env,...e.recipe.env,...e.env},shell:!1,detached:!0,stdio:`ignore`}),r,i,a=!1,o=e=>{if(r===void 0&&(r=e,n.pid!==void 0)){try{J(n.pid,`SIGTERM`)===`signalled`&&(a=!0)}catch(e){if(e.code!==`EPERM`){r=`stop-failed`;return}}i=setTimeout(()=>{try{n.pid!==void 0&&J(n.pid,`SIGKILL`)===`signalled`&&(a=!0)}catch(e){e.code!==`EPERM`&&(r=`stop-failed`)}},200)}},s=()=>o(`cancelled`),c=setTimeout(()=>o(`timed-out`),e.recipe.timeoutMs);e.signal?.addEventListener(`abort`,s,{once:!0}),e.signal?.aborted&&s(),n.once(`error`,()=>{r=`spawn-failed`}),n.once(`close`,o=>{clearTimeout(c),clearTimeout(i),e.signal?.removeEventListener(`abort`,s),fn(n.pid).then(e=>{t({status:e.quiesced?r??(o===0?`completed`:`failed`):`stop-failed`,exitCode:o,processGroup:n.pid===void 0?void 0:pn(n.pid,a,e)})})})})}async function gn(e,t,n){if(g.isAbsolute(t)||t.includes(`\\`)||t.split(`/`).includes(`..`))throw Error(`Source root must be workspace-relative`);let r=e;for(let i of t.split(`/`).filter(e=>e!==``&&e!==`.`))if(r=g.join(r,i),B(r,e,`Source root`),await V(r,e,`Source root`,e),n&&await h.mkdir(r).catch(e=>{if(e.code!==`EEXIST`)throw e}),!(await h.stat(r)).isDirectory())throw Error(`Source root must be a directory`);return V(r,e,`Source root`,e)}async function _n(e){e.signal?.throwIfAborted();let{requirement:t}=e,n=g.resolve(e.workspaceRoot);if(!g.isAbsolute(e.workspaceRoot)||n===g.parse(n).root)throw Error(`Workspace root must be an absolute, non-filesystem-root directory`);if(t.sourceRoots.length>1)throw Error(`Multiple source roots are not implemented`);if(t.sourceRoots.some(e=>e.source!==void 0)){if(e.realizeSource===void 0)throw Error(`Source acquisition requires an installed strategy`);if(t.provisioning!==`create`||t.custody!==`disposable`)throw Error(`Source acquisition currently requires a created disposable workspace`)}if(t.provisioning===`create`&&await h.mkdir(n),!(await h.lstat(n)).isDirectory())throw Error(`Workspace root must be a directory, not a symlink`);let r=await h.realpath(n),i=[];for(let n of t.sourceRoots){let a=await gn(r,n.path,t.provisioning===`create`);n.source!==void 0&&(await e.realizeSource({source:n.source,destination:a,signal:e.signal}),e.signal?.throwIfAborted()),i.push({id:n.id,path:a})}return vn(t,{workspaceRoot:r,sourceRoots:i})}function vn(e,t){let n=t.workspaceRoot,r=e.custody,i=!1,a=!0,o;return{binding:t,async runSetup(t={}){if(o!==void 0||i||!a)throw Error(`Workspace setup is unavailable`);if(t.signal?.aborted)return{status:`cancelled`,exitCode:null};i=!0;try{let r;for(let[i,o]of e.setup.entries()){let e=await mn({...t,recipe:o,workspaceRoot:n});if(r=e,a=e.status!==`stop-failed`,e.status!==`completed`)return{...e,commandIndex:i}}let i=r?.processGroup;return i===void 0?{status:`completed`,exitCode:0}:{status:`completed`,exitCode:0,processGroup:i}}finally{i=!1}},release(){return i||!a?Promise.reject(Error(`Workspace commands have not stopped`)):(o??=r===`external`?Promise.resolve():h.rm(n,{recursive:!0,force:!0}),o)}}}function Y(e,t){return e instanceof be?T(e,t):t?.aborted===!0?e===t.reason||e instanceof DOMException&&e.name===`AbortError`?!0:e instanceof Error&&e.name===`AbortError`&&`code`in e&&e.code===`ABORT_ERR`&&Object.is(e.cause,t.reason):!1}function X(e){return(e instanceof Error?e.message:String(e)).slice(0,8192)||`Local execution failed without a diagnostic message`}function yn(e){if(e.status!==`completed`)return e.status===`cancelled`?{kind:`cancelled`}:e.status===`stop-failed`?{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace setup stop-failed`}:{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace setup ${e.status}`}}function bn(e,t){return Y(e,t)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`workspace-preparation`,message:X(e)}}async function xn(e,t,n,r){let i=b[`instruction.get`].response.parse(await e.request(x.instruction.get,{executionAttemptId:t,runtimeGeneration:n},{signal:r}));if(i.decision===`found`)return i.instruction;throw Error(`Attempt instruction read refused: ${i.refusalReason}`)}async function Sn(e,t,n,r){let{executionAttemptId:i,runtimeGeneration:a}=t;t.control?.admissionPending();let o=b[`operation.admit`].response.parse(await K(async t=>await e.request(x.operation.admit,{executionAttemptId:i,runtimeGeneration:a,operationKind:n,admissionKey:r},{timeout:t}),{retry:t.retry,reconnect:t.reconnect}));if(o.decision===`refused`)throw t.control?.admissionSettled(o.refusalReason),new s(t.executionAttemptId,r,o.refusalReason);if(o.operationId===void 0)throw Error(`Attempt ${n} admission decision '${o.decision}' named no operation (executionAttemptId=${i}, admissionKey=${r})`);return t.control?.operationAdmitted(n,o.operationId),o.operationId}async function Cn(e,t,n){try{return{operationId:await Sn(e,t,n.operationKind,n.admissionKey)}}catch(r){if(!(r instanceof s&&r.refusalReason===`gate-closed`&&n.signal.aborted))throw r;return await Z(e,t,n.instruction,{kind:`cancelled`},void 0,n.workspace)}}function wn(e,t){return e.find(e=>e.kind===t.workload.kind&&e.version===t.workload.version)}function Tn(e){return{signal:e??new AbortController().signal,release:()=>{}}}async function Z(e,t,n,r,i,a){i!==void 0&&t.control?.operationConcluded(i);let o=await qt(e,{executionAttemptId:t.executionAttemptId,runtimeGeneration:t.runtimeGeneration,...i===void 0?{}:{operationId:i.operationId},outcome:r},{retry:t.retry,reconnect:t.reconnect});if(a!==void 0&&n!==void 0&&r.kind===`workload-result`&&n.preservation.required.length===0)try{await a.release()}catch{console.warn(`[makaio-worker] Acknowledged workspace cleanup failed.`)}return{outcome:r,decision:o}}async function En(e,t,n,r){let i=b[`operation.report`].response.parse(await K(async i=>await e.request(x.operation.report,{executionAttemptId:t.executionAttemptId,runtimeGeneration:t.runtimeGeneration,operationId:n,result:{kind:`workspace-prepared`,binding:r.binding}},{timeout:i}),{retry:t.retry,reconnect:t.reconnect}));return i.decision===`refused`?void 0:i.binding}async function Dn(e,t,n,r){if(r.aborted)return await Z(e,t,n,{kind:`cancelled`},void 0,void 0);let i=await Cn(e,t,{operationKind:`workspace-preparation`,admissionKey:`workspace-preparation:${n.id}:${t.runtimeGeneration}`,signal:r,instruction:n});if(`outcome`in i)return i;let a=i.operationId;if(r.aborted)return await Z(e,t,n,{kind:`cancelled`},Q(a,`not-started`),void 0);let o,s,c=!1;try{if(t.workspaceRoot===void 0)throw Error(`Workspace preparation requires an explicit local root`);let e=await(t.preparation??{prepare:_n}).prepare({requirement:n.workspace,workspaceRoot:t.workspaceRoot,signal:r});o=e,c=!0,s=await e.runSetup({signal:r,env:t.setupEnv})}catch(i){return await Z(e,t,n,bn(i,r),Q(a,c?`no-observation`:`not-started`),o)}let l=Q(a,s.processGroup??`no-spawn`);t.control?.operationConcluded(l);let u=yn(s);if(u!==void 0)return await Z(e,t,n,u,l,o);if(r.aborted)return await Z(e,t,n,{kind:`cancelled`},l,o);let d=await En(e,t,a,o);return d===void 0?await Z(e,t,n,{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace preparation report refused by the Authority`},l,o):r.aborted?await Z(e,t,n,{kind:`cancelled`},void 0,o):{handle:o,binding:d}}function Q(e,t){return{kind:`workspace-preparation`,operationId:e,setup:t}}async function On(e,t,n,r,i){if(i.signal.aborted)return await Z(e,t,n,{kind:`cancelled`},void 0,void 0);let a,o;if(n.workspace!==void 0){let r=await Dn(e,t,n,i.signal);if(`outcome`in r)return r;a=r.handle,o=r.binding}if(i.signal.aborted)return await Z(e,t,n,{kind:`cancelled`},void 0,a);let s=await Cn(e,t,{operationKind:`workload-invocation`,admissionKey:`workload-invocation:${n.id}:${t.runtimeGeneration}`,signal:i.signal,instruction:n,...a===void 0?{}:{workspace:a}});if(`outcome`in s)return s;let c={kind:`workload-invocation`,operationId:s.operationId};if(i.signal.aborted)return await Z(e,t,n,{kind:`cancelled`},c,a);let l;try{l={kind:`workload-result`,result:ue.parse(await r.invoke({instruction:n,...o===void 0?{}:{workspace:o},signal:i.signal}))}}catch(e){l=Y(e,i.signal)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`workload-invocation`,message:X(e)}}return await Z(e,t,n,l,c,a)}async function kn(e,t){let n;try{n=await xn(e,t.executionAttemptId,t.runtimeGeneration,t.signal)}catch(n){if(T(n,t.signal))return await Z(e,t,void 0,{kind:`cancelled`},void 0,void 0);throw n}let r=wn(t.adapters,n);if(r===void 0)return await Z(e,t,n,{kind:`technical-failure`,stage:`startup`,message:`Required adapter '${n.workload.kind}' version '${n.workload.version}' is unavailable`},void 0,void 0);let i;try{i=await(r.bindControl?.({instruction:n,signal:t.signal})??Tn(t.signal))}catch(r){let i=Y(r,t.signal)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`startup`,message:X(r)};return await Z(e,t,n,i,void 0,void 0)}try{return await On(e,t,n,r,i)}finally{try{i.release()}catch{console.warn(`[makaio-worker] Workload control release failed.`)}}}const An={exited:`setup process group leader exited; whole group proven quiescent`,"signalled-and-quiesced":`setup process group signalled; group proven quiescent afterwards`,"signalled-unconfirmed":`setup process group signalled; quiescence not proven`,"unsignalled-unconfirmed":`setup process group could not be signalled; quiescence not proven`},jn={"poll-timeout":`quiescence poll timed out`,"ps-unavailable":`ps unavailable on this host`,"signal-error":`a cleanup signal failed`};function Mn(e){let t=An[e.outcome];return e.cause===void 0?t:`${t} (${jn[e.cause]})`}function $(e){return{...e.operationId===void 0?{}:{operationId:e.operationId},conclusion:{status:e.status,boundary:e.boundary,evidence:{source:e.source,summary:e.summary,observedAt:e.observedAt.toISOString(),...e.code===void 0?{}:{code:e.code}}}}}function Nn(e,t){if(!e.cancelReceived||e.admissionPending)return`pending`;let n=e.admittedOperation;if(n===null)return!e.admissionSettled&&!e.finished?`pending`:$({status:`achieved`,boundary:`admission-closed`,source:`headless-runtime`,summary:Pn(e.admissionRefusalReason),observedAt:t});if(n.kind===`workload-invocation`)return $({operationId:n.operationId,status:`unsupported`,boundary:`workload`,source:`headless-runtime`,summary:`generic workload adapter offers no stop evidence`,observedAt:t});let r=e.conclusion;return r===null||r.kind!==`workspace-preparation`||r.operationId!==n.operationId?`pending`:Fn(n.operationId,r.setup,t)}function Pn(e){let t=`no mutating operation admitted before cancellation`;return e===null?t:`${t}; admission refused (${e})`}function Fn(e,t,n){return $(t===`not-started`?{operationId:e,status:`achieved`,boundary:`setup-process-group`,source:`headless-runtime`,summary:`preparation admitted; setup never started before cancellation`,observedAt:n}:t===`no-spawn`?{operationId:e,status:`achieved`,boundary:`setup-process-group`,source:`setup-driver`,summary:`no live setup process group remains under this operation`,observedAt:n}:t===`no-observation`?{operationId:e,status:`unsupported`,boundary:`setup-process-group`,source:`setup-driver`,summary:`setup driver supplied no process-group observation`,observedAt:n}:{operationId:e,status:t.outcome===`signalled-unconfirmed`||t.outcome===`unsignalled-unconfirmed`?`unconfirmed`:`achieved`,boundary:`setup-process-group`,source:`setup-driver`,summary:Mn(t),observedAt:t.observedAt,code:t.outcome})}var In=class{state={cancelReceived:!1,admissionPending:!1,admissionSettled:!1,admissionRefusalReason:null,admittedOperation:null,conclusion:null,finished:!1};onUpdate;constructor(e){this.onUpdate=e}markCancelReceived(){this.state.cancelReceived=!0,this.onUpdate()}admissionPending(){this.state.admissionPending=!0,this.onUpdate()}admissionSettled(e){this.state.admissionPending=!1,this.state.admissionSettled=!0,e!==void 0&&(this.state.admissionRefusalReason=e),this.onUpdate()}operationAdmitted(e,t){this.state.admissionPending=!1,this.state.admittedOperation={kind:e,operationId:t},this.onUpdate()}operationConcluded(e){this.state.conclusion=e,this.onUpdate()}finished(){this.state.finished=!0,this.onUpdate()}snapshot(){return{...this.state}}};function Ln(e){return!e.reportPending&&(e.lastReportStatus===void 0||e.lastReportStatus===`error`)}function Rn(e,t){return{executionAttemptId:e.executionAttemptId,runtimeIncarnationId:e.runtimeIncarnationId,runtimeGeneration:e.runtimeGeneration,controlRevision:e.cancellation.controlRevision,requestKey:e.cancellation.requestKey,receivedAt:t.toISOString()}}async function zn(e,t,n,r,i){let a={executionAttemptId:t.executionAttemptId,runtimeIncarnationId:t.runtimeIncarnationId,runtimeGeneration:t.runtimeGeneration,controlRevision:t.controlRevision,requestKey:t.requestKey,...n.operationId===void 0?{}:{operationId:n.operationId},conclusion:n.conclusion};try{let t=await K((t,n)=>e.request(x.control.report,a,{timeout:t,signal:n}),i===void 0?r:{...r,signal:i}),n=b[`control.report`].response.parse(t);return n.decision===`accepted`||n.decision===`duplicate`?{status:n.decision,response:n}:{status:`refused`,response:n}}catch(e){return{status:`error`,error:e}}}function Bn(e,t,n){let r=new Set,i;return{dispatch(a,o,s){if(n?.aborted===!0)return!1;let c=zn(e,a,o,t,n).then(e=>{i=e,r.delete(c),s(e)});return r.add(c),!0},async settle(){for(await new Promise(e=>setImmediate(e));r.size>0;)await Promise.allSettled([...r])},get lastReport(){return i}}}async function Vn(e,t,n={}){let r=n.now??(()=>new Date),i=new Map,a=new AbortController,s=Bn(e,n.reportOptions,n.reportSignal);function c(e){if(!Ln(e))return;let t=Nn(u.snapshot(),r());t!==`pending`&&s.dispatch(e.receipt,t,t=>{e.reportPending=!1,e.lastReportStatus=t.status})&&(e.reportPending=!0)}function l(e){let{controlRevision:t}=e.cancellation,n=i.get(t);if(n!==void 0)return setImmediate(()=>c(n)),n.receipt;let o={receipt:Rn(e,r()),reportPending:!1,lastReportStatus:void 0};return i.set(t,o),setImmediate(()=>{a.abort(),u.markCancelReceived(),c(o)}),o.receipt}let u=new In(()=>{for(let e of i.values())c(e)}),d=await o(e,t,e=>e.bus.on(x.control.deliver,async t=>{let n=b[`control.deliver`].request.safeParse(t.payload);if(!n.success){t.setResult({decision:`refused`,reason:`unsupported`});return}let r=n.data,i=e.acceptedGeneration??await e.awaitGeneration();if(i===void 0||r.runtimeGeneration!==i){t.setResult({decision:`refused`,reason:`stale-generation`});return}t.setResult({decision:`received`,receipt:l(r)})}),n.signal);return{bindGeneration:e=>d.bindGeneration(e),cleanup:()=>d.cleanup(),signal:a.signal,observer:u,settle:()=>s.settle(),get lastReport(){return s.lastReport}}}async function Hn(e,t){t.throwIfAborted();let n=v(),r=await u(e.bootstrapDeadlineAt,t,t=>e.bootstrap(t)),{connection:o,endpoint:s}=await a({executionAttemptId:e.executionAttemptId,runtimeIncarnationId:n,bootstrapDeadlineAt:e.bootstrapDeadlineAt,signal:t,createConnection:()=>Un(e,r)}),c=o.bus,l=new AbortController,d,f;try{f=await Vn(c,{executionAttemptId:e.executionAttemptId,runtimeIncarnationId:n},{reportOptions:{retry:e.outcomeRetry,reconnect:()=>c.reconnect()},reportSignal:l.signal,signal:t});let r=await i(c,{executionAttemptId:e.executionAttemptId,runtimeIncarnationId:n,signal:t});return s.bindGeneration(r),f.bindGeneration(r),d=await kn(c,{executionAttemptId:e.executionAttemptId,runtimeGeneration:r,workspaceRoot:e.workspaceRoot,setupEnv:e.setupEnv,preparation:e.preparation,adapters:e.adapters,signal:AbortSignal.any([t,f.signal]),control:f.observer,retry:e.outcomeRetry,reconnect:()=>c.reconnect()}),d}finally{try{f?.observer.finished(),f?.cleanup();let e,t=setTimeout(()=>{l.abort(),e=Promise.resolve(o.close()),e.catch(()=>{})},5e3);try{await f?.settle()}finally{clearTimeout(t)}s.cleanup(),await(e??o.close())}catch{}}}function Un(e,t){let n=w();return n.registerNamespaces([...ce,...le]),{bus:n,async connect(r){try{await e.connectBus(n,t,r),r.throwIfAborted()}catch(e){throw n.disconnect(),e}},close:()=>n.disconnect()}}async function Wn(e,t,n,r,i){let a=he[`runtime.inputs.get`].response.parse(await e.request(C.runtime.inputs.get,{executionAttemptId:t},{signal:i}));if(a.runtimeInputs===null)throw Error(`Selected Worker Runtime inputs are unavailable`);return ge.parse({...n,...a.runtimeInputs,createdAt:0,env:r})}function Gn(e,t){let n=(e,t)=>{let n=ae(e,t);return n===``||!re(n)&&n!==`..`&&!n.startsWith(`../`)&&!n.startsWith(`..\\`)};return n(e,t)||n(t,e)}async function Kn(t,n,r,i){let a=await t.loadContributions(r,i);i.throwIfAborted();let o=e();return await sn({connectAuthority:e=>t.connectBus(e,n,i),contributedPackages:[...a],configRepository:t.configRepository,context:{cwd:r.workspaceRoot,platform:r.platform,homedir:o,makaioHome:o,username:`workflow-worker`,machineId:`headless-worker-${t.executionAttemptId}`},toolsets:[...t.toolsets],...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime}})}function qn(e,t,n){let r={...e.workflowEnv},i,a=!0;return{adapter:{kind:k,version:A,async bindControl({instruction:t,signal:r}){let i=j(t);if(i.executionId!==e.executionId)throw Error(`Workflow instruction execution identity mismatch`);let a=new AbortController,o=n.on(ye(i.cancelSubject),()=>a.abort());try{return await xe(o),{signal:AbortSignal.any([...r===void 0?[]:[r],a.signal]),release:o}}catch(e){throw o(),e}},async invoke({instruction:o,workspace:s,signal:c}){let l=j(o);a=o.preservation.required.length!==0;let u=c??new AbortController().signal,d;try{u.throwIfAborted();let a=await Wn(n,e.executionAttemptId,l,r,u),o=await e.materialize(a,u);(s===void 0||!Gn(o.context.workspaceRoot,s.workspaceRoot))&&(i=o.cleanup);let c=Jn(o.context,s);return u.throwIfAborted(),d=await Kn(e,t,c,u),u.throwIfAborted(),await e.execute(d.bus,a,c,u)}finally{await d?.shutdown()}}},async releaseExecutable(e){e===void 0||a||e.outcome.kind===`workload-result`&&(e.decision!==`accepted`&&e.decision!==`duplicate`||await i?.().catch(()=>void 0))}}}function Jn(e,t){return t===void 0?e:{...e,workspaceRoot:t.workspaceRoot}}async function Yn(e,t){if(!(t.outcome.kind!==`workload-result`||e.onPostCommit===void 0))try{let n=_e.parse(t.outcome.result);await e.onPostCommit(n,t.decision)}catch{}}async function Xn(e,t){t.throwIfAborted();let n={...e.workflowEnv},r,i,a,o,s=async(t,n,a)=>{r=t,i=n,await e.connectBus(t,n,a)},c={kind:k,version:A,async bindControl(t){if(r===void 0||i===void 0)throw Error(`Bus not yet connected when adapter control was bound`);return a=qn({...e,workflowEnv:n},i,r),a.adapter.bindControl(t)},async invoke(e){if(a===void 0)throw Error(`Workflow adapter was not initialized via bindControl`);return a.adapter.invoke(e)}};try{return o=await Hn({executionId:e.executionId,executionAttemptId:e.executionAttemptId,bootstrapDeadlineAt:e.bootstrapDeadlineAt,workflowEnv:e.workflowEnv,setupEnv:e.setupEnv,bootstrap:e.bootstrap,connectBus:s,workspaceRoot:e.workspaceRoot,preparation:e.preparation,adapters:[c],outcomeRetry:e.outcomeRetry},t),await Yn(e,o),o}finally{await a?.releaseExecutable(o)}}const Zn=ee(p),Qn=[`-c`,`core.attributesFile=${E}`],$n=f.object({repositoryId:f.string().min(1),revision:f.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/i,`Git source revision must be a full commit object ID`)}).strict();async function er(e,t,n){try{let r=await e.resolveRepository(t,n);if(!g.isAbsolute(r))throw Error(`Repository access did not return an absolute path`);return await h.realpath(r)}catch(e){throw Y(e,n)?e:Error(`Git source access failed`)}}async function tr(e,t,n,r,i){let a;try{a=(await Zn(`git`,[...Qn,`cat-file`,`-t`,t],{cwd:e,env:{...process.env,...n},signal:i,timeout:r,maxBuffer:1024,shell:!1,killSignal:`SIGKILL`,encoding:`utf8`})).stdout.trim()}catch(e){throw Y(e,i)?e:Error(`Git source object inspection failed`)}if(a!==`commit`)throw Error(`Git source revision must identify a commit object`)}function nr(e){if(!cn(e.timeoutMs))throw Error(`Git command timeout must be an integer between 1 and 2147483647 milliseconds`);if(process.platform===`win32`)throw Error(`Local Git source preparation requires a POSIX host`);return async({source:t,destination:n,signal:r})=>{if(r?.throwIfAborted(),t.kind!==`git`)throw Error(`Unsupported local Git source kind`);let i=$n.parse(t.input),a=await er(e,i.repositoryId,r);r?.throwIfAborted();let o={...Object.fromEntries(Object.keys(process.env).filter(e=>/^git_/i.test(e)).map(e=>[e,void 0])),GIT_CONFIG_GLOBAL:E,GIT_CONFIG_SYSTEM:E,GIT_ATTR_NOSYSTEM:`1`},s=[[`init`,`--object-format=${i.revision.length===64?`sha256`:`sha1`}`],[`fetch`,`--no-tags`,`--no-write-fetch-head`,`--update-shallow`,`--`,a,i.revision],[`checkout`,`--detach`,i.revision,`--`]];for(let t of s){t[0]===`checkout`&&await tr(n,i.revision,o,e.timeoutMs,r);let a=await mn({workspaceRoot:n,signal:r,env:o,recipe:{command:`git`,args:[...Qn,...t],env:{},timeoutMs:e.timeoutMs}});if(a.status===`cancelled`&&r?.throwIfAborted(),a.status!==`completed`)throw Error(`Git source ${t[0]} ${a.status}`)}}}function rr(e){let t=nr(e);return{prepare:e=>_n({...e,realizeSource:t})}}export{ut as A,I as B,V as C,jt as D,Ct as E,ft as F,N as H,pt as I,vt as L,dt as M,bt as N,St as O,yt as P,st as R,B as S,kt as T,M as U,P as V,Pt as _,kn as a,U as b,tn as c,Rt as d,W as f,It as g,Lt as h,Vn as i,ct as j,At as k,G as l,Kt as m,Xn as n,sn as o,qt as p,Hn as r,nn as s,rr as t,zt as u,Nt as v,Ot as w,z as x,Mt as y,F as z};