@makaio/framework 1.0.0-dev-1783355411417 → 1.0.0-dev-1783477169057

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 (153) 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 +219 -40
  6. package/dist/adapters/index.mjs +6 -6
  7. package/dist/adapters/node.d.mts +1 -1
  8. package/dist/adapters/node.mjs +4 -4
  9. package/dist/{base-orchestrator-BNysGvaM.d.mts → base-orchestrator-J1WKAUkF.d.mts} +32 -3
  10. package/dist/bus/index.d.mts +22 -22
  11. package/dist/bus/index.mjs +1 -1
  12. package/dist/client-l1Rq5p6X.mjs +1 -0
  13. package/dist/clients/index.d.mts +30 -0
  14. package/dist/clients/index.mjs +2 -2
  15. package/dist/contracts/adapter/index.d.mts +2 -2
  16. package/dist/contracts/adapter/index.mjs +1 -1
  17. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  18. package/dist/contracts/adapter/schemas/session-lineage.mjs +1 -1
  19. package/dist/contracts/artifact/index.d.mts +1 -1
  20. package/dist/contracts/canonical-model/index.d.mts +1 -1
  21. package/dist/contracts/client/index.d.mts +2 -2
  22. package/dist/contracts/client/index.mjs +1 -1
  23. package/dist/contracts/config/index.d.mts +12 -12
  24. package/dist/contracts/extension/index.d.mts +3 -3
  25. package/dist/contracts/facet/index.d.mts +1 -1
  26. package/dist/contracts/harness/index.d.mts +1 -1
  27. package/dist/contracts/index.d.mts +454 -276
  28. package/dist/contracts/index.mjs +1 -1
  29. package/dist/contracts/materialization/index.d.mts +3 -3
  30. package/dist/contracts/provider/index.d.mts +1 -1
  31. package/dist/contracts/session/index.d.mts +3 -3
  32. package/dist/contracts/session/index.mjs +1 -1
  33. package/dist/contracts/shared/index.d.mts +1 -1
  34. package/dist/contracts/skill/index.d.mts +1 -1
  35. package/dist/contracts/variant/index.d.mts +1 -1
  36. package/dist/contracts/workflow/index.d.mts +2 -2
  37. package/dist/{definition-b9jyJqPD.d.mts → definition-DePb3ke-.d.mts} +1 -1
  38. package/dist/drizzle/0023_m_mr9gc37m.sql +1 -0
  39. package/dist/drizzle/meta/_journal.json +7 -0
  40. package/dist/handlers-B74FvKlA.mjs +57 -0
  41. package/dist/hooks/index.d.mts +19 -2
  42. package/dist/{identity-BarL3JYI.mjs → identity-DC3Pk0ps.mjs} +1 -1
  43. package/dist/{index-BwGfdbI0.d.mts → index-2fK9iSHI.d.mts} +9 -9
  44. package/dist/{index-D7rWAEY0.d.mts → index-B-6DtLLz.d.mts} +1 -1
  45. package/dist/{index-4eP9DRL_.d.mts → index-B3fjN5HX.d.mts} +7 -7
  46. package/dist/{index-O08Q2ikz.d.mts → index-BMbmoarE.d.mts} +8 -8
  47. package/dist/{index-DV4nRk0h.d.mts → index-BX1MxwFr.d.mts} +28 -28
  48. package/dist/{index-CqCe7Phc.d.mts → index-BcwOnvUh.d.mts} +6 -6
  49. package/dist/{index-D6aAzr32.d.mts → index-BeouVICp.d.mts} +36 -36
  50. package/dist/{index-DQYj8-53.d.mts → index-BjO4Zkap.d.mts} +1 -1
  51. package/dist/{index-B5w-0Gg9.d.mts → index-Bl42SCEI.d.mts} +8 -8
  52. package/dist/{index-BYfSAJRC.d.mts → index-BvTd61i5.d.mts} +151 -29
  53. package/dist/{index-3X0368CL.d.mts → index-CA-AJbq6.d.mts} +4 -4
  54. package/dist/{index-C5C1tk9f.d.mts → index-CQQcnpev.d.mts} +41 -41
  55. package/dist/{index-BKZhnb2B.d.mts → index-C_xQM96Y.d.mts} +802 -422
  56. package/dist/{index-31vR1sxk.d.mts → index-CwFSL4xI.d.mts} +144 -21
  57. package/dist/{index-WHUV7neB.d.mts → index-DMz-2ACU.d.mts} +105 -105
  58. package/dist/{index-3J0HZlPH.d.mts → index-DScUb-hF.d.mts} +334 -13
  59. package/dist/{index-DEzdNQum.d.mts → index-Di84JjS0.d.mts} +2 -2
  60. package/dist/{index-DvHYpi-J.d.mts → index-Dv4oGVZK.d.mts} +1246 -397
  61. package/dist/{index-CaerrEDH.d.mts → index-NkNbYFud.d.mts} +1 -1
  62. package/dist/{index-D9-vOJvZ.d.mts → index-h5go5Dtd.d.mts} +1 -1
  63. package/dist/{index-DLNRgZPo2.d.mts → index-j_X5xefv2.d.mts} +26 -26
  64. package/dist/{index-C6Ys8pxt.d.mts → index-uM4KZopE.d.mts} +9 -9
  65. package/dist/kernel/extension/index.d.mts +1 -1
  66. package/dist/kernel/index.d.mts +2 -2
  67. package/dist/kernel/observability/index.d.mts +1 -1
  68. package/dist/{namespace-j7vFsmYL.d.mts → namespace-3yGm4WF9.d.mts} +2 -2
  69. package/dist/{namespace-D8P8Sxce2.d.mts → namespace-6sIu5nBI2.d.mts} +2 -2
  70. package/dist/{namespace-B3ol3pc-.d.mts → namespace-BigVYQyx.d.mts} +12 -0
  71. package/dist/{namespace-DmqoDDRD.d.mts → namespace-Boh42UoL.d.mts} +66 -22
  72. package/dist/{namespace-CfvtDD_U.d.mts → namespace-COEUMuHL.d.mts} +156 -156
  73. package/dist/{namespace-B4cV_pk3.d.mts → namespace-D94HrTtq.d.mts} +58 -58
  74. package/dist/{namespace-DhDY0juT.d.mts → namespace-OLAh9wHU.d.mts} +375 -27
  75. package/dist/{namespace-Bm77p82L.d.mts → namespace-TPbegIMi.d.mts} +27 -27
  76. package/dist/{package-MmQvNJ3u.d.mts → package-B6mEMD8r.d.mts} +5 -0
  77. package/dist/{package-BmRhhi-3.mjs → package-BQn_RTo7.mjs} +1 -1
  78. package/dist/package.json +1 -1
  79. package/dist/{schema-DLNBajAV.d.mts → schema-B5vHi7Uu.d.mts} +28 -1
  80. package/dist/{schemas-CoFCV42v.d.mts → schemas-CDBn9MTz.d.mts} +156 -156
  81. package/dist/schemas-CkOigLAT.mjs +1 -0
  82. package/dist/{schemas-lnE9YoG7.d.mts → schemas-CscdPqCt.d.mts} +3 -3
  83. package/dist/{schemas-DMMWmWjq.d.mts → schemas-D512XweP.d.mts} +4 -4
  84. package/dist/{schemas-DuuVuhHX2.d.mts → schemas-DOV4UouN2.d.mts} +13 -13
  85. package/dist/{schemas-DmGRSeIq.d.mts → schemas-t6h9oSct.d.mts} +28 -1
  86. package/dist/services/adapter-runtime/index.d.mts +4 -4
  87. package/dist/services/adapter-runtime/index.mjs +1 -1
  88. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  89. package/dist/services/adapter-runtime/schemas.d.mts +2 -2
  90. package/dist/services/adapter-runtime/schemas.mjs +1 -1
  91. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  92. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  93. package/dist/services/agent-runtime/index.d.mts +2 -2
  94. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  95. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  96. package/dist/services/context-rules/index.d.mts +8 -8
  97. package/dist/services/execution-target/index.d.mts +1 -1
  98. package/dist/services/filesystem/namespace.d.mts +12 -12
  99. package/dist/services/filesystem/schemas.d.mts +6 -6
  100. package/dist/services/git/namespace.d.mts +2 -2
  101. package/dist/services/git/schemas.d.mts +1 -1
  102. package/dist/services/harness/index.d.mts +3 -3
  103. package/dist/services/index.d.mts +147 -140
  104. package/dist/services/index.mjs +1 -1
  105. package/dist/services/log-import/browser.d.mts +2 -2
  106. package/dist/services/log-import/index.d.mts +15 -2
  107. package/dist/services/log-import/index.mjs +2 -2
  108. package/dist/services/log-import/log-import.d.mts +1 -1
  109. package/dist/services/log-import/namespace.d.mts +2 -2
  110. package/dist/services/log-import/schemas.d.mts +1 -1
  111. package/dist/services/session/handlers/index.d.mts +1 -1
  112. package/dist/services/session/handlers/index.mjs +1 -1
  113. package/dist/services/session/index.d.mts +7 -7
  114. package/dist/services/session/index.mjs +1 -1
  115. package/dist/services/session/messages/namespace.d.mts +1 -1
  116. package/dist/services/session/session-events/namespace.d.mts +1 -1
  117. package/dist/services/session/storage/namespace.d.mts +1 -1
  118. package/dist/services/session/storage/schema.d.mts +1 -1
  119. package/dist/services/session/storage/schema.mjs +1 -1
  120. package/dist/services/session/testing/index.mjs +3 -2
  121. package/dist/services/session-editor/index.d.mts +1 -1
  122. package/dist/services/settings/namespace.d.mts +10 -10
  123. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  124. package/dist/services/subagent-template/index.d.mts +2 -2
  125. package/dist/services/subagent-template/namespace.d.mts +1 -1
  126. package/dist/services/subagent-template/schemas.d.mts +1 -1
  127. package/dist/services/tool-approval/index.mjs +1 -1
  128. package/dist/services/tools/index.mjs +1 -1
  129. package/dist/services/tray-menu/index.d.mts +2 -2
  130. package/dist/services/tray-menu/namespace.d.mts +1 -1
  131. package/dist/services/tray-menu/schemas.d.mts +1 -1
  132. package/dist/session-CoGaTin6.mjs +69 -0
  133. package/dist/session-Dp7z5N1d.mjs +1 -0
  134. package/dist/{session-lineage-DR-9DU-U.d.mts → session-lineage-C1M7-O3C.d.mts} +3 -3
  135. package/dist/{tool-approval-service-MU_DmJsf.mjs → tool-approval-service-BNXgr-az.mjs} +1 -1
  136. package/dist/tools-BaO4GYj0.mjs +1 -0
  137. package/dist/{transition-Dq41YCkc.d.mts → transition-Bbjlwv5K.d.mts} +1 -1
  138. package/dist/{types-BMS6yfLS.d.mts → types-BNW5n6qm.d.mts} +1 -1
  139. package/dist/{types-BMlzmWp6.d.mts → types-CNkx2awa.d.mts} +12 -1
  140. package/dist/{types-Cse8s_cD.d.mts → types-D7W0ntGr.d.mts} +45 -18
  141. package/dist/{types-C76EP81O.d.mts → types-jruUn6oW.d.mts} +694 -282
  142. package/dist/workflow-engine/index.d.mts +41 -41
  143. package/dist/workflow-engine/index.mjs +1 -1
  144. package/dist/workflow-engine/package.d.mts +1 -1
  145. package/dist/workflow-engine/package.mjs +1 -1
  146. package/package.json +1 -1
  147. package/dist/adapter-BRxCc72E.mjs +0 -1
  148. package/dist/client-BgUjVbXX.mjs +0 -1
  149. package/dist/handlers-v47Gbsr1.mjs +0 -57
  150. package/dist/schemas-ftgVeWIG.mjs +0 -1
  151. package/dist/session-CKWfn3oc.mjs +0 -1
  152. package/dist/session-DCbJwYEU.mjs +0 -69
  153. package/dist/tools-BrNm-een.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
@@ -314,7 +314,24 @@ interface PostStepHookOptions extends BaseHookOptions {
314
314
  }
315
315
  type PreToolUseHookOptions = BaseHookOptions;
316
316
  type PostToolUseHookOptions = BaseHookOptions;
317
- 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
+ }
318
335
  type SessionEndHookOptions = BaseHookOptions;
319
336
  //#endregion
320
337
  //#region packages/hooks/src/create-hook.d.ts
@@ -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};
@@ -48,8 +48,8 @@ declare const MaterializationSchemas: {
48
48
  template: z.ZodString;
49
49
  }, z.core.$strip>], "kind">;
50
50
  appliesTo: z.ZodArray<z.ZodEnum<{
51
- workpiece: "workpiece";
52
51
  artifact: "artifact";
52
+ workpiece: "workpiece";
53
53
  surface: "surface";
54
54
  }>>;
55
55
  valueMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -88,8 +88,8 @@ declare const MaterializationSchemas: {
88
88
  template: z.ZodString;
89
89
  }, z.core.$strip>], "kind">;
90
90
  appliesTo: z.ZodArray<z.ZodEnum<{
91
- workpiece: "workpiece";
92
91
  artifact: "artifact";
92
+ workpiece: "workpiece";
93
93
  surface: "surface";
94
94
  }>>;
95
95
  valueMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -106,8 +106,8 @@ declare const MaterializationSchemas: {
106
106
  provider: z.ZodString;
107
107
  externalId: z.ZodString;
108
108
  operation: z.ZodEnum<{
109
- upserted: "upserted";
110
109
  deleted: "deleted";
110
+ upserted: "upserted";
111
111
  }>;
112
112
  }, z.core.$strip>; /** Emitted when a provider surface capability set has been resolved. */
113
113
  'capability.resolved': z.ZodObject<{
@@ -153,8 +153,8 @@ declare const MaterializationNamespace: _$_makaio_core0.BusNamespaceDefinition<"
153
153
  template: z.ZodString;
154
154
  }, z.core.$strip>], "kind">;
155
155
  appliesTo: z.ZodArray<z.ZodEnum<{
156
- workpiece: "workpiece";
157
156
  artifact: "artifact";
157
+ workpiece: "workpiece";
158
158
  surface: "surface";
159
159
  }>>;
160
160
  valueMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -193,8 +193,8 @@ declare const MaterializationNamespace: _$_makaio_core0.BusNamespaceDefinition<"
193
193
  template: z.ZodString;
194
194
  }, z.core.$strip>], "kind">;
195
195
  appliesTo: z.ZodArray<z.ZodEnum<{
196
- workpiece: "workpiece";
197
196
  artifact: "artifact";
197
+ workpiece: "workpiece";
198
198
  surface: "surface";
199
199
  }>>;
200
200
  valueMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -211,8 +211,8 @@ declare const MaterializationNamespace: _$_makaio_core0.BusNamespaceDefinition<"
211
211
  provider: z.ZodString;
212
212
  externalId: z.ZodString;
213
213
  operation: z.ZodEnum<{
214
- upserted: "upserted";
215
214
  deleted: "deleted";
215
+ upserted: "upserted";
216
216
  }>;
217
217
  }, z.core.$strip>; /** Emitted when a provider surface capability set has been resolved. */
218
218
  'capability.resolved': z.ZodObject<{
@@ -268,8 +268,8 @@ declare const MaterializationSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
268
268
  template: z.ZodString;
269
269
  }, z.core.$strip>], "kind">;
270
270
  appliesTo: z.ZodArray<z.ZodEnum<{
271
- workpiece: "workpiece";
272
271
  artifact: "artifact";
272
+ workpiece: "workpiece";
273
273
  surface: "surface";
274
274
  }>>;
275
275
  valueMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -308,8 +308,8 @@ declare const MaterializationSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
308
308
  template: z.ZodString;
309
309
  }, z.core.$strip>], "kind">;
310
310
  appliesTo: z.ZodArray<z.ZodEnum<{
311
- workpiece: "workpiece";
312
311
  artifact: "artifact";
312
+ workpiece: "workpiece";
313
313
  surface: "surface";
314
314
  }>>;
315
315
  valueMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -326,8 +326,8 @@ declare const MaterializationSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
326
326
  provider: z.ZodString;
327
327
  externalId: z.ZodString;
328
328
  operation: z.ZodEnum<{
329
- upserted: "upserted";
330
329
  deleted: "deleted";
330
+ upserted: "upserted";
331
331
  }>;
332
332
  }, z.core.$strip>; /** Emitted when a provider surface capability set has been resolved. */
333
333
  'capability.resolved': z.ZodObject<{
@@ -55,8 +55,8 @@ declare const LogImporterInfoSchema: z.ZodObject<{
55
55
  adapterName: z.ZodString;
56
56
  displayName: z.ZodString;
57
57
  source: z.ZodEnum<{
58
- adapter: "adapter";
59
58
  extension: "extension";
59
+ adapter: "adapter";
60
60
  }>;
61
61
  logFilePattern: z.ZodString;
62
62
  isRunning: z.ZodBoolean;
@@ -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>;
@@ -32,8 +32,8 @@ declare const FacetCardinalitySchema: z.ZodEnum<{
32
32
  * - `'surface'` — a UI surface or layout area
33
33
  */
34
34
  declare const FacetAppliesToSchema: z.ZodEnum<{
35
- workpiece: "workpiece";
36
35
  artifact: "artifact";
36
+ workpiece: "workpiece";
37
37
  surface: "surface";
38
38
  }>;
39
39
  /**
@@ -57,8 +57,8 @@ declare const FacetNamespaceRegistrationSchema: z.ZodObject<{
57
57
  human: "human";
58
58
  }>>>;
59
59
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
60
- workpiece: "workpiece";
61
60
  artifact: "artifact";
61
+ workpiece: "workpiece";
62
62
  surface: "surface";
63
63
  }>>>;
64
64
  description: z.ZodOptional<z.ZodString>;
@@ -161,8 +161,8 @@ declare const FacetSchemas: {
161
161
  human: "human";
162
162
  }>>>;
163
163
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
164
- workpiece: "workpiece";
165
164
  artifact: "artifact";
165
+ workpiece: "workpiece";
166
166
  surface: "surface";
167
167
  }>>>;
168
168
  description: z.ZodOptional<z.ZodString>;
@@ -189,8 +189,8 @@ declare const FacetSchemas: {
189
189
  human: "human";
190
190
  }>>>;
191
191
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
192
- workpiece: "workpiece";
193
192
  artifact: "artifact";
193
+ workpiece: "workpiece";
194
194
  surface: "surface";
195
195
  }>>>;
196
196
  description: z.ZodOptional<z.ZodString>;
@@ -227,8 +227,8 @@ declare const FacetNamespace: _$_makaio_core0.BusNamespaceDefinition<"facet", {
227
227
  human: "human";
228
228
  }>>>;
229
229
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
230
- workpiece: "workpiece";
231
230
  artifact: "artifact";
231
+ workpiece: "workpiece";
232
232
  surface: "surface";
233
233
  }>>>;
234
234
  description: z.ZodOptional<z.ZodString>;
@@ -255,8 +255,8 @@ declare const FacetNamespace: _$_makaio_core0.BusNamespaceDefinition<"facet", {
255
255
  human: "human";
256
256
  }>>>;
257
257
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
258
- workpiece: "workpiece";
259
258
  artifact: "artifact";
259
+ workpiece: "workpiece";
260
260
  surface: "surface";
261
261
  }>>>;
262
262
  description: z.ZodOptional<z.ZodString>;
@@ -299,8 +299,8 @@ declare const FacetSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSub
299
299
  human: "human";
300
300
  }>>>;
301
301
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
302
- workpiece: "workpiece";
303
302
  artifact: "artifact";
303
+ workpiece: "workpiece";
304
304
  surface: "surface";
305
305
  }>>>;
306
306
  description: z.ZodOptional<z.ZodString>;
@@ -327,8 +327,8 @@ declare const FacetSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSub
327
327
  human: "human";
328
328
  }>>>;
329
329
  appliesTo: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
330
- workpiece: "workpiece";
331
330
  artifact: "artifact";
331
+ workpiece: "workpiece";
332
332
  surface: "surface";
333
333
  }>>>;
334
334
  description: z.ZodOptional<z.ZodString>;