@makaio/framework 1.0.0-dev-1783282710723 → 1.0.0-dev-1783439621927

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 (194) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapter-Lx6K7yQS.mjs +1 -0
  3. package/dist/adapter-subsystem/index.mjs +1 -1
  4. package/dist/adapters/config/index.d.mts +1 -1
  5. package/dist/adapters/index.d.mts +229 -41
  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/{base-orchestrator-Cw0vpNgB.d.mts → base-orchestrator-ODRyDBzu.d.mts} +79 -3
  10. package/dist/bus/index.mjs +1 -1
  11. package/dist/client-n0OJiTt1.mjs +1 -0
  12. package/dist/contracts/adapter/index.d.mts +2 -2
  13. package/dist/contracts/adapter/index.mjs +1 -1
  14. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  15. package/dist/contracts/adapter/schemas/session-lineage.mjs +1 -1
  16. package/dist/contracts/artifact/index.d.mts +1 -1
  17. package/dist/contracts/client/index.d.mts +2 -2
  18. package/dist/contracts/client/index.mjs +1 -1
  19. package/dist/contracts/config/index.d.mts +6 -6
  20. package/dist/contracts/extension/index.d.mts +2 -2
  21. package/dist/contracts/facet/index.d.mts +1 -1
  22. package/dist/contracts/harness/index.d.mts +1 -1
  23. package/dist/contracts/index.d.mts +375 -197
  24. package/dist/contracts/index.mjs +1 -1
  25. package/dist/contracts/materialization/index.d.mts +3 -3
  26. package/dist/contracts/provider/index.d.mts +1 -1
  27. package/dist/contracts/session/index.d.mts +3 -3
  28. package/dist/contracts/session/index.mjs +1 -1
  29. package/dist/contracts/variant/index.d.mts +1 -1
  30. package/dist/contracts/workflow/index.d.mts +2 -2
  31. package/dist/contracts/workflow/index.mjs +1 -1
  32. package/dist/{definition-DFcxkf2i.d.mts → definition-DpkfJi8v.d.mts} +1 -1
  33. package/dist/drizzle/0021_m_mr8e1j84.sql +3 -0
  34. package/dist/drizzle/0022_m_mr8i4ky3.sql +43 -0
  35. package/dist/drizzle/0023_m_mr9gc37m.sql +1 -0
  36. package/dist/drizzle/meta/_journal.json +21 -0
  37. package/dist/{handler-2bPhRn0u.mjs → handler-BFNvtv5t.mjs} +1 -1
  38. package/dist/handlers-B74FvKlA.mjs +57 -0
  39. package/dist/hooks/index.d.mts +27 -2
  40. package/dist/hooks/index.mjs +1 -1
  41. package/dist/{identity-BarL3JYI.mjs → identity-DC3Pk0ps.mjs} +1 -1
  42. package/dist/{index-4eP9DRL_.d.mts → index-B3fjN5HX.d.mts} +7 -7
  43. package/dist/{index-Bh6lHiW4.d.mts → index-B5Uczo3R.d.mts} +40 -40
  44. package/dist/{index-CL2T6LVv.d.mts → index-BIZeIA5k.d.mts} +8 -8
  45. package/dist/{index-gAFwNiJT.d.mts → index-BvTd61i5.d.mts} +212 -26
  46. package/dist/{index-Y2r0Zvcm.d.mts → index-BvjLe_w9.d.mts} +12 -12
  47. package/dist/{index-2fK9iSHI.d.mts → index-BwGfdbI0.d.mts} +9 -9
  48. package/dist/{index-CaOWqztb.d.mts → index-C8k2f_E0.d.mts} +1 -1
  49. package/dist/{index-DEzdNQum.d.mts → index-CYHWOXUm.d.mts} +1 -1
  50. package/dist/{index-9b2_jXxq.d.mts → index-CwHP8Jxs.d.mts} +514 -96
  51. package/dist/{index-D6aAzr32.d.mts → index-Cyi7y_aG.d.mts} +20 -20
  52. package/dist/{index-DdBRlm7m.d.mts → index-D7Fu3375.d.mts} +401 -21
  53. package/dist/{index-CfIW5biI.d.mts → index-D7rWAEY0.d.mts} +1 -0
  54. package/dist/{index-CTEsbp9H.d.mts → index-DFK3tpEY.d.mts} +83 -5
  55. package/dist/{index-Dg-y1mrq.d.mts → index-DS6kxiFl.d.mts} +28 -28
  56. package/dist/{index-BMbmoarE.d.mts → index-DTBQOCar.d.mts} +16 -16
  57. package/dist/{index-GD-i3DW7.d.mts → index-DmJ-OpTD.d.mts} +1275 -224
  58. package/dist/{index-DLy-tc0L.d.mts → index-Dtb2cVJz.d.mts} +260 -47
  59. package/dist/{index-D9-vOJvZ.d.mts → index-h5go5Dtd.d.mts} +1 -1
  60. package/dist/kernel/extension/index.d.mts +1 -1
  61. package/dist/kernel/index.d.mts +2 -2
  62. package/dist/kernel/observability/index.d.mts +1 -1
  63. package/dist/{lib-Ba55od_d.mjs → lib-BOmKyjWD.mjs} +1 -1
  64. package/dist/{lib-CM_BUxN8.mjs → lib-DLZYp5z3.mjs} +1 -1
  65. package/dist/{loop-gate-handlers-BLoGCWMQ.mjs → loop-gate-handlers-Bjmat-K3.mjs} +1 -1
  66. package/dist/{namespace-D8P8Sxce2.d.mts → namespace-6sIu5nBI2.d.mts} +2 -2
  67. package/dist/{namespace-CfvtDD_U.d.mts → namespace-BLER-Qom.d.mts} +2 -2
  68. package/dist/{namespace-B3ol3pc-.d.mts → namespace-BigVYQyx.d.mts} +12 -0
  69. package/dist/{namespace-j7vFsmYL.d.mts → namespace-C74bbsdZ.d.mts} +2 -2
  70. package/dist/{namespace-B4cV_pk3.d.mts → namespace-CGxFYDlK.d.mts} +32 -32
  71. package/dist/{namespace-LUNf8zo5.d.mts → namespace-D1_9WVCo.d.mts} +157 -0
  72. package/dist/{namespace-KMxsPJwm.d.mts → namespace-D4Uf5Mw_.d.mts} +432 -18
  73. package/dist/{namespace-BsYKEMd8.d.mts → namespace-DAj_riOn.d.mts} +138 -0
  74. package/dist/{namespace-DXW-voCe.d.mts → namespace-DRXQyBe0.d.mts} +204 -24
  75. package/dist/{namespace-DGAWYjbO.d.mts → namespace-JFzrlNs4.d.mts} +27 -27
  76. package/dist/namespace-dFBD2ZmS.mjs +1 -0
  77. package/dist/node/transports/index.mjs +1 -1
  78. package/dist/orchestrator-shared-ChygCvR1.mjs +1 -0
  79. package/dist/{orchestrator-shared-ChOdIgh6.d.mts → orchestrator-shared-DFLb1otg.d.mts} +9 -3
  80. package/dist/{package-MmQvNJ3u.d.mts → package-B6mEMD8r.d.mts} +5 -0
  81. package/dist/package-BQn_RTo7.mjs +1 -0
  82. package/dist/package.json +1 -1
  83. package/dist/runtime-node/index.mjs +1 -1
  84. package/dist/schema-7aKBGB7S.mjs +1 -0
  85. package/dist/{schema-D1HrnvT7.d.mts → schema-B9goOieO.d.mts} +50 -1
  86. package/dist/{schema-DHlTAy0N.mjs → schema-CHp6I33k.mjs} +1 -1
  87. package/dist/{schemas-D-9zNyAM2.d.mts → schemas-9S9Y9PHT2.d.mts} +7 -7
  88. package/dist/{schemas-CoFCV42v.d.mts → schemas-B_t6oOK-.d.mts} +2 -2
  89. package/dist/{schemas-lnE9YoG7.d.mts → schemas-CW6YsPT4.d.mts} +3 -3
  90. package/dist/schemas-CkOigLAT.mjs +1 -0
  91. package/dist/{schemas-BemsLc_V.d.mts → schemas-CurUbHy4.d.mts} +4 -4
  92. package/dist/{schemas-DMCGXlKa.d.mts → schemas-DXeGCbJ9.d.mts} +4 -4
  93. package/dist/schemas-DZGnr9Tl.mjs +1 -0
  94. package/dist/{schemas-DWfo0wp4.d.mts → schemas-DnmbwE_V.d.mts} +7 -7
  95. package/dist/{schemas-DmGRSeIq.d.mts → schemas-t6h9oSct.d.mts} +28 -1
  96. package/dist/services/adapter-runtime/index.d.mts +4 -4
  97. package/dist/services/adapter-runtime/index.mjs +1 -1
  98. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  99. package/dist/services/adapter-runtime/schemas.d.mts +2 -2
  100. package/dist/services/adapter-runtime/schemas.mjs +1 -1
  101. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  102. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  103. package/dist/services/agent-runtime/index.d.mts +2 -2
  104. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  105. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  106. package/dist/services/context-rules/index.d.mts +3 -3
  107. package/dist/services/filesystem/namespace.d.mts +6 -6
  108. package/dist/services/filesystem/schemas.d.mts +3 -3
  109. package/dist/services/git/namespace.d.mts +2 -2
  110. package/dist/services/git/schemas.d.mts +2 -2
  111. package/dist/services/harness/index.d.mts +4 -4
  112. package/dist/services/harness/index.mjs +1 -1
  113. package/dist/services/index.d.mts +129 -53
  114. package/dist/services/index.mjs +1 -1
  115. package/dist/services/log-import/browser.d.mts +2 -2
  116. package/dist/services/log-import/index.d.mts +86 -6
  117. package/dist/services/log-import/index.mjs +2 -2
  118. package/dist/services/log-import/log-import.d.mts +1 -1
  119. package/dist/services/log-import/log-import.mjs +1 -1
  120. package/dist/services/log-import/namespace.d.mts +54 -0
  121. package/dist/services/log-import/namespace.mjs +1 -1
  122. package/dist/services/log-import/schemas.d.mts +44 -0
  123. package/dist/services/log-import/schemas.mjs +1 -1
  124. package/dist/services/preferences/index.d.mts +2 -2
  125. package/dist/services/preferences/schemas.d.mts +1 -1
  126. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  127. package/dist/services/session/handlers/index.d.mts +1 -1
  128. package/dist/services/session/handlers/index.mjs +1 -1
  129. package/dist/services/session/index.d.mts +9 -9
  130. package/dist/services/session/index.mjs +1 -1
  131. package/dist/services/session/messages/namespace.d.mts +1 -1
  132. package/dist/services/session/messages/namespace.mjs +1 -1
  133. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  134. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  135. package/dist/services/session/session-events/namespace.d.mts +1 -1
  136. package/dist/services/session/session-events/namespace.mjs +1 -1
  137. package/dist/services/session/storage/namespace.d.mts +1 -1
  138. package/dist/services/session/storage/schema.d.mts +1 -1
  139. package/dist/services/session/storage/schema.mjs +1 -1
  140. package/dist/services/session/testing/index.mjs +10 -4
  141. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  142. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  143. package/dist/services/session/turns/namespace.d.mts +1 -1
  144. package/dist/services/session/turns/namespace.mjs +1 -1
  145. package/dist/services/session-editor/index.d.mts +1 -1
  146. package/dist/services/settings/namespace.d.mts +7 -7
  147. package/dist/services/subagent-template/index.d.mts +2 -2
  148. package/dist/services/subagent-template/namespace.d.mts +1 -1
  149. package/dist/services/subagent-template/schemas.d.mts +1 -1
  150. package/dist/services/tool-approval/index.mjs +1 -1
  151. package/dist/services/tools/index.mjs +1 -1
  152. package/dist/services/tray-menu/index.d.mts +2 -2
  153. package/dist/services/tray-menu/namespace.d.mts +1 -1
  154. package/dist/services/tray-menu/schemas.d.mts +1 -1
  155. package/dist/services/turn/index.d.mts +1 -1
  156. package/dist/services/turn/namespace.d.mts +1 -1
  157. package/dist/services/turn/schemas.d.mts +89 -0
  158. package/dist/services/turn/schemas.mjs +1 -1
  159. package/dist/session-CZUrp7gC.mjs +69 -0
  160. package/dist/session-Dp7z5N1d.mjs +1 -0
  161. package/dist/{session-lineage-DR-9DU-U.d.mts → session-lineage-C1M7-O3C.d.mts} +3 -3
  162. package/dist/storage/drizzle/index.d.mts +1 -1
  163. package/dist/storage/drizzle/index.mjs +1 -1
  164. package/dist/{storage-namespace-Di1A3DMm.d.mts → storage-namespace-BvRF22by.d.mts} +10 -10
  165. package/dist/{tool-approval-service-DEQiipxj.mjs → tool-approval-service-BIbUSuqg.mjs} +1 -1
  166. package/dist/tools-Yz8XyiwA.mjs +1 -0
  167. package/dist/{transition-DnXibkhX.d.mts → transition-DYorNHZu.d.mts} +1 -1
  168. package/dist/{types-Dur8EtpR.d.mts → types-9XCB1aPK.d.mts} +562 -107
  169. package/dist/{types-BMS6yfLS.d.mts → types-BNW5n6qm.d.mts} +1 -1
  170. package/dist/{types-BslClRkH.d.mts → types-BWduCvRU.d.mts} +22 -1
  171. package/dist/{types-Cse8s_cD.d.mts → types-N_BOtTqt.d.mts} +29 -18
  172. package/dist/ui-components/index.mjs +1 -1
  173. package/dist/ui-kernel/index.d.mts +4 -4
  174. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  175. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  176. package/dist/{workflow-BqH6ar-D.mjs → workflow-C1z7I5CI.mjs} +1 -1
  177. package/dist/workflow-engine/index.d.mts +45 -45
  178. package/dist/workflow-engine/index.mjs +1 -1
  179. package/dist/workflow-engine/package.d.mts +1 -1
  180. package/dist/workflow-engine/package.mjs +1 -1
  181. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  182. package/package.json +1 -1
  183. package/dist/adapter-DaQqmKOJ.mjs +0 -1
  184. package/dist/client-BcfR-LJC.mjs +0 -1
  185. package/dist/handlers-BAycjV02.mjs +0 -41
  186. package/dist/namespace-C-piH3w4.mjs +0 -1
  187. package/dist/orchestrator-shared-Cxk3x8Vs.mjs +0 -1
  188. package/dist/package-B1AXe-oz.mjs +0 -1
  189. package/dist/schema-D6WAI8OL.mjs +0 -1
  190. package/dist/schemas-ArqQTC0Q.mjs +0 -1
  191. package/dist/schemas-uID59wR8.mjs +0 -1
  192. package/dist/session-0nWT4st6.mjs +0 -39
  193. package/dist/session-DH-ja8Ka.mjs +0 -1
  194. package/dist/tools-DFOsOboy.mjs +0 -1
@@ -0,0 +1,57 @@
1
+ import{agents as e}from"./services/session/storage/schema.mjs";import{n as t,t as n}from"./schema-CHp6I33k.mjs";import{i as r,n as i,r as a}from"./namespace-dFBD2ZmS.mjs";import{TurnStorageSubjects as o}from"./services/turn/namespace.mjs";import{SessionStorageSubjects as s}from"./services/session/storage/namespace.mjs";import{n as c}from"./namespace-DBHwyhME.mjs";import{r as l,t as u}from"./provider-context-DC_eq7es.mjs";import{AdapterRuntimeSubjects as d}from"./services/adapter-runtime/namespace.mjs";import{ProviderStorageSubjects as f}from"./services/settings/storage/providers-namespace.mjs";import{ExecutionTargetSubjects as p}from"./services/execution-target/namespace.mjs";import{MessageStorageSubjects as m}from"./services/session/messages/namespace.mjs";import"./services/session/turns/namespace.mjs";import{ExtractedContextSchema as h}from"./services/compression/schemas.mjs";import{PreferencesSubjects as g}from"./services/preferences/storage-namespace.mjs";import{z as _}from"zod";import{AdapterSubjects as v,AgentResolutionSubjects as y,AgentStatusSchema as b,AgentSubjects as x,MakaioSessionAgentSchema as S,ProviderContextSchema as C,SessionSubjects as w,TurnInitiatorSchema as T,TurnUsageSchema as E}from"@makaio/framework/contracts";import{defineDialectSchema as D,getRawSqlExecutor as ee,getStorageEngine as te,resolveSchema as O}from"@makaio/framework/storage/drizzle";import{and as k,asc as A,desc as j,eq as M,gt as ne,inArray as N,lt as re,sql as P}from"drizzle-orm";import{createStorageNamespaceDefinition as ie}from"@makaio/framework/storage";import{HookAbortError as ae}from"@makaio/framework/hooks";import{AdapterRuntimeSubjects as oe}from"@makaio/framework/services/adapter-runtime";import{buildProviderContext as se}from"@makaio/framework/services/provider-context";function ce(e,t,n,r){return e.on(i.append,e=>{let{event:i}=e.payload,a=t.get(i.sessionId)??[];if(n.has(i.eventId)){e.setResult({success:!0});return}a.push(i),t.set(i.sessionId,a),n.set(i.eventId,r()),e.setResult({success:!0})})}function le(e,t,n){return e.on(i.getEvents,e=>{let{sessionId:r,options:i}=e.payload,a=t.get(r)??[],o=i?.order??`asc`,s=o===`desc`?[...a].reverse():a,c=0;if(i?.after&&/^\d+$/.test(i.after)){let t=Number(i.after),r=s.findIndex(e=>{let r=n.get(e.eventId)??-1;return o===`desc`?r<t:r>t});if(r===-1){e.setResult({events:[],nextCursor:null,totalCount:a.length});return}c=r}let l=s.slice(c);if(i?.types&&i.types.length>0){let e=new Set(i.types);l=l.filter(t=>e.has(t.type))}let u=i?.limit??100,d=l.length>u,f=l.slice(0,u),p=null;if(d&&f.length>0){let e=f[f.length-1],t=n.get(e.eventId);t!==void 0&&(p=t.toString())}e.setResult({events:f,nextCursor:p,totalCount:a.length})})}function ue(e,t){return e.on(i.getByIds,e=>{let{sessionId:n,eventIds:r}=e.payload,i=t.get(n)??[],a=new Set(r),o=i.filter(e=>a.has(e.eventId));e.setResult({events:o})})}function de(e,t,n){return e.on(i.deleteBySession,e=>{let{sessionId:r}=e.payload,i=t.get(r);if(i)for(let e of i)n.delete(e.eventId);let a=i?.length??0;t.delete(r),e.setResult({success:!0,deletedCount:a})})}function fe(e,t){return e.on(i.getEventsBySessions,e=>{let{sessionIds:n,types:r,limitPerSession:i=50}=e.payload;if(n.length===0||r.length===0){e.setResult({eventsBySession:{}});return}let a=new Set(r),o={};for(let e of n){let n=(t.get(e)??[]).filter(e=>a.has(e.type)).reverse().slice(0,i);n.length>0&&(o[e]=n)}e.setResult({eventsBySession:o})})}function pe(e){let t=new Map,n=new Map,r=1,i=[ce(e,t,n,()=>r++),le(e,t,n),ue(e,t),de(e,t,n),fe(e,t)];return()=>i.forEach(e=>e())}const me=r.postgres,he=D({sessionEvents:a},{sessionEvents:me}),ge=[`sessionId`,`agentId`,`adapterId`,`messageId`,`turnId`];function _e(e){let t=e.payload,n={};for(let[e,r]of Object.entries(t))ge.includes(e)||(n[e]=r);return n}function F(e){let t=JSON.parse(e.payload),n=e.type===`message`?e.messageId:e.originatingMessageId,r={...t,sessionId:e.sessionId,...e.agentId&&{agentId:e.agentId},...e.adapterId&&{adapterId:e.adapterId},...n&&{messageId:n},...e.type===`message`?{turnId:e.turnId??null}:e.turnId&&{turnId:e.turnId}};return{sessionId:e.sessionId,eventId:e.eventId,timestamp:e.timestamp,type:e.type,payload:r}}function ve(e){switch(e.type){case`user_message.sent`:{let t=e.payload.content;return typeof t==`string`?t:(Array.isArray(t.blocks)?t.blocks:[t.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
2
+ `)}case`agent.added`:case`user_message.acknowledged`:case`user_message.completed`:case`turn.started`:case`turn.completed`:case`message`:case`branch.created`:case`branch.merged`:case`squash`:return null;default:return ye(e.payload)}}function ye(e){let t=e.contentText;if(typeof t==`string`&&t.length>0)return t;let n=e.summary;return typeof n==`string`&&n.length>0?n:null}function be({bus:e,db:t,sessionEvents:n}){return e.on(i.append,async e=>{let{event:r}=e.payload,i=`payload`in r&&`agentId`in r.payload?r.payload.agentId:null,a=`payload`in r&&`adapterId`in r.payload?r.payload.adapterId:null,o=`payload`in r&&`turnId`in r.payload?r.payload.turnId:null,s=`payload`in r&&`messageId`in r.payload?r.payload.messageId:null,c=r.type===`message`?s:null,l=r.type===`message`?null:s,u={sessionId:r.sessionId,eventId:r.eventId,timestamp:r.timestamp,type:r.type,agentId:i,adapterId:a,messageId:c,originatingMessageId:l,turnId:o,contentText:ve(r),payload:JSON.stringify(_e(r))};await t.insert(n).values(u).onConflictDoNothing(),e.setResult({success:!0})})}function xe({bus:e,db:t,sessionEvents:n}){return e.on(i.getEvents,async e=>{let{sessionId:r,options:i}=e.payload,a=[M(n.sessionId,r)],o=i?.order??`asc`;if(i?.after){let e=parseInt(i.after,10);!isNaN(e)&&e>0&&(o===`desc`?a.push(re(n.id,e)):a.push(ne(n.id,e)))}i?.types&&i.types.length>0&&a.push(N(n.type,i.types));let s=i?.limit??100,c=o===`desc`?j:A,l=await t.select().from(n).where(k(...a)).orderBy(c(n.id)).limit(s+1),u=l.length>s,d=u?l.slice(0,s):l,f=d.map(F),p=u&&d.length>0?d[d.length-1].id.toString():null;e.setResult({events:f,nextCursor:p})})}function Se({bus:e,db:t,sessionEvents:n}){return e.on(i.getByIds,async e=>{let{sessionId:r,eventIds:i}=e.payload,a=(await t.select().from(n).where(k(M(n.sessionId,r),N(n.eventId,i))).orderBy(A(n.timestamp))).map(F);e.setResult({events:a})})}function Ce({bus:e,db:t,sessionEvents:n}){return e.on(i.deleteBySession,async e=>{let{sessionId:r}=e.payload,i=(await t.select().from(n).where(M(n.sessionId,r))).length;await t.delete(n).where(M(n.sessionId,r)),e.setResult({success:!0,deletedCount:i})})}function we({bus:e,db:t,sessionEvents:n}){return e.on(i.getEventsBySessions,async e=>{let{sessionIds:r,types:i,limitPerSession:a=50}=e.payload;if(r.length===0||i.length===0){e.setResult({eventsBySession:{}});return}let o={};for(let e of r){let r=await t.select().from(n).where(k(M(n.sessionId,e),N(n.type,i))).orderBy(j(n.timestamp)).limit(a);r.length>0&&(o[e]=r.map(F))}e.setResult({eventsBySession:o})})}function Te(e,t){let{sessionEvents:n}=O(t,he),r={bus:e,db:t,sessionEvents:n},i=[be(r),xe(r),Se(r),Ce(r),we(r)];return()=>i.forEach(e=>e())}async function I(e,t,n){let r={sessionId:t.sessionId,eventId:t.eventId??crypto.randomUUID(),timestamp:t.timestamp??Date.now(),type:t.type,payload:t.payload},a=n?n(r):r;a&&await e.requestOptional(i.append,{event:a})}async function Ee(e,t){await I(e,{type:`turn.started`,sessionId:t.sessionId,payload:t}),await e.emit(w.turn.started,t)}function De(e,t){let n=[e.on(w.agent.added,async n=>{await Oe(e,{type:`agent.added`,sessionId:n.payload.sessionId,payload:n.payload},t)}),e.on(w.branch.created,async n=>{await Oe(e,{type:`branch.created`,sessionId:n.payload.sessionId,payload:n.payload},t)})];return()=>{for(let e of n)e()}}async function Oe(e,t,n){try{await I(e,t,n)}catch(e){console.warn(`[session-lifecycle-events] Failed to persist subscription lifecycle event`,{type:t.type,sessionId:t.sessionId,error:e instanceof Error?e.message:String(e)})}}async function L(e,t){let{verdict:n}=t;if(n.kind===`native`)return;let r=crypto.randomUUID(),i=Date.now(),a={sessionId:t.sessionId,eventId:r,timestamp:i,intent:t.intent,...t.agentId!==void 0&&{agentId:t.agentId},...t.adapterId!==void 0&&{adapterId:t.adapterId},...t.turnId!==void 0&&{turnId:t.turnId}},o=n.kind===`degrade`?{...a,verdictKind:`degrade`,reason:n.reason}:{...a,verdictKind:`foreign`,foreignMachineId:n.machineId};try{await I(e,{type:`locality.degraded`,sessionId:t.sessionId,eventId:r,timestamp:i,payload:o})}catch(e){console.warn(`[session-lifecycle-events] Failed to persist locality.degraded event`,{sessionId:t.sessionId,error:e instanceof Error?e.message:String(e)})}try{await e.emit(w.locality.degraded,o)}catch(e){console.warn(`[session-lifecycle-events] Failed to emit live locality.degraded event`,{sessionId:t.sessionId,error:e instanceof Error?e.message:String(e)})}}const R=ie(`agent`,{schemas:{get:{request:_.object({agentId:_.string()}),response:_.object({agent:S.nullable()})},set:{request:_.object({agentId:_.string(),agent:S}),response:_.object({success:_.boolean()})},delete:{request:_.object({agentId:_.string()}),response:_.object({success:_.boolean()})},listByAdapter:{request:_.object({adapterName:_.string(),status:_.enum([`idle`,`active`,`dead`,`disposed`,`all`]).optional()}),response:_.object({agents:_.array(S)})},listBySession:{request:_.object({sessionId:_.string()}),response:_.object({agents:_.array(S)})},updateStatus:{request:_.object({agentId:_.string(),status:b}),response:_.object({success:_.boolean()})},updateActivity:{request:_.object({agentId:_.string(),lastActivityAt:_.number()}),response:_.object({success:_.boolean()})},updateRuntime:{request:_.object({agentId:_.string(),adapterId:_.string().optional(),adapterSessionId:_.string().optional(),cwd:_.string().optional(),model:_.string().optional(),allowedDirectories:_.array(_.string()).optional(),providerConfigId:_.string().optional()}).refine(e=>e.adapterId!==void 0||e.adapterSessionId!==void 0||e.cwd!==void 0||e.model!==void 0||e.allowedDirectories!==void 0||e.providerConfigId!==void 0,{message:`At least one runtime field (adapterId, adapterSessionId, cwd, model, allowedDirectories, or providerConfigId) must be provided`}),response:_.object({success:_.boolean()})}},extensions:{drizzle:{agents:e}}}),ke=R.subjects;async function z(e,t,n){let{adapterId:r}=await e.request(d.resolveId,{adapterName:t,...n!==void 0&&{machineId:n}});return r}async function Ae(e,t,n){if(!(!t||!n))try{let{config:r}=await e.request(c.getProviderConfig,{id:t});if(!r)return;let{provider:i}=await e.request(f.get,{id:r.definitionId}),a=i?.availableModels?.find(e=>e.name===n);return a?{supportedReasoningLevels:a.supportedReasoningLevels}:void 0}catch{return}}async function je(e,t){let{executionTarget:n}=await e.request(p.resolve,t);return n}async function Me(e,t){let{sessionId:n,limit:r}=t,a=[],o=!1,s=!1,c;do{let{events:t,nextCursor:l}=await e.request(i.getEvents,{sessionId:n,options:{limit:1e4,...c&&{after:c}}});for(let i of t){if(i.type===`squash`){o=!0,a.length=0;let e=i.payload,t={messageId:`squash-${i.eventId}`,sessionId:n,turnId:null,role:`assistant`,contentText:e.summaryJson,blocks:[{type:`text`,content:e.summaryJson}],timestamp:i.timestamp};a.push(t)}else if(i.type===`message`){let t=i.payload,{message:n}=await e.request(m.get,{messageId:t.messageId});n&&a.push(n)}if(r&&a.length>=r){s=!0;break}}if(r&&a.length>=r)break;c=l??void 0}while(c);return{messages:a,hasSquashBoundary:o,sessionChain:[n],truncated:s,incomplete:!1}}const B=new class{actions=new Map;register(e){if(this.actions.has(e.id))throw Error(`Action already registered: ${e.id}`);this.actions.set(e.id,e)}get(e){return this.actions.get(e)}getAll(){return Array.from(this.actions.values())}getByCategory(e){return this.getAll().filter(t=>t.category===e)}reset(){this.actions.clear()}};async function V(e,t,n){let r=e,i,a;for(let e of t){let t=B.get(e.actionId);if(!t)throw Error(`Unknown action: ${e.actionId}`);let o={...n,...e.options},s=await t.execute(r,o);if(s.kind===`messages`)r=s.messages;else{i=s.json,a=s.tokenEstimate,r=[];break}}if(!i&&r.length>0){let e=r.reduce((e,t)=>e+JSON.stringify(t.blocks).length,0);a=Math.ceil(e/4)}return{messages:r,contextJson:i,tokenEstimate:a}}function Ne(e){return e.map(e=>({...e,blocks:e.blocks.filter(e=>e.type!==`reasoning`)}))}const Pe={id:`strip-reasoning`,label:`Strip Reasoning`,description:`Remove reasoning/thinking blocks from messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:Ne(e)}}};function Fe(e){return e.map(e=>({...e,blocks:e.blocks.map(e=>{if(e.type===`tool_output`){let t=e.output.length;return{...e,output:`[output removed - ${t} chars]`}}return e})}))}const Ie={id:`strip-tool-outputs`,label:`Strip Tool Outputs`,description:`Remove tool output contents, keep structure`,category:`transformation`,async execute(e){return{kind:`messages`,messages:Fe(e)}}};async function H(e,t){let n=[],r=[],i=[],a=!1,o=!1,c=!1,l=[],u,d=t,f;for(;d;){let n=await e.request(s.get,{sessionId:d});if(!n.session){c=!0;break}d===t&&(u=n.session.forkTransforms??void 0),l.unshift({sessionId:d,forkPointMessageId:n.session.forkPointMessageId??void 0}),f=n.session.parentSessionId??void 0,d=f}for(let t=0;t<l.length;t++){let{sessionId:s}=l[t],c=t===l.length-1,u=l[t+1]?.forkPointMessageId;n.push(s);let d=await Me(e,{sessionId:s});if(d.hasSquashBoundary&&(a=!0,c||(r.length=0)),d.truncated&&(o=!0),c)i=d.messages;else for(let e of d.messages)if(r.push(e),u&&e.messageId===u)break}return u&&(r=await Le(r,u)),{messages:[...r,...i],hasSquashBoundary:a,sessionChain:n,truncated:o,incomplete:c}}async function Le(e,t){if(t.segments?.length){let n=t.segments[0].fromMessageId,r=t.segments[t.segments.length-1].toMessageId,i=e.findIndex(e=>e.messageId===n),a=e.findIndex(e=>e.messageId===r);if(i===-1||a===-1||i>a)return ze(e,t.segments);let o=e.slice(0,i),s=e.slice(i,a+1),c=e.slice(a+1),l=ze(s,t.segments);return[...o,...l,...c]}let n=e;if(t.removedMessageIds?.length){let e=new Set(t.removedMessageIds);n=n.filter(t=>!e.has(t.messageId))}return t.appliedPipeline?.length&&(n=(await V(n,t.appliedPipeline)).messages),n}function Re(e,t){let n=e;return t.stripReasoning&&(n=Ne(n)),t.stripToolOutputs&&(n=Fe(n)),n}function ze(e,t){let n=new Map;for(let t=0;t<e.length;t++)n.set(e[t].messageId,t);let r=[];for(let i of t){let t=n.get(i.fromMessageId),a=n.get(i.toMessageId);if(t===void 0||a===void 0){console.warn(`[getFullConversation] Skipping segment with missing boundary IDs`,{segmentKey:`${i.fromMessageId}..${i.toMessageId}`,fromMessageId:i.fromMessageId,toMessageId:i.toMessageId,hasFrom:t!==void 0,hasTo:a!==void 0});continue}let o=e.slice(t,a+1),s;switch(i.policy){case`exclude`:s=[];break;case`summarize`:if(i.summaryText){if(o.length===0)throw Error(`Cannot create synthetic summary message for empty segment: ${i.fromMessageId}..${i.toMessageId}`);s=[{messageId:`summary-${i.fromMessageId}-${i.toMessageId}`,turnId:null,sessionId:o[0].sessionId,role:`assistant`,contentText:i.summaryText,blocks:[{type:`text`,content:i.summaryText}],timestamp:o[o.length-1].timestamp}]}else s=o;break;default:s=o;break}if((i.policy!==`summarize`||!i.summaryText)&&i.overrides&&Object.keys(i.overrides).length>0){let e=new Set(Object.entries(i.overrides).filter(([,e])=>e===`exclude`).map(([e])=>e));s=s.filter(t=>!e.has(t.messageId))}s=Re(s,i),r.push(...s)}return r}function U(e){return{role:e.role,blocks:e.blocks}}async function Be(e,t){return{messageHistory:(await H(e,t.sessionId)).messages.map(U),isFirstTurn:!0}}async function Ve(e,t,n,r){if(t.cwd===n)return{swapped:!1};let i=await e.request(x.cwd.change,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId??``,sessionId:t.sessionId,newCwd:n,...r?.skipWarning?{skipWarning:!0}:{}});if(!i.success)throw Error(`Failed to change cwd for agent ${t.agentId}: ${i.reason??`unknown`}`);return i.previousCwd?(t.cwd=n,{swapped:!0,previousCwd:i.previousCwd}):(t.cwd=n,{swapped:!1})}async function He(e,t,n,r){let i=n===void 0||t.model===n,a=r?.reasoningEffort===void 0,o=!r?.providerConfigId;if(i&&a&&o)return{changed:!1};let s=r?.providerConfigId?await l(e,r.providerConfigId):void 0,c=await e.request(x.model.change,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId??``,...n!==void 0&&{newModel:n},...r?.reasoningEffort!==void 0&&{reasoningEffort:r.reasoningEffort},...r?.skipWarning!==void 0&&{skipWarning:r.skipWarning},...s!==void 0&&{providerContext:s}});if(!c.success)throw Error(`Failed to change model for agent ${t.agentId}: ${c.reason??`unknown`}`);return n!==void 0&&(t.model=n),{changed:!0,swapped:c.swapped??!1}}async function Ue(e,t,n){let r=[],i=new Set;for(let a of t){let t=await e.requestOptional(v.getAgent,{adapterId:a.adapterId,agentId:a.agentId});if(t.handled&&t.data.agent!==null)r.push(a);else{let t=await Ge(e,a,n);r.push(t),i.add(t.agentId)}}return{verifiedAgents:r,recoveredAgentIds:i}}async function We(e,t,n){let r=await H(e,t.sessionId),i=n?.pipeline??[];return{messageHistory:(i.length>0?(await V(r.messages,i)).messages:r.messages).map(U),isFirstTurn:!0}}async function Ge(e,t,n){let r=await z(e,t.adapterName).catch(()=>t.adapterId);return await e.request(v.rehydrateAgent,{adapterId:r,agentId:t.agentId,cwd:n.cwd,model:n.model??t.model,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId},...n.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:n.resumeAdapterSessionId}}),t.adapterId=r,t}function Ke(e,t){return t?.hasNewTransforms===!0||e.forkTransforms!==void 0}function qe(e,t){return e.adapterName!==void 0&&t!==e.adapterName}function W(e){let{session:t,sessionContext:n}=e;return e.adapterSupportsNative?qe(t,e.targetAdapterName)?{kind:`degrade`,reason:`adapter-mismatch`}:t.adapterSessionId?!t.machineId||!e.localMachineId?{kind:`degrade`,reason:`missing-machine-id`}:t.machineId===e.localMachineId?t.isImported&&t.isOrchestrated===!0?{kind:`degrade`,reason:`hybrid-imported-orchestrated`}:n?.hasCompression?{kind:`degrade`,reason:`compression-present`}:Ke(t,n)?{kind:`degrade`,reason:`transforms-present`}:n?.hasConnectorSwap?{kind:`degrade`,reason:`connector-swap`}:e.currentCwd&&e.targetCwd&&e.currentCwd!==e.targetCwd?{kind:`degrade`,reason:`cwd-mismatch`}:e.intent===`fork`&&t.forkPointMessageId&&e.midHistoryForkSupported!==!0?{kind:`degrade`,reason:`mid-history-unsupported`}:{kind:`native`}:{kind:`foreign`,machineId:t.machineId}:{kind:`degrade`,reason:`no-adapter-session`}:{kind:`degrade`,reason:`adapter-unsupported`}}const Je=t.postgres,G=D({turns:n},{turns:Je});async function Ye(e,t){let n=te(e.dialect);for(let r=1;;r++)try{await e.run(t());return}catch(e){if(r>=32||!n.capabilities.maxCounterAssignmentRaces||!n.errors.isUniqueViolationError(e,`uniq_turns_session_number`))throw e}}function Xe(e){if(e)try{let t=JSON.parse(e),n=E.safeParse(t);return n.success?n.data:void 0}catch{return}}function K(e){return e?JSON.stringify(e):null}function Ze(e){if(e)try{let t=JSON.parse(e),n=T.safeParse(t);return n.success?n.data:void 0}catch{return}}function q(e){let t=Ze(e.initiator);return{turnId:e.turnId,sessionId:e.sessionId,turnNumber:e.turnNumber,startedAt:e.startedAt,completedAt:e.completedAt??void 0,status:e.status,error:e.error??void 0,usage:Xe(e.usage),...t!==void 0&&{initiator:t}}}function Qe(e,t){let n=[$e(e,t),et(e,t),tt(e,t),nt(e,t),rt(e,t),it(e,t),at(e,t),ot(e,t)];return()=>n.forEach(e=>e())}function $e(e,t){let n=ee(t),{turns:r}=O(t,G);return e.on(o.create,async e=>{let{sessionId:i,turnId:a,initiator:o}=e.payload,s=Date.now(),c=a??crypto.randomUUID(),l=K(o);await Ye(n,()=>P`
3
+ WITH next_num AS (
4
+ SELECT COALESCE(MAX(turn_number), 0) + 1 AS n
5
+ FROM turns
6
+ WHERE session_id = ${i}
7
+ )
8
+ INSERT INTO turns (turn_id, session_id, turn_number, started_at, status, initiator)
9
+ SELECT ${c}, ${i}, n, ${s}, ${`active`}, ${l}
10
+ FROM next_num
11
+ `);let[u]=await t.select({turnNumber:r.turnNumber}).from(r).where(M(r.turnId,c)),d={turnId:c,sessionId:i,turnNumber:u.turnNumber,startedAt:s,status:`active`,...o!==void 0&&{initiator:o}};e.setResult({turn:d})})}function et(e,t){let n=ee(t),{turns:r}=O(t,G);return e.on(o.ingestCompleted,async e=>{let{sessionId:i,turnAnchorId:a,startedAt:o,completedAt:s,status:c,error:l,usage:u,initiator:d}=e.payload,f=crypto.randomUUID(),p=K(d),m=u===void 0?null:JSON.stringify(u);await Ye(n,()=>P`
12
+ WITH next_num AS (
13
+ SELECT COALESCE(MAX(turn_number), 0) + 1 AS n
14
+ FROM turns
15
+ WHERE session_id = ${i}
16
+ )
17
+ INSERT INTO turns (turn_id, session_id, turn_number, started_at, completed_at, status, error, usage, initiator, turn_anchor_id)
18
+ SELECT ${f}, ${i}, n, ${o}, ${s}, ${c}, ${l??null}, ${m}, ${p}, ${a}
19
+ FROM next_num
20
+ WHERE true
21
+ ON CONFLICT(session_id, turn_anchor_id) DO UPDATE SET
22
+ completed_at = excluded.completed_at,
23
+ status = excluded.status,
24
+ error = excluded.error,
25
+ usage = excluded.usage
26
+ `);let[h]=await t.select().from(r).where(k(M(r.sessionId,i),M(r.turnAnchorId,a))).limit(1);e.setResult({turn:q(h),created:h.turnId===f})})}function tt(e,t){let{turns:n}=O(t,G);return e.on(o.complete,async e=>{let{turnId:r,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c=Date.now(),l=a?k(M(n.turnId,r),M(n.status,a),P`${n.status} not in ('completed', 'error')`):k(M(n.turnId,r),P`${n.status} not in ('completed', 'error')`),u={completedAt:c,status:i,error:o??null,...s!==void 0&&{usage:JSON.stringify(s)}},[d]=await t.update(n).set(u).where(l).returning();if(d){e.setResult({turn:q(d),transitioned:!0});return}let[f]=await t.select().from(n).where(M(n.turnId,r)).limit(1);if(!f)throw Error(`Turn not found: ${r}`);if(a){e.setResult({turn:q(f),transitioned:!1});return}if(!(f.status===`completed`||f.status===`error`)||s===void 0){e.setResult({turn:q(f),transitioned:!1});return}let[p]=await t.update(n).set({usage:JSON.stringify(s)}).where(k(M(n.turnId,r),P`${n.status} in ('completed', 'error')`)).returning();e.setResult({turn:q(p??f),transitioned:!1})})}function nt(e,t){let{turns:n}=O(t,G);return e.on(o.set,async e=>{let{turn:r}=e.payload,i={turnId:r.turnId,sessionId:r.sessionId,turnNumber:r.turnNumber,startedAt:r.startedAt,completedAt:r.completedAt??null,status:r.status,error:r.error??null,usage:r.usage?JSON.stringify(r.usage):null,initiator:K(r.initiator)};await t.insert(n).values(i).onConflictDoUpdate({target:n.turnId,set:i}),e.setResult({turn:r})})}function rt(e,t){let{turns:n}=O(t,G);return e.on(o.get,async e=>{let{turnId:r}=e.payload,[i]=await t.select().from(n).where(M(n.turnId,r)).limit(1);e.setResult({turn:i?q(i):null})})}function it(e,t){let{turns:n}=O(t,G);return e.on(o.getBySession,async e=>{let{sessionId:r,limit:i,status:a}=e.payload,o=t.select().from(n).where(M(n.sessionId,r)).orderBy(A(n.turnNumber));a&&(o=t.select().from(n).where(k(M(n.sessionId,r),M(n.status,a))).orderBy(A(n.turnNumber))),i&&(o=o.limit(i));let s=await o;e.setResult({turns:s.map(q)})})}function at(e,t){let{turns:n}=O(t,G);return e.on(o.getActive,async e=>{let{sessionId:r}=e.payload,[i]=await t.select().from(n).where(k(M(n.sessionId,r),M(n.status,`active`))).orderBy(j(n.turnNumber)).limit(1);e.setResult({turn:i?q(i):null})})}function ot(e,t){let{turns:n}=O(t,G);return e.on(o.listActive,async e=>{let r=await t.select().from(n).where(M(n.status,`active`)).orderBy(A(n.startedAt));e.setResult({turns:r.map(q)})})}function st(e){let t=new Map,n=new Map,r=new Map,i=ct(t,n,r),a=new Map,o=[lt(e,i,r),ut(e,t,i,r,a),dt(e,t,i),ft(e,i),pt(e,t),mt(e,t,n),ht(e,t,n),gt(e,t)];return()=>o.forEach(e=>e())}function ct(e,t,n){return r=>{e.set(r.turnId,r);let i=t.get(r.sessionId)??[];i.includes(r.turnId)||i.push(r.turnId),t.set(r.sessionId,i);let a=n.get(r.sessionId)??0;r.turnNumber>a&&n.set(r.sessionId,r.turnNumber)}}function lt(e,t,n){return e.on(o.create,e=>{let{sessionId:r,turnId:i,initiator:a}=e.payload,o=Date.now(),s={turnId:i??crypto.randomUUID(),sessionId:r,turnNumber:(n.get(r)??0)+1,startedAt:o,status:`active`,...a!==void 0&&{initiator:a}};t(s),e.setResult({turn:s})})}function ut(e,t,n,r,i){return e.on(o.ingestCompleted,e=>{let{sessionId:a,turnAnchorId:o,startedAt:s,completedAt:c,status:l,error:u,usage:d,initiator:f}=e.payload,p=i.get(a)??new Map,m=p.get(o);if(m!==void 0){let r=t.get(m);if(!r)throw Error(`Turn not found for anchor in session: ${a}`);let i={...r,completedAt:c,status:l,error:u??void 0,usage:d??void 0};n(i),e.setResult({turn:i,created:!1});return}let h={turnId:crypto.randomUUID(),sessionId:a,turnNumber:(r.get(a)??0)+1,startedAt:s,completedAt:c,status:l,error:u??void 0,usage:d??void 0,...f!==void 0&&{initiator:f}};n(h),p.set(o,h.turnId),i.set(a,p),e.setResult({turn:h,created:!0})})}function dt(e,t,n){return e.on(o.complete,e=>{let{turnId:r,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c=t.get(r);if(!c)throw Error(`Turn not found: ${r}`);if(a&&c.status!==a){e.setResult({turn:c,transitioned:!1});return}let l=c.status===`completed`||c.status===`error`,u=l?{...c,usage:s??c.usage}:{...c,completedAt:Date.now(),status:i,error:o??void 0,usage:s??c.usage};n(u),e.setResult({turn:u,transitioned:!l})})}function ft(e,t){return e.on(o.set,e=>{let{turn:n}=e.payload;t(n),e.setResult({turn:n})})}function pt(e,t){return e.on(o.get,e=>{e.setResult({turn:t.get(e.payload.turnId)??null})})}function mt(e,t,n){return e.on(o.getBySession,e=>{let{sessionId:r,status:i,limit:a}=e.payload,o=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e);i&&(o=o.filter(e=>e.status===i)),o.sort((e,t)=>e.turnNumber-t.turnNumber),a&&(o=o.slice(0,a)),e.setResult({turns:o})})}function ht(e,t,n){return e.on(o.getActive,e=>{let{sessionId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).filter(e=>e.status===`active`).sort((e,t)=>t.turnNumber-e.turnNumber).at(0);e.setResult({turn:i??null})})}function gt(e,t){return e.on(o.listActive,e=>{let n=[...t.values()].filter(e=>e.status===`active`).sort((e,t)=>e.startedAt-t.startedAt);e.setResult({turns:n})})}function _t(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var vt=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];_pendingMessageAppends=new Set;_completedAgents=new Set;_erroredAgents=new Map;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(_t(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return _t(this._initiator)}get messageIds(){return this._messageIds}get hasPendingMessageAppends(){return this._pendingMessageAppends.size>0}get completedAgents(){return this._completedAgents}get erroredAgents(){return this._erroredAgents}addMessage(e){this._pendingMessageAppends.delete(e),this._messageIds.push(e)}claimMessageAppend(e){this._pendingMessageAppends.add(e)}releaseMessageAppend(e){this._pendingMessageAppends.delete(e)}markAgentCompleted(e){return this.getAgentTerminalOutcome(e)===void 0?(this._completedAgents.add(e),this.checkCompletion()):{turnComplete:!1}}markAgentErrored(e,t){return this.getAgentTerminalOutcome(e)===void 0?(this._erroredAgents.set(e,t),this.checkCompletion()):{turnComplete:!1}}hasAgent(e){return this._agentIds.includes(e)}isComplete(){return new Set([...this._completedAgents,...this._erroredAgents.keys()]).size>=this._agentIds.length}getResult(){return{success:this._erroredAgents.size===0,errors:Array.from(this._erroredAgents.values())}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}getAgentTerminalOutcome(e){if(this._completedAgents.has(e))return`completed`;if(this._erroredAgents.has(e))return`errored`}checkCompletion(){return this.isComplete()?{turnComplete:!0,result:this.getResult()}:{turnComplete:!1}}};function J(e){return typeof e==`string`?e:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
27
+ `)}function yt(e){return e}function bt(e){return typeof e==`string`?[{type:`text`,content:e}]:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(yt)}async function xt(e,t,n,r,i){let{session:a}=await e.request(w.get,{sessionId:t});if(a){if(a.status!==`active`)throw Error(`[getOrCreateSession] Session is not active: ${t}`);return{sessionId:t,session:a}}await e.request(w.create,{sessionId:t,originWindowId:r,...i!==void 0&&{machineId:i}});let{session:o}=await e.request(w.get,{sessionId:t});if(!o)throw Error(`[getOrCreateSession] Failed to create session: ${t}`);return{sessionId:t,session:o}}function St(e,t){if(t===void 0){let t=e.agents.find(t=>t.agentId===e.leadAgentId);if(!t)throw Error(`[resolveTargetAgents] Lead agent not found: ${e.leadAgentId}`);return[t]}if(t===`all`)return e.agents;let n=new Set(t);return e.agents.filter(e=>n.has(e.agentId))}function Ct(e,t){for(let n of e.values())if(n.hasAgent(t))return n}function wt(e,t){if(e===`extension`){let e=t?.trim();if(!e)throw Error(`extensionId is required when source is "extension"`);return{source:`extension`,sourceId:e}}return e?{source:e}:{source:`user`}}function Y(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function Tt(e,t,n,r){let{adapterName:i}=await e.request(d.resolveName,{adapterId:t});if(n&&i!==n)throw Error(`${r}adapterName "${n}" does not match adapterId "${t}"`);return i}async function Et(e,t,n,r){if(r!==void 0&&t!==void 0&&t!==r.providerConfigId)throw Error(`[attach-handler] providerConfigId '${t}' does not match resolved provider context '${r.providerConfigId}'`);let i=t??r?.providerConfigId??n?.providerConfigId;return r===void 0?{providerConfigId:i,providerContext:i===void 0?void 0:await l(e,i)}:{providerConfigId:i,providerContext:r}}async function Dt(e,t,n,r,i,a,o){try{return await kt(e,t,r,i,a,o)}catch(t){throw console.error(`[attach-handler] Failed to set up initial-message turn, rolling back started agent`,{sessionId:r,agentId:i,adapterId:n.adapterId,error:t}),await Ot(e,n,r,`initial-message turn setup failure`),t}}async function Ot(e,t,n,r){try{await e.request(v.stopAgent,{adapterId:t.adapterId,agentId:t.agentId})}catch(e){console.error(`[attach-handler] Failed to rollback started agent after ${r}`,{sessionId:n,agentId:t.agentId,adapterId:t.adapterId,error:e})}}async function kt(e,t,n,r,i,a){let{turn:s}=await e.request(o.create,{sessionId:n}),c=new vt({sessionId:n,agentIds:[r],turnId:s.turnId,turnNumber:s.turnNumber});try{await e.requestOptional(m.append,{message:{messageId:i,turnId:c.turnId,sessionId:n,role:`user`,contentText:J(a),blocks:bt(a),timestamp:Date.now()}})}catch(t){console.warn(`[attach-handler] Failed to store initial user message`,{sessionId:n,messageId:i,error:t instanceof Error?t.message:String(t)});try{await e.requestOptional(o.complete,{turnId:c.turnId,status:`error`,expectedStatus:`active`,error:`initial-message-persistence-failed`})}catch(e){console.error(`[attach-handler] Failed to rollback initial-message turn after message persistence failure`,{sessionId:n,turnId:c.turnId,error:e})}throw t}c.addMessage(i),t.set(n,c);try{await At(e,n,c,r,i,a)}catch(e){throw t.get(n)?.turnId===c.turnId&&t.delete(n),e}return{messageId:i,turnId:c.turnId}}async function At(e,t,n,r,i,a){await Ee(e,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:i,agentIds:[...n.agentIds],ingestionMarker:`live`}),await e.emit(w.user_message.sent,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:i,content:a,agentIds:[...n.agentIds]}),await e.emit(w.user_message.acknowledged,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:i,agentId:r})}function jt(e){return{...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.cwd!==void 0&&{cwd:e.cwd},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt}}}function Mt(e,t,n){let r=e.model??t?.model,i=e.cwd;return{runtimeOptions:Pt({model:r,reasoningEffort:e.reasoningEffort??t?.reasoningEffort,cwd:i,allowedTools:e.allowedTools??t?.allowedTools,disallowedTools:e.disallowedTools??t?.disallowedTools,allowedDirectories:e.allowedDirectories??t?.allowedDirectories,env:e.env,mcpSessionContext:e.mcpSessionContext,adapterConfig:e.adapterConfig,systemPrompt:e.systemPrompt??t?.systemPrompt,providerContext:n}),mergedModel:r,mergedCwd:i}}function Nt(e,t,n){let r=e??t;return{effectiveCwd:r,effectiveRuntimeOptions:r!==void 0&&n.cwd===void 0?{...n,cwd:r}:n}}function Pt(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Ft(e,t,n,r,i,a,o,s){return a?{mode:`resume`,adapterId:e,sessionId:t,adapterSessionId:a,role:r,...i,...n!==void 0&&{initialMessage:n},...o!==void 0&&{harnessId:o}}:{adapterId:e,sessionId:t,role:r,...i,...n!==void 0&&{initialMessage:n},...o!==void 0&&{harnessId:o},...s!==void 0&&{sessionContext:s}}}async function It(e,t){let{adapterId:n,sessionId:r,initialMessage:i,role:a,effectiveRuntimeOptions:o,resumeAdapterSessionId:s,harnessId:c,attachSessionContext:l,providerContext:d}=t,f=Ft(n,r,i,a,o,s,c,l);d!==void 0&&await u(e,d);let p=await e.request(v.startAgent,f);if(!p.success)throw Error(`[attach-handler] Failed to start agent: ${p.message}`);return p}async function Lt(e,t,n){let r=await H(e,t);if(r.messages.length===0)return n;let i=r.messages.map(U);return{...n,messageHistory:i,isFirstTurn:!0}}function Rt(e,t,n){let r=e.on(w.agent.attach,async r=>{r.setResult(await Ut(e,t,n,r.payload))}),i=e.on(w.agent.attachResolved,async r=>{if(!r.origin.local)throw Error(`[attach-handler] session.agent.attachResolved requires a local-origin request`);r.setResult(await Ut(e,t,n,{...r.payload,resolvedProviderContext:r.payload.agent.providerContext===void 0?void 0:C.parse(r.payload.agent.providerContext)}))});return()=>{r(),i()}}async function zt(e,t){try{let n=await e();return n.handled?t(n.data):!1}catch{return!1}}async function Bt(e,t){return zt(()=>e.requestOptional(v.getCapabilities,{adapterId:t}),e=>new Set(e.capabilities).has(`session:resume`))}async function Vt(e,t,n){return zt(()=>e.requestOptional(v.listAgents,{adapterId:t}),e=>e.agents.some(e=>e.adapterSessionId===n))}async function Ht(e){let{bus:t,adapterId:n,adapterName:r,session:i,machineId:a,effectiveCwd:o}=e,s=W({intent:`resume`,session:i,localMachineId:a,adapterSupportsNative:await Bt(t,n),targetAdapterName:r,currentCwd:i.targetWorkingDirectory,targetCwd:o});if(s.kind===`native`&&i.adapterSessionId!==void 0&&await Vt(t,n,i.adapterSessionId)){let e={kind:`degrade`,reason:`agent-already-started`};return L(t,{sessionId:i.sessionId,intent:`resume`,verdict:e,adapterId:n}),{resumeAdapterSessionId:void 0,attachSessionContext:{nativeLocality:e}}}return s.kind!==`native`&&L(t,{sessionId:i.sessionId,intent:`resume`,verdict:s,adapterId:n}),{resumeAdapterSessionId:s.kind===`native`?i.adapterSessionId:void 0,attachSessionContext:s.kind===`native`?void 0:{nativeLocality:s}}}async function Ut(e,t,n,r){let{sessionId:i,agent:a,initialMessage:o,role:s,resolvedProviderContext:c}=r,l=jt(a),u=await Jt(e,i),d=await qt(e,i,o,a),f=Gt(a,d),{adapterName:p,adapterId:m}=await Kt(e,f.adapterName,f.adapterId,n),{providerConfigId:h,providerContext:g}=await Et(e,a.providerConfigId,d,c),{runtimeOptions:_,mergedModel:v,mergedCwd:y}=Mt(l,d,g),{effectiveCwd:b,effectiveRuntimeOptions:x}=Nt(y,u.targetWorkingDirectory,_),S=Yt(u,s),C=await Ht({bus:e,adapterId:m,adapterName:p,session:u,machineId:n,effectiveCwd:b}),{resumeAdapterSessionId:w}=C,T=C.attachSessionContext?await Lt(e,i,C.attachSessionContext):void 0,E=await It(e,{adapterId:m,sessionId:i,initialMessage:o,role:S,effectiveRuntimeOptions:x,resumeAdapterSessionId:w,harnessId:d?.harnessId,attachSessionContext:T,providerContext:g});await Zt(e,E,{adapterName:p,sessionId:i,role:S,timestamp:Date.now(),personaId:Wt(a),profileId:d?.profileId,harnessId:d?.harnessId,providerConfigId:h,compressionMode:d?.compressionMode,model:v,cwd:b});let D=o&&E.messageId?await Dt(e,t,E,i,E.agentId,E.messageId,o):void 0;return{agentId:E.agentId,adapterSessionId:E.adapterSessionId,role:S,...D&&{messageId:D.messageId,turnId:D.turnId}}}function Wt(e){return e.kind===`persona`?e.personaId:void 0}function Gt(e,t){return{adapterName:e.kind===`adapter`&&`adapterName`in e?e.adapterName:t?.adapterName,adapterId:e.kind===`adapter`&&`adapterId`in e?e.adapterId:void 0}}async function Kt(e,t,n,r){let i=Y(t),a=Y(n);if(!i&&!a)throw Error(`[attach-handler] adapterName or adapterId is required — provide one explicitly or via persona/profile/virtualModel resolution`);if(a)return{adapterName:await Tt(e,a,i,`[attach-handler] `),adapterId:a};let o=i;return{adapterName:o,adapterId:await z(e,o,r)}}async function qt(e,t,n,r){if(r.kind===`adapter`)return null;let i=n?J(n):void 0;return e.request(y.resolve,{selection:r,context:{sessionId:t,promptText:i}})}async function Jt(e,t){let{session:n}=await e.request(w.get,{sessionId:t});if(!n)throw Error(`[attach-handler] Session not found: ${t}`);if(n.status!==`active`)throw Error(`[attach-handler] Session is not active: ${t}`);return n}function Yt(e,t){let n=e.agents.length===0;return t??(n?`lead`:`member`)}async function Xt(e,t){!t.personaId&&!t.profileId&&!t.harnessId&&!t.providerConfigId||await e.request(ke.set,{agentId:t.agentId,agent:{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId,role:t.role,status:`idle`,personaId:t.personaId,profileId:t.profileId,harnessId:t.harnessId,providerConfigId:t.providerConfigId,createdAt:t.timestamp,lastActivityAt:t.timestamp,...t.model!==void 0&&{model:t.model},...t.cwd!==void 0&&{cwd:t.cwd},...t.compressionMode!==void 0&&{compressionMode:t.compressionMode}}})}async function Zt(e,t,n){try{await Xt(e,{agentId:t.agentId,adapterId:t.adapterId,adapterName:n.adapterName,sessionId:n.sessionId,role:n.role,timestamp:n.timestamp,personaId:n.personaId,profileId:n.profileId,harnessId:n.harnessId,providerConfigId:n.providerConfigId,compressionMode:n.compressionMode,model:n.model,cwd:n.cwd})}catch(r){throw console.error(`[attach-handler] Failed to persist agent identity, rolling back started agent`,{sessionId:n.sessionId,agentId:t.agentId,adapterId:t.adapterId,error:r}),await Ot(e,t,n.sessionId,`identity persistence failure`),r}}function X(e){if(e instanceof ae)return e;if(e instanceof Error&&e.cause instanceof ae)return e.cause}async function Qt(e,t,n,r,i,a,o,s,c,l){let u=n.map(async n=>{try{await e.request(x.sendMessage,{agentId:n.agentId,adapterId:n.adapterId,message:r,deliveryMode:o,messageId:i,turnId:a.turnId,sessionId:t.sessionId,sessionContext:c,...l!==void 0&&{responseSchema:l}}),await e.emit(w.user_message.acknowledged,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId})}catch(t){if(X(t)!==void 0){await e.emit(w.user_message.completed,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId,outcome:`cancelled`});let t=a.markAgentCompleted(n.agentId);t.turnComplete&&await s(a,t.result);return}let r=t instanceof Error?t.message:String(t),o=a.markAgentErrored(n.agentId,r);await e.emit(w.user_message.completed,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId,outcome:`error`,error:r}),o.turnComplete&&await s(a,o.result)}});await Promise.all(u)}function $t(e){return e.on(w.abandon,async t=>{let{parentSessionId:n,childSessionId:r}=t.payload,{session:i}=await e.request(w.get,{sessionId:r});if(!i)throw Error(`[abandon-handler] Child session not found: ${r}`);if(i.parentSessionId!==n)throw Error(`[abandon-handler] Invalid parent-child relationship: session ${r} is not a child of ${n}`+(i.parentSessionId?` (actual parent: ${i.parentSessionId})`:` (session has no parent)`));if(!(await e.request(w.close,{sessionId:r})).success)throw Error(`[abandon-handler] Failed to close child session: ${r}`);await e.emit(w.abandoned,{sessionId:r,parentSessionId:n}),t.setResult({success:!0})})}const en={id:`messages-to-context`,label:`Export as Context`,description:`Convert messages to context JSON (final step)`,category:`extraction`,async execute(e){let t=e.map(e=>({role:e.role,content:e.blocks.map(e=>e.type===`text`?e.content:e.type===`reasoning`?`[reasoning: ${e.content}]`:e.type===`tool_call`?`[tool: ${e.name}]`:e.type===`tool_output`?e.output:``).filter(Boolean).join(`
28
+ `)})),n=t.reduce((e,t)=>e+t.content.length,0),r=Math.ceil(n/4);return{kind:`context`,json:{type:`compressed-messages`,messageCount:e.length,messages:t},tokenEstimate:r}}},tn={id:`llm-summarize`,label:`Summarize`,description:`LLM-generated summary of selected messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:e}}};function nn(e){let t=[];for(let n of e){let e=n.blocks.filter(e=>e.type===`text`).map(e=>e.content).join(`
29
+ `);e&&(n.role===`user`?t.push(`[human]\n${e}\n[/human]`):n.role===`assistant`&&t.push(`[assistant]\n${e}\n[/assistant]`))}return`<conversation>\n${t.join(`
30
+
31
+ `)}\n</conversation>`}function rn(e){return{id:`llm-extract`,label:`LLM Extract`,description:`Extract structured context using a cheap LLM model (requires virtualModelId in options)`,category:`extraction`,async execute(t,n){let r={kind:`messages`,messages:t},i=n?.virtualModelId;if(typeof i!=`string`)return r;let a=(typeof n?.sessionId==`string`&&n.sessionId.length>0?n.sessionId:void 0)??t[0]?.sessionId;if(typeof a!=`string`||a.length===0)return r;try{let n=await e.request(y.resolve,{selection:{kind:`virtual-model`,virtualModelId:i},context:{sessionId:a}}),{adapterId:r}=await e.request(oe.resolveId,{adapterName:n.adapterName}),o=nn(t),s=n.providerConfigId?await se(e,n.providerConfigId):void 0,{text:c}=await e.request(v.infer,{adapterId:r,prompt:o,model:n.model,systemPrompt:`You are a context extraction assistant. Analyze the following conversation and extract structured information. Respond with ONLY valid JSON matching this exact schema — no markdown, no explanation, no code fences:
32
+
33
+ {
34
+ "resolved_items": ["string — completed work with resolution details"],
35
+ "known_bugs": [{ "issue": "string", "location": "string", "impact": "string" }],
36
+ "todos": [{ "issue": "string", "location": "string", "priority": "high|medium|low" }],
37
+ "key_decisions_and_rationale": ["string — decision with reasoning"],
38
+ "technical_details": {
39
+ "files": ["string — file paths mentioned"],
40
+ "schemas": {},
41
+ "apis": ["string — API endpoints or contracts"],
42
+ "config": {}
43
+ },
44
+ "constraints_and_requirements": ["string — constraints or non-negotiable requirements"],
45
+ "current_state": "string — one paragraph summary of where work stands now",
46
+ "roadmap": ["string — future work items in priority order"],
47
+ "data_flows": ["string — key data movement patterns"],
48
+ "component_interactions": { "ComponentName": "string — description of its role" },
49
+ "key_files": { "filepath": "string — what this file does" },
50
+ "helpful_hint": ["string — quick reference hints for resuming work"]
51
+ }
52
+
53
+ Rules:
54
+ - Omit array items you have no evidence for (prefer empty array over fabrication).
55
+ - current_state MUST be present; write "No summary available" if you cannot determine it.
56
+ - Extract only facts stated or clearly implied in the conversation. Do not invent.
57
+ - key_files and component_interactions should only include items explicitly mentioned.`,...s!==void 0&&{providerContext:s}}),l=c.trim().replace(/^```(?:json)?\s*/i,``).replace(/\s*```$/i,``).trim(),u=JSON.parse(l),d=h.parse(u),f=Math.ceil(JSON.stringify(d).length/4);return{kind:`context`,json:{...d},tokenEstimate:f}}catch(e){return console.warn(`[llm-extract] action failed`,{action:`llm-extract`,sessionId:a,error:e}),r}}}}let Z=!1,Q=!1;function an(e){Z||(Z=!0,B.register(Pe),B.register(Ie),B.register(en),B.register(tn)),e&&!Q&&(Q=!0,B.register(rn(e)))}function on(){Z=!1,Q=!1}function sn(e){return an(e),e.on(w.compress,async t=>{let{sessionId:n,pipeline:r}=t.payload,{messages:a}=await e.request(m.getBySession,{sessionId:n,limit:1e4}),o=await V(a,r,{sessionId:n});if(!o.contextJson)throw Error(`[compress-handler] Compress pipeline must produce context JSON (sessionId=${n})`);let s=a.map(e=>e.messageId),c=Math.ceil(a.reduce((e,t)=>e+JSON.stringify(t.blocks).length/4,0)),l=crypto.randomUUID();await e.request(i.append,{event:{sessionId:n,eventId:l,timestamp:Date.now(),type:`squash`,payload:{summaryJson:JSON.stringify(o.contextJson),tokensBefore:c,tokensAfter:o.tokenEstimate,compressedMessageIds:s}}}),await e.emit(w.compressed,{sessionId:n,eventId:l}),t.setResult({eventId:l,contextJson:o.contextJson,tokensBefore:c,tokensAfter:o.tokenEstimate})})}async function cn(e,t,n,r){if(!n.segments?.length)return!1;let i=[],a;do{let{messages:n,nextCursor:o}=await e.request(m.getBySession,{sessionId:t,order:`asc`,limit:200,after:a});i.push(...n),a=r&&n.some(e=>e.messageId===r)?void 0:o??void 0}while(a);if(i.length===0)throw Error(`[fork-handler] Segment transforms require at least one source message (sourceSessionId=${t})`);let o=i;if(r){let e=i.findIndex(e=>e.messageId===r);if(e===-1)throw Error(`[fork-handler] Fork point message not found in source message list: ${r} (sourceSessionId=${t})`);o=i.slice(0,e+1)}let s=new Map;o.forEach((e,t)=>{s.set(e.messageId,t)});let c=-1;for(let e of n.segments){if(!e.fromMessageId||!e.toMessageId)throw Error(`[fork-handler] Segment must have fromMessageId and toMessageId (sourceSessionId=${t})`);let n=s.get(e.fromMessageId),r=s.get(e.toMessageId);if(n===void 0||r===void 0)throw Error(`[fork-handler] Segment boundaries must reference source messages: ${e.fromMessageId}..${e.toMessageId} (sourceSessionId=${t})`);if(n>r)throw Error(`[fork-handler] Segment range is reversed: ${e.fromMessageId}..${e.toMessageId} (sourceSessionId=${t})`);if(n<=c)throw Error(`[fork-handler] Segments must not overlap and must be ordered (sourceSessionId=${t})`);if(n!==c+1)throw Error(`[fork-handler] Segments must be contiguous without gaps (sourceSessionId=${t})`);c=r}if(c!==o.length-1)throw Error(`[fork-handler] Segments must cover the entire source message range (sourceSessionId=${t})`);return!0}function ln(e){if(!e.segments?.length&&e.appliedPipeline?.length)for(let t of e.appliedPipeline){let e=B.get(t.actionId);if(!e)throw Error(`[fork-handler] Unknown action in pipeline: ${t.actionId}`);if(e.category!==`transformation`)throw Error(`[fork-handler] Action '${t.actionId}' is category '${e.category}', but only 'transformation' actions are allowed in fork transforms`)}}function un(e,t){return e.on(w.fork,async n=>{let{sourceSessionId:r,fromMessageId:i,name:a,branchKind:o=`fork`,transforms:s,targetWorkingDirectory:c,metadata:l,existingSessionId:u}=n.payload,{session:d}=await e.request(w.get,{sessionId:r});if(!d)throw Error(`[fork-handler] Source session not found: ${r}`);if(i){let{message:t}=await e.request(m.get,{messageId:i});if(!t)throw Error(`[fork-handler] Fork point message not found: ${i} (sourceSessionId=${r})`);if(t.sessionId!==r)throw Error(`[fork-handler] Fork point message ${i} does not belong to session ${r}`)}s&&(await cn(e,r,s,i)||ln(s));let{sessionId:f}=await e.request(w.create,{...u?{sessionId:u}:{},parentSessionId:r,forkPointMessageId:i,branchKind:o,forkTransforms:s,...t!==void 0&&{machineId:t},...a?{title:a}:{},...c?{targetWorkingDirectory:c}:{},...l?{metadata:l}:{}});await e.emit(w.branch.created,{sessionId:r,childSessionId:f,parentSessionId:r,kind:o,forkPointMessageId:i,transforms:s}),await e.emit(w.forked,{parentSessionId:r,childSessionId:f,forkPoint:i}),n.setResult({sessionId:f})})}function dn(e){return e.on(w.merge,async t=>{let{parentSessionId:n,childSessionId:r,summary:a}=t.payload,o=`merge:${n}:${r}`,{session:s}=await e.request(w.get,{sessionId:n});if(!s)throw Error(`[merge-handler] Parent session not found: ${n}`);if(s.status!==`active`)throw Error(`[merge-handler] Parent session is not active: ${n}`);let{session:c}=await e.request(w.get,{sessionId:r});if(!c)throw Error(`[merge-handler] Child session not found: ${r}`);if(c.parentSessionId!==n)throw Error(`[merge-handler] Invalid parent-child relationship: session ${r} is not a child of ${n}`+(c.parentSessionId?` (actual parent: ${c.parentSessionId})`:` (session has no parent)`));await e.emit(w.merging,{parentSessionId:n,childSessionId:r});let l=a??`Child session ${r} merged.`;if(!(await e.request(w.close,{sessionId:r})).success)throw Error(`[merge-handler] Failed to close child session: ${r}`);let u=JSON.stringify({handoff:l});await e.request(i.append,{event:{sessionId:n,eventId:o,timestamp:Date.now(),type:`branch.merged`,payload:{childSessionId:r,parentSessionId:n,resultJson:u}}}),await e.emit(w.branch.merged,{sessionId:n,childSessionId:r,parentSessionId:n,resultJson:u}),await e.emit(w.merged,{parentSessionId:n,childSessionId:r,handoff:l}),t.setResult({success:!0,handoff:l})})}const $={enabled:!0,template:`User changed working directory from {oldCwd} to {newCwd}`};function fn(e,t,n){return e.replace(/\{oldCwd\}/g,t).replace(/\{newCwd\}/g,n)}function pn(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.enabled==`boolean`&&typeof t.template==`string`}async function mn(e){try{let t=await e.request(g.get,{key:{scope:`global`,surface:`ui`,context:`cwdChangeNotification`},category:`chat-display`});if(t.value!==null&&t.value!==void 0)return pn(t.value)?t.value:$}catch{}return $}function hn(e,t){return e??t.adapterName??``}async function gn(e,t,n,r,i){L(e,{sessionId:t,intent:`fork`,verdict:i});let a=(await H(e,t)).messages.map(U);return{...n,messageHistory:a,isFirstTurn:!0,hasNewTransforms:r.forkTransforms!==void 0,nativeLocality:i}}async function _n(e,t){let{message:n}=await e.request(m.get,{messageId:t});return n?.adapterMessageId??void 0}async function vn(e,t,n,r,i,a,c,l,u){if(!(t.parentSessionId!==void 0&&(t.contextInheritance===`parent-history`||t.contextInheritance===void 0&&t.branchKind!==`subagent`))||r?.messageHistory)return r;let{turns:d}=await e.request(o.getBySession,{sessionId:n,limit:2});if(!(i&&d.length<=1))return r;let f=t.parentSessionId;if(f===void 0)return r;let{session:p}=await e.request(s.get,{sessionId:f});if(p===null)return r;let m=l??t.targetWorkingDirectory,h=W({intent:`fork`,session:{...p,forkPointMessageId:t.forkPointMessageId,forkTransforms:t.forkTransforms},localMachineId:a,adapterSupportsNative:c?.adapterSupportsNativeFork===!0,targetAdapterName:hn(u,p),currentCwd:p.targetWorkingDirectory,targetCwd:m,sessionContext:r,midHistoryForkSupported:c?.midHistoryForkSupported===!0}),g=p.adapterSessionId;if(h.kind===`native`&&g!==void 0){if(t.forkPointMessageId!==void 0){let i=await _n(e,t.forkPointMessageId);if(i===void 0)return gn(e,n,r,t,{kind:`degrade`,reason:`fork-point-unresolvable`});let a={sourceSessionId:f,sourceAdapterSessionId:g,forkPointMessageId:i,...t.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:t.targetWorkingDirectory}};return{...r,nativeLocality:h,nativeFork:a,isFirstTurn:!0}}let i={sourceSessionId:f,sourceAdapterSessionId:g,...t.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:t.targetWorkingDirectory}};return{...r,nativeLocality:h,nativeFork:i,isFirstTurn:!0}}return gn(e,n,r,t,h)}async function yn(e,t,n){if(t.parentSessionId===void 0)return;let r=[...new Set(n.map(e=>e.adapterId))];if(r.length===0)return{adapterSupportsNativeFork:!1,midHistoryForkSupported:!1};let i=await Promise.all(r.map(async t=>{try{let n=await e.requestOptional(v.getCapabilities,{adapterId:t}),r=n.handled?new Set(n.data.capabilities):new Set;return{supportsNativeFork:r.has(`session:fork`),supportsMidHistoryFork:r.has(`session:forkAtMessage`)}}catch{return{supportsNativeFork:!1,supportsMidHistoryFork:!1}}}));return{adapterSupportsNativeFork:i.every(e=>e.supportsNativeFork),midHistoryForkSupported:i.every(e=>e.supportsMidHistoryFork)}}function bn(e){let{baseContext:t,recoveryContext:n,isRecovered:r,isSwapped:i,swapMeta:a,cwdMessage:o,freshMessageHistory:s}=e,c=r&&n?{...t,...n}:t;if(!i)return c;let l=a&&o!==void 0?{cwdChange:{previousCwd:a.previousCwd,newCwd:a.newCwd,message:o}}:void 0;return c={...c,hasConnectorSwap:!0,...s!==void 0&&{messageHistory:s},...l&&{turnContext:{...c?.turnContext,...l}}},c}async function xn(e,t){let{agentId:n,adapterId:r,message:i,deliveryMode:a,messageId:o,turnId:s,sessionId:c,sessionContext:l,responseSchema:u,turn:d}=t;await e.request(x.sendMessage,{agentId:n,adapterId:r,message:i,deliveryMode:a,messageId:o,turnId:s,sessionId:c,sessionContext:l,...u!==void 0&&{responseSchema:u}}),await e.emit(w.user_message.acknowledged,{sessionId:d.sessionId,turnId:d.turnId,turnNumber:d.turnNumber,messageId:o,agentId:n})}async function Sn(e,t,n){return{messageHistory:(await H(e,t.sessionId)).messages.filter(e=>e.messageId!==n).map(U),isFirstTurn:!0}}async function Cn(e,t,n,r){let{agentId:i,adapterId:a,message:o,deliveryMode:s,messageId:c,turnId:l,sessionId:u,responseSchema:d,turn:f}=n;try{await e.request(x.sendMessage,{agentId:i,adapterId:a,message:o,deliveryMode:s,messageId:c,turnId:l,sessionId:u,sessionContext:r,...d!==void 0&&{responseSchema:d}})}catch(n){if(X(n))throw n;let o={kind:`degrade`,reason:`native-attempt-failed`};L(e,{sessionId:u,intent:r.nativeFork?`fork`:`resume`,verdict:o,agentId:i,adapterId:a,turnId:l});let s=await Sn(e,t,c);return{...r,...s,nativeLocality:o,nativeFork:void 0}}return await e.emit(w.user_message.acknowledged,{sessionId:f.sessionId,turnId:f.turnId,turnNumber:f.turnNumber,messageId:c,agentId:i}),null}async function wn(e){let{bus:t,session:n,turn:r,message:i,messageId:a,deliveryMode:o,onTurnComplete:s,agent:c,responseSchema:l}=e,{agentContext:u}=e,d={agentId:c.agentId,adapterId:c.adapterId,message:i,deliveryMode:o,messageId:a,turnId:r.turnId,sessionId:n.sessionId,responseSchema:l,turn:r};try{if(u?.nativeLocality?.kind===`native`){let e=await Cn(t,n,d,u);if(e===null)return;u=e}await xn(t,{agentId:c.agentId,adapterId:c.adapterId,message:i,deliveryMode:o,messageId:a,turnId:r.turnId,sessionId:n.sessionId,sessionContext:u,responseSchema:l,turn:r})}catch(e){if(X(e)){await t.emit(w.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:a,agentId:c.agentId,outcome:`cancelled`});let e=r.markAgentCompleted(c.agentId);e.turnComplete&&await s(r,e.result);return}let n=e instanceof Error?e.message:String(e),i=r.markAgentErrored(c.agentId,n);await t.emit(w.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:a,agentId:c.agentId,outcome:`error`,error:n}),i.turnComplete&&await s(r,i.result)}}async function Tn(e,t,n){let r={kind:`degrade`,reason:`agent-already-started`};L(e,{sessionId:t.sessionId,intent:`fork`,verdict:r});let i=(await H(e,t.sessionId)).messages.map(U);return{...n,messageHistory:i,nativeFork:void 0,nativeLocality:r}}async function En(e){let{bus:t,session:n,agents:r,message:i,messageId:a,turn:o,deliveryMode:s,onTurnComplete:c,sessionContext:l,turnContextEnricher:u,isNewTurn:d,recoveryContext:f,recoveredAgentIds:p,swappedAgentIds:m,swappedAgentCwd:h,freshMessageHistory:g,responseSchema:_,localMachineId:v}=e,y=await yn(t,n,r),b=await vn(t,n,n.sessionId,l,d,v,y);b?.nativeFork&&(b=await Tn(t,n,b));let x=u?await u.enrichForDeliveryMode(b?.messageHistory,o.turnId,s):b?.messageHistory,S=b?{...b,messageHistory:x}:void 0,C=m?.size?await mn(t):$,w=r.map(async e=>{let r=h?.get(e.agentId),l=r&&C.enabled?fn(C.template,r.previousCwd,r.newCwd):void 0;await wn({bus:t,session:n,turn:o,message:i,messageId:a,deliveryMode:s,onTurnComplete:c,agent:e,agentContext:bn({baseContext:S,recoveryContext:f,isRecovered:p?.has(e.agentId)??!1,isSwapped:m?.has(e.agentId)??!1,swapMeta:r,cwdMessage:l,freshMessageHistory:g}),responseSchema:_})});await Promise.all(w)}export{B as A,Te as B,We as C,Ue as D,Ge as E,R as F,ke as I,I as L,z as M,je as N,Be as O,Ae as P,Ee as R,W as S,He as T,pe as V,J as _,sn as a,st as b,$t as c,Y as d,Tt as f,St as g,xt as h,un as i,Me as j,H as k,Qt as l,Ct as m,vn as n,an as o,wt as p,dn as r,on as s,En as t,Rt as u,bt as v,Ve as w,Qe as x,vt as y,De as z};
@@ -1,6 +1,6 @@
1
1
  import { ExtractSubjectPayload, SubjectDefinition } from "@makaio/framework/core";
2
2
  import { IMakaioBus, InterceptorContext } from "@makaio/framework/bus";
3
- import { IMakaioSession, JsonValue, MessageInput, SessionContext, SessionMessageBlock, SessionSubjects, StepFinished, StepType, Turn } from "@makaio/framework/contracts";
3
+ import { IMakaioSession, JsonValue, MessageInput, SessionContext, SessionMessageBlock, SessionSubjects, StartMode, StepFinished, StepType, Turn } from "@makaio/framework/contracts";
4
4
  import { SessionSendMessageRequest } from "@makaio/framework/contracts/session";
5
5
 
6
6
  //#region packages/hooks/src/types/hook-name.d.ts
@@ -289,6 +289,14 @@ type PreTurnHookOptions = BaseHookOptions;
289
289
  interface PostTurnHookOptions extends BaseHookOptions {
290
290
  /** Hook name for error attribution (default: 'anonymous') */
291
291
  name?: string;
292
+ /**
293
+ * When true, the handler also runs for turns ingested from historical
294
+ * imports (`session.turn.completed` with ingestionMarker `'backfill'`).
295
+ * Default false: backfill emissions are filtered so LLM-driven consumers do
296
+ * not stampede over historical imports. Live turns (marker `'live'` or
297
+ * absent) always run.
298
+ */
299
+ includeBackfill?: boolean;
292
300
  }
293
301
  /**
294
302
  * Options for PostStep hook.
@@ -306,7 +314,24 @@ interface PostStepHookOptions extends BaseHookOptions {
306
314
  }
307
315
  type PreToolUseHookOptions = BaseHookOptions;
308
316
  type PostToolUseHookOptions = BaseHookOptions;
309
- type SessionStartHookOptions = BaseHookOptions;
317
+ /**
318
+ * Options for SessionStart hook.
319
+ *
320
+ * SessionStart hooks fire on `agent.started` events filtered by
321
+ * {@link startModes}. The default filter is `['fresh', 'fork']` so that
322
+ * hooks behave as session-initialisation hooks rather than per-turn hooks.
323
+ */
324
+ interface SessionStartHookOptions extends BaseHookOptions {
325
+ /**
326
+ * Start modes that trigger this hook.
327
+ *
328
+ * - `['fresh']` — only brand-new sessions (e.g. content injectors)
329
+ * - `['fresh', 'fork']` — new sessions and forks (default)
330
+ * - `START_MODES` — all modes (e.g. provider-lifecycle telemetry)
331
+ * Defaults to `['fresh', 'fork']`.
332
+ */
333
+ startModes?: readonly StartMode[];
334
+ }
310
335
  type SessionEndHookOptions = BaseHookOptions;
311
336
  //#endregion
312
337
  //#region packages/hooks/src/create-hook.d.ts
@@ -1 +1 @@
1
- import{MakaioBus as e}from"@makaio/framework/bus";import{AgentSubjects as t,SessionSubjects as n}from"@makaio/framework/contracts";import{TurnStorageSubjects as r}from"@makaio/framework/services/turn";const i={session:void 0,recentHistory:[],contextExtensions:{}};async function a(e,t){try{let{session:a}=await e.request(n.get,{sessionId:t});if(!a)return i;let[o,s]=await Promise.all([e.request(r.getBySession,{sessionId:t,limit:10}).catch(()=>({turns:[]})),e.requestOptional(n.enrichContext,{sessionId:t}).catch(()=>({handled:!1}))]),c=s.handled?s.data:{};return{session:a,recentHistory:o.turns,contextExtensions:c}}catch{return i}}async function o(e,t){let n=e.payload,r=await a(t,n.sessionId);return{...r.contextExtensions,hookEvent:`PostTurn`,sessionId:n.sessionId,turnId:n.turnId,success:n.success,error:n.error,payload:n,messageId:e.messageId,correlationId:e.correlationId,session:r.session,recentHistory:r.recentHistory,contextExtensions:r.contextExtensions,bus:t,async next(){await e.next()},stopPropagation:e.stopPropagation.bind(e)}}async function s(e,t){let n=e.payload,r=n.sessionId?await a(t,n.sessionId):i;return{...r.contextExtensions,hookEvent:`PostStep`,sessionId:n.sessionId,agentId:n.agentId,adapterId:n.adapterId,adapterName:n.adapterName,messageId:n.messageId,stepType:n.stepType,blockIndex:n.blockIndex,stepContent:n.content,payload:n,correlationId:e.correlationId,session:r.session,recentHistory:r.recentHistory,contextExtensions:r.contextExtensions,bus:t,async next(){await e.next()},stopPropagation:e.stopPropagation.bind(e)}}var c=class extends Error{hookName;reason;code=`HOOK_ABORT`;constructor(e,t){super(`Message aborted by hook: ${e}${t?` - ${t}`:``}`),this.hookName=e,this.reason=t,this.name=`HookAbortError`}},l=class{entries=[];register(e,t,n,r=0){let i={name:e,handler:t,priority:r,options:n};return this.entries.push(i),this.entries.sort((e,t)=>t.priority-e.priority),()=>{let e=this.entries.indexOf(i);e!==-1&&this.entries.splice(e,1)}}reset(){this.entries.length=0}[Symbol.iterator](){return this.entries[Symbol.iterator]()}};const u=new l;function d(e,t,n,r=0){return u.register(e,t,n,r)}function f(){u.reset()}async function p(e,t){let n=e.message,r=e.sessionContext,o=e.sessionId?await a(t,e.sessionId):i;for(let{name:i,handler:a}of u){let s={},l={...o.contextExtensions,get payload(){return{message:n,sessionId:e.sessionId,sessionContext:r,cwd:e.cwd,adapterId:e.adapterId,agentId:e.agentId}},messageId:e.messageId,correlationId:void 0,replacePayload:e=>{e.message!==void 0&&(n=e.message),e.sessionContext!==void 0&&(r=e.sessionContext)},next:async()=>{},abort:e=>{throw new c(i,e)},hookEvent:`PreUserMessage`,session:o.session,recentHistory:o.recentHistory,contextExtensions:o.contextExtensions,bus:t,setTurnContext(e,t){s[e]=t},getTurnContext(){return{...s}}};await a(l);let u=l.getTurnContext();if(Object.keys(u).length>0){let e={...r?.turnContext??{},...u};r={...r,turnContext:e}}}return{message:n,sessionContext:r}}const m=new l;function h(e,t,n,r=0){return m.register(e,t,n,r)}function g(){m.reset()}async function _(e,t){for(let{name:n,handler:r}of m){let i={hookEvent:`PostUserMessage`,agentId:e.agentId,adapterId:e.adapterId,sessionId:e.sessionId,messageId:e.messageId,bus:t};try{await r(i)}catch(e){console.error(`[PostUserMessage] Hook "${n}" failed:`,e)}}}async function v(e,t,n,r,i){try{await r(await n())}catch(n){console.error(`[${e}] Hook '${t}' error:`,n)}await i()}function y(r,i){if(r===`BusMessage`){let t=i;return{unsubscribe:e.intercept(t.subject,t.handler,{priority:t.priority}),hookName:r}}if(r===`PreUserMessage`){let e=i;return{unsubscribe:d(e.name??`anonymous`,e.handler,e,e.priority??0),hookName:r}}if(r===`PostUserMessage`){let e=i;return{unsubscribe:h(e.name??`anonymous`,e.handler,e,e.priority??0),hookName:r}}if(r===`PostTurn`){let t=i,a=t.name??`anonymous`;return{unsubscribe:e.intercept(n.turn.completed,async n=>{await v(`PostTurn`,a,()=>o(n,e),t.handler,()=>n.next())},{priority:t.priority}),hookName:r}}if(r===`PostStep`){let n=i,a=n.stepTypes??[`reasoning`],o=n.name??`anonymous`;return{unsubscribe:e.intercept(t.step.finished,async t=>{if(!a.includes(t.payload.stepType)){await t.next();return}await v(`PostStep`,o,()=>s(t,e),n.handler,()=>t.next())},{priority:n.priority}),hookName:r}}throw Error(`Named hook "${r}" not yet implemented. Use BusMessage for now.`)}export{c as HookAbortError,y as createHook,d as registerPreUserMessageHook,g as resetPostUserMessageHooks,f as resetPreUserMessageHooks,_ as runPostUserMessageHooks,p as runPreUserMessageHooks};
1
+ import{MakaioBus as e}from"@makaio/framework/bus";import{AgentSubjects as t,SessionSubjects as n}from"@makaio/framework/contracts";import{TurnStorageSubjects as r}from"@makaio/framework/services/turn";const i={session:void 0,recentHistory:[],contextExtensions:{}};async function a(e,t){try{let{session:a}=await e.request(n.get,{sessionId:t});if(!a)return i;let[o,s]=await Promise.all([e.request(r.getBySession,{sessionId:t,limit:10}).catch(()=>({turns:[]})),e.requestOptional(n.enrichContext,{sessionId:t}).catch(()=>({handled:!1}))]),c=s.handled?s.data:{};return{session:a,recentHistory:o.turns,contextExtensions:c}}catch{return i}}async function o(e,t){let n=e.payload,r=await a(t,n.sessionId);return{...r.contextExtensions,hookEvent:`PostTurn`,sessionId:n.sessionId,turnId:n.turnId,success:n.success,error:n.error,payload:n,messageId:e.messageId,correlationId:e.correlationId,session:r.session,recentHistory:r.recentHistory,contextExtensions:r.contextExtensions,bus:t,async next(){await e.next()},stopPropagation:e.stopPropagation.bind(e)}}async function s(e,t){let n=e.payload,r=n.sessionId?await a(t,n.sessionId):i;return{...r.contextExtensions,hookEvent:`PostStep`,sessionId:n.sessionId,agentId:n.agentId,adapterId:n.adapterId,adapterName:n.adapterName,messageId:n.messageId,stepType:n.stepType,blockIndex:n.blockIndex,stepContent:n.content,payload:n,correlationId:e.correlationId,session:r.session,recentHistory:r.recentHistory,contextExtensions:r.contextExtensions,bus:t,async next(){await e.next()},stopPropagation:e.stopPropagation.bind(e)}}var c=class extends Error{hookName;reason;code=`HOOK_ABORT`;constructor(e,t){super(`Message aborted by hook: ${e}${t?` - ${t}`:``}`),this.hookName=e,this.reason=t,this.name=`HookAbortError`}},l=class{entries=[];register(e,t,n,r=0){let i={name:e,handler:t,priority:r,options:n};return this.entries.push(i),this.entries.sort((e,t)=>t.priority-e.priority),()=>{let e=this.entries.indexOf(i);e!==-1&&this.entries.splice(e,1)}}reset(){this.entries.length=0}[Symbol.iterator](){return this.entries[Symbol.iterator]()}};const u=new l;function d(e,t,n,r=0){return u.register(e,t,n,r)}function f(){u.reset()}async function p(e,t){let n=e.message,r=e.sessionContext,o=e.sessionId?await a(t,e.sessionId):i;for(let{name:i,handler:a}of u){let s={},l={...o.contextExtensions,get payload(){return{message:n,sessionId:e.sessionId,sessionContext:r,cwd:e.cwd,adapterId:e.adapterId,agentId:e.agentId}},messageId:e.messageId,correlationId:void 0,replacePayload:e=>{e.message!==void 0&&(n=e.message),e.sessionContext!==void 0&&(r=e.sessionContext)},next:async()=>{},abort:e=>{throw new c(i,e)},hookEvent:`PreUserMessage`,session:o.session,recentHistory:o.recentHistory,contextExtensions:o.contextExtensions,bus:t,setTurnContext(e,t){s[e]=t},getTurnContext(){return{...s}}};await a(l);let u=l.getTurnContext();if(Object.keys(u).length>0){let e={...r?.turnContext??{},...u};r={...r,turnContext:e}}}return{message:n,sessionContext:r}}const m=new l;function h(e,t,n,r=0){return m.register(e,t,n,r)}function g(){m.reset()}async function _(e,t){for(let{name:n,handler:r}of m){let i={hookEvent:`PostUserMessage`,agentId:e.agentId,adapterId:e.adapterId,sessionId:e.sessionId,messageId:e.messageId,bus:t};try{await r(i)}catch(e){console.error(`[PostUserMessage] Hook "${n}" failed:`,e)}}}async function v(e,t,n,r,i){try{await r(await n())}catch(n){console.error(`[${e}] Hook '${t}' error:`,n)}await i()}function y(r,i){if(r===`BusMessage`){let t=i;return{unsubscribe:e.intercept(t.subject,t.handler,{priority:t.priority}),hookName:r}}if(r===`PreUserMessage`){let e=i;return{unsubscribe:d(e.name??`anonymous`,e.handler,e,e.priority??0),hookName:r}}if(r===`PostUserMessage`){let e=i;return{unsubscribe:h(e.name??`anonymous`,e.handler,e,e.priority??0),hookName:r}}if(r===`PostTurn`){let t=i,a=t.name??`anonymous`;return{unsubscribe:e.intercept(n.turn.completed,async n=>{if(t.includeBackfill!==!0&&n.payload.ingestionMarker===`backfill`){await n.next();return}await v(`PostTurn`,a,()=>o(n,e),t.handler,()=>n.next())},{priority:t.priority}),hookName:r}}if(r===`PostStep`){let n=i,a=n.stepTypes??[`reasoning`],o=n.name??`anonymous`;return{unsubscribe:e.intercept(t.step.finished,async t=>{if(!a.includes(t.payload.stepType)){await t.next();return}await v(`PostStep`,o,()=>s(t,e),n.handler,()=>t.next())},{priority:n.priority}),hookName:r}}throw Error(`Named hook "${r}" not yet implemented. Use BusMessage for now.`)}export{c as HookAbortError,y as createHook,d as registerPreUserMessageHook,g as resetPostUserMessageHooks,f as resetPreUserMessageHooks,_ as runPostUserMessageHooks,p as runPreUserMessageHooks};
@@ -1 +1 @@
1
- import{AdapterRuntimeSubjects as e}from"./services/adapter-runtime/namespace.mjs";import{AdapterSubjects as t}from"@makaio/framework/contracts";const n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],r=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];function i(e,t){return e>>>t|e<<32-t}function a(e){let t=new TextEncoder().encode(e),a=t.length*8,o=t.length+9+63>>6<<6>>>0,s=new Uint8Array(o);s.set(t),s[t.length]=128;let c=new DataView(s.buffer),l=Math.floor(a/4294967296),u=a>>>0;c.setUint32(o-8,l,!1),c.setUint32(o-4,u,!1);let d=[...r],f=new Uint32Array(64);for(let e=0;e<s.length;e+=64){for(let t=0;t<16;t+=1)f[t]=c.getUint32(e+t*4,!1);for(let e=16;e<64;e+=1){let t=i(f[e-15],7)^i(f[e-15],18)^f[e-15]>>>3,n=i(f[e-2],17)^i(f[e-2],19)^f[e-2]>>>10;f[e]=f[e-16]+t+f[e-7]+n>>>0}let[t,r,a,o,s,l,u,p]=d;for(let e=0;e<64;e+=1){let c=i(s,6)^i(s,11)^i(s,25),d=s&l^~s&u,m=p+c+d+n[e]+f[e]>>>0,h=(i(t,2)^i(t,13)^i(t,22))+(t&r^t&a^r&a)>>>0;p=u,u=l,l=s,s=o+m>>>0,o=a,a=r,r=t,t=m+h>>>0}d[0]=d[0]+t>>>0,d[1]=d[1]+r>>>0,d[2]=d[2]+a>>>0,d[3]=d[3]+o>>>0,d[4]=d[4]+s>>>0,d[5]=d[5]+l>>>0,d[6]=d[6]+u>>>0,d[7]=d[7]+p>>>0}return d.map(e=>e.toString(16).padStart(8,`0`)).join(``)}function o(e,t){let n=a(JSON.stringify([e,t]));return[n.slice(0,8),n.slice(8,12),`5${n.slice(13,16)}`,`a${n.slice(17,20)}`,n.slice(20,32)].join(`-`)}function s(e,t){let n=e.machineId??t;if(!n)throw Error(`resolveId requires machineId when no runtime default machine is configured for adapterName="${e.adapterName}"`);return o(n,e.adapterName)}var c=class{currentMachineId;adapterNamesById=new Map;localAdapterIds=new Set;constructor(e){this.currentMachineId=e}replaceKnownAdapterNames(e){for(let e of this.localAdapterIds)this.adapterNamesById.delete(e);if(this.localAdapterIds=new Set,this.currentMachineId)for(let t of e){let e=o(this.currentMachineId,t);this.adapterNamesById.set(e,t),this.localAdapterIds.add(e)}}resolveId(e){let t=s(e,this.currentMachineId);return this.rememberAdapterId(t,e.adapterName),t}rememberAdapterId(e,t){this.adapterNamesById.set(e,t)}resolveAdapterName(e){return this.adapterNamesById.get(e)}async resolveAdapterNameFromKnownNames(e,t){return this.resolveAdapterName(e)||(this.replaceKnownAdapterNames(await t()),this.resolveAdapterName(e))}clear(){this.adapterNamesById.clear(),this.localAdapterIds.clear()}};function l(n,r={}){let i=new c(r.currentMachineId);r.knownAdapterNames&&i.replaceKnownAdapterNames(r.knownAdapterNames);let a=[n.on(t.initialized,e=>{i.rememberAdapterId(e.payload.adapterId,e.payload.adapterName)}),n.on(e.resolveId,e=>{e.setResult({adapterId:i.resolveId(e.payload)})}),n.on(e.resolveName,async e=>{let t=i.resolveAdapterName(e.payload.adapterId)??(r.listKnownAdapterNames?await i.resolveAdapterNameFromKnownNames(e.payload.adapterId,r.listKnownAdapterNames):void 0);if(!t)throw Error(`Adapter not found for adapterId="${e.payload.adapterId}"`);e.setResult({adapterName:t})})];return{registry:i,cleanup:()=>{for(let e of a)e()}}}export{s as i,o as n,l as r,c as t};
1
+ import{AdapterRuntimeSubjects as e}from"./services/adapter-runtime/namespace.mjs";import{AdapterSubjects as t}from"@makaio/framework/contracts";const n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],r=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];function i(e,t){return e>>>t|e<<32-t}function a(e){let t=new TextEncoder().encode(e),a=t.length*8,o=t.length+9+63>>6<<6>>>0,s=new Uint8Array(o);s.set(t),s[t.length]=128;let c=new DataView(s.buffer),l=Math.floor(a/4294967296),u=a>>>0;c.setUint32(o-8,l,!1),c.setUint32(o-4,u,!1);let d=[...r],f=new Uint32Array(64);for(let e=0;e<s.length;e+=64){for(let t=0;t<16;t+=1)f[t]=c.getUint32(e+t*4,!1);for(let e=16;e<64;e+=1){let t=i(f[e-15],7)^i(f[e-15],18)^f[e-15]>>>3,n=i(f[e-2],17)^i(f[e-2],19)^f[e-2]>>>10;f[e]=f[e-16]+t+f[e-7]+n>>>0}let[t,r,a,o,s,l,u,p]=d;for(let e=0;e<64;e+=1){let c=i(s,6)^i(s,11)^i(s,25),d=s&l^~s&u,m=p+c+d+n[e]+f[e]>>>0,h=(i(t,2)^i(t,13)^i(t,22))+(t&r^t&a^r&a)>>>0;p=u,u=l,l=s,s=o+m>>>0,o=a,a=r,r=t,t=m+h>>>0}d[0]=d[0]+t>>>0,d[1]=d[1]+r>>>0,d[2]=d[2]+a>>>0,d[3]=d[3]+o>>>0,d[4]=d[4]+s>>>0,d[5]=d[5]+l>>>0,d[6]=d[6]+u>>>0,d[7]=d[7]+p>>>0}return d.map(e=>e.toString(16).padStart(8,`0`)).join(``)}function o(e,t){let n=a(JSON.stringify([e,t]));return[n.slice(0,8),n.slice(8,12),`5${n.slice(13,16)}`,`a${n.slice(17,20)}`,n.slice(20,32)].join(`-`)}function s(e,t){let n=e.machineId??t;if(!n)throw Error(`resolveId requires machineId when no runtime default machine is configured for adapterName="${e.adapterName}"`);return o(n,e.adapterName)}var c=class{currentMachineId;adapterNamesById=new Map;localAdapterIds=new Set;constructor(e){this.currentMachineId=e}replaceKnownAdapterNames(e){for(let e of this.localAdapterIds)this.adapterNamesById.delete(e);if(this.localAdapterIds=new Set,this.currentMachineId)for(let t of e){let e=o(this.currentMachineId,t);this.adapterNamesById.set(e,t),this.localAdapterIds.add(e)}}resolveId(e){let t=s(e,this.currentMachineId);return this.rememberAdapterId(t,e.adapterName),t}rememberAdapterId(e,t){this.adapterNamesById.set(e,t)}resolveAdapterName(e){return this.adapterNamesById.get(e)}async resolveAdapterNameFromKnownNames(e,t){return this.resolveAdapterName(e)||(this.replaceKnownAdapterNames(await t()),this.resolveAdapterName(e))}clear(){this.adapterNamesById.clear(),this.localAdapterIds.clear()}};function l(n,r={}){let i=new c(r.currentMachineId);r.knownAdapterNames&&i.replaceKnownAdapterNames(r.knownAdapterNames);let a=[n.on(t.initialized,e=>{i.rememberAdapterId(e.payload.adapterId,e.payload.adapterName)}),n.on(e.resolveId,e=>{e.setResult({adapterId:i.resolveId(e.payload)})}),n.on(e.getMachineId,e=>{e.setResult({machineId:r.currentMachineId})}),n.on(e.resolveName,async e=>{let t=i.resolveAdapterName(e.payload.adapterId)??(r.listKnownAdapterNames?await i.resolveAdapterNameFromKnownNames(e.payload.adapterId,r.listKnownAdapterNames):void 0);if(!t)throw Error(`Adapter not found for adapterId="${e.payload.adapterId}"`);e.setResult({adapterName:t})})];return{registry:i,cleanup:()=>{for(let e of a)e()}}}export{s as i,o as n,l as r,c as t};
@@ -27,9 +27,9 @@ type MakaioVariant = z.infer<typeof MakaioVariantSchema>;
27
27
  */
28
28
  declare const VariantUpgradeStatusSchema: z.ZodEnum<{
29
29
  error: "error";
30
+ progress: "progress";
30
31
  complete: "complete";
31
32
  downloading: "downloading";
32
- progress: "progress";
33
33
  applying: "applying";
34
34
  }>;
35
35
  /** Inferred TypeScript type for an upgrade status value. */
@@ -58,8 +58,8 @@ declare const VariantSchemas: {
58
58
  }>;
59
59
  bundleCEF: z.ZodBoolean;
60
60
  defaultRenderer: z.ZodEnum<{
61
- cef: "cef";
62
61
  native: "native";
62
+ cef: "cef";
63
63
  }>;
64
64
  }, z.core.$strip>;
65
65
  };
@@ -101,9 +101,9 @@ declare const VariantSchemas: {
101
101
  upgradeProgress: z.ZodObject<{
102
102
  status: z.ZodEnum<{
103
103
  error: "error";
104
+ progress: "progress";
104
105
  complete: "complete";
105
106
  downloading: "downloading";
106
- progress: "progress";
107
107
  applying: "applying";
108
108
  }>;
109
109
  percent: z.ZodOptional<z.ZodNumber>;
@@ -134,8 +134,8 @@ declare const VariantNamespace: _$_makaio_core0.BusNamespaceDefinition<"host:var
134
134
  }>;
135
135
  bundleCEF: _$zod.ZodBoolean;
136
136
  defaultRenderer: _$zod.ZodEnum<{
137
- cef: "cef";
138
137
  native: "native";
138
+ cef: "cef";
139
139
  }>;
140
140
  }, _$zod_v4_core0.$strip>;
141
141
  };
@@ -158,9 +158,9 @@ declare const VariantNamespace: _$_makaio_core0.BusNamespaceDefinition<"host:var
158
158
  upgradeProgress: _$zod.ZodObject<{
159
159
  status: _$zod.ZodEnum<{
160
160
  error: "error";
161
+ progress: "progress";
161
162
  complete: "complete";
162
163
  downloading: "downloading";
163
- progress: "progress";
164
164
  applying: "applying";
165
165
  }>;
166
166
  percent: _$zod.ZodOptional<_$zod.ZodNumber>;
@@ -181,8 +181,8 @@ declare const VariantSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatS
181
181
  }>;
182
182
  bundleCEF: _$zod.ZodBoolean;
183
183
  defaultRenderer: _$zod.ZodEnum<{
184
- cef: "cef";
185
184
  native: "native";
185
+ cef: "cef";
186
186
  }>;
187
187
  }, _$zod_v4_core0.$strip>;
188
188
  };
@@ -205,9 +205,9 @@ declare const VariantSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatS
205
205
  upgradeProgress: _$zod.ZodObject<{
206
206
  status: _$zod.ZodEnum<{
207
207
  error: "error";
208
+ progress: "progress";
208
209
  complete: "complete";
209
210
  downloading: "downloading";
210
- progress: "progress";
211
211
  applying: "applying";
212
212
  }>;
213
213
  percent: _$zod.ZodOptional<_$zod.ZodNumber>;
@@ -18,11 +18,11 @@ import { ExtensionWarningEntry, ExtensionWarningEntrySchema } from "@makaio/fram
18
18
  * detail, not an externally observable state.
19
19
  */
20
20
  declare const ComponentStateSchema: z.ZodEnum<{
21
- discovered: "discovered";
22
- failed: "failed";
23
21
  stopped: "stopped";
24
- active: "active";
22
+ failed: "failed";
23
+ discovered: "discovered";
25
24
  skipped: "skipped";
25
+ active: "active";
26
26
  initializing: "initializing";
27
27
  }>;
28
28
  /** Inferred union of all valid component lifecycle states. */
@@ -47,11 +47,11 @@ declare const ComponentInfoSchema: z.ZodObject<{
47
47
  name: z.ZodString;
48
48
  displayName: z.ZodString;
49
49
  state: z.ZodEnum<{
50
- discovered: "discovered";
51
- failed: "failed";
52
50
  stopped: "stopped";
53
- active: "active";
51
+ failed: "failed";
52
+ discovered: "discovered";
54
53
  skipped: "skipped";
54
+ active: "active";
55
55
  initializing: "initializing";
56
56
  }>;
57
57
  error: z.ZodOptional<z.ZodString>;
@@ -68,11 +68,11 @@ declare const ServiceInfoSchema: z.ZodObject<{
68
68
  name: z.ZodString;
69
69
  displayName: z.ZodString;
70
70
  state: z.ZodEnum<{
71
- discovered: "discovered";
72
- failed: "failed";
73
71
  stopped: "stopped";
74
- active: "active";
72
+ failed: "failed";
73
+ discovered: "discovered";
75
74
  skipped: "skipped";
75
+ active: "active";
76
76
  initializing: "initializing";
77
77
  }>;
78
78
  error: z.ZodOptional<z.ZodString>;
@@ -90,11 +90,11 @@ declare const ExtensionInfoSchema: z.ZodObject<{
90
90
  name: z.ZodString;
91
91
  displayName: z.ZodString;
92
92
  state: z.ZodEnum<{
93
- discovered: "discovered";
94
- failed: "failed";
95
93
  stopped: "stopped";
96
- active: "active";
94
+ failed: "failed";
95
+ discovered: "discovered";
97
96
  skipped: "skipped";
97
+ active: "active";
98
98
  initializing: "initializing";
99
99
  }>;
100
100
  error: z.ZodOptional<z.ZodString>;
@@ -138,19 +138,19 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
138
138
  name: z.ZodString;
139
139
  displayName: z.ZodString;
140
140
  from: z.ZodEnum<{
141
- discovered: "discovered";
142
- failed: "failed";
143
141
  stopped: "stopped";
144
- active: "active";
142
+ failed: "failed";
143
+ discovered: "discovered";
145
144
  skipped: "skipped";
145
+ active: "active";
146
146
  initializing: "initializing";
147
147
  }>;
148
148
  to: z.ZodEnum<{
149
- discovered: "discovered";
150
- failed: "failed";
151
149
  stopped: "stopped";
152
- active: "active";
150
+ failed: "failed";
151
+ discovered: "discovered";
153
152
  skipped: "skipped";
153
+ active: "active";
154
154
  initializing: "initializing";
155
155
  }>;
156
156
  error: z.ZodOptional<z.ZodString>;
@@ -181,11 +181,11 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
181
181
  name: z.ZodString;
182
182
  displayName: z.ZodString;
183
183
  state: z.ZodEnum<{
184
- discovered: "discovered";
185
- failed: "failed";
186
184
  stopped: "stopped";
187
- active: "active";
185
+ failed: "failed";
186
+ discovered: "discovered";
188
187
  skipped: "skipped";
188
+ active: "active";
189
189
  initializing: "initializing";
190
190
  }>;
191
191
  error: z.ZodOptional<z.ZodString>;
@@ -219,11 +219,11 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
219
219
  name: z.ZodString;
220
220
  displayName: z.ZodString;
221
221
  state: z.ZodEnum<{
222
- discovered: "discovered";
223
- failed: "failed";
224
222
  stopped: "stopped";
225
- active: "active";
223
+ failed: "failed";
224
+ discovered: "discovered";
226
225
  skipped: "skipped";
226
+ active: "active";
227
227
  initializing: "initializing";
228
228
  }>;
229
229
  error: z.ZodOptional<z.ZodString>;
@@ -488,8 +488,8 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
488
488
  extensionName: z.ZodString;
489
489
  warnings: z.ZodArray<z.ZodObject<{
490
490
  severity: z.ZodEnum<{
491
- info: "info";
492
491
  degraded: "degraded";
492
+ info: "info";
493
493
  recommended: "recommended";
494
494
  }>;
495
495
  title: z.ZodString;
@@ -528,8 +528,8 @@ declare const ExtensionNamespace: _$_makaio_core0.BusNamespaceDefinition<"kernel
528
528
  extensionName: z.ZodString;
529
529
  warnings: z.ZodArray<z.ZodObject<{
530
530
  severity: z.ZodEnum<{
531
- info: "info";
532
531
  degraded: "degraded";
532
+ info: "info";
533
533
  recommended: "recommended";
534
534
  }>;
535
535
  title: z.ZodString;
@@ -593,19 +593,19 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
593
593
  name: z.ZodString;
594
594
  displayName: z.ZodString;
595
595
  from: z.ZodEnum<{
596
- discovered: "discovered";
597
- failed: "failed";
598
596
  stopped: "stopped";
599
- active: "active";
597
+ failed: "failed";
598
+ discovered: "discovered";
600
599
  skipped: "skipped";
600
+ active: "active";
601
601
  initializing: "initializing";
602
602
  }>;
603
603
  to: z.ZodEnum<{
604
- discovered: "discovered";
605
- failed: "failed";
606
604
  stopped: "stopped";
607
- active: "active";
605
+ failed: "failed";
606
+ discovered: "discovered";
608
607
  skipped: "skipped";
608
+ active: "active";
609
609
  initializing: "initializing";
610
610
  }>;
611
611
  error: z.ZodOptional<z.ZodString>;
@@ -636,11 +636,11 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
636
636
  name: z.ZodString;
637
637
  displayName: z.ZodString;
638
638
  state: z.ZodEnum<{
639
- discovered: "discovered";
640
- failed: "failed";
641
639
  stopped: "stopped";
642
- active: "active";
640
+ failed: "failed";
641
+ discovered: "discovered";
643
642
  skipped: "skipped";
643
+ active: "active";
644
644
  initializing: "initializing";
645
645
  }>;
646
646
  error: z.ZodOptional<z.ZodString>;
@@ -674,11 +674,11 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
674
674
  name: z.ZodString;
675
675
  displayName: z.ZodString;
676
676
  state: z.ZodEnum<{
677
- discovered: "discovered";
678
- failed: "failed";
679
677
  stopped: "stopped";
680
- active: "active";
678
+ failed: "failed";
679
+ discovered: "discovered";
681
680
  skipped: "skipped";
681
+ active: "active";
682
682
  initializing: "initializing";
683
683
  }>;
684
684
  error: z.ZodOptional<z.ZodString>;
@@ -943,8 +943,8 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
943
943
  extensionName: z.ZodString;
944
944
  warnings: z.ZodArray<z.ZodObject<{
945
945
  severity: z.ZodEnum<{
946
- info: "info";
947
946
  degraded: "degraded";
947
+ info: "info";
948
948
  recommended: "recommended";
949
949
  }>;
950
950
  title: z.ZodString;
@@ -983,8 +983,8 @@ declare const ExtensionSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.Fla
983
983
  extensionName: z.ZodString;
984
984
  warnings: z.ZodArray<z.ZodObject<{
985
985
  severity: z.ZodEnum<{
986
- info: "info";
987
986
  degraded: "degraded";
987
+ info: "info";
988
988
  recommended: "recommended";
989
989
  }>;
990
990
  title: z.ZodString;
@@ -1,12 +1,12 @@
1
- import { J as ArtifactLifecycleHookEvent, Y as ArtifactLifecycleHookRegistration$1, z as AnyArtifactKindDefinition } from "./index-Dg-y1mrq.mjs";
1
+ import { J as ArtifactLifecycleHookEvent, Y as ArtifactLifecycleHookRegistration$1, z as AnyArtifactKindDefinition } from "./index-DS6kxiFl.mjs";
2
2
  import { A as VersionRange, O as VersionLiteral$1, r as ClientDefinition$1 } from "./definition-CuJvtYeG.mjs";
3
3
  import { c as ProviderDefinitionInput$1, r as ProtocolId$1 } from "./definition-Cllhr9mi.mjs";
4
4
  import { t as RequiredTimeoutConfig } from "./index-CuHqL95P.mjs";
5
- import { b as SESSION_EVENT_TYPES, i as MakaioSessionEvent$1, j as SessionMessage$1 } from "./types-Dur8EtpR.mjs";
5
+ import { V as SessionMessage$1, b as SESSION_EVENT_TYPES, i as MakaioSessionEvent$1 } from "./types-9XCB1aPK.mjs";
6
6
  import { D as EntityUIConfig, I as FormFieldProps } from "./index-NkNbYFud.mjs";
7
- import { n as ExtensionTransitionRulesContribution, t as ExtensionTransitionActionsContribution, y as WorkflowBlockCollection$1 } from "./transition-DnXibkhX.mjs";
8
- import { l as FacetNamespaceDefinition } from "./index-BMbmoarE.mjs";
9
- import { t as SurfaceBindingDefinition } from "./definition-DFcxkf2i.mjs";
7
+ import { n as ExtensionTransitionRulesContribution, t as ExtensionTransitionActionsContribution, y as WorkflowBlockCollection$1 } from "./transition-DYorNHZu.mjs";
8
+ import { l as FacetNamespaceDefinition } from "./index-DTBQOCar.mjs";
9
+ import { t as SurfaceBindingDefinition } from "./definition-DpkfJi8v.mjs";
10
10
  import { z } from "zod";
11
11
  import { MakaioBusLike, PayloadFilter, RegistrableBusNamespaceDefinition, SubjectSchema } from "@makaio/framework/core";
12
12
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
@@ -1615,8 +1615,8 @@ declare const ExtensionWarningActionSchema: z.ZodDiscriminatedUnion<[z.ZodObject
1615
1615
  * - `'degraded'` — the extension is operating in a degraded fallback mode.
1616
1616
  */
1617
1617
  declare const ExtensionWarningSeveritySchema: z.ZodEnum<{
1618
- info: "info";
1619
1618
  degraded: "degraded";
1619
+ info: "info";
1620
1620
  recommended: "recommended";
1621
1621
  }>;
1622
1622
  /**
@@ -1627,8 +1627,8 @@ declare const ExtensionWarningSeveritySchema: z.ZodEnum<{
1627
1627
  */
1628
1628
  declare const ExtensionWarningSchema: z.ZodObject<{
1629
1629
  severity: z.ZodEnum<{
1630
- info: "info";
1631
1630
  degraded: "degraded";
1631
+ info: "info";
1632
1632
  recommended: "recommended";
1633
1633
  }>;
1634
1634
  title: z.ZodString;
@@ -1674,8 +1674,8 @@ declare const ExtensionWarningEntrySchema: z.ZodObject<{
1674
1674
  extensionName: z.ZodString;
1675
1675
  warnings: z.ZodArray<z.ZodObject<{
1676
1676
  severity: z.ZodEnum<{
1677
- info: "info";
1678
1677
  degraded: "degraded";
1678
+ info: "info";
1679
1679
  recommended: "recommended";
1680
1680
  }>;
1681
1681
  title: z.ZodString;