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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{adapter-C4v_gNTI.mjs → adapter-DSRgsh2d.mjs} +1 -1
  3. package/dist/adapter-subsystem/index.d.mts +15 -7
  4. package/dist/adapter-subsystem/index.mjs +1 -1
  5. package/dist/adapters/claude/index.mjs +3 -3
  6. package/dist/adapters/config/index.d.mts +1 -1
  7. package/dist/adapters/index.d.mts +2 -2
  8. package/dist/adapters/node.d.mts +1 -1
  9. package/dist/{attempt-record-codec-DaQ3WHUs.mjs → attempt-record-codec-DXpdMgyI.mjs} +1 -1
  10. package/dist/bus/index.d.mts +120 -8
  11. package/dist/bus/index.mjs +1 -1
  12. package/dist/bus-ceMF9rsq.mjs +9 -0
  13. package/dist/client-DWSwtFyI.mjs +1 -0
  14. package/dist/clients/index.d.mts +179 -12
  15. package/dist/clients/index.mjs +1 -1
  16. package/dist/clients/managed-install.d.mts +1 -1
  17. package/dist/code-execution/worker-entry.d.mts +1 -1
  18. package/dist/code-execution/worker-entry.mjs +1 -1
  19. package/dist/{code-execution-pUF4IO462.mjs → code-execution-DWSux6k1.mjs} +1 -1
  20. package/dist/contracts/adapter/index.d.mts +2 -2
  21. package/dist/contracts/adapter/index.mjs +1 -1
  22. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  23. package/dist/contracts/artifact/index.d.mts +2 -2
  24. package/dist/contracts/auth/index.d.mts +2 -2
  25. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  26. package/dist/contracts/canonical-model/index.d.mts +1 -1
  27. package/dist/contracts/capabilities/index.d.mts +1 -1
  28. package/dist/contracts/client/index.d.mts +3 -3
  29. package/dist/contracts/client/index.mjs +1 -1
  30. package/dist/contracts/code-execution/index.d.mts +1 -1
  31. package/dist/contracts/common/index.d.mts +1 -1
  32. package/dist/contracts/config/index.d.mts +2 -47
  33. package/dist/contracts/context-projection/index.d.mts +232 -0
  34. package/dist/contracts/context-projection/index.mjs +1 -0
  35. package/dist/contracts/extension/index.d.mts +6 -6
  36. package/dist/contracts/extension/index.mjs +1 -1
  37. package/dist/contracts/facet/index.d.mts +1 -1
  38. package/dist/contracts/harness/index.d.mts +1 -1
  39. package/dist/contracts/host/index.d.mts +1 -1
  40. package/dist/contracts/index.d.mts +43 -43
  41. package/dist/contracts/index.mjs +1 -1
  42. package/dist/contracts/materialization/index.d.mts +2 -2
  43. package/dist/contracts/model-registry/index.d.mts +1 -1
  44. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  45. package/dist/contracts/platform/index.d.mts +1 -1
  46. package/dist/contracts/provider/index.d.mts +2 -2
  47. package/dist/contracts/reaction/index.d.mts +1 -1
  48. package/dist/contracts/session/index.d.mts +3 -3
  49. package/dist/contracts/session/index.mjs +1 -1
  50. package/dist/contracts/shared/index.d.mts +2 -2
  51. package/dist/contracts/skill/index.d.mts +1 -1
  52. package/dist/contracts/telemetry/index.d.mts +1 -1
  53. package/dist/contracts/timeout/index.d.mts +1 -1
  54. package/dist/contracts/variant/index.d.mts +1 -1
  55. package/dist/contracts/worker/index.d.mts +2 -2
  56. package/dist/contracts/workflow/index.d.mts +2 -2
  57. package/dist/{contribution-DDbHzCPF.d.mts → contribution-1GL7Rjaq.d.mts} +2 -2
  58. package/dist/credential-ref-w4ZYpYW0.d.mts +49 -0
  59. package/dist/{definition-CuaBQyde.d.mts → definition-DeIGoROj.d.mts} +1 -1
  60. package/dist/{descriptor-to-package-Dw8dnl5E.mjs → descriptor-to-package-BPIArq6N.mjs} +1 -1
  61. package/dist/{detached-extension-handle-DN3aqLyq.mjs → detached-extension-handle-W5_yfCyE.mjs} +1 -1
  62. package/dist/drizzle/0040_session_generation.sql +1 -0
  63. package/dist/drizzle/0041_session_principal_owner.sql +1 -0
  64. package/dist/drizzle/meta/_journal.json +14 -0
  65. package/dist/{execution-attempt-owner-recovery-CE_rvHKE.mjs → execution-attempt-owner-recovery-BZOEVYFH.mjs} +1 -1
  66. package/dist/extension-C6ANjR33.mjs +1 -0
  67. package/dist/{extension-context-BH31eOMv.d.mts → extension-context-pQ7Uio_s.d.mts} +44 -1
  68. package/dist/{extension-discovery-CA2IhDRo.d.mts → extension-discovery-Rup-gANp.d.mts} +114 -15
  69. package/dist/extension-kOwzAMud.mjs +1 -0
  70. package/dist/extension-namespace-CeRpt6C8.mjs +1 -0
  71. package/dist/{framework-packages-Bg4edkkM.mjs → framework-packages-U4Xhouxe.mjs} +1 -1
  72. package/dist/{hook-responses-Dq16X3Cb.d.mts → hook-responses-B882RcQc.d.mts} +48 -5
  73. package/dist/{index-Dm3d490n.d.mts → index-B2bxgKiK.d.mts} +1 -1
  74. package/dist/{index-7CVumCjj.d.mts → index-BTpkpHIS.d.mts} +65 -9
  75. package/dist/{index-Bh57xARQ.d.mts → index-BUv9gfRT.d.mts} +3 -3
  76. package/dist/{index-C6e9cwAl2.d.mts → index-BjQtqMxP2.d.mts} +4 -4
  77. package/dist/{index-B-u0Tu8X.d.mts → index-Bqi44ODz.d.mts} +37 -37
  78. package/dist/{index-CIzvBH8O.d.mts → index-C8two8wz.d.mts} +1 -1
  79. package/dist/{index-oxZt93RL.d.mts → index-CESqYf8a.d.mts} +2 -2
  80. package/dist/{index-C87P0WpY2.d.mts → index-CmCLAMNs.d.mts} +1 -1
  81. package/dist/index-CyEE1RI5.d.mts +869 -0
  82. package/dist/{index-De_oh9M-2.d.mts → index-D6Uq1btG.d.mts} +87 -10
  83. package/dist/{index-CRZ1jrxp.d.mts → index-DDSt0uS2.d.mts} +160 -12
  84. package/dist/{index-B6WkHnCQ.d.mts → index-DRxgmrad.d.mts} +1 -1
  85. package/dist/{index-U--ajOHy.d.mts → index-DUYjTfHD.d.mts} +1 -1
  86. package/dist/{index-HJkz7i4E.d.mts → index-DdJKsdya.d.mts} +188 -10
  87. package/dist/{index-B4pPwpKk.d.mts → index-DfREUyAk.d.mts} +1 -1
  88. package/dist/{index-ClKwF6LE.d.mts → index-Di-R1gmo.d.mts} +2 -2
  89. package/dist/{index-DWANFpTG.d.mts → index-Jdju2W3y.d.mts} +1 -1
  90. package/dist/{index-DQKVQPUS.d.mts → index-L6mssyeZ.d.mts} +1 -1
  91. package/dist/{index-B8v1-2-V2.d.mts → index-anIxF_eT.d.mts} +1 -1
  92. package/dist/{index-iVisrVdC2.d.mts → index-bYBnDBl32.d.mts} +539 -4
  93. package/dist/{index-Bg3WVL8n.d.mts → index-gNdH1F6r.d.mts} +531 -26
  94. package/dist/{index-zmDRR8gv2.d.mts → index-m5ZQFglW2.d.mts} +1 -1
  95. package/dist/{index-mTaFX2HH2.d.mts → index-uk8icWON2.d.mts} +419 -19
  96. package/dist/kernel/cli/index.d.mts +2 -2
  97. package/dist/kernel/cli/register.d.mts +1 -1
  98. package/dist/kernel/extension/index.d.mts +3 -2
  99. package/dist/kernel/extension/index.mjs +1 -1
  100. package/dist/kernel/index.d.mts +6 -6
  101. package/dist/kernel/index.mjs +1 -1
  102. package/dist/kernel/namespace/index.d.mts +1 -1
  103. package/dist/kernel/observability/index.d.mts +2 -2
  104. package/dist/kernel/observability/index.mjs +1 -1
  105. package/dist/kernel/providers/index.d.mts +1 -1
  106. package/dist/kernel/window/index.d.mts +1 -1
  107. package/dist/{lib-BF5XBSfw.mjs → lib-BdyGVjpO.mjs} +1 -1
  108. package/dist/{lib-Dljw2Cqh.mjs → lib-DxP3tPm9.mjs} +1 -1
  109. package/dist/load-extensions-BGfSWW_R.mjs +1 -0
  110. package/dist/{load-extensions-DGstT4_p.d.mts → load-extensions-Be_lOjm_.d.mts} +27 -14
  111. package/dist/mcp-http-server/index.mjs +1 -1
  112. package/dist/{namespace-BMdYJN_t.mjs → namespace-CqJhR19O.mjs} +1 -1
  113. package/dist/{namespace-Cmu-5_P9.d.mts → namespace-DudchWPb.d.mts} +457 -0
  114. package/dist/{namespace-BEbQb19g.d.mts → namespace-Eir1wQ_r.d.mts} +2 -2
  115. package/dist/node/bus-server/index.d.mts +1 -1
  116. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  117. package/dist/node/transports/index.d.mts +102 -4
  118. package/dist/node/transports/index.mjs +2 -2
  119. package/dist/{orchestrator-shared-CtPB6PAr.mjs → orchestrator-shared-CF-jPH91.mjs} +1 -1
  120. package/dist/ownership-memory-handler-C-y9zQf8.mjs +1 -0
  121. package/dist/package-AlsbnlSt.mjs +159 -0
  122. package/dist/{package-CDj3F-L3.d.mts → package-CwyC-Krg.d.mts} +1 -1
  123. package/dist/{package-DYScYC0D.mjs → package-kkPGlxMm.mjs} +1 -1
  124. package/dist/package.json +1 -1
  125. package/dist/{registry-DNMjJ-Oj.mjs → registry-DtaRGU8i.mjs} +1 -0
  126. package/dist/rules/index.d.mts +1 -1
  127. package/dist/rules/index.mjs +1 -1
  128. package/dist/rules/schemas.d.mts +1 -1
  129. package/dist/runtime-bun/index.d.mts +2 -2
  130. package/dist/runtime-bun/index.mjs +1 -1
  131. package/dist/runtime-node/boot-config.d.mts +45 -0
  132. package/dist/runtime-node/boot-config.mjs +1 -0
  133. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  134. package/dist/runtime-node/code-execution/index.mjs +1 -1
  135. package/dist/runtime-node/extension-discovery.d.mts +2 -2
  136. package/dist/runtime-node/extension-discovery.mjs +1 -1
  137. package/dist/runtime-node/extension-validation.d.mts +1 -1
  138. package/dist/runtime-node/extension-validation.mjs +1 -1
  139. package/dist/runtime-node/index.d.mts +345 -27
  140. package/dist/runtime-node/index.mjs +21 -24
  141. package/dist/runtime-node/makaio-config.d.mts +1 -1
  142. package/dist/runtime-node/makaio-config.mjs +1 -1
  143. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  144. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  145. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  146. package/dist/{schema-BA1cHBbc.d.mts → schema-FY0EakKe.d.mts} +56 -0
  147. package/dist/schemas-CkxAK13D.mjs +1 -0
  148. package/dist/{schemas-CaYEFzK_.d.mts → schemas-FgVQek-j.d.mts} +2 -2
  149. package/dist/services/adapter-runtime/index.d.mts +3 -3
  150. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  151. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  152. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  153. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  154. package/dist/services/agent-runtime/index.d.mts +2 -2
  155. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  156. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  157. package/dist/services/automation-trigger/index.d.mts +19 -0
  158. package/dist/services/capability/index.d.mts +2 -2
  159. package/dist/services/code-execution/index.d.mts +1 -1
  160. package/dist/services/codebase/index.d.mts +2 -2
  161. package/dist/services/codebase/namespace.d.mts +1 -1
  162. package/dist/services/codebase/schemas.d.mts +1 -1
  163. package/dist/services/compression/index.d.mts +2 -2
  164. package/dist/services/compression/namespace.d.mts +1 -1
  165. package/dist/services/compression/schemas.d.mts +1 -1
  166. package/dist/services/context-projection/index.d.mts +94 -0
  167. package/dist/services/context-projection/index.mjs +1 -0
  168. package/dist/services/context-rules/index.d.mts +1 -1
  169. package/dist/services/execution-target/index.d.mts +3 -3
  170. package/dist/services/execution-target/namespace.d.mts +1 -1
  171. package/dist/services/execution-target/schemas.d.mts +1 -1
  172. package/dist/services/filesystem/index.d.mts +1 -1
  173. package/dist/services/index.d.mts +45 -40
  174. package/dist/services/index.mjs +1 -1
  175. package/dist/services/log-import/browser.d.mts +2 -2
  176. package/dist/services/log-import/index.d.mts +2 -2
  177. package/dist/services/log-import/log-import.d.mts +1 -1
  178. package/dist/services/materialization/index.d.mts +1 -1
  179. package/dist/services/model-registry/index.d.mts +1 -1
  180. package/dist/services/preferences/index.d.mts +2 -2
  181. package/dist/services/preferences/schemas.d.mts +1 -1
  182. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  183. package/dist/services/provider-context/index.d.mts +1 -1
  184. package/dist/services/session/handlers/index.d.mts +1 -1
  185. package/dist/services/session/index.d.mts +9 -9
  186. package/dist/services/session/index.mjs +1 -1
  187. package/dist/services/session/messages/namespace.d.mts +1 -1
  188. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  189. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  190. package/dist/services/session/session-events/namespace.d.mts +1 -1
  191. package/dist/services/session/storage/namespace.d.mts +1 -1
  192. package/dist/services/session/storage/schema.d.mts +1 -1
  193. package/dist/services/session/storage/schema.mjs +1 -1
  194. package/dist/services/session/testing/index.mjs +4 -2
  195. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  196. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  197. package/dist/services/session/turns/namespace.d.mts +1 -1
  198. package/dist/services/session-editor/index.d.mts +1 -1
  199. package/dist/services/settings/index.d.mts +3 -3
  200. package/dist/services/settings/namespace.d.mts +232 -3
  201. package/dist/services/settings/namespace.mjs +1 -1
  202. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  203. package/dist/services/settings/storage/index.d.mts +3 -3
  204. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  205. package/dist/services/subagent/index.d.mts +1 -1
  206. package/dist/services/subagent-template/index.d.mts +2 -2
  207. package/dist/services/subagent-template/namespace.d.mts +1 -1
  208. package/dist/services/subagent-template/schemas.d.mts +1 -1
  209. package/dist/services/tool-approval/index.d.mts +1 -1
  210. package/dist/services/tool-approval/index.mjs +1 -1
  211. package/dist/services/tools/index.d.mts +1 -1
  212. package/dist/services/tools/index.mjs +1 -1
  213. package/dist/services/tray-menu/index.d.mts +3 -3
  214. package/dist/services/tray-menu/namespace.d.mts +1 -1
  215. package/dist/services/tray-menu/schemas.d.mts +1 -1
  216. package/dist/services/turn/index.d.mts +1 -1
  217. package/dist/services/turn/namespace.d.mts +1 -1
  218. package/dist/services/workflow-transitions/index.d.mts +1 -1
  219. package/dist/services/workflow-transitions/index.mjs +1 -1
  220. package/dist/session-BNiMZnfF.mjs +1 -0
  221. package/dist/session-CMbztxNO.mjs +95 -0
  222. package/dist/src-BZdw54VU.mjs +1 -0
  223. package/dist/{src-CbAw9kjJ.mjs → src-C0sw_Vs_.mjs} +1 -1
  224. package/dist/{src-Xn6SS74f.mjs → src-CqQSqLQI.mjs} +1 -1
  225. package/dist/storage/drizzle/client.d.mts +1 -1
  226. package/dist/storage/drizzle/client.mjs +1 -1
  227. package/dist/storage/drizzle/index.d.mts +1 -1
  228. package/dist/storage/drizzle/index.mjs +1 -1
  229. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  230. package/dist/storage/handlers/index.d.mts +1 -1
  231. package/dist/{tool-approval-service-pbkGcAV8.mjs → tool-approval-service-CRo3fZRF.mjs} +1 -1
  232. package/dist/{tools-C5Gy0IQG.mjs → tools-CKaxi3Mb.mjs} +1 -1
  233. package/dist/{transition-D-Lgbp1j.d.mts → transition-DMv8cgEd.d.mts} +2 -2
  234. package/dist/{types-CjYcHDPo2.d.mts → types-7L3BrU9m2.d.mts} +1 -1
  235. package/dist/{types-DhbllltK.d.mts → types-DNYO_Rxj.d.mts} +12 -3
  236. package/dist/ui-hooks/index.d.mts +17 -24
  237. package/dist/ui-hooks/index.mjs +1 -1
  238. package/dist/ui-kernel/index.d.mts +11 -2
  239. package/dist/ui-kernel/index.mjs +1 -1
  240. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  241. package/dist/ui-views/index.mjs +1 -1
  242. package/dist/utils/index.d.mts +31 -1
  243. package/dist/utils/index.mjs +2 -2
  244. package/dist/{view-builder-CHUTXJDl.d.mts → view-builder-DJGz9I-u.d.mts} +2 -2
  245. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  246. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  247. package/dist/workflow-engine/index.d.mts +2 -2
  248. package/dist/workflow-engine/index.mjs +1 -1
  249. package/dist/workflow-engine/package.d.mts +1 -1
  250. package/dist/workflow-engine/package.mjs +1 -1
  251. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  252. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  253. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  254. package/dist/workflow-engine/testing/index.d.mts +1 -1
  255. package/dist/workflow-engine/testing/index.mjs +1 -1
  256. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  257. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  258. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  259. package/dist/{workflow-transitions-C0sg3kar.mjs → workflow-transitions-t0ORS1F5.mjs} +1 -1
  260. package/dist/workflow-worker-DXCXb3g-.mjs +3 -0
  261. package/package.json +9 -1
  262. package/dist/bus-BQ64i3DN.mjs +0 -9
  263. package/dist/client-Bg3_IdaF.mjs +0 -1
  264. package/dist/extension-CfrTp3rC.mjs +0 -1
  265. package/dist/extension-CnNcY1hR.mjs +0 -1
  266. package/dist/extension-namespace-Ct9L6SKr.mjs +0 -1
  267. package/dist/index-D_j_T3nS.d.mts +0 -435
  268. package/dist/load-extensions-BVgxTj_y.mjs +0 -1
  269. package/dist/ownership-memory-handler-xex7sLiX.mjs +0 -1
  270. package/dist/schemas-ClkcU_N5.mjs +0 -1
  271. package/dist/session-6UG5udTX.mjs +0 -95
  272. package/dist/session-BB0s7c2B.mjs +0 -1
  273. package/dist/workflow-worker-ChrMIcKm.mjs +0 -2
  274. /package/dist/{adapter-binding-BxjUfkOn.d.mts → adapter-binding-CaYBrIkL.d.mts} +0 -0
  275. /package/dist/{attempt-control-evidence-7lwRG73Y.mjs → attempt-control-evidence-CHBnJoqN.mjs} +0 -0
  276. /package/dist/{attempt-fixtures-DHdYmr3o.mjs → attempt-fixtures-D3IsP0KH.mjs} +0 -0
  277. /package/dist/{authority-state-bootstrap-CvuWPywM.mjs → authority-state-bootstrap-4F5Wc_6l.mjs} +0 -0
  278. /package/dist/{base-orchestrator-CrXiMJzf.d.mts → base-orchestrator-1ofFsqUz.d.mts} +0 -0
  279. /package/dist/{bootstrap-start-client-C1ZHbv6e.mjs → bootstrap-start-client-9nOdeDYl.mjs} +0 -0
  280. /package/dist/{capability-service-CQ1aw_p-.d.mts → capability-service-CUN0MIS7.d.mts} +0 -0
  281. /package/dist/{client-ByjHcS78.d.mts → client-BY3sBW2L.d.mts} +0 -0
  282. /package/dist/{client-binary-version-verifier-C4fEAUdo.d.mts → client-binary-version-verifier-BeO4Eptw.d.mts} +0 -0
  283. /package/dist/{clients-namespace-D4BxF2Nw.d.mts → clients-namespace-D92YsbKI.d.mts} +0 -0
  284. /package/dist/{config-namespace-B1zyOYwH.d.mts → config-namespace-OEckUfVE.d.mts} +0 -0
  285. /package/dist/{create-static-mount-Dgxgi4W3.mjs → create-static-mount-4B-mNtx1.mjs} +0 -0
  286. /package/dist/{cross-spawn-BMCAyqrN.mjs → cross-spawn-DGqEuNyT.mjs} +0 -0
  287. /package/dist/{definition-ClWxAKQ2.d.mts → definition-DLJg-P4G.d.mts} +0 -0
  288. /package/dist/{esm-Ccx-3z8E.mjs → esm-DwiWcwH0.mjs} +0 -0
  289. /package/dist/{execution-attempt-repository-aabFKcXN.mjs → execution-attempt-repository-CY289HlC.mjs} +0 -0
  290. /package/dist/{execution-attempt-repository-BUah8hma.d.mts → execution-attempt-repository-DOb5V4N2.d.mts} +0 -0
  291. /package/dist/{extension-package-provenance-C7oO5JAE.mjs → extension-package-provenance-ClpN3GHp.mjs} +0 -0
  292. /package/dist/{filesystem-service-CDYoiwWY.d.mts → filesystem-service-BmavE-uO.d.mts} +0 -0
  293. /package/dist/{index-BbkcbY6d.d.mts → index--gbsE1W0.d.mts} +0 -0
  294. /package/dist/{index-DdVpWkaI.d.mts → index-B36rL4gp.d.mts} +0 -0
  295. /package/dist/{index-DM72_93s.d.mts → index-BD1SbHpP.d.mts} +0 -0
  296. /package/dist/{index-KdlZRuTp.d.mts → index-BDcK7jqJ2.d.mts} +0 -0
  297. /package/dist/{index-DAaQ--ki.d.mts → index-BQYGOXY5.d.mts} +0 -0
  298. /package/dist/{index-gAyARaKS.d.mts → index-BneZFJ7x.d.mts} +0 -0
  299. /package/dist/{index-D8ELwT5y.d.mts → index-BujgCaKt.d.mts} +0 -0
  300. /package/dist/{index-DfU8s_xP.d.mts → index-C2StVLk4.d.mts} +0 -0
  301. /package/dist/{index-BGnQ0EyD.d.mts → index-CCTzitBA.d.mts} +0 -0
  302. /package/dist/{index-CVRT01082.d.mts → index-Cj_V1aRL.d.mts} +0 -0
  303. /package/dist/{index-nkix3hP7.d.mts → index-CpN2C9jq.d.mts} +0 -0
  304. /package/dist/{index-D6p17KPs.d.mts → index-CsRPJ9FV.d.mts} +0 -0
  305. /package/dist/{index-BPNfYEA22.d.mts → index-CvdvuhTL2.d.mts} +0 -0
  306. /package/dist/{index-DmX9W3xH2.d.mts → index-D3peNmHN2.d.mts} +0 -0
  307. /package/dist/{index-DiZ4LmyE.d.mts → index-D7smT-YD.d.mts} +0 -0
  308. /package/dist/{index-B78CRVi9.d.mts → index-DEx4ZFkz.d.mts} +0 -0
  309. /package/dist/{index-CjDQn6lw.d.mts → index-DGoJayJg.d.mts} +0 -0
  310. /package/dist/{index-F7cVpFJ9.d.mts → index-DTvYp2GT.d.mts} +0 -0
  311. /package/dist/{index-Htfr-K5U2.d.mts → index-DqliLe_D2.d.mts} +0 -0
  312. /package/dist/{index-BCU5oByg.d.mts → index-DubyRZD9.d.mts} +0 -0
  313. /package/dist/{index-DjSUOMlr.d.mts → index-DwOpaQAE.d.mts} +0 -0
  314. /package/dist/{index-BZoOYV-y.d.mts → index-DxkSkszz.d.mts} +0 -0
  315. /package/dist/{index-tbjIqwa3.d.mts → index-TBJ1kIGA.d.mts} +0 -0
  316. /package/dist/{index-DXQTkwLB.d.mts → index-YOXWpZAS.d.mts} +0 -0
  317. /package/dist/{index-CXpgL3gz2.d.mts → index-aIJ7A4DC2.d.mts} +0 -0
  318. /package/dist/{index-D6liU_KS.d.mts → index-fxh7TB0q.d.mts} +0 -0
  319. /package/dist/{index-xsaaa85T.d.mts → index-qczb9Yx3.d.mts} +0 -0
  320. /package/dist/{index-C_kOkO3E.d.mts → index-zqo2mX_Z.d.mts} +0 -0
  321. /package/dist/{json-value-Ymw2f8i_.d.mts → json-value-Bjl8jzom.d.mts} +0 -0
  322. /package/dist/{jsonl-transport-Bg033Ng0.mjs → jsonl-transport-Ct1RWs0h.mjs} +0 -0
  323. /package/dist/{lib-BizqbepU.mjs → lib-DomKag_k.mjs} +0 -0
  324. /package/dist/{namespace-rJ3ycPMg.d.mts → namespace-Bhx72V7S.d.mts} +0 -0
  325. /package/dist/{namespace-BCVKdu-U.d.mts → namespace-CxEQv9iZ.d.mts} +0 -0
  326. /package/dist/{namespace-COHHDh2I.d.mts → namespace-D09uQ231.d.mts} +0 -0
  327. /package/dist/{namespace-UFcDEBJB.d.mts → namespace-D5DkpaaN.d.mts} +0 -0
  328. /package/dist/{namespace-CvK86QFk.d.mts → namespace-DHLwz4o3.d.mts} +0 -0
  329. /package/dist/{namespace-B5IFLQc-.d.mts → namespace-DHbrNQYD.d.mts} +0 -0
  330. /package/dist/{namespace-s0e215xO.d.mts → namespace-DyD06b5-.d.mts} +0 -0
  331. /package/dist/{namespace-C1pPZKtI.d.mts → namespace-Dz5_Hrz7.d.mts} +0 -0
  332. /package/dist/{namespace-Phxf0Lep.d.mts → namespace-Lkv2nyzb.d.mts} +0 -0
  333. /package/dist/{namespace-DM5vykb7.d.mts → namespace-hlhPqSsw.d.mts} +0 -0
  334. /package/dist/{namespace-DlOQmhgX.d.mts → namespace-x-gk5SmK.d.mts} +0 -0
  335. /package/dist/{namespace-f6Kz5cwX.d.mts → namespace-zusFEJPh.d.mts} +0 -0
  336. /package/dist/{orchestrator-shared--srEeSaY.d.mts → orchestrator-shared-ChU5qRSe.d.mts} +0 -0
  337. /package/dist/{packages-B98-WETs.d.mts → packages-D2s51nGU.d.mts} +0 -0
  338. /package/dist/{providers-namespace-DRcl03bo.d.mts → providers-namespace-BLVt8OyP.d.mts} +0 -0
  339. /package/dist/{runtime-inputs-DBtVIy9h.d.mts → runtime-inputs-BU_kBrP7.d.mts} +0 -0
  340. /package/dist/{schemas-CEJe8O6P.d.mts → schemas-3KTmPuZg.d.mts} +0 -0
  341. /package/dist/{schemas-D_-iXLQ9.d.mts → schemas-B-5_Dp4_.d.mts} +0 -0
  342. /package/dist/{schemas-CeItAAQM.d.mts → schemas-BLxdGZkr.d.mts} +0 -0
  343. /package/dist/{schemas-Cj6Gbqch.d.mts → schemas-BegArpU_.d.mts} +0 -0
  344. /package/dist/{schemas-Ca5RILd-2.d.mts → schemas-BzB6z9oX2.d.mts} +0 -0
  345. /package/dist/{schemas-CtzZDp29.d.mts → schemas-CBBzvIh0.d.mts} +0 -0
  346. /package/dist/{schemas-Cq1d5tid.d.mts → schemas-CD3Mq-jC.d.mts} +0 -0
  347. /package/dist/{schemas-LiiyNNpr.d.mts → schemas-Cl7fPlRv.d.mts} +0 -0
  348. /package/dist/{schemas-DJ2vMsgm.d.mts → schemas-CqawCYTY.d.mts} +0 -0
  349. /package/dist/{schemas-2_D4iVbb.d.mts → schemas-DEg6R9ph.d.mts} +0 -0
  350. /package/dist/{schemas-JjyFxrC0.d.mts → schemas-rMUsvzeJ.d.mts} +0 -0
  351. /package/dist/{server-lifecycle-DUKp1Fbf.d.mts → server-lifecycle-CTJvpdeL.d.mts} +0 -0
  352. /package/dist/{session-lineage-C3myyt5x.d.mts → session-lineage-BuGN3RZs.d.mts} +0 -0
  353. /package/dist/{storage-namespace-IvLOIP7j.d.mts → storage-namespace-B5r_ScUz.d.mts} +0 -0
  354. /package/dist/{storage-namespace-definition-Cv0XiTXb.d.mts → storage-namespace-definition-DiYr8UNl.d.mts} +0 -0
  355. /package/dist/{types-hkExapGH.d.mts → types-BSx8YYlc.d.mts} +0 -0
  356. /package/dist/{types-BYEybzjX.d.mts → types-CpEoQapk.d.mts} +0 -0
  357. /package/dist/{types-QRSc2AUU.d.mts → types-Cuhnt15L.d.mts} +0 -0
  358. /package/dist/{types-QsyX4H21.d.mts → types-DEGuc-fn.d.mts} +0 -0
  359. /package/dist/{types-BRM1AZaP.d.mts → types-DciLiPMd.d.mts} +0 -0
  360. /package/dist/{types-CsmvIK25.mjs → types-wwuw7RkB.mjs} +0 -0
  361. /package/dist/{window-registry-DeG37kt8.d.mts → window-registry-C3W2wtlX.d.mts} +0 -0
@@ -1 +1 @@
1
- import{wt as e,x as t}from"./handlers-mjky_fP2.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-6UG5udTX.mjs";import{r as f,t as oe}from"./namespace-J87EeVTm.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-vF9F4M41.mjs";import{n as fe}from"./package-BCKYMTYG.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-CeDu27XL.mjs";import{d as he,f as ge,n as _e}from"./package-BwlW7N32.mjs";import{t as ve}from"./tool-approval-service-pbkGcAV8.mjs";import{t as ye}from"./tray-menu-service-BRrnoqaY.mjs";import{r as p,t as be}from"./handler-Cc1MhaR4.mjs";import{r as xe}from"./package-BSz4hbav.mjs";import{t as Se}from"./filesystem-service-ClZEAw7E.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{AdapterSubjects as Ee,ArtifactSubjects as g,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as _,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as v,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as y,WorkflowSubjects as Ne,dep as b,extensionToken as x,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as S}from"@makaio/framework/contracts";import{MakaioBus as C}from"@makaio/framework/bus";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`evidence`in t?{evidence:t.evidence}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{evidence:n,confidence:r,representations:i,...a}=e;return{...a,data:t.data,relations:[...t.relations],...t.evidence===void 0?{}:{evidence:t.evidence},...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.evidence===void 0?{}:{evidence:n.evidence},...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,bus:u,meta:c,preventDefault(){d=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await u.request(g.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new L(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new L(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new L(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new L(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new L(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new L(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new L(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new L(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new L(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new L(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},z=class e extends w{constructor(e=C){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(f.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(me.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[b(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{definitionsByExtension=new Map;definitionsByKind=new Map;constructor(e){super(e)}onInit(){}onDestroy(){this.definitionsByExtension.clear(),this.definitionsByKind.clear()}register(e,t){let n=this.validateBatch(e,t),r=new Map(this.definitionsByExtension);n.length===0?r.delete(e):r.set(e,n);let i=new Map;for(let e of r.values())for(let t of e)i.set(t.descriptor.kind,t);this.definitionsByExtension=r,this.definitionsByKind=i}deregister(e){this.definitionsByExtension.has(e)&&this.register(e,[])}listDescriptors(){return Array.from(this.definitionsByKind.values(),({descriptor:e})=>structuredClone(e))}async invoke(e,t,n){let r=crypto.randomUUID(),i=this.definitionsByKind.get(e);if(!i)return this.failure(e,r,n.correlationId,`Reaction kind '${e}' is not registered`);if(n.hostSignal?.aborted)return this.failure(e,r,n.correlationId,`Reaction '${e}' host signal already aborted`);let a=Ye(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Xe(n.hostSignal,a),s=Ze(r,o.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.failure(e,r,s.correlationId,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return n.success?(a!==void 0&&H(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${h(o.controller.signal.reason)}`,o.controller.signal.reason):(await i.handler(n.data,s),{success:!0})):this.failure(e,r,s.correlationId,`Invalid parameters for Reaction '${e}': ${n.error.message}`)}catch(t){return this.logFailure(e,r,s.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{message:h(t)}}}finally{o.release()}}failure(e,t,n,r,i){return this.logFailure(e,t,n,r,i),{success:!1,error:{message:r}}}logFailure(e,t,n,r,i){let a=n===void 0?``:` (correlationId: ${n})`;console.error(`[ReactionRegistry] Reaction '${e}' invocation '${t}' failed${a}: ${r}`,...i===void 0?[]:[i])}validateBatch(e,t){let n=`${e}.`,r=new Set,i=new Set(this.definitionsByExtension.get(e)?.map(e=>e.descriptor.kind)),a=[];for(let o of t){if(!o.kind.startsWith(n)||o.kind.length===n.length)throw Error(`Reaction '${o.kind}' must be namespaced by extension '${n}'`);if(r.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' appears twice in batch from '${e}'`);if(this.definitionsByKind.has(o.kind)&&!i.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' is already registered`);r.add(o.kind);let t=je.parse(o.toDescriptor());if(t.kind!==o.kind)throw Error(`Reaction descriptor kind '${t.kind}' does not match definition kind '${o.kind}'`);a.push({parameterSchema:o.parameterSchema,handler:o.handler,descriptor:t})}return a}};const Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};let r=[];if(e){let t=()=>{n.abort(e.reason)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>{e.removeEventListener(`abort`,t)})}if(t!==void 0){let e,i=()=>{if(H(n,t)){e=void 0;return}let r=t-Date.now();e=setTimeout(i,Math.min(r,2147483647)),e.unref?.()};i(),r.push(()=>{clearTimeout(e)})}return{controller:n,release:()=>{for(let e of r)e()}}}function H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(e,t,n){return Object.freeze({invocationId:e,ruleRef:n.ruleRef,eventKind:n.eventKind,eventPayload:n.eventPayload,hostContext:n.hostContext,correlationId:n.correlationId,signal:t,deadlineEpochMs:n.deadlineEpochMs})}const U=x(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??C,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(v.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=tt(),l=Date.now();await this.bus.emit(v.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return A(k.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return A(k.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=m.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=m.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await et(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},nt=class extends w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(y.list,e=>{e.setResult({steps:this.listSteps()})})}async register(e,t){let n=[],r=this.snapshotExtensionState(e),i=new Set;for(let e of this.stepsByExtension.values())for(let t of e)i.add(t.metadata.name);for(let r of t.steps??[])this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,i),i.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:S(r.configSchema),inputSchema:S(r.inputSchema),outputSchema:S(r.outputSchema),runs:structuredClone(r.runs)});if(n.length!==0){this.stepsByExtension.set(e,n),this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,r),t}}}async deregister(e){let t=this.snapshotExtensionState(e);if(this.stepsByExtension.delete(e)){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listSteps(){return this.getCache().steps.map(rt)}async emitChanged(e,t){await this.bus.emit(y.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function rt(e){return{metadata:it(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function it(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function at(e){return()=>({async execute(t,n){let{input:r={}}=t,{workflowId:i}=r;if(typeof i!=`string`||i.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Ne.start,{workflowId:i,input:ot(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType}})}})}function ot(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=He(n,st(t)),i=Ae.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function st(e){let t={...e};return{...t,ctx:t}}var ct=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,at(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},lt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=Me.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:Be.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},ut=class extends w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(g.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(g.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(g.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(g.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(g.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Ve(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function dt(e){return async t=>{let n=await ft(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=pt(t),o=await e.requestOptional(D.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await bt(e,r,i,s)}}}async function ft(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function pt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:vt(e.payload)};return{observation:t,accountObserveRequest:mt(t)}}function mt(e){let t=e.payload,n=ht(t),r=gt(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:_t(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function ht(e){return yt(e.accountInfo)??e}function gt(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return m.array(Fe).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function _t(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function vt(e){return structuredClone(e)}function yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function bt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const xt=x(`session-storage`).name;var St=class extends w{constructor(e=C){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[b(xt),b(`makaio.clients-core`)],critical:!1,create:e=>new St(e.bus)},wt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Tt(e){let{harnesses:t}=await e.request(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=C){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(_.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(p.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(p.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(p.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(p.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(p.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(p.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(Ee.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${Ce(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const Dt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T(be)},create:e=>new Et(e.bus)},Y=x(`session-storage`),X=x(`session-bridge`),Z=x(`session`),Ot=x(`session-orchestrator`),kt=x(`observed-session-ingestion`),Q=x(`tool-registry`),At=x(`tool-approval`),jt=x(`tray-menu`),Mt=x(`model-registry`),Nt=x(`workflow-block-registry`),Pt=x(`transition-pipeline`),Ft=x(`filesystem`),It=x(`git`),Lt=x(`artifact-lifecycle-hook-registry`),Rt=x(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[b(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[b(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[b(Z.name),b(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[b(X.name)],critical:!1,create:e=>new d(e.bus)},Gt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new G({bus:e.bus})},Kt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[b(Q.name)],critical:!0,create:e=>new ve(e.bus)},qt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Jt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Yt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Xt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},Zt={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[b(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function Qt(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const $t=[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,Gt,Kt,qt,fe,Dt,B,wt,Jt,W,ge,he,_e,Yt,Zt,Xt];export{nt as A,P as B,Yt as C,lt as D,ut as E,B as F,z as I,R as L,U as M,W as N,ct as O,V as P,L as R,Gt as S,Jt as T,j as V,Vt as _,Ot as a,$ as b,At as c,jt as d,Nt as f,$t as g,Bt as h,X as i,G as j,K as k,Q as l,Qt as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Ut as v,qt as w,Kt as x,Ht as y,I as z};
1
+ import{wt as e,x as t}from"./handlers-mjky_fP2.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-CMbztxNO.mjs";import{r as f,t as oe}from"./namespace-J87EeVTm.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-vF9F4M41.mjs";import{n as fe}from"./package-BCKYMTYG.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-CeDu27XL.mjs";import{d as he,f as ge,n as _e}from"./package-BwlW7N32.mjs";import{t as ve}from"./tool-approval-service-CRo3fZRF.mjs";import{t as ye}from"./tray-menu-service-BRrnoqaY.mjs";import{r as p,t as be}from"./handler-Cc1MhaR4.mjs";import{r as xe}from"./package-BSz4hbav.mjs";import{t as Se}from"./filesystem-service-ClZEAw7E.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{AdapterSubjects as Ee,ArtifactSubjects as g,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as _,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as v,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as y,WorkflowSubjects as Ne,dep as b,extensionToken as x,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as S}from"@makaio/framework/contracts";import{MakaioBus as C}from"@makaio/framework/bus";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`evidence`in t?{evidence:t.evidence}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{evidence:n,confidence:r,representations:i,...a}=e;return{...a,data:t.data,relations:[...t.relations],...t.evidence===void 0?{}:{evidence:t.evidence},...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.evidence===void 0?{}:{evidence:n.evidence},...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,bus:u,meta:c,preventDefault(){d=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await u.request(g.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new L(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new L(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new L(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new L(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new L(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new L(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new L(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new L(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new L(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new L(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},z=class e extends w{constructor(e=C){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(f.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(me.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[b(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{definitionsByExtension=new Map;definitionsByKind=new Map;constructor(e){super(e)}onInit(){}onDestroy(){this.definitionsByExtension.clear(),this.definitionsByKind.clear()}register(e,t){let n=this.validateBatch(e,t),r=new Map(this.definitionsByExtension);n.length===0?r.delete(e):r.set(e,n);let i=new Map;for(let e of r.values())for(let t of e)i.set(t.descriptor.kind,t);this.definitionsByExtension=r,this.definitionsByKind=i}deregister(e){this.definitionsByExtension.has(e)&&this.register(e,[])}listDescriptors(){return Array.from(this.definitionsByKind.values(),({descriptor:e})=>structuredClone(e))}async invoke(e,t,n){let r=crypto.randomUUID(),i=this.definitionsByKind.get(e);if(!i)return this.failure(e,r,n.correlationId,`Reaction kind '${e}' is not registered`);if(n.hostSignal?.aborted)return this.failure(e,r,n.correlationId,`Reaction '${e}' host signal already aborted`);let a=Ye(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Xe(n.hostSignal,a),s=Ze(r,o.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.failure(e,r,s.correlationId,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return n.success?(a!==void 0&&H(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${h(o.controller.signal.reason)}`,o.controller.signal.reason):(await i.handler(n.data,s),{success:!0})):this.failure(e,r,s.correlationId,`Invalid parameters for Reaction '${e}': ${n.error.message}`)}catch(t){return this.logFailure(e,r,s.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{message:h(t)}}}finally{o.release()}}failure(e,t,n,r,i){return this.logFailure(e,t,n,r,i),{success:!1,error:{message:r}}}logFailure(e,t,n,r,i){let a=n===void 0?``:` (correlationId: ${n})`;console.error(`[ReactionRegistry] Reaction '${e}' invocation '${t}' failed${a}: ${r}`,...i===void 0?[]:[i])}validateBatch(e,t){let n=`${e}.`,r=new Set,i=new Set(this.definitionsByExtension.get(e)?.map(e=>e.descriptor.kind)),a=[];for(let o of t){if(!o.kind.startsWith(n)||o.kind.length===n.length)throw Error(`Reaction '${o.kind}' must be namespaced by extension '${n}'`);if(r.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' appears twice in batch from '${e}'`);if(this.definitionsByKind.has(o.kind)&&!i.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' is already registered`);r.add(o.kind);let t=je.parse(o.toDescriptor());if(t.kind!==o.kind)throw Error(`Reaction descriptor kind '${t.kind}' does not match definition kind '${o.kind}'`);a.push({parameterSchema:o.parameterSchema,handler:o.handler,descriptor:t})}return a}};const Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};let r=[];if(e){let t=()=>{n.abort(e.reason)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>{e.removeEventListener(`abort`,t)})}if(t!==void 0){let e,i=()=>{if(H(n,t)){e=void 0;return}let r=t-Date.now();e=setTimeout(i,Math.min(r,2147483647)),e.unref?.()};i(),r.push(()=>{clearTimeout(e)})}return{controller:n,release:()=>{for(let e of r)e()}}}function H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(e,t,n){return Object.freeze({invocationId:e,ruleRef:n.ruleRef,eventKind:n.eventKind,eventPayload:n.eventPayload,hostContext:n.hostContext,correlationId:n.correlationId,signal:t,deadlineEpochMs:n.deadlineEpochMs})}const U=x(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??C,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(v.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=tt(),l=Date.now();await this.bus.emit(v.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return A(k.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return A(k.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=m.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=m.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await et(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},nt=class extends w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(y.list,e=>{e.setResult({steps:this.listSteps()})})}async register(e,t){let n=[],r=this.snapshotExtensionState(e),i=new Set;for(let e of this.stepsByExtension.values())for(let t of e)i.add(t.metadata.name);for(let r of t.steps??[])this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,i),i.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:S(r.configSchema),inputSchema:S(r.inputSchema),outputSchema:S(r.outputSchema),runs:structuredClone(r.runs)});if(n.length!==0){this.stepsByExtension.set(e,n),this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,r),t}}}async deregister(e){let t=this.snapshotExtensionState(e);if(this.stepsByExtension.delete(e)){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listSteps(){return this.getCache().steps.map(rt)}async emitChanged(e,t){await this.bus.emit(y.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function rt(e){return{metadata:it(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function it(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function at(e){return()=>({async execute(t,n){let{input:r={}}=t,{workflowId:i}=r;if(typeof i!=`string`||i.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Ne.start,{workflowId:i,input:ot(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType}})}})}function ot(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=He(n,st(t)),i=Ae.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function st(e){let t={...e};return{...t,ctx:t}}var ct=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,at(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},lt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=Me.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:Be.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},ut=class extends w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(g.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(g.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(g.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(g.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(g.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Ve(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function dt(e){return async t=>{let n=await ft(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=pt(t),o=await e.requestOptional(D.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await bt(e,r,i,s)}}}async function ft(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function pt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:vt(e.payload)};return{observation:t,accountObserveRequest:mt(t)}}function mt(e){let t=e.payload,n=ht(t),r=gt(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:_t(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function ht(e){return yt(e.accountInfo)??e}function gt(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return m.array(Fe).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function _t(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function vt(e){return structuredClone(e)}function yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function bt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const xt=x(`session-storage`).name;var St=class extends w{constructor(e=C){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[b(xt),b(`makaio.clients-core`)],critical:!1,create:e=>new St(e.bus)},wt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Tt(e){let{harnesses:t}=await e.request(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=C){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(_.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(p.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(p.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(p.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(p.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(p.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(p.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(Ee.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${Ce(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const Dt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T(be)},create:e=>new Et(e.bus)},Y=x(`session-storage`),X=x(`session-bridge`),Z=x(`session`),Ot=x(`session-orchestrator`),kt=x(`observed-session-ingestion`),Q=x(`tool-registry`),At=x(`tool-approval`),jt=x(`tray-menu`),Mt=x(`model-registry`),Nt=x(`workflow-block-registry`),Pt=x(`transition-pipeline`),Ft=x(`filesystem`),It=x(`git`),Lt=x(`artifact-lifecycle-hook-registry`),Rt=x(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[b(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[b(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[b(Z.name),b(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[b(X.name)],critical:!1,create:e=>new d(e.bus)},Gt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new G({bus:e.bus})},Kt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[b(Q.name)],critical:!0,create:e=>new ve(e.bus)},qt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Jt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Yt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Xt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},Zt={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[b(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function Qt(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const $t=[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,Gt,Kt,qt,fe,Dt,B,wt,Jt,W,ge,he,_e,Yt,Zt,Xt];export{nt as A,P as B,Yt as C,lt as D,ut as E,B as F,z as I,R as L,U as M,W as N,ct as O,V as P,L as R,Gt as S,Jt as T,j as V,Vt as _,Ot as a,$ as b,At as c,jt as d,Nt as f,$t as g,Bt as h,X as i,G as j,K as k,Q as l,Qt as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Ut as v,qt as w,Kt as x,Ht as y,I as z};
@@ -1,4 +1,4 @@
1
- import { t as ExtensionContext } from "./extension-context-BH31eOMv.mjs";
1
+ import { n as ExtensionContext } from "./extension-context-pQ7Uio_s.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region core/contracts/src/version/primitives.d.ts
@@ -93,6 +93,7 @@ declare const ClientHookEventDeclarationSchema: z.ZodObject<{
93
93
  name: z.ZodString;
94
94
  frameworkSubject: z.ZodOptional<z.ZodString>;
95
95
  responseCapabilities: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
96
+ minimumVersion: z.ZodOptional<z.ZodString>;
96
97
  }, z.core.$strict>;
97
98
  type ClientHookEventDeclaration = z.infer<typeof ClientHookEventDeclarationSchema>;
98
99
  /**
@@ -243,6 +244,7 @@ declare const ClientRuntimeCapabilitiesSchema: z.ZodObject<{
243
244
  name: z.ZodString;
244
245
  frameworkSubject: z.ZodOptional<z.ZodString>;
245
246
  responseCapabilities: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
247
+ minimumVersion: z.ZodOptional<z.ZodString>;
246
248
  }, z.core.$strict>>>;
247
249
  }, z.core.$strip>;
248
250
  type ClientRuntimeCapabilities = z.infer<typeof ClientRuntimeCapabilitiesSchema>;
@@ -349,6 +351,7 @@ declare const ClientDefinitionSchema: z.ZodObject<{
349
351
  name: z.ZodString;
350
352
  frameworkSubject: z.ZodOptional<z.ZodString>;
351
353
  responseCapabilities: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
354
+ minimumVersion: z.ZodOptional<z.ZodString>;
352
355
  }, z.core.$strict>>>;
353
356
  }, z.core.$strip>>, z.ZodTransform<{
354
357
  supportsHooks: boolean;
@@ -359,6 +362,7 @@ declare const ClientDefinitionSchema: z.ZodObject<{
359
362
  name: string;
360
363
  responseCapabilities: readonly string[];
361
364
  frameworkSubject?: string | undefined;
365
+ minimumVersion?: string | undefined;
362
366
  }[];
363
367
  }, {
364
368
  supportsHooks: boolean;
@@ -369,6 +373,7 @@ declare const ClientDefinitionSchema: z.ZodObject<{
369
373
  name: string;
370
374
  responseCapabilities: readonly string[];
371
375
  frameworkSubject?: string | undefined;
376
+ minimumVersion?: string | undefined;
372
377
  }[];
373
378
  } | undefined>>;
374
379
  managedInstall: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -428,19 +433,57 @@ interface CanonicalAppendEffect {
428
433
  /** The string value to append to the hook event context. */
429
434
  readonly value: string;
430
435
  }
436
+ /**
437
+ * Opaque correlation token delivered at session/subagent start.
438
+ *
439
+ * The runtime stores this against the adapter session id (plus agent id for
440
+ * SubagentStart) and makes it retrievable via `client.session.token.get`.
441
+ * MCP servers fetch it over the WebSocket bus by adapter session id.
442
+ *
443
+ * This effect is never rendered into model context and is never written to the
444
+ * client binary's stdout — the client binary has no native field for it.
445
+ */
446
+ interface CanonicalSessionTokenEffect {
447
+ /** Discriminant identifying this as a canonical session token effect. */
448
+ readonly kind: 'session.token';
449
+ /** The opaque correlation token value. */
450
+ readonly value: string;
451
+ }
431
452
  /**
432
453
  * Union of all canonical effects.
433
454
  *
434
- * Currently contains only `context.append`. New canonical effects are added
435
- * to this union as the framework evolves.
455
+ * - `context.append` — portable string-append contributed to the hook event
456
+ * context payload.
457
+ * - `session.token` — opaque correlation token stored by the runtime against
458
+ * the adapter session id (and agent id for SubagentStart); served on
459
+ * `client.session.token.get`. Not rendered to the client binary.
460
+ *
461
+ * New canonical effects are added to this union as the framework evolves.
462
+ */
463
+ type CanonicalEffect = CanonicalAppendEffect | CanonicalSessionTokenEffect;
464
+ /**
465
+ * Canonical capability ids, one per canonical effect kind.
466
+ *
467
+ * Used by interaction selectors, routing logic, and validation to identify
468
+ * which canonical capability a contributor targets without string literals
469
+ * scattered across the codebase.
436
470
  */
437
- type CanonicalEffect = CanonicalAppendEffect;
471
+ declare const CANONICAL_HOOK_RESPONSE_CAPABILITIES: Readonly<{
472
+ /** Capability id for the `context.append` canonical effect. */readonly contextAppend: "context.append"; /** Capability id for the `session.token` canonical effect. */
473
+ readonly sessionToken: "session.token";
474
+ }>;
438
475
  /**
439
476
  * Create a canonical `context.append` effect.
440
477
  * @param value - The string value to append.
441
478
  * @returns A frozen {@link CanonicalAppendEffect}.
442
479
  */
443
480
  declare function createAppendEffect(value: string): CanonicalAppendEffect;
481
+ /**
482
+ * Create a canonical `session.token` effect.
483
+ * @param value - The opaque correlation token value.
484
+ * @returns A frozen {@link CanonicalSessionTokenEffect}.
485
+ */
486
+ declare function createSessionTokenEffect(value: string): CanonicalSessionTokenEffect;
444
487
  /**
445
488
  * Opaque provider contribution envelope keyed by client and contract identity.
446
489
  *
@@ -818,4 +861,4 @@ declare function isValidTimeoutMs(timeoutMs: number): boolean;
818
861
  */
819
862
  declare function validateClosedPolicy(selectors: readonly InteractionSelector[], catalog: ProviderContractCatalogEntry): string[];
820
863
  //#endregion
821
- export { VersionLiteralSchema as $, ClientHookEventDeclarationSchema as A, LogSourceDefinitionSchema as B, validateClosedPolicy as C, ClientDefinitionInput as D, ClientDefinition as E, ClientToolDefinition as F, PostInstallDescriptor as G, ManagedInstallDescriptorSchema as H, ClientToolDefinitionSchema as I, SignedBinaryBucketInstallDescriptorSchema as J, PostInstallDescriptorSchema as K, ConfigIsolation as L, ClientRuntimeCapabilitiesSchema as M, ClientToolCapabilityAnnotation as N, ClientDefinitionSchema as O, ClientToolCapabilityAnnotationSchema as P, VersionLiteral as Q, ConfigIsolationSchema as R, isValidTimeoutMs as S, ClientBinaryCompatibilitySchema as T, NpmInstallDescriptor as U, ManagedInstallDescriptor as V, NpmInstallDescriptorSchema as W, VersionCommandSchema as X, VersionCommand as Y, deriveHookEventTransportMode as Z, ProviderContributionEnvelope as _, CapabilitySelector as a, createAppendEffect as b, ContributorDefinition as c, EventNameSelector as d, VersionRange as et, ExtensionClientHookResponsesContribution as f, ProviderContractCatalogEntry as g, InteractionSelector as h, CanonicalEffect as i, ClientRuntimeCapabilities as j, ClientHookEventDeclaration as k, ContributorResponse as l, InteractionBlockability as m, ActivationValidationError as n, isUniversalRange as nt, ContributorActivationContext as o, FailurePolicy as p, SignedBinaryBucketInstallDescriptor as q, CanonicalAppendEffect as r, versionSatisfies as rt, ContributorCallbackContext as s, ActivationErrorCode as t, VersionRangeSchema as tt, DEFAULT_FAILURE_POLICY as u, RuntimeOutcome as v, ClientBinaryCompatibility as w, isValidContributorId as x, RuntimeOutcomeCode as y, LogSourceDefinition as z };
864
+ export { VersionCommandSchema as $, ClientDefinitionInput as A, ConfigIsolation as B, createSessionTokenEffect as C, ClientBinaryCompatibility as D, validateClosedPolicy as E, ClientRuntimeCapabilitiesSchema as F, ManagedInstallDescriptorSchema as G, LogSourceDefinition as H, ClientToolCapabilityAnnotation as I, PostInstallDescriptor as J, NpmInstallDescriptor as K, ClientToolCapabilityAnnotationSchema as L, ClientHookEventDeclaration as M, ClientHookEventDeclarationSchema as N, ClientBinaryCompatibilitySchema as O, ClientRuntimeCapabilities as P, VersionCommand as Q, ClientToolDefinition as R, createAppendEffect as S, isValidTimeoutMs as T, LogSourceDefinitionSchema as U, ConfigIsolationSchema as V, ManagedInstallDescriptor as W, SignedBinaryBucketInstallDescriptor as X, PostInstallDescriptorSchema as Y, SignedBinaryBucketInstallDescriptorSchema as Z, InteractionSelector as _, CanonicalEffect as a, isUniversalRange as at, RuntimeOutcome as b, ContributorActivationContext as c, ContributorResponse as d, deriveHookEventTransportMode as et, DEFAULT_FAILURE_POLICY as f, InteractionBlockability as g, FailurePolicy as h, CanonicalAppendEffect as i, VersionRangeSchema as it, ClientDefinitionSchema as j, ClientDefinition as k, ContributorCallbackContext as l, ExtensionClientHookResponsesContribution as m, ActivationValidationError as n, VersionLiteralSchema as nt, CanonicalSessionTokenEffect as o, versionSatisfies as ot, EventNameSelector as p, NpmInstallDescriptorSchema as q, CANONICAL_HOOK_RESPONSE_CAPABILITIES as r, VersionRange as rt, CapabilitySelector as s, ActivationErrorCode as t, VersionLiteral as tt, ContributorDefinition as u, ProviderContractCatalogEntry as v, isValidContributorId as w, RuntimeOutcomeCode as x, ProviderContributionEnvelope as y, ClientToolDefinitionSchema as z };
@@ -1,4 +1,4 @@
1
- import { t as AdapterAuthBinding } from "./adapter-binding-BxjUfkOn.mjs";
1
+ import { t as AdapterAuthBinding } from "./adapter-binding-CaYBrIkL.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region core/contracts/src/auth/definitions.d.ts
@@ -1,5 +1,5 @@
1
- import { g as OwnedAdapterInstance, h as MachineScopedAdapterInstance, w as Turn$1 } from "./index-U--ajOHy.mjs";
2
- import { a as PipelineStep, o as SessionEditorAction, t as ActionCategory } from "./types-BRM1AZaP.mjs";
1
+ import { g as OwnedAdapterInstance, h as MachineScopedAdapterInstance, w as Turn$1 } from "./index-DUYjTfHD.mjs";
2
+ import { a as PipelineStep, o as SessionEditorAction, t as ActionCategory } from "./types-DciLiPMd.mjs";
3
3
  import { z } from "zod";
4
4
  import * as _$_makaio_core0 from "@makaio/framework/core";
5
5
  import { ExtractSubjectPayload, SubjectDefinition } from "@makaio/framework/core";
@@ -2845,6 +2845,8 @@ declare const AgentStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.
2845
2845
  interface SessionStorageMemoryState {
2846
2846
  /** Session rows keyed by `sessionId`. */
2847
2847
  readonly sessions: Map<string, IMakaioSession>;
2848
+ /** Internal owner-principal rows keyed by `sessionId`. */
2849
+ readonly sessionOwnerPrincipalIds: Map<string, string>;
2848
2850
  /** Agent rows keyed by `agentId`. */
2849
2851
  readonly agents: Map<string, MakaioSessionAgent>;
2850
2852
  /** Claim rows keyed by `claimId`. */
@@ -3131,6 +3133,23 @@ declare const sessionStorageSchema: _$_makaio_storage_drizzle0.DialectSchema<{
3131
3133
  }, {}, {
3132
3134
  length: number | undefined;
3133
3135
  }>;
3136
+ generation: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
3137
+ name: string;
3138
+ tableName: "sessions";
3139
+ dataType: "number";
3140
+ columnType: "SQLiteInteger";
3141
+ data: number;
3142
+ driverParam: number;
3143
+ notNull: true;
3144
+ hasDefault: true;
3145
+ isPrimaryKey: false;
3146
+ isAutoincrement: false;
3147
+ hasRuntimeDefault: false;
3148
+ enumValues: undefined;
3149
+ baseColumn: never;
3150
+ identity: undefined;
3151
+ generated: undefined;
3152
+ }, {}, {}>;
3134
3153
  adapterName: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
3135
3154
  name: "adapter_name";
3136
3155
  tableName: "sessions";
@@ -3615,6 +3634,25 @@ declare const sessionStorageSchema: _$_makaio_storage_drizzle0.DialectSchema<{
3615
3634
  }, {}, {
3616
3635
  length: number | undefined;
3617
3636
  }>;
3637
+ ownerPrincipalId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
3638
+ name: "owner_principal_id";
3639
+ tableName: "sessions";
3640
+ dataType: "string";
3641
+ columnType: "SQLiteText";
3642
+ data: string;
3643
+ driverParam: string;
3644
+ notNull: false;
3645
+ hasDefault: false;
3646
+ isPrimaryKey: false;
3647
+ isAutoincrement: false;
3648
+ hasRuntimeDefault: false;
3649
+ enumValues: [string, ...string[]];
3650
+ baseColumn: never;
3651
+ identity: undefined;
3652
+ generated: undefined;
3653
+ }, {}, {
3654
+ length: number | undefined;
3655
+ }>;
3618
3656
  };
3619
3657
  dialect: "sqlite";
3620
3658
  }>;
@@ -4597,7 +4635,8 @@ type SearchSessionRow = {
4597
4635
  parent_session_id: string | null;
4598
4636
  root_session_id: string | null;
4599
4637
  fork_point_message_id: string | null;
4600
- branch_kind: IMakaioSession['branchKind'] | null;
4638
+ branch_kind: IMakaioSession['branchKind'] | null; /** Compaction ordinal. `NOT NULL` in the schema, so a matched row always carries one. */
4639
+ generation: number;
4601
4640
  adapter_name: string | null;
4602
4641
  adapter_session_id: string | null;
4603
4642
  adapter_id: string | null;
@@ -5463,7 +5502,16 @@ declare function isTrackingStub(session: Pick<IMakaioSession, 'isImported' | 'im
5463
5502
  declare class ObservedSessionIngestionService {
5464
5503
  private readonly bus;
5465
5504
  /**
5466
- * Adapter session IDs owned by the managed orchestration path.
5505
+ * Adapter session IDs owned by the managed orchestration path, mapped to the
5506
+ * framework session id when `client.runtime.started` already resolved one.
5507
+ *
5508
+ * A Map rather than a Set because the provider session id is not a durable
5509
+ * handle on this path: after a confirmed rotation the stored row is found
5510
+ * under `currentAdapterSessionId`, not the origin `adapterSessionId` a
5511
+ * source-less lookup compares. The framework session id does not move, so
5512
+ * remembering it here is what lets a compaction reported under a rotated id
5513
+ * still reach its row. The value stays `undefined` when the observation
5514
+ * carried none, and the lookup fallback covers that case.
5467
5515
  *
5468
5516
  * FIFO-capped at {@link MANAGED_SESSION_CAP}; insertion order is the
5469
5517
  * eviction order (mirrors the client services' gate).
@@ -5579,11 +5627,19 @@ declare class ObservedSessionIngestionService {
5579
5627
  /**
5580
5628
  * Rebind an already known observed session to the runtime continuing it.
5581
5629
  *
5582
- * Refreshes runtime/locality facts only (working directory, transcript path,
5583
- * owning machine). A continuation carries no evidence about origin, lineage,
5584
- * import status or creation time, so it must not be able to write them —
5585
- * that is precisely what routing resume/compact through the import upsert
5586
- * used to do.
5630
+ * Refreshes runtime/locality facts (working directory, transcript path,
5631
+ * owning machine) and, for `compact` only, advances the row's `generation`
5632
+ * ordinal — the one thing a continuation *is* first-hand evidence of, since
5633
+ * the provider is reporting its own context reset. A continuation still
5634
+ * carries no evidence about origin, lineage, import status or creation time,
5635
+ * so it must not be able to write those — that is precisely what routing
5636
+ * resume/compact through the import upsert used to do.
5637
+ *
5638
+ * The ordinal is deliberately not a `compress` lineage row: those are keyed
5639
+ * on the compaction boundary record inside the transcript, which no hook
5640
+ * payload carries, so only the importer can create them. The ordinal gives
5641
+ * consumers the generation boundary at the moment it happens; the lineage
5642
+ * gives them the compacted content once the import catches up.
5587
5643
  *
5588
5644
  * A `'not-found'` outcome is resolved by the ingestion policy, because the
5589
5645
  * skip is only correct while a transcript import is still coming:
@@ -1,6 +1,6 @@
1
- import { x as ArtifactRevision$1 } from "./schemas-JjyFxrC0.mjs";
2
- import { a as JsonObjectContractSchema, l as JsonValue$1 } from "./json-value-Ymw2f8i_.mjs";
3
- import { n as AutomationTriggerBinding$1, o as AutomationTriggerParams, u as DefinedAutomationTrigger } from "./definition-CuaBQyde.mjs";
1
+ import { x as ArtifactRevision$1 } from "./schemas-rMUsvzeJ.mjs";
2
+ import { a as JsonObjectContractSchema, l as JsonValue$1 } from "./json-value-Bjl8jzom.mjs";
3
+ import { n as AutomationTriggerBinding$1, o as AutomationTriggerParams, u as DefinedAutomationTrigger } from "./definition-DeIGoROj.mjs";
4
4
  import { z } from "zod";
5
5
  import * as _$_makaio_core0 from "@makaio/framework/core";
6
6
  import { ExtractSubjectPayload, PayloadFilter, SubjectDefinition, TypedPayloadFilter } from "@makaio/framework/core";
@@ -28,8 +28,8 @@ type MakaioVariant = z.infer<typeof MakaioVariantSchema>;
28
28
  declare const VariantUpgradeStatusSchema: z.ZodEnum<{
29
29
  error: "error";
30
30
  complete: "complete";
31
- progress: "progress";
32
31
  downloading: "downloading";
32
+ progress: "progress";
33
33
  applying: "applying";
34
34
  }>;
35
35
  /** Inferred TypeScript type for an upgrade status value. */
@@ -102,8 +102,8 @@ declare const VariantSchemas: {
102
102
  status: z.ZodEnum<{
103
103
  error: "error";
104
104
  complete: "complete";
105
- progress: "progress";
106
105
  downloading: "downloading";
106
+ progress: "progress";
107
107
  applying: "applying";
108
108
  }>;
109
109
  percent: z.ZodOptional<z.ZodNumber>;
@@ -159,8 +159,8 @@ declare const VariantNamespace: _$_makaio_core0.BusNamespaceDefinition<"host:var
159
159
  status: _$zod.ZodEnum<{
160
160
  error: "error";
161
161
  complete: "complete";
162
- progress: "progress";
163
162
  downloading: "downloading";
163
+ progress: "progress";
164
164
  applying: "applying";
165
165
  }>;
166
166
  percent: _$zod.ZodOptional<_$zod.ZodNumber>;
@@ -206,8 +206,8 @@ declare const VariantSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatS
206
206
  status: _$zod.ZodEnum<{
207
207
  error: "error";
208
208
  complete: "complete";
209
- progress: "progress";
210
209
  downloading: "downloading";
210
+ progress: "progress";
211
211
  applying: "applying";
212
212
  }>;
213
213
  percent: _$zod.ZodOptional<_$zod.ZodNumber>;