@makaio/framework 1.0.0-dev-1785409369816 → 1.0.0-dev-1786014320559

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 (508) hide show
  1. package/dist/.makaio-build.json +4 -3
  2. package/dist/{account-identity-DFx8pwKL.mjs → account-identity-DGpXd8h_.mjs} +1 -1
  3. package/dist/adapter-BkdJaOOG.mjs +1 -0
  4. package/dist/adapter-subsystem/index.d.mts +138 -6
  5. package/dist/adapter-subsystem/index.mjs +1 -1
  6. package/dist/adapters/acp-client/index.d.mts +105 -7
  7. package/dist/adapters/acp-client/index.mjs +2 -2
  8. package/dist/adapters/config/index.d.mts +1 -1
  9. package/dist/adapters/config/index.mjs +1 -1
  10. package/dist/adapters/index.d.mts +362 -801
  11. package/dist/adapters/index.mjs +6 -6
  12. package/dist/adapters/node.d.mts +1 -1
  13. package/dist/adapters/node.mjs +1 -1
  14. package/dist/adapters/stream-session/index.d.mts +28 -7
  15. package/dist/adapters/stream-session/index.mjs +1 -1
  16. package/dist/agent-namespace-D51PODFf.mjs +1 -0
  17. package/dist/{ajv-DD3SIL2i.mjs → ajv-L5fKxaia.mjs} +2 -2
  18. package/dist/artifact-k3veR4Yx.mjs +1 -0
  19. package/dist/attach-error-BSlc7JfL.mjs +1 -0
  20. package/dist/{auth-DGEdiHF6.mjs → auth-A1K_7q-8.mjs} +1 -1
  21. package/dist/authority-state-bootstrap-YwtEImIB.mjs +1 -0
  22. package/dist/automation-trigger-CuSdQwir.mjs +1 -0
  23. package/dist/await-trigger-ph1S0zVI.mjs +1 -0
  24. package/dist/bus/index.d.mts +19 -5
  25. package/dist/bus/index.mjs +1 -1
  26. package/dist/bus-BIj0_aG6.mjs +1 -0
  27. package/dist/bus-CqgrphNE.mjs +2 -0
  28. package/dist/{canonical-model-BAytQ4NV.mjs → canonical-model-DJASlL4m.mjs} +1 -1
  29. package/dist/{capabilities-BQEp34ir.mjs → capabilities-Bqckjh7G.mjs} +1 -1
  30. package/dist/{client-DbS847wW.mjs → client-BL5__WT0.mjs} +1 -1
  31. package/dist/clients/index.d.mts +2 -2
  32. package/dist/clients/index.mjs +1 -1
  33. package/dist/clients/managed-install.d.mts +1 -1
  34. package/dist/clients/managed-install.mjs +1 -1
  35. package/dist/{compression-74fFeBha.mjs → compression-BbttSqm8.mjs} +1 -1
  36. package/dist/{config-namespace-TVX-hG4I.mjs → config-namespace-CyzeLWSg.mjs} +1 -1
  37. package/dist/{context-resolution-DdyhpH4L.d.mts → context-resolution-CW0ya4QO.d.mts} +13 -13
  38. package/dist/contracts/adapter/index.d.mts +3 -3
  39. package/dist/contracts/adapter/index.mjs +1 -1
  40. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  41. package/dist/contracts/artifact/index.d.mts +3 -3
  42. package/dist/contracts/artifact/index.mjs +1 -1
  43. package/dist/contracts/auth/index.d.mts +2 -2
  44. package/dist/contracts/auth/index.mjs +1 -1
  45. package/dist/contracts/automation-trigger/index.d.mts +4 -0
  46. package/dist/contracts/automation-trigger/index.mjs +1 -0
  47. package/dist/contracts/canonical-model/index.d.mts +1 -1
  48. package/dist/contracts/canonical-model/index.mjs +1 -1
  49. package/dist/contracts/capabilities/index.d.mts +1 -1
  50. package/dist/contracts/capabilities/index.mjs +1 -1
  51. package/dist/contracts/client/index.d.mts +2 -2
  52. package/dist/contracts/client/index.mjs +1 -1
  53. package/dist/contracts/common/index.d.mts +1 -1
  54. package/dist/contracts/config/index.d.mts +1 -1
  55. package/dist/contracts/config/index.mjs +1 -1
  56. package/dist/contracts/extension/index.d.mts +6 -5
  57. package/dist/contracts/extension/index.mjs +1 -1
  58. package/dist/contracts/facet/index.d.mts +1 -1
  59. package/dist/contracts/facet/index.mjs +1 -1
  60. package/dist/contracts/harness/index.d.mts +1 -1
  61. package/dist/contracts/harness/index.mjs +1 -1
  62. package/dist/contracts/host/index.d.mts +1 -1
  63. package/dist/contracts/host/index.mjs +1 -1
  64. package/dist/contracts/index.d.mts +181 -120
  65. package/dist/contracts/index.mjs +1 -1
  66. package/dist/contracts/materialization/index.d.mts +3 -3
  67. package/dist/contracts/materialization/index.mjs +1 -1
  68. package/dist/contracts/model-registry/index.d.mts +1 -1
  69. package/dist/contracts/model-registry/index.mjs +1 -1
  70. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  71. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  72. package/dist/contracts/platform/index.d.mts +1 -1
  73. package/dist/contracts/platform/index.mjs +1 -1
  74. package/dist/contracts/provider/index.d.mts +2 -2
  75. package/dist/contracts/provider/index.mjs +1 -1
  76. package/dist/contracts/reaction/index.d.mts +2 -0
  77. package/dist/contracts/reaction/index.mjs +1 -0
  78. package/dist/contracts/session/index.d.mts +3 -3
  79. package/dist/contracts/session/index.mjs +1 -1
  80. package/dist/contracts/shared/index.d.mts +3 -3
  81. package/dist/contracts/shared/index.mjs +1 -1
  82. package/dist/contracts/skill/index.d.mts +1 -1
  83. package/dist/contracts/skill/index.mjs +1 -1
  84. package/dist/contracts/telemetry/index.d.mts +1 -1
  85. package/dist/contracts/telemetry/index.mjs +1 -1
  86. package/dist/contracts/timeout/index.d.mts +1 -1
  87. package/dist/contracts/timeout/index.mjs +1 -1
  88. package/dist/contracts/toast/index.mjs +1 -1
  89. package/dist/contracts/variant/index.d.mts +1 -1
  90. package/dist/contracts/variant/index.mjs +1 -1
  91. package/dist/contracts/worker-node/index.d.mts +1 -1
  92. package/dist/contracts/worker-node/index.mjs +1 -1
  93. package/dist/contracts/workflow/index.d.mts +3 -3
  94. package/dist/contracts/workflow/index.mjs +1 -1
  95. package/dist/contribution-BH-wKsWI.d.mts +35 -0
  96. package/dist/core/index.d.mts +60 -1
  97. package/dist/core/index.mjs +1 -1
  98. package/dist/definition-BYgHlmMw.d.mts +375 -0
  99. package/dist/{definition-CJfiv8xm.mjs → definition-CDg-Jq1T.mjs} +1 -1
  100. package/dist/{detached-extension-handle-Ddfquy5_.mjs → detached-extension-handle-DKd17UB6.mjs} +1 -1
  101. package/dist/drizzle/0031_adapter_session_currency.sql +66 -0
  102. package/dist/drizzle/0032_native_session_ownership.sql +77 -0
  103. package/dist/drizzle/0033_m_msf3hu2s.sql +1 -0
  104. package/dist/drizzle/meta/_journal.json +21 -0
  105. package/dist/{execution-attempt-repository-DWXKY41_.d.mts → execution-attempt-repository-DFyAnchJ.d.mts} +1 -1
  106. package/dist/{execution-target-Cf645pDj.mjs → execution-target-ByNwZh5-.mjs} +1 -1
  107. package/dist/extension-DMdmj9gi.mjs +1 -0
  108. package/dist/extension-DUmibvMk.mjs +1 -0
  109. package/dist/extension-context-CqfddWXs.d.mts +295 -0
  110. package/dist/{extension-discovery-CQRdbVQ6.d.mts → extension-discovery-Fhps4icD.d.mts} +2 -0
  111. package/dist/{extension-namespace-Yu41YepM.mjs → extension-namespace-B554RmCp.mjs} +1 -1
  112. package/dist/extension-package-provenance-Dh_-Z-tE.mjs +1 -0
  113. package/dist/{filesystem-service-DlP2HfDg.mjs → filesystem-service-FAtd9gWH.mjs} +1 -1
  114. package/dist/framework-packages-D_2hBZ-p.mjs +1 -0
  115. package/dist/git/index.mjs +1 -1
  116. package/dist/{globby-1yCVCk8s.mjs → globby-BBLuT_vy.mjs} +1 -1
  117. package/dist/handlers-2yd00VEq.mjs +57 -0
  118. package/dist/{harness-DpwsFsE7.mjs → harness-KxbWGL4I.mjs} +1 -1
  119. package/dist/{hook-responses-Dh1PWXqJ.d.mts → hook-responses-CQZIv3L3.d.mts} +2 -293
  120. package/dist/{index-DCZ8BX9S.d.mts → index-3eUIRy7T.d.mts} +304 -74
  121. package/dist/{index-brqfk9JQ.d.mts → index-B4xdTT3c.d.mts} +6 -6
  122. package/dist/{index-4VfqCjl2.d.mts → index-B5op6AsV.d.mts} +49 -39
  123. package/dist/{index-CMgLxw14.d.mts → index-B6GOuxVy2.d.mts} +18 -18
  124. package/dist/index-BFhJe-Sb.d.mts +302 -0
  125. package/dist/{index-EjsSBQXy2.d.mts → index-BSQ30wYP.d.mts} +1 -1
  126. package/dist/{index-DlsHL9Jg.d.mts → index-BiAYXjgM.d.mts} +25 -25
  127. package/dist/{index-B9UW_vPM.d.mts → index-ByZi9bml.d.mts} +4967 -1509
  128. package/dist/{index-BVlXneHH.d.mts → index-C7HcDpHE.d.mts} +14 -10
  129. package/dist/{index-BskPjMet.d.mts → index-CB4aIUoF.d.mts} +16 -16
  130. package/dist/{index-cqLS1eFV.d.mts → index-CDusRXio.d.mts} +70 -71
  131. package/dist/{index-DnG-QFpG.d.mts → index-CSN_0sCo.d.mts} +18 -1
  132. package/dist/{index-BAXkicoQ.d.mts → index-C__EQfKa.d.mts} +1 -1
  133. package/dist/{index-CLvQsL6s2.d.mts → index-CqQYgsbB.d.mts} +1660 -218
  134. package/dist/{index-BNMnIe-j.d.mts → index-CwDiyJkJ.d.mts} +276 -705
  135. package/dist/{index-GHASUiem.d.mts → index-DBadVauL.d.mts} +1 -1
  136. package/dist/{index-gUhidukN.d.mts → index-DI7-tIL3.d.mts} +299 -2
  137. package/dist/index-DP3o_13U.d.mts +165 -0
  138. package/dist/{index-DSBT83c0.d.mts → index-DcYAAJ0V.d.mts} +24 -3
  139. package/dist/{index-D5Nb7IEP.d.mts → index-Dch_AxUg.d.mts} +77 -39
  140. package/dist/{index-D_ODXsBv.d.mts → index-DcqSUsX6.d.mts} +35 -79
  141. package/dist/{index-B0Kf_OWi.d.mts → index-DgOfgjx3.d.mts} +1 -1
  142. package/dist/{index-Ds5_rDEJ.d.mts → index-DwLRZscE.d.mts} +1 -12
  143. package/dist/{index-DkiTJM5p.d.mts → index-DxYDRoDE2.d.mts} +17 -3
  144. package/dist/{index-CRvpVIqA.d.mts → index-OsbtyMgx2.d.mts} +10 -1
  145. package/dist/{index-BaZeoZoS.d.mts → index-bIe_57cL.d.mts} +1 -1
  146. package/dist/{json-value-Brslhqbm.d.mts → json-value-C1RGgS0a.d.mts} +16 -1
  147. package/dist/{json-value-DmU8ibo_.mjs → json-value-D57aJhVn.mjs} +1 -1
  148. package/dist/kernel/cli/index.d.mts +2 -2
  149. package/dist/kernel/cli/index.mjs +1 -1
  150. package/dist/kernel/cli/register.d.mts +1 -1
  151. package/dist/kernel/cli/register.mjs +1 -1
  152. package/dist/kernel/cli/schemas.mjs +1 -1
  153. package/dist/kernel/extension/index.d.mts +1 -1
  154. package/dist/kernel/extension/index.mjs +1 -1
  155. package/dist/kernel/index.d.mts +9 -9
  156. package/dist/kernel/index.mjs +1 -1
  157. package/dist/kernel/namespace/index.d.mts +2 -2
  158. package/dist/kernel/namespace/index.mjs +1 -1
  159. package/dist/kernel/observability/index.d.mts +1 -1
  160. package/dist/kernel/observability/index.mjs +1 -1
  161. package/dist/kernel/providers/index.d.mts +1 -1
  162. package/dist/kernel/providers/index.mjs +1 -1
  163. package/dist/kernel/window/index.d.mts +1 -1
  164. package/dist/kernel/window/index.mjs +1 -1
  165. package/dist/{lib-C7-s68uf.mjs → lib-B_rJ6r0T.mjs} +1 -1
  166. package/dist/{lib-DErgth_E.mjs → lib-CnOAtohU.mjs} +1 -1
  167. package/dist/load-extensions-CW9uzNR5.mjs +1 -0
  168. package/dist/{load-extensions-BxsDB87B.d.mts → load-extensions-DUpaMQ7G.d.mts} +17 -13
  169. package/dist/{materialization-Jd198K3y.mjs → materialization-CcpCDhXh.mjs} +1 -1
  170. package/dist/mcp-http-server/index.mjs +1 -1
  171. package/dist/model-ZH3L1dPW.mjs +1 -0
  172. package/dist/{namespace-BqxtpNAn.mjs → namespace-B7bntOB8.mjs} +1 -1
  173. package/dist/{namespace-CWUDFGOy.mjs → namespace-BFqkUTJp.mjs} +1 -1
  174. package/dist/{namespace-CjjFvrIA2.d.mts → namespace-CAy4P5mW.d.mts} +29 -29
  175. package/dist/{namespace-B8uKAzWJ.mjs → namespace-CFjdyNXG.mjs} +1 -1
  176. package/dist/{namespace-DV-Hr9sZ.d.mts → namespace-ChnRTUG4.d.mts} +11 -1
  177. package/dist/namespace-CxrOLeeP.mjs +1 -0
  178. package/dist/{namespace-g_mbIZq_.d.mts → namespace-DSlfFhB1.d.mts} +410 -26
  179. package/dist/{namespace-CupOzbRv.d.mts → namespace-DwZwGXgF.d.mts} +24 -20
  180. package/dist/{namespace-TseEI3Pu.d.mts → namespace-Rge9mMI-.d.mts} +36 -28
  181. package/dist/{native-session-supervisor-DRx0MX-d.mjs → native-session-supervisor-fZYPUk0-.mjs} +1 -1
  182. package/dist/node/bus-server/index.d.mts +1 -1
  183. package/dist/node/bus-server/index.mjs +1 -1
  184. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  185. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  186. package/dist/{orchestrator-shared-BHCv-l2O.d.mts → orchestrator-shared-B-KRW1Z0.d.mts} +1 -0
  187. package/dist/orchestrator-shared-CTCZc6Vl.mjs +1 -0
  188. package/dist/ownership-memory-handler-Bblp93YC.mjs +1 -0
  189. package/dist/{package-DWMxGfzK.d.mts → package-Bf3hyuzs.d.mts} +234 -84
  190. package/dist/package-CBdvjyyZ.mjs +1 -0
  191. package/dist/package-CddkNbZI.mjs +1 -0
  192. package/dist/package-ypz4rKvn.mjs +7 -0
  193. package/dist/package.json +1 -1
  194. package/dist/{profile-BTAI31Nt.mjs → profile-BtznZlq3.mjs} +1 -1
  195. package/dist/{provider-context-Dq53Cgzz.mjs → provider-context-BrLZYnDW.mjs} +1 -1
  196. package/dist/{provider-context-PZIQWcqQ.mjs → provider-context-Dh-VOOYF.mjs} +1 -1
  197. package/dist/reaction-BS0k4eNN.mjs +1 -0
  198. package/dist/{registry-wfF2uTty.mjs → registry-BO_bOoky.mjs} +2 -2
  199. package/dist/{resolved-DZgqql2Z.mjs → resolved-DMByz1_2.mjs} +1 -1
  200. package/dist/rules/index.d.mts +1 -1
  201. package/dist/rules/index.mjs +1 -1
  202. package/dist/rules/schemas.d.mts +1 -1
  203. package/dist/runtime-bun/index.mjs +1 -1
  204. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  205. package/dist/runtime-node/extension-validation.d.mts +1 -1
  206. package/dist/runtime-node/extension-validation.mjs +1 -1
  207. package/dist/runtime-node/index.d.mts +4 -4
  208. package/dist/runtime-node/index.mjs +24 -24
  209. package/dist/runtime-node/makaio-config.d.mts +1 -1
  210. package/dist/runtime-node/makaio-config.mjs +1 -1
  211. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  212. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  213. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  214. package/dist/{schema-Dd-e89MO.mjs → schema-DBG7Jq5_.mjs} +1 -1
  215. package/dist/{schema-DKUb4rkr.d.mts → schema-DKTzriEY.d.mts} +519 -9
  216. package/dist/{schemas-DrVg4aQQ.d.mts → schemas-9qeeHGBf.d.mts} +8 -8
  217. package/dist/{schemas-CRB2O5zo.mjs → schemas-BqD8LlQw.mjs} +1 -1
  218. package/dist/{schemas-DaHQzpgm.mjs → schemas-CsjN7cmM.mjs} +1 -1
  219. package/dist/schemas-DSkBOdx_.mjs +1 -0
  220. package/dist/schemas-DplrlAyR.mjs +1 -0
  221. package/dist/{schemas-DnYiAvfz.d.mts → schemas-VbB1FTxx.d.mts} +24 -20
  222. package/dist/scoped-bus-ClwTWqX8.mjs +1 -0
  223. package/dist/{selection-BNwTKEVT.mjs → selection-7Ku8DBnh.mjs} +1 -1
  224. package/dist/services/adapter-runtime/index.d.mts +3 -3
  225. package/dist/services/adapter-runtime/index.mjs +1 -1
  226. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  227. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  228. package/dist/services/adapter-subsystem/index.d.mts +4 -4
  229. package/dist/services/adapter-subsystem/index.mjs +1 -1
  230. package/dist/services/adapter-subsystem/namespace.d.mts +2 -2
  231. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  232. package/dist/services/agent-runtime/index.d.mts +2 -2
  233. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  234. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  235. package/dist/services/automation-trigger/index.d.mts +943 -0
  236. package/dist/services/automation-trigger/index.mjs +1 -0
  237. package/dist/services/capability/index.d.mts +1 -1
  238. package/dist/services/capability/index.mjs +1 -1
  239. package/dist/services/codebase/index.d.mts +2 -2
  240. package/dist/services/codebase/namespace.d.mts +1 -1
  241. package/dist/services/codebase/schemas.d.mts +1 -1
  242. package/dist/services/compression/index.d.mts +2 -2
  243. package/dist/services/compression/namespace.d.mts +1 -1
  244. package/dist/services/compression/schemas.d.mts +1 -1
  245. package/dist/services/context-rules/index.d.mts +4 -4
  246. package/dist/services/context-rules/index.mjs +1 -1
  247. package/dist/services/execution-target/index.d.mts +3 -3
  248. package/dist/services/execution-target/index.mjs +1 -1
  249. package/dist/services/execution-target/namespace.d.mts +1 -1
  250. package/dist/services/execution-target/namespace.mjs +1 -1
  251. package/dist/services/execution-target/schemas.d.mts +1 -1
  252. package/dist/services/execution-target/schemas.mjs +1 -1
  253. package/dist/services/filesystem/index.d.mts +1 -1
  254. package/dist/services/filesystem/index.mjs +1 -1
  255. package/dist/services/filesystem/namespace.d.mts +6 -6
  256. package/dist/services/filesystem/schemas.d.mts +3 -3
  257. package/dist/services/git/namespace.mjs +1 -1
  258. package/dist/services/git/schemas.mjs +1 -1
  259. package/dist/services/harness/index.mjs +1 -1
  260. package/dist/services/index.d.mts +459 -93
  261. package/dist/services/index.mjs +1 -1
  262. package/dist/services/log-import/browser.d.mts +2 -2
  263. package/dist/services/log-import/index.d.mts +3 -3
  264. package/dist/services/log-import/log-import.d.mts +1 -1
  265. package/dist/services/log-import/log-import.mjs +1 -1
  266. package/dist/services/log-import/namespace.mjs +1 -1
  267. package/dist/services/log-import/schemas.mjs +1 -1
  268. package/dist/services/materialization/index.d.mts +1 -1
  269. package/dist/services/materialization/index.mjs +1 -1
  270. package/dist/services/model-registry/index.d.mts +1 -1
  271. package/dist/services/model-registry/index.mjs +1 -1
  272. package/dist/services/preferences/index.d.mts +2 -2
  273. package/dist/services/preferences/schemas.d.mts +1 -1
  274. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  275. package/dist/services/provider-context/index.d.mts +1 -1
  276. package/dist/services/provider-context/index.mjs +1 -1
  277. package/dist/services/provider-runtime/index.mjs +1 -1
  278. package/dist/services/session/handlers/index.d.mts +2 -2
  279. package/dist/services/session/handlers/index.mjs +1 -1
  280. package/dist/services/session/index.d.mts +10 -10
  281. package/dist/services/session/index.mjs +1 -1
  282. package/dist/services/session/messages/namespace.d.mts +1 -1
  283. package/dist/services/session/messages/namespace.mjs +1 -1
  284. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  285. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  286. package/dist/services/session/session-events/namespace.d.mts +1 -1
  287. package/dist/services/session/session-events/namespace.mjs +1 -1
  288. package/dist/services/session/storage/namespace.d.mts +1 -1
  289. package/dist/services/session/storage/schema.d.mts +2 -2
  290. package/dist/services/session/storage/schema.mjs +1 -1
  291. package/dist/services/session/testing/index.d.mts +12 -4
  292. package/dist/services/session/testing/index.mjs +36 -4
  293. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  294. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  295. package/dist/services/session/turns/namespace.d.mts +1 -1
  296. package/dist/services/session/turns/namespace.mjs +1 -1
  297. package/dist/services/session-editor/index.d.mts +1 -1
  298. package/dist/services/session-editor/index.mjs +1 -1
  299. package/dist/services/settings/index.d.mts +3 -3
  300. package/dist/services/settings/index.mjs +1 -1
  301. package/dist/services/settings/namespace.d.mts +8 -8
  302. package/dist/services/settings/namespace.mjs +1 -1
  303. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  304. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  305. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  306. package/dist/services/settings/storage/index.d.mts +3 -3
  307. package/dist/services/settings/storage/index.mjs +1 -1
  308. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  309. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  310. package/dist/services/subagent/index.d.mts +1 -1
  311. package/dist/services/subagent/index.mjs +1 -1
  312. package/dist/services/subagent-template/index.d.mts +2 -2
  313. package/dist/services/subagent-template/namespace.d.mts +1 -1
  314. package/dist/services/subagent-template/schemas.d.mts +1 -1
  315. package/dist/services/tool-approval/index.d.mts +1 -1
  316. package/dist/services/tool-approval/index.mjs +1 -1
  317. package/dist/services/tools/index.d.mts +1 -1
  318. package/dist/services/tools/index.mjs +1 -1
  319. package/dist/services/tray-menu/index.d.mts +3 -3
  320. package/dist/services/tray-menu/index.mjs +1 -1
  321. package/dist/services/tray-menu/namespace.d.mts +1 -1
  322. package/dist/services/tray-menu/schemas.d.mts +1 -1
  323. package/dist/services/turn/index.d.mts +1 -1
  324. package/dist/services/turn/namespace.d.mts +1 -1
  325. package/dist/services/workflow-transitions/index.d.mts +1 -1
  326. package/dist/services/workflow-transitions/index.mjs +1 -1
  327. package/dist/session-BMy2kRpX.mjs +90 -0
  328. package/dist/session-Cipx34j6.mjs +1 -0
  329. package/dist/{session-lineage-B_JW5LpF.d.mts → session-lineage-B_PVa1XN.d.mts} +1 -1
  330. package/dist/shared-BFVuCDPx.mjs +1 -0
  331. package/dist/{skill-BR6rkfLe.mjs → skill-C1D51nhh.mjs} +1 -1
  332. package/dist/{src-DD0v-nIj.mjs → src-xbmzokNe.mjs} +1 -1
  333. package/dist/storage/drizzle/client.d.mts +1 -1
  334. package/dist/storage/drizzle/client.mjs +1 -1
  335. package/dist/storage/drizzle/index.d.mts +42 -2
  336. package/dist/storage/drizzle/index.mjs +1 -1
  337. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  338. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  339. package/dist/storage/handlers/index.d.mts +1 -1
  340. package/dist/storage/handlers/index.mjs +1 -1
  341. package/dist/tool-approval-service-BVgN9Q1r.mjs +1 -0
  342. package/dist/{tools-PdG9fO1M.mjs → tools-DxwHox1a.mjs} +1 -1
  343. package/dist/{transition-Du3MQzJV.d.mts → transition-BF1nevaC.d.mts} +7 -34
  344. package/dist/{types-DMLDHFR9.d.mts → types-BNjPhj_a.d.mts} +1 -1
  345. package/dist/{types-Dzrwa1GY.d.mts → types-CijlWGwb.d.mts} +2036 -618
  346. package/dist/types-ClpEaoAm.d.mts +2917 -0
  347. package/dist/{types-D7_kevBK.d.mts → types-xCdGghb2.d.mts} +1 -1
  348. package/dist/ui-hooks/index.d.mts +29 -2
  349. package/dist/ui-hooks/index.mjs +1 -1
  350. package/dist/ui-kernel/index.d.mts +2 -2
  351. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  352. package/dist/ui-views/index.d.mts +1 -1
  353. package/dist/utils/index.d.mts +77 -1
  354. package/dist/utils/index.mjs +2 -2
  355. package/dist/{version-CoCeMxDT.mjs → version-BfNnVAGr.mjs} +1 -1
  356. package/dist/{view-builder-DeFd-k7C.d.mts → view-builder-Bc9dx6jF.d.mts} +1 -1
  357. package/dist/{visibility-qhGWmpSJ.mjs → visibility-Dl1o2I01.mjs} +1 -1
  358. package/dist/{worker-node-Bl9_vqYi.mjs → worker-node-BDOYPEpi.mjs} +1 -1
  359. package/dist/{worker-node-DZTuT1DS.mjs → worker-node-DJ41Tr-F.mjs} +1 -1
  360. package/dist/workflow-Hzc5jlnV.mjs +1 -0
  361. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  362. package/dist/workflow-engine/index.d.mts +114 -395
  363. package/dist/workflow-engine/index.mjs +1 -1
  364. package/dist/workflow-engine/package.d.mts +1 -1
  365. package/dist/workflow-engine/package.mjs +1 -1
  366. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  367. package/dist/workflow-engine/testing/index.d.mts +2 -2
  368. package/dist/workflow-engine/testing/index.mjs +1 -1
  369. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  370. package/dist/workflow-engine/testing/sqlite.mjs +27 -27
  371. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  372. package/dist/workflow-engine/workflow-trigger-binding-consumer.d.mts +46 -0
  373. package/dist/workflow-engine/workflow-trigger-binding-consumer.mjs +1 -0
  374. package/dist/{workflow-transitions-DSc45ixc.mjs → workflow-transitions-DM0fN_eP.mjs} +1 -1
  375. package/dist/workflow-worker-DARC7UZl.mjs +1 -0
  376. package/dist/zod-json-schema-BAGAFfCN.mjs +1 -0
  377. package/package.json +29 -1
  378. package/dist/adapter-D5c5LrPN.mjs +0 -1
  379. package/dist/artifact-DGiXqb11.mjs +0 -1
  380. package/dist/attach-error-C3tngg6J.mjs +0 -1
  381. package/dist/authority-state-bootstrap-GPL_tqaT.mjs +0 -1
  382. package/dist/await-trigger-I3lrepb8.mjs +0 -1
  383. package/dist/bus-B6SAjgOC.mjs +0 -2
  384. package/dist/bus-C2l3K74u.mjs +0 -1
  385. package/dist/extension-DCA4pYrY.mjs +0 -1
  386. package/dist/extension-hjOPs10e.mjs +0 -1
  387. package/dist/framework-packages-C3RWfJDk.mjs +0 -1
  388. package/dist/handlers-CfnLyLfE.mjs +0 -57
  389. package/dist/load-extensions-D0DfjYLC.mjs +0 -1
  390. package/dist/model-BGgVmRnN.mjs +0 -1
  391. package/dist/namespace-DJfUADSV.mjs +0 -1
  392. package/dist/orchestrator-shared-BxmHCPvx.mjs +0 -1
  393. package/dist/package-CNUPPcU1.mjs +0 -7
  394. package/dist/package-Dft_RItb.mjs +0 -1
  395. package/dist/schemas-Cm09dXL4.mjs +0 -1
  396. package/dist/scoped-bus-C9BdNwfM.mjs +0 -1
  397. package/dist/session-BOGCd18q.mjs +0 -1
  398. package/dist/session-BTFiDoGz.mjs +0 -76
  399. package/dist/shared-BQ0CHIVy.mjs +0 -1
  400. package/dist/tool-approval-service-kBA0fRzm.mjs +0 -1
  401. package/dist/types-CJ_QZ1yW.d.mts +0 -1487
  402. package/dist/workflow-BfDbgtIQ.mjs +0 -1
  403. package/dist/workflow-worker-BN9XPxQO.mjs +0 -1
  404. package/dist/{adapter-auth-runtime-DO-FVTXg.mjs → adapter-auth-runtime-D9Lnl7cc.mjs} +0 -0
  405. package/dist/{adapter-binding-DQchUtrK.d.mts → adapter-binding-B-FBoCys.d.mts} +0 -0
  406. package/dist/{attempt-record-codec-CqO1_XnE.mjs → attempt-record-codec-DaFLKR5C.mjs} +0 -0
  407. package/dist/{base-orchestrator-BilsQNW1.d.mts → base-orchestrator-D9u4NyiM.d.mts} +0 -0
  408. package/dist/{capability-service-BqiLlRGA.mjs → capability-service-CJHNkjvm.mjs} +0 -0
  409. package/dist/{client-B--e2qcU.d.mts → client-4ihewPUm.d.mts} +0 -0
  410. package/dist/{client-binary-version-verifier-taewmKTY.mjs → client-binary-version-verifier-DJajc_Ff.mjs} +0 -0
  411. package/dist/{client-binary-version-verifier-CgjM_vGF.d.mts → client-binary-version-verifier-jDDZ64Ah.d.mts} +0 -0
  412. package/dist/{clients-namespace-DfxjG2ZP.d.mts → clients-namespace-DFWuUawf.d.mts} +0 -0
  413. package/dist/{config-namespace-BCqvufbD.d.mts → config-namespace-D1kyZj0B.d.mts} +0 -0
  414. package/dist/{create-static-mount-bbQhTt6W.mjs → create-static-mount-9tnGpIeK.mjs} +0 -0
  415. package/dist/{cross-spawn-B57KZuns.mjs → cross-spawn-BIgueAqr.mjs} +0 -0
  416. package/dist/{cursor-storage-DIFK_9hg.mjs → cursor-storage-ROWfiTh1.mjs} +0 -0
  417. package/dist/{definition-gnKgXU91.d.mts → definition-DB-kKc0d.d.mts} +0 -0
  418. package/dist/{definitions-xrrY0wgz.mjs → definitions-CF6YmEhL.mjs} +0 -0
  419. package/dist/{descriptor-to-package-DvF08krT.mjs → descriptor-to-package-BecVCopf.mjs} +0 -0
  420. package/dist/{drizzle-z_0SiGY8.mjs → drizzle-CPv3vdTE.mjs} +0 -0
  421. package/dist/{esm-CltRnX8_.mjs → esm-CBFWM8u_.mjs} +0 -0
  422. package/dist/{event-CmVjR6Ib.mjs → event-DR8U9Efx.mjs} +0 -0
  423. package/dist/{facet-BCI00njh.mjs → facet-DVsW12iF.mjs} +0 -0
  424. package/dist/{filesystem-service-CQ9yVkSz.d.mts → filesystem-service-Cm2RHKBa.d.mts} +0 -0
  425. package/dist/{handler-Cbv9FqDO.mjs → handler-Bqlk-6BY.mjs} +0 -0
  426. package/dist/{host-Caq6ZfSJ.mjs → host-k5yoyKHg.mjs} +0 -0
  427. package/dist/{identity-D6guMtmi.mjs → identity-DC3Pk0ps.mjs} +0 -0
  428. package/dist/{index-dtsLKOID.d.mts → index-42UdYStR.d.mts} +0 -0
  429. package/dist/{index-DR40QWlw.d.mts → index-BJAB-BW_.d.mts} +0 -0
  430. package/dist/{index-Dm1nUxCF.d.mts → index-BJMezANn.d.mts} +0 -0
  431. package/dist/{index-CnMu8BQl.d.mts → index-BQprJNA_.d.mts} +0 -0
  432. package/dist/{index-Cv-o5Krs.d.mts → index-BRCrFirq.d.mts} +0 -0
  433. package/dist/{index-BVRQEpAg.d.mts → index-BRzHs7Bx.d.mts} +6 -6
  434. /package/dist/{index-DXN_L5D6.d.mts → index-BSbGB23v.d.mts} +0 -0
  435. /package/dist/{index-vA--0lOM.d.mts → index-BVcQcphK.d.mts} +0 -0
  436. /package/dist/{index-ye0oklfU.d.mts → index-BcvqDfcN.d.mts} +0 -0
  437. /package/dist/{index-CGZQVTid.d.mts → index-BeENojSx2.d.mts} +0 -0
  438. /package/dist/{index-DjgLchuQ.d.mts → index-Beo_Ik8-.d.mts} +0 -0
  439. /package/dist/{index-sS6KUlrx.d.mts → index-BgGe9WZz.d.mts} +0 -0
  440. /package/dist/{index-CWHfOz6d.d.mts → index-CK3f0bAL.d.mts} +0 -0
  441. /package/dist/{index-DZunhZec.d.mts → index-CQuRTeRa.d.mts} +0 -0
  442. /package/dist/{index-jTaAHsul.d.mts → index-CRmE88hi.d.mts} +0 -0
  443. /package/dist/{index-CjdRdsd0.d.mts → index-CvW9_SzR.d.mts} +0 -0
  444. /package/dist/{index-ByKi34v5.d.mts → index-CxSSdIZz.d.mts} +0 -0
  445. /package/dist/{index-vcSj12YQ.d.mts → index-E4SET1AA.d.mts} +0 -0
  446. /package/dist/{index-DN4NOCqN2.d.mts → index-Ol9RBB0W2.d.mts} +0 -0
  447. /package/dist/{index-BIdsFcQs2.d.mts → index-aoxdnhJ42.d.mts} +0 -0
  448. /package/dist/{index-SsBHjUqA.d.mts → index-nydhGvXa.d.mts} +0 -0
  449. /package/dist/{jsonl-transport-bQl3JwIu.mjs → jsonl-transport-Bp_6pB2a.mjs} +0 -0
  450. /package/dist/{lib-DOBXZmYX.mjs → lib-Bwdd2m81.mjs} +0 -0
  451. /package/dist/{model-registry-CmgcPDH3.mjs → model-registry-Y854mUml.mjs} +0 -0
  452. /package/dist/{model-registry-xyBKSye-.mjs → model-registry-yURX738J.mjs} +0 -0
  453. /package/dist/{modes-BheyN7SS.mjs → modes-DmUsjHdV.mjs} +0 -0
  454. /package/dist/{namespace-HO2J9sO8.mjs → namespace-B9FEGuEu.mjs} +0 -0
  455. /package/dist/{namespace-jDhZjw-i.d.mts → namespace-Bi3CmYQy.d.mts} +0 -0
  456. /package/dist/{namespace-GPA7zots.d.mts → namespace-BusZERU8.d.mts} +0 -0
  457. /package/dist/{namespace-BOkKoq34.d.mts → namespace-ByP1Iipi.d.mts} +0 -0
  458. /package/dist/{namespace-YytVKIgI.d.mts → namespace-C1D77w7U.d.mts} +0 -0
  459. /package/dist/{namespace-CErHuXtb.d.mts → namespace-C6CVEGH8.d.mts} +0 -0
  460. /package/dist/{namespace-C-9si-fV.mjs → namespace-CfIW0hpQ.mjs} +0 -0
  461. /package/dist/{namespace-YxU1xf-K.mjs → namespace-CkBbNFSU.mjs} +0 -0
  462. /package/dist/{namespace-DWCEo-9M.d.mts → namespace-DX1Ec15L.d.mts} +0 -0
  463. /package/dist/{namespace-CWGKCNZm.mjs → namespace-DbNWsPFY.mjs} +0 -0
  464. /package/dist/{namespace-Cv1RFP7n.d.mts → namespace-Dgg0uoe6.d.mts} +0 -0
  465. /package/dist/{namespace-tGRAod3o.d.mts → namespace-s2y_NFKf.d.mts} +0 -0
  466. /package/dist/{namespace-Blp4c8GK.d.mts → namespace-yREpGJgG.d.mts} +0 -0
  467. /package/dist/{out-CvjtANXN.mjs → out-DrhwCgqM.mjs} +0 -0
  468. /package/dist/{packages-DtEEP0Vt.mjs → packages-FBv3fAOR.mjs} +0 -0
  469. /package/dist/{packages-BZ6pzFIq.d.mts → packages-N3-2Kl-Y.d.mts} +0 -0
  470. /package/dist/{platform-Bv8llU9c.mjs → platform-BrsMv_S3.mjs} +0 -0
  471. /package/dist/{provider-operation-Cxoe2SUr.d.mts → provider-operation-DJ_TLZFf.d.mts} +0 -0
  472. /package/dist/{providers-Co5UszRH.mjs → providers-CCcn4Ndp.mjs} +0 -0
  473. /package/dist/{providers-namespace-DjFkmvBR.d.mts → providers-namespace-DeJBh6MP.d.mts} +0 -0
  474. /package/dist/{quick-lru-CrOpWwrf.mjs → quick-lru-uwB0hP-y.mjs} +0 -0
  475. /package/dist/{schema-introspection-DgWQCpwx.mjs → schema-introspection-C1wvklj9.mjs} +0 -0
  476. /package/dist/{schema-Db-y-09L.mjs → schema-jIapW8Kb.mjs} +0 -0
  477. /package/dist/{schemas-CR8hSqTy.d.mts → schemas-B7zo7Zcx.d.mts} +0 -0
  478. /package/dist/{schemas-CqRm0i9a.mjs → schemas-BNdiVBWh.mjs} +0 -0
  479. /package/dist/{schemas-B1NWNASS.d.mts → schemas-C-Bm6Oac.d.mts} +0 -0
  480. /package/dist/{schemas-BO7uOum6.d.mts → schemas-CD0wOQxx.d.mts} +0 -0
  481. /package/dist/{schemas-N6x2z7Lf.d.mts → schemas-CeUI2i5j.d.mts} +0 -0
  482. /package/dist/{schemas-CwbYk_kZ.d.mts → schemas-Cg-Kwp8c.d.mts} +0 -0
  483. /package/dist/{schemas-BtZqovRH.d.mts → schemas-Cv3rR9Sz.d.mts} +0 -0
  484. /package/dist/{schemas-tDf_WiC8.mjs → schemas-CvHFbzdy.mjs} +0 -0
  485. /package/dist/{schemas-BsVYZviy.d.mts → schemas-DZH9lpxs.d.mts} +0 -0
  486. /package/dist/{schemas-BGExwp3j.mjs → schemas-DgwEVUt-.mjs} +0 -0
  487. /package/dist/{schemas-Bfxskx_2.mjs → schemas-mLpOfMoN.mjs} +0 -0
  488. /package/dist/{schemas-CQyRBqD6.d.mts → schemas-qA279_j_.d.mts} +0 -0
  489. /package/dist/{schemas-miYxK_Z1.d.mts → schemas-sMoRnBdZ.d.mts} +0 -0
  490. /package/dist/{semver-DlM8znk4.mjs → semver-DTXuyLcK.mjs} +0 -0
  491. /package/dist/{server-lifecycle-Dsq56aqC.d.mts → server-lifecycle-C_8iKgat.d.mts} +0 -0
  492. /package/dist/{server-lifecycle-kmQ5PUDv.mjs → server-lifecycle-DKx_fWlq.mjs} +0 -0
  493. /package/dist/{shared-schemas-DXwyMCwZ.mjs → shared-schemas-aahW97QW.mjs} +0 -0
  494. /package/dist/{src-CCu8TwL6.mjs → src-DHqsl5Pg.mjs} +0 -0
  495. /package/dist/{storage-namespace-BSrv0vXR.mjs → storage-namespace-Dz2jsssp.mjs} +0 -0
  496. /package/dist/{storage-namespace-dfywhXR3.d.mts → storage-namespace-Tf3P5yJ5.d.mts} +0 -0
  497. /package/dist/{storage-namespace-definition-BvlX0QV_.d.mts → storage-namespace-definition-BsnYAPot.d.mts} +0 -0
  498. /package/dist/{storage-namespace-definition-CkMKt7-I.mjs → storage-namespace-definition-CDef0E20.mjs} +0 -0
  499. /package/dist/{supports-color-DUugCQsK.mjs → supports-color-i7OTnKcZ.mjs} +0 -0
  500. /package/dist/{telemetry-Pr3oP2rk.mjs → telemetry-BvCBUjFg.mjs} +0 -0
  501. /package/dist/{timeout-DWDhddRJ.mjs → timeout-B0nYjLc8.mjs} +0 -0
  502. /package/dist/{tray-menu-service-BBLa-Rcv.mjs → tray-menu-service-Deo6yyP8.mjs} +0 -0
  503. /package/dist/{types-BrcjaNPZ.d.mts → types-CNS55jvt.d.mts} +0 -0
  504. /package/dist/{types-b54n1o57.d.mts → types-Ce6LL25v.d.mts} +0 -0
  505. /package/dist/{ui-config-CyCdlns_.mjs → ui-config-BIyGzMNL.mjs} +0 -0
  506. /package/dist/{variant-krjlTdJt.mjs → variant-B4uWdxW7.mjs} +0 -0
  507. /package/dist/{window-registry-BDnZLPVx.d.mts → window-registry-BLtVx3Iw.d.mts} +0 -0
  508. /package/dist/{window-registry-I-imZHV_.mjs → window-registry-CoBJq3u4.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { _ as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-BilsQNW1.mjs";
1
+ import { _ as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-D9u4NyiM.mjs";
2
2
 
3
3
  //#region adapters/core/src/log-importer/jsonl-parser.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import{o as e,t}from"../chunk-DTipWd-i.mjs";import{i as n,r}from"../cursor-storage-DIFK_9hg.mjs";import{t as i}from"../globby-1yCVCk8s.mjs";import*as a from"node:fs/promises";import*as o from"node:path";import{MakaioBus as s}from"@makaio/framework/bus";import{AdapterSubjects as c,ClientSubjects as l,SessionStorageSubjects as u,SessionSubjects as d}from"@makaio/framework/contracts";const f=65536;async function p(e){let{filePath:t,startOffset:n=0}=e,r=[],i=[],o=n,s;try{s=await a.open(t,`r`);let e=await s.stat();if(n>=e.size)return{records:r,bytesRead:n,errors:i};let c=Buffer.alloc(f),l=``,u=n,d=0;for(n>0&&(d=await v(s,n));u<e.size;){let{bytesRead:e}=await s.read(c,0,f,u);if(e===0)break;l+=c.toString(`utf8`,0,e),u+=e;let t=l.split(`
1
+ import{o as e,t}from"../chunk-DTipWd-i.mjs";import{i as n,r}from"../cursor-storage-ROWfiTh1.mjs";import{t as i}from"../globby-BBLuT_vy.mjs";import*as a from"node:fs/promises";import*as o from"node:path";import{MakaioBus as s}from"@makaio/framework/bus";import{AdapterSubjects as c,ClientSubjects as l,SessionStorageSubjects as u,SessionSubjects as d}from"@makaio/framework/contracts";const f=65536;async function p(e){let{filePath:t,startOffset:n=0}=e,r=[],i=[],o=n,s;try{s=await a.open(t,`r`);let e=await s.stat();if(n>=e.size)return{records:r,bytesRead:n,errors:i};let c=Buffer.alloc(f),l=``,u=n,d=0;for(n>0&&(d=await v(s,n));u<e.size;){let{bytesRead:e}=await s.read(c,0,f,u);if(e===0)break;l+=c.toString(`utf8`,0,e),u+=e;let t=l.split(`
2
2
  `),n=t.pop();for(let e of t){if(d++,e.trim()===``){o+=Buffer.byteLength(e,`utf8`)+1;continue}let t=g(e,d);t.success?r.push(t.record):i.push(t.error),o+=Buffer.byteLength(e,`utf8`)+1}l=n??``}return{records:r,bytesRead:o,errors:i}}finally{s&&await s.close()}}async function m(e,t){let n=[],r;try{r=await a.open(e,`r`);let i=Buffer.alloc(f),o=``,s=0;for(;n.length<t;){let{bytesRead:e}=await r.read(i,0,f,s);if(e===0)break;o+=i.toString(`utf8`,0,e),s+=e;let a=o.split(`
3
3
  `);o=a.pop()??``;for(let e of a){if(n.length>=t)break;let r=e.trim();if(r!==``)try{n.push(JSON.parse(r))}catch{}}}return n}finally{r&&await r.close()}}async function h(e,t){let n;try{n=await a.open(e,`r`);let r=Buffer.alloc(f),i=``,o=0;for(;;){let{bytesRead:e}=await n.read(r,0,f,o);if(e===0)break;i+=r.toString(`utf8`,0,e),o+=e;let a=i.split(`
4
4
  `);i=a.pop()??``;for(let e of a){let n=e.trim();if(n!==``)try{if(t(JSON.parse(n)))return!0}catch{}}}return!1}finally{n&&await n.close()}}function g(e,t){try{return{success:!0,record:JSON.parse(e)}}catch(n){return{success:!1,error:{line:t,error:n instanceof Error?n.message:String(n),content:_(e)}}}}function _(e){return e.length<=200?e:e.slice(0,200)+`...`}async function v(e,t){let n=0,r=Buffer.alloc(f),i=0;for(;i<t;){let a=Math.min(f,t-i),{bytesRead:o}=await e.read(r,0,a,i);if(o===0)break;for(let e=0;e<o;e++)r[e]===10&&n++;i+=o}return n}var y=e(t(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1),b=class e extends Error{name=`TimeoutError`;constructor(t,n){super(t,n),Error.captureStackTrace?.(this,e)}};const x=e=>e.reason??new DOMException(`This operation was aborted.`,`AbortError`);function S(e,t){let{milliseconds:n,fallback:r,message:i,customTimers:a={setTimeout,clearTimeout},signal:o}=t,s,c,l=new Promise((t,l)=>{if(typeof n!=`number`||Math.sign(n)!==1)throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(o?.aborted){l(x(o));return}if(o&&(c=()=>{l(x(o))},o.addEventListener(`abort`,c,{once:!0})),e.then(t,l),n===1/0)return;let u=new b;s=a.setTimeout.call(void 0,()=>{if(r){try{t(r())}catch(e){l(e)}return}typeof e.cancel==`function`&&e.cancel(),i===!1?t():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${n} milliseconds`,l(u))},n)}).finally(()=>{l.clear(),c&&o&&o.removeEventListener(`abort`,c)});return l.clear=()=>{a.clearTimeout.call(void 0,s),s=void 0},l}function C(e,t,n){let r=0,i=e.length;for(;i>0;){let a=Math.trunc(i/2),o=r+a;n(e[o],t)<=0?(r=++o,i-=a+1):i=a}return r}var w=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:r}=t??{},{size:i}=this,a={priority:n,id:r,run:e};if(i===0){this.#e.length=0,this.#t=0,this.#e.push(a);return}if(this.#e.at(-1).priority>=n){this.#e.push(a);return}this.#n();let o=C(this.#e,a,(e,t)=>t.priority-e.priority);this.#e.splice(o,0,a)}setPriority(e,t){let n=this.#e.findIndex((t,n)=>n>=this.#t&&t.id===e);if(n===-1)throw ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[r]=this.#e.splice(n,1);this.enqueue(r.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((t,n)=>n<this.#t?!1:typeof e==`string`?t.id===e:t.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>100&&this.#t>this.#e.length/2&&this.#n(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let r=this.#e[n];r.priority===e.priority&&t.push(r.run)}return t}get size(){return this.#e.length-this.#t}#n(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}},T=class extends y.default{#e;#t;#n=0;#r;#i=!1;#a=!1;#o;#s=0;#c=0;#l;#u;#d;#f=[];#p=0;#m;#h;#g=0;#_;#v;#y=1n;#b=new Map;#x=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:w,strict:!1,...e},!(typeof e.intervalCap==`number`&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??``}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??``}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===1/0)throw TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===1/0||e.interval===0,this.#r=e.intervalCap,this.#o=e.interval,this.#d=e.strict,this.#m=new e.queueClass,this.#h=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#v=e.autoStart===!1,this.#z()}#S(e){for(;this.#p<this.#f.length;){let t=this.#f[this.#p];if(t!==void 0&&e-t>=this.#o)this.#p++;else break}(this.#p>100&&this.#p>this.#f.length/2||this.#p===this.#f.length)&&(this.#f=this.#f.slice(this.#p),this.#p=0)}#C(e){this.#d?this.#f.push(e):this.#n++}#w(){this.#d?this.#f.length>this.#p&&this.#f.pop():this.#n>0&&this.#n--}#T(){return this.#f.length-this.#p}get#E(){return this.#t?!0:this.#d?this.#T()<this.#r:this.#n<this.#r}get#D(){return this.#g<this.#_}#O(){this.#g--,this.#g===0&&this.emit(`pendingZero`),this.#P(),this.emit(`next`)}#k(){this.#u=void 0,this.#I(),this.#F()}#A(e){if(this.#d){if(this.#S(e),this.#T()>=this.#r){let t=this.#f[this.#p],n=this.#o-(e-t);return this.#j(n),!0}return!1}if(this.#l===void 0){let t=this.#s-e;if(t<0){if(this.#c>0){let t=e-this.#c;if(t<this.#o)return this.#j(this.#o-t),!0}this.#n=this.#e?this.#g:0}else return this.#j(t),!0}return!1}#j(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#k()},e))}#M(){this.#l&&=(clearInterval(this.#l),void 0)}#N(){this.#u&&=(clearTimeout(this.#u),void 0)}#P(){if(this.#m.size===0){if(this.#M(),this.emit(`empty`),this.#g===0){if(this.#N(),this.#d&&this.#p>0){let e=Date.now();this.#S(e)}this.emit(`idle`)}return!1}let e=!1;if(!this.#v){let t=Date.now(),n=!this.#A(t);if(this.#E&&this.#D){let r=this.#m.dequeue();this.#t||(this.#C(t),this.#B()),this.emit(`active`),r(),n&&this.#F(),e=!0}}return e}#F(){this.#t||this.#l!==void 0||this.#d||(this.#l=setInterval(()=>{this.#I()},this.#o),this.#s=Date.now()+this.#o)}#I(){this.#d||(this.#n===0&&this.#g===0&&this.#l&&this.#M(),this.#n=this.#e?this.#g:0),this.#L(),this.#B()}#L(){for(;this.#P(););}get concurrency(){return this.#_}set concurrency(e){if(!(typeof e==`number`&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#_=e,this.#L()}setPriority(e,t){if(typeof t!=`number`||!Number.isFinite(t))throw TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#m.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#y++).toString()},new Promise((n,r)=>{let i=Symbol(`task-${t.id}`),a=()=>void 0,o=async()=>{a(),this.#g++,this.#b.set(i,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let o;try{try{t.signal?.throwIfAborted()}catch(e){throw this.#V(),this.#b.delete(i),e}this.#c=Date.now();let r=e({signal:t.signal});if(t.timeout&&(r=S(Promise.resolve(r),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#g} running, ${this.#m.size} waiting)`})),t.signal){let{signal:e}=t;r=Promise.race([r,new Promise((t,n)=>{o=()=>{n(e.reason)},e.addEventListener(`abort`,o,{once:!0})})])}let a=await r;n(a),this.emit(`completed`,a)}catch(e){r(e),this.emit(`error`,e)}finally{o&&t.signal?.removeEventListener(`abort`,o),this.#b.delete(i),queueMicrotask(()=>{this.#O()})}};this.#m.enqueue(o,t);let s=()=>{if(this.#m instanceof w){this.#m.remove(o);return}this.#m.remove?.(t.id)};if(t.signal){let{signal:e}=t,n=()=>{a(),s(),r(e.reason),this.#P(),this.emit(`next`)};if(a=()=>{e.removeEventListener(`abort`,n),this.#x.delete(a)},e.aborted){n();return}e.addEventListener(`abort`,n,{once:!0}),this.#x.add(a)}this.emit(`add`),this.#P()})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this.#v?(this.#v=!1,this.#L(),this):this}pause(){this.#v=!0}clear(){for(let e of this.#x)e();this.#m=new this.#h,this.#M(),this.#H(),this.emit(`empty`),this.#g===0&&(this.#N(),this.emit(`idle`)),this.emit(`next`)}async onEmpty(){this.#m.size!==0&&await this.#R(`empty`)}async onSizeLessThan(e){this.#m.size<e||await this.#R([`next`,`active`],()=>this.#m.size<e)}async onIdle(){this.#g===0&&this.#m.size===0||await this.#R(`idle`)}async onPendingZero(){this.#g!==0&&await this.#R(`pendingZero`)}async onRateLimit(){this.isRateLimited||await this.#R(`rateLimit`)}async onRateLimitCleared(){this.isRateLimited&&await this.#R(`rateLimitCleared`)}onError(){return new Promise((e,t)=>{let n=e=>{this.off(`error`,n),t(e)};this.on(`error`,n)})}async#R(e,t){let n=Array.isArray(e)?e:[e];return new Promise(e=>{let r=()=>{if(!(t&&!t())){for(let e of n)this.off(e,r);e()}};for(let e of n)this.on(e,r)})}get size(){return this.#m.size}sizeBy(e){return this.#m.filter(e).length}get pending(){return this.#g}get isPaused(){return this.#v}#z(){this.#t||(this.on(`add`,()=>{this.#m.size>0&&this.#B()}),this.on(`next`,()=>{this.#B()}))}#B(){this.#t||this.#a||(this.#a=!0,queueMicrotask(()=>{this.#a=!1,this.#H()}))}#V(){this.#t||(this.#w(),this.#B())}#H(){let e=this.#i;if(this.#t||this.#m.size===0){e&&(this.#i=!1,this.emit(`rateLimitCleared`));return}let t;if(this.#d){let e=Date.now();this.#S(e),t=this.#T()}else t=this.#n;let n=t>=this.#r;n!==e&&(this.#i=n,this.emit(n?`rateLimit`:`rateLimitCleared`))}get isRateLimited(){return this.#i}get isSaturated(){return this.#g===this.#_&&this.#m.size>0||this.isRateLimited&&this.#m.size>0}get runningTasks(){return[...this.#b.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}},E=class{eventQueue;cursorQueue;onEventEmitted;constructor(e){this.onEventEmitted=e.onEventEmitted,this.eventQueue=new T({concurrency:1,interval:1e3,intervalCap:e.eventsPerSecond}),this.cursorQueue=new T({concurrency:1})}queueEvent(e){return this.eventQueue.add(async()=>{await s.emit(e.subject,e.payload),this.onEventEmitted()})}queueAfterEvents(e,t=[]){let n=Promise.all(t);return n.catch(()=>void 0),this.cursorQueue.add(async()=>{await n,await e()})}async drain(){await Promise.all([this.eventQueue.onIdle(),this.cursorQueue.onIdle()])}async onIdle(){await this.drain()}},D=class{options;emittery=new n;trackedFiles=new Map;pollTimer;isPolling=!1;isDisposed=!1;inFlightChecks=new Map;constructor(e){if(!o.isAbsolute(e.directory))throw Error(`Directory must be an absolute path: ${e.directory}`);this.options={directory:e.directory,pattern:e.pattern,pollIntervalMs:e.pollIntervalMs??1e4}}on(e,t){return this.emittery.on(e,t)}once(e,t){return this.emittery.once(e,t)}async start(){this.isDisposed||this.pollTimer===void 0&&(await this.poll(),this.pollTimer=setInterval(()=>{this.poll()},this.options.pollIntervalMs))}stop(){this.pollTimer!==void 0&&(clearInterval(this.pollTimer),this.pollTimer=void 0)}dispose(){this.isDisposed=!0,this.stop(),this.emittery.clearListeners(),this.trackedFiles.clear(),this.inFlightChecks.clear()}isRunning(){return this.pollTimer!==void 0}getTrackedFiles(){return this.trackedFiles}seedFromCursors(e){for(let t of e)this.trackedFiles.set(t.filePath,{size:t.bytesRead,mtimeMs:new Date(t.lastModified).getTime()})}async poll(){if(!this.isDisposed&&!this.isPolling){this.isPolling=!0;try{let e=await this.discoverFiles(),t=new Set(e);for(let e of this.trackedFiles.keys())if(!t.has(e)){if(this.isDisposed)return;this.trackedFiles.delete(e),await this.emittery.emit(`deleted`,{filePath:e})}for(let t of e)try{await this.runFileCheck(t)}catch(e){await this.emitWatcherError(e,t)}if(this.isDisposed)return;await this.emittery.emit(`polled`,{trackedFilePaths:new Set(this.trackedFiles.keys())})}catch(e){await this.emitWatcherError(e)}finally{this.isPolling=!1}}}async discoverFiles(){return i(this.options.pattern,{cwd:this.options.directory,absolute:!0,onlyFiles:!0})}async checkFile(e){if(this.isDisposed)return;let t=await a.stat(e);if(this.isDisposed)return;let n={size:t.size,mtimeMs:t.mtimeMs},r=this.trackedFiles.get(e);if(!r){if(this.trackedFiles.set(e,n),this.isDisposed){this.trackedFiles.delete(e);return}await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:`created`});return}if(n.mtimeMs!==r.mtimeMs){let i=n.size<r.size?`rotated`:`modified`;if(this.trackedFiles.set(e,n),this.isDisposed)return;await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:i})}}clearTrackedFile(e){return this.trackedFiles.delete(e)}clearAllTrackedFiles(){this.trackedFiles.clear()}triggerImmediatePoll(e){this.runFileCheck(e).catch(t=>{this.emitWatcherError(t,e)})}async runFileCheck(e){if(this.isDisposed)return;let t=this.inFlightChecks.get(e);if(t){await t;return}let n=(async()=>{try{await this.checkFile(e)}finally{this.inFlightChecks.delete(e)}})();this.inFlightChecks.set(e,n),await n}async emitWatcherError(e,t){let n=e instanceof Error?e:Error(String(e));try{await this.emittery.emit(`error`,{error:n,filePath:t})}catch(e){console.error(`[LogFileWatcher] Error listener failed:`,e instanceof Error?e.message:String(e))}}},O=class{watcher;constructor(e){this.watcher=new D(e)}isRunning(){return this.watcher.isRunning()}async start(){await this.watcher.start()}stop(){this.watcher.stop()}dispose(){this.watcher.dispose()}onChange(e){return this.watcher.on(`change`,e)}onError(e){return this.watcher.on(`error`,e)}onDeleted(e){return this.watcher.on(`deleted`,e)}onPolled(e){return this.watcher.on(`polled`,({trackedFilePaths:t})=>e(t))}getTrackedFileMtimeMs(e){return this.watcher.getTrackedFiles().get(e)?.mtimeMs}triggerImmediatePoll(e){this.watcher.triggerImmediatePoll(e)}seedFromCursors(e){this.watcher.seedFromCursors(e)}},k=class{filesProcessed=0;eventsEmitted=0;sessionsImported=new Set;sessionsSkipped=new Set;lastLoggedEventCount=0;lastLoggedSnapshot=``;reset(){this.filesProcessed=0,this.eventsEmitted=0,this.sessionsImported.clear(),this.sessionsSkipped.clear(),this.lastLoggedEventCount=0,this.lastLoggedSnapshot=``}recordFileProcessed(){this.filesProcessed++}recordEventEmitted(e){this.eventsEmitted++,!(this.eventsEmitted-this.lastLoggedEventCount<1e3)&&(console.info(`${e} Imported ${this.eventsEmitted} events (${this.sessionsImported.size} sessions)...`),this.lastLoggedEventCount=this.eventsEmitted)}recordSessionImported(e){this.sessionsImported.add(e)}recordSessionSkipped(e){this.sessionsSkipped.add(e)}hasActivity(){return this.eventsEmitted>0||this.filesProcessed>0}stoppedMessage(e){return`${e} Stopped - ${this.eventsEmitted} events from ${this.sessionsImported.size} sessions (${this.sessionsSkipped.size} skipped)`}logProgress(e){if(!this.hasActivity())return;let t=JSON.stringify({eventsEmitted:this.eventsEmitted,filesProcessed:this.filesProcessed,sessionsImported:this.sessionsImported.size,sessionsSkipped:this.sessionsSkipped.size});t!==this.lastLoggedSnapshot&&(this.lastLoggedSnapshot=t,console.info(`${e} Progress: ${this.eventsEmitted} events, ${this.sessionsImported.size} sessions, ${this.filesProcessed} files, ${this.sessionsSkipped.size} skipped`))}};function A(e){return async t=>{try{if(e!==void 0)try{let n=await s.requestOptional(l.runtime.isAdapterManaged,{adapterSessionId:t,clientId:e});if(n.handled&&n.data.managed)return!0}catch{}let n=await s.request(d.getByAdapterSessionId,{adapterSessionId:t});return n.session!==null&&!n.session.isImported}catch{return!1}}}var j=class{checkedSessions=new Map;inFlight=new Map;generations=new Map;async isSkipped(e,t,n){for(;;){let r=this.checkedSessions.get(e);if(r!==void 0)return r;let i=this.generations.get(e)??0,a=this.inFlight.get(e),o;if(a&&a.generation===i?o=a.promise:(o=t(e).then(t=>((this.generations.get(e)??0)===i&&(this.checkedSessions.set(e,t),t&&n(e)),t)).finally(()=>{let t=this.inFlight.get(e);t&&t.generation===i&&this.inFlight.delete(e)}),this.inFlight.set(e,{generation:i,promise:o})),await o,(this.generations.get(e)??0)===i){let t=this.checkedSessions.get(e);if(t!==void 0)return t;continue}}}invalidate(e){this.checkedSessions.delete(e),this.inFlight.delete(e),this.generations.set(e,(this.generations.get(e)??0)+1)}clear(){this.checkedSessions.clear(),this.inFlight.clear(),this.generations.clear()}};function M(e,t,n,r){return!n||!e||r===`rotated`?!1:new Date(e)>=t}function N(e,t,n){for(let r of n??[]){let n=r.line===void 0?``:` at line ${r.line}`;console.warn(`${e} Parse error in ${t}${n}: ${r.error}`)}}async function P(e,t,n,i){let{cursor:a}=await s.request(r.get,{filePath:e});return a&&a.bytesRead>0&&!a.sessionContext&&!t?(await s.request(r.delete,{filePath:e}).catch(()=>{}),i(n),`retry`):a}async function F(e,t,n,r,i,a){let o=await a.parseFile(e,0);N(i,e,o.errors);let s=a.validateRecords(o.records);s.length>0&&await a.handleFirstRead(e,s,o.bytesRead??0,t,n,0,r)}function I(e,t,n,r,i){let a=[];n&&(a.push(i(t.sessionEvent)),a.push(i(t.startedEvent)));let o=r(e,t);for(let e of o)a.push(i(e));return a}function L(e,t){let n=[];for(let r of e)n.push(t(r));return n}function R(e){return typeof e==`object`&&!!e&&`compactionDetected`in e&&e.compactionDetected===!0}function z(e,t,n){return{...e,state:n(t)}}var B=class{tasks=new Set;track(e){this.tasks.add(e),e.finally(()=>{this.tasks.delete(e)})}async drain(){for(;this.tasks.size>0;)await Promise.allSettled([...this.tasks])}},V=class{config;watcher;eventQueue;importer;managedSessionCache=new j;unsubscribeChange;unsubscribeError;unsubscribeDeleted;unsubscribeRuntimeStarted;stats=new k;watcherTasks=new B;progressTimer;constructor(e,t){this.importer=t;let n=e.directory??t.getLogDirectory();this.config={enabled:e.enabled,directory:e.directory,pollIntervalMs:e.pollIntervalMs??1e4,eventsPerSecond:e.eventsPerSecond??100,adapterId:e.adapterId,adapterName:e.adapterName,checkMakaioManaged:e.checkMakaioManaged,clientId:e.clientId,machineId:e.machineId},this.watcher=new O({directory:n,pattern:this.getLogFilePattern(),pollIntervalMs:this.config.pollIntervalMs}),this.eventQueue=new E({eventsPerSecond:this.config.eventsPerSecond,onEventEmitted:()=>{this.stats.recordEventEmitted(this.logPrefix)}})}shouldSkipFile(e){return!1}validateRecords(e){return e}getMaxRecords(){}buildCursorSessionContext(e){let{adapterSessionId:t,sessionEvent:n,startedEvent:r,state:i,...a}=e;return{...a,adapterSessionId:t,sessionEvent:n,startedEvent:r,state:this.importer.serializeState(i)}}usesJsonFormat(){let e=this.getLogFilePattern();return e.includes(`.json`)&&!e.includes(`.jsonl`)}isEnabled(){return this.config.enabled}isRunning(){return this.watcher.isRunning()}async start(){if(!this.config.enabled||this.isRunning())return;let e=this.config.directory??this.importer.getLogDirectory();console.info(`${this.logPrefix} Starting - watching ${e}`),this.stats.reset(),this.managedSessionCache.clear(),this.progressTimer=setInterval(()=>this.stats.logProgress(this.logPrefix),1e4),this.unsubscribeChange=this.watcher.onChange(e=>{this.trackFileChange(e)}),this.unsubscribeError=this.watcher.onError(({error:e,filePath:t})=>{console.warn(`${this.logPrefix} Error${t?` for ${t}`:``}: ${e.message}`)}),this.unsubscribeDeleted=this.watcher.onDeleted(({filePath:e})=>{this.watcherTasks.track(s.request(r.delete,{filePath:e}).then(()=>void 0).catch(()=>{}))}),this.unsubscribeRuntimeStarted=s.on(l.runtime.started,e=>{e.payload.source.layer===`adapter`&&e.payload.adapterSessionId!==void 0&&this.managedSessionCache.invalidate(e.payload.adapterSessionId)}),await this.watcher.start()}async stop(){this.progressTimer&&=(clearInterval(this.progressTimer),void 0),this.unsubscribeChange?.(),this.unsubscribeError?.(),this.unsubscribeDeleted?.(),this.unsubscribeRuntimeStarted?.(),this.unsubscribeChange=void 0,this.unsubscribeError=void 0,this.unsubscribeDeleted=void 0,this.unsubscribeRuntimeStarted=void 0,this.watcher.stop(),await this.watcherTasks.drain(),await this.eventQueue.drain(),this.stats.hasActivity()&&console.info(this.stats.stoppedMessage(this.logPrefix))}async dispose(){await this.stop(),this.watcher.dispose(),this.managedSessionCache.clear()}static createDefaultCheckMakaioManaged(e){return A(e)}async updateCursor(e,t,n,i){await s.request(r.set,{filePath:e,bytesRead:t,lastModified:n.toISOString(),sessionContext:i})}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let a=this.usesJsonFormat();n===`rotated`&&await s.request(r.delete,{filePath:t}).catch(()=>{});let o=await P(t,a,e,e=>this.trackFileChange(e));if(o===`retry`)return;let c=o?.sessionContext!==void 0,l=c?o?.bytesRead??0:0;if(M(o?.lastModified,i.mtime,a,n))return;let u=await this.parseFile(t,a?0:l,this.getMaxRecords());N(this.logPrefix,t,u.errors),this.stats.recordFileProcessed();let d=this.validateRecords(u.records),f=u.bytesRead??0;if(d.length===0){await this.maybeUpdateCursor(t,f,l,i.mtime,a,o?.sessionContext);return}c&&o?.sessionContext?await this.handleIncrementalRead(t,d,o.sessionContext,f,i.mtime,a,l):await this.handleFirstRead(t,d,f,i.mtime,a,l)}trackFileChange(e){let t=this.handleFileChange(e).catch(e=>{console.error(`${this.logPrefix} Error handling file change:`,e instanceof Error?e.message:String(e))});this.watcherTasks.track(t)}async handleFirstRead(e,t,n,r,i,a,o=!0){let s=this.importer.extractSessionContext(t);if(await this.isSessionSkipped(s.adapterSessionId)){await this.maybeUpdateCursor(e,n,a,r,i,this.buildCursorSessionContext(s));return}let c=I(t,s,o,(e,t)=>this.importer.processRecords(e,t),e=>this.queueEvent(e));this.trackImportedSession(s.adapterSessionId),await this.queueCursorUpdate(e,n,a,r,i,this.buildCursorSessionContext(s),c)}trackImportedSession(e){this.stats.recordSessionImported(e)}async handleIncrementalRead(e,t,n,i,a,o,c){if(await this.isSessionSkipped(n.adapterSessionId)){await this.maybeUpdateCursor(e,i,c,a,o,n);return}let l;try{l=this.importer.deserializeState(n.state)}catch(t){console.warn(`${this.logPrefix} Corrupted cursor state for ${e}, deleting cursor and re-importing.`,t instanceof Error?t.message:String(t)),await s.request(r.delete,{filePath:e}).catch(t=>{console.warn(`${this.logPrefix} Failed to delete corrupted cursor for ${e}.`,t instanceof Error?t.message:String(t))}),await F(e,a,o,!0,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let u={adapterSessionId:n.adapterSessionId,model:n.model,cwd:n.cwd,sessionEvent:n.sessionEvent,startedEvent:n.startedEvent,state:l},d=this.importer.processRecords(t,u);if(R(u.state)){await F(e,a,o,!1,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let f=L(d,e=>this.queueEvent(e)),p=z(n,u.state,e=>this.importer.serializeState(e));await this.queueCursorUpdate(e,i,c,a,o,p,f)}async maybeUpdateCursor(e,t,n,r,i,a){(t>n||i)&&await this.updateCursor(e,t,r,a)}async isSessionSkipped(e){return this.managedSessionCache.isSkipped(e,e=>this.importer.isMakaioManaged(e),e=>this.stats.recordSessionSkipped(e))}queueEvent(e){return this.eventQueue.queueEvent(e)}queueCursorUpdate(e,t,n,r,i,a,o=[]){return this.eventQueue.queueAfterEvents(()=>this.maybeUpdateCursor(e,t,n,r,i,a),o)}},H=class extends V{trackingFilePaths=new Set;trackingInactiveCount=new Map;lastSeenMtimeMs=new Map;unsubscribePolled;constructor(e,t){super(e,t)}clearTrackingState(e){this.trackingFilePaths.delete(e),this.trackingInactiveCount.delete(e),this.lastSeenMtimeMs.delete(e)}async persistImportedStatus(e){let{session:t}=await s.request(u.getByLogFilePath,{logFilePath:e});return!t||t.importStatus!==`tracking`||(await s.request(u.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success?!0:(console.warn(`${this.logPrefix} Failed to persist imported status for ${e}`),!1)}async start(){!this.isEnabled()||this.isRunning()||(await super.start(),this.unsubscribePolled=this.watcher.onPolled(e=>{this.onPollCycle(e).catch(e=>{console.error(`${this.logPrefix} Error handling poll cycle:`,e instanceof Error?e.message:String(e))})}),await this.restorePersistedTrackingState())}async stop(){this.unsubscribePolled?.(),this.unsubscribePolled=void 0,await super.stop()}async dispose(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear(),await super.dispose()}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let{cursor:a}=await s.request(r.get,{filePath:t});if(!a){await this.discoverNewFile(e);return}n===`modified`&&await this.handleModifiedImportedFile(t,e,i.mtime)}async restorePersistedTrackingState(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear();try{let{sessions:e}=await s.request(u.listImported,{source:this.config.adapterName,importStatus:`tracking`});for(let t of e){if(t.source!==this.config.adapterName)continue;if(!t.logFilePath){(await s.request(u.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for session ${t.sessionId}`);continue}let e=this.watcher.getTrackedFileMtimeMs(t.logFilePath);if(e===void 0){(await s.request(u.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for ${t.logFilePath}`);continue}this.trackingFilePaths.add(t.logFilePath),this.trackingInactiveCount.set(t.logFilePath,0),this.lastSeenMtimeMs.set(t.logFilePath,e)}}catch(e){console.warn(`[DiscoveryOrchestrator] Failed to restore persisted tracking state:`,e instanceof Error?e.message:String(e))}}async discoverNewFile(e){let{filePath:t,stat:n}=e,r=await this.importer.extractDiscoveryMetadata(t);if(!(r.hasMessages??!1)){await this.updateCursor(t,0,n.mtime);return}if(await this.isSessionSkipped(r.adapterSessionId)){await this.updateCursor(t,0,n.mtime);return}let i=this.queueEvent({subject:c.session.discovered,payload:{adapterId:this.config.adapterId,adapterName:this.config.adapterName,adapterSessionId:r.adapterSessionId,model:r.model??null,cwd:r.cwd??null,title:r.title,parentAdapterSessionId:r.parentAdapterSessionId??null,forkPointMessageId:r.forkPointMessageId??null,kind:r.kind??`root`,startedAt:r.startedAt,logFilePath:t}});await this.eventQueue.queueAfterEvents(()=>this.updateCursor(t,0,n.mtime),[i])}async handleModifiedImportedFile(e,t,n){let{session:r}=await s.request(u.getByLogFilePath,{logFilePath:e});if(!r){await this.discoverNewFile(t);return}if(r.source===this.config.adapterName&&!(r.importStatus!==`imported`&&r.importStatus!==`tracking`)){if(await super.handleFileChange(t),r.importStatus===`imported`&&!(await s.request(u.updateImportStatus,{sessionId:r.sessionId,importStatus:`tracking`})).success){console.warn(`${this.logPrefix} Failed to persist tracking status for ${e}`);return}this.trackingFilePaths.add(e),this.lastSeenMtimeMs.set(e,n.getTime()),this.trackingInactiveCount.delete(e),this.watcher.triggerImmediatePoll(e)}}async onPollCycle(e){for(let t of[...this.trackingFilePaths]){if(!e.has(t)){await this.persistImportedStatus(t)&&this.clearTrackingState(t);continue}let n=this.watcher.getTrackedFileMtimeMs(t),r=this.lastSeenMtimeMs.get(t);if(!(n===void 0||r===void 0))try{if(n===r){let e=(this.trackingInactiveCount.get(t)??0)+1;e>=3?await this.persistImportedStatus(t)&&this.clearTrackingState(t):this.trackingInactiveCount.set(t,e)}else this.lastSeenMtimeMs.set(t,n),this.trackingInactiveCount.delete(t)}catch(e){console.warn(`${this.logPrefix} Failed to process tracked file ${t}:`,e instanceof Error?e.message:String(e))}}}};export{V as BaseLogOrchestrator,H as DiscoveryOrchestrator,p as parseJsonlFile,m as readFirstJsonlRecords,h as someJsonlRecord};
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { EventMessagePayload, ScopedSubjectDefinition } from "@makaio/framework/core";
3
3
  import { IMakaioBus, ScopedBus } from "@makaio/framework/bus";
4
- import { AgentToolApproveRequest, AgentToolApproveResponse, McpSessionContext, SessionMessageBlock, ToolExecuteResult, ToolExecutionContextOverrides, ToolListItem } from "@makaio/framework/contracts";
4
+ import { AgentToolApproveRequest, AgentToolApproveResponse, ConnectorTeardownResult, McpSessionContext, SessionMessageBlock, ToolExecuteResult, ToolExecutionContextOverrides, ToolListItem } from "@makaio/framework/contracts";
5
5
  import { AIAgent, AIAgentConnector, AIReasoningLevel as AIReasoningLevel$1, AgentCompleteEvent, AgentCompleteEventSchema, AgentStartedEvent, AgentStartedEvent as AgentStartedEvent$1, AgentStartedEventSchema, BaseAgentConnectorConfig, BaseConnectorSession, ConnectorSendMessageOptions, ErrorEvent, ErrorEvent as ErrorEvent$1, ErrorEventSchema, LedgerSessionContext, MessageHandle, MessageResult, NormalizedCallUsage, NormalizedMessageInput, ProceduralAgentConnector, ProceduralConnectorSession, ProceduralConnectorTurn, ToolApprovalContext, ToolCompletedEvent, ToolCompletedEvent as ToolCompletedEvent$1, ToolCompletedEventSchema, ToolStartedEvent, ToolStartedEvent as ToolStartedEvent$1, ToolStartedEventSchema, UserMessageQueue, WireSessionConfig, WireSessionSubjects } from "@makaio/framework/adapters";
6
6
 
7
7
  //#region adapters/shared/stream-session/src/tool-handling/tool-result.d.ts
@@ -647,6 +647,14 @@ declare abstract class BaseStreamSession<TConfig extends StreamSessionConfig<Sco
647
647
  * @param queue - The user message queue to drain
648
648
  */
649
649
  processQueue(queue: UserMessageQueue): Promise<void>;
650
+ /**
651
+ * Terminally retire this stream session before pausing active provider work.
652
+ *
653
+ * Stream connectors reuse a session after {@link abort} interrupts a turn.
654
+ * Set the inherited queue gate before the first await only when ownership ends,
655
+ * so a retained session reference cannot start a turn during connector close.
656
+ */
657
+ close(): Promise<void>;
650
658
  /**
651
659
  * Start a new turn for the given message handle.
652
660
  *
@@ -656,8 +664,9 @@ declare abstract class BaseStreamSession<TConfig extends StreamSessionConfig<Sco
656
664
  * machine always reaches a terminal state.
657
665
  * @param handle - The message handle to process
658
666
  * @param mergedContent - Optional content from superseded/merged messages
667
+ * @returns `false` when terminal close prevented provider work from starting
659
668
  */
660
- protected startNewTurn(handle: MessageHandle, mergedContent?: string[]): Promise<void>;
669
+ protected startNewTurn(handle: MessageHandle, mergedContent?: string[]): Promise<void | false>;
661
670
  /**
662
671
  * Handle a turn-level error from the `queueMicrotask` body.
663
672
  *
@@ -776,12 +785,15 @@ declare abstract class BaseStreamSession<TConfig extends StreamSessionConfig<Sco
776
785
  * Minimal session contract required by BaseStreamConnector.
777
786
  *
778
787
  * Extends `ProceduralConnectorSession` with the lifecycle methods that the
779
- * connector delegates to: `abort` (used by interrupt/close), `updateModel` and
780
- * `updateCwd` for in-place mutation without a full session swap.
788
+ * connector delegates to: reusable `abort` for interrupt, terminal `close` for
789
+ * ownership release, and `updateModel`/`updateCwd` for in-place mutation without
790
+ * a full session swap.
781
791
  */
782
792
  interface StreamConnectorSession extends ProceduralConnectorSession {
783
- /** Abort the active turn, cancelling any in-flight API call. */
793
+ /** Abort the active turn while keeping the session available for later turns. */
784
794
  abort(): Promise<void>;
795
+ /** Terminally retire the session and prevent later queue processing. */
796
+ close(): Promise<void>;
785
797
  /**
786
798
  * Update the model used for subsequent API calls.
787
799
  * @param model - New model identifier
@@ -1048,9 +1060,18 @@ declare abstract class BaseStreamConnector<TBus extends ScopedBus<string>, TSess
1048
1060
  */
1049
1061
  abort(): void;
1050
1062
  /**
1051
- * Gracefully close the session.
1063
+ * Gracefully close the session and report what was observed.
1064
+ *
1065
+ * **Class: `detached`.** The local evidence stops at the abort. Closing a
1066
+ * stream connector aborts its session, which *pauses* the active turn and
1067
+ * signals an `AbortController`; nothing awaits the settlement of the HTTP
1068
+ * request that signal is meant to end, and the provider request may still be
1069
+ * in flight when this resolves. There is no process to watch and no
1070
+ * acknowledged connection shutdown, so `released` would claim that no callback
1071
+ * can arrive afterwards — which is precisely what is not established here.
1072
+ * @returns `detached`, naming the settlement this close does not wait for.
1052
1073
  */
1053
- close(): Promise<void>;
1074
+ close(): Promise<ConnectorTeardownResult>;
1054
1075
  /**
1055
1076
  * Perform an in-place model update without swapping the connector.
1056
1077
  *
@@ -1 +1 @@
1
- import{z as e}from"zod";import{OnceAbortError as t}from"@makaio/framework/bus";import{AgentSubjects as n,McpSubjects as r,ToolSubjects as i}from"@makaio/framework/contracts";import{AIAgent as a,AgentCompleteEventSchema as o,AgentStartedEventSchema as s,BaseConnectorSession as c,ErrorEventSchema as l,ProceduralAgentConnector as u,ToolCompletedEventSchema as d,ToolStartedEventSchema as f,UserMessageQueue as p,extractMcpCallTarget as m,isMcpCallTool as h,markCompletedWithFinalResult as g,processQueueMessages as _}from"@makaio/framework/adapters";const v=8e3;function y(e){if(e.length<=8e3)return e;let t=v,n=``;for(;;){let r=`\n...[truncated ${e.length-t} chars]`,i=v-r.length;if(i<0)return r.slice(0,v);if(i===t&&r===n)break;t=i,n=r}return`${e.slice(0,t)}${n}`}function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function x(e,t=`Adapter`){let n;try{n=JSON.parse(e.function.arguments)}catch{let n=e.function.arguments.length;throw console.error(`[${t}] Failed to parse tool arguments for "${e.function.name}" (argsLength=${n})`),Error(`Failed to parse tool arguments for "${e.function.name}"`)}if(!b(n)){let r=n===null?`null`:Array.isArray(n)?`array`:typeof n;throw console.error(`[${t}] Parsed tool arguments for "${e.function.name}" must be a JSON object (received ${r})`,n),Error(`Tool arguments for "${e.function.name}" must be a JSON object`)}return{toolName:e.function.name,args:n,toolCallId:e.id}}function S(e,t,n=`Adapter`){return{...x(e,n),agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId,sessionId:t.sessionId}}function C(e,t){t.updatedInput!==void 0&&(e.function.arguments=JSON.stringify(t.updatedInput))}function w(e,t){if(t===void 0||t.allowedTools===void 0&&t.disallowedTools===void 0)return e;let n=t.allowedTools===void 0?void 0:new Set(t.allowedTools),r=t.disallowedTools===void 0?void 0:new Set(t.disallowedTools);return e.filter(e=>!(r?.has(e.name)||n!==void 0&&!n.has(e.name)))}async function T(e,t,n,r){try{return w((await e.request(i.list,{adapterId:t,adapterName:n})).tools,r)}catch(e){return console.warn(`[${n}] Failed to fetch tools from bus:`,e),[]}}function E(e){return e.filter(e=>e.inputSchema!==void 0)}async function D(e,t,n,r){await n({eventType:`tool_started`,toolName:t.function.name,toolCallId:t.id});try{let a=JSON.parse(t.function.arguments),o=await e.request(i.execute,{toolName:t.function.name,input:a,adapterId:r.adapterId,adapterName:r.adapterName,contextOverrides:{...r,toolCallId:t.id}});return n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:o.success?JSON.stringify(o.data):JSON.stringify(o.error),success:o.success}).then(()=>o)}catch(e){let r=e instanceof Error?{message:e.message,name:e.name}:{message:String(e),name:`UnknownError`};throw await n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:JSON.stringify(r),success:!1}),e}}async function O(e,t,n,r,i){let a=[];for(let o of e){let e=x(o,i),s=await t.requestToolApproval({...e,reasoning:n.reasoning});if(s.action===`deny`){if(s.shouldAbort)throw Error(`Tool use denied by approval handler: ${o.function.name}`);let e=y(JSON.stringify({error:s.message}));a.push(r(o.id,e,!0));continue}C(o,s);let c=await D(t.bus,o,t.emitSdkEvent,n);if(c.success&&t.recordMcpCall&&h(e.toolName)){let n=m(s.updatedInput??e.args);n!==void 0&&t.recordMcpCall(n)}let l=c.success?typeof c.data==`string`?c.data:JSON.stringify(c.data??null):JSON.stringify({error:c.error.message,code:c.error.code});a.push(r(o.id,y(l),!c.success))}return a}const k=e.enum([`idle`,`turn_started`,`step_started`,`step_finished`,`turn_finished`]),A=e.object({adapterId:e.string(),agentId:e.string(),oldState:k,newState:k,timestamp:e.number()}),j=e.object({eventType:e.literal(`reasoning_delta`),content:e.string()}),M=e.object({eventType:e.literal(`reasoning_complete`),content:e.string()}),N=e.object({name:e.string(),arguments:e.string()}),P=e.object({id:e.string(),type:e.literal(`function`),function:N}),F=e.object({eventType:e.literal(`tool_calls`),toolCalls:e.array(P)}),I=e.object({id:e.string(),type:e.literal(`function`),function:N}),L=e.object({eventType:e.literal(`message_complete`),content:e.string().nullable(),reasoning:e.string().optional(),tool_calls:e.array(I).optional(),finish_reason:e.string().nullable()}),R=`stream_start_timeout`;var z=class extends c{static MAX_TOOL_CALL_ITERATIONS=8;lastAssistantMessage;currentModel;currentCwd;pendingAssistantHistoryCompactions=[];constructor(e){super(e),this.sessionId=crypto.randomUUID(),this.currentModel=e.model,this.currentCwd=e.cwd}async processQueue(e){await _(e,{getCurrentTurn:()=>this.currentTurn,startNewTurn:(e,t)=>this.startNewTurn(e,t)})}async startNewTurn(e,t){this.config.onTurnStart?.(e),this.sessionId=crypto.randomUUID(),e.adapterSessionId=this.sessionId,e.internalRetry||this.closePendingAssistantHistoryCompactions(this.getConversationHistoryLength()),this.buildMessages(e,t);let n=this.getConversationHistoryLength(),r;if(!e.isProcessed&&!e.internalRetry){let t,i={setEndIndex:e=>{t??=e}};this.pendingAssistantHistoryCompactions.push(i),e.addCompletionObserver(e=>{try{let i=e.outcome===`completed`?e.result?.message:void 0;if(i===void 0||r===void 0||i===r)return;let a=t??this.getConversationHistoryLength();this.replaceAssistantTurnHistory(n,a,i),this.lastAssistantMessage=i}finally{this.removePendingAssistantHistoryCompaction(i)}})}this.currentTurn=this.createTurn(e),this.lastAssistantMessage=void 0,e.markAcknowledged(),await this.config.emitSdkEvent({eventType:`agent_started`,model:this.currentModel});let i=this.currentTurn;queueMicrotask(async()=>{try{if(!i||(await this.runTurn(i,e),e.isProcessed||this.isTurnSuperseded(i)))return;r=this.lastAssistantMessage||``,await g(e,{outcome:`completed`,result:{message:r}},this.config.onTurnComplete)}catch(t){await this.handleTurnError(t,i,e)}finally{i&&(!i.isPaused()||e.deliveryMode!==`immediate`)&&(await i.markTurnFinished(),this.currentTurn===i&&(this.currentTurn=void 0))}})}async handleTurnError(e,t,n){if(t?.isPaused()&&n.deliveryMode===`immediate`)return;let r=e instanceof Error?e:Error(String(e));if(t?.isPaused()){n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete);return}console.error(`[${this.config.adapterName}] Turn error:`,e),n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete),this.config.handleError(r,!1)}async runTurn(e,t){this.isTurnSuperseded(e)||(await e.start(),await this.runTurnIteration(e,t))}createMessageCompletePromise(e,t){return this.bus.once(this.getSdkEventSubject(),{timeoutMs:3e5,filter:{"event.eventType":`message_complete`,agentId:this.config.agentId,adapterId:this.config.adapterId,adapterSessionId:t},signal:e})}async executeStreamingStep(e,t,n){let r=this.config.streamStartTimeoutMs??3e4,i=new AbortController,a=setTimeout(()=>{i.abort()},r);try{await this.executeApiCall(e,AbortSignal.any([t,i.signal]),n)}catch(e){throw!t.aborted&&i.signal.aborted?Error(R,{cause:e}):e}finally{clearTimeout(a)}}async runTurnIteration(e,n,r=0){if(this.isTurnSuperseded(e))return;let i=e.getAbortSignal(),a=0,o;for(;;){if(this.shouldAbortTurnProcessing(e,n))return;try{let t=n.adapterSessionId??this.sessionId;if(!t)throw Error(`adapterSessionId must be set before waiting for message_complete`);if(o=this.createMessageCompletePromise(i,t),await this.executeStreamingStep(e,i,t),this.shouldAbortTurnProcessing(e,n)){o.catch(()=>{});return}let{payload:a}=await o,s=a.event;if(s.eventType!==`message_complete`)throw Error(`Expected message_complete event, got ${s.eventType}`);if(this.shouldAbortTurnProcessing(e,n))return;await this.applyMessageComplete(s,n,r,e);return}catch(e){if(o?.catch(()=>{}),e instanceof Error&&e.message===R&&!i.aborted&&a===0){a++;continue}if(i.aborted||e.name===`AbortError`||e instanceof t)return;let n=this.classifyError(e);throw r===0&&await this.config.emitSdkEvent({eventType:`error`,message:n.message,code:e?.code,type:e?.type}),n}}}buildToolConstraints(){if(this.config.allowedDirectories!==void 0)return{allowedDirectories:this.config.allowedDirectories}}updateModel(e){this.currentModel=e}updateCwd(e){this.currentCwd=e}getCurrentTurn(){return this.currentTurn}isTurnSuperseded(e){return this.currentTurn!==e}shouldAbortTurnProcessing(e,t){return t.isProcessed||e.isPaused()||this.isTurnSuperseded(e)}closePendingAssistantHistoryCompactions(e){for(let t of this.pendingAssistantHistoryCompactions)t.setEndIndex(e)}removePendingAssistantHistoryCompaction(e){let t=this.pendingAssistantHistoryCompactions.indexOf(e);t>=0&&this.pendingAssistantHistoryCompactions.splice(t,1)}},B=class extends u{session;userMessageQueue=new p;mcpDirectTools=[];mcpSessionContextCache;hasPendingToolRefresh=!1;hasPendingLedgerInjection=!1;markToolRefreshPending(){this.hasPendingToolRefresh=!0}afterSessionCreated(e){}getSession(){return this.session}async ensureSession(){return this.session||await this.initializeSession(),this.session}getSessionQueue(){return this.userMessageQueue}async initializeSession(){await this.fetchToolsViaBus(),this.prepareMcpDirectTools(),this.session=this.createSession(),this.afterSessionCreated(this.session),this.wireSessionEvents(),this.mcpDirectTools.length>0&&this.session.updateTools?.(this.mcpDirectTools);let e=(this.pendingTurnNumber??this.currentTurnNumber)||1;this.config.toolLedger?.recordInjection(this.mcpDirectTools,e)}prepareMcpDirectTools(){let e=this.mcpSessionContextCache??this.config.mcpSessionContext;e&&(this.mcpDirectTools=e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema})))}async fetchToolsViaBus(){this.session||await this.fetchTools()}async refreshTools(){await this.resolveAndCacheMcpContext(),this.prepareMcpDirectTools(),this.hasPendingLedgerInjection=!0}async resolveAndCacheMcpContext(){let e=this.config.mcpSessionContext;if(!(!e||!(`sessionId`in e)))try{this.mcpSessionContextCache=await this.globalBus.request(r.session.resolve,{sessionId:e.sessionId,profileId:e.profileId,projectId:e.projectId})}catch(e){console.warn(`[${this.config.adapterName}] MCP session re-resolve failed; using previous tool snapshot.`,e)}}getWireSessionConfig(){return{onTurnStarted:async()=>{if(this.consumeTurnNumber(),this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed at turn start; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}this.hasPendingLedgerInjection&&=(this.config.toolLedger?.recordInjection(this.mcpDirectTools,this.currentTurnNumber),!1)},onTurnFinished:async e=>{if(this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}await e()}}}resolveSystemPrompt(){if(this.systemPrompt!==void 0)return typeof this.systemPrompt==`string`?this.systemPrompt:this.systemPrompt.content}async sendMessage(e,t){let n=this.createMessageHandle(e,t);return await this.processUserMessages([n]),n}abort(){this.session?.abort()}async close(){await this.session?.abort()}async changeModelInPlace(e){return this.session?.updateModel(e),!0}async changeCwdInPlace(e){return this.session?.updateCwd(e),!0}async changeReasoningInPlace(e){return this.session?.updateReasoning?.(e),!0}async interrupt(){await this.session?.abort()}async getAdapterSessionId(){if(this.adapterSessionId||this.initAdapterSessionId(),!this.adapterSessionId)throw Error(`Adapter session ID is missing in getAdapterSessionId(); ensure initAdapterSessionId() ran during connector initialization.`);return this.adapterSessionId}initAdapterSessionId(){this.adapterSessionId??=crypto.randomUUID()}};function V(e){try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{}}catch{return{}}}var H=class extends a{toolBlockIndexMap=new Map;completedToolIds=new Set;toolCallArgsMap=new Map;resetPerTurnToolTracking(){this.toolBlockIndexMap.clear(),this.completedToolIds.clear(),this.toolCallArgsMap.clear()}wireEvents(e){this.wireSdkEvents(),this.wireSemanticEvents(e,this.getConnectorSubjects()),this.wireToolApprovalRpc(e)}wireSemanticEvents(e,t){this.wireMessageEvents(e,t),this.wireUsageEvents(e,t),this.wireToolEvents(e,t),this.wireReasoningEvents(e,t),this.wireLifecycleEvents(e,t)}wireMessageEvents(e,t){this.subscribeConnector(e,t.chunk,async e=>{let t=this.extractChunkText(e.payload);t&&await this.emitGlobal(n.message_delta,{text:t})}),this.subscribeConnector(e,t.messageComplete,async e=>{let{content:t}=e.payload;t&&(await this.emitStepStarted(`text`),await this.emitStepFinished(`text`,{type:`text`,content:t})),await this.emitGlobal(n.message,{content:t??``})})}wireUsageEvents(e,t){this.subscribeConnector(e,t.usage,async e=>{let t=this.extractUsagePayload(e.payload);await this.trackUsage(t),await this.emitUsageContextWindowUpdate(e.payload)})}wireToolEvents(e,t){this.subscribeConnector(e,t.toolCalls,async e=>{let{toolCalls:t}=e.payload;for(let e of t){if(this.completedToolIds.has(e.id)){console.warn(`[BaseStreamAgent] Ignoring late tool_calls for completed toolCallId ${e.id}`);continue}let t=V(e.function.arguments);this.toolCallArgsMap.set(e.id,t);let r=this.reserveToolCallBlockIndex(e);this.toolBlockIndexMap.set(e.id,r),await this.emitGlobal(n.step.started,{stepType:`tool_use`,blockIndex:r,blockData:{type:`tool_use`,toolName:e.function.name,toolCallId:e.id},content:{type:`tool_call`,toolCallId:e.id,name:e.function.name,args:t}}),this.afterToolCallStepEmitted(r),await this.emitGlobal(n.tool.use,{toolName:e.function.name,args:t,toolCallId:e.id})}}),this.subscribeConnector(e,t.toolStarted,async e=>{let{toolName:t,toolCallId:r}=e.payload;await this.emitGlobal(n.tool.started,{toolName:t,toolCallId:r})}),this.subscribeConnector(e,t.toolCompleted,async e=>{let{toolCallId:t,toolName:r,result:i,success:a}=e.payload;this.completedToolIds.add(t);let o=this.toolBlockIndexMap.get(t);o===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${t} missing from toolBlockIndexMap; using fallback`);let s=o??this.getFallbackToolCompletedBlockIndex();this.toolBlockIndexMap.delete(t),await this.emitGlobal(n.step.finished,{stepType:`tool_use`,blockIndex:s,content:{type:`tool_output`,toolCallId:t,output:i,isError:!a}}),this.afterToolCompletedStepEmitted(s);let c=this.toolCallArgsMap.get(t);this.toolCallArgsMap.delete(t),c===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${t} missing args for tool ${r}`),await this.emitGlobal(n.tool.completed,{toolName:r,args:c,result:{output:i},success:a,toolCallId:t})})}wireReasoningEvents(e,t){this.subscribeConnector(e,t.reasoningDelta,async e=>{let{content:t}=e.payload;await this.emitGlobal(n.reasoning_delta,{content:t})}),this.subscribeConnector(e,t.reasoningComplete,async e=>{let t=e.payload.content;if(t){let t=this.buildReasoningBlock(e.payload);await this.emitStepStarted(`reasoning`),await this.emitStepFinished(`reasoning`,t)}await this.emitGlobal(n.reasoning,{content:t??``})})}wireLifecycleEvents(e,t){this.subscribeConnector(e,t.agentStarted,async e=>{e.payload,this.resetPerTurnToolTracking(),await this.emitStart()}),this.subscribeConnector(e,t.agentComplete,async e=>{e.payload,this.resetPerTurnToolTracking()})}};export{o as AgentCompleteEventSchema,s as AgentStartedEventSchema,H as BaseStreamAgent,B as BaseStreamConnector,z as BaseStreamSession,l as ErrorEventSchema,v as MAX_TOOL_RESULT_CONTENT_CHARS,L as MessageCompleteEventSchema,I as MessageToolCallSchema,M as ReasoningCompleteEventSchema,j as ReasoningDeltaEventSchema,k as StreamSessionTurnStateSchema,N as ToolCallFunctionSchema,P as ToolCallSchema,F as ToolCallsEventSchema,d as ToolCompletedEventSchema,f as ToolStartedEventSchema,A as TurnStateChangedSchema,C as applyApprovedArgs,y as boundToolResultContent,D as executeTool,x as extractToolCallPayload,E as filterToolsWithSchema,O as handleToolCalls,T as loadToolsFromRegistry,S as toGlobalToolApproval};
1
+ import{z as e}from"zod";import{OnceAbortError as t}from"@makaio/framework/bus";import{AgentSubjects as n,McpSubjects as r,ToolSubjects as i}from"@makaio/framework/contracts";import{AIAgent as a,AgentCompleteEventSchema as o,AgentStartedEventSchema as s,BaseConnectorSession as c,ErrorEventSchema as l,ProceduralAgentConnector as u,ToolCompletedEventSchema as d,ToolStartedEventSchema as f,UserMessageQueue as p,extractMcpCallTarget as m,isMcpCallTool as h,markCompletedWithFinalResult as g,processQueueMessages as _,rejectQueuedHandles as v}from"@makaio/framework/adapters";const y=8e3;function b(e){if(e.length<=8e3)return e;let t=y,n=``;for(;;){let r=`\n...[truncated ${e.length-t} chars]`,i=y-r.length;if(i<0)return r.slice(0,y);if(i===t&&r===n)break;t=i,n=r}return`${e.slice(0,t)}${n}`}function x(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t=`Adapter`){let n;try{n=JSON.parse(e.function.arguments)}catch{let n=e.function.arguments.length;throw console.error(`[${t}] Failed to parse tool arguments for "${e.function.name}" (argsLength=${n})`),Error(`Failed to parse tool arguments for "${e.function.name}"`)}if(!x(n)){let r=n===null?`null`:Array.isArray(n)?`array`:typeof n;throw console.error(`[${t}] Parsed tool arguments for "${e.function.name}" must be a JSON object (received ${r})`,n),Error(`Tool arguments for "${e.function.name}" must be a JSON object`)}return{toolName:e.function.name,args:n,toolCallId:e.id}}function C(e,t,n=`Adapter`){return{...S(e,n),agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId,sessionId:t.sessionId}}function w(e,t){t.updatedInput!==void 0&&(e.function.arguments=JSON.stringify(t.updatedInput))}function T(e,t){if(t===void 0||t.allowedTools===void 0&&t.disallowedTools===void 0)return e;let n=t.allowedTools===void 0?void 0:new Set(t.allowedTools),r=t.disallowedTools===void 0?void 0:new Set(t.disallowedTools);return e.filter(e=>!(r?.has(e.name)||n!==void 0&&!n.has(e.name)))}async function E(e,t,n,r){try{return T((await e.request(i.list,{adapterId:t,adapterName:n})).tools,r)}catch(e){return console.warn(`[${n}] Failed to fetch tools from bus:`,e),[]}}function D(e){return e.filter(e=>e.inputSchema!==void 0)}async function O(e,t,n,r){await n({eventType:`tool_started`,toolName:t.function.name,toolCallId:t.id});try{let a=JSON.parse(t.function.arguments),o=await e.request(i.execute,{toolName:t.function.name,input:a,adapterId:r.adapterId,adapterName:r.adapterName,contextOverrides:{...r,toolCallId:t.id}});return n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:o.success?JSON.stringify(o.data):JSON.stringify(o.error),success:o.success}).then(()=>o)}catch(e){let r=e instanceof Error?{message:e.message,name:e.name}:{message:String(e),name:`UnknownError`};throw await n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:JSON.stringify(r),success:!1}),e}}async function k(e,t,n,r,i){let a=[];for(let o of e){let e=S(o,i),s=await t.requestToolApproval({...e,reasoning:n.reasoning});if(s.action===`deny`){if(s.shouldAbort)throw Error(`Tool use denied by approval handler: ${o.function.name}`);let e=b(JSON.stringify({error:s.message}));a.push(r(o.id,e,!0));continue}w(o,s);let c=await O(t.bus,o,t.emitSdkEvent,n);if(c.success&&t.recordMcpCall&&h(e.toolName)){let n=m(s.updatedInput??e.args);n!==void 0&&t.recordMcpCall(n)}let l=c.success?typeof c.data==`string`?c.data:JSON.stringify(c.data??null):JSON.stringify({error:c.error.message,code:c.error.code});a.push(r(o.id,b(l),!c.success))}return a}const A=e.enum([`idle`,`turn_started`,`step_started`,`step_finished`,`turn_finished`]),j=e.object({adapterId:e.string(),agentId:e.string(),oldState:A,newState:A,timestamp:e.number()}),M=e.object({eventType:e.literal(`reasoning_delta`),content:e.string()}),N=e.object({eventType:e.literal(`reasoning_complete`),content:e.string()}),P=e.object({name:e.string(),arguments:e.string()}),F=e.object({id:e.string(),type:e.literal(`function`),function:P}),I=e.object({eventType:e.literal(`tool_calls`),toolCalls:e.array(F)}),L=e.object({id:e.string(),type:e.literal(`function`),function:P}),R=e.object({eventType:e.literal(`message_complete`),content:e.string().nullable(),reasoning:e.string().optional(),tool_calls:e.array(L).optional(),finish_reason:e.string().nullable()}),z=`stream_start_timeout`;var B=class extends c{static MAX_TOOL_CALL_ITERATIONS=8;lastAssistantMessage;currentModel;currentCwd;pendingAssistantHistoryCompactions=[];constructor(e){super(e),this.sessionId=crypto.randomUUID(),this.currentModel=e.model,this.currentCwd=e.cwd}async processQueue(e){if(this.closing){v(e);return}await _(e,{getCurrentTurn:()=>this.currentTurn,startNewTurn:(e,t)=>this.startNewTurn(e,t)})}async close(){this.closing=!0,await super.abort()}async startNewTurn(e,t){this.config.onTurnStart?.(e),this.sessionId=crypto.randomUUID(),e.adapterSessionId=this.sessionId,e.internalRetry||this.closePendingAssistantHistoryCompactions(this.getConversationHistoryLength()),this.buildMessages(e,t);let n=this.getConversationHistoryLength(),r;if(!e.isProcessed&&!e.internalRetry){let t,i={setEndIndex:e=>{t??=e}};this.pendingAssistantHistoryCompactions.push(i),e.addCompletionObserver(e=>{try{let i=e.outcome===`completed`?e.result?.message:void 0;if(i===void 0||r===void 0||i===r)return;let a=t??this.getConversationHistoryLength();this.replaceAssistantTurnHistory(n,a,i),this.lastAssistantMessage=i}finally{this.removePendingAssistantHistoryCompaction(i)}})}if(this.currentTurn=this.createTurn(e),this.lastAssistantMessage=void 0,e.markAcknowledged(),await this.config.emitSdkEvent({eventType:`agent_started`,model:this.currentModel}),this.completeHandleIfClosing(e))return!1;let i=this.currentTurn;queueMicrotask(async()=>{try{if(!i||(await this.runTurn(i,e),e.isProcessed||this.isTurnSuperseded(i)))return;r=this.lastAssistantMessage||``,await g(e,{outcome:`completed`,result:{message:r}},this.config.onTurnComplete)}catch(t){await this.handleTurnError(t,i,e)}finally{i&&(!i.isPaused()||e.deliveryMode!==`immediate`)&&(await i.markTurnFinished(),this.currentTurn===i&&(this.currentTurn=void 0))}})}async handleTurnError(e,t,n){if(t?.isPaused()&&n.deliveryMode===`immediate`)return;let r=e instanceof Error?e:Error(String(e));if(t?.isPaused()){n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete);return}console.error(`[${this.config.adapterName}] Turn error:`,e),n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete),this.config.handleError(r,!1)}async runTurn(e,t){this.isTurnSuperseded(e)||(await e.start(),await this.runTurnIteration(e,t))}createMessageCompletePromise(e,t){return this.bus.once(this.getSdkEventSubject(),{timeoutMs:3e5,filter:{"event.eventType":`message_complete`,agentId:this.config.agentId,adapterId:this.config.adapterId,adapterSessionId:t},signal:e})}async executeStreamingStep(e,t,n){let r=this.config.streamStartTimeoutMs??3e4,i=new AbortController,a=setTimeout(()=>{i.abort()},r);try{await this.executeApiCall(e,AbortSignal.any([t,i.signal]),n)}catch(e){throw!t.aborted&&i.signal.aborted?Error(z,{cause:e}):e}finally{clearTimeout(a)}}async runTurnIteration(e,n,r=0){if(this.isTurnSuperseded(e))return;let i=e.getAbortSignal(),a=0,o;for(;;){if(this.shouldAbortTurnProcessing(e,n))return;try{let t=n.adapterSessionId??this.sessionId;if(!t)throw Error(`adapterSessionId must be set before waiting for message_complete`);if(o=this.createMessageCompletePromise(i,t),await this.executeStreamingStep(e,i,t),this.shouldAbortTurnProcessing(e,n)){o.catch(()=>{});return}let{payload:a}=await o,s=a.event;if(s.eventType!==`message_complete`)throw Error(`Expected message_complete event, got ${s.eventType}`);if(this.shouldAbortTurnProcessing(e,n))return;await this.applyMessageComplete(s,n,r,e);return}catch(e){if(o?.catch(()=>{}),e instanceof Error&&e.message===z&&!i.aborted&&a===0){a++;continue}if(i.aborted||e.name===`AbortError`||e instanceof t)return;let n=this.classifyError(e);throw r===0&&await this.config.emitSdkEvent({eventType:`error`,message:n.message,code:e?.code,type:e?.type}),n}}}buildToolConstraints(){if(this.config.allowedDirectories!==void 0)return{allowedDirectories:this.config.allowedDirectories}}updateModel(e){this.currentModel=e}updateCwd(e){this.currentCwd=e}getCurrentTurn(){return this.currentTurn}isTurnSuperseded(e){return this.currentTurn!==e}shouldAbortTurnProcessing(e,t){return t.isProcessed||e.isPaused()||this.isTurnSuperseded(e)}closePendingAssistantHistoryCompactions(e){for(let t of this.pendingAssistantHistoryCompactions)t.setEndIndex(e)}removePendingAssistantHistoryCompaction(e){let t=this.pendingAssistantHistoryCompactions.indexOf(e);t>=0&&this.pendingAssistantHistoryCompactions.splice(t,1)}},V=class extends u{session;userMessageQueue=new p;mcpDirectTools=[];mcpSessionContextCache;hasPendingToolRefresh=!1;hasPendingLedgerInjection=!1;markToolRefreshPending(){this.hasPendingToolRefresh=!0}afterSessionCreated(e){}getSession(){return this.session}async ensureSession(){if(this.isTurnEventLifecycleClosed||(this.session||await this.initializeSession(),!this.session))throw Error(`[${this.config.adapterName}] Cannot initialize a closed connector`);return this.session}getSessionQueue(){return this.userMessageQueue}async initializeSession(){if(await this.fetchToolsViaBus(),this.isTurnEventLifecycleClosed)return;this.prepareMcpDirectTools(),this.session=this.createSession(),this.afterSessionCreated(this.session),this.wireSessionEvents(),this.mcpDirectTools.length>0&&this.session.updateTools?.(this.mcpDirectTools);let e=(this.pendingTurnNumber??this.currentTurnNumber)||1;this.config.toolLedger?.recordInjection(this.mcpDirectTools,e)}prepareMcpDirectTools(){let e=this.mcpSessionContextCache??this.config.mcpSessionContext;e&&(this.mcpDirectTools=e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema})))}async fetchToolsViaBus(){this.session||await this.fetchTools()}async refreshTools(){await this.resolveAndCacheMcpContext(),this.prepareMcpDirectTools(),this.hasPendingLedgerInjection=!0}async resolveAndCacheMcpContext(){let e=this.config.mcpSessionContext;if(!(!e||!(`sessionId`in e)))try{this.mcpSessionContextCache=await this.globalBus.request(r.session.resolve,{sessionId:e.sessionId,profileId:e.profileId,projectId:e.projectId})}catch(e){console.warn(`[${this.config.adapterName}] MCP session re-resolve failed; using previous tool snapshot.`,e)}}getWireSessionConfig(){return{onTurnStarted:async()=>{if(this.consumeTurnNumber(),this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed at turn start; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}this.hasPendingLedgerInjection&&=(this.config.toolLedger?.recordInjection(this.mcpDirectTools,this.currentTurnNumber),!1)},onTurnFinished:async e=>{if(this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}await e()}}}resolveSystemPrompt(){if(this.systemPrompt!==void 0)return typeof this.systemPrompt==`string`?this.systemPrompt:this.systemPrompt.content}async sendMessage(e,t){let n=this.createMessageHandle(e,t);return await this.processUserMessages([n]),n}abort(){this.session?.abort()}async close(){let e=this.closeTurnEventLifecycle(),t=this.session;this.session=void 0;let n=t?.close();return await e,await n,{evidence:`detached`,detail:`The stream session was aborted; the provider request settlement is not awaited here.`}}async changeModelInPlace(e){return this.session?.updateModel(e),!0}async changeCwdInPlace(e){return this.session?.updateCwd(e),!0}async changeReasoningInPlace(e){return this.session?.updateReasoning?.(e),!0}async interrupt(){await this.session?.abort()}async getAdapterSessionId(){if(this.adapterSessionId||this.initAdapterSessionId(),!this.adapterSessionId)throw Error(`Adapter session ID is missing in getAdapterSessionId(); ensure initAdapterSessionId() ran during connector initialization.`);return this.adapterSessionId}initAdapterSessionId(){this.adapterSessionId??=crypto.randomUUID()}};function H(e){try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{}}catch{return{}}}var U=class extends a{toolBlockIndexMap=new Map;completedToolIds=new Set;toolCallArgsMap=new Map;resetPerTurnToolTracking(){this.toolBlockIndexMap.clear(),this.completedToolIds.clear(),this.toolCallArgsMap.clear()}wireEvents(e){this.wireSdkEvents(),this.wireSemanticEvents(e,this.getConnectorSubjects()),this.wireToolApprovalRpc(e)}wireSemanticEvents(e,t){this.wireMessageEvents(e,t),this.wireUsageEvents(e,t),this.wireToolEvents(e,t),this.wireReasoningEvents(e,t),this.wireLifecycleEvents(e,t)}wireMessageEvents(e,t){this.subscribeConnector(e,t.chunk,async e=>{let t=this.extractChunkText(e.payload);t&&await this.emitGlobal(n.message_delta,{text:t})}),this.subscribeConnector(e,t.messageComplete,async e=>{let{content:t}=e.payload;t&&(await this.emitStepStarted(`text`),await this.emitStepFinished(`text`,{type:`text`,content:t})),await this.emitGlobal(n.message,{content:t??``})})}wireUsageEvents(e,t){this.subscribeConnector(e,t.usage,async e=>{let t=this.extractUsagePayload(e.payload);await this.trackUsage(t),await this.emitUsageContextWindowUpdate(e.payload)})}wireToolEvents(e,t){this.subscribeConnector(e,t.toolCalls,async e=>{let{toolCalls:t}=e.payload;for(let e of t){if(this.completedToolIds.has(e.id)){console.warn(`[BaseStreamAgent] Ignoring late tool_calls for completed toolCallId ${e.id}`);continue}let t=H(e.function.arguments);this.toolCallArgsMap.set(e.id,t);let r=this.reserveToolCallBlockIndex(e);this.toolBlockIndexMap.set(e.id,r),await this.emitGlobal(n.step.started,{stepType:`tool_use`,blockIndex:r,blockData:{type:`tool_use`,toolName:e.function.name,toolCallId:e.id},content:{type:`tool_call`,toolCallId:e.id,name:e.function.name,args:t}}),this.afterToolCallStepEmitted(r),await this.emitGlobal(n.tool.use,{toolName:e.function.name,args:t,toolCallId:e.id})}}),this.subscribeConnector(e,t.toolStarted,async e=>{let{toolName:t,toolCallId:r}=e.payload;await this.emitGlobal(n.tool.started,{toolName:t,toolCallId:r})}),this.subscribeConnector(e,t.toolCompleted,async e=>{let{toolCallId:t,toolName:r,result:i,success:a}=e.payload;this.completedToolIds.add(t);let o=this.toolBlockIndexMap.get(t);o===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${t} missing from toolBlockIndexMap; using fallback`);let s=o??this.getFallbackToolCompletedBlockIndex();this.toolBlockIndexMap.delete(t),await this.emitGlobal(n.step.finished,{stepType:`tool_use`,blockIndex:s,content:{type:`tool_output`,toolCallId:t,output:i,isError:!a}}),this.afterToolCompletedStepEmitted(s);let c=this.toolCallArgsMap.get(t);this.toolCallArgsMap.delete(t),c===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${t} missing args for tool ${r}`),await this.emitGlobal(n.tool.completed,{toolName:r,args:c,result:{output:i},success:a,toolCallId:t})})}wireReasoningEvents(e,t){this.subscribeConnector(e,t.reasoningDelta,async e=>{let{content:t}=e.payload;await this.emitGlobal(n.reasoning_delta,{content:t})}),this.subscribeConnector(e,t.reasoningComplete,async e=>{let t=e.payload.content;if(t){let t=this.buildReasoningBlock(e.payload);await this.emitStepStarted(`reasoning`),await this.emitStepFinished(`reasoning`,t)}await this.emitGlobal(n.reasoning,{content:t??``})})}wireLifecycleEvents(e,t){this.subscribeConnector(e,t.agentStarted,async e=>{e.payload,this.resetPerTurnToolTracking(),await this.emitStart()}),this.subscribeConnector(e,t.agentComplete,async e=>{e.payload,this.resetPerTurnToolTracking()})}};export{o as AgentCompleteEventSchema,s as AgentStartedEventSchema,U as BaseStreamAgent,V as BaseStreamConnector,B as BaseStreamSession,l as ErrorEventSchema,y as MAX_TOOL_RESULT_CONTENT_CHARS,R as MessageCompleteEventSchema,L as MessageToolCallSchema,N as ReasoningCompleteEventSchema,M as ReasoningDeltaEventSchema,A as StreamSessionTurnStateSchema,P as ToolCallFunctionSchema,F as ToolCallSchema,I as ToolCallsEventSchema,d as ToolCompletedEventSchema,f as ToolStartedEventSchema,j as TurnStateChangedSchema,w as applyApprovedArgs,b as boundToolResultContent,O as executeTool,S as extractToolCallPayload,D as filterToolsWithSchema,k as handleToolCalls,E as loadToolsFromRegistry,C as toGlobalToolApproval};
@@ -0,0 +1 @@
1
+ import{agents as e}from"./services/session/storage/schema.mjs";import{z as t}from"zod";import{AgentStatusSchema as n,MakaioSessionAgentSchema as r}from"@makaio/framework/contracts";import{createStorageNamespaceDefinition as i}from"@makaio/framework/storage";const a=i(`agent`,{schemas:{get:{request:t.object({agentId:t.string()}),response:t.object({agent:r.nullable()})},set:{request:t.object({agentId:t.string(),agent:r}),response:t.object({success:t.boolean()})},delete:{request:t.object({agentId:t.string()}),response:t.object({success:t.boolean()})},listByAdapter:{request:t.object({adapterName:t.string(),status:t.enum([...n.options,`all`]).optional()}),response:t.object({agents:t.array(r)})},listBySession:{request:t.object({sessionId:t.string()}),response:t.object({agents:t.array(r)})},updateStatus:{request:t.object({agentId:t.string(),status:n,expectedStatus:t.array(n).nonempty().optional()}),response:t.object({success:t.boolean(),transitioned:t.boolean()})},updateActivity:{request:t.object({agentId:t.string(),lastActivityAt:t.number()}),response:t.object({success:t.boolean()})},updateRuntime:{request:t.object({agentId:t.string(),adapterId:t.string().optional(),adapterSessionId:t.string().optional(),cwd:t.string().optional(),model:t.string().optional(),allowedDirectories:t.array(t.string()).optional(),providerConfigId:t.string().nullable().optional()}).refine(e=>e.adapterId!==void 0||e.adapterSessionId!==void 0||e.cwd!==void 0||e.model!==void 0||e.allowedDirectories!==void 0||e.providerConfigId!==void 0,{message:`At least one runtime field (adapterId, adapterSessionId, cwd, model, allowedDirectories, or providerConfigId) must be provided`}),response:t.object({success:t.boolean()})}},extensions:{drizzle:{agents:e}}}),o=a.subjects;export{o as n,a as t};