@makaio/framework 1.0.0-dev-1788897280508 → 1.0.0-dev-1788909333961

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 (382) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/2020-Bl3Yx3In.mjs +1 -0
  3. package/dist/adapters/config/index.d.mts +1 -1
  4. package/dist/adapters/config/index.mjs +1 -1
  5. package/dist/adapters/index.d.mts +2 -2
  6. package/dist/adapters/index.mjs +6 -6
  7. package/dist/adapters/node.d.mts +1 -1
  8. package/dist/adapters/node.mjs +1 -1
  9. package/dist/{artifact-OnwP6uaD.mjs → artifact-BjqkK0KX.mjs} +1 -1
  10. package/dist/{attempt-record-codec-CqKq0NIB.mjs → attempt-record-codec-6jpayBMY.mjs} +1 -1
  11. package/dist/{authority-state-bootstrap-rnsTk0u7.mjs → authority-state-bootstrap-8VGt4vD2.mjs} +1 -1
  12. package/dist/bus/index.d.mts +20 -20
  13. package/dist/bus/index.mjs +1 -1
  14. package/dist/{capabilities-DGqMG9M3.mjs → capabilities-BhJ3wzI8.mjs} +1 -1
  15. package/dist/clients/index.d.mts +1 -1
  16. package/dist/clients/index.mjs +1 -1
  17. package/dist/clients/managed-install.d.mts +1 -1
  18. package/dist/clients/managed-install.mjs +1 -1
  19. package/dist/code-execution/worker-entry.d.mts +1 -1
  20. package/dist/code-execution/worker-entry.mjs +1 -1
  21. package/dist/{code-execution-C2PgBdmE.mjs → code-execution-BsiB7ZeZ2.mjs} +1 -1
  22. package/dist/{code-execution-Mo1jztUH.mjs → code-execution-DRCzkGzO.mjs} +1 -1
  23. package/dist/contracts/adapter/index.d.mts +2 -2
  24. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  25. package/dist/contracts/artifact/index.d.mts +2 -2
  26. package/dist/contracts/artifact/index.mjs +1 -1
  27. package/dist/contracts/auth/index.d.mts +2 -2
  28. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  29. package/dist/contracts/canonical-model/index.d.mts +1 -1
  30. package/dist/contracts/capabilities/index.d.mts +1 -1
  31. package/dist/contracts/capabilities/index.mjs +1 -1
  32. package/dist/contracts/client/index.d.mts +2 -2
  33. package/dist/contracts/code-execution/index.d.mts +1 -1
  34. package/dist/contracts/common/index.d.mts +1 -1
  35. package/dist/contracts/config/index.d.mts +1 -1
  36. package/dist/contracts/extension/index.d.mts +5 -5
  37. package/dist/contracts/extension/index.mjs +1 -1
  38. package/dist/contracts/facet/index.d.mts +1 -1
  39. package/dist/contracts/harness/index.d.mts +1 -1
  40. package/dist/contracts/host/index.d.mts +1 -1
  41. package/dist/contracts/index.d.mts +201 -201
  42. package/dist/contracts/index.mjs +1 -1
  43. package/dist/contracts/materialization/index.d.mts +2 -2
  44. package/dist/contracts/materialization/index.mjs +1 -1
  45. package/dist/contracts/model-registry/index.d.mts +1 -1
  46. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  47. package/dist/contracts/platform/index.d.mts +1 -1
  48. package/dist/contracts/provider/index.d.mts +2 -2
  49. package/dist/contracts/reaction/index.d.mts +1 -1
  50. package/dist/contracts/session/index.d.mts +2 -2
  51. package/dist/contracts/shared/index.d.mts +2 -2
  52. package/dist/contracts/skill/index.d.mts +1 -1
  53. package/dist/contracts/telemetry/index.d.mts +1 -1
  54. package/dist/contracts/timeout/index.d.mts +1 -1
  55. package/dist/contracts/variant/index.d.mts +1 -1
  56. package/dist/contracts/worker/index.d.mts +1 -1
  57. package/dist/contracts/worker/index.mjs +1 -1
  58. package/dist/contracts/workflow/index.d.mts +2 -2
  59. package/dist/contracts/workflow/index.mjs +1 -1
  60. package/dist/{contribution-BoTMoHVB.d.mts → contribution-B4t0OXKs.d.mts} +2 -2
  61. package/dist/{definition-BgY763Q4.d.mts → definition-Bs5hzhsT.d.mts} +1 -1
  62. package/dist/{detached-extension-handle-B9c_6Pcb.mjs → detached-extension-handle-CgJiXaqv.mjs} +1 -1
  63. package/dist/dist-CfANkKSb.mjs +1 -0
  64. package/dist/{execution-attempt-owner-recovery-BNERIDH0.mjs → execution-attempt-owner-recovery-CdH04iwP.mjs} +1 -1
  65. package/dist/{execution-attempt-repository-CtFZfBfp.d.mts → execution-attempt-repository-CF3cWsPo.d.mts} +495 -151
  66. package/dist/{extension-C4lFc8-j.mjs → extension-BgUSK5rv.mjs} +1 -1
  67. package/dist/{filesystem-service-DGqU-6x-.mjs → filesystem-service-yB8KhUGz.mjs} +1 -1
  68. package/dist/{framework-packages-CZJDukan.mjs → framework-packages-CxWecyPW.mjs} +1 -1
  69. package/dist/git/index.mjs +1 -1
  70. package/dist/{globby-BT0rrriG.mjs → globby-z2SR0jRo.mjs} +1 -1
  71. package/dist/{hook-responses-BSCAdJ3i.d.mts → hook-responses-Cs8A07ZP.d.mts} +1 -1
  72. package/dist/{index-gK54T8Am.d.mts → index-B4Wg4W7d.d.mts} +100 -100
  73. package/dist/{index-RpG4EP3u.d.mts → index-B6aoVzdA.d.mts} +1 -1
  74. package/dist/{index-BZlmWCcW.d.mts → index-B7VO0gQV.d.mts} +3 -3
  75. package/dist/{index-C_OLvAr_.d.mts → index-BALk4zcu.d.mts} +1 -1
  76. package/dist/{index-BVRQOZbm.d.mts → index-BHZlMm_I.d.mts} +1 -1
  77. package/dist/{index-BdbYIlDL.d.mts → index-BO_ikAR-.d.mts} +13 -13
  78. package/dist/{index-BkY6zO7p.d.mts → index-BQv9mUzn.d.mts} +2 -1
  79. package/dist/{index-R2BZejEz.d.mts → index-BeplDh91.d.mts} +7 -7
  80. package/dist/{index-DIYgFhTZ2.d.mts → index-BgY_UzH82.d.mts} +4 -4
  81. package/dist/{index-BZtasAZP.d.mts → index-BjcJH3I-.d.mts} +1 -1
  82. package/dist/{index-nPpqnP7P.d.mts → index-BtC1JP5D.d.mts} +1 -1
  83. package/dist/{index-l5HeyxKn.d.mts → index-ByJ2NESC.d.mts} +6 -6
  84. package/dist/{index-CYwbfa0_.d.mts → index-CKvOECeR.d.mts} +2 -2
  85. package/dist/{index-PTp68NH1.d.mts → index-CpdRe5df.d.mts} +14 -14
  86. package/dist/{index-CQtttPGm.d.mts → index-D7j6v0-L.d.mts} +1 -1
  87. package/dist/{index-Cau0jTTM.d.mts → index-DFsJTTkS.d.mts} +1 -1
  88. package/dist/{index-mylsCg6V2.d.mts → index-DI-1HK7v2.d.mts} +1 -1
  89. package/dist/{index-DJ0Muy2s.d.mts → index-DlKxbLC9.d.mts} +2 -2
  90. package/dist/{index-D0DfEO45.d.mts → index-OP6Aw5jN.d.mts} +1 -1
  91. package/dist/{index-CDLHgV7v.d.mts → index-U0Fe0baO.d.mts} +10 -10
  92. package/dist/{index-F6hV4tWI.d.mts → index-VAJBIJUb.d.mts} +83 -29
  93. package/dist/{index-CoGo6HFE.d.mts → index-VCtdvtEk.d.mts} +336 -336
  94. package/dist/{index-dL0Oet1j.d.mts → index-fzrPfhS0.d.mts} +1 -1
  95. package/dist/{index-CYmQt2lF.d.mts → index-tDCBp28C.d.mts} +379 -379
  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 +1 -1
  99. package/dist/kernel/index.d.mts +5 -5
  100. package/dist/kernel/namespace/index.d.mts +1 -1
  101. package/dist/kernel/observability/index.d.mts +1 -1
  102. package/dist/kernel/providers/index.d.mts +1 -1
  103. package/dist/kernel/window/index.d.mts +1 -1
  104. package/dist/kind-registration-T--B1wiI.mjs +1 -0
  105. package/dist/{lib-B8Yv4IY-.mjs → lib-B8hEa65D.mjs} +1 -1
  106. package/dist/{lib-hwdGyO-m.mjs → lib-Ql8RWYOd.mjs} +1 -1
  107. package/dist/{load-extensions-CNT2Nd9h.mjs → load-extensions-BHTj3d_P.mjs} +1 -1
  108. package/dist/{load-extensions-D0yT_Kta.d.mts → load-extensions-un9Md47Z.d.mts} +1 -1
  109. package/dist/{materialization-Dx1z_MDj.mjs → materialization-CqOHTt92.mjs} +1 -1
  110. package/dist/mcp-http-server/index.mjs +4 -4
  111. package/dist/{namespace-CPC1vbOu.d.mts → namespace-BVQ8Y2Yi.d.mts} +2 -2
  112. package/dist/{namespace-C7wggVcn.d.mts → namespace-Ciyw6FxO.d.mts} +18 -18
  113. package/dist/{namespace-By3nEmBH.d.mts → namespace-DELzAyzb.d.mts} +152 -152
  114. package/dist/{namespace-Dh5fTXYt.d.mts → namespace-thsiHTFH.d.mts} +2 -2
  115. package/dist/node/bus-server/index.d.mts +1 -1
  116. package/dist/node/bus-server/index.mjs +1 -1
  117. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  118. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  119. package/dist/node/transports/index.d.mts +12 -1
  120. package/dist/node/transports/index.mjs +2 -2
  121. package/dist/{orchestrator-shared-BKMtjTE9.mjs → orchestrator-shared-5vhs4wvU.mjs} +1 -1
  122. package/dist/{package-D7c2HC-S.mjs → package-BwIbyojG.mjs} +2 -2
  123. package/dist/{package-C9XYuN9J.d.mts → package-DnlJ4I1i.d.mts} +31 -9
  124. package/dist/package.json +1 -1
  125. package/dist/packages-7CsXP86g.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.mjs +1 -1
  130. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  131. package/dist/runtime-node/code-execution/index.mjs +1 -1
  132. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  133. package/dist/runtime-node/extension-validation.d.mts +1 -1
  134. package/dist/runtime-node/extension-validation.mjs +1 -1
  135. package/dist/runtime-node/index.d.mts +7 -6
  136. package/dist/runtime-node/index.mjs +24 -24
  137. package/dist/runtime-node/makaio-config.d.mts +1 -1
  138. package/dist/runtime-node/makaio-config.mjs +1 -1
  139. package/dist/runtime-node/workflow-execution-bus-access.d.mts +16 -1
  140. package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
  141. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  142. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  143. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  144. package/dist/{schemas-hzbKeyyt.mjs → schemas-0eCrrru1.mjs} +1 -1
  145. package/dist/{schemas-C5FreSE0.d.mts → schemas-B9yLU2jM.d.mts} +1 -1
  146. package/dist/{schemas-BSBb1KFq.d.mts → schemas-BBatvMde.d.mts} +8 -8
  147. package/dist/{schemas-BjNlwTDl.d.mts → schemas-DQ5iRisA.d.mts} +2 -2
  148. package/dist/{schemas-B2Q284-G.d.mts → schemas-mGJIRIZ5.d.mts} +152 -152
  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.mjs +1 -1
  158. package/dist/services/capability/index.d.mts +2 -2
  159. package/dist/services/capability/index.mjs +1 -1
  160. package/dist/services/code-execution/index.d.mts +1 -1
  161. package/dist/services/code-execution/index.mjs +1 -1
  162. package/dist/services/codebase/index.d.mts +2 -2
  163. package/dist/services/codebase/namespace.d.mts +1 -1
  164. package/dist/services/codebase/schemas.d.mts +1 -1
  165. package/dist/services/compression/index.d.mts +2 -2
  166. package/dist/services/compression/namespace.d.mts +1 -1
  167. package/dist/services/compression/schemas.d.mts +1 -1
  168. package/dist/services/context-rules/index.d.mts +1 -1
  169. package/dist/services/context-rules/index.mjs +1 -1
  170. package/dist/services/execution-target/index.d.mts +3 -3
  171. package/dist/services/execution-target/index.mjs +1 -1
  172. package/dist/services/execution-target/namespace.d.mts +1 -1
  173. package/dist/services/execution-target/schemas.d.mts +1 -1
  174. package/dist/services/filesystem/index.d.mts +1 -1
  175. package/dist/services/filesystem/index.mjs +1 -1
  176. package/dist/services/filesystem/namespace.d.mts +6 -6
  177. package/dist/services/filesystem/schemas.d.mts +3 -3
  178. package/dist/services/git/namespace.mjs +1 -1
  179. package/dist/services/git/schemas.mjs +1 -1
  180. package/dist/services/harness/index.mjs +1 -1
  181. package/dist/services/index.d.mts +123 -123
  182. package/dist/services/index.mjs +1 -1
  183. package/dist/services/log-import/browser.d.mts +2 -2
  184. package/dist/services/log-import/index.d.mts +2 -2
  185. package/dist/services/log-import/log-import.d.mts +1 -1
  186. package/dist/services/log-import/log-import.mjs +1 -1
  187. package/dist/services/log-import/namespace.mjs +1 -1
  188. package/dist/services/log-import/schemas.mjs +1 -1
  189. package/dist/services/materialization/index.d.mts +1 -1
  190. package/dist/services/materialization/index.mjs +1 -1
  191. package/dist/services/model-registry/index.d.mts +1 -1
  192. package/dist/services/model-registry/index.mjs +1 -1
  193. package/dist/services/preferences/index.d.mts +2 -2
  194. package/dist/services/preferences/schemas.d.mts +1 -1
  195. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  196. package/dist/services/provider-context/index.d.mts +1 -1
  197. package/dist/services/provider-runtime/index.mjs +1 -1
  198. package/dist/services/session/handlers/index.d.mts +1 -1
  199. package/dist/services/session/index.d.mts +9 -9
  200. package/dist/services/session/messages/namespace.d.mts +1 -1
  201. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  202. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  203. package/dist/services/session/session-events/namespace.d.mts +1 -1
  204. package/dist/services/session/storage/namespace.d.mts +1 -1
  205. package/dist/services/session/storage/schema.d.mts +1 -1
  206. package/dist/services/session/testing/index.mjs +1 -1
  207. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  208. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  209. package/dist/services/session/turns/namespace.d.mts +1 -1
  210. package/dist/services/session-editor/index.d.mts +1 -1
  211. package/dist/services/settings/index.d.mts +3 -3
  212. package/dist/services/settings/namespace.d.mts +8 -8
  213. package/dist/services/settings/namespace.mjs +1 -1
  214. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  215. package/dist/services/settings/storage/index.d.mts +3 -3
  216. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  217. package/dist/services/subagent/index.d.mts +1 -1
  218. package/dist/services/subagent/index.mjs +1 -1
  219. package/dist/services/subagent-template/index.d.mts +2 -2
  220. package/dist/services/subagent-template/namespace.d.mts +1 -1
  221. package/dist/services/subagent-template/schemas.d.mts +1 -1
  222. package/dist/services/tool-approval/index.d.mts +1 -1
  223. package/dist/services/tool-approval/index.mjs +1 -1
  224. package/dist/services/tools/index.d.mts +1 -1
  225. package/dist/services/tools/index.mjs +1 -1
  226. package/dist/services/tray-menu/index.d.mts +3 -3
  227. package/dist/services/tray-menu/index.mjs +1 -1
  228. package/dist/services/tray-menu/namespace.d.mts +1 -1
  229. package/dist/services/tray-menu/schemas.d.mts +1 -1
  230. package/dist/services/turn/index.d.mts +1 -1
  231. package/dist/services/turn/namespace.d.mts +1 -1
  232. package/dist/services/workflow-transitions/index.d.mts +1 -1
  233. package/dist/services/workflow-transitions/index.mjs +1 -1
  234. package/dist/{session-lineage-CRLvurB-.d.mts → session-lineage-Bwb98OUz.d.mts} +1 -1
  235. package/dist/{src-D4Gx0QHf.mjs → src-Dlpw-Gh5.mjs} +1 -1
  236. package/dist/storage/drizzle/client.d.mts +1 -1
  237. package/dist/storage/drizzle/client.mjs +1 -1
  238. package/dist/storage/drizzle/index.d.mts +1 -1
  239. package/dist/storage/drizzle/index.mjs +1 -1
  240. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  241. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  242. package/dist/storage/handlers/index.d.mts +1 -1
  243. package/dist/storage/handlers/index.mjs +1 -1
  244. package/dist/{tools-Cyo6BuGM.mjs → tools-BkSFBqUz.mjs} +1 -1
  245. package/dist/{transition-CwMPKBjz.d.mts → transition-BbfxZ4U1.d.mts} +2 -2
  246. package/dist/{types-BOF825V52.d.mts → types-CR415CdC2.d.mts} +1 -1
  247. package/dist/{types-Dg_acP9p.d.mts → types-CXwFtEIF.d.mts} +340 -340
  248. package/dist/ui-kernel/index.d.mts +1 -1
  249. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  250. package/dist/{view-builder-D76L0Db8.d.mts → view-builder-CJtK5hgs.d.mts} +1 -1
  251. package/dist/{worker-9X0QNB1k.mjs → worker-VBlgozIo.mjs} +1 -1
  252. package/dist/worker-qgJToDTN.mjs +1 -0
  253. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  254. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  255. package/dist/workflow-engine/index.d.mts +11 -12
  256. package/dist/workflow-engine/index.mjs +1 -1
  257. package/dist/workflow-engine/package.d.mts +1 -1
  258. package/dist/workflow-engine/package.mjs +1 -1
  259. package/dist/workflow-engine/provider-operation.d.mts +2 -2
  260. package/dist/workflow-engine/provider-operation.mjs +1 -1
  261. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  262. package/dist/workflow-engine/testing/conformance.mjs +2 -2
  263. package/dist/workflow-engine/testing/index.d.mts +1 -2
  264. package/dist/workflow-engine/testing/index.mjs +1 -1
  265. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  266. package/dist/workflow-engine/testing/sqlite.mjs +76 -48
  267. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  268. package/dist/{workflow-B3MWrYhG.mjs → workflow-svpU9Cig.mjs} +1 -1
  269. package/dist/{workflow-transitions-B7HtjuAn.mjs → workflow-transitions-Cuo6s9uv.mjs} +1 -1
  270. package/dist/workflow-worker-7AA-u1uC.mjs +2 -0
  271. package/package.json +1 -1
  272. package/dist/kind-registration-BNhVCSaT.mjs +0 -1
  273. package/dist/packages-BhhBcPgz.mjs +0 -1
  274. package/dist/provider-operation-BwrIrOeY.d.mts +0 -207
  275. package/dist/worker-BwUhRg7i.mjs +0 -1
  276. package/dist/workflow-worker-zYb2UguP.mjs +0 -2
  277. package/dist/{adapter-auth-runtime-DGY1CDxj.mjs → adapter-auth-runtime-BnPqQChk.mjs} +0 -0
  278. package/dist/{adapter-binding-fGIz-ss3.d.mts → adapter-binding-BU7STlfd.d.mts} +0 -0
  279. package/dist/{ajv-DWgn_plp.mjs → ajv-Dtk5hCZS.mjs} +0 -0
  280. package/dist/{attempt-fixtures-Dpfgqll0.mjs → attempt-fixtures-C-jQE_7B.mjs} +0 -0
  281. package/dist/{base-orchestrator-BeLqYKJG.d.mts → base-orchestrator-DXiejwQ3.d.mts} +0 -0
  282. package/dist/{bootstrap-start-client-BYoxrgMk.mjs → bootstrap-start-client-Bdv-_2Q9.mjs} +0 -0
  283. package/dist/{caller-owned-adapter-stub-egWCuKcE.mjs → caller-owned-adapter-stub-B-Sq7ZvF.mjs} +0 -0
  284. package/dist/{capability-service-BlYnun2M.d.mts → capability-service-CsWaOwvH.d.mts} +0 -0
  285. package/dist/{client-CtOWHpFB.d.mts → client-DP4ksY9q.d.mts} +0 -0
  286. package/dist/{client-binary-version-verifier-BwmToeS1.d.mts → client-binary-version-verifier-BoXRTyae.d.mts} +0 -0
  287. package/dist/{client-binary-version-verifier-sv-Uv0lB.mjs → client-binary-version-verifier-DHBAzg3-.mjs} +0 -0
  288. package/dist/{clients-namespace-Bf73bcZh.d.mts → clients-namespace-BVDmj8uV.d.mts} +0 -0
  289. package/dist/{config-namespace-BbLLd4V0.d.mts → config-namespace-BMOKEuyf.d.mts} +0 -0
  290. package/dist/{create-static-mount-BQnyEUH1.mjs → create-static-mount-GSdckRQx.mjs} +0 -0
  291. package/dist/{cross-spawn-DPrJR9Nq.mjs → cross-spawn-Bx_VEdpd.mjs} +0 -0
  292. package/dist/{cursor-storage-iJ6vBOWd.mjs → cursor-storage-Co4itf44.mjs} +0 -0
  293. package/dist/{definition-aS9AM2ht.d.mts → definition-ByVJ3n6o.d.mts} +0 -0
  294. package/dist/{descriptor-to-package-FBkLjHZo.mjs → descriptor-to-package-CZLujoiv.mjs} +0 -0
  295. package/dist/{drizzle-CIf_jdYI.mjs → drizzle-me-95ICP.mjs} +0 -0
  296. package/dist/{esm-BH4Kmq3r.mjs → esm-DILYVXmW.mjs} +0 -0
  297. package/dist/{event-m7_IdhOS.mjs → event-DmQPb5MB.mjs} +0 -0
  298. package/dist/{execution-attempt-repository-D_qR7NyG.mjs → execution-attempt-repository-DXyh1hgz.mjs} +0 -0
  299. package/dist/{execution-target-CqaBmnvX.mjs → execution-target-B9jZgDQz.mjs} +0 -0
  300. package/dist/{extension-context-41A1ZUus.d.mts → extension-context-Cx8CetW3.d.mts} +0 -0
  301. package/dist/{extension-discovery-DNB1VVsV.d.mts → extension-discovery-C0Nj5EVZ.d.mts} +0 -0
  302. package/dist/{extension-package-provenance-CTYdo0yF.mjs → extension-package-provenance-BzvG6rDO.mjs} +0 -0
  303. package/dist/{filesystem-service-DOrm4Llq.d.mts → filesystem-service-C6D7oABi.d.mts} +0 -0
  304. package/dist/{handler-COkV00I9.mjs → handler-BYQPNm8O.mjs} +0 -0
  305. package/dist/{index-jW7MJ2_q.d.mts → index-B7g7e7_f.d.mts} +0 -0
  306. package/dist/{index-BKvzOrbF.d.mts → index-B9-1l1oh.d.mts} +0 -0
  307. package/dist/{index-ClJjlOox.d.mts → index-BGWkmG9i.d.mts} +0 -0
  308. package/dist/{index-BbAqoQmv.d.mts → index-BR7IiCib.d.mts} +0 -0
  309. package/dist/{index-BiXqOfhl.d.mts → index-B_VcKELo.d.mts} +0 -0
  310. package/dist/{index-BBq5I7SB2.d.mts → index-BbjxBrcp2.d.mts} +0 -0
  311. package/dist/{index-Bq4PHWe9.d.mts → index-BnLp-7qH.d.mts} +0 -0
  312. package/dist/{index-Bg5iXHk5.d.mts → index-BpWoCe22.d.mts} +0 -0
  313. package/dist/{index-BO8n7zAS.d.mts → index-Bpv8EpBa.d.mts} +0 -0
  314. package/dist/{index-Ce_l029J.d.mts → index-BrRCVo9r.d.mts} +0 -0
  315. package/dist/{index-z-YJG2cw.d.mts → index-CHuB40EK.d.mts} +0 -0
  316. package/dist/{index-CavvxFdG2.d.mts → index-CIV2G6uX2.d.mts} +0 -0
  317. package/dist/{index-CgVdz5IV.d.mts → index-CNOqYviR.d.mts} +0 -0
  318. package/dist/{index-Bk865qJX.d.mts → index-CSEhxhIc.d.mts} +0 -0
  319. package/dist/{index-oucWFlFP2.d.mts → index-CZuhTqsX2.d.mts} +0 -0
  320. package/dist/{index-CUHWylh4.d.mts → index-D3_QOfke.d.mts} +0 -0
  321. package/dist/{index-BB4EWIf3.d.mts → index-D6qlh6Td.d.mts} +0 -0
  322. package/dist/{index-BjaQsfAr.d.mts → index-DLlTuugR.d.mts} +0 -0
  323. package/dist/{index-VVJqONaI.d.mts → index-DOKPbF-y2.d.mts} +0 -0
  324. package/dist/{index-BJjdUzfw2.d.mts → index-DZv9yNKF2.d.mts} +0 -0
  325. package/dist/{index-Cb3NfGSV2.d.mts → index-DrwT45ci2.d.mts} +6 -6
  326. package/dist/{index-DR9-fFwc.d.mts → index-DxaQ-ceV.d.mts} +0 -0
  327. package/dist/{index-zvgQ8ErF.d.mts → index-HRn0Kun0.d.mts} +0 -0
  328. package/dist/{index-Ck5amD5_.d.mts → index-IkeLI7uY.d.mts} +0 -0
  329. package/dist/{index-Q29tcu5N.d.mts → index-_Ngf4KAa.d.mts} +0 -0
  330. package/dist/{index-BcTwLu9C2.d.mts → index-b_LJnwCU2.d.mts} +0 -0
  331. package/dist/{index-LwOw7ZLk2.d.mts → index-uv_WSQtw2.d.mts} +8 -8
  332. /package/dist/{json-value-C57MkQrB.d.mts → json-value-DyMQrwGz.d.mts} +0 -0
  333. /package/dist/{jsonl-transport-QQuABrN7.mjs → jsonl-transport-Dfv3RLzi.mjs} +0 -0
  334. /package/dist/{lib-Sx8gBJvV.mjs → lib-BdfAJKDj.mjs} +0 -0
  335. /package/dist/{model-registry-DNHDnyvs.mjs → model-registry-DlUErRRt.mjs} +0 -0
  336. /package/dist/{namespace-BGgY903U.mjs → namespace-B8kUQpwo.mjs} +0 -0
  337. /package/dist/{namespace-D1qK-Ed3.d.mts → namespace-BlH5BeSq.d.mts} +0 -0
  338. /package/dist/{namespace-BY5-nA4j.d.mts → namespace-BocL2nn7.d.mts} +0 -0
  339. /package/dist/{namespace-DInMixc8.d.mts → namespace-CQaL10rI.d.mts} +0 -0
  340. /package/dist/{namespace-DE3oGhaN.d.mts → namespace-CcHA54E1.d.mts} +0 -0
  341. /package/dist/{namespace-DHrItZyM.mjs → namespace-ChjzkJIl.mjs} +0 -0
  342. /package/dist/{namespace-DkAlBY9o.d.mts → namespace-Ct2DKREI.d.mts} +0 -0
  343. /package/dist/{namespace-DENdNdK0.d.mts → namespace-DdcRYk7b.d.mts} +0 -0
  344. /package/dist/{namespace-Ca4sQ8X-.d.mts → namespace-DtXYm32M.d.mts} +0 -0
  345. /package/dist/{namespace-WeSQXdAL.d.mts → namespace-DyeMWQKf.d.mts} +0 -0
  346. /package/dist/{namespace-Bn-ryJn5.d.mts → namespace-nE7vRctI.d.mts} +0 -0
  347. /package/dist/{namespace-DP0WWpTO.d.mts → namespace-sTMm1voF.d.mts} +0 -0
  348. /package/dist/{orchestrator-shared-2vuCvljs.d.mts → orchestrator-shared-CYnIz5Zd.d.mts} +0 -0
  349. /package/dist/{out-Rz-t3WeC.mjs → out-Cn6vBxlH.mjs} +0 -0
  350. /package/dist/{package-Tt2uoAFf.mjs → package-BUSXHPOT.mjs} +0 -0
  351. /package/dist/{package-buHQFmTH.mjs → package-BiZ6ehWk.mjs} +0 -0
  352. /package/dist/{package-DfjGt5oK.mjs → package-D4eLGGv4.mjs} +0 -0
  353. /package/dist/{packages-DAqep89i.d.mts → packages-DtsjAYuf.d.mts} +0 -0
  354. /package/dist/{providers-namespace-C56pGeTO.d.mts → providers-namespace-BxknJ03z.d.mts} +0 -0
  355. /package/dist/{quick-lru-uXa2PNb5.mjs → quick-lru-CVryNCTx.mjs} +0 -0
  356. /package/dist/{registry-CZf8VGBh.mjs → registry-Q9gCZtxz.mjs} +0 -0
  357. /package/dist/{schema-wArHaxA9.d.mts → schema-CJfSEZ8X.d.mts} +0 -0
  358. /package/dist/{schemas-BsZJHdvY.d.mts → schemas-0VbIjfrW.d.mts} +0 -0
  359. /package/dist/{schemas-DDCAGKRi.mjs → schemas-BFgsIiSb.mjs} +0 -0
  360. /package/dist/{schemas-DmE-a0kN.d.mts → schemas-BfMFZ6J5.d.mts} +0 -0
  361. /package/dist/{schemas-CITR9cWN.d.mts → schemas-CmUWeOkr.d.mts} +0 -0
  362. /package/dist/{schemas-BMGJLkdK2.d.mts → schemas-CsRcSlvA2.d.mts} +0 -0
  363. /package/dist/{schemas-gfrOgGau.d.mts → schemas-Djt6hIjz.d.mts} +0 -0
  364. /package/dist/{schemas-wPB7RnHB.d.mts → schemas-DzDVjYjt.d.mts} +0 -0
  365. /package/dist/{schemas-B0zhTfet.d.mts → schemas-KDl7p-wr.d.mts} +0 -0
  366. /package/dist/{schemas-BJKx29Sp.d.mts → schemas-Yp3PvwsM.d.mts} +0 -0
  367. /package/dist/{server-lifecycle-CREtXADx.d.mts → server-lifecycle-Ck6_8o8v.d.mts} +0 -0
  368. /package/dist/{server-lifecycle-AvBVeCFR.mjs → server-lifecycle-hNz8U-QJ.mjs} +0 -0
  369. /package/dist/{src-DnLncoLg.mjs → src-Du_285FN.mjs} +0 -0
  370. /package/dist/{storage-namespace-JBh9nkKw.d.mts → storage-namespace-CRdQoXZ9.d.mts} +0 -0
  371. /package/dist/{storage-namespace-CH4j0_Zs.mjs → storage-namespace-Dtz2G1if.mjs} +0 -0
  372. /package/dist/{storage-namespace-definition-C0mnpnC_.d.mts → storage-namespace-definition-NBw1Y8Pa.d.mts} +0 -0
  373. /package/dist/{supports-color-BBMFnbC4.mjs → supports-color-BNmyqLq0.mjs} +0 -0
  374. /package/dist/{tool-approval-service-7mzJVMo_.mjs → tool-approval-service-rpV94znP.mjs} +0 -0
  375. /package/dist/{tray-menu-service-thAhpcPA.mjs → tray-menu-service-TWrmvXSo.mjs} +0 -0
  376. /package/dist/{types-9ldZyQTb.d.mts → types-BFv-EK2G.d.mts} +0 -0
  377. /package/dist/{types-DJuxNrac.d.mts → types-BcGXdeva.d.mts} +0 -0
  378. /package/dist/{types-eCGV_g6P.d.mts → types-CUCFeisO.d.mts} +0 -0
  379. /package/dist/{types-xXv0lUeU.d.mts → types-CXrp5ldz.d.mts} +0 -0
  380. /package/dist/{types-BMkn9jOe.d.mts → types-D4N56a4O.d.mts} +0 -0
  381. /package/dist/{types-CjjNAiHa.mjs → types-D9GJ7FyQ.mjs} +0 -0
  382. /package/dist/{window-registry-CGaYVD7l.d.mts → window-registry-Chi2qJ5k.d.mts} +0 -0
@@ -1,11 +1,11 @@
1
- import{o as e,t}from"../chunk-DTipWd-i.mjs";import{n,u as r}from"../adapter-auth-runtime-DGY1CDxj.mjs";import{i,n as a,r as o,t as s}from"../cursor-storage-iJ6vBOWd.mjs";import{_ as c,a as l,c as u,d,f,g as p,h as ee,i as m,l as te,m as h,n as g,o as ne,p as re,r as ie,s as ae,t as oe,u as se,v as _}from"../ajv-DWgn_plp.mjs";import{z as v}from"zod";import*as ce from"node:fs";import{DeferredPromise as y,resolveTimeouts as le}from"@makaio/framework/utils";import{AuthenticationError as ue,DirectoryNotFoundError as de,ModelUnavailableError as fe,QuotaExceededError as pe,RateLimitError as me,createBusNamespace as he}from"@makaio/framework/core";import{MakaioBus as b,NoHandlerError as ge,RequestError as _e}from"@makaio/framework/bus";import{AdapterSubjects as x,AgentSubjects as S,AgentToolApproveSchema as ve,HarnessSubjects as ye,MCP_CALL_TOOL_NAME as be,McpSubjects as xe,ProviderContextSchema as C,RequestCorrelationContextSchema as Se,ResolvedProviderContextSchema as Ce,SessionContextSchema as w,SessionSubjects as T,aggregateTeardownEvidence as we,aggregateTeardownResults as Te}from"@makaio/framework/contracts";import{TurnStorageSubjects as Ee}from"@makaio/framework/services/turn";import{AuthCredentialRefSchema as De}from"@makaio/framework/contracts/auth";import{runPostUserMessageHooks as Oe,runPreUserMessageHooks as ke}from"@makaio/framework/hooks";import{ProviderContextActivationError as E,ProviderContextActivationRollbackError as D,prepareProviderContextActivation as Ae,resolveRuntimeProviderContext as je}from"@makaio/framework/services/provider-context";import Me from"node:os";import{AgentStorageSubjects as O,reserveStartFor as Ne}from"@makaio/framework/services/session";import*as Pe from"node:process";function Fe(e,t,n){let r=he(e,t,n),i=b.registerNamespace(r);return Object.assign(i,{definition:r})}function Ie(e){let t=[];try{return JSON.stringify(e,function(e,n){if(typeof n==`bigint`)return n.toString();if(typeof n==`object`&&n){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(n))return`[Circular]`;t.push(n)}return n},2)??`[Non-serializable value]`}catch{try{return String(e)}catch{return`[Non-serializable value]`}}}async function Le(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});try{return await Promise.race([e,i])}finally{r!==void 0&&clearTimeout(r)}}function k(e,t){for(let n of e)try{n()}catch(e){console.warn(`[AIAgent] ${t} cleanup failed:`,e)}}function Re(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`'`,`&apos;`)}function ze(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length===0?`context`:/^[A-Za-z_]/.test(t)?t:`context_${t}`}function Be(e,t){let n=ze(e);return`<${n}>\n${Re(t)}\n</${n}>`}function Ve(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.name==`string`&&typeof t.description==`string`&&(t.compatibility===void 0||typeof t.compatibility==`string`)}function He(e){if(typeof e!=`object`||!e)return!1;let t=e,n=t.metadata,r=n;return typeof t.name==`string`&&typeof t.content==`string`&&(t.license===void 0||typeof t.license==`string`)&&(t.compatibility===void 0||typeof t.compatibility==`string`)&&(t.allowedTools===void 0||typeof t.allowedTools==`string`)&&(n===void 0||typeof n==`object`&&!!n&&Object.values(r??{}).every(e=>typeof e==`string`))}function Ue(e){if(!Array.isArray(e))return;let t=e.filter(Ve).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>e.compatibility?`- ${e.name}: ${e.description} Compatibility: ${e.compatibility}`:`- ${e.name}: ${e.description}`);return t.length>0?t.join(`
2
- `):void 0}function We(e){if(!Array.isArray(e))return;let t=e.filter(He).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>{let t=[`## ${e.name}`];return e.compatibility&&t.push(`Compatibility: ${e.compatibility}`),t.push(e.content),t.join(`
1
+ import{o as e,t}from"../chunk-DTipWd-i.mjs";import{d as n,h as r,m as i,n as a,p as o,r as s,t as c,v as l}from"../ajv-Dtk5hCZS.mjs";import{i as u,n as d,r as f,t as p}from"../2020-Bl3Yx3In.mjs";import{n as m,u as h}from"../adapter-auth-runtime-BnPqQChk.mjs";import{i as ee,n as g,r as _,t as v}from"../cursor-storage-Co4itf44.mjs";import{z as y}from"zod";import*as te from"node:fs";import{DeferredPromise as b,resolveTimeouts as ne}from"@makaio/framework/utils";import{AuthenticationError as re,DirectoryNotFoundError as ie,ModelUnavailableError as ae,QuotaExceededError as oe,RateLimitError as se,createBusNamespace as ce}from"@makaio/framework/core";import{MakaioBus as x,NoHandlerError as le,RequestError as ue}from"@makaio/framework/bus";import{AdapterSubjects as S,AgentSubjects as C,AgentToolApproveSchema as de,HarnessSubjects as fe,MCP_CALL_TOOL_NAME as pe,McpSubjects as me,ProviderContextSchema as w,RequestCorrelationContextSchema as he,ResolvedProviderContextSchema as ge,SessionContextSchema as T,SessionSubjects as E,aggregateTeardownEvidence as _e,aggregateTeardownResults as ve}from"@makaio/framework/contracts";import{TurnStorageSubjects as ye}from"@makaio/framework/services/turn";import{AuthCredentialRefSchema as be}from"@makaio/framework/contracts/auth";import{runPostUserMessageHooks as xe,runPreUserMessageHooks as Se}from"@makaio/framework/hooks";import{ProviderContextActivationError as D,ProviderContextActivationRollbackError as O,prepareProviderContextActivation as Ce,resolveRuntimeProviderContext as we}from"@makaio/framework/services/provider-context";import Te from"node:os";import{AgentStorageSubjects as k,reserveStartFor as Ee}from"@makaio/framework/services/session";import*as De from"node:process";function Oe(e,t,n){let r=ce(e,t,n),i=x.registerNamespace(r);return Object.assign(i,{definition:r})}function ke(e){let t=[];try{return JSON.stringify(e,function(e,n){if(typeof n==`bigint`)return n.toString();if(typeof n==`object`&&n){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(n))return`[Circular]`;t.push(n)}return n},2)??`[Non-serializable value]`}catch{try{return String(e)}catch{return`[Non-serializable value]`}}}async function Ae(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});try{return await Promise.race([e,i])}finally{r!==void 0&&clearTimeout(r)}}function A(e,t){for(let n of e)try{n()}catch(e){console.warn(`[AIAgent] ${t} cleanup failed:`,e)}}function je(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`'`,`&apos;`)}function Me(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length===0?`context`:/^[A-Za-z_]/.test(t)?t:`context_${t}`}function Ne(e,t){let n=Me(e);return`<${n}>\n${je(t)}\n</${n}>`}function Pe(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.name==`string`&&typeof t.description==`string`&&(t.compatibility===void 0||typeof t.compatibility==`string`)}function Fe(e){if(typeof e!=`object`||!e)return!1;let t=e,n=t.metadata,r=n;return typeof t.name==`string`&&typeof t.content==`string`&&(t.license===void 0||typeof t.license==`string`)&&(t.compatibility===void 0||typeof t.compatibility==`string`)&&(t.allowedTools===void 0||typeof t.allowedTools==`string`)&&(n===void 0||typeof n==`object`&&!!n&&Object.values(r??{}).every(e=>typeof e==`string`))}function Ie(e){if(!Array.isArray(e))return;let t=e.filter(Pe).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>e.compatibility?`- ${e.name}: ${e.description} Compatibility: ${e.compatibility}`:`- ${e.name}: ${e.description}`);return t.length>0?t.join(`
2
+ `):void 0}function Le(e){if(!Array.isArray(e))return;let t=e.filter(Fe).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>{let t=[`## ${e.name}`];return e.compatibility&&t.push(`Compatibility: ${e.compatibility}`),t.push(e.content),t.join(`
3
3
  `)});return t.length>0?t.join(`
4
4
 
5
- `):void 0}function Ge(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.name==`string`&&typeof t.priority==`number`&&typeof t.renderedContent==`string`}function Ke(e){if(!Array.isArray(e))return;let t=e.filter(Ge).map(e=>`## ${e.name}\n${e.renderedContent}`);return t.length>0?t.join(`
5
+ `):void 0}function Re(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.name==`string`&&typeof t.priority==`number`&&typeof t.renderedContent==`string`}function ze(e){if(!Array.isArray(e))return;let t=e.filter(Re).map(e=>`## ${e.name}\n${e.renderedContent}`);return t.length>0?t.join(`
6
6
 
7
- `):void 0}const qe=[`skillCatalog`,`skills`,`contextRules`];function Je(e){if(!e)return[];let t=[],n={skillCatalog:Ue,skills:We,contextRules:Ke};for(let r of qe)Ye(t,r,e[r],n[r]);let r=new Set(qe),i=Object.keys(e).filter(t=>e[t]==null?!1:!r.has(t)).sort();for(let n of i)t.push({tag:n,content:Ie(e[n])});return t}function Ye(e,t,n,r){if(n==null)return;let i=r(n);if(i!==void 0){e.push({tag:t,content:i});return}Array.isArray(n)&&n.length===0||e.push({tag:t,content:Ie(n)})}function Xe(e){return e.length===0?``:e.map(e=>Be(e.tag,e.content)).join(`
7
+ `):void 0}const Be=[`skillCatalog`,`skills`,`contextRules`];function Ve(e){if(!e)return[];let t=[],n={skillCatalog:Ie,skills:Le,contextRules:ze};for(let r of Be)He(t,r,e[r],n[r]);let r=new Set(Be),i=Object.keys(e).filter(t=>e[t]==null?!1:!r.has(t)).sort();for(let n of i)t.push({tag:n,content:ke(e[n])});return t}function He(e,t,n,r){if(n==null)return;let i=r(n);if(i!==void 0){e.push({tag:t,content:i});return}Array.isArray(n)&&n.length===0||e.push({tag:t,content:ke(n)})}function Ue(e){return e.length===0?``:e.map(e=>Ne(e.tag,e.content)).join(`
8
8
 
9
- `)}function Ze(e){let t=new Set(e),n={hasAll:e=>e.every(e=>t.has(e)),hasAny:e=>e.some(e=>t.has(e))};for(let t of e){let e=t.split(`:`).map((e,t)=>t===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join(``);n[e]=!0}return n}function A(e){if(typeof e==`string`)return{role:`user`,blocks:[{type:`text`,content:e}],message:e};let t=Array.isArray(e.blocks)?e.blocks:[e.blocks],n=t.find(e=>e.type===`text`);return{role:e.role??`user`,blocks:t,message:n?.content}}function Qe(e,t){return{discriminator:e,handlers:t}}function $e(e,t){return{discriminator:e,handlers:t}}async function et(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];i&&await i(e,n)}}function tt(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];if(i&&i(e,n)instanceof Promise)throw Error(`processDiscriminatedItemsSync: Handler for '${r}' returned a Promise. Use processDiscriminatedItems (async) instead, or ensure all handlers are synchronous.`)}}function j(e){return e?.trim()||void 0}function nt(e){if(!e)return{state:`unresolved`};let t=(e.authMethods??[]).find(({mode:e})=>e===`explicit`||e===`none`);if(!t)return{state:`unresolved`};let n={state:`resolved`,providerConfigId:`test-provider-config-id`,definitionId:e.id,...e.endpoints?{endpointOverrides:{...e.endpoints}}:{},...e.capabilities?{capabilities:structuredClone(e.capabilities)}:{}};if(t.mode===`none`)return{...n,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:e.id,methodId:t.id},definition:{...t}}};let r=t.fields.flatMap(e=>{let n=e.sourceHints.find(({kind:e})=>e===`environment`);if(!n&&e.required)throw Error(`Conformance auth method "${t.id}" field "${e.id}" has no environment source hint.`);return n?[[e.id,De.parse(`env:${n.variable}`)]]:[]}),i=Object.fromEntries(r);return{...n,auth:{mode:`explicit`,method:{owner:`provider`,providerDefinitionId:e.id,methodId:t.id},definition:structuredClone(t),credentialRefs:i}}}function rt(e,t,n,r=[]){let i=e?.providerContext===void 0?nt(n):C.parse(e.providerContext),a=i.state===`resolved`?r.find(({definitionId:e})=>e===i.definitionId):void 0,o=r.flatMap(e=>e!==a&&e.auth!==void 0?[e.auth]:[]),{providerContext:s,...c}=e??{};return{...c,bus:t,agentId:crypto.randomUUID(),adapterId:crypto.randomUUID(),adapterName:e?.adapterName??`test-adapter`,providerContext:i,...a?.protocol!==void 0&&{providerProtocol:a.protocol},...a?.auth!==void 0&&{adapterProviderAuth:a.auth},compatibleProviderAuths:o}}const it=`MAKAIO_CONFORMANCE_PROVIDER`,at=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,ot=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,M=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function st(e){let t=[],n=new Set;for(let r of e)n.has(r.id)||(n.add(r.id),t.push(r));return t}function ct(e){let t=j(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${M} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${M} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${M}[${e}] must be a provider object with an id`);return n}function lt(e,t,n,r){let i=new Map;for(let e of[...r,...n])i.set(e.id,e);let a=t.map(e=>i.get(e)).filter(e=>!!e),o=t.filter(e=>!i.has(e));if(o.length>0)throw Error(`[${e}] Conformance provider catalog is missing provider definitions: ${o.join(`, `)}. Run through yarn test:conformance so provider contributions are loaded.`);return st(a)}function ut(e,t,n,r,i){if(r)return r;let a=n===`primary`?`fastModel/defaultModel`:`defaultModel`;throw Error(`[${e}] Provider '${t.id}' cannot be used for conformance tests: missing ${a}. Set ${i} or add a model to the provider definition.`)}function dt(e){let t=e.readEnv??(e=>process.env[e]),n=e.providerEnvVar??`MAKAIO_CONFORMANCE_PROVIDER`,r=e.primaryModelEnvVar??`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,i=e.secondaryModelEnvVar??`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,a=ct(t(M)),o=lt(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=j(t(n)),c=s??e.testProviderDefinitionId,l=o.find(e=>e.id===c);if(!l){let t=o.map(e=>e.id).join(`, `);throw Error(`[${e.adapterName}] Unknown conformance provider '${c}' from ${s?n:`testProviderDefinitionId`}. Available providers: ${t}`)}let u=ut(e.adapterName,l,`primary`,j(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=ut(e.adapterName,l,`secondary`,j(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:nt(l),primaryModel:{definitionId:l.id,modelName:u,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0},secondaryModel:{definitionId:l.id,modelName:d,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0}}}function ft(e){let{adapterName:t,providers:n,adapterProviders:r}=e;return n.map(e=>{let n=r.find(t=>t.definitionId===e.id);if(!n){let n=r.map(e=>e.definitionId).join(`, `);throw Error(`[${t}] Conformance provider '${e.id}' is not declared by the adapter. Declared providers: ${n||`none`}.`)}return{definition:e,...n.protocol!==void 0&&{protocol:n.protocol},...n.auth!==void 0&&{auth:n.auth}}})}async function pt(e,t,n,r){let i=n===void 0?await e.requestOptional(ye.getDefault,{adapterName:t,clientId:r}):await e.requestOptional(ye.get,{id:n});return i.handled?i.data.nativeTools.disabled:[]}function mt(e){switch(e.type){case`text`:return e.content;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName??e.fileName}]`;case`reasoning`:return`[Reasoning]\n${e.content}`;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args,null,2)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`}]\n${e.output}`}}function ht(e){return e.map(e=>{let t=e.role??`user`;return`${t.charAt(0).toUpperCase()+t.slice(1)}: ${(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(mt).join(`
9
+ `)}function We(e){let t=new Set(e),n={hasAll:e=>e.every(e=>t.has(e)),hasAny:e=>e.some(e=>t.has(e))};for(let t of e){let e=t.split(`:`).map((e,t)=>t===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join(``);n[e]=!0}return n}function j(e){if(typeof e==`string`)return{role:`user`,blocks:[{type:`text`,content:e}],message:e};let t=Array.isArray(e.blocks)?e.blocks:[e.blocks],n=t.find(e=>e.type===`text`);return{role:e.role??`user`,blocks:t,message:n?.content}}function Ge(e,t){return{discriminator:e,handlers:t}}function Ke(e,t){return{discriminator:e,handlers:t}}async function qe(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];i&&await i(e,n)}}function Je(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];if(i&&i(e,n)instanceof Promise)throw Error(`processDiscriminatedItemsSync: Handler for '${r}' returned a Promise. Use processDiscriminatedItems (async) instead, or ensure all handlers are synchronous.`)}}function M(e){return e?.trim()||void 0}function Ye(e){if(!e)return{state:`unresolved`};let t=(e.authMethods??[]).find(({mode:e})=>e===`explicit`||e===`none`);if(!t)return{state:`unresolved`};let n={state:`resolved`,providerConfigId:`test-provider-config-id`,definitionId:e.id,...e.endpoints?{endpointOverrides:{...e.endpoints}}:{},...e.capabilities?{capabilities:structuredClone(e.capabilities)}:{}};if(t.mode===`none`)return{...n,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:e.id,methodId:t.id},definition:{...t}}};let r=t.fields.flatMap(e=>{let n=e.sourceHints.find(({kind:e})=>e===`environment`);if(!n&&e.required)throw Error(`Conformance auth method "${t.id}" field "${e.id}" has no environment source hint.`);return n?[[e.id,be.parse(`env:${n.variable}`)]]:[]}),i=Object.fromEntries(r);return{...n,auth:{mode:`explicit`,method:{owner:`provider`,providerDefinitionId:e.id,methodId:t.id},definition:structuredClone(t),credentialRefs:i}}}function Xe(e,t,n,r=[]){let i=e?.providerContext===void 0?Ye(n):w.parse(e.providerContext),a=i.state===`resolved`?r.find(({definitionId:e})=>e===i.definitionId):void 0,o=r.flatMap(e=>e!==a&&e.auth!==void 0?[e.auth]:[]),{providerContext:s,...c}=e??{};return{...c,bus:t,agentId:crypto.randomUUID(),adapterId:crypto.randomUUID(),adapterName:e?.adapterName??`test-adapter`,providerContext:i,...a?.protocol!==void 0&&{providerProtocol:a.protocol},...a?.auth!==void 0&&{adapterProviderAuth:a.auth},compatibleProviderAuths:o}}const Ze=`MAKAIO_CONFORMANCE_PROVIDER`,Qe=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,$e=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,N=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function et(e){let t=[],n=new Set;for(let r of e)n.has(r.id)||(n.add(r.id),t.push(r));return t}function tt(e){let t=M(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${N} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${N} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${N}[${e}] must be a provider object with an id`);return n}function nt(e,t,n,r){let i=new Map;for(let e of[...r,...n])i.set(e.id,e);let a=t.map(e=>i.get(e)).filter(e=>!!e),o=t.filter(e=>!i.has(e));if(o.length>0)throw Error(`[${e}] Conformance provider catalog is missing provider definitions: ${o.join(`, `)}. Run through yarn test:conformance so provider contributions are loaded.`);return et(a)}function rt(e,t,n,r,i){if(r)return r;let a=n===`primary`?`fastModel/defaultModel`:`defaultModel`;throw Error(`[${e}] Provider '${t.id}' cannot be used for conformance tests: missing ${a}. Set ${i} or add a model to the provider definition.`)}function it(e){let t=e.readEnv??(e=>process.env[e]),n=e.providerEnvVar??`MAKAIO_CONFORMANCE_PROVIDER`,r=e.primaryModelEnvVar??`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,i=e.secondaryModelEnvVar??`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,a=tt(t(N)),o=nt(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=M(t(n)),c=s??e.testProviderDefinitionId,l=o.find(e=>e.id===c);if(!l){let t=o.map(e=>e.id).join(`, `);throw Error(`[${e.adapterName}] Unknown conformance provider '${c}' from ${s?n:`testProviderDefinitionId`}. Available providers: ${t}`)}let u=rt(e.adapterName,l,`primary`,M(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=rt(e.adapterName,l,`secondary`,M(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:Ye(l),primaryModel:{definitionId:l.id,modelName:u,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0},secondaryModel:{definitionId:l.id,modelName:d,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0}}}function at(e){let{adapterName:t,providers:n,adapterProviders:r}=e;return n.map(e=>{let n=r.find(t=>t.definitionId===e.id);if(!n){let n=r.map(e=>e.definitionId).join(`, `);throw Error(`[${t}] Conformance provider '${e.id}' is not declared by the adapter. Declared providers: ${n||`none`}.`)}return{definition:e,...n.protocol!==void 0&&{protocol:n.protocol},...n.auth!==void 0&&{auth:n.auth}}})}async function ot(e,t,n,r){let i=n===void 0?await e.requestOptional(fe.getDefault,{adapterName:t,clientId:r}):await e.requestOptional(fe.get,{id:n});return i.handled?i.data.nativeTools.disabled:[]}function st(e){switch(e.type){case`text`:return e.content;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName??e.fileName}]`;case`reasoning`:return`[Reasoning]\n${e.content}`;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args,null,2)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`}]\n${e.output}`}}function ct(e){return e.map(e=>{let t=e.role??`user`;return`${t.charAt(0).toUpperCase()+t.slice(1)}: ${(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(st).join(`
10
10
  `)}`}).join(`
11
- `)}function gt(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function _t(e){switch(e.type){case`text`:return e.content;case`reasoning`:return e.content;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`} ${e.toolCallId}]\n${e.output}`;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName?.trim()?e.displayName:e.fileName||`Attachment`}]`;default:return gt(e)}}function N(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function vt(e,t,n,r=!1){return N(e,t,`sessionId`,n,r)}function yt(e,t,n,r={}){let i=r.allowPayloadIdentityFallback??!1;if(i){let e=[t.agentId,t.adapterId,t.adapterName,t.adapterSessionId],r=e.filter(Boolean).length;if(r>0&&r<e.length)throw Error(`[${n}] toGlobalToolApproval: context must supply all four identity fields (agentId, adapterId, adapterName, adapterSessionId) or none — partial context with allowPayloadIdentityFallback creates a mixed-source identity tuple`)}let a=vt(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:N(t.agentId,e.agentId,`agentId`,n,i),adapterId:N(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:N(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:N(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const bt={request:ve.request.extend({sessionId:v.string().optional()}),response:ve.response};function xt(e,t,n){return function(r,i,a){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,o=t(e.payload,r),s=await a.request(S.toolApprove,o);e.setResult(n(s))}catch(t){console.error(`[createToolApprovalHandler] Tool approval request failed:`,t);let r=t instanceof Error?`: ${t.message}`:``;e.setResult(n({action:`deny`,message:`Tool approval request failed${r}`,shouldAbort:!0}))}})}}function St(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function Ct(e){let t=St(e);return t.startsWith(`text/`)?!0:[`application/json`,`application/xml`,`application/sql`,`application/graphql`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/toml`].includes(t)}function P(){return{state:`unresolved`}}function F(e,t){return{evidence:`unknown`,detail:e,...t!==void 0&&{closeError:t}}}function I(e){let t=e.find(e=>e.closeError!==void 0)?.closeError;return{...Te(e),...t!==void 0&&{closeError:t}}}async function L(e){let t=await e;if(t.closeError!==void 0)throw t.closeError}const R=2e3,z=1e4;async function B(e,t=R){let n,r=new Promise(e=>{n=setTimeout(()=>e(!1),t)});try{return await Promise.race([e.then(()=>!0,()=>!1),r])}finally{n!==void 0&&clearTimeout(n)}}async function wt(e){return await B(e.exited)?{evidence:`exited`}:{evidence:`detached`,detail:`${e.resource} was signalled but its end was not observed within ${R}ms.`}}function Tt(){return{evidence:`detached`,detail:`An earlier teardown closed this connector; this call made no observation of its own.`}}function V(e){return e instanceof Error?e.message:String(e)}function Et(e,t){return`${e} failed (${V(t)})`}async function Dt(e,t){try{await t();return}catch(t){return Et(e,t)}}function Ot(e,t){if(t.length!==0)return F(`${e} left ${t.length===1?`a stage`:`stages`} unaccounted for: ${t.join(`; `)}.`)}function kt(e,t,n){return{evidence:we([e.evidence,t]),detail:e.detail===void 0?n:`${e.detail}; ${n}`}}async function H(e){let t=await(e.prepareAuthRuntime??n)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent},...e.onAdapterSessionMoved!==void 0&&{onAdapterSessionMoved:e.onAdapterSessionMoved}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await jt(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function U(e){let t;try{t={reported:await e.connector.close()}}catch(e){t={failed:e}}let n;try{await e.lease?.release()}catch(e){n=e}return`failed`in t?n===void 0?F(`Connector close failed: ${V(t.failed)}`,t.failed):F(`Connector close and client config lease release both failed.`,AggregateError([t.failed,n],`Connector close and client config lease release both failed.`,{cause:t.failed})):n===void 0?t.reported:F(`Client config lease release failed: ${V(n)}`,n)}async function At(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}let n=await U(e.runtime);throw n.closeError!==void 0&&t.push(n.closeError),t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function jt(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var Mt=class{runtimes=new Set;async create(e){let t=await H(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=U({connector:{close:n},...t.lease!==void 0&&{lease:t.lease}}).finally(()=>{this.runtimes.delete(i)}),r)};return Object.defineProperty(t.connector,`close`,{configurable:!0,value:i.close,writable:!0}),this.runtimes.add(i),t.connector}async closeAll(){let e=(await Promise.all([...this.runtimes].map(({close:e})=>e()))).map(e=>e.closeError).filter(e=>e!==void 0);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function Nt(e=`test-provider-config`,t=`test-provider`){return{state:`resolved`,providerConfigId:e,definitionId:t,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:t,methodId:`none`},definition:{id:`none`,mode:`none`,label:`No authentication`}}}}var Pt=class{abortController;terminated=!1;constructor(e){this.abortController=e??new AbortController}get signal(){return this.abortController.signal}get isTerminated(){return this.terminated}abort(e){this.terminated||(this.terminated=!0,this.abortController.abort(),e&&Promise.resolve(e()).catch(e=>{console.error(`Error during session cleanup:`,e)}))}onAbort(e){this.abortController.signal.addEventListener(`abort`,e)}},Ft=class{queue=[];enqueue(e){if(e.deliveryMode===`replace`){for(let t of this.queue)t.state===`queued`&&(t.supersededBy=e.messageId,t.markCompleted({outcome:`superseded`,supersededBy:e.messageId}));this.removeSuperseded()}if(e.internalRetry&&e.deliveryMode===`enqueue`){this.enqueueInternalRetry(e);return}this.queue.push(e)}enqueueInternalRetry(e){let t=this.queue.findIndex(e=>e.deliveryMode!==`immediate`&&!e.internalRetry);if(t===-1){this.queue.push(e);return}this.queue.splice(t,0,e)}removeSuperseded(){for(let e=this.queue.length-1;e>=0;e--)this.queue[e].supersededBy&&this.queue.splice(e,1)}dequeue(){return this.queue.shift()}peek(){return this.queue[0]}isEmpty(){return this.queue.length===0}size(){return this.queue.length}clear(){this.queue.length=0}findImmediate(){return this.queue.find(e=>e.deliveryMode===`immediate`)}removeImmediate(e){let t=this.queue.indexOf(e);t>=0&&this.queue.splice(t,1)}drainEnqueued(){let e=[];for(let t=this.queue.length-1;t>=0;t--)this.queue[t].deliveryMode===`enqueue`&&e.unshift(this.queue.splice(t,1)[0]);return e}};const W=`Session closed before queued message could be processed`;async function It(e,t){let n=t.getCurrentTurn(),r=t.extractContent??Rt;if(n?.canAcceptImmediate()){let i=e.findImmediate();if(i)if(e.removeImmediate(i),(await n.pause()).turnEnded)i.markCompleted({outcome:`rejected`});else{let a=n.getMessageHandle(),o=e.drainEnqueued(),s=[];a&&!a.isProcessed&&(s.push(r(a)),a.supersededBy=i.messageId,a.markCompleted({outcome:`superseded`,supersededBy:i.messageId}));for(let e of o)s.push(r(e)),e.supersededBy=i.messageId,e.markCompleted({outcome:`merged`,mergedInto:i.messageId});let c=t.collectMergeExtra?.(a,o);return await t.onBeforeImmediateTurn?.(),await t.startNewTurn(i,s,c)!==!1}}let i=e.peek();return(!n||n.isCompleted()||i?.internalRetry===!0&&n.getMessageHandle().isProcessed)&&i?i.deliveryMode===`immediate`&&n?.isCompleted()?(e.dequeue(),i.markCompleted({outcome:`rejected`}),It(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function Lt(e,t=W){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function Rt(e){return e.message.message}const zt=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Bt(e,t){if(e===t)return null;let n=[];switch(t){case`processing_started`:break;case`turn_started`:([`idle`,`processing_finished`,`paused`].includes(e)||e===`active`)&&n.push(`processing_started`);break;case`step_started`:[`idle`,`processing_finished`,`paused`].includes(e)||e===`active`?n.push(`processing_started`,`turn_started`):[`processing_started`,`turn_finished`].includes(e)&&n.push(`turn_started`);break;case`step_finished`:break;case`turn_finished`:e===`step_started`&&n.push(`step_finished`);break;case`processing_finished`:e===`step_started`?n.push(`step_finished`,`turn_finished`):[`turn_started`,`step_finished`].includes(e)&&n.push(`turn_finished`);break}return{isCompletionState:zt.includes(t),statesToEmit:[...n,t]}}var Vt=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;useNativeResume;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new y;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l,u){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.useNativeResume=u,this.deferredCompletion=new y,this.deferredAcknowledgement=new y,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get wasDelivered(){return this.isAcknowledged===!0}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function Ht(e,t,n){let r=n!==void 0&&!e.isProcessed;return e.markCompleted(t),r?e.waitForCompletion().then(async t=>{try{await n(e,t)}catch(t){console.warn(`[MessageHandle] completion notification failed for messageId: ${e.messageId}`,t)}}):Promise.resolve()}var Ut=class{committed=0;staged;stage(e){if(!Number.isInteger(e)||e<1)throw RangeError(`canonical turn number: expected positive integer, got ${e}`);if(e<=this.committed)throw RangeError(`canonical turn number: ${e} ≤ committed (${this.committed})`);if(this.staged!==void 0&&e<this.staged)throw RangeError(`canonical turn number: ${e} < staged (${this.staged})`);this.staged=e}consume(){return this.staged===void 0?this.committed+=1:(this.committed=this.staged,this.staged=void 0),this.committed}get current(){return this.committed}get pending(){return this.staged}},Wt=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new i;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;turnNumbers=new Ut;adapterName;systemPrompt;constructor(e){let t=e.cwd??Me.tmpdir();if(!ce.existsSync(t))throw new de(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??b,this.filteredBus=e.bus.withFilter({agentId:this.agentId}),this.adapterId=e.adapterId,this.adapterName=e.adapterName,this.adapterSessionId=e.adapterSessionId,this.sessionId=e.sessionId,this.timeouts=e.timeouts??le([]),this.errorHandler=e.errorHandler,this.model=e.model,this.providerConfigId=e.providerConfigId,this.cwd=t,this.currentReasoningEffort=e.reasoningEffort,this.supportedReasoningLevels=e.supportedReasoningLevels,this.config=e,this.env=r(e?.env??Pe.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Bt(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}movesProviderSessionOnSuppressedResume(){return!1}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new Vt(n,e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy,t?.requestCorrelation===void 0?void 0:{...t.requestCorrelation,messageId:n},t?.turnId,t?.useNativeResume);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){this.turnNumbers.stage(e)}consumeTurnNumber(){return this.turnNumbers.consume()}get currentTurnNumber(){return this.turnNumbers.current}get pendingTurnNumber(){return this.turnNumbers.pending}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof _e||e instanceof ge)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},Gt=class{resource;supersededCount=0;unproven=new Set;constructor(e){this.resource=e}supersede(e){this.supersededCount+=1;let t={generation:this.supersededCount,exited:e};return this.unproven.add(t.generation),t}async retire(e){return e.exited===void 0||!await B(e.exited)?!1:(this.unproven.delete(e.generation),!0)}abandon(e){this.unproven.add(e.generation),e.exited?.then(()=>this.unproven.delete(e.generation),()=>void 0)}capReport(e){let t=this.unretiredDetail();return t===void 0?e:kt(e,`detached`,t)}unretiredDetail(){if(this.unproven.size===0)return;let e=[...this.unproven].join(`, `);return`${this.resource} generation ${e} was superseded without its end being observed and may still be running.`}},Kt=class{config;bus;sessionId;currentTurn;closing=!1;constructor(e){this.config=e,this.bus=e.bus}completeHandleIfClosing(e){return this.closing?(e.isProcessed||e.markCompleted({outcome:`error`,error:Error(W)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},qt=class{state;bus;adapterId;adapterName;stateChangedCallback;constructor(e,t,n,r){this.bus=e,this.adapterId=t,this.adapterName=n,this.state=r}onStateChanged(e){this.stateChangedCallback=e}async transitionTo(e){let t=this.state;this.state=e,await this.emitStateChange(t,e),await this.stateChangedCallback?.(t,e)}getState(){return this.state}getMessageHandle(){return this.activeMessageHandle}markAcknowledged(){this.activeMessageHandle.markAcknowledged()}markCompleted(e){this.activeMessageHandle.markCompleted(e)}},Jt=class extends qt{activeMessageHandle;connectorBus;agentId;turnSubjects;aborted=!1;constructor(e,t){super(e.bus,e.adapterId,e.adapterName,t),this.connectorBus=e.bus,this.agentId=e.agentId,this.activeMessageHandle=e.messageHandle,this.turnSubjects=e.turnSubjects}async emitStateChange(e,t){let n={adapterId:this.adapterId,agentId:this.agentId,oldState:e,newState:t,timestamp:Date.now()};switch(await this.connectorBus.emit(this.turnSubjects.state_changed,n),t){case`turn_started`:await this.connectorBus.emit(this.turnSubjects.turn_started,n);break;case`step_started`:await this.connectorBus.emit(this.turnSubjects.step_started,n);break;case`step_finished`:await this.connectorBus.emit(this.turnSubjects.step_finished,n);break;case`turn_finished`:await this.connectorBus.emit(this.turnSubjects.turn_finished,n);break}}async start(){await this.transitionTo(`turn_started`)}async markStepStarted(){(this.state===`turn_started`||this.state===`step_finished`)&&await this.transitionTo(`step_started`)}async markStepFinished(){this.state===`step_started`&&await this.transitionTo(`step_finished`)}async markTurnFinished(){await this.transitionTo(`turn_finished`)}async pause(){if(this.state===`turn_finished`)return{stateBeforePause:this.state,turnEnded:!0};let e=this.state;return this.aborted=!0,{stateBeforePause:e,turnEnded:!1}}async resume(e){throw Error(`${this.adapterName} does not support resume - create new turn with merged content`)}isPaused(){return this.aborted}isCompleted(){return this.state===`turn_finished`}canAcceptImmediate(){return this.state!==`turn_finished`&&!this.aborted}},Yt=class extends Wt{turnEventsWired=!1;turnEventLifecycleClosed=!1;turnEventCleanups=[];activeTurnEventHandlers=new Set;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventLifecycleClosed||this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig(),n=(e,t)=>{this.turnEventCleanups.push(this.on(e,(()=>this.dispatchTurnEvent(t))))};n(e.turn_started,async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}this.turnEventLifecycleClosed||await this.updateProcessingState(`turn_started`)}),n(e.step_started,async()=>{await this.updateProcessingState(`step_started`)}),n(e.step_finished,async()=>{if(await this.updateProcessingState(`step_finished`),this.turnEventLifecycleClosed)return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)}),n(e.turn_finished,async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{if(this.turnEventLifecycleClosed||(await this.updateProcessingState(`processing_finished`),this.turnEventLifecycleClosed))return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()})}async dispatchTurnEvent(e){if(this.turnEventLifecycleClosed)return;let t=e();this.activeTurnEventHandlers.add(t);try{await t}finally{this.activeTurnEventHandlers.delete(t)}}unwireSessionEvents(){for(let e of this.turnEventCleanups)e();this.turnEventCleanups=[],this.turnEventsWired=!1}async closeTurnEventLifecycle(){this.turnEventLifecycleClosed=!0,this.unwireSessionEvents(),await Promise.allSettled(this.activeTurnEventHandlers)}get isTurnEventLifecycleClosed(){return this.turnEventLifecycleClosed}async processUserMessages(e){let[t]=e,n;try{n=await this.ensureSession()}catch(e){let n=e instanceof Error?e:Error(String(e));throw t.isProcessed||t.markCompleted({outcome:`error`,error:n}),n}if(this.turnEventLifecycleClosed)throw t.markCompleted({outcome:`error`,error:Error(W)}),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);let r=this.getSessionQueue();if(r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),this.turnEventLifecycleClosed)throw Lt(r),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);return await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function Xt(e,t,n,r,i,a,o){let s=t=>async(n,r)=>{let i=t,a={...r,agentId:i.agentId,adapterId:i.adapterId,adapterName:i.adapterName,adapterSessionId:i.adapterSessionId,messageId:i.messageId};await e.emit(n,a)};return t.on(n,(async t=>{let n=r?t.payload[r]:t.payload;if(!n||typeof n!=`object`)return;let c=a[n[i]];if(!c)return;let l=await o(n),u=s(l);if(typeof c==`function`)await c(l,u);else{let{sessionId:t,...n}=l;await e.emit(c,n)}}))}var Zt=class{currentMessageHandle;pendingTrackedHandles=[];currentTurnId;handleTurnIds=new WeakMap;emitGlobal;constructor(e){this.emitGlobal=e.emitGlobal}getCurrentMessageId(){return this.currentMessageHandle?.messageId}getCurrentMessageHandle(){return this.currentMessageHandle}setCurrentTurnId(e){this.currentTurnId=e}clearCurrentTurnId(){this.currentTurnId=void 0}getCurrentTurnId(){return this.currentMessageHandle!==void 0&&this.handleTurnIds.has(this.currentMessageHandle)?this.handleTurnIds.get(this.currentMessageHandle):this.currentTurnId}acknowledge(e,t){let{messageId:n,message:r,mergedFrom:i}=e;this.currentMessageHandle=e,this.removePendingHandle(e),e.wasDelivered||e.markAcknowledged(!0),this.emitGlobal(S.user_message.acknowledged,{messageId:n,mergedFrom:i,...t!==void 0&&{turnId:t}}),this.emitGlobal(S.turn.started,{messageId:n,content:r,mergedFrom:i,...t!==void 0&&{turnId:t}})}complete(e,t,n){let{messageId:r}=e;this.currentMessageHandle===e?this.currentMessageHandle=this.pendingTrackedHandles.shift():this.removePendingHandle(e),this.currentTurnId===n&&(this.currentTurnId=void 0),e.wasDelivered&&this.emitGlobal(S.turn.completed,{messageId:r,message:t.result?.message,outcome:t.outcome,error:t.error instanceof Error?t.error.message:typeof t.error==`string`?t.error:void 0,...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation},...n!==void 0&&{turnId:n}}),this.emitGlobal(S.user_message.completed,{messageId:r,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto,...n!==void 0&&{turnId:n}})}removePendingHandle(e){let t=this.pendingTrackedHandles.indexOf(e);t>=0&&this.pendingTrackedHandles.splice(t,1)}track(e,t,n,r){let i=r?r.turnId:this.currentTurnId;this.handleTurnIds.set(e,i),e.isProcessed||(this.currentMessageHandle===void 0?this.currentMessageHandle=e:this.pendingTrackedHandles.push(e),n!==void 0&&e.addCompletionTransform(async e=>{try{return await n(e)}catch(t){let n={status:`failed`,errors:[{message:t instanceof Error?t.message:`Structured output validation failed`,instancePath:``,schemaPath:`#`}]};return{...e,structuredOutputValidation:n}}})),e.waitForAcknowledgment().then(t=>{t&&this.acknowledge(e,i)},()=>{}),e.waitForCompletion().then(n=>{this.complete(e,n,i),t&&t(e.messageId,n,i)})}},Qt=class{pending=[];register(e,t,n,r){let i=r??crypto.randomUUID();return this.pending.push({messageId:e,correlationId:i,toolName:t,args:n,nativeId:r,registeredAt:Date.now()}),i}resolve(e,t){if(t.nativeId){let n=this.pending.findIndex(n=>n.messageId===e&&n.nativeId===t.nativeId);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`nativeId`,toolName:e.toolName,args:e.args}}}if(t.toolName){let n=this.pending.findIndex(n=>n.messageId===e&&n.toolName===t.toolName);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`toolName`,toolName:e.toolName,args:e.args}}}if(!t.nativeId&&!t.toolName){let t=this.pending.findIndex(t=>t.messageId===e);if(t<0)return{correlationId:null,strategy:`none`};let[n]=this.pending.splice(t,1);return{correlationId:n.correlationId,strategy:`oldest`,toolName:n.toolName,args:n.args}}return{correlationId:null,strategy:`none`}}clearAll(){this.pending=[]}clearMessage(e){this.pending=this.pending.filter(t=>t.messageId!==e)}};function $t(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=en({model:e.model,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,resumeAdapterSessionId:e.resumeAdapterSessionId,reasoningEffort:e.reasoningEffort,adapterConfig:e.adapterConfig,harnessId:e.harnessId,clientId:e.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:e.mcpSessionContext,toolLedger:e.toolLedger,ephemeral:e.ephemeral,nativeFork:e.nativeFork});return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.cwd!==void 0&&{cwd:e.cwd},...n}}function en(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function tn(e,t){return e?.find(e=>e.definition.id===t)?.auth}function nn(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function rn(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function an(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:nn(e,t.definitionId),adapterProviderAuth:tn(e,t.definitionId),compatibleProviderAuths:rn(e,t.definitionId)}}function on(e,t,n){if(e.length===0)return;if(n)return e.find(e=>e.definition.id===n)?.definition.availableModels;if(e.length===1)return e[0]?.definition.availableModels;if(!t)return;let r=e.filter(e=>(e.definition.availableModels??[]).some(e=>e.name===t));if(r.length===1)return r[0]?.definition.availableModels}function sn(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:w.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function cn(e){if(e instanceof me||e instanceof ue||e instanceof fe||e instanceof pe)return e.code}function ln(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function un(e,t,n){let r=n??t;return r===void 0&&console.warn(`[AIAgent] No providerContext available for agent "${e}" — using unresolved provider state.`),r??P()}function dn(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function fn(e){let{config:t,overrides:n}=e,r=un(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=an(t.definitionProviders,r);return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:r,...a!==void 0&&{providerProtocol:a},...i!==void 0&&{adapterProviderAuth:i},compatibleProviderAuths:o,providerContextRequired:(t.definitionProviders?.length??0)>0,model:n?.model??t.model,cwd:n?.cwd??t.cwd,env:t.env,adapterSessionId:n?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:n!==void 0&&`resumeAdapterSessionId`in n?n.resumeAdapterSessionId:t.resumeAdapterSessionId,reasoningEffort:dn(n,e.currentReasoningEffort),supportedReasoningLevels:ln(e.availableModels,n?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,providerConfig:t.adapterConfig,mcpSessionContext:n?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,...t.nativeFork!==void 0&&{nativeFork:t.nativeFork},ephemeral:t.ephemeral,clientId:t.clientId,clientProfileName:t.clientProfileName,harnessId:t.harnessId,errorHandler:(t,n)=>{n&&e.clearAllToolCalls()}}}function pn(e){let{structuredOutputManager:t,getConnector:n,sessionId:r,messageHandle:i,responseSchema:a}=e;return async e=>{if(e.outcome!==`completed`)return e;let o=await t.validateTerminalResult({responseSchema:a,message:e.result?.message,sessionId:r,retryTurn:async({attemptNumber:e,validationErrors:t})=>{let r=n();return r?(await(await r.sendMessage(i.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageId}:structured-output-retry:${e}`,messageHistory:i.messageHistory,responseSchema:a,requestCorrelation:i.requestCorrelation,turnContext:{...i.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:t,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...e,result:e.result!==null&&e.result!==void 0?{...e.result,message:o.message}:e.result,structuredOutputValidation:o.structuredOutputValidation}}}const mn=[`idle`,`active`];function hn(e,t,n){e.requestOptional(O.updateStatus,{agentId:t,status:n,expectedStatus:[...mn]}).catch(()=>void 0)}function G(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}async function gn(e,t,n){try{return await e.emit(S.adapterSession.moved,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,confirmed:n.confirmed,...t.sessionId!==void 0&&{sessionId:t.sessionId},...n.confirmed&&{adapterSessionId:n.adapterSessionId}}),!0}catch(e){return console.warn(`[adapter-session-movement] Failed to announce provider-session movement for agent ${t.agentId}:`,e),!1}}function _n(e){return e.movesProviderSessionOnSuppressedResume()?void 0:e.getConfirmedAdapterSessionId()}var vn=class{lastKnown;lastAnnounced;undelivered;inheritsResumeTarget;callerSettlementPending=!1;bus;host;constructor(e,t){this.bus=e,this.host=t,this.inheritsResumeTarget=t.resumeAdapterSessionId!==void 0}get lastKnownAdapterSessionId(){return this.lastKnown}async record(e,t=!1){if(t&&(this.callerSettlementPending=!0),e!==void 0){if(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.callerSettlementPending||this.host.isProviderKeyPublishable?.()===!1)return;if(e!==this.lastAnnounced){await this.announce({adapterSessionId:e,confirmed:!0});return}}this.undelivered!==void 0&&await this.announce(this.undelivered)}async recordUnconfirmedMove(){this.host.resumeAdapterSessionId=void 0,await this.announce({confirmed:!1})}adoptResumeTarget(e){this.host.resumeAdapterSessionId=e,this.inheritsResumeTarget=e!==void 0}recordCallerSettled(e){this.callerSettlementPending=!1,e!==void 0&&(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.lastAnnounced=e,this.undelivered=void 0)}async announce(e){let t=await gn(this.bus,this.identity(),e);this.undelivered=t?void 0:e,t&&e.confirmed&&(this.lastAnnounced=e.adapterSessionId)}identity(){return{agentId:this.host.agentId,adapterId:this.host.adapterId,adapterName:this.host.adapterName,machineId:this.host.machineId,ownerInstanceId:this.host.ownerInstanceId,sessionId:this.host.sessionId}}};function yn(e,t){let n={...e};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);return Object.keys(n).length===0?void 0:n}var bn=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onNativeResumeSuppressed;onMessageHandle;onBeforeDispatch;runDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onNativeResumeSuppressed=e.onNativeResumeSuppressed,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.runDispatch=e.runDispatch??(async e=>e()),this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}async deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),this.movesProviderSession(n)&&await this.onNativeResumeSuppressed?.(),n}movesProviderSession(e){return e||!this.hasResumeTarget()?!1:_n(this.getConnector())===void 0}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?w.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=await this.deriveAndSetPendingStartMode(r.sessionContext),a=A(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,turnId:e.turnId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,useNativeResume:i,turnContext:G(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:yn(r.sessionContext?.requestCorrelation,{sessionId:this.sessionId,turnId:e.turnId,messageId:e.messageId}),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.assertCanonicalMessageId(e.messageId,o,t,`sendMessage`),this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}})}async executeStart(e,t,n,r){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?w.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=await this.deriveAndSetPendingStartMode(o.sessionContext),c=A(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,useNativeResume:s,turnContext:G(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:yn(o.sessionContext?.requestCorrelation,{sessionId:this.sessionId}),...r!==void 0&&{responseSchema:r}},u=await i.start(c,l);return this.assertCanonicalMessageId(t?.messageId,u.messageHandle,i,`start`),this.firePostUserMessageHooks(u.messageHandle.messageId),await this.onMessageHandle(u.messageHandle,void 0),u})}async resolvePreUserMessageTurn(e){return this.ephemeral?{message:e.message,sessionContext:e.sessionContext}:ke({agentId:this.agentId,adapterId:this.adapterId,message:e.message,sessionId:this.sessionId,cwd:e.cwd,sessionContext:e.sessionContext,messageId:e.messageId},this.globalBus)}firePostUserMessageHooks(e){Oe({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,messageId:e},this.globalBus).catch(e=>{console.error(`[AIAgent] PostUserMessage hook error:`,e)})}assertCanonicalMessageId(e,t,n,r){if(e===void 0||t.messageId===e)return;let i=Error(`Adapter connector contract violation (${this.adapterId}, ${r}): expected MessageHandle.messageId ${JSON.stringify(e)}, received ${JSON.stringify(t.messageId)}`);throw t.markCompleted({outcome:`error`,error:i}),n.handleError(i,!0),i}};function xn(e){let t=e.globalBus.withFilter({agentId:e.agentId}),n=[t.on(S.sendMessage,e.onSendMessage),t.on(S.interrupt,e.onInterrupt),t.on(S.getCapabilities,t=>{t.setResult(e.getCapabilities())}),t.on(S.cwd.change,async t=>{t.setResult(await e.onCwdChange(t.payload))}),t.on(S.model.change,async t=>{t.setResult(await e.onModelChange(t.payload))}),t.on(S.mcp.servers.set,async t=>{t.setResult(await e.onMcpServersSet(t.payload))}),t.on(S.credential.change,async t=>{t.setResult(await e.onCredentialChange(t.payload))}),e.globalBus.on(xe.tools.updated,e.onMcpToolsChanged),e.globalBus.on(xe.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(T.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var Sn=class{emitUsagePayload;emitContextWindowUpdatedPayload;emitToolUsePayload;emitToolOutputPayload;emitAdapterLogPayload;emitStepStartedPayload;emitStepFinishedPayload;toolCallTracker;getBlockIndex;incrementBlockIndex;getUsageModel;getActiveMessageHandle;constructor(e){this.emitUsagePayload=e.emitUsage,this.emitContextWindowUpdatedPayload=e.emitContextWindowUpdated,this.emitToolUsePayload=e.emitToolUse,this.emitToolOutputPayload=e.emitToolOutput,this.emitAdapterLogPayload=e.emitAdapterLog,this.emitStepStartedPayload=e.emitStepStarted,this.emitStepFinishedPayload=e.emitStepFinished,this.toolCallTracker=e.toolCallTracker,this.getBlockIndex=e.getBlockIndex,this.incrementBlockIndex=e.incrementBlockIndex,this.getUsageModel=e.getUsageModel,this.getActiveMessageHandle=e.getActiveMessageHandle}async trackUsage(e){let t=this.getActiveMessageHandle()?.requestCorrelation,n={...e,model:this.getUsageModel()??`unknown`};n.executionId===void 0&&t?.executionId!==void 0&&(n.executionId=t.executionId),n.frameId===void 0&&t?.frameId!==void 0&&(n.frameId=t.frameId),await this.emitUsagePayload(n)}async emitContextWindowUpdate(e){let{currentTokens:t,maxTokens:n,cachedTokens:r}=e,i=n>0&&Number.isFinite(n)&&Number.isFinite(t),a=i?Math.min(100,t/n*100):0,o=i?a>=80?`critical`:a>=60?`warn`:`ok`:`critical`;await this.emitContextWindowUpdatedPayload({currentTokens:t,maxTokens:n,cachedTokens:r,percentage:a,level:o})}async emitToolUse(e,t,n,r){let i=this.toolCallTracker.register(e,t,n,r);return await this.emitToolUsePayload({messageId:e,toolName:t,args:n,toolCallId:i}),i}async emitToolOutput(e,t,n){let{correlationId:r,strategy:i,toolName:a,args:o}=this.toolCallTracker.resolve(e,n);if(!r){await this.emitAdapterLogPayload({level:`warn`,message:`Tool output arrived with no pending tool calls. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()});let r=crypto.randomUUID();return await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:n.toolName??a}),{toolCallId:r,toolName:n.toolName??a??`unknown`}}return i===`oldest`&&await this.emitAdapterLogPayload({level:`warn`,message:`Tool output correlation used fallback. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()}),await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:a,args:o}),{toolCallId:r,toolName:a??`unknown`,args:o}}async emitStepStarted(e,t,n){await this.emitOwnedStepStarted(void 0,e,t,n)}async emitStepStartedForMessage(e,t,n,r){await this.emitOwnedStepStarted(e,t,n,r)}async emitOwnedStepStarted(e,t,n,r){await this.emitStepStartedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),blockData:n,content:r})}async emitStepFinished(e,t){await this.emitOwnedStepFinished(void 0,e,t)}async emitStepFinishedForMessage(e,t,n){await this.emitOwnedStepFinished(e,t,n)}async emitOwnedStepFinished(e,t,n){await this.emitStepFinishedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),content:n}),this.incrementBlockIndex()}},Cn=class e{static COMPLETION_DEDUP_LIMIT=1024;sessionClosedEmitted=!1;completedMessageIds=new Set;completedMessageOrder=[];config;constructor(e){this.config=e}async emitStart(e){await this.config.emitStarted(e)}async emitCompletion(t){if(!this.completedMessageIds.has(t.messageId)){this.completedMessageIds.add(t.messageId);try{if(await this.config.onBeforeEmitCompletion(),this.config.clearMessageToolCalls(t.messageId),await this.config.emitComplete(t),this.completedMessageOrder.push(t.messageId),this.completedMessageOrder.length>e.COMPLETION_DEDUP_LIMIT){let e=this.completedMessageOrder.shift();e!==void 0&&this.completedMessageIds.delete(e)}hn(this.config.globalBus,this.config.agentId,`idle`)}catch(e){throw this.completedMessageIds.delete(t.messageId),e}}}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},wn=class{config;constructor(e){this.config=e}async resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId();if(await this.config.setLastKnownAdapterSessionId(e),this.config.isProviderKeyPublishable?.()!==!1)return e??this.config.getLastKnownAdapterSessionId()}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=`turnId`in r?r.turnId:this.config.getCurrentTurnId(),o=await this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase(),d={...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}};return a===void 0&&`turnId`in d&&delete d.turnId,this.config.isProviderKeyPublishable?.()===!1&&`adapterSessionId`in d&&delete d.adapterSessionId,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},Tn=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await Ae(t,n))}async commit(){if(this.transaction!==void 0)try{await this.transaction.commit()}finally{this.terminal=!0}}async rollbackPending(){if(!(this.transaction===void 0||this.terminal))try{await this.transaction.rollback()}finally{this.terminal=!0}}},K=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},q=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},En=class{config;constructor(e){this.config=e}async handle(e){let t=Ce.parse(e.providerContext),n=t.providerConfigId;return this.hasProviderMismatch(n)?{success:!1,reason:`provider_mismatch`}:this.config.sequencer.queue(n,e.changeSequence)?this.config.runExclusive(()=>this.applyQueuedChange(t,e.changeSequence)):{success:!1,reason:`stale_change`}}async applyQueuedChange(e,t){let n=e.providerConfigId;if(this.hasProviderMismatch(n))return this.config.sequencer.release(n,t),{success:!1,reason:`provider_mismatch`};if(!this.config.sequencer.isLatest(n,t))return{success:!1,reason:`stale_change`};let r=this.config.getConnector();if(r.getProcessingState()!==`idle`)return this.config.sequencer.release(n,t),{success:!1,reason:`turn_active`};let i;try{return this.assertGuard(n,t,r),i=await Tn.prepare(this.config.globalBus,e),this.assertGuard(n,t,r),await this.config.swapConnectorUnlocked({providerContext:e},async()=>{this.assertGuard(n,t,r),await i?.commit()}),this.config.setProviderContext(e),this.config.sequencer.markApplied(n,t),await this.config.persistProviderConfigId(n),{success:!0,swapped:!0}}catch(e){return this.config.sequencer.release(n,t),this.handleFailure(e,i)}}async handleFailure(e,t){if(t!==void 0)try{await t.rollbackPending()}catch(t){let n=Dn(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof K)throw e;if(e instanceof D)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof q?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof E?`credential_activation_failed:${e.code}`:`credential_swap_failed`}}hasProviderMismatch(e){let t=this.config.getProviderContext();return t?.state===`resolved`&&t.providerConfigId!==e}assertGuard(e,t,n){if(!this.config.sequencer.isLatest(e,t))throw new q(`stale_change`);if(n.getProcessingState()!==`idle`)throw new q(`turn_active`)}};function Dn(e){return e instanceof q?Error(`Credential change rejected (${e.reason}).`):e instanceof E||e instanceof D?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var On=class{getConnector;swapConnectorUnlocked;setMcpSessionContext;stagedMcpServersSet;constructor(e){this.getConnector=e.getConnector,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.setMcpSessionContext=e.setMcpSessionContext}async applyStagedMutation(){let e=this.stagedMcpServersSet;if(e===void 0)return;this.stagedMcpServersSet=void 0;let t=await this.handleMcpServersSet(e);if(!t.success)throw Error(`Failed to apply staged MCP server replacement: ${t.reason??`unknown error`}`)}async handleMcpServersSet(e){if(this.getConnector().getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedMcpServersSet={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0}):{success:!1,reason:`turn_active`};try{await this.swapConnectorUnlocked({mcpSessionContext:e.mcpSessionContext})}catch{return{success:!1,reason:`mcp_servers_set_failed: connector_replacement_failed`}}try{this.setMcpSessionContext(e.mcpSessionContext)}catch{return{success:!1,reason:`mcp_servers_set_committed_postprocess_failed`}}return{success:!0,swapped:!0}}};function kn(e,t){return e===t?!0:!e||!t||e.state!==t.state?!1:e.state===`unresolved`||t.state===`unresolved`?e.state===t.state:e.providerConfigId===t.providerConfigId&&e.definitionId===t.definitionId&&J(e.endpointOverrides,t.endpointOverrides)&&J(e.auth,t.auth)&&J(e.capabilities,t.capabilities)}function J(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>J(e,t[n]));if(!An(e)||!An(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&J(e[n],t[n]))}function An(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function jn(e){let{bus:t,agentId:n,currentModel:r,nextModel:i,skipWarning:a}=e;if(a)return{proceed:!0,requestEditHistory:!1};let o=await t.requestOptional(S.validateModelChange,{agentId:n,currentModel:r,nextModel:i});return o.handled?{proceed:o.data.proceed,requestEditHistory:o.data.requestEditHistory??!1}:{proceed:!0,requestEditHistory:!1}}var Mn=class{config;stagedModelChange;constructor(e){this.config=e}async applyStagedMutation(){if(this.config.getConnector().getProcessingState()!==`idle`)return;let e=this.stagedModelChange;if(e===void 0)return;this.stagedModelChange=void 0;let t=await this.handle(e);if(!t.success)throw Error(`Failed to apply staged model change: ${t.reason??`unknown error`}`)}async handle(e){let t=this.config.getConnector(),{newModel:n,reasoningEffort:r,skipWarning:i}=e,a=e.providerContext===void 0?void 0:C.parse(e.providerContext),o=t.model,s=t.currentReasoningEffort,c=this.hasProviderContextChanged(this.config.getProviderContext(),a);if(n===void 0&&r===void 0&&!c)return{success:!0,swapped:!1};if(t.getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedModelChange={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0,...n!==void 0&&{model:n}}):{success:!1,reason:`turn_active`};if(n===void 0&&!c)return r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r);let l=n??o;return o===l&&!c?r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r):this.handleModelSwap({connector:t,currentModel:o,newModel:l,reasoningEffort:r,previousReasoningEffort:s,providerContext:a,isProviderChange:c,skipWarning:i})}async handleReasoningOnlyChange(e,t,n,r){if(e.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let i=this.resolveReasoningEffort(r,n,e.supportedReasoningLevels),a;try{a=await e.changeReasoningInPlace(r).catch(()=>!1),a||await this.config.swapConnectorUnlocked({model:e.model,reasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_failed: connector_mutation_failed`}}let o=this.config.getConnector();try{o.currentReasoningEffort=i,this.config.setReasoningEffort(i)}catch{return{success:!1,reason:`reasoning_change_committed_postprocess_failed`}}try{await this.config.emitModelChanged({previousModel:t,newModel:t,previousReasoningEffort:n,newReasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_committed_event_failed`}}return{success:!0,swapped:!a,model:t,appliedReasoningEffort:i,supportedReasoningLevels:o.supportedReasoningLevels}}async handleModelSwap(e){let{connector:t,currentModel:n,newModel:r,providerContext:i,isProviderChange:a,skipWarning:o}=e,s=!a&&await t.changeModelInPlace(r).catch(()=>!1),c=!1;if(s)t.model=r;else{try{let e=await this.confirmConnectorSwap(n,r,o);if(!e.proceed)return e.result;c=e.requestEditHistory}catch(e){return{success:!1,reason:Nn(e)}}let t;try{a&&i!==void 0&&(t=await Tn.prepare(this.config.globalBus,i)),await this.config.swapConnectorUnlocked({model:r,reasoningEffort:this.resolveReasoningEffort(e.reasoningEffort,e.previousReasoningEffort,this.config.resolveSupportedReasoningLevels(r)),...i&&{providerContext:i}},async()=>t?.commit())}catch(e){if(t!==void 0)try{await t.rollbackPending()}catch(e){let t=Error(`Model/provider connector replacement failed.`);throw AggregateError([t,e],`Model/provider replacement and account activation rollback both failed.`,{cause:t})}if(e instanceof D)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:Nn(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof K?`model_change_committed_persistence_failed`:`model_change_committed_postprocess_failed`}}}async finalizeModelSwap(e,t,n){let{currentModel:r,newModel:i,reasoningEffort:a,previousReasoningEffort:o,providerContext:s,isProviderChange:c}=e,l=this.config.getConnector();s!==void 0&&c&&this.config.setProviderContext(s),l.supportedReasoningLevels=this.config.resolveSupportedReasoningLevels(i);let u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(a,o,u);l.currentReasoningEffort=d,this.config.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>void 0);let f=c&&s!==void 0?s.state===`resolved`?s.providerConfigId:null:void 0;return(r!==i||f!==void 0)&&await this.config.persistRuntimeMutation({...r!==i&&{model:i},...f!==void 0&&{providerConfigId:f}}),(r!==i||d!==o)&&await this.config.emitModelChanged({previousModel:r,newModel:i,previousReasoningEffort:o,newReasoningEffort:d}),n&&this.config.sessionId&&await this.config.globalBus.emit(T.connectorSwap.editRequested,{sessionId:this.config.sessionId,agentId:this.config.agentId,previousModel:r,newModel:i}),{success:!0,swapped:!t,model:i,appliedReasoningEffort:d,supportedReasoningLevels:u}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await jn({bus:this.config.globalBus,agentId:this.config.agentId,currentModel:e,nextModel:t,skipWarning:n});return r.proceed?{proceed:!0,requestEditHistory:r.requestEditHistory}:{proceed:!1,result:{success:!1,reason:`cancelled`}}}hasProviderContextChanged(e,t){return t===void 0?!1:!kn(e,t)}};function Nn(e){return e instanceof E?`model_change_failed: provider_activation_${e.code}`:e instanceof D?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var Pn=class{queuedSequences=new Map;appliedSequences=new Map;queue(e,t){if(!Number.isSafeInteger(t)||t<0)return!1;let n=this.appliedSequences.get(e);if(n!==void 0&&t<=n)return!1;let r=this.queuedSequences.get(e);return r!==void 0&&t<=r?!1:(this.queuedSequences.set(e,t),!0)}isLatest(e,t){return this.queuedSequences.get(e)===t}markApplied(e,t){let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.appliedSequences.set(e,t),this.queuedSequences.get(e)===t&&this.queuedSequences.delete(e)}release(e,t){if(this.queuedSequences.get(e)!==t)return;let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.queuedSequences.delete(e)}clear(e){this.queuedSequences.delete(e),this.appliedSequences.delete(e)}},Fn=class{agentId;globalBus;getConnector;runExclusive;swapConnectorUnlocked;emitCwdChanged;mcpServersMutationManager;modelMutationManager;credentialChangeManager;credentialChangeSequencer=new Pn;constructor(e){this.agentId=e.agentId,this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.runExclusive=e.runExclusive,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.emitCwdChanged=e.emitCwdChanged,this.mcpServersMutationManager=new On({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new Mn({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,emitModelChanged:e.emitModelChanged,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels,persistRuntimeMutation:e=>this.persistRuntimeMutation(e)}),this.credentialChangeManager=new En({globalBus:e.globalBus,sequencer:this.credentialChangeSequencer,runExclusive:e.runExclusive,getConnector:e.getConnector,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,swapConnectorUnlocked:e.swapConnectorUnlocked,persistProviderConfigId:e=>this.persistRuntimeMutation({providerConfigId:e})})}async handleCwdChange(e){return this.runExclusive(()=>this.handleCwdChangeUnlocked(e))}async handleCwdChangeUnlocked(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let r=t.cwd;try{await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnectorUnlocked({cwd:n})}catch{return{success:!1,reason:`cwd_change_failed: connector_replacement_failed`}}try{await this.persistRuntimeMutation({cwd:n})}catch(e){if(e instanceof K)return{success:!1,reason:`cwd_change_committed_persistence_failed`};throw e}try{await this.emitCwdChanged({previousCwd:r,newCwd:n})}catch{return{success:!1,reason:`cwd_change_committed_event_failed`}}return{success:!0,previousCwd:r}}async applyStagedMutationsUnlocked(){this.getConnector().getProcessingState()===`idle`&&(await this.modelMutationManager.applyStagedMutation(),await this.mcpServersMutationManager.applyStagedMutation())}runTurnDispatch(e){return this.runExclusive(async()=>(await this.applyStagedMutationsUnlocked(),e()))}async handleMcpServersSet(e){return this.runExclusive(()=>this.mcpServersMutationManager.handleMcpServersSet(e))}async handleModelChange(e){return this.runExclusive(()=>this.modelMutationManager.handle(e))}async handleCredentialChanged(e){return this.credentialChangeManager.handle(e)}async persistRuntimeMutation(e){try{let t=await this.globalBus.requestOptional(O.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new K}catch(e){throw e instanceof K?e:new K}}},In=class{connectorWiringCleanups=[];busHandlerCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){k(this.connectorWiringCleanups,`Connector wiring for agent ${this.config.agentId}`),this.connectorWiringCleanups=[]}addBusHandlerCleanups(...e){this.busHandlerCleanups.push(...e)}detachWiring(){let e=this.takeBusHandlerCleanups();return this.clearConnectorWiring(),e}takeBusHandlerCleanups(){let e=this.busHandlerCleanups;return this.busHandlerCleanups=[],e}releaseBusHandlers(){k(this.takeBusHandlerCleanups(),`Bus handler`)}releaseWiring(){k(this.detachWiring(),`Bus handler`)}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e,t,n=!1,r){let i=this.config.getConnectorRuntime(),a=i.connector;if(a.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${a.getProcessingState()})`);let o=await this.createReplacementRuntime(a,e),s=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let c=await this.initializeReplacement(o,s,t,r);return c!==void 0&&await this.config.setLastKnownAdapterSessionId(c,n),this.config.setConnectorRuntime(o),this.runWiringCleanups(s),await this.closePreviousRuntime(i,r),c}async createReplacementRuntime(e,t){let n=this.config.buildConfigInput({cwd:t?.cwd??e.cwd,model:t?.model??e.model,...t?.providerContext&&{providerContext:t.providerContext},...t?.mcpSessionContext&&{mcpSessionContext:t.mcpSessionContext},...t!==void 0&&`reasoningEffort`in t&&{reasoningEffort:t.reasoningEffort},adapterSessionId:t?.adapterSessionId??crypto.randomUUID(),...t!==void 0&&`resumeAdapterSessionId`in t&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return H({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),onAdapterSessionMoved:this.config.announceAdapterSessionMoved,prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n,r){try{await this.wireAllConnectorEvents(e.connector),await e.connector.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()});let t=e.connector.getConfirmedAdapterSessionId();return await n?.(),t}catch(n){this.clearConnectorWiring(),this.connectorWiringCleanups=t;let i=await U(e);throw r?.(i,e),i.closeError===void 0?n:AggregateError([n,i.closeError],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}}runWiringCleanups(e){k(e,`Superseded connector wiring for agent ${this.config.agentId}`)}async closePreviousRuntime(e,t){let n=await U(e);if(t?.(n,e),n.closeError===void 0)return;let r={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(r)}catch{console.warn(`[AIAgent] ${r.code} for agent ${r.agentId}; cleanup diagnostic delivery also failed.`)}}},Ln=class{tail=Promise.resolve();async runExclusive(e){let t=this.tail,n;this.tail=new Promise(e=>{n=e}),await t;try{return await e()}finally{n?.()}}},Rn=class{config;barrier=new Ln;constructor(e){this.config=e}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t,n=!1){await this.runExclusive(async()=>{let r;try{e?.providerContext!==void 0&&(r=await Tn.prepare(this.config.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await r?.commit()},n)}catch(e){if(r!==void 0)try{await r.rollbackPending()}catch(e){let t=Error(`Public connector replacement failed.`);throw AggregateError([t,e],`Connector replacement and account activation rollback both failed.`,{cause:t})}throw e}})}async swapConnectorUnlocked(e,t,n=!1){let r=this.config.arbiter.admitSwap(this.config.agentId,this.config.hasConnectorRuntime),i=[],a=[],o=`rolled-back`;try{let r=await this.config.lifecycleManager.swapConnector(e,t,n,(e,t)=>{a.push(e),e.closeError!==void 0&&i.push(t)});o=`committed`,this.publishRuntimeConfig(e,r)}finally{let e=r.settle({outcome:o,unclosed:i,closeReports:a});try{e.reportsConsumedByWaiter||this.config.recordUnreportedCloseReports(a),e.abandonedByWaiter&&await this.closeRuntimesForAbandonedWaiter(i)}finally{r.retire()}}}publishRuntimeConfig(e,t){e?.providerContext!==void 0&&(this.config.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.runtimeConfig.mcpSessionContext=e.mcpSessionContext),e!==void 0&&`resumeAdapterSessionId`in e&&this.config.publishResumeTargetDecision(e.resumeAdapterSessionId===void 0?void 0:t??e.resumeAdapterSessionId)}async closeRuntimesForAbandonedWaiter(e){this.config.lifecycleManager.clearConnectorWiring();let t=this.config.detachConnectorRuntime();for(let n of t===void 0?e:[t,...e]){let e=await U(n);e.closeError!==void 0&&console.warn(`[AIAgent] Agent ${this.config.agentId} connector replacement inherited a teardown's runtimes and could not close one:`,e.closeError)}}};function zn(e){return new wn({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,...e.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:e.isProviderKeyPublishable},getEventMetadataDefaults:e.getEventMetadataDefaults})}function Bn(e){return new Sn({emitUsage:async t=>{await e.emitGlobal(S.usage,t)},emitContextWindowUpdated:async t=>{await e.emitGlobal(S.contextWindow.updated,t)},emitToolUse:async t=>{await e.emitGlobal(S.tool.use,t)},emitToolOutput:async t=>{await e.emitGlobal(S.tool.output,t)},emitAdapterLog:async t=>{await e.emitGlobal(x.log,t,{includeEventMetadata:!1})},emitStepStarted:async t=>{await e.emitGlobal(S.step.started,t)},emitStepFinished:async t=>{await e.emitGlobal(S.step.finished,t)},toolCallTracker:e.toolCallTracker,getBlockIndex:e.getBlockIndex,incrementBlockIndex:e.incrementBlockIndex,getUsageModel:e.getUsageModel,getActiveMessageHandle:()=>e.lifecycleTracker.getCurrentMessageHandle()})}function Vn(e){return new Cn({agentId:e.agentId,globalBus:e.globalBus,emitStarted:async t=>{await e.emitGlobal(S.started,t)},emitComplete:async t=>{await e.emitGlobal(S.complete,t)},emitSessionClosed:async t=>{await e.emitGlobal(S.session.closed,t)},onBeforeEmitCompletion:e.onBeforeEmitCompletion,clearMessageToolCalls:e.clearMessageToolCalls})}function Hn(e){return new bn(e)}function Un(e){return new Fn({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,runExclusive:e.runExclusive,swapConnectorUnlocked:e.swapConnectorUnlocked,emitCwdChanged:async t=>{await e.emitGlobal(S.cwd.changed,t)},emitModelChanged:async t=>{await e.emitGlobal(S.model.changed,t)},getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,setMcpSessionContext:e.setMcpSessionContext,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels})}function Wn(e){return new In({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(S.idle,{})},getConnectorRuntime:e.getConnectorRuntime,setConnectorRuntime:e.setConnectorRuntime,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,announceAdapterSessionMoved:e.announceAdapterSessionMoved,reportCleanupFailure:t=>e.emitGlobal(x.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}function Gn(e){return new Rn(e)}var Kn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=_(),n=p(),r=f(),i=se(),a={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>o(e,e.schema)};function o(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,c=a.errSchemaPath===`#`?a.validateName:s(e);i.if((0,t._)`!${o}`,()=>i.assign(o,c))}e.dynamicAnchor=o;function s(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=a})),qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=_(),n=p(),r=se(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),Jn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Kn(),n=c();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,t.dynamicAnchor)(e,``):(0,n.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),Yn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=qn();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),Xn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Kn(),n=qn(),r=Jn(),i=Yn();e.default=[t.default,n.default,r.default,i.default]})),Zn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ae();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),Qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ae();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),$n=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=c();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:n,it:r}){n.contains===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),er=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Zn(),n=Qn(),r=$n();e.default=[t.default,n.default,r.default]})),tr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=_(),n=c(),r=p();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,t._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:i,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof t.Name?i.if((0,t._)`${u} !== true`,()=>i.forIn(`key`,o,e=>i.if(f(u,e),()=>d(e)))):u!==!0&&i.forIn(`key`,o,e=>u===void 0?d(e):i.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,t._)`${s} === ${r.default.errors}`);function d(r){if(a===!1){e.setParams({unevaluatedProperty:r}),e.error(),l||i.break();return}if(!(0,n.alwaysValidSchema)(c,a)){let a=i.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:r,dataPropType:n.Type.Str},a),l||i.if((0,t.not)(a),()=>i.break())}}function f(e,n){return(0,t._)`!${e} || !${e}[${n}]`}function p(e,n){let r=[];for(let i in e)e[i]===!0&&r.push((0,t._)`${n} !== ${i}`);return(0,t.and)(...r)}}}})),nr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=_(),n=c();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=r.const(`len`,(0,t._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,t._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,n.alwaysValidSchema)(o,i)){let n=r.var(`valid`,(0,t._)`${c} <= ${s}`);r.if((0,t.not)(n),()=>l(n,s)),e.ok(n)}o.items=!0;function l(i,a){r.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:n.Type.Num},i),o.allErrors||r.if((0,t.not)(i),()=>r.break())})}}}})),rr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=tr(),n=nr();e.default=[t.default,n.default]})),ir=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}}})),ar=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/applicator":!0},$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}}})),or=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}}})),sr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0},$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}}})),cr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/format":!0},$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),lr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/meta-data":!0},$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),ur=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/validation":!0},$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),dr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ir(),n=ar(),r=or(),i=sr(),a=cr(),o=lr(),s=ur(),c=[`/properties`];function l(e){return[t,n,r,i,l(this,a),o,l(this,s)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function l(t,n){return e?t.$dataMetaSchema(n,c):n}}e.default=l})),fr=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2019=void 0;let n=d(),r=ie(),i=Xn(),a=er(),o=rr(),s=g(),c=dr(),l=`https://json-schema.org/draft/2019-09/schema`;var u=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(i.default),r.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(a.default),this.addVocabulary(o.default),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(c.default.call(this,e),this.refs[`http://json-schema.org/schema`]=l)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(l)?l:void 0)}};e.Ajv2019=u,t.exports=e=u,t.exports.Ajv2019=u,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=u;var f=ee();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var p=_();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return p._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return p.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return p.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return p.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return p.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return p.CodeGen}});var m=h();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return m.default}});var te=re();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return te.default}})})),pr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=te(),n=u(),r=ne(),i=Xn(),a=er(),o=rr(),s=l(),c=m();e.default=[i.default,t.default,n.default,(0,r.default)(!0),s.default,c.metadataVocabulary,c.contentVocabulary,a.default,o.default]})),mr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),hr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),gr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),_r=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),vr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),yr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),br=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),xr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),Sr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=mr(),n=hr(),r=gr(),i=_r(),a=vr(),o=yr(),s=br(),c=xr(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),Cr=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=d(),r=pr(),i=g(),a=Sr(),o=`https://json-schema.org/draft/2020-12/schema`;var s=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(a.default.call(this,e),this.refs[`http://json-schema.org/schema`]=o)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}};e.Ajv2020=s,t.exports=e=s,t.exports.Ajv2020=s,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=s;var c=ee();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return c.KeywordCxt}});var l=_();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return l.CodeGen}});var u=h();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return u.default}});var f=re();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return f.default}})})),wr=e(oe(),1),Tr=e(fr(),1),Er=e(Cr(),1);const Dr=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),Or=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var kr=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new wr.default({allErrors:!0,strict:!1});draft2019Ajv=new Tr.default({allErrors:!0,strict:!1});draft2020Ajv=new Er.default({allErrors:!0,strict:!1});validatorCache=new WeakMap;constructor(e){this.bus=e.bus,this.agentId=e.agentId,this.adapterId=e.adapterId,this.adapterCapabilities=e.adapterCapabilities}registerDefaultHandlers(){let e=this.bus.withFilter({agentId:this.agentId});return[e.on(S.structuredOutput.retryPolicy,e=>{e.setResult({maxRetries:0})},{priority:-1e3}),e.on(S.structuredOutput.enforce,e=>{e.setResult({enforced:!1,error:`No enforce handler registered`})},{priority:-1e3})]}async validateTerminalResult(e){let{responseSchema:t,message:n,sessionId:r}=e,i=this.validate(t,n);if(i.valid)return{message:n,structuredOutputValidation:{status:`passed`}};let a=n??``,o=i.errors;if(e.retryTurn){let n=await this.bus.requestOptional(S.structuredOutput.retryPolicy,{agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.adapterCapabilities,responseSchema:t,attemptNumber:1}),r=n.handled?n.data.maxRetries:0;for(let n=1;n<=r;n+=1){a=await e.retryTurn({attemptNumber:n,validationErrors:o});let r=this.validate(t,a);if(r.valid)return{message:a,structuredOutputValidation:{status:`passed`}};o=r.errors}}let s=await this.bus.requestOptional(S.structuredOutput.enforce,{agentId:this.agentId,adapterId:this.adapterId,sessionId:r,responseSchema:t,rawOutput:a,validationErrors:o,adapterHasCapability:this.adapterCapabilities.includes(`structuredOutput`)});if(s.handled&&s.data.enforced===!0&&s.data.output!==void 0){let{valid:e}=this.validate(t,s.data.output);if(e)return{message:s.data.output,structuredOutputValidation:{status:`enforced`}}}return{message:a,structuredOutputValidation:{status:`failed`,errors:o}}}validate(e,t){if(t===void 0||t===``)return{valid:!1,errors:[{message:`Expected JSON output but received empty string`,instancePath:``,schemaPath:`#`}]};let n;try{n=JSON.parse(t)}catch{return{valid:!1,errors:[{message:`Output is not valid JSON: ${t.slice(0,120)}`,instancePath:``,schemaPath:`#`}]}}let r=this.getValidator(e);if(r(n))return{valid:!0,errors:[]};let i=this.normalizeErrors(r.errors??[]);return i.length===0&&i.push({message:`Schema validation failed`,instancePath:``,schemaPath:`#`}),{valid:!1,errors:i}}getValidator(e){let t=this.validatorCache.get(e.schema);if(t!==void 0)return t;let n=this.getValidatorCompileTarget(e.schema),r;try{r=n.compiler.compile(n.schema)}catch(e){r=this.createCompileFailureValidator(e)}return this.validatorCache.set(e.schema,r),r}createCompileFailureValidator(e){let t=[{keyword:`schema`,instancePath:``,schemaPath:`#`,params:{},message:`Failed to compile response schema: ${e instanceof Error?e.message:String(e)}`}],n=this.draft07Ajv.compile({});return Object.assign(e=>!1,{errors:t,schema:n.schema,schemaEnv:n.schemaEnv})}getValidatorCompileTarget(e){let t=this.readSchemaUri(e),n=t===void 0?void 0:this.normalizeDraft202012Uri(t),r=t===void 0?void 0:this.normalizeDraft201909Uri(t);return n!==void 0&&Or.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Dr.has(r)?{compiler:this.draft2019Ajv,schema:this.withSchemaUri(e,r)}:{compiler:this.draft07Ajv,schema:this.withoutSchemaUri(e)}}readSchemaUri(e){let t=e.$schema;return typeof t==`string`?t:void 0}normalizeDraft202012Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2020-12\/schema#?$/,e=>e.replace(`http://`,`https://`))}normalizeDraft201909Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2019-09\/schema#?$/,e=>e.replace(`http://`,`https://`))}withSchemaUri(e,t){return e.$schema===t?e:{...e,$schema:t}}withoutSchemaUri(e){if(e.$schema===void 0)return e;let t={...e};return delete t.$schema,t}normalizeErrors(e){return e.map(e=>({message:e.message??`Validation error`,instancePath:e.instancePath,schemaPath:e.schemaPath}))}},Ar=class{unreported=[];record(e){for(let{evidence:t,detail:n}of e)this.unreported.push({evidence:t,...n!==void 0&&{detail:n}})}capReport(e){return this.unreported.length===0?e:I([...this.unreported,e])}};function jr(e){let{host:t,adapterSessionTracker:n,getConnector:r}=e;return zn({globalBus:e.globalBus,getAgentContextBase:()=>({agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId}),lifecycleTracker:e.lifecycleTracker,getConnectorAdapterSessionId:()=>{let e=r();return e===void 0?void 0:_n(e)},getLastKnownAdapterSessionId:()=>n.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>n.record(e),...t.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:t.isProviderKeyPublishable},getEventMetadataDefaults:()=>({clientId:t.clientId,providerConfigId:r()?.providerConfigId??(t.providerContext?.state===`resolved`?t.providerContext.providerConfigId:void 0),occurredAt:Date.now()})})}function Mr(e){return t=>{e(S.user_message.sent,{messageId:t.messageId,content:t.message,deliveryMode:t.deliveryMode,turnId:t.turnId})}}var Nr=class{connector;connectorRuntime;confirmedModel;initialModel;adapterSessionTracker;initialized=!1;runtimeSystemPrompt;lifecycleTracker=new Zt({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new Qt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;closeReportLedger=new Ar;onMessageSent;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??b},this.availableModels=e.availableModels,this.adapterSessionTracker=new vn(this.globalBus,this.config),this.payloadEmitter=jr({globalBus:this.globalBus,host:this.config,lifecycleTracker:this.lifecycleTracker,adapterSessionTracker:this.adapterSessionTracker,getConnector:()=>this.connector});let t=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.onMessageSent=Mr(t),this.eventBridge=Bn({emitGlobal:t,toolCallTracker:this.toolCallTracker,lifecycleTracker:this.lifecycleTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.connectorLifecycleManager=this.createConnectorLifecycleManager(t),this.connectorSwapCoordinator=Gn({agentId:this.agentId,globalBus:this.globalBus,lifecycleManager:this.connectorLifecycleManager,runtimeConfig:this.config,publishResumeTargetDecision:this.adapterSessionTracker.adoptResumeTarget.bind(this.adapterSessionTracker),arbiter:this.config.teardownArbiter,hasConnectorRuntime:()=>this.connectorRuntime!==void 0,detachConnectorRuntime:this.detachConnectorRuntime.bind(this),recordUnreportedCloseReports:this.closeReportLedger.record.bind(this.closeReportLedger)}),this.turnExecutor=Hn({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onNativeResumeSuppressed:()=>this.adapterSessionTracker.recordUnconfirmedMove(),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Un({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,runExclusive:e=>this.connectorSwapCoordinator.runExclusive(e),swapConnectorUnlocked:this.connectorSwapCoordinator.swapConnectorUnlocked.bind(this.connectorSwapCoordinator),emitGlobal:t,getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>ln(this.availableModels,e)}),this.lifecycleEmitter=Vn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:t,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new kr({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e){return Wn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:()=>this.onMessageSent,wireEvents:this.wireEvents.bind(this),emitGlobal:e,getConnectorRuntime:()=>{if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector runtime is not initialized.`);return this.connectorRuntime},setConnectorRuntime:e=>{this.connectorRuntime=e,this.connector=e.connector},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:this.adapterSessionTracker.record.bind(this.adapterSessionTracker),announceAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove()})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await H({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.onMessageSent,onAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.connectorLifecycleManager.addBusHandlerCleanups(...xn({globalBus:this.globalBus,agentId:this.agentId,sessionId:this.sessionId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:e=>this.runtimeMutationManager.handleCwdChange(e),onModelChange:e=>this.runtimeMutationManager.handleModelChange(e),onMcpServersSet:e=>this.runtimeMutationManager.handleMcpServersSet(e),onCredentialChange:e=>this.runtimeMutationManager.handleCredentialChanged(e),onTurnStarted:e=>this.connector.setCanonicalTurnNumber(e),onMcpToolsChanged:()=>this.connector.markToolRefreshPending()}),...this.structuredOutputManager.registerDefaultHandlers()),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}catch(e){let n=this.connectorLifecycleManager.detachWiring();this.connectorRuntime=void 0,await At({runtime:t,handlerCleanups:n,primaryError:e,agentId:this.agentId})}}async emitStart(e){let t=this.pendingStartMode??`rotation`;this.pendingStartMode=void 0,this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,startMode:t,...e})}setPendingStartMode(e){this.pendingStartMode=e}async emitCompletion(e){await this.lifecycleEmitter.emitCompletion(e)}emitSessionClosed(e){this.lifecycleEmitter.emitSessionClosed(e)}async enrichPayload(e){return this.payloadEmitter.enrichPayload(e)}async emitGlobal(e,t){await this.payloadEmitter.emitGlobal(e,t)}async trackUsage(e){await this.eventBridge.trackUsage(e)}getContextWindowSize(e){let t=e??this.confirmedModel??this.initialModel;if(!(!t||!this.availableModels))return this.availableModels.find(e=>e.name===t)?.contextWindowSize}async emitContextWindowUpdate(e){await this.eventBridge.emitContextWindowUpdate(e)}async emitToolUse(e,t,n,r){return this.eventBridge.emitToolUse(e,t,n,r)}async emitToolOutput(e,t,n){return this.eventBridge.emitToolOutput(e,t,n)}async emitStepStarted(e,t,n){await this.eventBridge.emitStepStarted(e,t,n)}async emitStepFinished(e,t){await this.eventBridge.emitStepFinished(e,t)}getBlockIndex(){return this.currentBlockIndex}incrementBlockIndex(){this.currentBlockIndex++}async sendMessage(e){hn(this.globalBus,this.agentId,`active`),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.connectorLifecycleManager.addBusHandlerCleanups(e)}async swapConnector(e,t,n=!1){await this.connectorSwapCoordinator.swapConnector(e,t,n)}buildConfigInput(e){return fn({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`),this.connectorLifecycleManager.releaseWiring();let t=this.detachConnectorRuntime(),n=t===void 0?{evidence:`released`}:await U(t);return this.closeReportLedger.capReport(n)}releaseIdentityWiring(){this.connectorLifecycleManager.releaseBusHandlers()}detachConnectorRuntime(){let e=this.connectorRuntime;return this.connectorRuntime=void 0,e}ensureConnector(){if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=bn.deriveStartMode(r,this.shouldUseNativeResume(r),i);this.setPendingStartMode(a);let o=this.ensureConnector();return await o.initialize(e),o.getConfirmedAdapterSessionId()}async onBeforeEmitCompletion(){}async onMessageHandle(e,t){this.latestMessageCompletion=e.waitForCompletion();let n=e.responseSchema,r=n===void 0?void 0:pn({structuredOutputManager:this.structuredOutputManager,getConnector:()=>this.connector,sessionId:this.sessionId,messageHandle:e,responseSchema:n});this.lifecycleTracker.track(e,(e,t,n)=>{let r=t.error,i=r instanceof Error?r.message:r,a=r instanceof Error?cn(r):void 0;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...i&&{error:i},...a&&{errorCategory:a},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async recordConfirmedAdapterSession(e,t=!1){await this.adapterSessionTracker.record(e,t)}acknowledgeCallerSettledAdapterSession(e){this.adapterSessionTracker.recordCallerSettled(e)}get currentAdapterSessionId(){return this.adapterSessionTracker.lastKnownAdapterSessionId}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=Xt(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}},Y=class extends Error{agentId;reason;constructor(e,t){super(t===`teardown-in-flight`?`Connector replacement for agent ${e} refused: a teardown is already in flight.`:`Connector replacement for agent ${e} refused: the agent holds no connector runtime.`),this.agentId=e,this.reason=t,this.name=`ConnectorSwapVetoedError`}},Pr=class{teardowns=new Map;swaps=new Map;swapRetirementCounts=new Map;hasTeardownInFlight(e){return this.teardowns.has(e)}hasReplacementInFlight(e){return this.swapRetirementCounts.has(e)}hasLifecycleWorkInFlight(){return this.teardowns.size>0||this.swapRetirementCounts.size>0}replacementAgentIdsInFlight(){return this.swapRetirementCounts.keys()}admitSwap(e,t){if(this.teardowns.has(e))throw new Y(e,`teardown-in-flight`);if(!t())throw new Y(e,`no-runtime`);let n=new y,r={settlement:n.getPromise(),abandonedByWaiter:!1,awaitedByWaiter:!1,handover:void 0,retired:!1};return this.swaps.set(e,r),this.swapRetirementCounts.set(e,(this.swapRetirementCounts.get(e)??0)+1),{settle:t=>{if(r.handover!==void 0)return r.handover;let{abandonedByWaiter:i,awaitedByWaiter:a}=r,o={abandonedByWaiter:i,reportsConsumedByWaiter:a&&!i};return r.handover=o,n.resolve(t),this.swaps.get(e)===r&&this.swaps.delete(e),o},retire:()=>{if(r.handover===void 0||r.retired)return;r.retired=!0;let t=(this.swapRetirementCounts.get(e)??1)-1;t===0?this.swapRetirementCounts.delete(e):this.swapRetirementCounts.set(e,t)}}}runTeardown(e,t){let n=this.teardowns.get(e);if(n!==void 0)return n;let r=new y,i=r.getPromise();return this.teardowns.set(e,i),this.settleFlight(e,t,r),i}async settleFlight(e,t,n){try{n.resolve(await this.flyTeardown(e,t))}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.teardowns.delete(e)}}async flyTeardown(e,t){let n=this.swaps.get(e);if(n===void 0)return Fr(t.closeCurrent());let r=await this.awaitSettlement(n,t.deadline);if(r===void 0)return t.releaseIdentity(),F(`Agent ${e} had an unsettled connector replacement in flight; nothing was closed and the replacement now owns both runtimes.`);let i=[...r.closeReports,await Fr(t.closeCurrent())];for(let e of r.unclosed)i.push(await Fr(t.closeUnclosed(e)));return I(i)}async awaitSettlement(e,t){e.awaitedByWaiter=!0;let n=t===void 0?z:Math.min(z,Math.max(0,t-Date.now()-R));if(n<=0){e.abandonedByWaiter=!0;return}let r,i=new Promise(e=>{r=setTimeout(()=>e(void 0),n)});try{let t=await Promise.race([e.settlement,i]);return t===void 0&&(e.abandonedByWaiter=!0),t}finally{r!==void 0&&clearTimeout(r)}}};async function Fr(e){try{return await e}catch(e){return F(`Teardown threw instead of reporting: ${e instanceof Error?e.message:String(e)}`,e)}}function Ir(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function Lr(e){let{serverName:t,originalName:n}=Ir(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var Rr=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=Lr(e),this.entries.set(e,t)),t}recordInjection(e,t){let n=new Set(e.map(e=>e.name));for(let n of e){let e=this.upsert(n.name);e.injected=!0,e.lastInjectedAtTurn=t}for(let[e,t]of this.entries)t.injected&&!n.has(e)&&(t.injected=!1)}recordDiscovery(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t)}recordCall(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t),n.callCount+=1,n.lastCalledAtTurn=t}getInjectedTools(){return Array.from(this.entries.values()).filter(e=>e.injected)}getCallCount(e){return this.entries.get(e)?.callCount??0}getEntry(e){return this.entries.get(e)}getAllEntries(){return Array.from(this.entries.values())}async suggestInjectionSet(e,t){return e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema}))}};function zr(e){return typeof e.tool==`string`?e.tool:void 0}function Br(e){return e===be}const Vr={sessionId:`x-factory-session-id`,turnId:`x-factory-turn-id`,messageId:`x-factory-message-id`,llmCallId:`x-factory-llm-call-id`,executionId:`x-factory-execution-id`,frameId:`x-factory-frame-id`},Hr=Se.shape.sessionId.unwrap(),Ur=Se.extend({llmCallId:Hr});function Wr(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function Gr(e){let t=Ur.parse(e),n={};for(let[e,r]of Object.entries(Vr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}function Kr(e){return{deferred:e.callerOwnsAgentRow&&e.ephemeral!==!0}}function qr(e,t){if(e?.deferred!==!0)return t}function X(e){return e?.deferred!==!0}function Jr(e){e.deferred=!1}function Z(e){return e.agent.currentAdapterSessionId??e.adapterSessionId}function Yr(e){return{agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:Z(e)}}var Xr=class{entries=new Map;pendingAdapterSessionClaims=new Set;pendingAgentIdentityClaims=new Set;startFlights=new Set;settlementAckFlights=new Map;terminalTeardownReports=new Map;lifecycleState=`open`;globalBus;adapterName;ownerInstanceId;arbiter;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName,this.ownerInstanceId=e.ownerInstanceId,this.arbiter=e.arbiter}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(Z(t)===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}claimAgentIdentity(e){return this.pendingAgentIdentityClaims.has(e)||this.entries.has(e)?!1:(this.pendingAgentIdentityClaims.add(e),!0)}releaseAgentIdentityClaim(e){this.pendingAgentIdentityClaims.delete(e)}beginStart(){if(this.lifecycleState!==`open`)return;let e,t=new Promise(t=>{e=t});return this.startFlights.add(t),()=>{e!==void 0&&(e(),e=void 0,this.startFlights.delete(t))}}reopen(){if(this.lifecycleState!==`open`){if(this.lifecycleState!==`closed`||this.arbiter.hasLifecycleWorkInFlight())throw Error(`ActiveAgentRegistry ${this.adapterName} cannot reopen before shutdown fully settles`);this.lifecycleState=`open`}}acknowledgeCallerSettlement(e,t,n=!1){let r=this.entries.get(e);if(r===void 0)return Promise.resolve({acknowledged:!1,reason:`not-hosted`});let i=r.pendingCallerSettlement;if(i===void 0||i.token!==t)return Promise.resolve({acknowledged:!1,reason:`stale-token`});let a=this.settlementAckFlights.get(e);if(a!==void 0)return a.token===t?a.promise:Promise.resolve({acknowledged:!1,reason:`stale-token`});if(this.arbiter.hasTeardownInFlight(e))return Promise.resolve({acknowledged:!1,reason:`teardown-in-flight`});let o,s,c=new Promise((e,t)=>{o=e,s=t});this.settlementAckFlights.set(e,{token:t,promise:c});let l=()=>{this.settlementAckFlights.get(e)?.promise===c&&this.settlementAckFlights.delete(e)};return c.then(l,l),this.finishCallerSettlementAck(e,r,i,n).then(o,s),c}async finishCallerSettlementAck(e,t,n,r){if(!r){let r;try{r=await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`idle`,expectedStatus:[`starting`,`dead`]})}catch(e){throw t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),e}if(!r.handled||!r.data.transitioned)return t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),{acknowledged:!1,reason:`status-refused`}}return this.entries.get(e)!==t||t.pendingCallerSettlement!==n?{acknowledged:!1,reason:`not-hosted`}:(Jr(n.publication),t.agent.acknowledgeCallerSettledAdapterSession(n.adapterSessionId),t.pendingCallerSettlement=void 0,t.callerOwnsAgentRow=!1,{acknowledged:!0})}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(Z(t)===e)return!0;return!1}set(e,t,n){this.entries.set(e,{...t,ownerInstanceId:this.ownerInstanceId,callerOwnsAgentRow:t.callerOwnsAgentRow===!0}),this.pendingAgentIdentityClaims.delete(e),n!==void 0&&this.pendingAdapterSessionClaims.delete(n)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear(),this.pendingAgentIdentityClaims.clear(),this.terminalTeardownReports.clear()}hasTeardownSubject(e){return this.entries.has(e)||this.arbiter.hasTeardownInFlight(e)}reportWithNothingToTearDown(e){if(this.pendingAgentIdentityClaims.has(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} is being started on this instance and has no runtime to tear down yet.`};if(this.arbiter.hasReplacementInFlight(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} has an unsettled connector replacement in flight that owns its runtimes; nothing was closed.`};let t=this.terminalTeardownReports.get(e);return t===void 0?{found:!1,evidence:`released`}:{found:!1,...t}}async teardownFlight(e,t){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);try{let n=!this.arbiter.hasTeardownInFlight(e),r=await this.arbiter.runTeardown(e,{deadline:t.deadline,closeCurrent:async()=>{let n=this.entries.get(e);return n===void 0?{evidence:`released`}:n.agent.close({emitSessionClosed:t.emitSessionClosed})},closeUnclosed:e=>U(e),releaseIdentity:()=>this.entries.get(e)?.agent.releaseIdentityWiring()});if(!n||this.arbiter.hasReplacementInFlight(e))return r;let i=this.terminalTeardownReports.get(e),a=i===void 0?r:I([i,r]);return this.terminalTeardownReports.set(e,a),a}finally{this.entries.delete(e)}}async evict(e,t={}){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);let r=this.getEntryCallerOwnsAgentRow(e),i=await this.teardownFlight(e,t);if(!r)try{await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`dead`})}catch(t){if(i.closeError===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(i.closeError!==void 0)throw i.closeError;return i}async evictSilently(e,t={}){let n=await this.teardownFlight(e,{...t,emitSessionClosed:!1});return n.closeError!==void 0&&console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,n.closeError),n}async dispose(e,t={}){if(!this.hasTeardownSubject(e))return this.reportWithNothingToTearDown(e);let n=await this.teardownFlight(e,t);if(t.responsibility!==`connector-only`)try{await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`disposed`})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}return{found:!0,...n}}async closeAll(){this.lifecycleState=`closing`,await Promise.all([...this.startFlights]);let e=new Set([...this.entries.keys(),...this.arbiter.replacementAgentIdsInFlight()]),t=new Map(this.terminalTeardownReports);await Promise.all([...e].map(async e=>{let n=t.get(e),r=this.hasTeardownSubject(e)?await this.teardownFlight(e,{}):this.reportWithNothingToTearDown(e),i=this.terminalTeardownReports.get(e);t.set(e,i!==void 0&&i!==n?i:n===void 0?r:I([n,r]))}));let n=[...t.values()];return this.clear(),this.lifecycleState=`closed`,n}getEntryCallerOwnsAgentRow(e){return this.entries.get(e)?.callerOwnsAgentRow??!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function Zr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(Ee.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function Q(e){return{success:!1,message:e,dispatch:`not-dispatched`}}async function Qr(e,t,n){let{rpcResumeId:r,cwd:i,model:a}=n;try{let n=await e.globalBus.requestOptional(O.get,{agentId:t});if(!n.handled||!n.data.agent)return Q(`Agent ${t} not found in storage`);let o=n.data.agent;if(o.status===`disposed`)return Q(`Agent ${t} is disposed and cannot be rehydrated`);let s=await e.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await je(e.globalBus,{adapterName:o.adapterName,providerConfigId:o.providerConfigId});return{persisted:o,agentCreationRequest:{model:a??o.model,cwd:i??o.cwd,allowedDirectories:o.allowedDirectories,...r!==void 0&&{adapterSessionId:r,resumeAdapterSessionId:r},...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},restoredUsage:await Zr(e.globalBus,o.sessionId,t)}}catch(e){return Q(`Agent ${t} could not be prepared for rehydration: ${e instanceof Error?e.message:String(e)}`)}}async function $r(e,t){let n=await Ae(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function ei(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function ti(e){let t;try{await e.cleanup?.()}catch(e){t=e}let n;if(e.activation.transaction!==void 0&&!e.activation.terminal)try{await e.activation.transaction.rollback()}catch(e){n=e}finally{e.activation.terminal=!0}if(t!==void 0||n!==void 0){let r=[ni(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(ri(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof D?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([ni(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function ni(e,t){return e instanceof E||e instanceof D?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function ri(e){return e instanceof E||e instanceof D?e:new D}function ii(e){return Object.values(e).some(e=>e!==void 0)}function ai(e,t,n){return n===!0||e===void 0?void 0:{machineId:e,instanceId:t}}var oi=class{inFlight=new Map;globalBus;ownerInstanceId;machineId;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.ownerInstanceId=e.ownerInstanceId,this.machineId=e.machineId,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{if(e.payload.ownerInstanceId!==void 0&&e.payload.ownerInstanceId!==this.ownerInstanceId)return;let{agentId:t,cwd:n,model:r,resumeAdapterSessionId:i,callerOwnsAgentRow:a}=e.payload,o={rpcResumeId:i,cwd:n,model:r,callerOwnsAgentRow:a,...a===!0&&{settlementAckToken:crypto.randomUUID()},publication:Kr({callerOwnsAgentRow:a===!0})},s=this.inFlight.get(t);if(s){e.setResult(await s);return}let c=this.registry.beginStart();if(c===void 0){e.setResult(Q(`Adapter is closing and cannot rehydrate agent ${t}`));return}let l=(async()=>{let e=this.registry.get(t);return e?await this.rehydrateRegisteredAgent(t,e,o):await this.rehydrateFromStorage(t,o)})().catch(e=>{if(e instanceof AggregateError)throw AggregateError(e.errors,`Failed to recover agent ${t}: ${e.message}`);let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,l);let u;try{u=await l}finally{this.inFlight.delete(t),c()}e.setResult(u)};preflightDeps(){return{globalBus:this.globalBus,resolveMcpSessionContext:(e,t)=>this.resolveMcpSessionContext(e,t)}}async rehydrateFromStorage(e,t){if(!this.registry.claimAgentIdentity(e))return Q(`Agent ${e} is already claimed by another in-flight start or rehydrate`);try{return await this.rehydrateClaimedFromStorage(e,t)}finally{this.registry.releaseAgentIdentityClaim(e)}}async rehydrateClaimedFromStorage(e,t){let{rpcResumeId:n,cwd:r,model:i,callerOwnsAgentRow:a}=t,o=await Qr(this.preflightDeps(),e,t);if(`success`in o)return o;let{persisted:s,agentCreationRequest:c,restoredUsage:l}=o,u=await this.claimAndCreateAgent(e,s,c,n);if(`success`in u)return u;let{agent:d,adapterSessionId:f}=u;return this.registry.set(e,{agent:d,sessionId:s.sessionId,adapterSessionId:f,usage:l,callerOwnsAgentRow:a===!0,...t.settlementAckToken!==void 0&&{pendingCallerSettlement:{token:t.settlementAckToken,publication:t.publication,adapterSessionId:f}}},n),await this.publishRehydratedRuntime(e,s,d,{cwd:r,model:i,recoveredAdapterSessionId:f,publication:t.publication}),a||await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,adapterSessionId:f,...t.settlementAckToken!==void 0&&{settlementAckToken:t.settlementAckToken}}}async publishRehydratedRuntime(e,t,n,r){let{cwd:i,model:a,recoveredAdapterSessionId:o}=r,s=o!==t.adapterSessionId,c=!X(r.publication);s&&await n.recordConfirmedAdapterSession(o,c);let l=s?qr(r.publication,o):void 0,u=ai(this.machineId,this.ownerInstanceId,c);i===void 0&&a===void 0&&l===void 0&&u===void 0||await this.globalBus.requestOptional(O.updateRuntime,{agentId:e,cwd:i,model:a,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))return Q(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i;try{i=await $r(this.globalBus,n.providerContext??{state:`unresolved`})}catch(t){return r!==void 0&&this.registry.releaseAdapterSessionClaim(r),Q(`Agent ${e} could not activate its provider account: ${t instanceof Error?t.message:String(t)}`)}let a;try{a=await this.createAgentFn(e,t.sessionId,n);let r=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);await a.initialize({...r!==void 0&&{systemPrompt:r}});let o=await a.getAdapterSessionId()||t.adapterSessionId;if(!o)throw Error(`Recovered agent ${e} has no adapterSessionId`);return await ei(i),{agent:a,adapterSessionId:o}}catch(t){try{let n=a;return await ti({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>L(n.close({emitSessionClosed:!1}))},operation:`Cold rehydrate for agent ${e}`,cleanupFailureMessage:`Cold rehydrate and connector cleanup both failed for agent ${e}.`})}finally{r!==void 0&&this.registry.releaseAdapterSessionClaim(r)}}}async rehydrateRegisteredAgent(e,t,n){let r=Z(t),i=n.rpcResumeId,a=i===r?void 0:i;if(a!==void 0&&!this.registry.claimAdapterSession(a))return Q(`Provider session ${a} is already claimed by another in-flight rehydrate or start`);let o=t.adapterSessionId,s=!X(n.publication);try{await t.agent.swapConnector({cwd:n.cwd,model:n.model,...i!==void 0&&{adapterSessionId:i},resumeAdapterSessionId:i},void 0,s);let e=await t.agent.getAdapterSessionId();e&&(t.adapterSessionId=e)}catch(t){if(t instanceof Y)return Q(`Agent ${e} is being torn down on this adapter instance and cannot be rehydrated in place`);throw t}finally{a!==void 0&&this.registry.releaseAdapterSessionClaim(a)}let c=t.adapterSessionId===o?void 0:t.adapterSessionId,l=qr(n.publication,c),u=ai(this.machineId,this.ownerInstanceId,n.callerOwnsAgentRow);return ii({cwd:n.cwd,model:n.model,adapterSessionId:l,runtimeOwner:u})&&await this.globalBus.requestOptional(O.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}}),n.callerOwnsAgentRow?n.settlementAckToken!==void 0&&(t.callerOwnsAgentRow=!0,t.pendingCallerSettlement={token:n.settlementAckToken,publication:n.publication,adapterSessionId:t.adapterSessionId}):await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId},...n.settlementAckToken!==void 0&&{settlementAckToken:n.settlementAckToken}}}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(T.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(xe.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(T.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function si(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=li(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new kr({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await ci(t,{bus:t.adapterBus,globalBus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:o.providerContext,...o.providerProtocol!==void 0&&{providerProtocol:o.providerProtocol},...o.adapterProviderAuth!==void 0&&{adapterProviderAuth:o.adapterProviderAuth},compatibleProviderAuths:o.compatibleProviderAuths,providerContextRequired:t.definitionProviders.length>0,...t.clientId!==void 0&&{clientId:t.clientId},ephemeral:!0,...r!==void 0&&{model:r},...t.platformDefaults?.cwd!==void 0&&{cwd:t.platformDefaults.cwd},...t.platformDefaults?.env!==void 0&&{env:t.platformDefaults.env},errorHandler:()=>{console.warn(`[handleInfer:${t.adapterName}] Ephemeral connector failed.`)}},o.providerContext,{...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a}}),u=await di(ui({connector:l.connector,manager:c,prompt:n,...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a},adapterCapabilities:t.adapterCapabilities}),l,t.adapterName);e.setResult({text:u})}async function ci(e,t,n,r){let i=await $r(e.globalBus,n),a;try{return a=await H({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await ei(i),a}catch(t){let n=a;return await ti({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>L(U(n))},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function li(e,t){let n=e===void 0?P():C.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...an(t,n)}}async function ui(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=A(r),c={...i!==void 0&&{systemPrompt:i},turnContext:G(void 0,a,o),...a!==void 0&&{responseSchema:a}},l=await t.start(s,c),u=await l.messageHandle.waitForCompletion(),d=u.result?.message??``;return a===void 0||u.outcome!==`completed`?d:fi({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function di(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let{closeError:a}=await U(t);if(i!==void 0&&a!==void 0)throw AggregateError([i,a],`Ephemeral inference and connector cleanup both failed for ${n}.`,{cause:i});if(i!==void 0)throw i;if(a!==void 0)throw a;return r}async function fi(e){let{connector:t,manager:n,responseSchema:r,startResult:i,text:a}=e,o=await n.validateTerminalResult({responseSchema:r,message:a,retryTurn:async({attemptNumber:e,validationErrors:n})=>{let a={deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageHandle.messageId}:structured-output-retry:${e}`,responseSchema:r,requestCorrelation:i.messageHandle.requestCorrelation,turnContext:{...i.messageHandle.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:n,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}};return(await(await t.sendMessage(i.messageHandle.message,a)).waitForCompletion()).result?.message??``}});if(o.structuredOutputValidation.status===`failed`)throw pi(o.structuredOutputValidation.errors);return o.message??``}function pi(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function mi(e,t){let{model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,reasoningEffort:s,mcpSessionContext:c,harnessId:l,ephemeral:u}=e,d=e.resumeAdapterSessionId??(e.mode===`resume`?e.adapterSessionId:void 0),f=e.providerKeyPublication;return{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,globalBus:t.globalBus,adapterBus:t.adapterBus,teardownArbiter:t.teardownArbiter,capabilities:t.capabilities,nativeTools:t.nativeTools,availableModels:on(t.definitionProviders,n,e.providerContext?.state===`resolved`?e.providerContext.definitionId:void 0),definitionProviders:t.definitionProviders,configFactory:t.configFactory,connectorFactory:t.connectorFactory,...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime},sessionId:t.sessionId,...e.providerContext!==void 0&&{providerContext:e.providerContext},...f!==void 0&&{isProviderKeyPublishable:()=>X(f)},...$t({platformCwd:t.platformDefaults?.cwd,platformEnv:t.platformDefaults?.env,model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,reasoningEffort:s,adapterConfig:e.adapterConfig,resumeAdapterSessionId:d,harnessId:l,clientId:e.clientId??t.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:c,toolLedger:c===void 0?void 0:new Rr,ephemeral:u,nativeFork:sn(e)})}}function $(e){return e.agentId!==void 0}function hi(e,t){return e.cwd??t.getPlatformDefaults()?.cwd}function gi(e){let{agentId:t,sessionId:n,adapterSessionId:r,status:i,resolvedCwd:a,payload:o,deps:s}=e,c=Date.now(),l=e.createdAt??c,u=o.clientId??s.clientId;return{agentId:t,adapterId:s.adapterId,adapterName:s.name,sessionId:n,...s.machineId!==void 0&&{runtimeOwner:{machineId:s.machineId,instanceId:s.ownerInstanceId}},adapterSessionId:r,model:o.model,cwd:a,allowedDirectories:o.allowedDirectories,role:o.role,status:i,createdAt:l,lastActivityAt:c,...u!==void 0&&{clientId:u},...o.harnessId!==void 0&&{harnessId:o.harnessId},...o.providerContext.state===`resolved`&&{providerConfigId:o.providerContext.providerConfigId}}}async function _i(e,t,n){if(!n){try{await t.globalBus.requestOptional(O.set,{agentId:e.agentId,agent:e})}catch(n){console.error(`[AIAdapter:${t.name}] Optional agent persistence failed:`,{agentId:e.agentId,adapterId:t.adapterId,sessionId:e.sessionId,error:n})}return}try{return(await t.globalBus.request(O.set,{agentId:e.agentId,agent:e})).success?void 0:`Agent row for ${e.agentId} was refused by storage`}catch(t){return`Agent row for ${e.agentId} could not be written: ${String(t)}`}}async function vi(e,t){let n=gi({...e,status:`starting`,resolvedCwd:hi(e.payload,t),deps:t});await t.globalBus.request(O.set,{agentId:e.agentId,agent:n})}async function yi(e,t,n,r,i,a){let{adapterId:o,name:s,globalBus:c}=i,l=r.role,u=hi(r,i);if(!$(r)){let o=await _i(gi({agentId:e,sessionId:t,adapterSessionId:n,status:`idle`,createdAt:a.createdAt,resolvedCwd:u,payload:r,deps:i}),i,a.guarded);if(o!==void 0)return o}let d=qr(a.publication,n);try{await c.emit(T.agent.added,{sessionId:t,agentId:e,adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},role:l,model:r.model,cwd:u})}catch(n){console.error(`[AIAdapter:${s}] session.agent.added consumer failed:`,{agentId:e,sessionId:t,error:n})}c.emit(x.session.created,{adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},sessionId:t,model:r.model??`unknown`})}async function bi(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}function xi(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}function Si(e,t){return`Provider session ${e} was not reserved for this start: ${t}`}async function Ci(e,t){let n=crypto.randomUUID(),r;try{r=await Ne(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:{adapterId:t.adapterId,ownerInstanceId:t.ownerInstanceId},role:`member`,resumeProviderSessionId:t.resumeProviderSessionId,claimToken:n})}catch(r){throw await e.requestOptional(T.ownership.release,{agentId:t.agentId,claimToken:n,disposition:`released`}).catch(()=>void 0),r}if(r.outcome!==`reserved`)return r.outcome===`session-not-active`?{kind:`refused`,outcome:r.outcome,sessionStatus:r.status,message:Si(t.resumeProviderSessionId,r.outcome)}:{kind:`refused`,outcome:r.outcome,message:Si(t.resumeProviderSessionId,r.outcome)};let{claim:i,ownerInstanceId:a}=r.reservation;return i===null?{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} was reserved without a claim, so this start has no ownership anchor`}:a!==t.ownerInstanceId||i.ownerInstanceId!==a?(await e.requestOptional(T.ownership.release,{agentId:t.agentId,claimToken:i.claimToken,disposition:`released`}),{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} reservation named runtime ${a}, claim named ${i.ownerInstanceId??`none`}, and adapter owner is ${t.ownerInstanceId}`}):{kind:`reserved`,reservation:{agentId:t.agentId,claimToken:i.claimToken,ownerInstanceId:a}}}async function wi(e,t,n,r){try{await e.requestOptional(T.ownership.release,{agentId:t,claimToken:n,disposition:r})}catch(e){console.debug(`[adapter.startAgent] release for agent ${t} failed:`,e)}}async function Ti(e,t,n){try{if(n){await e.requestOptional(O.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]});return}await e.requestOptional(O.delete,{agentId:t})}catch(e){console.debug(`[adapter.startAgent] settling the row of failed start ${t} failed:`,e)}}async function Ei(e){let{globalBus:t,registry:n,agentId:r,reservation:i,dispatched:a}=e;i!==void 0&&await wi(t,r,i.claimToken,a?`abandoned`:`released`),e.agentRowCreatedAt!==void 0&&await Ti(t,r,a),e.resumeAdapterSessionId!==void 0&&n.releaseAdapterSessionClaim(e.resumeAdapterSessionId),e.claimedIdentity&&n.releaseAgentIdentityClaim(r)}async function Di(e,t,n,r){return await Ei({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),{success:!1,dispatch:`not-dispatched`,message:r}}async function Oi(e,t,n,r){return await Ei({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),await e.registry.evictSilently(t),{success:!1,dispatch:`dispatch-uncertain`,message:r}}async function ki(e,t,n,r){return Di(e,t,n,`An ephemeral start may not resume provider session ${r}: it takes no ownership of it`)}async function Ai(e,t){let{payload:n,agentId:r,sessionId:i,acquisitions:a}=t,o=xi(n);if(o===void 0)return;if(!e.registry.claimAdapterSession(o))return Di(e,r,a,`Provider session ${o} is already claimed by another in-flight start`);if(a.resumeAdapterSessionId=o,n.ephemeral===!0)return ki(e,r,a,o);if($(n))return;let s=Date.now();a.agentRowCreatedAt=s,await vi({agentId:r,sessionId:i,adapterSessionId:o,payload:n,createdAt:s},e);let c=await Ci(e.globalBus,{agentId:r,sessionId:i,adapterId:e.adapterId,adapterName:e.name,ownerInstanceId:e.ownerInstanceId,resumeProviderSessionId:o});if(c.kind===`refused`)return Di(e,r,a,c.message);a.reservation=c.reservation}function ji(e,t,n){return e===void 0?{callerOwnsAgentRow:!1}:{callerOwnsAgentRow:!0,pendingCallerSettlement:{token:e,publication:t,adapterSessionId:n}}}function Mi(e,t,n){if(!(!$(e)||n.claimAgentIdentity(t)))return{success:!1,dispatch:`not-dispatched`,message:`Agent ${t} is already registered on this adapter instance`}}async function Ni(e,t,n){if(t.initialMessage!==void 0){let r=A(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}function Pi(){return{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}async function Fi(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function Ii(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Li(e,t,n,r){let{sessionContext:i,...a}=e;return{...a,providerContext:t,providerKeyPublication:r,...n===void 0?{}:{sessionContext:n}}}async function Ri(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(T.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}async function zi(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,globalBus:s}=e,c,l;try{c=await $r(s,i),e.markDispatched(),l=await e.createAgent(t,n,Li(r,i,a,e.publication));let o=await Ni(l,r,a);return await ei(c),{agent:l,startResult:o}}catch(e){if(c===void 0)throw e;let t=l;return await ti({activation:c,primaryError:e,...t!==void 0&&{cleanup:()=>L(t.close({emitSessionClosed:!r.ephemeral}))},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}}async function Bi(e,t,n,r){let{name:i,registry:a,globalBus:o,createAgent:s}=e,c=$(t)?crypto.randomUUID():void 0,l=t.providerContext===void 0?P():C.parse(t.providerContext);Ii(t);let u=await Ri(t,o),d={...t,providerContext:l},f=await Ai(e,{payload:d,agentId:n,sessionId:u,acquisitions:r});if(f!==void 0)return{result:f,messageHandle:void 0};let p=xi(t),ee=t.sessionContext?w.parse(t.sessionContext):void 0,{agent:m,startResult:te}=await zi({markDispatched:()=>{r.dispatched=!0},publication:r.publication,agentId:n,sessionId:u,payload:t,providerContext:l,sessionContext:ee,adapterName:i,resumeAdapterSessionId:p,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:h,messageId:g,messageHandle:ne}=te;if(a.set(n,{agent:m,sessionId:u,adapterSessionId:h,usage:Pi(),...ji(c,r.publication,h)},p),r.claimedIdentity=!1,r.resumeAdapterSessionId=void 0,!t.ephemeral){let t=await Hi(e,{agentId:n,sessionId:u,adapterSessionId:h},d,r);if(t!==void 0)return{result:t,messageHandle:void 0};await Vi(m,h,r.publication)}return{result:{success:!0,agentId:n,adapterId:e.adapterId,ownerInstanceId:e.ownerInstanceId,sessionId:u,adapterSessionId:h,...g!==void 0&&{messageId:g},...c!==void 0&&{settlementAckToken:c}},messageHandle:ne}}async function Vi(e,t,n){t!==void 0&&await e.recordConfirmedAdapterSession(t,!X(n))}async function Hi(e,t,n,r){let{agentId:i,sessionId:a,adapterSessionId:o}=t,s;try{s=await yi(i,a,o,n,e,{guarded:r.reservation!==void 0,createdAt:r.agentRowCreatedAt,publication:r.publication})}catch(t){throw await bi(e.registry,i,e.name,t),t}if(s!==void 0)return Oi(e,i,r,s)}function Ui(e){let{name:t,registry:n,globalBus:r}=e;return async function(i){if(i.payload.ownerInstanceId!==void 0&&i.payload.ownerInstanceId!==e.ownerInstanceId)return;let a=n.beginStart();if(a===void 0){i.setResult({success:!1,dispatch:`not-dispatched`,message:`Adapter ${t} is closing and cannot start another agent`});return}try{let a=i.payload,o=a.agentId??crypto.randomUUID(),s=Mi(a,o,n);if(s!==void 0){i.setResult(s);return}let c=$(a),l={claimedIdentity:c,resumeAdapterSessionId:void 0,reservation:void 0,agentRowCreatedAt:void 0,dispatched:!1,publication:Kr({callerOwnsAgentRow:c,...a.ephemeral!==void 0&&{ephemeral:a.ephemeral}})},u;try{u=await Bi(e,a,o,l)}catch(e){throw await Ei({globalBus:r,registry:n,agentId:o,...l}),e}i.setResult(u.result),a.ephemeral&&u.result.success&&Fi(n,o,t,u.messageHandle).catch(e=>{console.warn(`[AIAdapter:${t}] Ephemeral agent cleanup failed:`,e)})}finally{a()}}}function Wi(e){return async t=>{let n=await e.disposeAgent(t.payload.agentId,{deadline:t.deadline,...t.payload.teardown===`connector-only`&&{responsibility:`connector-only`}});t.setResult({success:n.found,evidence:n.evidence,...n.detail!==void 0&&{detail:n.detail}})}}function Gi(e){return t=>{let n=e.get(t.payload.agentId);t.setResult({agent:n===void 0?null:Yr(n)})}}function Ki(e){return async t=>{t.setResult(await e.acknowledgeCallerSettlement(t.payload.agentId,t.payload.settlementAckToken,t.payload.recovery===!0))}}var qi=class{operations;state=`new`;operationTail=Promise.resolve();lastOperation;initFlight;closeFlight;lastCloseReport={evidence:`released`};constructor(e){this.operations=e}init(){if(this.lastOperation===`init`&&this.initFlight!==void 0)return this.initFlight;let e=this.operationTail.then(()=>this.runInitialization());return this.lastOperation=`init`,this.initFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.initFlight===e&&(this.initFlight=void 0,this.lastOperation===`init`&&(this.lastOperation=void 0))}),e}close(){if(this.lastOperation===`close`&&this.closeFlight!==void 0)return this.closeFlight;let e=this.operationTail.then(()=>this.runClose());return this.lastOperation=`close`,this.closeFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.closeFlight===e&&(this.closeFlight=void 0,this.lastOperation===`close`&&(this.lastOperation=void 0))}),e}isInitialized(){return this.state===`initialized`}async runInitialization(){if(this.state===`initialized`)return;this.state===`closing`&&await this.completeShutdown(!1),this.operations.prepareInitialization(),this.state=`initializing`;let e=!1;try{await this.operations.initialize(),e=!0,await Yi(this.operations.bus,this.operations.publication),this.state=`initialized`}catch(t){try{await this.completeShutdown(e)}catch(e){throw AggregateError([t,e],`Adapter initialization and rollback failed`)}throw t}}async runClose(){if(this.state===`closed`)return this.lastCloseReport;let e=this.state===`initialized`;return this.completeShutdown(e)}async completeShutdown(e){return this.state=`closing`,this.lastCloseReport=await this.operations.shutdown(e),this.state=`closed`,this.lastCloseReport}};function Ji(e,t){if(t===void 0||t.trim()===``)throw Error(`AIAdapter ${e} requires a machine identity before announcing initialization`);return t}async function Yi(e,t){await e.emit(x.initialized,t)}async function Xi(e,t){await e.emit(x.deinitialized,{adapterId:t.adapterId,adapterName:t.name,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId})}async function Zi(e,t){try{await Xi(e,t)}catch(e){console.warn(`[AIAdapter] Failed to publish deinitialization for ${t.name}:`,e)}}var Qi=class{adapterId;ownerInstanceId;machineId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;teardownArbiter=new Pr;registry;cleanupFns=[];rehydrationManager;lifecycle;clientId;platformDefaults;definitionProviders;prepareAuthRuntime;agentFactory;configFactory;connectorFactory;constructor(e){if(e.ownerInstanceId===void 0)throw Error(`AIAdapter ${e.name} requires an ownership-authority incarnation`);this.adapterId=e.adapterId??crypto.randomUUID(),this.ownerInstanceId=e.ownerInstanceId,this.machineId=Ji(e.name,e.machineId),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??b,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.prepareAuthRuntime=e.prepareAuthRuntime,this.registry=new Xr({globalBus:this.globalBus,adapterName:this.name,ownerInstanceId:this.ownerInstanceId,arbiter:this.teardownArbiter}),this.rehydrationManager=new oi({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this),machineId:this.machineId,ownerInstanceId:this.ownerInstanceId}),this.lifecycle=new qi({bus:this.globalBus,publication:{adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,capabilities:this.capabilities,nativeTools:this.nativeTools},prepareInitialization:()=>this.registry.reopen(),initialize:this.initializeGeneration.bind(this),shutdown:this.runClose.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId}),t=e.withFilter({ownerInstanceId:this.ownerInstanceId}),n=Wi({disposeAgent:this.disposeAgent.bind(this)}),r=Gi(this.registry),i=Ki(this.registry);this.cleanupFns.push(e.on(x.startAgent,Ui({adapterId:this.adapterId,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(x.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),t.on(x.acknowledgeCallerSettlement,i),e.on(x.infer,e=>si(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,clientId:this.clientId,adapterCapabilities:this.capabilities,definitionProviders:this.definitionProviders,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime})),e.on(S.session.closed,this.handleSessionClosed),e.on(S.started,this.handleStartedReconcileRegistry),e.on(S.usage,this.handleUsage),this.globalBus.on(T.closed,this.handleSessionClosedByService),e.on(x.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(Yr)})}),t.on(x.getAgent,r),t.on(x.stopAgent,n),e.on(x.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(x.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(x.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};init(){return this.lifecycle.init()}async initializeGeneration(){this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit()}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);return this.agentFactory(mi(n,{agentId:e,sessionId:t,adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,globalBus:this.globalBus,adapterBus:this.adapterBus,teardownArbiter:this.teardownArbiter,capabilities:this.capabilities,nativeTools:this.nativeTools,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime,platformDefaults:this.platformDefaults,clientId:this.clientId}))}closeAsync(){return this.lifecycle.close()}async runClose(e){let t={evidence:`released`};try{let e=await this.registry.closeAll(),n=await this.onClose();t=I([...e,...n===void 0?[]:[n]]);let r=e.map(e=>e.closeError).filter(e=>e!==void 0);return r.length>0&&console.warn(`[AIAdapter] ${r.length} agent(s) failed to close:`,r),t}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],e&&await Zi(this.globalBus,this)}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);return t===void 0?void 0:$i(t)}async disposeAgent(e,t={}){return this.registry.dispose(e,t)}getActiveAgents(){return Array.from(this.registry.values()).map($i)}isInitialized(){return this.lifecycle.isInitialized()}};function $i(e){return{agent:e.agent,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}}function ea(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.turns&&(t.turns=e.turns),e.isSidechain!==void 0&&(t.isSidechain=e.isSidechain),e.compressChildren?.length&&(t.children=e.compressChildren.map(ea)),t}var ta=class{processLogFile(e){let t=Array.isArray(e)?e:[e],n=this.extractSessionContext(t),r=this.processRecords(t,n);return{adapterSessionId:n.adapterSessionId,sessionEvent:n.sessionEvent,messageEvents:[n.startedEvent,...r],messagePayloads:[],lineage:{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null}}}};function na(e){let t=new Map,n=[];return n.push(e.on(o.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(o.set,e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;t.set(n,{filePath:n,bytesRead:r,lastModified:i}),e.setResult({success:!0})})),n.push(e.on(o.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const ra=v.object({sessions:v.record(v.string(),v.object({state:v.enum([`idle`,`active`]),currentTurnId:v.string().optional()}))}).default({sessions:{}});var ia=class{options;sessions=new Map;generateTurnId;constructor(e){this.options=e,this.generateTurnId=e.generateTurnId??(()=>crypto.randomUUID())}processRecord(e){let t=this.options.getSessionId(e),n=this.getOrCreateSessionState(t),r=[],i=this.options.detectTurnStart(e),a=this.options.detectTurnComplete(e);if(i){n.state===`active`&&n.currentTurnId&&r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId});let e=this.generateTurnId(t);n.state=`active`,n.currentTurnId=e,r.push({type:`turn.started`,sessionId:t,turnId:e})}else a&&n.state===`active`&&n.currentTurnId&&(r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId}),n.state=`idle`,n.currentTurnId=void 0);return r}getState(e){return this.sessions.get(e)?.state??`idle`}getCurrentTurnId(e){return this.sessions.get(e)?.currentTurnId}hasActiveTurn(e){return this.getState(e)===`active`}resetSession(e){return this.sessions.delete(e)}resetAll(){this.sessions.clear()}serialize(){let e={};for(let[t,n]of this.sessions)e[t]={state:n.state,currentTurnId:n.currentTurnId};return{sessions:e}}restore(e){this.sessions.clear();for(let[t,n]of Object.entries(e.sessions))this.sessions.set(t,{state:n.state,currentTurnId:n.currentTurnId})}getTrackedSessions(){return Array.from(this.sessions.keys())}forceCompleteTurn(e){let t=this.sessions.get(e);if(!t||t.state!==`active`||!t.currentTurnId)return;let n={type:`turn.completed`,sessionId:e,turnId:t.currentTurnId};return t.state=`idle`,t.currentTurnId=void 0,n}getOrCreateSessionState(e){let t=this.sessions.get(e);return t||(t={state:`idle`,currentTurnId:void 0},this.sessions.set(e,t)),t}};const aa=v.object({eventType:v.literal(`agent_started`),model:v.string().optional()}),oa=v.object({eventType:v.literal(`agent_complete`),message:v.string().optional(),error:v.string().optional()}),sa=v.object({eventType:v.literal(`error`),message:v.string(),code:v.string().or(v.number()).optional(),type:v.string().optional()}),ca=v.object({eventType:v.literal(`tool_started`),toolName:v.string(),toolCallId:v.string()}),la=v.object({eventType:v.literal(`tool_completed`),toolName:v.string(),toolCallId:v.string(),result:v.string(),success:v.boolean()});export{Qi as AIAdapter,Nr as AIAgent,Wt as AIAgentConnector,oa as AgentCompleteEventSchema,Sn as AgentEventBridge,Cn as AgentLifecycleEmitter,wn as AgentPayloadEmitter,Fn as AgentRuntimeMutationManager,aa as AgentStartedEventSchema,Pr as AgentTeardownArbiter,bn as AgentTurnExecutor,Kt as BaseConnectorSession,qt as BaseConnectorTurn,ta as BaseLogImporter,R as CONNECTOR_EXIT_OBSERVATION_MS,Mt as ConformanceConnectorRuntimeRegistry,Y as ConnectorSwapVetoedError,sa as ErrorEventSchema,Vr as FactoryUsageCorrelationHeaders,Gt as GenerationRetirementLedger,s as ImportCursorPositionSchema,a as ImportCursorStorageNamespace,o as ImportCursorStorageSubjects,at as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,M as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,it as MAKAIO_CONFORMANCE_PROVIDER_ENV,ot as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,Vt as MessageHandle,Zt as MessageLifecycleTracker,Yt as ProceduralAgentConnector,Jt as ProceduralConnectorTurn,W as SESSION_CLOSED_QUEUE_ERROR,z as SWAP_SETTLEMENT_WAIT_MS,bt as ScopedToolApprovalSchema,Pt as SessionLifecycle,Rr as SessionToolLedger,Qt as ToolCallTracker,la as ToolCompletedEventSchema,ca as ToolStartedEventSchema,ia as TurnTracker,ra as TurnTrackerSerializedStateSchema,Ft as UserMessageQueue,I as aggregateTeardownReports,Wr as bindProviderRequestCorrelation,Gr as buildFactoryUsageCorrelationHeaders,kt as capTeardownEvidence,r as cleanEnvForAdapter,Fe as createAdapterNamespace,Nt as createNoAuthTestProviderContext,nt as createTestProviderContext,xt as createToolApprovalHandler,Qe as defineDiscriminatedHandlers,$e as defineDiscriminatedHandlersSync,V as describeTeardownFailure,B as exitWasObserved,zr as extractMcpCallTarget,Be as formatContextBlockAsText,Xe as formatContextBlocksAsText,ht as formatMessageHistoryAsTranscript,Br as isMcpCallTool,Ct as isTextLikeMimeType,Ht as markCompletedWithFinalResult,yt as mergeScopedToolApproval,j as normalizeEnvValue,A as normalizeMessageInput,St as normalizeMimeType,Ze as parseAIAdapterCapabilities,et as processDiscriminatedItems,tt as processDiscriminatedItemsSync,It as processQueueMessages,xn as registerAgentBusHandlers,na as registerMemoryImportCursorStorage,Lt as rejectQueuedHandles,Ot as reportBestEffortStages,wt as reportObservedExit,Tt as reportRepeatTeardown,ft as resolveConformanceDefinitionProviders,dt as resolveConformanceTestPreset,pt as resolveDisabledNativeTools,vt as resolveRequiredSessionId,rt as resolveTestConfig,L as rethrowTeardownFailure,Dt as runBestEffortStage,Ie as safeJsonStringify,_t as serializeBlockToText,Je as serializeTurnContext,Et as stageFailure,ea as toImportSegment,F as unknownTeardown,Le as withTimeout};
11
+ `)}function lt(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function ut(e){switch(e.type){case`text`:return e.content;case`reasoning`:return e.content;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`} ${e.toolCallId}]\n${e.output}`;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName?.trim()?e.displayName:e.fileName||`Attachment`}]`;default:return lt(e)}}function P(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function dt(e,t,n,r=!1){return P(e,t,`sessionId`,n,r)}function ft(e,t,n,r={}){let i=r.allowPayloadIdentityFallback??!1;if(i){let e=[t.agentId,t.adapterId,t.adapterName,t.adapterSessionId],r=e.filter(Boolean).length;if(r>0&&r<e.length)throw Error(`[${n}] toGlobalToolApproval: context must supply all four identity fields (agentId, adapterId, adapterName, adapterSessionId) or none — partial context with allowPayloadIdentityFallback creates a mixed-source identity tuple`)}let a=dt(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:P(t.agentId,e.agentId,`agentId`,n,i),adapterId:P(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:P(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:P(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const pt={request:de.request.extend({sessionId:y.string().optional()}),response:de.response};function mt(e,t,n){return function(r,i,a){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,o=t(e.payload,r),s=await a.request(C.toolApprove,o);e.setResult(n(s))}catch(t){console.error(`[createToolApprovalHandler] Tool approval request failed:`,t);let r=t instanceof Error?`: ${t.message}`:``;e.setResult(n({action:`deny`,message:`Tool approval request failed${r}`,shouldAbort:!0}))}})}}function ht(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function gt(e){let t=ht(e);return t.startsWith(`text/`)?!0:[`application/json`,`application/xml`,`application/sql`,`application/graphql`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/toml`].includes(t)}function F(){return{state:`unresolved`}}function I(e,t){return{evidence:`unknown`,detail:e,...t!==void 0&&{closeError:t}}}function L(e){let t=e.find(e=>e.closeError!==void 0)?.closeError;return{...ve(e),...t!==void 0&&{closeError:t}}}async function R(e){let t=await e;if(t.closeError!==void 0)throw t.closeError}const z=2e3,B=1e4;async function V(e,t=z){let n,r=new Promise(e=>{n=setTimeout(()=>e(!1),t)});try{return await Promise.race([e.then(()=>!0,()=>!1),r])}finally{n!==void 0&&clearTimeout(n)}}async function _t(e){return await V(e.exited)?{evidence:`exited`}:{evidence:`detached`,detail:`${e.resource} was signalled but its end was not observed within ${z}ms.`}}function vt(){return{evidence:`detached`,detail:`An earlier teardown closed this connector; this call made no observation of its own.`}}function H(e){return e instanceof Error?e.message:String(e)}function yt(e,t){return`${e} failed (${H(t)})`}async function bt(e,t){try{await t();return}catch(t){return yt(e,t)}}function xt(e,t){if(t.length!==0)return I(`${e} left ${t.length===1?`a stage`:`stages`} unaccounted for: ${t.join(`; `)}.`)}function St(e,t,n){return{evidence:_e([e.evidence,t]),detail:e.detail===void 0?n:`${e.detail}; ${n}`}}async function U(e){let t=await(e.prepareAuthRuntime??m)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent},...e.onAdapterSessionMoved!==void 0&&{onAdapterSessionMoved:e.onAdapterSessionMoved}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await wt(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function W(e){let t;try{t={reported:await e.connector.close()}}catch(e){t={failed:e}}let n;try{await e.lease?.release()}catch(e){n=e}return`failed`in t?n===void 0?I(`Connector close failed: ${H(t.failed)}`,t.failed):I(`Connector close and client config lease release both failed.`,AggregateError([t.failed,n],`Connector close and client config lease release both failed.`,{cause:t.failed})):n===void 0?t.reported:I(`Client config lease release failed: ${H(n)}`,n)}async function Ct(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}let n=await W(e.runtime);throw n.closeError!==void 0&&t.push(n.closeError),t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function wt(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var Tt=class{runtimes=new Set;async create(e){let t=await U(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=W({connector:{close:n},...t.lease!==void 0&&{lease:t.lease}}).finally(()=>{this.runtimes.delete(i)}),r)};return Object.defineProperty(t.connector,`close`,{configurable:!0,value:i.close,writable:!0}),this.runtimes.add(i),t.connector}async closeAll(){let e=(await Promise.all([...this.runtimes].map(({close:e})=>e()))).map(e=>e.closeError).filter(e=>e!==void 0);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function Et(e=`test-provider-config`,t=`test-provider`){return{state:`resolved`,providerConfigId:e,definitionId:t,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:t,methodId:`none`},definition:{id:`none`,mode:`none`,label:`No authentication`}}}}var Dt=class{abortController;terminated=!1;constructor(e){this.abortController=e??new AbortController}get signal(){return this.abortController.signal}get isTerminated(){return this.terminated}abort(e){this.terminated||(this.terminated=!0,this.abortController.abort(),e&&Promise.resolve(e()).catch(e=>{console.error(`Error during session cleanup:`,e)}))}onAbort(e){this.abortController.signal.addEventListener(`abort`,e)}},Ot=class{queue=[];enqueue(e){if(e.deliveryMode===`replace`){for(let t of this.queue)t.state===`queued`&&(t.supersededBy=e.messageId,t.markCompleted({outcome:`superseded`,supersededBy:e.messageId}));this.removeSuperseded()}if(e.internalRetry&&e.deliveryMode===`enqueue`){this.enqueueInternalRetry(e);return}this.queue.push(e)}enqueueInternalRetry(e){let t=this.queue.findIndex(e=>e.deliveryMode!==`immediate`&&!e.internalRetry);if(t===-1){this.queue.push(e);return}this.queue.splice(t,0,e)}removeSuperseded(){for(let e=this.queue.length-1;e>=0;e--)this.queue[e].supersededBy&&this.queue.splice(e,1)}dequeue(){return this.queue.shift()}peek(){return this.queue[0]}isEmpty(){return this.queue.length===0}size(){return this.queue.length}clear(){this.queue.length=0}findImmediate(){return this.queue.find(e=>e.deliveryMode===`immediate`)}removeImmediate(e){let t=this.queue.indexOf(e);t>=0&&this.queue.splice(t,1)}drainEnqueued(){let e=[];for(let t=this.queue.length-1;t>=0;t--)this.queue[t].deliveryMode===`enqueue`&&e.unshift(this.queue.splice(t,1)[0]);return e}};const G=`Session closed before queued message could be processed`;async function kt(e,t){let n=t.getCurrentTurn(),r=t.extractContent??jt;if(n?.canAcceptImmediate()){let i=e.findImmediate();if(i)if(e.removeImmediate(i),(await n.pause()).turnEnded)i.markCompleted({outcome:`rejected`});else{let a=n.getMessageHandle(),o=e.drainEnqueued(),s=[];a&&!a.isProcessed&&(s.push(r(a)),a.supersededBy=i.messageId,a.markCompleted({outcome:`superseded`,supersededBy:i.messageId}));for(let e of o)s.push(r(e)),e.supersededBy=i.messageId,e.markCompleted({outcome:`merged`,mergedInto:i.messageId});let c=t.collectMergeExtra?.(a,o);return await t.onBeforeImmediateTurn?.(),await t.startNewTurn(i,s,c)!==!1}}let i=e.peek();return(!n||n.isCompleted()||i?.internalRetry===!0&&n.getMessageHandle().isProcessed)&&i?i.deliveryMode===`immediate`&&n?.isCompleted()?(e.dequeue(),i.markCompleted({outcome:`rejected`}),kt(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function At(e,t=G){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function jt(e){return e.message.message}const Mt=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Nt(e,t){if(e===t)return null;let n=[];switch(t){case`processing_started`:break;case`turn_started`:([`idle`,`processing_finished`,`paused`].includes(e)||e===`active`)&&n.push(`processing_started`);break;case`step_started`:[`idle`,`processing_finished`,`paused`].includes(e)||e===`active`?n.push(`processing_started`,`turn_started`):[`processing_started`,`turn_finished`].includes(e)&&n.push(`turn_started`);break;case`step_finished`:break;case`turn_finished`:e===`step_started`&&n.push(`step_finished`);break;case`processing_finished`:e===`step_started`?n.push(`step_finished`,`turn_finished`):[`turn_started`,`step_finished`].includes(e)&&n.push(`turn_finished`);break}return{isCompletionState:Mt.includes(t),statesToEmit:[...n,t]}}var Pt=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;useNativeResume;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new b;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l,u){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.useNativeResume=u,this.deferredCompletion=new b,this.deferredAcknowledgement=new b,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get wasDelivered(){return this.isAcknowledged===!0}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function Ft(e,t,n){let r=n!==void 0&&!e.isProcessed;return e.markCompleted(t),r?e.waitForCompletion().then(async t=>{try{await n(e,t)}catch(t){console.warn(`[MessageHandle] completion notification failed for messageId: ${e.messageId}`,t)}}):Promise.resolve()}var It=class{committed=0;staged;stage(e){if(!Number.isInteger(e)||e<1)throw RangeError(`canonical turn number: expected positive integer, got ${e}`);if(e<=this.committed)throw RangeError(`canonical turn number: ${e} ≤ committed (${this.committed})`);if(this.staged!==void 0&&e<this.staged)throw RangeError(`canonical turn number: ${e} < staged (${this.staged})`);this.staged=e}consume(){return this.staged===void 0?this.committed+=1:(this.committed=this.staged,this.staged=void 0),this.committed}get current(){return this.committed}get pending(){return this.staged}},Lt=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new ee;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;turnNumbers=new It;adapterName;systemPrompt;constructor(e){let t=e.cwd??Te.tmpdir();if(!te.existsSync(t))throw new ie(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??x,this.filteredBus=e.bus.withFilter({agentId:this.agentId}),this.adapterId=e.adapterId,this.adapterName=e.adapterName,this.adapterSessionId=e.adapterSessionId,this.sessionId=e.sessionId,this.timeouts=e.timeouts??ne([]),this.errorHandler=e.errorHandler,this.model=e.model,this.providerConfigId=e.providerConfigId,this.cwd=t,this.currentReasoningEffort=e.reasoningEffort,this.supportedReasoningLevels=e.supportedReasoningLevels,this.config=e,this.env=h(e?.env??De.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Nt(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}movesProviderSessionOnSuppressedResume(){return!1}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new Pt(n,e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy,t?.requestCorrelation===void 0?void 0:{...t.requestCorrelation,messageId:n},t?.turnId,t?.useNativeResume);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){this.turnNumbers.stage(e)}consumeTurnNumber(){return this.turnNumbers.consume()}get currentTurnNumber(){return this.turnNumbers.current}get pendingTurnNumber(){return this.turnNumbers.pending}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof ue||e instanceof le)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},Rt=class{resource;supersededCount=0;unproven=new Set;constructor(e){this.resource=e}supersede(e){this.supersededCount+=1;let t={generation:this.supersededCount,exited:e};return this.unproven.add(t.generation),t}async retire(e){return e.exited===void 0||!await V(e.exited)?!1:(this.unproven.delete(e.generation),!0)}abandon(e){this.unproven.add(e.generation),e.exited?.then(()=>this.unproven.delete(e.generation),()=>void 0)}capReport(e){let t=this.unretiredDetail();return t===void 0?e:St(e,`detached`,t)}unretiredDetail(){if(this.unproven.size===0)return;let e=[...this.unproven].join(`, `);return`${this.resource} generation ${e} was superseded without its end being observed and may still be running.`}},zt=class{config;bus;sessionId;currentTurn;closing=!1;constructor(e){this.config=e,this.bus=e.bus}completeHandleIfClosing(e){return this.closing?(e.isProcessed||e.markCompleted({outcome:`error`,error:Error(G)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Bt=class{state;bus;adapterId;adapterName;stateChangedCallback;constructor(e,t,n,r){this.bus=e,this.adapterId=t,this.adapterName=n,this.state=r}onStateChanged(e){this.stateChangedCallback=e}async transitionTo(e){let t=this.state;this.state=e,await this.emitStateChange(t,e),await this.stateChangedCallback?.(t,e)}getState(){return this.state}getMessageHandle(){return this.activeMessageHandle}markAcknowledged(){this.activeMessageHandle.markAcknowledged()}markCompleted(e){this.activeMessageHandle.markCompleted(e)}},Vt=class extends Bt{activeMessageHandle;connectorBus;agentId;turnSubjects;aborted=!1;constructor(e,t){super(e.bus,e.adapterId,e.adapterName,t),this.connectorBus=e.bus,this.agentId=e.agentId,this.activeMessageHandle=e.messageHandle,this.turnSubjects=e.turnSubjects}async emitStateChange(e,t){let n={adapterId:this.adapterId,agentId:this.agentId,oldState:e,newState:t,timestamp:Date.now()};switch(await this.connectorBus.emit(this.turnSubjects.state_changed,n),t){case`turn_started`:await this.connectorBus.emit(this.turnSubjects.turn_started,n);break;case`step_started`:await this.connectorBus.emit(this.turnSubjects.step_started,n);break;case`step_finished`:await this.connectorBus.emit(this.turnSubjects.step_finished,n);break;case`turn_finished`:await this.connectorBus.emit(this.turnSubjects.turn_finished,n);break}}async start(){await this.transitionTo(`turn_started`)}async markStepStarted(){(this.state===`turn_started`||this.state===`step_finished`)&&await this.transitionTo(`step_started`)}async markStepFinished(){this.state===`step_started`&&await this.transitionTo(`step_finished`)}async markTurnFinished(){await this.transitionTo(`turn_finished`)}async pause(){if(this.state===`turn_finished`)return{stateBeforePause:this.state,turnEnded:!0};let e=this.state;return this.aborted=!0,{stateBeforePause:e,turnEnded:!1}}async resume(e){throw Error(`${this.adapterName} does not support resume - create new turn with merged content`)}isPaused(){return this.aborted}isCompleted(){return this.state===`turn_finished`}canAcceptImmediate(){return this.state!==`turn_finished`&&!this.aborted}},Ht=class extends Lt{turnEventsWired=!1;turnEventLifecycleClosed=!1;turnEventCleanups=[];activeTurnEventHandlers=new Set;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventLifecycleClosed||this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig(),n=(e,t)=>{this.turnEventCleanups.push(this.on(e,(()=>this.dispatchTurnEvent(t))))};n(e.turn_started,async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}this.turnEventLifecycleClosed||await this.updateProcessingState(`turn_started`)}),n(e.step_started,async()=>{await this.updateProcessingState(`step_started`)}),n(e.step_finished,async()=>{if(await this.updateProcessingState(`step_finished`),this.turnEventLifecycleClosed)return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)}),n(e.turn_finished,async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{if(this.turnEventLifecycleClosed||(await this.updateProcessingState(`processing_finished`),this.turnEventLifecycleClosed))return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()})}async dispatchTurnEvent(e){if(this.turnEventLifecycleClosed)return;let t=e();this.activeTurnEventHandlers.add(t);try{await t}finally{this.activeTurnEventHandlers.delete(t)}}unwireSessionEvents(){for(let e of this.turnEventCleanups)e();this.turnEventCleanups=[],this.turnEventsWired=!1}async closeTurnEventLifecycle(){this.turnEventLifecycleClosed=!0,this.unwireSessionEvents(),await Promise.allSettled(this.activeTurnEventHandlers)}get isTurnEventLifecycleClosed(){return this.turnEventLifecycleClosed}async processUserMessages(e){let[t]=e,n;try{n=await this.ensureSession()}catch(e){let n=e instanceof Error?e:Error(String(e));throw t.isProcessed||t.markCompleted({outcome:`error`,error:n}),n}if(this.turnEventLifecycleClosed)throw t.markCompleted({outcome:`error`,error:Error(G)}),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);let r=this.getSessionQueue();if(r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),this.turnEventLifecycleClosed)throw At(r),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);return await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function Ut(e,t,n,r,i,a,o){let s=t=>async(n,r)=>{let i=t,a={...r,agentId:i.agentId,adapterId:i.adapterId,adapterName:i.adapterName,adapterSessionId:i.adapterSessionId,messageId:i.messageId};await e.emit(n,a)};return t.on(n,(async t=>{let n=r?t.payload[r]:t.payload;if(!n||typeof n!=`object`)return;let c=a[n[i]];if(!c)return;let l=await o(n),u=s(l);if(typeof c==`function`)await c(l,u);else{let{sessionId:t,...n}=l;await e.emit(c,n)}}))}var Wt=class{currentMessageHandle;pendingTrackedHandles=[];currentTurnId;handleTurnIds=new WeakMap;emitGlobal;constructor(e){this.emitGlobal=e.emitGlobal}getCurrentMessageId(){return this.currentMessageHandle?.messageId}getCurrentMessageHandle(){return this.currentMessageHandle}setCurrentTurnId(e){this.currentTurnId=e}clearCurrentTurnId(){this.currentTurnId=void 0}getCurrentTurnId(){return this.currentMessageHandle!==void 0&&this.handleTurnIds.has(this.currentMessageHandle)?this.handleTurnIds.get(this.currentMessageHandle):this.currentTurnId}acknowledge(e,t){let{messageId:n,message:r,mergedFrom:i}=e;this.currentMessageHandle=e,this.removePendingHandle(e),e.wasDelivered||e.markAcknowledged(!0),this.emitGlobal(C.user_message.acknowledged,{messageId:n,mergedFrom:i,...t!==void 0&&{turnId:t}}),this.emitGlobal(C.turn.started,{messageId:n,content:r,mergedFrom:i,...t!==void 0&&{turnId:t}})}complete(e,t,n){let{messageId:r}=e;this.currentMessageHandle===e?this.currentMessageHandle=this.pendingTrackedHandles.shift():this.removePendingHandle(e),this.currentTurnId===n&&(this.currentTurnId=void 0),e.wasDelivered&&this.emitGlobal(C.turn.completed,{messageId:r,message:t.result?.message,outcome:t.outcome,error:t.error instanceof Error?t.error.message:typeof t.error==`string`?t.error:void 0,...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation},...n!==void 0&&{turnId:n}}),this.emitGlobal(C.user_message.completed,{messageId:r,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto,...n!==void 0&&{turnId:n}})}removePendingHandle(e){let t=this.pendingTrackedHandles.indexOf(e);t>=0&&this.pendingTrackedHandles.splice(t,1)}track(e,t,n,r){let i=r?r.turnId:this.currentTurnId;this.handleTurnIds.set(e,i),e.isProcessed||(this.currentMessageHandle===void 0?this.currentMessageHandle=e:this.pendingTrackedHandles.push(e),n!==void 0&&e.addCompletionTransform(async e=>{try{return await n(e)}catch(t){let n={status:`failed`,errors:[{message:t instanceof Error?t.message:`Structured output validation failed`,instancePath:``,schemaPath:`#`}]};return{...e,structuredOutputValidation:n}}})),e.waitForAcknowledgment().then(t=>{t&&this.acknowledge(e,i)},()=>{}),e.waitForCompletion().then(n=>{this.complete(e,n,i),t&&t(e.messageId,n,i)})}},Gt=class{pending=[];register(e,t,n,r){let i=r??crypto.randomUUID();return this.pending.push({messageId:e,correlationId:i,toolName:t,args:n,nativeId:r,registeredAt:Date.now()}),i}resolve(e,t){if(t.nativeId){let n=this.pending.findIndex(n=>n.messageId===e&&n.nativeId===t.nativeId);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`nativeId`,toolName:e.toolName,args:e.args}}}if(t.toolName){let n=this.pending.findIndex(n=>n.messageId===e&&n.toolName===t.toolName);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`toolName`,toolName:e.toolName,args:e.args}}}if(!t.nativeId&&!t.toolName){let t=this.pending.findIndex(t=>t.messageId===e);if(t<0)return{correlationId:null,strategy:`none`};let[n]=this.pending.splice(t,1);return{correlationId:n.correlationId,strategy:`oldest`,toolName:n.toolName,args:n.args}}return{correlationId:null,strategy:`none`}}clearAll(){this.pending=[]}clearMessage(e){this.pending=this.pending.filter(t=>t.messageId!==e)}};function Kt(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=qt({model:e.model,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,resumeAdapterSessionId:e.resumeAdapterSessionId,reasoningEffort:e.reasoningEffort,adapterConfig:e.adapterConfig,harnessId:e.harnessId,clientId:e.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:e.mcpSessionContext,toolLedger:e.toolLedger,ephemeral:e.ephemeral,nativeFork:e.nativeFork});return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.cwd!==void 0&&{cwd:e.cwd},...n}}function qt(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Jt(e,t){return e?.find(e=>e.definition.id===t)?.auth}function Yt(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function Xt(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function Zt(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:Yt(e,t.definitionId),adapterProviderAuth:Jt(e,t.definitionId),compatibleProviderAuths:Xt(e,t.definitionId)}}function Qt(e,t,n){if(e.length===0)return;if(n)return e.find(e=>e.definition.id===n)?.definition.availableModels;if(e.length===1)return e[0]?.definition.availableModels;if(!t)return;let r=e.filter(e=>(e.definition.availableModels??[]).some(e=>e.name===t));if(r.length===1)return r[0]?.definition.availableModels}function $t(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:T.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function en(e){if(e instanceof se||e instanceof re||e instanceof ae||e instanceof oe)return e.code}function tn(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function nn(e,t,n){let r=n??t;return r===void 0&&console.warn(`[AIAgent] No providerContext available for agent "${e}" — using unresolved provider state.`),r??F()}function rn(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function an(e){let{config:t,overrides:n}=e,r=nn(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=Zt(t.definitionProviders,r);return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:r,...a!==void 0&&{providerProtocol:a},...i!==void 0&&{adapterProviderAuth:i},compatibleProviderAuths:o,providerContextRequired:(t.definitionProviders?.length??0)>0,model:n?.model??t.model,cwd:n?.cwd??t.cwd,env:t.env,adapterSessionId:n?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:n!==void 0&&`resumeAdapterSessionId`in n?n.resumeAdapterSessionId:t.resumeAdapterSessionId,reasoningEffort:rn(n,e.currentReasoningEffort),supportedReasoningLevels:tn(e.availableModels,n?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,providerConfig:t.adapterConfig,mcpSessionContext:n?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,...t.nativeFork!==void 0&&{nativeFork:t.nativeFork},ephemeral:t.ephemeral,clientId:t.clientId,clientProfileName:t.clientProfileName,harnessId:t.harnessId,errorHandler:(t,n)=>{n&&e.clearAllToolCalls()}}}function on(e){let{structuredOutputManager:t,getConnector:n,sessionId:r,messageHandle:i,responseSchema:a}=e;return async e=>{if(e.outcome!==`completed`)return e;let o=await t.validateTerminalResult({responseSchema:a,message:e.result?.message,sessionId:r,retryTurn:async({attemptNumber:e,validationErrors:t})=>{let r=n();return r?(await(await r.sendMessage(i.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageId}:structured-output-retry:${e}`,messageHistory:i.messageHistory,responseSchema:a,requestCorrelation:i.requestCorrelation,turnContext:{...i.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:t,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...e,result:e.result!==null&&e.result!==void 0?{...e.result,message:o.message}:e.result,structuredOutputValidation:o.structuredOutputValidation}}}const sn=[`idle`,`active`];function cn(e,t,n){e.requestOptional(k.updateStatus,{agentId:t,status:n,expectedStatus:[...sn]}).catch(()=>void 0)}function ln(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}async function un(e,t,n){try{return await e.emit(C.adapterSession.moved,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,confirmed:n.confirmed,...t.sessionId!==void 0&&{sessionId:t.sessionId},...n.confirmed&&{adapterSessionId:n.adapterSessionId}}),!0}catch(e){return console.warn(`[adapter-session-movement] Failed to announce provider-session movement for agent ${t.agentId}:`,e),!1}}function dn(e){return e.movesProviderSessionOnSuppressedResume()?void 0:e.getConfirmedAdapterSessionId()}var fn=class{lastKnown;lastAnnounced;undelivered;inheritsResumeTarget;callerSettlementPending=!1;bus;host;constructor(e,t){this.bus=e,this.host=t,this.inheritsResumeTarget=t.resumeAdapterSessionId!==void 0}get lastKnownAdapterSessionId(){return this.lastKnown}async record(e,t=!1){if(t&&(this.callerSettlementPending=!0),e!==void 0){if(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.callerSettlementPending||this.host.isProviderKeyPublishable?.()===!1)return;if(e!==this.lastAnnounced){await this.announce({adapterSessionId:e,confirmed:!0});return}}this.undelivered!==void 0&&await this.announce(this.undelivered)}async recordUnconfirmedMove(){this.host.resumeAdapterSessionId=void 0,await this.announce({confirmed:!1})}adoptResumeTarget(e){this.host.resumeAdapterSessionId=e,this.inheritsResumeTarget=e!==void 0}recordCallerSettled(e){this.callerSettlementPending=!1,e!==void 0&&(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.lastAnnounced=e,this.undelivered=void 0)}async announce(e){let t=await un(this.bus,this.identity(),e);this.undelivered=t?void 0:e,t&&e.confirmed&&(this.lastAnnounced=e.adapterSessionId)}identity(){return{agentId:this.host.agentId,adapterId:this.host.adapterId,adapterName:this.host.adapterName,machineId:this.host.machineId,ownerInstanceId:this.host.ownerInstanceId,sessionId:this.host.sessionId}}};function pn(e,t){let n={...e};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);return Object.keys(n).length===0?void 0:n}var mn=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onNativeResumeSuppressed;onMessageHandle;onBeforeDispatch;runDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onNativeResumeSuppressed=e.onNativeResumeSuppressed,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.runDispatch=e.runDispatch??(async e=>e()),this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}async deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),this.movesProviderSession(n)&&await this.onNativeResumeSuppressed?.(),n}movesProviderSession(e){return e||!this.hasResumeTarget()?!1:dn(this.getConnector())===void 0}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?T.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=await this.deriveAndSetPendingStartMode(r.sessionContext),a=j(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,turnId:e.turnId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,useNativeResume:i,turnContext:ln(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:pn(r.sessionContext?.requestCorrelation,{sessionId:this.sessionId,turnId:e.turnId,messageId:e.messageId}),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.assertCanonicalMessageId(e.messageId,o,t,`sendMessage`),this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}})}async executeStart(e,t,n,r){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?T.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=await this.deriveAndSetPendingStartMode(o.sessionContext),c=j(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,useNativeResume:s,turnContext:ln(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:pn(o.sessionContext?.requestCorrelation,{sessionId:this.sessionId}),...r!==void 0&&{responseSchema:r}},u=await i.start(c,l);return this.assertCanonicalMessageId(t?.messageId,u.messageHandle,i,`start`),this.firePostUserMessageHooks(u.messageHandle.messageId),await this.onMessageHandle(u.messageHandle,void 0),u})}async resolvePreUserMessageTurn(e){return this.ephemeral?{message:e.message,sessionContext:e.sessionContext}:Se({agentId:this.agentId,adapterId:this.adapterId,message:e.message,sessionId:this.sessionId,cwd:e.cwd,sessionContext:e.sessionContext,messageId:e.messageId},this.globalBus)}firePostUserMessageHooks(e){xe({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,messageId:e},this.globalBus).catch(e=>{console.error(`[AIAgent] PostUserMessage hook error:`,e)})}assertCanonicalMessageId(e,t,n,r){if(e===void 0||t.messageId===e)return;let i=Error(`Adapter connector contract violation (${this.adapterId}, ${r}): expected MessageHandle.messageId ${JSON.stringify(e)}, received ${JSON.stringify(t.messageId)}`);throw t.markCompleted({outcome:`error`,error:i}),n.handleError(i,!0),i}};function hn(e){let t=e.globalBus.withFilter({agentId:e.agentId}),n=[t.on(C.sendMessage,e.onSendMessage),t.on(C.interrupt,e.onInterrupt),t.on(C.getCapabilities,t=>{t.setResult(e.getCapabilities())}),t.on(C.cwd.change,async t=>{t.setResult(await e.onCwdChange(t.payload))}),t.on(C.model.change,async t=>{t.setResult(await e.onModelChange(t.payload))}),t.on(C.mcp.servers.set,async t=>{t.setResult(await e.onMcpServersSet(t.payload))}),t.on(C.credential.change,async t=>{t.setResult(await e.onCredentialChange(t.payload))}),e.globalBus.on(me.tools.updated,e.onMcpToolsChanged),e.globalBus.on(me.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(E.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var gn=class{emitUsagePayload;emitContextWindowUpdatedPayload;emitToolUsePayload;emitToolOutputPayload;emitAdapterLogPayload;emitStepStartedPayload;emitStepFinishedPayload;toolCallTracker;getBlockIndex;incrementBlockIndex;getUsageModel;getActiveMessageHandle;constructor(e){this.emitUsagePayload=e.emitUsage,this.emitContextWindowUpdatedPayload=e.emitContextWindowUpdated,this.emitToolUsePayload=e.emitToolUse,this.emitToolOutputPayload=e.emitToolOutput,this.emitAdapterLogPayload=e.emitAdapterLog,this.emitStepStartedPayload=e.emitStepStarted,this.emitStepFinishedPayload=e.emitStepFinished,this.toolCallTracker=e.toolCallTracker,this.getBlockIndex=e.getBlockIndex,this.incrementBlockIndex=e.incrementBlockIndex,this.getUsageModel=e.getUsageModel,this.getActiveMessageHandle=e.getActiveMessageHandle}async trackUsage(e){let t=this.getActiveMessageHandle()?.requestCorrelation,n={...e,model:this.getUsageModel()??`unknown`};n.executionId===void 0&&t?.executionId!==void 0&&(n.executionId=t.executionId),n.frameId===void 0&&t?.frameId!==void 0&&(n.frameId=t.frameId),await this.emitUsagePayload(n)}async emitContextWindowUpdate(e){let{currentTokens:t,maxTokens:n,cachedTokens:r}=e,i=n>0&&Number.isFinite(n)&&Number.isFinite(t),a=i?Math.min(100,t/n*100):0,o=i?a>=80?`critical`:a>=60?`warn`:`ok`:`critical`;await this.emitContextWindowUpdatedPayload({currentTokens:t,maxTokens:n,cachedTokens:r,percentage:a,level:o})}async emitToolUse(e,t,n,r){let i=this.toolCallTracker.register(e,t,n,r);return await this.emitToolUsePayload({messageId:e,toolName:t,args:n,toolCallId:i}),i}async emitToolOutput(e,t,n){let{correlationId:r,strategy:i,toolName:a,args:o}=this.toolCallTracker.resolve(e,n);if(!r){await this.emitAdapterLogPayload({level:`warn`,message:`Tool output arrived with no pending tool calls. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()});let r=crypto.randomUUID();return await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:n.toolName??a}),{toolCallId:r,toolName:n.toolName??a??`unknown`}}return i===`oldest`&&await this.emitAdapterLogPayload({level:`warn`,message:`Tool output correlation used fallback. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()}),await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:a,args:o}),{toolCallId:r,toolName:a??`unknown`,args:o}}async emitStepStarted(e,t,n){await this.emitOwnedStepStarted(void 0,e,t,n)}async emitStepStartedForMessage(e,t,n,r){await this.emitOwnedStepStarted(e,t,n,r)}async emitOwnedStepStarted(e,t,n,r){await this.emitStepStartedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),blockData:n,content:r})}async emitStepFinished(e,t){await this.emitOwnedStepFinished(void 0,e,t)}async emitStepFinishedForMessage(e,t,n){await this.emitOwnedStepFinished(e,t,n)}async emitOwnedStepFinished(e,t,n){await this.emitStepFinishedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),content:n}),this.incrementBlockIndex()}},_n=class e{static COMPLETION_DEDUP_LIMIT=1024;sessionClosedEmitted=!1;completedMessageIds=new Set;completedMessageOrder=[];config;constructor(e){this.config=e}async emitStart(e){await this.config.emitStarted(e)}async emitCompletion(t){if(!this.completedMessageIds.has(t.messageId)){this.completedMessageIds.add(t.messageId);try{if(await this.config.onBeforeEmitCompletion(),this.config.clearMessageToolCalls(t.messageId),await this.config.emitComplete(t),this.completedMessageOrder.push(t.messageId),this.completedMessageOrder.length>e.COMPLETION_DEDUP_LIMIT){let e=this.completedMessageOrder.shift();e!==void 0&&this.completedMessageIds.delete(e)}cn(this.config.globalBus,this.config.agentId,`idle`)}catch(e){throw this.completedMessageIds.delete(t.messageId),e}}}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},vn=class{config;constructor(e){this.config=e}async resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId();if(await this.config.setLastKnownAdapterSessionId(e),this.config.isProviderKeyPublishable?.()!==!1)return e??this.config.getLastKnownAdapterSessionId()}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=`turnId`in r?r.turnId:this.config.getCurrentTurnId(),o=await this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase(),d={...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}};return a===void 0&&`turnId`in d&&delete d.turnId,this.config.isProviderKeyPublishable?.()===!1&&`adapterSessionId`in d&&delete d.adapterSessionId,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},yn=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await Ce(t,n))}async commit(){if(this.transaction!==void 0)try{await this.transaction.commit()}finally{this.terminal=!0}}async rollbackPending(){if(!(this.transaction===void 0||this.terminal))try{await this.transaction.rollback()}finally{this.terminal=!0}}},K=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},q=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},bn=class{config;constructor(e){this.config=e}async handle(e){let t=ge.parse(e.providerContext),n=t.providerConfigId;return this.hasProviderMismatch(n)?{success:!1,reason:`provider_mismatch`}:this.config.sequencer.queue(n,e.changeSequence)?this.config.runExclusive(()=>this.applyQueuedChange(t,e.changeSequence)):{success:!1,reason:`stale_change`}}async applyQueuedChange(e,t){let n=e.providerConfigId;if(this.hasProviderMismatch(n))return this.config.sequencer.release(n,t),{success:!1,reason:`provider_mismatch`};if(!this.config.sequencer.isLatest(n,t))return{success:!1,reason:`stale_change`};let r=this.config.getConnector();if(r.getProcessingState()!==`idle`)return this.config.sequencer.release(n,t),{success:!1,reason:`turn_active`};let i;try{return this.assertGuard(n,t,r),i=await yn.prepare(this.config.globalBus,e),this.assertGuard(n,t,r),await this.config.swapConnectorUnlocked({providerContext:e},async()=>{this.assertGuard(n,t,r),await i?.commit()}),this.config.setProviderContext(e),this.config.sequencer.markApplied(n,t),await this.config.persistProviderConfigId(n),{success:!0,swapped:!0}}catch(e){return this.config.sequencer.release(n,t),this.handleFailure(e,i)}}async handleFailure(e,t){if(t!==void 0)try{await t.rollbackPending()}catch(t){let n=xn(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof K)throw e;if(e instanceof O)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof q?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof D?`credential_activation_failed:${e.code}`:`credential_swap_failed`}}hasProviderMismatch(e){let t=this.config.getProviderContext();return t?.state===`resolved`&&t.providerConfigId!==e}assertGuard(e,t,n){if(!this.config.sequencer.isLatest(e,t))throw new q(`stale_change`);if(n.getProcessingState()!==`idle`)throw new q(`turn_active`)}};function xn(e){return e instanceof q?Error(`Credential change rejected (${e.reason}).`):e instanceof D||e instanceof O?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var Sn=class{getConnector;swapConnectorUnlocked;setMcpSessionContext;stagedMcpServersSet;constructor(e){this.getConnector=e.getConnector,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.setMcpSessionContext=e.setMcpSessionContext}async applyStagedMutation(){let e=this.stagedMcpServersSet;if(e===void 0)return;this.stagedMcpServersSet=void 0;let t=await this.handleMcpServersSet(e);if(!t.success)throw Error(`Failed to apply staged MCP server replacement: ${t.reason??`unknown error`}`)}async handleMcpServersSet(e){if(this.getConnector().getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedMcpServersSet={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0}):{success:!1,reason:`turn_active`};try{await this.swapConnectorUnlocked({mcpSessionContext:e.mcpSessionContext})}catch{return{success:!1,reason:`mcp_servers_set_failed: connector_replacement_failed`}}try{this.setMcpSessionContext(e.mcpSessionContext)}catch{return{success:!1,reason:`mcp_servers_set_committed_postprocess_failed`}}return{success:!0,swapped:!0}}};function Cn(e,t){return e===t?!0:!e||!t||e.state!==t.state?!1:e.state===`unresolved`||t.state===`unresolved`?e.state===t.state:e.providerConfigId===t.providerConfigId&&e.definitionId===t.definitionId&&J(e.endpointOverrides,t.endpointOverrides)&&J(e.auth,t.auth)&&J(e.capabilities,t.capabilities)}function J(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>J(e,t[n]));if(!wn(e)||!wn(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&J(e[n],t[n]))}function wn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Tn(e){let{bus:t,agentId:n,currentModel:r,nextModel:i,skipWarning:a}=e;if(a)return{proceed:!0,requestEditHistory:!1};let o=await t.requestOptional(C.validateModelChange,{agentId:n,currentModel:r,nextModel:i});return o.handled?{proceed:o.data.proceed,requestEditHistory:o.data.requestEditHistory??!1}:{proceed:!0,requestEditHistory:!1}}var En=class{config;stagedModelChange;constructor(e){this.config=e}async applyStagedMutation(){if(this.config.getConnector().getProcessingState()!==`idle`)return;let e=this.stagedModelChange;if(e===void 0)return;this.stagedModelChange=void 0;let t=await this.handle(e);if(!t.success)throw Error(`Failed to apply staged model change: ${t.reason??`unknown error`}`)}async handle(e){let t=this.config.getConnector(),{newModel:n,reasoningEffort:r,skipWarning:i}=e,a=e.providerContext===void 0?void 0:w.parse(e.providerContext),o=t.model,s=t.currentReasoningEffort,c=this.hasProviderContextChanged(this.config.getProviderContext(),a);if(n===void 0&&r===void 0&&!c)return{success:!0,swapped:!1};if(t.getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedModelChange={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0,...n!==void 0&&{model:n}}):{success:!1,reason:`turn_active`};if(n===void 0&&!c)return r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r);let l=n??o;return o===l&&!c?r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r):this.handleModelSwap({connector:t,currentModel:o,newModel:l,reasoningEffort:r,previousReasoningEffort:s,providerContext:a,isProviderChange:c,skipWarning:i})}async handleReasoningOnlyChange(e,t,n,r){if(e.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let i=this.resolveReasoningEffort(r,n,e.supportedReasoningLevels),a;try{a=await e.changeReasoningInPlace(r).catch(()=>!1),a||await this.config.swapConnectorUnlocked({model:e.model,reasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_failed: connector_mutation_failed`}}let o=this.config.getConnector();try{o.currentReasoningEffort=i,this.config.setReasoningEffort(i)}catch{return{success:!1,reason:`reasoning_change_committed_postprocess_failed`}}try{await this.config.emitModelChanged({previousModel:t,newModel:t,previousReasoningEffort:n,newReasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_committed_event_failed`}}return{success:!0,swapped:!a,model:t,appliedReasoningEffort:i,supportedReasoningLevels:o.supportedReasoningLevels}}async handleModelSwap(e){let{connector:t,currentModel:n,newModel:r,providerContext:i,isProviderChange:a,skipWarning:o}=e,s=!a&&await t.changeModelInPlace(r).catch(()=>!1),c=!1;if(s)t.model=r;else{try{let e=await this.confirmConnectorSwap(n,r,o);if(!e.proceed)return e.result;c=e.requestEditHistory}catch(e){return{success:!1,reason:Dn(e)}}let t;try{a&&i!==void 0&&(t=await yn.prepare(this.config.globalBus,i)),await this.config.swapConnectorUnlocked({model:r,reasoningEffort:this.resolveReasoningEffort(e.reasoningEffort,e.previousReasoningEffort,this.config.resolveSupportedReasoningLevels(r)),...i&&{providerContext:i}},async()=>t?.commit())}catch(e){if(t!==void 0)try{await t.rollbackPending()}catch(e){let t=Error(`Model/provider connector replacement failed.`);throw AggregateError([t,e],`Model/provider replacement and account activation rollback both failed.`,{cause:t})}if(e instanceof O)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:Dn(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof K?`model_change_committed_persistence_failed`:`model_change_committed_postprocess_failed`}}}async finalizeModelSwap(e,t,n){let{currentModel:r,newModel:i,reasoningEffort:a,previousReasoningEffort:o,providerContext:s,isProviderChange:c}=e,l=this.config.getConnector();s!==void 0&&c&&this.config.setProviderContext(s),l.supportedReasoningLevels=this.config.resolveSupportedReasoningLevels(i);let u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(a,o,u);l.currentReasoningEffort=d,this.config.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>void 0);let f=c&&s!==void 0?s.state===`resolved`?s.providerConfigId:null:void 0;return(r!==i||f!==void 0)&&await this.config.persistRuntimeMutation({...r!==i&&{model:i},...f!==void 0&&{providerConfigId:f}}),(r!==i||d!==o)&&await this.config.emitModelChanged({previousModel:r,newModel:i,previousReasoningEffort:o,newReasoningEffort:d}),n&&this.config.sessionId&&await this.config.globalBus.emit(E.connectorSwap.editRequested,{sessionId:this.config.sessionId,agentId:this.config.agentId,previousModel:r,newModel:i}),{success:!0,swapped:!t,model:i,appliedReasoningEffort:d,supportedReasoningLevels:u}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await Tn({bus:this.config.globalBus,agentId:this.config.agentId,currentModel:e,nextModel:t,skipWarning:n});return r.proceed?{proceed:!0,requestEditHistory:r.requestEditHistory}:{proceed:!1,result:{success:!1,reason:`cancelled`}}}hasProviderContextChanged(e,t){return t===void 0?!1:!Cn(e,t)}};function Dn(e){return e instanceof D?`model_change_failed: provider_activation_${e.code}`:e instanceof O?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var On=class{queuedSequences=new Map;appliedSequences=new Map;queue(e,t){if(!Number.isSafeInteger(t)||t<0)return!1;let n=this.appliedSequences.get(e);if(n!==void 0&&t<=n)return!1;let r=this.queuedSequences.get(e);return r!==void 0&&t<=r?!1:(this.queuedSequences.set(e,t),!0)}isLatest(e,t){return this.queuedSequences.get(e)===t}markApplied(e,t){let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.appliedSequences.set(e,t),this.queuedSequences.get(e)===t&&this.queuedSequences.delete(e)}release(e,t){if(this.queuedSequences.get(e)!==t)return;let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.queuedSequences.delete(e)}clear(e){this.queuedSequences.delete(e),this.appliedSequences.delete(e)}},kn=class{agentId;globalBus;getConnector;runExclusive;swapConnectorUnlocked;emitCwdChanged;mcpServersMutationManager;modelMutationManager;credentialChangeManager;credentialChangeSequencer=new On;constructor(e){this.agentId=e.agentId,this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.runExclusive=e.runExclusive,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.emitCwdChanged=e.emitCwdChanged,this.mcpServersMutationManager=new Sn({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new En({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,emitModelChanged:e.emitModelChanged,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels,persistRuntimeMutation:e=>this.persistRuntimeMutation(e)}),this.credentialChangeManager=new bn({globalBus:e.globalBus,sequencer:this.credentialChangeSequencer,runExclusive:e.runExclusive,getConnector:e.getConnector,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,swapConnectorUnlocked:e.swapConnectorUnlocked,persistProviderConfigId:e=>this.persistRuntimeMutation({providerConfigId:e})})}async handleCwdChange(e){return this.runExclusive(()=>this.handleCwdChangeUnlocked(e))}async handleCwdChangeUnlocked(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let r=t.cwd;try{await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnectorUnlocked({cwd:n})}catch{return{success:!1,reason:`cwd_change_failed: connector_replacement_failed`}}try{await this.persistRuntimeMutation({cwd:n})}catch(e){if(e instanceof K)return{success:!1,reason:`cwd_change_committed_persistence_failed`};throw e}try{await this.emitCwdChanged({previousCwd:r,newCwd:n})}catch{return{success:!1,reason:`cwd_change_committed_event_failed`}}return{success:!0,previousCwd:r}}async applyStagedMutationsUnlocked(){this.getConnector().getProcessingState()===`idle`&&(await this.modelMutationManager.applyStagedMutation(),await this.mcpServersMutationManager.applyStagedMutation())}runTurnDispatch(e){return this.runExclusive(async()=>(await this.applyStagedMutationsUnlocked(),e()))}async handleMcpServersSet(e){return this.runExclusive(()=>this.mcpServersMutationManager.handleMcpServersSet(e))}async handleModelChange(e){return this.runExclusive(()=>this.modelMutationManager.handle(e))}async handleCredentialChanged(e){return this.credentialChangeManager.handle(e)}async persistRuntimeMutation(e){try{let t=await this.globalBus.requestOptional(k.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new K}catch(e){throw e instanceof K?e:new K}}},An=class{connectorWiringCleanups=[];busHandlerCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){A(this.connectorWiringCleanups,`Connector wiring for agent ${this.config.agentId}`),this.connectorWiringCleanups=[]}addBusHandlerCleanups(...e){this.busHandlerCleanups.push(...e)}detachWiring(){let e=this.takeBusHandlerCleanups();return this.clearConnectorWiring(),e}takeBusHandlerCleanups(){let e=this.busHandlerCleanups;return this.busHandlerCleanups=[],e}releaseBusHandlers(){A(this.takeBusHandlerCleanups(),`Bus handler`)}releaseWiring(){A(this.detachWiring(),`Bus handler`)}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e,t,n=!1,r){let i=this.config.getConnectorRuntime(),a=i.connector;if(a.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${a.getProcessingState()})`);let o=await this.createReplacementRuntime(a,e),s=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let c=await this.initializeReplacement(o,s,t,r);return c!==void 0&&await this.config.setLastKnownAdapterSessionId(c,n),this.config.setConnectorRuntime(o),this.runWiringCleanups(s),await this.closePreviousRuntime(i,r),c}async createReplacementRuntime(e,t){let n=this.config.buildConfigInput({cwd:t?.cwd??e.cwd,model:t?.model??e.model,...t?.providerContext&&{providerContext:t.providerContext},...t?.mcpSessionContext&&{mcpSessionContext:t.mcpSessionContext},...t!==void 0&&`reasoningEffort`in t&&{reasoningEffort:t.reasoningEffort},adapterSessionId:t?.adapterSessionId??crypto.randomUUID(),...t!==void 0&&`resumeAdapterSessionId`in t&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return U({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),onAdapterSessionMoved:this.config.announceAdapterSessionMoved,prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n,r){try{await this.wireAllConnectorEvents(e.connector),await e.connector.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()});let t=e.connector.getConfirmedAdapterSessionId();return await n?.(),t}catch(n){this.clearConnectorWiring(),this.connectorWiringCleanups=t;let i=await W(e);throw r?.(i,e),i.closeError===void 0?n:AggregateError([n,i.closeError],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}}runWiringCleanups(e){A(e,`Superseded connector wiring for agent ${this.config.agentId}`)}async closePreviousRuntime(e,t){let n=await W(e);if(t?.(n,e),n.closeError===void 0)return;let r={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(r)}catch{console.warn(`[AIAgent] ${r.code} for agent ${r.agentId}; cleanup diagnostic delivery also failed.`)}}},jn=class{tail=Promise.resolve();async runExclusive(e){let t=this.tail,n;this.tail=new Promise(e=>{n=e}),await t;try{return await e()}finally{n?.()}}},Mn=class{config;barrier=new jn;constructor(e){this.config=e}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t,n=!1){await this.runExclusive(async()=>{let r;try{e?.providerContext!==void 0&&(r=await yn.prepare(this.config.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await r?.commit()},n)}catch(e){if(r!==void 0)try{await r.rollbackPending()}catch(e){let t=Error(`Public connector replacement failed.`);throw AggregateError([t,e],`Connector replacement and account activation rollback both failed.`,{cause:t})}throw e}})}async swapConnectorUnlocked(e,t,n=!1){let r=this.config.arbiter.admitSwap(this.config.agentId,this.config.hasConnectorRuntime),i=[],a=[],o=`rolled-back`;try{let r=await this.config.lifecycleManager.swapConnector(e,t,n,(e,t)=>{a.push(e),e.closeError!==void 0&&i.push(t)});o=`committed`,this.publishRuntimeConfig(e,r)}finally{let e=r.settle({outcome:o,unclosed:i,closeReports:a});try{e.reportsConsumedByWaiter||this.config.recordUnreportedCloseReports(a),e.abandonedByWaiter&&await this.closeRuntimesForAbandonedWaiter(i)}finally{r.retire()}}}publishRuntimeConfig(e,t){e?.providerContext!==void 0&&(this.config.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.runtimeConfig.mcpSessionContext=e.mcpSessionContext),e!==void 0&&`resumeAdapterSessionId`in e&&this.config.publishResumeTargetDecision(e.resumeAdapterSessionId===void 0?void 0:t??e.resumeAdapterSessionId)}async closeRuntimesForAbandonedWaiter(e){this.config.lifecycleManager.clearConnectorWiring();let t=this.config.detachConnectorRuntime();for(let n of t===void 0?e:[t,...e]){let e=await W(n);e.closeError!==void 0&&console.warn(`[AIAgent] Agent ${this.config.agentId} connector replacement inherited a teardown's runtimes and could not close one:`,e.closeError)}}};function Nn(e){return new vn({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,...e.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:e.isProviderKeyPublishable},getEventMetadataDefaults:e.getEventMetadataDefaults})}function Pn(e){return new gn({emitUsage:async t=>{await e.emitGlobal(C.usage,t)},emitContextWindowUpdated:async t=>{await e.emitGlobal(C.contextWindow.updated,t)},emitToolUse:async t=>{await e.emitGlobal(C.tool.use,t)},emitToolOutput:async t=>{await e.emitGlobal(C.tool.output,t)},emitAdapterLog:async t=>{await e.emitGlobal(S.log,t,{includeEventMetadata:!1})},emitStepStarted:async t=>{await e.emitGlobal(C.step.started,t)},emitStepFinished:async t=>{await e.emitGlobal(C.step.finished,t)},toolCallTracker:e.toolCallTracker,getBlockIndex:e.getBlockIndex,incrementBlockIndex:e.incrementBlockIndex,getUsageModel:e.getUsageModel,getActiveMessageHandle:()=>e.lifecycleTracker.getCurrentMessageHandle()})}function Fn(e){return new _n({agentId:e.agentId,globalBus:e.globalBus,emitStarted:async t=>{await e.emitGlobal(C.started,t)},emitComplete:async t=>{await e.emitGlobal(C.complete,t)},emitSessionClosed:async t=>{await e.emitGlobal(C.session.closed,t)},onBeforeEmitCompletion:e.onBeforeEmitCompletion,clearMessageToolCalls:e.clearMessageToolCalls})}function In(e){return new mn(e)}function Ln(e){return new kn({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,runExclusive:e.runExclusive,swapConnectorUnlocked:e.swapConnectorUnlocked,emitCwdChanged:async t=>{await e.emitGlobal(C.cwd.changed,t)},emitModelChanged:async t=>{await e.emitGlobal(C.model.changed,t)},getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,setMcpSessionContext:e.setMcpSessionContext,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels})}function Rn(e){return new An({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(C.idle,{})},getConnectorRuntime:e.getConnectorRuntime,setConnectorRuntime:e.setConnectorRuntime,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,announceAdapterSessionMoved:e.announceAdapterSessionMoved,reportCleanupFailure:t=>e.emitGlobal(S.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}function zn(e){return new Mn(e)}var Bn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}}})),Vn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/applicator":!0},$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}}})),Hn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}}})),Un=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0},$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}}})),Wn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/format":!0},$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),Gn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/meta-data":!0},$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),Kn=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/validation":!0},$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Bn(),n=Vn(),r=Hn(),i=Un(),a=Wn(),o=Gn(),s=Kn(),c=[`/properties`];function l(e){return[t,n,r,i,l(this,a),o,l(this,s)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function l(t,n){return e?t.$dataMetaSchema(n,c):n}}e.default=l})),Jn=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2019=void 0;let c=n(),p=s(),m=u(),h=f(),ee=d(),g=a(),_=qn(),v=`https://json-schema.org/draft/2019-09/schema`;var y=class extends c.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(m.default),p.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(h.default),this.addVocabulary(ee.default),this.opts.discriminator&&this.addKeyword(g.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(_.default.call(this,e),this.refs[`http://json-schema.org/schema`]=v)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(v)?v:void 0)}};e.Ajv2019=y,t.exports=e=y,t.exports.Ajv2019=y,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=y;var te=r();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return te.KeywordCxt}});var b=l();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return b._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return b.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return b.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return b.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return b.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return b.CodeGen}});var ne=i();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return ne.default}});var re=o();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return re.default}})})),Yn=e(c(),1),Xn=e(Jn(),1),Zn=e(p(),1);const Qn=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),$n=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var er=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new Yn.default({allErrors:!0,strict:!1});draft2019Ajv=new Xn.default({allErrors:!0,strict:!1});draft2020Ajv=new Zn.default({allErrors:!0,strict:!1});validatorCache=new WeakMap;constructor(e){this.bus=e.bus,this.agentId=e.agentId,this.adapterId=e.adapterId,this.adapterCapabilities=e.adapterCapabilities}registerDefaultHandlers(){let e=this.bus.withFilter({agentId:this.agentId});return[e.on(C.structuredOutput.retryPolicy,e=>{e.setResult({maxRetries:0})},{priority:-1e3}),e.on(C.structuredOutput.enforce,e=>{e.setResult({enforced:!1,error:`No enforce handler registered`})},{priority:-1e3})]}async validateTerminalResult(e){let{responseSchema:t,message:n,sessionId:r}=e,i=this.validate(t,n);if(i.valid)return{message:n,structuredOutputValidation:{status:`passed`}};let a=n??``,o=i.errors;if(e.retryTurn){let n=await this.bus.requestOptional(C.structuredOutput.retryPolicy,{agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.adapterCapabilities,responseSchema:t,attemptNumber:1}),r=n.handled?n.data.maxRetries:0;for(let n=1;n<=r;n+=1){a=await e.retryTurn({attemptNumber:n,validationErrors:o});let r=this.validate(t,a);if(r.valid)return{message:a,structuredOutputValidation:{status:`passed`}};o=r.errors}}let s=await this.bus.requestOptional(C.structuredOutput.enforce,{agentId:this.agentId,adapterId:this.adapterId,sessionId:r,responseSchema:t,rawOutput:a,validationErrors:o,adapterHasCapability:this.adapterCapabilities.includes(`structuredOutput`)});if(s.handled&&s.data.enforced===!0&&s.data.output!==void 0){let{valid:e}=this.validate(t,s.data.output);if(e)return{message:s.data.output,structuredOutputValidation:{status:`enforced`}}}return{message:a,structuredOutputValidation:{status:`failed`,errors:o}}}validate(e,t){if(t===void 0||t===``)return{valid:!1,errors:[{message:`Expected JSON output but received empty string`,instancePath:``,schemaPath:`#`}]};let n;try{n=JSON.parse(t)}catch{return{valid:!1,errors:[{message:`Output is not valid JSON: ${t.slice(0,120)}`,instancePath:``,schemaPath:`#`}]}}let r=this.getValidator(e);if(r(n))return{valid:!0,errors:[]};let i=this.normalizeErrors(r.errors??[]);return i.length===0&&i.push({message:`Schema validation failed`,instancePath:``,schemaPath:`#`}),{valid:!1,errors:i}}getValidator(e){let t=this.validatorCache.get(e.schema);if(t!==void 0)return t;let n=this.getValidatorCompileTarget(e.schema),r;try{r=n.compiler.compile(n.schema)}catch(e){r=this.createCompileFailureValidator(e)}return this.validatorCache.set(e.schema,r),r}createCompileFailureValidator(e){let t=[{keyword:`schema`,instancePath:``,schemaPath:`#`,params:{},message:`Failed to compile response schema: ${e instanceof Error?e.message:String(e)}`}],n=this.draft07Ajv.compile({});return Object.assign(e=>!1,{errors:t,schema:n.schema,schemaEnv:n.schemaEnv})}getValidatorCompileTarget(e){let t=this.readSchemaUri(e),n=t===void 0?void 0:this.normalizeDraft202012Uri(t),r=t===void 0?void 0:this.normalizeDraft201909Uri(t);return n!==void 0&&$n.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Qn.has(r)?{compiler:this.draft2019Ajv,schema:this.withSchemaUri(e,r)}:{compiler:this.draft07Ajv,schema:this.withoutSchemaUri(e)}}readSchemaUri(e){let t=e.$schema;return typeof t==`string`?t:void 0}normalizeDraft202012Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2020-12\/schema#?$/,e=>e.replace(`http://`,`https://`))}normalizeDraft201909Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2019-09\/schema#?$/,e=>e.replace(`http://`,`https://`))}withSchemaUri(e,t){return e.$schema===t?e:{...e,$schema:t}}withoutSchemaUri(e){if(e.$schema===void 0)return e;let t={...e};return delete t.$schema,t}normalizeErrors(e){return e.map(e=>({message:e.message??`Validation error`,instancePath:e.instancePath,schemaPath:e.schemaPath}))}},tr=class{unreported=[];record(e){for(let{evidence:t,detail:n}of e)this.unreported.push({evidence:t,...n!==void 0&&{detail:n}})}capReport(e){return this.unreported.length===0?e:L([...this.unreported,e])}};function nr(e){let{host:t,adapterSessionTracker:n,getConnector:r}=e;return Nn({globalBus:e.globalBus,getAgentContextBase:()=>({agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId}),lifecycleTracker:e.lifecycleTracker,getConnectorAdapterSessionId:()=>{let e=r();return e===void 0?void 0:dn(e)},getLastKnownAdapterSessionId:()=>n.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>n.record(e),...t.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:t.isProviderKeyPublishable},getEventMetadataDefaults:()=>({clientId:t.clientId,providerConfigId:r()?.providerConfigId??(t.providerContext?.state===`resolved`?t.providerContext.providerConfigId:void 0),occurredAt:Date.now()})})}function rr(e){return t=>{e(C.user_message.sent,{messageId:t.messageId,content:t.message,deliveryMode:t.deliveryMode,turnId:t.turnId})}}var ir=class{connector;connectorRuntime;confirmedModel;initialModel;adapterSessionTracker;initialized=!1;runtimeSystemPrompt;lifecycleTracker=new Wt({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new Gt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;closeReportLedger=new tr;onMessageSent;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??x},this.availableModels=e.availableModels,this.adapterSessionTracker=new fn(this.globalBus,this.config),this.payloadEmitter=nr({globalBus:this.globalBus,host:this.config,lifecycleTracker:this.lifecycleTracker,adapterSessionTracker:this.adapterSessionTracker,getConnector:()=>this.connector});let t=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.onMessageSent=rr(t),this.eventBridge=Pn({emitGlobal:t,toolCallTracker:this.toolCallTracker,lifecycleTracker:this.lifecycleTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.connectorLifecycleManager=this.createConnectorLifecycleManager(t),this.connectorSwapCoordinator=zn({agentId:this.agentId,globalBus:this.globalBus,lifecycleManager:this.connectorLifecycleManager,runtimeConfig:this.config,publishResumeTargetDecision:this.adapterSessionTracker.adoptResumeTarget.bind(this.adapterSessionTracker),arbiter:this.config.teardownArbiter,hasConnectorRuntime:()=>this.connectorRuntime!==void 0,detachConnectorRuntime:this.detachConnectorRuntime.bind(this),recordUnreportedCloseReports:this.closeReportLedger.record.bind(this.closeReportLedger)}),this.turnExecutor=In({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onNativeResumeSuppressed:()=>this.adapterSessionTracker.recordUnconfirmedMove(),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Ln({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,runExclusive:e=>this.connectorSwapCoordinator.runExclusive(e),swapConnectorUnlocked:this.connectorSwapCoordinator.swapConnectorUnlocked.bind(this.connectorSwapCoordinator),emitGlobal:t,getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>tn(this.availableModels,e)}),this.lifecycleEmitter=Fn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:t,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new er({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e){return Rn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:()=>this.onMessageSent,wireEvents:this.wireEvents.bind(this),emitGlobal:e,getConnectorRuntime:()=>{if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector runtime is not initialized.`);return this.connectorRuntime},setConnectorRuntime:e=>{this.connectorRuntime=e,this.connector=e.connector},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:this.adapterSessionTracker.record.bind(this.adapterSessionTracker),announceAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove()})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await U({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.onMessageSent,onAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.connectorLifecycleManager.addBusHandlerCleanups(...hn({globalBus:this.globalBus,agentId:this.agentId,sessionId:this.sessionId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:e=>this.runtimeMutationManager.handleCwdChange(e),onModelChange:e=>this.runtimeMutationManager.handleModelChange(e),onMcpServersSet:e=>this.runtimeMutationManager.handleMcpServersSet(e),onCredentialChange:e=>this.runtimeMutationManager.handleCredentialChanged(e),onTurnStarted:e=>this.connector.setCanonicalTurnNumber(e),onMcpToolsChanged:()=>this.connector.markToolRefreshPending()}),...this.structuredOutputManager.registerDefaultHandlers()),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}catch(e){let n=this.connectorLifecycleManager.detachWiring();this.connectorRuntime=void 0,await Ct({runtime:t,handlerCleanups:n,primaryError:e,agentId:this.agentId})}}async emitStart(e){let t=this.pendingStartMode??`rotation`;this.pendingStartMode=void 0,this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,startMode:t,...e})}setPendingStartMode(e){this.pendingStartMode=e}async emitCompletion(e){await this.lifecycleEmitter.emitCompletion(e)}emitSessionClosed(e){this.lifecycleEmitter.emitSessionClosed(e)}async enrichPayload(e){return this.payloadEmitter.enrichPayload(e)}async emitGlobal(e,t){await this.payloadEmitter.emitGlobal(e,t)}async trackUsage(e){await this.eventBridge.trackUsage(e)}getContextWindowSize(e){let t=e??this.confirmedModel??this.initialModel;if(!(!t||!this.availableModels))return this.availableModels.find(e=>e.name===t)?.contextWindowSize}async emitContextWindowUpdate(e){await this.eventBridge.emitContextWindowUpdate(e)}async emitToolUse(e,t,n,r){return this.eventBridge.emitToolUse(e,t,n,r)}async emitToolOutput(e,t,n){return this.eventBridge.emitToolOutput(e,t,n)}async emitStepStarted(e,t,n){await this.eventBridge.emitStepStarted(e,t,n)}async emitStepFinished(e,t){await this.eventBridge.emitStepFinished(e,t)}getBlockIndex(){return this.currentBlockIndex}incrementBlockIndex(){this.currentBlockIndex++}async sendMessage(e){cn(this.globalBus,this.agentId,`active`),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.connectorLifecycleManager.addBusHandlerCleanups(e)}async swapConnector(e,t,n=!1){await this.connectorSwapCoordinator.swapConnector(e,t,n)}buildConfigInput(e){return an({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`),this.connectorLifecycleManager.releaseWiring();let t=this.detachConnectorRuntime(),n=t===void 0?{evidence:`released`}:await W(t);return this.closeReportLedger.capReport(n)}releaseIdentityWiring(){this.connectorLifecycleManager.releaseBusHandlers()}detachConnectorRuntime(){let e=this.connectorRuntime;return this.connectorRuntime=void 0,e}ensureConnector(){if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=mn.deriveStartMode(r,this.shouldUseNativeResume(r),i);this.setPendingStartMode(a);let o=this.ensureConnector();return await o.initialize(e),o.getConfirmedAdapterSessionId()}async onBeforeEmitCompletion(){}async onMessageHandle(e,t){this.latestMessageCompletion=e.waitForCompletion();let n=e.responseSchema,r=n===void 0?void 0:on({structuredOutputManager:this.structuredOutputManager,getConnector:()=>this.connector,sessionId:this.sessionId,messageHandle:e,responseSchema:n});this.lifecycleTracker.track(e,(e,t,n)=>{let r=t.error,i=r instanceof Error?r.message:r,a=r instanceof Error?en(r):void 0;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...i&&{error:i},...a&&{errorCategory:a},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async recordConfirmedAdapterSession(e,t=!1){await this.adapterSessionTracker.record(e,t)}acknowledgeCallerSettledAdapterSession(e){this.adapterSessionTracker.recordCallerSettled(e)}get currentAdapterSessionId(){return this.adapterSessionTracker.lastKnownAdapterSessionId}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=Ut(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}},Y=class extends Error{agentId;reason;constructor(e,t){super(t===`teardown-in-flight`?`Connector replacement for agent ${e} refused: a teardown is already in flight.`:`Connector replacement for agent ${e} refused: the agent holds no connector runtime.`),this.agentId=e,this.reason=t,this.name=`ConnectorSwapVetoedError`}},ar=class{teardowns=new Map;swaps=new Map;swapRetirementCounts=new Map;hasTeardownInFlight(e){return this.teardowns.has(e)}hasReplacementInFlight(e){return this.swapRetirementCounts.has(e)}hasLifecycleWorkInFlight(){return this.teardowns.size>0||this.swapRetirementCounts.size>0}replacementAgentIdsInFlight(){return this.swapRetirementCounts.keys()}admitSwap(e,t){if(this.teardowns.has(e))throw new Y(e,`teardown-in-flight`);if(!t())throw new Y(e,`no-runtime`);let n=new b,r={settlement:n.getPromise(),abandonedByWaiter:!1,awaitedByWaiter:!1,handover:void 0,retired:!1};return this.swaps.set(e,r),this.swapRetirementCounts.set(e,(this.swapRetirementCounts.get(e)??0)+1),{settle:t=>{if(r.handover!==void 0)return r.handover;let{abandonedByWaiter:i,awaitedByWaiter:a}=r,o={abandonedByWaiter:i,reportsConsumedByWaiter:a&&!i};return r.handover=o,n.resolve(t),this.swaps.get(e)===r&&this.swaps.delete(e),o},retire:()=>{if(r.handover===void 0||r.retired)return;r.retired=!0;let t=(this.swapRetirementCounts.get(e)??1)-1;t===0?this.swapRetirementCounts.delete(e):this.swapRetirementCounts.set(e,t)}}}runTeardown(e,t){let n=this.teardowns.get(e);if(n!==void 0)return n;let r=new b,i=r.getPromise();return this.teardowns.set(e,i),this.settleFlight(e,t,r),i}async settleFlight(e,t,n){try{n.resolve(await this.flyTeardown(e,t))}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.teardowns.delete(e)}}async flyTeardown(e,t){let n=this.swaps.get(e);if(n===void 0)return or(t.closeCurrent());let r=await this.awaitSettlement(n,t.deadline);if(r===void 0)return t.releaseIdentity(),I(`Agent ${e} had an unsettled connector replacement in flight; nothing was closed and the replacement now owns both runtimes.`);let i=[...r.closeReports,await or(t.closeCurrent())];for(let e of r.unclosed)i.push(await or(t.closeUnclosed(e)));return L(i)}async awaitSettlement(e,t){e.awaitedByWaiter=!0;let n=t===void 0?B:Math.min(B,Math.max(0,t-Date.now()-z));if(n<=0){e.abandonedByWaiter=!0;return}let r,i=new Promise(e=>{r=setTimeout(()=>e(void 0),n)});try{let t=await Promise.race([e.settlement,i]);return t===void 0&&(e.abandonedByWaiter=!0),t}finally{r!==void 0&&clearTimeout(r)}}};async function or(e){try{return await e}catch(e){return I(`Teardown threw instead of reporting: ${e instanceof Error?e.message:String(e)}`,e)}}function sr(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function cr(e){let{serverName:t,originalName:n}=sr(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var lr=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=cr(e),this.entries.set(e,t)),t}recordInjection(e,t){let n=new Set(e.map(e=>e.name));for(let n of e){let e=this.upsert(n.name);e.injected=!0,e.lastInjectedAtTurn=t}for(let[e,t]of this.entries)t.injected&&!n.has(e)&&(t.injected=!1)}recordDiscovery(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t)}recordCall(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t),n.callCount+=1,n.lastCalledAtTurn=t}getInjectedTools(){return Array.from(this.entries.values()).filter(e=>e.injected)}getCallCount(e){return this.entries.get(e)?.callCount??0}getEntry(e){return this.entries.get(e)}getAllEntries(){return Array.from(this.entries.values())}async suggestInjectionSet(e,t){return e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema}))}};function ur(e){return typeof e.tool==`string`?e.tool:void 0}function dr(e){return e===pe}const fr={sessionId:`x-factory-session-id`,turnId:`x-factory-turn-id`,messageId:`x-factory-message-id`,llmCallId:`x-factory-llm-call-id`,executionId:`x-factory-execution-id`,frameId:`x-factory-frame-id`},pr=he.shape.sessionId.unwrap(),mr=he.extend({llmCallId:pr});function hr(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function gr(e){let t=mr.parse(e),n={};for(let[e,r]of Object.entries(fr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}function _r(e){return{deferred:e.callerOwnsAgentRow&&e.ephemeral!==!0}}function vr(e,t){if(e?.deferred!==!0)return t}function X(e){return e?.deferred!==!0}function yr(e){e.deferred=!1}function Z(e){return e.agent.currentAdapterSessionId??e.adapterSessionId}function br(e){return{agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:Z(e)}}var xr=class{entries=new Map;pendingAdapterSessionClaims=new Set;pendingAgentIdentityClaims=new Set;startFlights=new Set;settlementAckFlights=new Map;terminalTeardownReports=new Map;lifecycleState=`open`;globalBus;adapterName;ownerInstanceId;arbiter;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName,this.ownerInstanceId=e.ownerInstanceId,this.arbiter=e.arbiter}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(Z(t)===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}claimAgentIdentity(e){return this.pendingAgentIdentityClaims.has(e)||this.entries.has(e)?!1:(this.pendingAgentIdentityClaims.add(e),!0)}releaseAgentIdentityClaim(e){this.pendingAgentIdentityClaims.delete(e)}beginStart(){if(this.lifecycleState!==`open`)return;let e,t=new Promise(t=>{e=t});return this.startFlights.add(t),()=>{e!==void 0&&(e(),e=void 0,this.startFlights.delete(t))}}reopen(){if(this.lifecycleState!==`open`){if(this.lifecycleState!==`closed`||this.arbiter.hasLifecycleWorkInFlight())throw Error(`ActiveAgentRegistry ${this.adapterName} cannot reopen before shutdown fully settles`);this.lifecycleState=`open`}}acknowledgeCallerSettlement(e,t,n=!1){let r=this.entries.get(e);if(r===void 0)return Promise.resolve({acknowledged:!1,reason:`not-hosted`});let i=r.pendingCallerSettlement;if(i===void 0||i.token!==t)return Promise.resolve({acknowledged:!1,reason:`stale-token`});let a=this.settlementAckFlights.get(e);if(a!==void 0)return a.token===t?a.promise:Promise.resolve({acknowledged:!1,reason:`stale-token`});if(this.arbiter.hasTeardownInFlight(e))return Promise.resolve({acknowledged:!1,reason:`teardown-in-flight`});let o,s,c=new Promise((e,t)=>{o=e,s=t});this.settlementAckFlights.set(e,{token:t,promise:c});let l=()=>{this.settlementAckFlights.get(e)?.promise===c&&this.settlementAckFlights.delete(e)};return c.then(l,l),this.finishCallerSettlementAck(e,r,i,n).then(o,s),c}async finishCallerSettlementAck(e,t,n,r){if(!r){let r;try{r=await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`,expectedStatus:[`starting`,`dead`]})}catch(e){throw t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),e}if(!r.handled||!r.data.transitioned)return t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),{acknowledged:!1,reason:`status-refused`}}return this.entries.get(e)!==t||t.pendingCallerSettlement!==n?{acknowledged:!1,reason:`not-hosted`}:(yr(n.publication),t.agent.acknowledgeCallerSettledAdapterSession(n.adapterSessionId),t.pendingCallerSettlement=void 0,t.callerOwnsAgentRow=!1,{acknowledged:!0})}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(Z(t)===e)return!0;return!1}set(e,t,n){this.entries.set(e,{...t,ownerInstanceId:this.ownerInstanceId,callerOwnsAgentRow:t.callerOwnsAgentRow===!0}),this.pendingAgentIdentityClaims.delete(e),n!==void 0&&this.pendingAdapterSessionClaims.delete(n)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear(),this.pendingAgentIdentityClaims.clear(),this.terminalTeardownReports.clear()}hasTeardownSubject(e){return this.entries.has(e)||this.arbiter.hasTeardownInFlight(e)}reportWithNothingToTearDown(e){if(this.pendingAgentIdentityClaims.has(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} is being started on this instance and has no runtime to tear down yet.`};if(this.arbiter.hasReplacementInFlight(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} has an unsettled connector replacement in flight that owns its runtimes; nothing was closed.`};let t=this.terminalTeardownReports.get(e);return t===void 0?{found:!1,evidence:`released`}:{found:!1,...t}}async teardownFlight(e,t){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);try{let n=!this.arbiter.hasTeardownInFlight(e),r=await this.arbiter.runTeardown(e,{deadline:t.deadline,closeCurrent:async()=>{let n=this.entries.get(e);return n===void 0?{evidence:`released`}:n.agent.close({emitSessionClosed:t.emitSessionClosed})},closeUnclosed:e=>W(e),releaseIdentity:()=>this.entries.get(e)?.agent.releaseIdentityWiring()});if(!n||this.arbiter.hasReplacementInFlight(e))return r;let i=this.terminalTeardownReports.get(e),a=i===void 0?r:L([i,r]);return this.terminalTeardownReports.set(e,a),a}finally{this.entries.delete(e)}}async evict(e,t={}){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);let r=this.getEntryCallerOwnsAgentRow(e),i=await this.teardownFlight(e,t);if(!r)try{await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`dead`})}catch(t){if(i.closeError===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(i.closeError!==void 0)throw i.closeError;return i}async evictSilently(e,t={}){let n=await this.teardownFlight(e,{...t,emitSessionClosed:!1});return n.closeError!==void 0&&console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,n.closeError),n}async dispose(e,t={}){if(!this.hasTeardownSubject(e))return this.reportWithNothingToTearDown(e);let n=await this.teardownFlight(e,t);if(t.responsibility!==`connector-only`)try{await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`disposed`})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}return{found:!0,...n}}async closeAll(){this.lifecycleState=`closing`,await Promise.all([...this.startFlights]);let e=new Set([...this.entries.keys(),...this.arbiter.replacementAgentIdsInFlight()]),t=new Map(this.terminalTeardownReports);await Promise.all([...e].map(async e=>{let n=t.get(e),r=this.hasTeardownSubject(e)?await this.teardownFlight(e,{}):this.reportWithNothingToTearDown(e),i=this.terminalTeardownReports.get(e);t.set(e,i!==void 0&&i!==n?i:n===void 0?r:L([n,r]))}));let n=[...t.values()];return this.clear(),this.lifecycleState=`closed`,n}getEntryCallerOwnsAgentRow(e){return this.entries.get(e)?.callerOwnsAgentRow??!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function Sr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(ye.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function Q(e){return{success:!1,message:e,dispatch:`not-dispatched`}}async function Cr(e,t,n){let{rpcResumeId:r,cwd:i,model:a}=n;try{let n=await e.globalBus.requestOptional(k.get,{agentId:t});if(!n.handled||!n.data.agent)return Q(`Agent ${t} not found in storage`);let o=n.data.agent;if(o.status===`disposed`)return Q(`Agent ${t} is disposed and cannot be rehydrated`);let s=await e.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await we(e.globalBus,{adapterName:o.adapterName,providerConfigId:o.providerConfigId});return{persisted:o,agentCreationRequest:{model:a??o.model,cwd:i??o.cwd,allowedDirectories:o.allowedDirectories,...r!==void 0&&{adapterSessionId:r,resumeAdapterSessionId:r},...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},restoredUsage:await Sr(e.globalBus,o.sessionId,t)}}catch(e){return Q(`Agent ${t} could not be prepared for rehydration: ${e instanceof Error?e.message:String(e)}`)}}async function wr(e,t){let n=await Ce(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function Tr(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function Er(e){let t;try{await e.cleanup?.()}catch(e){t=e}let n;if(e.activation.transaction!==void 0&&!e.activation.terminal)try{await e.activation.transaction.rollback()}catch(e){n=e}finally{e.activation.terminal=!0}if(t!==void 0||n!==void 0){let r=[Dr(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(Or(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof O?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([Dr(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function Dr(e,t){return e instanceof D||e instanceof O?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function Or(e){return e instanceof D||e instanceof O?e:new O}function kr(e){return Object.values(e).some(e=>e!==void 0)}function Ar(e,t,n){return n===!0||e===void 0?void 0:{machineId:e,instanceId:t}}var jr=class{inFlight=new Map;globalBus;ownerInstanceId;machineId;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.ownerInstanceId=e.ownerInstanceId,this.machineId=e.machineId,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{if(e.payload.ownerInstanceId!==void 0&&e.payload.ownerInstanceId!==this.ownerInstanceId)return;let{agentId:t,cwd:n,model:r,resumeAdapterSessionId:i,callerOwnsAgentRow:a}=e.payload,o={rpcResumeId:i,cwd:n,model:r,callerOwnsAgentRow:a,...a===!0&&{settlementAckToken:crypto.randomUUID()},publication:_r({callerOwnsAgentRow:a===!0})},s=this.inFlight.get(t);if(s){e.setResult(await s);return}let c=this.registry.beginStart();if(c===void 0){e.setResult(Q(`Adapter is closing and cannot rehydrate agent ${t}`));return}let l=(async()=>{let e=this.registry.get(t);return e?await this.rehydrateRegisteredAgent(t,e,o):await this.rehydrateFromStorage(t,o)})().catch(e=>{if(e instanceof AggregateError)throw AggregateError(e.errors,`Failed to recover agent ${t}: ${e.message}`);let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,l);let u;try{u=await l}finally{this.inFlight.delete(t),c()}e.setResult(u)};preflightDeps(){return{globalBus:this.globalBus,resolveMcpSessionContext:(e,t)=>this.resolveMcpSessionContext(e,t)}}async rehydrateFromStorage(e,t){if(!this.registry.claimAgentIdentity(e))return Q(`Agent ${e} is already claimed by another in-flight start or rehydrate`);try{return await this.rehydrateClaimedFromStorage(e,t)}finally{this.registry.releaseAgentIdentityClaim(e)}}async rehydrateClaimedFromStorage(e,t){let{rpcResumeId:n,cwd:r,model:i,callerOwnsAgentRow:a}=t,o=await Cr(this.preflightDeps(),e,t);if(`success`in o)return o;let{persisted:s,agentCreationRequest:c,restoredUsage:l}=o,u=await this.claimAndCreateAgent(e,s,c,n);if(`success`in u)return u;let{agent:d,adapterSessionId:f}=u;return this.registry.set(e,{agent:d,sessionId:s.sessionId,adapterSessionId:f,usage:l,callerOwnsAgentRow:a===!0,...t.settlementAckToken!==void 0&&{pendingCallerSettlement:{token:t.settlementAckToken,publication:t.publication,adapterSessionId:f}}},n),await this.publishRehydratedRuntime(e,s,d,{cwd:r,model:i,recoveredAdapterSessionId:f,publication:t.publication}),a||await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,adapterSessionId:f,...t.settlementAckToken!==void 0&&{settlementAckToken:t.settlementAckToken}}}async publishRehydratedRuntime(e,t,n,r){let{cwd:i,model:a,recoveredAdapterSessionId:o}=r,s=o!==t.adapterSessionId,c=!X(r.publication);s&&await n.recordConfirmedAdapterSession(o,c);let l=s?vr(r.publication,o):void 0,u=Ar(this.machineId,this.ownerInstanceId,c);i===void 0&&a===void 0&&l===void 0&&u===void 0||await this.globalBus.requestOptional(k.updateRuntime,{agentId:e,cwd:i,model:a,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))return Q(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i;try{i=await wr(this.globalBus,n.providerContext??{state:`unresolved`})}catch(t){return r!==void 0&&this.registry.releaseAdapterSessionClaim(r),Q(`Agent ${e} could not activate its provider account: ${t instanceof Error?t.message:String(t)}`)}let a;try{a=await this.createAgentFn(e,t.sessionId,n);let r=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);await a.initialize({...r!==void 0&&{systemPrompt:r}});let o=await a.getAdapterSessionId()||t.adapterSessionId;if(!o)throw Error(`Recovered agent ${e} has no adapterSessionId`);return await Tr(i),{agent:a,adapterSessionId:o}}catch(t){try{let n=a;return await Er({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>R(n.close({emitSessionClosed:!1}))},operation:`Cold rehydrate for agent ${e}`,cleanupFailureMessage:`Cold rehydrate and connector cleanup both failed for agent ${e}.`})}finally{r!==void 0&&this.registry.releaseAdapterSessionClaim(r)}}}async rehydrateRegisteredAgent(e,t,n){let r=Z(t),i=n.rpcResumeId,a=i===r?void 0:i;if(a!==void 0&&!this.registry.claimAdapterSession(a))return Q(`Provider session ${a} is already claimed by another in-flight rehydrate or start`);let o=t.adapterSessionId,s=!X(n.publication);try{await t.agent.swapConnector({cwd:n.cwd,model:n.model,...i!==void 0&&{adapterSessionId:i},resumeAdapterSessionId:i},void 0,s);let e=await t.agent.getAdapterSessionId();e&&(t.adapterSessionId=e)}catch(t){if(t instanceof Y)return Q(`Agent ${e} is being torn down on this adapter instance and cannot be rehydrated in place`);throw t}finally{a!==void 0&&this.registry.releaseAdapterSessionClaim(a)}let c=t.adapterSessionId===o?void 0:t.adapterSessionId,l=vr(n.publication,c),u=Ar(this.machineId,this.ownerInstanceId,n.callerOwnsAgentRow);return kr({cwd:n.cwd,model:n.model,adapterSessionId:l,runtimeOwner:u})&&await this.globalBus.requestOptional(k.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}}),n.callerOwnsAgentRow?n.settlementAckToken!==void 0&&(t.callerOwnsAgentRow=!0,t.pendingCallerSettlement={token:n.settlementAckToken,publication:n.publication,adapterSessionId:t.adapterSessionId}):await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId},...n.settlementAckToken!==void 0&&{settlementAckToken:n.settlementAckToken}}}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(E.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(me.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(E.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function Mr(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=Pr(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new er({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await Nr(t,{bus:t.adapterBus,globalBus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:o.providerContext,...o.providerProtocol!==void 0&&{providerProtocol:o.providerProtocol},...o.adapterProviderAuth!==void 0&&{adapterProviderAuth:o.adapterProviderAuth},compatibleProviderAuths:o.compatibleProviderAuths,providerContextRequired:t.definitionProviders.length>0,...t.clientId!==void 0&&{clientId:t.clientId},ephemeral:!0,...r!==void 0&&{model:r},...t.platformDefaults?.cwd!==void 0&&{cwd:t.platformDefaults.cwd},...t.platformDefaults?.env!==void 0&&{env:t.platformDefaults.env},errorHandler:()=>{console.warn(`[handleInfer:${t.adapterName}] Ephemeral connector failed.`)}},o.providerContext,{...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a}}),u=await Ir(Fr({connector:l.connector,manager:c,prompt:n,...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a},adapterCapabilities:t.adapterCapabilities}),l,t.adapterName);e.setResult({text:u})}async function Nr(e,t,n,r){let i=await wr(e.globalBus,n),a;try{return a=await U({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await Tr(i),a}catch(t){let n=a;return await Er({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>R(W(n))},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function Pr(e,t){let n=e===void 0?F():w.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...Zt(t,n)}}async function Fr(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=j(r),c={...i!==void 0&&{systemPrompt:i},turnContext:ln(void 0,a,o),...a!==void 0&&{responseSchema:a}},l=await t.start(s,c),u=await l.messageHandle.waitForCompletion(),d=u.result?.message??``;return a===void 0||u.outcome!==`completed`?d:Lr({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function Ir(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let{closeError:a}=await W(t);if(i!==void 0&&a!==void 0)throw AggregateError([i,a],`Ephemeral inference and connector cleanup both failed for ${n}.`,{cause:i});if(i!==void 0)throw i;if(a!==void 0)throw a;return r}async function Lr(e){let{connector:t,manager:n,responseSchema:r,startResult:i,text:a}=e,o=await n.validateTerminalResult({responseSchema:r,message:a,retryTurn:async({attemptNumber:e,validationErrors:n})=>{let a={deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageHandle.messageId}:structured-output-retry:${e}`,responseSchema:r,requestCorrelation:i.messageHandle.requestCorrelation,turnContext:{...i.messageHandle.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:n,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}};return(await(await t.sendMessage(i.messageHandle.message,a)).waitForCompletion()).result?.message??``}});if(o.structuredOutputValidation.status===`failed`)throw Rr(o.structuredOutputValidation.errors);return o.message??``}function Rr(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function zr(e,t){let{model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,reasoningEffort:s,mcpSessionContext:c,harnessId:l,ephemeral:u}=e,d=e.resumeAdapterSessionId??(e.mode===`resume`?e.adapterSessionId:void 0),f=e.providerKeyPublication;return{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,globalBus:t.globalBus,adapterBus:t.adapterBus,teardownArbiter:t.teardownArbiter,capabilities:t.capabilities,nativeTools:t.nativeTools,availableModels:Qt(t.definitionProviders,n,e.providerContext?.state===`resolved`?e.providerContext.definitionId:void 0),definitionProviders:t.definitionProviders,configFactory:t.configFactory,connectorFactory:t.connectorFactory,...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime},sessionId:t.sessionId,...e.providerContext!==void 0&&{providerContext:e.providerContext},...f!==void 0&&{isProviderKeyPublishable:()=>X(f)},...Kt({platformCwd:t.platformDefaults?.cwd,platformEnv:t.platformDefaults?.env,model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,reasoningEffort:s,adapterConfig:e.adapterConfig,resumeAdapterSessionId:d,harnessId:l,clientId:e.clientId??t.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:c,toolLedger:c===void 0?void 0:new lr,ephemeral:u,nativeFork:$t(e)})}}function $(e){return e.agentId!==void 0}function Br(e,t){return e.cwd??t.getPlatformDefaults()?.cwd}function Vr(e){let{agentId:t,sessionId:n,adapterSessionId:r,status:i,resolvedCwd:a,payload:o,deps:s}=e,c=Date.now(),l=e.createdAt??c,u=o.clientId??s.clientId;return{agentId:t,adapterId:s.adapterId,adapterName:s.name,sessionId:n,...s.machineId!==void 0&&{runtimeOwner:{machineId:s.machineId,instanceId:s.ownerInstanceId}},adapterSessionId:r,model:o.model,cwd:a,allowedDirectories:o.allowedDirectories,role:o.role,status:i,createdAt:l,lastActivityAt:c,...u!==void 0&&{clientId:u},...o.harnessId!==void 0&&{harnessId:o.harnessId},...o.providerContext.state===`resolved`&&{providerConfigId:o.providerContext.providerConfigId}}}async function Hr(e,t,n){if(!n){try{await t.globalBus.requestOptional(k.set,{agentId:e.agentId,agent:e})}catch(n){console.error(`[AIAdapter:${t.name}] Optional agent persistence failed:`,{agentId:e.agentId,adapterId:t.adapterId,sessionId:e.sessionId,error:n})}return}try{return(await t.globalBus.request(k.set,{agentId:e.agentId,agent:e})).success?void 0:`Agent row for ${e.agentId} was refused by storage`}catch(t){return`Agent row for ${e.agentId} could not be written: ${String(t)}`}}async function Ur(e,t){let n=Vr({...e,status:`starting`,resolvedCwd:Br(e.payload,t),deps:t});await t.globalBus.request(k.set,{agentId:e.agentId,agent:n})}async function Wr(e,t,n,r,i,a){let{adapterId:o,name:s,globalBus:c}=i,l=r.role,u=Br(r,i);if(!$(r)){let o=await Hr(Vr({agentId:e,sessionId:t,adapterSessionId:n,status:`idle`,createdAt:a.createdAt,resolvedCwd:u,payload:r,deps:i}),i,a.guarded);if(o!==void 0)return o}let d=vr(a.publication,n);try{await c.emit(E.agent.added,{sessionId:t,agentId:e,adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},role:l,model:r.model,cwd:u})}catch(n){console.error(`[AIAdapter:${s}] session.agent.added consumer failed:`,{agentId:e,sessionId:t,error:n})}c.emit(S.session.created,{adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},sessionId:t,model:r.model??`unknown`})}async function Gr(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}function Kr(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}function qr(e,t){return`Provider session ${e} was not reserved for this start: ${t}`}async function Jr(e,t){let n=crypto.randomUUID(),r;try{r=await Ee(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:{adapterId:t.adapterId,ownerInstanceId:t.ownerInstanceId},role:`member`,resumeProviderSessionId:t.resumeProviderSessionId,claimToken:n})}catch(r){throw await e.requestOptional(E.ownership.release,{agentId:t.agentId,claimToken:n,disposition:`released`}).catch(()=>void 0),r}if(r.outcome!==`reserved`)return r.outcome===`session-not-active`?{kind:`refused`,outcome:r.outcome,sessionStatus:r.status,message:qr(t.resumeProviderSessionId,r.outcome)}:{kind:`refused`,outcome:r.outcome,message:qr(t.resumeProviderSessionId,r.outcome)};let{claim:i,ownerInstanceId:a}=r.reservation;return i===null?{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} was reserved without a claim, so this start has no ownership anchor`}:a!==t.ownerInstanceId||i.ownerInstanceId!==a?(await e.requestOptional(E.ownership.release,{agentId:t.agentId,claimToken:i.claimToken,disposition:`released`}),{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} reservation named runtime ${a}, claim named ${i.ownerInstanceId??`none`}, and adapter owner is ${t.ownerInstanceId}`}):{kind:`reserved`,reservation:{agentId:t.agentId,claimToken:i.claimToken,ownerInstanceId:a}}}async function Yr(e,t,n,r){try{await e.requestOptional(E.ownership.release,{agentId:t,claimToken:n,disposition:r})}catch(e){console.debug(`[adapter.startAgent] release for agent ${t} failed:`,e)}}async function Xr(e,t,n){try{if(n){await e.requestOptional(k.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]});return}await e.requestOptional(k.delete,{agentId:t})}catch(e){console.debug(`[adapter.startAgent] settling the row of failed start ${t} failed:`,e)}}async function Zr(e){let{globalBus:t,registry:n,agentId:r,reservation:i,dispatched:a}=e;i!==void 0&&await Yr(t,r,i.claimToken,a?`abandoned`:`released`),e.agentRowCreatedAt!==void 0&&await Xr(t,r,a),e.resumeAdapterSessionId!==void 0&&n.releaseAdapterSessionClaim(e.resumeAdapterSessionId),e.claimedIdentity&&n.releaseAgentIdentityClaim(r)}async function Qr(e,t,n,r){return await Zr({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),{success:!1,dispatch:`not-dispatched`,message:r}}async function $r(e,t,n,r){return await Zr({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),await e.registry.evictSilently(t),{success:!1,dispatch:`dispatch-uncertain`,message:r}}async function ei(e,t,n,r){return Qr(e,t,n,`An ephemeral start may not resume provider session ${r}: it takes no ownership of it`)}async function ti(e,t){let{payload:n,agentId:r,sessionId:i,acquisitions:a}=t,o=Kr(n);if(o===void 0)return;if(!e.registry.claimAdapterSession(o))return Qr(e,r,a,`Provider session ${o} is already claimed by another in-flight start`);if(a.resumeAdapterSessionId=o,n.ephemeral===!0)return ei(e,r,a,o);if($(n))return;let s=Date.now();a.agentRowCreatedAt=s,await Ur({agentId:r,sessionId:i,adapterSessionId:o,payload:n,createdAt:s},e);let c=await Jr(e.globalBus,{agentId:r,sessionId:i,adapterId:e.adapterId,adapterName:e.name,ownerInstanceId:e.ownerInstanceId,resumeProviderSessionId:o});if(c.kind===`refused`)return Qr(e,r,a,c.message);a.reservation=c.reservation}function ni(e,t,n){return e===void 0?{callerOwnsAgentRow:!1}:{callerOwnsAgentRow:!0,pendingCallerSettlement:{token:e,publication:t,adapterSessionId:n}}}function ri(e,t,n){if(!(!$(e)||n.claimAgentIdentity(t)))return{success:!1,dispatch:`not-dispatched`,message:`Agent ${t} is already registered on this adapter instance`}}async function ii(e,t,n){if(t.initialMessage!==void 0){let r=j(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}function ai(){return{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}async function oi(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function si(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function ci(e,t,n,r){let{sessionContext:i,...a}=e;return{...a,providerContext:t,providerKeyPublication:r,...n===void 0?{}:{sessionContext:n}}}async function li(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(E.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}async function ui(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,globalBus:s}=e,c,l;try{c=await wr(s,i),e.markDispatched(),l=await e.createAgent(t,n,ci(r,i,a,e.publication));let o=await ii(l,r,a);return await Tr(c),{agent:l,startResult:o}}catch(e){if(c===void 0)throw e;let t=l;return await Er({activation:c,primaryError:e,...t!==void 0&&{cleanup:()=>R(t.close({emitSessionClosed:!r.ephemeral}))},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}}async function di(e,t,n,r){let{name:i,registry:a,globalBus:o,createAgent:s}=e,c=$(t)?crypto.randomUUID():void 0,l=t.providerContext===void 0?F():w.parse(t.providerContext);si(t);let u=await li(t,o),d={...t,providerContext:l},f=await ti(e,{payload:d,agentId:n,sessionId:u,acquisitions:r});if(f!==void 0)return{result:f,messageHandle:void 0};let p=Kr(t),m=t.sessionContext?T.parse(t.sessionContext):void 0,{agent:h,startResult:ee}=await ui({markDispatched:()=>{r.dispatched=!0},publication:r.publication,agentId:n,sessionId:u,payload:t,providerContext:l,sessionContext:m,adapterName:i,resumeAdapterSessionId:p,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:g,messageId:_,messageHandle:v}=ee;if(a.set(n,{agent:h,sessionId:u,adapterSessionId:g,usage:ai(),...ni(c,r.publication,g)},p),r.claimedIdentity=!1,r.resumeAdapterSessionId=void 0,!t.ephemeral){let t=await pi(e,{agentId:n,sessionId:u,adapterSessionId:g},d,r);if(t!==void 0)return{result:t,messageHandle:void 0};await fi(h,g,r.publication)}return{result:{success:!0,agentId:n,adapterId:e.adapterId,ownerInstanceId:e.ownerInstanceId,sessionId:u,adapterSessionId:g,..._!==void 0&&{messageId:_},...c!==void 0&&{settlementAckToken:c}},messageHandle:v}}async function fi(e,t,n){t!==void 0&&await e.recordConfirmedAdapterSession(t,!X(n))}async function pi(e,t,n,r){let{agentId:i,sessionId:a,adapterSessionId:o}=t,s;try{s=await Wr(i,a,o,n,e,{guarded:r.reservation!==void 0,createdAt:r.agentRowCreatedAt,publication:r.publication})}catch(t){throw await Gr(e.registry,i,e.name,t),t}if(s!==void 0)return $r(e,i,r,s)}function mi(e){let{name:t,registry:n,globalBus:r}=e;return async function(i){if(i.payload.ownerInstanceId!==void 0&&i.payload.ownerInstanceId!==e.ownerInstanceId)return;let a=n.beginStart();if(a===void 0){i.setResult({success:!1,dispatch:`not-dispatched`,message:`Adapter ${t} is closing and cannot start another agent`});return}try{let a=i.payload,o=a.agentId??crypto.randomUUID(),s=ri(a,o,n);if(s!==void 0){i.setResult(s);return}let c=$(a),l={claimedIdentity:c,resumeAdapterSessionId:void 0,reservation:void 0,agentRowCreatedAt:void 0,dispatched:!1,publication:_r({callerOwnsAgentRow:c,...a.ephemeral!==void 0&&{ephemeral:a.ephemeral}})},u;try{u=await di(e,a,o,l)}catch(e){throw await Zr({globalBus:r,registry:n,agentId:o,...l}),e}i.setResult(u.result),a.ephemeral&&u.result.success&&oi(n,o,t,u.messageHandle).catch(e=>{console.warn(`[AIAdapter:${t}] Ephemeral agent cleanup failed:`,e)})}finally{a()}}}function hi(e){return async t=>{let n=await e.disposeAgent(t.payload.agentId,{deadline:t.deadline,...t.payload.teardown===`connector-only`&&{responsibility:`connector-only`}});t.setResult({success:n.found,evidence:n.evidence,...n.detail!==void 0&&{detail:n.detail}})}}function gi(e){return t=>{let n=e.get(t.payload.agentId);t.setResult({agent:n===void 0?null:br(n)})}}function _i(e){return async t=>{t.setResult(await e.acknowledgeCallerSettlement(t.payload.agentId,t.payload.settlementAckToken,t.payload.recovery===!0))}}var vi=class{operations;state=`new`;operationTail=Promise.resolve();lastOperation;initFlight;closeFlight;lastCloseReport={evidence:`released`};constructor(e){this.operations=e}init(){if(this.lastOperation===`init`&&this.initFlight!==void 0)return this.initFlight;let e=this.operationTail.then(()=>this.runInitialization());return this.lastOperation=`init`,this.initFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.initFlight===e&&(this.initFlight=void 0,this.lastOperation===`init`&&(this.lastOperation=void 0))}),e}close(){if(this.lastOperation===`close`&&this.closeFlight!==void 0)return this.closeFlight;let e=this.operationTail.then(()=>this.runClose());return this.lastOperation=`close`,this.closeFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.closeFlight===e&&(this.closeFlight=void 0,this.lastOperation===`close`&&(this.lastOperation=void 0))}),e}isInitialized(){return this.state===`initialized`}async runInitialization(){if(this.state===`initialized`)return;this.state===`closing`&&await this.completeShutdown(!1),this.operations.prepareInitialization(),this.state=`initializing`;let e=!1;try{await this.operations.initialize(),e=!0,await bi(this.operations.bus,this.operations.publication),this.state=`initialized`}catch(t){try{await this.completeShutdown(e)}catch(e){throw AggregateError([t,e],`Adapter initialization and rollback failed`)}throw t}}async runClose(){if(this.state===`closed`)return this.lastCloseReport;let e=this.state===`initialized`;return this.completeShutdown(e)}async completeShutdown(e){return this.state=`closing`,this.lastCloseReport=await this.operations.shutdown(e),this.state=`closed`,this.lastCloseReport}};function yi(e,t){if(t===void 0||t.trim()===``)throw Error(`AIAdapter ${e} requires a machine identity before announcing initialization`);return t}async function bi(e,t){await e.emit(S.initialized,t)}async function xi(e,t){await e.emit(S.deinitialized,{adapterId:t.adapterId,adapterName:t.name,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId})}async function Si(e,t){try{await xi(e,t)}catch(e){console.warn(`[AIAdapter] Failed to publish deinitialization for ${t.name}:`,e)}}var Ci=class{adapterId;ownerInstanceId;machineId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;teardownArbiter=new ar;registry;cleanupFns=[];rehydrationManager;lifecycle;clientId;platformDefaults;definitionProviders;prepareAuthRuntime;agentFactory;configFactory;connectorFactory;constructor(e){if(e.ownerInstanceId===void 0)throw Error(`AIAdapter ${e.name} requires an ownership-authority incarnation`);this.adapterId=e.adapterId??crypto.randomUUID(),this.ownerInstanceId=e.ownerInstanceId,this.machineId=yi(e.name,e.machineId),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??x,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.prepareAuthRuntime=e.prepareAuthRuntime,this.registry=new xr({globalBus:this.globalBus,adapterName:this.name,ownerInstanceId:this.ownerInstanceId,arbiter:this.teardownArbiter}),this.rehydrationManager=new jr({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this),machineId:this.machineId,ownerInstanceId:this.ownerInstanceId}),this.lifecycle=new vi({bus:this.globalBus,publication:{adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,capabilities:this.capabilities,nativeTools:this.nativeTools},prepareInitialization:()=>this.registry.reopen(),initialize:this.initializeGeneration.bind(this),shutdown:this.runClose.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId}),t=e.withFilter({ownerInstanceId:this.ownerInstanceId}),n=hi({disposeAgent:this.disposeAgent.bind(this)}),r=gi(this.registry),i=_i(this.registry);this.cleanupFns.push(e.on(S.startAgent,mi({adapterId:this.adapterId,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(S.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),t.on(S.acknowledgeCallerSettlement,i),e.on(S.infer,e=>Mr(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,clientId:this.clientId,adapterCapabilities:this.capabilities,definitionProviders:this.definitionProviders,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime})),e.on(C.session.closed,this.handleSessionClosed),e.on(C.started,this.handleStartedReconcileRegistry),e.on(C.usage,this.handleUsage),this.globalBus.on(E.closed,this.handleSessionClosedByService),e.on(S.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(br)})}),t.on(S.getAgent,r),t.on(S.stopAgent,n),e.on(S.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(S.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(S.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};init(){return this.lifecycle.init()}async initializeGeneration(){this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit()}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);return this.agentFactory(zr(n,{agentId:e,sessionId:t,adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,globalBus:this.globalBus,adapterBus:this.adapterBus,teardownArbiter:this.teardownArbiter,capabilities:this.capabilities,nativeTools:this.nativeTools,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime,platformDefaults:this.platformDefaults,clientId:this.clientId}))}closeAsync(){return this.lifecycle.close()}async runClose(e){let t={evidence:`released`};try{let e=await this.registry.closeAll(),n=await this.onClose();t=L([...e,...n===void 0?[]:[n]]);let r=e.map(e=>e.closeError).filter(e=>e!==void 0);return r.length>0&&console.warn(`[AIAdapter] ${r.length} agent(s) failed to close:`,r),t}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],e&&await Si(this.globalBus,this)}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);return t===void 0?void 0:wi(t)}async disposeAgent(e,t={}){return this.registry.dispose(e,t)}getActiveAgents(){return Array.from(this.registry.values()).map(wi)}isInitialized(){return this.lifecycle.isInitialized()}};function wi(e){return{agent:e.agent,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}}function Ti(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.turns&&(t.turns=e.turns),e.isSidechain!==void 0&&(t.isSidechain=e.isSidechain),e.compressChildren?.length&&(t.children=e.compressChildren.map(Ti)),t}var Ei=class{processLogFile(e){let t=Array.isArray(e)?e:[e],n=this.extractSessionContext(t),r=this.processRecords(t,n);return{adapterSessionId:n.adapterSessionId,sessionEvent:n.sessionEvent,messageEvents:[n.startedEvent,...r],messagePayloads:[],lineage:{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null}}}};function Di(e){let t=new Map,n=[];return n.push(e.on(_.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(_.set,e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;t.set(n,{filePath:n,bytesRead:r,lastModified:i}),e.setResult({success:!0})})),n.push(e.on(_.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const Oi=y.object({sessions:y.record(y.string(),y.object({state:y.enum([`idle`,`active`]),currentTurnId:y.string().optional()}))}).default({sessions:{}});var ki=class{options;sessions=new Map;generateTurnId;constructor(e){this.options=e,this.generateTurnId=e.generateTurnId??(()=>crypto.randomUUID())}processRecord(e){let t=this.options.getSessionId(e),n=this.getOrCreateSessionState(t),r=[],i=this.options.detectTurnStart(e),a=this.options.detectTurnComplete(e);if(i){n.state===`active`&&n.currentTurnId&&r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId});let e=this.generateTurnId(t);n.state=`active`,n.currentTurnId=e,r.push({type:`turn.started`,sessionId:t,turnId:e})}else a&&n.state===`active`&&n.currentTurnId&&(r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId}),n.state=`idle`,n.currentTurnId=void 0);return r}getState(e){return this.sessions.get(e)?.state??`idle`}getCurrentTurnId(e){return this.sessions.get(e)?.currentTurnId}hasActiveTurn(e){return this.getState(e)===`active`}resetSession(e){return this.sessions.delete(e)}resetAll(){this.sessions.clear()}serialize(){let e={};for(let[t,n]of this.sessions)e[t]={state:n.state,currentTurnId:n.currentTurnId};return{sessions:e}}restore(e){this.sessions.clear();for(let[t,n]of Object.entries(e.sessions))this.sessions.set(t,{state:n.state,currentTurnId:n.currentTurnId})}getTrackedSessions(){return Array.from(this.sessions.keys())}forceCompleteTurn(e){let t=this.sessions.get(e);if(!t||t.state!==`active`||!t.currentTurnId)return;let n={type:`turn.completed`,sessionId:e,turnId:t.currentTurnId};return t.state=`idle`,t.currentTurnId=void 0,n}getOrCreateSessionState(e){let t=this.sessions.get(e);return t||(t={state:`idle`,currentTurnId:void 0},this.sessions.set(e,t)),t}};const Ai=y.object({eventType:y.literal(`agent_started`),model:y.string().optional()}),ji=y.object({eventType:y.literal(`agent_complete`),message:y.string().optional(),error:y.string().optional()}),Mi=y.object({eventType:y.literal(`error`),message:y.string(),code:y.string().or(y.number()).optional(),type:y.string().optional()}),Ni=y.object({eventType:y.literal(`tool_started`),toolName:y.string(),toolCallId:y.string()}),Pi=y.object({eventType:y.literal(`tool_completed`),toolName:y.string(),toolCallId:y.string(),result:y.string(),success:y.boolean()});export{Ci as AIAdapter,ir as AIAgent,Lt as AIAgentConnector,ji as AgentCompleteEventSchema,gn as AgentEventBridge,_n as AgentLifecycleEmitter,vn as AgentPayloadEmitter,kn as AgentRuntimeMutationManager,Ai as AgentStartedEventSchema,ar as AgentTeardownArbiter,mn as AgentTurnExecutor,zt as BaseConnectorSession,Bt as BaseConnectorTurn,Ei as BaseLogImporter,z as CONNECTOR_EXIT_OBSERVATION_MS,Tt as ConformanceConnectorRuntimeRegistry,Y as ConnectorSwapVetoedError,Mi as ErrorEventSchema,fr as FactoryUsageCorrelationHeaders,Rt as GenerationRetirementLedger,v as ImportCursorPositionSchema,g as ImportCursorStorageNamespace,_ as ImportCursorStorageSubjects,Qe as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,N as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Ze as MAKAIO_CONFORMANCE_PROVIDER_ENV,$e as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,Pt as MessageHandle,Wt as MessageLifecycleTracker,Ht as ProceduralAgentConnector,Vt as ProceduralConnectorTurn,G as SESSION_CLOSED_QUEUE_ERROR,B as SWAP_SETTLEMENT_WAIT_MS,pt as ScopedToolApprovalSchema,Dt as SessionLifecycle,lr as SessionToolLedger,Gt as ToolCallTracker,Pi as ToolCompletedEventSchema,Ni as ToolStartedEventSchema,ki as TurnTracker,Oi as TurnTrackerSerializedStateSchema,Ot as UserMessageQueue,L as aggregateTeardownReports,hr as bindProviderRequestCorrelation,gr as buildFactoryUsageCorrelationHeaders,St as capTeardownEvidence,h as cleanEnvForAdapter,Oe as createAdapterNamespace,Et as createNoAuthTestProviderContext,Ye as createTestProviderContext,mt as createToolApprovalHandler,Ge as defineDiscriminatedHandlers,Ke as defineDiscriminatedHandlersSync,H as describeTeardownFailure,V as exitWasObserved,ur as extractMcpCallTarget,Ne as formatContextBlockAsText,Ue as formatContextBlocksAsText,ct as formatMessageHistoryAsTranscript,dr as isMcpCallTool,gt as isTextLikeMimeType,Ft as markCompletedWithFinalResult,ft as mergeScopedToolApproval,M as normalizeEnvValue,j as normalizeMessageInput,ht as normalizeMimeType,We as parseAIAdapterCapabilities,qe as processDiscriminatedItems,Je as processDiscriminatedItemsSync,kt as processQueueMessages,hn as registerAgentBusHandlers,Di as registerMemoryImportCursorStorage,At as rejectQueuedHandles,xt as reportBestEffortStages,_t as reportObservedExit,vt as reportRepeatTeardown,at as resolveConformanceDefinitionProviders,it as resolveConformanceTestPreset,ot as resolveDisabledNativeTools,dt as resolveRequiredSessionId,Xe as resolveTestConfig,R as rethrowTeardownFailure,bt as runBestEffortStage,ke as safeJsonStringify,ut as serializeBlockToText,Ve as serializeTurnContext,yt as stageFailure,Ti as toImportSegment,I as unknownTeardown,Ae as withTimeout};