@kodax-ai/kodax 0.7.75 → 0.7.76

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 (50) hide show
  1. package/CHANGELOG.md +27 -5
  2. package/README.md +7 -1
  3. package/README_CN.md +6 -1
  4. package/dist/chunks/{agent-LVZJB2GQ.js → agent-7X5CFET2.js} +1 -1
  5. package/dist/chunks/argument-completer-3NHIKB4N.js +2 -0
  6. package/dist/chunks/{chunk-SB75RNNR.js → chunk-4PWPNCNK.js} +2 -2
  7. package/dist/chunks/{chunk-737LI7OS.js → chunk-7FJNLJLF.js} +4 -4
  8. package/dist/chunks/chunk-COQYLD4U.js +5 -0
  9. package/dist/chunks/{chunk-Q65EAOX6.js → chunk-D3T24FJW.js} +2 -2
  10. package/dist/chunks/{chunk-F7AIEHSS.js → chunk-EI4JBQKL.js} +2 -2
  11. package/dist/chunks/{chunk-QRBWNYFV.js → chunk-HGT6WQ24.js} +4 -4
  12. package/dist/chunks/{chunk-OJQQRLZJ.js → chunk-HS3XHF3R.js} +2 -2
  13. package/dist/chunks/{chunk-BN3W2DQY.js → chunk-IDCGNQ4H.js} +1 -1
  14. package/dist/chunks/{chunk-6ZMKX3XF.js → chunk-KAY2XLCP.js} +2 -2
  15. package/dist/chunks/{chunk-5WSOB34U.js → chunk-OD6LVXU6.js} +2 -2
  16. package/dist/chunks/{chunk-UJRRZINL.js → chunk-OSF3H4RR.js} +2 -2
  17. package/dist/chunks/{chunk-G5VW55T4.js → chunk-PXKSE54E.js} +1 -1
  18. package/dist/chunks/{chunk-4PVSDE5L.js → chunk-RDXRM3UI.js} +1 -1
  19. package/dist/chunks/{chunk-N6M2LYEP.js → chunk-SMT2JSM3.js} +1 -1
  20. package/dist/chunks/{chunk-DEHOFNQA.js → chunk-TGMBHGZO.js} +2 -2
  21. package/dist/chunks/{chunk-QSMXI4MH.js → chunk-VWSLC2WO.js} +1 -1
  22. package/dist/chunks/{chunk-OGL227XV.js → chunk-Y3AMP22L.js} +1 -1
  23. package/dist/chunks/compaction-config-7J2XE35D.js +2 -0
  24. package/dist/chunks/{construction-bootstrap-3TQWTHSQ.js → construction-bootstrap-5F5KF2BZ.js} +1 -1
  25. package/dist/chunks/{dist-D3EPVAOZ.js → dist-2RA7LSH3.js} +1 -1
  26. package/dist/chunks/{dist-ZJFTZJ55.js → dist-URKXBOC6.js} +1 -1
  27. package/dist/chunks/host-RKZ2OGFT.js +2 -0
  28. package/dist/chunks/run-manager-7RM4HEH6.js +2 -0
  29. package/dist/chunks/{utils-HMVP6XPH.js → utils-X3TEH6IO.js} +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/kodax_cli.js +8 -8
  32. package/dist/provider-capabilities.json +35 -7
  33. package/dist/runtime-worker.js +7 -7
  34. package/dist/sdk-a2a.js +1 -1
  35. package/dist/sdk-agent.js +1 -1
  36. package/dist/sdk-coding.js +1 -1
  37. package/dist/sdk-experimental-memory.js +1 -1
  38. package/dist/sdk-llm.js +1 -1
  39. package/dist/sdk-mcp.js +1 -1
  40. package/dist/sdk-media.js +1 -1
  41. package/dist/sdk-repl.js +1 -1
  42. package/dist/sdk-runtime.js +1 -1
  43. package/dist/sdk-session.js +1 -1
  44. package/dist/sdk-skills.js +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunks/argument-completer-GHWEWPVQ.js +0 -2
  47. package/dist/chunks/chunk-6YUDR7WN.js +0 -5
  48. package/dist/chunks/compaction-config-L2YZK7Q3.js +0 -2
  49. package/dist/chunks/host-KHDXYFVG.js +0 -2
  50. package/dist/chunks/run-manager-CD24OO4V.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{Cb as co,Eb as lo,Fb as mo,Nb as po,Ob as fo,Pb as go,Qb as Ro,Rb as ur,Wa as uo,fc as yo,gc as wo}from"./chunk-QRBWNYFV.js";import{C as oo,D as so,Fa as ao,j as Qi,k as Yi,m as Se,q as to,v as ro,x as io}from"./chunk-OJQQRLZJ.js";import{K as dr,M as Zi,T as eo,U as no,m as ar}from"./chunk-SB75RNNR.js";import{Z as at,e as Wi,ga as or,ma as sr,pa as Gi,ra as Ji,sa as Vi,va as dt,w as zi}from"./chunk-DEHOFNQA.js";import{Bc as mn,Hd as Bi,Jd as Ui,Rc as ir,fb as jn,qc as Xi,vb as rr}from"./chunk-737LI7OS.js";import{a as Qt,c as Ge,wa as Pi,ya as it}from"./chunk-Q65EAOX6.js";import{Ec as tr,La as st,Ma as Ci,Oa as Ln,Ua as _i,Uc as ji,_b as er,kd as Fi,qe as $i,ue as Hi,ve as Ki,wc as nr,zd as qi}from"./chunk-QSMXI4MH.js";import{F as Oi,V as Ni,X as Zt,a as Ti,b as oe,e as Ai,ea as Li,g as ot,h as Mi}from"./chunk-OGL227XV.js";import{F as Di,w as Ei,y as Yt,z as xi}from"./chunk-6YUDR7WN.js";import{a as o}from"./chunk-ONUPGMER.js";import{createHash as Ed,randomUUID as Re}from"node:crypto";import*as N from"node:fs";import xd from"node:os";import F from"node:path";import{createHash as Jd}from"node:crypto";import Fn from"node:path";var Vd=["path","file_path"],Qd=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function pr(e){let n=e.platform??ut();if(e.toolName==="bash")return Yd(e,n);let t=Qd.has(e.toolName)?Vd.map(a=>e.toolInput[a]).find(a=>typeof a=="string"&&a.length>0):void 0;if(t!==void 0)return eu(e.toolName,t,e.executionCwd,n);let r=gr(e.executionCwd,e.executionCwd,n),s=Je(ru(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:s,fingerprint:Je({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:s})}}o(pr,"createRuntimePermissionMatcher");function ho(e,n){if(e.toolName!==n.toolName)return!1;let t=pr(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}o(ho,"runtimePermissionMatcherMatches");function So(e){if(!iu(e)||e.version!==1||typeof e.toolName!="string"||typeof e.fingerprint!="string")throw new Error("invalid Runtime permission matcher");if(e.kind==="exact-command"){if(e.shell!=="cmd"&&e.shell!=="posix"||!lr(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!lr(e.argvFingerprint))throw new Error("invalid Runtime command permission matcher");let n={version:1,kind:"exact-command",toolName:e.toolName,fingerprint:e.fingerprint,shell:e.shell,commandFingerprint:e.commandFingerprint,cwd:e.cwd,background:e.background,...e.executable!==void 0?{executable:e.executable}:{},...e.argvFingerprint!==void 0?{argvFingerprint:e.argvFingerprint}:{}};return cr(n,{version:1,kind:"exact-command",toolName:n.toolName,shell:n.shell,commandFingerprint:n.commandFingerprint,cwd:n.cwd,...n.executable!==void 0?{executable:n.executable}:{},...n.argvFingerprint!==void 0?{argvFingerprint:n.argvFingerprint}:{},background:n.background}),n}if(e.kind==="exact-path"&&typeof e.path=="string"){let n={version:1,kind:"exact-path",toolName:e.toolName,fingerprint:e.fingerprint,path:e.path};return cr(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&lr(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return cr(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}o(So,"parseRuntimePermissionMatcher");function cr(e,n){if(Je(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}o(cr,"assertMatcherFingerprint");function fr(e,n){return n==="win32"?/%[^%\r\n]+%|![^!\r\n]+!|\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[?^$])|%(?:\*|[0-9]|~[A-Za-z]*[0-9])|%%[A-Za-z]/i.test(e):/\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[0-9@*#?$!_-])|`/.test(e)}o(fr,"hasDynamicShellExpansion");function ut(){return process.platform==="win32"?"win32":"posix"}o(ut,"runtimePermissionHostPlatform");function Yd(e,n){let t=e.toolInput.command,r=typeof t=="string"?nu(t):"",s=gr(e.executionCwd,e.executionCwd,n),a=e.toolInput.run_in_background===!0,d=tu(r,n),u=Zd(d?.[0],n),p=d&&d.length>1?Je(d.slice(1)):void 0,f=n==="win32"?"cmd":"posix",v=Je(r),i={version:1,kind:"exact-command",toolName:e.toolName,shell:f,commandFingerprint:v,cwd:s,...u!==void 0?{executable:u}:{},...p!==void 0?{argvFingerprint:p}:{},background:a};return{...i,fingerprint:Je(i)}}o(Yd,"createExactCommandMatcher");function Zd(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?Fn.win32.basename(e.replaceAll("/","\\")):Fn.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}o(Zd,"safeExecutableMetadata");function eu(e,n,t,r){let s=gr(n,t,r),a={version:1,kind:"exact-path",toolName:e,path:s};return{...a,fingerprint:Je(a)}}o(eu,"createExactPathMatcher");function nu(e){return e.replace(/\r\n?/g,`
2
+ import{Cb as co,Eb as lo,Fb as mo,Nb as po,Ob as fo,Pb as go,Qb as Ro,Rb as ur,Wa as uo,fc as yo,gc as wo}from"./chunk-HGT6WQ24.js";import{C as oo,D as so,Fa as ao,j as Qi,k as Yi,m as Se,q as to,v as ro,x as io}from"./chunk-HS3XHF3R.js";import{K as dr,M as Zi,T as eo,U as no,m as ar}from"./chunk-4PWPNCNK.js";import{Z as at,e as Wi,ga as or,ma as sr,pa as Gi,ra as Ji,sa as Vi,va as dt,w as zi}from"./chunk-TGMBHGZO.js";import{Bc as mn,Hd as Bi,Jd as Ui,Rc as ir,fb as jn,qc as Xi,vb as rr}from"./chunk-7FJNLJLF.js";import{a as Qt,c as Ge,wa as Pi,ya as it}from"./chunk-D3T24FJW.js";import{Ec as tr,La as st,Ma as Ci,Oa as Ln,Ua as _i,Uc as ji,_b as er,kd as Fi,qe as $i,ue as Hi,ve as Ki,wc as nr,zd as qi}from"./chunk-VWSLC2WO.js";import{F as Oi,V as Ni,X as Zt,a as Ti,b as oe,e as Ai,ea as Li,g as ot,h as Mi}from"./chunk-Y3AMP22L.js";import{F as Di,w as Ei,y as Yt,z as xi}from"./chunk-COQYLD4U.js";import{a as o}from"./chunk-ONUPGMER.js";import{createHash as Ed,randomUUID as Re}from"node:crypto";import*as N from"node:fs";import xd from"node:os";import F from"node:path";import{createHash as Jd}from"node:crypto";import Fn from"node:path";var Vd=["path","file_path"],Qd=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function pr(e){let n=e.platform??ut();if(e.toolName==="bash")return Yd(e,n);let t=Qd.has(e.toolName)?Vd.map(a=>e.toolInput[a]).find(a=>typeof a=="string"&&a.length>0):void 0;if(t!==void 0)return eu(e.toolName,t,e.executionCwd,n);let r=gr(e.executionCwd,e.executionCwd,n),s=Je(ru(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:s,fingerprint:Je({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:s})}}o(pr,"createRuntimePermissionMatcher");function ho(e,n){if(e.toolName!==n.toolName)return!1;let t=pr(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}o(ho,"runtimePermissionMatcherMatches");function So(e){if(!iu(e)||e.version!==1||typeof e.toolName!="string"||typeof e.fingerprint!="string")throw new Error("invalid Runtime permission matcher");if(e.kind==="exact-command"){if(e.shell!=="cmd"&&e.shell!=="posix"||!lr(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!lr(e.argvFingerprint))throw new Error("invalid Runtime command permission matcher");let n={version:1,kind:"exact-command",toolName:e.toolName,fingerprint:e.fingerprint,shell:e.shell,commandFingerprint:e.commandFingerprint,cwd:e.cwd,background:e.background,...e.executable!==void 0?{executable:e.executable}:{},...e.argvFingerprint!==void 0?{argvFingerprint:e.argvFingerprint}:{}};return cr(n,{version:1,kind:"exact-command",toolName:n.toolName,shell:n.shell,commandFingerprint:n.commandFingerprint,cwd:n.cwd,...n.executable!==void 0?{executable:n.executable}:{},...n.argvFingerprint!==void 0?{argvFingerprint:n.argvFingerprint}:{},background:n.background}),n}if(e.kind==="exact-path"&&typeof e.path=="string"){let n={version:1,kind:"exact-path",toolName:e.toolName,fingerprint:e.fingerprint,path:e.path};return cr(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&lr(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return cr(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}o(So,"parseRuntimePermissionMatcher");function cr(e,n){if(Je(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}o(cr,"assertMatcherFingerprint");function fr(e,n){return n==="win32"?/%[^%\r\n]+%|![^!\r\n]+!|\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[?^$])|%(?:\*|[0-9]|~[A-Za-z]*[0-9])|%%[A-Za-z]/i.test(e):/\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[0-9@*#?$!_-])|`/.test(e)}o(fr,"hasDynamicShellExpansion");function ut(){return process.platform==="win32"?"win32":"posix"}o(ut,"runtimePermissionHostPlatform");function Yd(e,n){let t=e.toolInput.command,r=typeof t=="string"?nu(t):"",s=gr(e.executionCwd,e.executionCwd,n),a=e.toolInput.run_in_background===!0,d=tu(r,n),u=Zd(d?.[0],n),p=d&&d.length>1?Je(d.slice(1)):void 0,f=n==="win32"?"cmd":"posix",v=Je(r),i={version:1,kind:"exact-command",toolName:e.toolName,shell:f,commandFingerprint:v,cwd:s,...u!==void 0?{executable:u}:{},...p!==void 0?{argvFingerprint:p}:{},background:a};return{...i,fingerprint:Je(i)}}o(Yd,"createExactCommandMatcher");function Zd(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?Fn.win32.basename(e.replaceAll("/","\\")):Fn.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}o(Zd,"safeExecutableMetadata");function eu(e,n,t,r){let s=gr(n,t,r),a={version:1,kind:"exact-path",toolName:e,path:s};return{...a,fingerprint:Je(a)}}o(eu,"createExactPathMatcher");function nu(e){return e.replace(/\r\n?/g,`
3
3
  `).trim()}o(nu,"normalizeCommand");function gr(e,n,t){if(t==="win32"){let r=Fn.win32.resolve(n.replaceAll("/","\\"));return Fn.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return Fn.posix.resolve(n,e)}o(gr,"normalizePermissionPath");function tu(e,n){if(e.length===0||e.includes("\0")||e.includes(`
4
4
  `))return;let t=[],r="",s;for(let a=0;a<e.length;a+=1){let d=e[a]??"";if(n==="posix"&&d==="'"&&s!=="double"){s=s==="single"?void 0:"single";continue}if(d==='"'&&s!=="single"){s=s==="double"?void 0:"double";continue}if(d===(n==="win32"?"^":"\\")&&s!=="single"&&a+1<e.length){r+=e[a+1]??"",a+=1;continue}if(/\s/.test(d)&&s===void 0){r.length>0&&t.push(r),r="";continue}r+=d}if(s===void 0)return r.length>0&&t.push(r),t.length>0?t:void 0}o(tu,"tokenizeShellCommand");function ru(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}o(ru,"normalizeGenericInput");function Je(e){return Jd("sha256").update(mr(e)).digest("hex")}o(Je,"stableFingerprint");function mr(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(mr).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${mr(n[t])}`).join(",")}}`}o(mr,"stableSerialize");function lr(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}o(lr,"isSha256");function iu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(iu,"isRecord");import{createHash as ou}from"node:crypto";import Pe from"node:fs";import be from"node:path";function pn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(pn,"isRecord");function vo(e){return pn(e)?typeof e.agentId=="string"&&typeof e.displayName=="string"&&(e.managementOwner===void 0||typeof e.managementOwner=="string"&&e.managementOwner.length>0)&&typeof e.enabled=="boolean"&&typeof e.executorId=="string"&&(e.protocol==="a2a"||e.protocol==="mcp"||e.protocol==="http")&&typeof e.configurationRevision=="string"&&typeof e.endpointIdentityHash=="string"&&pn(e.capabilities)&&pn(e.effects):!1}o(vo,"isRegistration");function su(e){return pn(e)?typeof e.taskId=="string"&&(e.route==="local"||e.route==="external")&&typeof e.agentId=="string"&&typeof e.objective=="string"&&typeof e.state=="string"&&typeof e.cancellation=="string"&&pn(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}o(su,"isTask");function au(e){return pn(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}o(au,"isEvent");function ko(e){try{return JSON.parse(Pe.readFileSync(e,"utf8"))}catch(n){let t=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse Runtime agent store file ${e}: ${t}`)}}o(ko,"parseJson");function Io(e,n){if(!Pe.existsSync(e))return[];let t=ko(e);if(!Array.isArray(t)||!t.every(n))throw new Error(`Runtime agent store file has an invalid array shape: ${e}`);return structuredClone(t)}o(Io,"readList");function Rr(e,n){Pe.mkdirSync(be.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;Pe.writeFileSync(t,`${JSON.stringify(n,null,2)}
5
5
  `,{encoding:"utf8",mode:384}),Pe.renameSync(t,e)}o(Rr,"writeJsonAtomic");function ct(e,n){let t=ou("sha256").update(n).digest("hex");return be.join(e,t)}o(ct,"taskDirectory");function du(e,n){if(!Pe.existsSync(e))return[];let t=Pe.readFileSync(e,"utf8").trim();if(!t)return[];let r=0;return t.split(/\r?\n/).map((s,a)=>{let d;try{d=JSON.parse(s)}catch(u){let p=u instanceof Error?u.message:String(u);throw new Error(`Invalid Runtime agent event at ${e}:${a+1}: ${p}`)}if(!au(d))throw new Error(`Invalid Runtime agent event shape at ${e}:${a+1}`);if(d.taskId!==n)throw new Error(`Runtime agent event taskId does not match its ledger at ${e}:${a+1}`);if(d.seq<=r)throw new Error(`Runtime agent events require a strictly increasing positive sequence at ${e}:${a+1}`);return r=d.seq,d})}o(du,"readEvents");function bo(e){let n=be.resolve(e),t=be.join(n,"registrations.json"),r=be.join(n,"task-registration-snapshots.json"),s=be.join(n,"tasks");return{async loadRegistrations(){return Io(t,vo)},async saveRegistrations(a){Rr(t,a)},async loadTaskRegistrationSnapshots(){return Io(r,vo)},async saveTaskRegistrationSnapshots(a){Rr(r,a)},async loadTasks(){if(!Pe.existsSync(s))return[];let a=[];for(let u of Pe.readdirSync(s,{withFileTypes:!0})){if(!u.isDirectory())continue;let p=be.join(s,u.name,"snapshot.json");if(!Pe.existsSync(p))continue;let f=ko(p);if(!su(f))throw new Error(`Invalid Runtime agent task shape: ${p}`);a.push({directoryName:u.name,file:p,task:f})}let d=new Set;for(let{task:u}of a){if(d.has(u.taskId))throw new Error(`Duplicate Runtime agent taskId: ${u.taskId}`);d.add(u.taskId)}for(let{directoryName:u,file:p,task:f}of a){let v=be.basename(ct(s,f.taskId));if(u!==v)throw new Error(`Runtime agent task directory does not match taskId hash: ${p}`)}return a.map(({task:u})=>u)},async saveTask(a){Rr(be.join(ct(s,a.taskId),"snapshot.json"),a)},async loadEvents(a){return du(be.join(ct(s,a),"events.jsonl"),a)},async appendEvent(a){let d=be.join(ct(s,a.taskId),"events.jsonl");Pe.mkdirSync(be.dirname(d),{recursive:!0}),Pe.appendFileSync(d,`${JSON.stringify(a)}
@@ -64,7 +64,7 @@ try {
64
64
  `)},"send"),p=e.createDispatcher(i=>u(i));r.add(p);let f=js(i=>{if(Tr(i)){p.handle(i).then(u,l=>{u(Ke({code:"internal_error",message:kn(l).message}))});return}if(yn(i)){u(i);return}u(Ke({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),v=o(i=>{if(d)return;d=!0;let l=kn(i);u(Ke({code:"invalid_frame",message:l.message,...$r(l)&&l.data!==void 0?{data:l.data}:{}})),a.end()},"rejectInvalidFrame");a.on("data",i=>{if(!d)try{f.push(i)}catch(l){v(l)}}),a.on("end",()=>{try{f.flush()}catch(i){v(i)}}),a.on("close",()=>{t.delete(a),r.delete(p),p.close()}),a.on("error",()=>{a.destroy()})}),await Bc(n,e.endpoint.path),e.endpoint.kind==="unix")try{await Pn.chmod(e.endpoint.path,384)}catch(a){throw await Ls(n),a}return{endpoint:e.endpoint,connectionCount(){return t.size},unref(){n.unref()},async close(){if(!s){s=!0;for(let a of r)a.close();r.clear();for(let a of t)a.destroy();t.clear(),await Ls(n)}}}}o(Fs,"createRuntimeDaemonSocketServer");function Kc(e,n){qs(Buffer.byteLength(e,"utf8"),n)}o(Kc,"assertFrameSize");function qs(e,n){if(!(e<=n))throw new bn(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}o(qs,"assertFrameByteSize");function Xc(e,n=2e3){return new Promise((t,r)=>{let s=setTimeout(()=>{a(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);s.unref?.();let a=o(()=>{clearTimeout(s),e.off("connect",d),e.off("error",u)},"cleanup"),d=o(()=>{a(),t()},"onConnect"),u=o(p=>{a(),r(p)},"onError");e.once("connect",d),e.once("error",u)})}o(Xc,"waitForConnect");function Bc(e,n){return new Promise((t,r)=>{let s=o(()=>{e.off("listening",a),e.off("error",d)},"cleanup"),a=o(()=>{s(),t()},"onListening"),d=o(u=>{s(),r(u)},"onError");e.once("listening",a),e.once("error",d),e.listen(n)})}o(Bc,"waitForListen");async function Uc(e){if(e.kind!=="unix")return;let n;try{n=await Pn.stat(e.path)}catch(t){if(qr(t)&&t.code==="ENOENT")return;throw t}if(!n.isSocket())throw new Error(`Runtime daemon Unix endpoint exists and is not a socket: ${e.path}`);if(await Wc(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await Pn.unlink(e.path)}catch(t){if(!qr(t)||t.code!=="ENOENT")throw t}}o(Uc,"prepareUnixSocketEndpoint");function Wc(e){return new Promise((n,t)=>{let r=zn.createConnection(e),s=setTimeout(()=>{a(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);s.unref?.();let a=o(()=>{clearTimeout(s),r.off("connect",d),r.off("error",u)},"cleanup"),d=o(()=>{a(),r.end(),r.destroy(),n(!0)},"onConnect"),u=o(p=>{if(a(),r.destroy(),qr(p)&&(p.code==="ECONNREFUSED"||p.code==="ENOENT")){n(!1);return}t(p)},"onError");r.once("connect",d),r.once("error",u)})}o(Wc,"unixSocketAcceptsConnections");function Ls(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}o(Ls,"closeNetServer");function xt(e,n){for(let t of e.values())t.reject(n);e.clear()}o(xt,"rejectPending");function kn(e){return e instanceof Error?e:new Error(String(e))}o(kn,"normalizeTransportError");function qr(e){return e instanceof Error&&"code"in e}o(qr,"isNodeFileError");async function Tt(e,n={}){let t=Ts(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=te(e.lockFile),s=(n.isPidAlive??Hs)(t.pid),a=tn(t),d=Un(e),u;try{u=await(n.createTransport?n.createTransport(a):je(a,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let p=u.request("initialize",{profile:t.profile,connectionPurpose:"probe",...d!==void 0?{token:d}:{}});p.catch(()=>{});let f=await zc(p,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:s,endpointReachable:!0,identityMatches:Gc(f,t)&&Jc(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(p){return $r(p)&&p.code==="unauthorized"?{state:t,pidAlive:s,endpointReachable:!0,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}:{state:t,pidAlive:s,endpointReachable:!1,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}}finally{await u?.close?.()}}o(Tt,"observeRuntimeDaemonHealth");async function Hr(e,n,t={}){let r=await Tt(e,t),s=r.state?void 0:te(e.lockFile),a=s?{...r,observedLockOwner:s,lockOwnerPidAlive:(t.isPidAlive??Hs)(s.pid)}:r;return _s(e,n,a)}o(Hr,"resolveRuntimeDaemonOwnership");function tn(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}o(tn,"runtimeDaemonEndpointFromState");function Hs(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Vc(n)&&n.code==="EPERM"}}o(Hs,"isRuntimeDaemonPidAlive");async function zc(e,n,t){let r;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Error(t)),n),r.unref?.()})])}finally{r!==void 0&&clearTimeout(r)}}o(zc,"withTimeout");function Gc(e,n){let t=$s(e),r=$s(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}o(Gc,"daemonIdentityMatchesState");function Jc(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}o(Jc,"runtimeDaemonLockMatchesState");function $s(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}o($s,"asRecord");function Vc(e){return e instanceof Error&&"code"in e}o(Vc,"isNodeProcessError");import Na from"node:path";import{randomUUID as Dn}from"node:crypto";var y={type:"string"},J={type:"boolean"},B={type:"integer"},M={type:"object",additionalProperties:!0},Ks={},xe={type:"array",items:M},rn={oneOf:[{type:"null"},M]},Y=E({ok:J},["ok"]),ie=E({}),Mt={initialize:{params:E({profile:y,token:y,autoStart:J,endpoint:y,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:M,capabilities:M},[],!0),result:E({identity:M,capabilities:M},["identity","capabilities"],!0)},"runtime.initialize":{params:E({profile:y,token:y,autoStart:J,endpoint:y,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:M,capabilities:M},[],!0),result:E({identity:M,capabilities:M},["identity","capabilities"],!0)},ping:{params:ie,result:E({ok:J,runtimeId:y},["ok","runtimeId"])},"runtime.identity":{params:ie,result:M},"runtime.status":{params:ie,result:M},"runtime.shutdown":{params:ie,result:Y},"runtime.capabilities":{params:ie,result:M},"daemon.status":{params:ie,result:M},"daemon.stop":{params:ie,result:Y},"daemon.logs":{params:ie,result:M},"daemon.preflight":{params:ie,result:M},"daemon.management.get":{params:ie,result:E({runtimeId:y,revision:B,ownerPolicy:Ws(),owner:ul(),preflight:M},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:E({expectedRuntimeId:y,expectedRevision:B,expectedOwnerPolicyRevision:B},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:E({accepted:{type:"boolean",enum:[!0]},runtimeId:y,revision:B,ownerPolicy:Ws("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:E({operationId:y,journalEpoch:y},["operationId","journalEpoch"]),result:M},"session.create":{params:rl(),result:sn()},"session.load":{params:E({sessionId:y},["sessionId"]),result:sn()},"session.list":{params:il(),result:he(sn())},"session.transcript":{params:E({sessionId:y},["sessionId"]),result:rn},"session.transcript.page":{params:M,result:rn},"session.transcript.entryChunk":{params:M,result:rn},"session.transcript.search":{params:nl(),result:me(tl())},"session.observe":{params:E({sessionId:y},["sessionId"]),result:M},"session.fork":{params:cl(),result:me(sn())},"session.notice.append":{params:E({sessionId:y,content:y,source:y},["sessionId","content"]),result:rn},"session.rewind":{params:E({sessionId:y,selector:y},["sessionId"]),result:me(sn())},"session.active_entry.set":{params:zs(),result:me(sn())},"session.activeEntry.set":{params:zs(),result:me(sn())},"session.compact":{params:ll(),result:M},"session.archive":{params:E({sessionId:y},["sessionId"]),result:Y},"session.unarchive":{params:E({sessionId:y},["sessionId"]),result:Y},"session.delete":{params:E({sessionId:y},["sessionId"]),result:Y},"session.settings.get":{params:E({sessionId:y},["sessionId"]),result:M},"session.settings.getVersioned":{params:E({sessionId:y},["sessionId"]),result:M},"session.autoMode.getStats":{params:E({sessionId:y},["sessionId"]),result:me(M)},"session.settings.update":{params:E({sessionId:y,patch:M},["sessionId","patch"]),result:M},"session.settings.updateVersioned":{params:E({sessionId:y,patch:M,expectedRevision:B},["sessionId","patch","expectedRevision"]),result:M},"run.start":{params:ml(),result:el()},"run.input.submit":{params:E({sessionId:y,afterRunId:y,delivery:{type:"string",enum:["after_turn","interrupt"]},input:Ks,credential:M,hostTools:M},["sessionId","afterRunId","delivery","input"]),result:M},"run.get":{params:on(),result:Gs()},"run.list":{params:pl(),result:he(Gs())},"run.await":{params:on(),result:fl()},"run.abort":{params:on(),result:Y},"run.model.set":{params:E({runId:y,model:y},["runId"],!0),result:Y},"run.provider.set":{params:E({runId:y,provider:y},["runId","provider"]),result:Y},"run.reasoning.set":{params:E({runId:y,reasoning:y},["runId"],!0),result:Y},"run.setModel":{params:E({runId:y,model:y},["runId"],!0),result:Y},"run.setProvider":{params:E({runId:y,provider:y},["runId","provider"]),result:Y},"run.setReasoning":{params:E({runId:y,reasoning:y},["runId"],!0),result:Y},"event.subscribe":{params:Xs(ra()),result:Us()},"event.unsubscribe":{params:E({subscriptionId:y},["subscriptionId"]),result:Y},"event.replay":{params:gl(),result:he(Rl())},"permission.list":{params:Kr(),result:he(Js())},"permission.listPending":{params:Kr(),result:he(Js())},"permission.request":{params:ia(),result:Vs()},"permission.respond":{params:E({requestId:y,runId:y,decision:Vs()},["requestId","decision"]),result:J},"permission.grants.list":{params:ie,result:M},"permission.grants.revoke":{params:E({grantId:y,expectedRevision:B},["grantId","expectedRevision"]),result:J},"user_input.listPending":{params:Kr(),result:he(M)},"user_input.respond":{params:E({requestId:y,answer:Ks,runId:y,expectedRevision:B},["requestId","answer"],!0),result:M},"user_input.dismiss":{params:E({requestId:y,runId:y,expectedRevision:B},["requestId"],!0),result:M},"credential.register":{params:E({leaseId:y,providers:{type:"array",items:y},expiresAt:y},["leaseId","providers"],!0),result:M},"credential.get":{params:E({leaseId:y},["leaseId"]),result:{oneOf:[M,{type:"null"}]}},"credential.revoke":{params:E({leaseId:y},["leaseId"]),result:J},"credential.supply":{params:E({requestId:y,credential:y,error:y},["requestId"],!0),result:Y},"host_tool.register":{params:E({leaseId:y,tools:{type:"array",items:M}},["leaseId","tools"]),result:M},"host_tool.get":{params:E({leaseId:y},["leaseId"]),result:{oneOf:[M,{type:"null"}]}},"host_tool.invocation.get":{params:E({invocationId:y},["invocationId"]),result:{oneOf:[M,{type:"null"}]}},"host_tool.revoke":{params:E({leaseId:y},["leaseId"]),result:J},"host_tool.complete":{params:E({invocationId:y,result:M,error:y},["invocationId"],!0),result:Y},"workflow.list":{params:Qs(),result:xe},"workflow.get":{params:on(),result:{oneOf:[M,{type:"null"}]}},"workflow.subscribe":{params:Xs(Qs()),result:Us()},"workflow.unsubscribe":{params:E({subscriptionId:y},["subscriptionId"]),result:Y},"workflow.pause":{params:on(),result:J},"workflow.resume":{params:on(),result:J},"workflow.stop":{params:on(),result:J},"learning.list":{params:ol(),result:dl()},"learning.get":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ta()},"learning.snapshot":{params:ie,result:al()},"learning.events":{params:E({afterRevision:B},[],!0),result:he(sl())},"learning.acknowledge":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Y},"learning.snooze":{params:E({nameOrSlug:y,until:y},["nameOrSlug","until"]),result:Y},"learning.reject":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Y},"learning.disable":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Y},"learning.rollback":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Y},"learning.promote":{params:E({nameOrSlug:y,scope:y},["nameOrSlug","scope"]),result:Y},"learning.review":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Y},"learning.trust":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Y},"config.read":{params:ie,result:M},"config.patch":{params:E({patch:M},["patch"]),result:M},"config.reload":{params:ie,result:E({ok:J,config:M},["ok","config"])},"model.list":{params:E({provider:y},[],!0),result:{oneOf:[M,xe]}},"provider.list":{params:ie,result:xe},"provider.custom.list":{params:ie,result:xe},"provider.custom.upsert":{params:E({config:M},["config"]),result:M},"provider.custom.remove":{params:E({name:y},["name"]),result:J},"mcp.server.list":{params:ie,result:M},"mcp.server.get":{params:E({name:y},["name"]),result:{oneOf:[M,{type:"null"}]}},"mcp.server.validate":{params:E({name:y,config:M},["name","config"]),result:{oneOf:[E({ok:J,config:M},["ok","config"],!0),E({ok:J,error:y},["ok","error"],!0)]}},"mcp.server.upsert":{params:E({name:y,config:M},["name","config"]),result:M},"mcp.server.delete":{params:E({name:y},["name"]),result:J},"mcp.server.remove":{params:E({name:y},["name"]),result:J},"mcp.server.reload":{params:ie,result:E({ok:J,servers:xe},["ok","servers"])},"mcp.tool.list":{params:E({server:y,forceRefresh:J},[],!0),result:xe},"extension.list":{params:ie,result:E({active:J,extensions:xe,diagnostics:M},["active","extensions"],!0)},"extension.reload":{params:ie,result:E({ok:J,active:J},["ok","active"],!0)},"command.list":{params:E({projectRoot:y},[],!0),result:xe},"command.resolve":{params:E({name:y,projectRoot:y},["name"],!0),result:rn},"skill.list":{params:E({projectRoot:y,userInvocableOnly:J},[],!0),result:xe},"skill.describe":{params:E({name:y,projectRoot:y},["name"],!0),result:rn},"skill.read":{params:E({name:y,projectRoot:y},["name"],!0),result:rn},"artifact.create":{params:E({kind:{enum:["image","file","video"]},path:y,mediaType:y,mimeType:y,name:y,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:y},["kind","path"]),result:Ys()},"artifact.get":{params:E({artifactId:y},["artifactId"]),result:me(Ys())},"artifact.delete":{params:E({artifactId:y},["artifactId"]),result:J},"agentRegistrations.list":{params:ie,result:xe},"agentRegistrations.upsert":{params:E({registration:M,expectedConfigurationRevision:me(y),expectedManagementOwner:me(y)},["registration"]),result:M},"agentRegistrations.setEnabled":{params:E({agentId:y,enabled:J,expectedConfigurationRevision:me(y),expectedManagementOwner:me(y),claimOwner:y},["agentId","enabled"]),result:me(M)},"agentRegistrations.remove":{params:E({agentId:y,expectedConfigurationRevision:me(y),expectedManagementOwner:me(y)},["agentId"]),result:J},"agents.listDispatchable":{params:M,result:xe},"agents.describe":{params:E({agentId:y,query:M},["agentId","query"]),result:me(M)},"agents.preflight":{params:M,result:M},"agents.tree":{params:E({sessionId:y},["sessionId"]),result:M},"agents.detail":{params:E({sessionId:y,actorPath:y},["sessionId","actorPath"]),result:M},"agents.spawn":{params:E({sessionId:y,input:M},["sessionId","input"]),result:M},"agents.send":{params:E({sessionId:y,actorPath:y,content:y,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:Y},"agents.followup":{params:E({sessionId:y,actorPath:y,objective:y,expectedRevision:B},["sessionId","actorPath","objective"],!0),result:M},"agents.interrupt":{params:E({sessionId:y,actorPath:y,reason:y},["sessionId","actorPath"],!0),result:Y},"agents.output":{params:E({sessionId:y,actorPath:y,turnId:y},["sessionId","actorPath"],!0),result:M},"agents.events":{params:E({sessionId:y,afterSequence:B},["sessionId"],!0),result:xe},"agents.wait":{params:E({sessionId:y,afterSequence:B,timeoutMs:B},["sessionId"],!0),result:me(M)},"context.budget.get":{params:Bs(),result:{oneOf:[M,{type:"null"}]}},"tool.exposure.preview":{params:Bs(),result:{oneOf:[M,{type:"null"}]}}},Zs={event:E({subscriptionId:y,event:M},["subscriptionId","event"]),"credential.request":M,"host_tool.invoke":M,"runtime.warning":M},ea={protocol:He,version:1,methods:Mt,notifications:Zs},Qc=JSON.stringify(ea,null,2);function Yc(){return gn}o(Yc,"listRuntimeDaemonSchemaMethods");function xn(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(d=>xn(d,n,t).length===0).length===1?[]:[`${t} must match exactly one allowed schema.`];if(e.enum!==void 0&&!e.enum.some(a=>Object.is(a,n)))return[`${t} must be one of: ${e.enum.map(String).join(", ")}.`];let r=e.type===void 0?[]:Array.isArray(e.type)?e.type:[e.type];if(r.length>0&&!r.some(a=>Zc(a,n)))return[`${t} must be ${r.join(" or ")}.`];if(typeof n=="string"&&e.maxLength!==void 0&&n.length>e.maxLength)return[`${t} must have at most ${e.maxLength} characters.`];if(Array.isArray(n)){let a=e.items;return a===void 0?[]:n.flatMap((d,u)=>xn(a,d,`${t}[${u}]`))}if(!na(n))return[];let s=[];for(let a of e.required??[])(!Object.prototype.hasOwnProperty.call(n,a)||n[a]===void 0)&&s.push(`${t}.${a} is required.`);for(let[a,d]of Object.entries(n)){if(d===void 0)continue;let u=e.properties?.[a];if(u!==void 0){s.push(...xn(u,d,`${t}.${a}`));continue}e.additionalProperties===!1?s.push(`${t}.${a} is not allowed.`):typeof e.additionalProperties=="object"&&s.push(...xn(e.additionalProperties,d,`${t}.${a}`))}return s}o(xn,"validateRuntimeDaemonJsonSchema");function Zc(e,n){switch(e){case"array":return Array.isArray(n);case"boolean":return typeof n=="boolean";case"integer":return typeof n=="number"&&Number.isInteger(n);case"null":return n===null;case"number":return typeof n=="number"&&Number.isFinite(n);case"object":return na(n);case"string":return typeof n=="string"}}o(Zc,"matchesJsonSchemaType");function na(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(na,"isJsonObject");function E(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}o(E,"objectSchema");function on(){return E({runId:y},["runId"])}o(on,"runIdParamsSchema");function Xs(e){return E({filter:e})}o(Xs,"filterParamsSchema");function Bs(){return E({sessionId:y,runId:y},[],!0)}o(Bs,"diagnosticParamsSchema");function Us(){return E({subscriptionId:y},["subscriptionId"])}o(Us,"subscriptionSchema");function el(){return E({runId:y,sessionId:y,turnId:y},["runId","sessionId"],!0)}o(el,"runStartedSchema");function he(e){return{type:"array",items:e}}o(he,"arraySchema");function me(e){return{oneOf:[{type:"null"},e]}}o(me,"nullableSchema");function nl(){return E({sessionId:y,query:y,limit:B,role:{type:"string",enum:["user","assistant"]},scope:{type:"string",enum:["compacted","all"]}},["sessionId","query"])}o(nl,"transcriptSearchParamsSchema");function tl(){let e=E({entryId:y,logicalId:y,sourceEntryId:y,timestamp:y,role:{type:"string",enum:["user","assistant"]},source:{type:"string",enum:["user","assistant","tool","child_task"]},active:J,score:{type:"number"},snippet:y,citation:y,entryIndex:B},["entryId","timestamp","role","source","active","score","snippet","citation","entryIndex"]);return E({revision:y,hits:he(e)},["revision","hits"])}o(tl,"transcriptSearchResultSchema");function rl(){return E({sessionId:y,title:y,projectPath:y,gitRoot:y,surface:y,profileId:y,tag:y})}o(rl,"createSessionParamsSchema");function sn(){return E({id:y,cursor:y,title:y,gitRoot:y,workspaceRoot:y,surface:y,profileId:y,createdAt:y,msgCount:B,tag:y,projectKey:y,archived:J},["id","title"],!0)}o(sn,"sessionSchema");function il(){return E({projectRoot:y,scope:{enum:["user","managed-task-worker","all"]},includeArchived:J,limit:B,before:y,tag:y,surface:y,cursor:y})}o(il,"sessionFilterSchema");function ol(){return E({search:y,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:B,cursor:y})}o(ol,"learningQuerySchema");function ta(){return E({schemaVersion:{type:"integer",enum:[1]},capabilityId:y,displayName:y,slug:y,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:Xr(),revision:B,createdAt:y,updatedAt:y,source:E({kind:{enum:["learning_controller","f224_proposal"]},proposalId:y},["kind"]),lastAction:{enum:["review","trust","reject","disable","rollback","archive","restore","promote"]},artifactPath:y,previousGoodRevision:B,previousLifecycle:Xr(),diagnostics:he(y)},["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"])}o(ta,"learnedCapabilitySchema");function Xr(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}o(Xr,"learningLifecycleSchema");function sl(){return E({schemaVersion:{type:"integer",enum:[1]},sequence:B,eventId:y,capabilityId:y,capabilityRevision:B,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Xr(),displayName:y,slug:y,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:y},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}o(sl,"learningEventSchema");function al(){return E({ready:B,newlyActive:B,attention:B,active:B,revision:B},["ready","newlyActive","attention","active","revision"])}o(al,"learningSnapshotSchema");function dl(){return E({items:he(ta()),nextCursor:y,revision:B},["items","revision"])}o(dl,"learningPageSchema");function Ws(e){return E({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:B,updatedAt:y},["mode","revision","updatedAt"])}o(Ws,"ownerPolicySchema");function ul(){return E({runtimeId:y,pid:B,createdAt:y,kind:{type:"string",enum:["daemon","inline"]}},["runtimeId","pid","createdAt"])}o(ul,"ownerIdentitySchema");function cl(){return E({sessionId:y,selector:y,newSessionId:y,title:y},["sessionId"])}o(cl,"forkSessionParamsSchema");function zs(){return E({sessionId:y,entryId:y},["sessionId","entryId"])}o(zs,"activeEntryParamsSchema");function ll(){return E({sessionId:y,provider:y,model:y,customInstructions:y,contextWindow:B},["sessionId"])}o(ll,"compactSessionParamsSchema");function ml(){return E({sessionId:y,prompt:y,input:{oneOf:[M,he(M)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:M},["sessionId"],!0)}o(ml,"startRunParamsSchema");function pl(){return E({sessionId:y,phase:{oneOf:[At(),he(At())]}})}o(pl,"runFilterSchema");function Gs(){return E({runId:y,sessionId:y,turnId:y,phase:At(),startedAt:y,endedAt:y,provider:y,model:y,reasoning:y,error:y},["runId","sessionId","phase","startedAt","provider"],!0)}o(Gs,"runStatusSchema");function fl(){return E({runId:y,sessionId:y,phase:At(),result:M,error:{oneOf:[y,M]}},["runId","sessionId","phase"],!0)}o(fl,"runResultSchema");function At(){return{enum:["queued","running","waiting_permission","waiting_user_input","completed","failed","cancelled","interrupted"]}}o(At,"runPhaseSchema");function ra(){return E({sessionId:y,runId:y,type:{oneOf:[y,he(y)]}})}o(ra,"eventFilterSchema");function gl(){return E({...ra().properties??{},sinceSeq:B,limit:B})}o(gl,"eventReplayFilterSchema");function Rl(){return E({id:y,seq:B,time:y,sessionId:y,runId:y,turnId:y,type:y,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}o(Rl,"runtimeEventSchema");function Kr(){return E({sessionId:y,runId:y,toolName:y})}o(Kr,"permissionFilterSchema");function ia(){return E({sessionId:y,runId:y,turnId:y,toolCallId:y,toolName:y,reason:y,risk:{enum:["low","medium","high"]},inputPreview:y,toolInput:M,executionCwd:{type:"string",maxLength:4096},expiresAt:y,timeoutMs:B},["sessionId","runId","toolName"])}o(ia,"permissionRequestInputSchema");function Js(){let{toolInput:e,...n}=ia().properties??{};return E({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:he(E({id:y,kind:{enum:["session","persistent"]},label:{type:"string",maxLength:512}},["id","kind","label"])),id:y,createdAt:y},["id","sessionId","runId","toolName","createdAt"],!0)}o(Js,"permissionRequestSchema");function Vs(){return{oneOf:[E({type:{enum:["allow_once"]}},["type"]),E({type:{enum:["allow_session"]},suggestionId:y},["type","suggestionId"]),E({type:{enum:["allow_always"]},suggestionId:y},["type","suggestionId"]),E({type:{enum:["allow_always"]},scope:E({toolName:y,sessionId:y,matcher:yl()})},["type","scope"]),E({type:{enum:["reject"]},reason:y},["type"])]}}o(Vs,"permissionDecisionSchema");function yl(){let e={version:{type:"integer",enum:[1]},toolName:y,fingerprint:y};return{oneOf:[E({...e,kind:{enum:["exact-command"]},shell:{enum:["cmd","posix"]},commandFingerprint:y,cwd:y,executable:y,argvFingerprint:y,background:J},["version","kind","toolName","fingerprint","shell","commandFingerprint","cwd","background"]),E({...e,kind:{enum:["exact-path"]},path:y},["version","kind","toolName","fingerprint","path"]),E({...e,kind:{enum:["exact-call"]},cwd:y,inputFingerprint:y},["version","kind","toolName","fingerprint","cwd","inputFingerprint"])]}}o(yl,"runtimePermissionMatcherSchema");function Qs(){return E({runId:y,activeOnly:J,limit:B})}o(Qs,"workflowFilterSchema");function Ys(){return E({id:y,kind:{enum:["image","file","video"]},path:y,sizeBytes:B,mediaType:y,mimeType:y,name:y,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:y,createdAt:y},["id","kind","path","sizeBytes","createdAt"],!0)}o(Ys,"artifactSchema");import{createHash as wl,randomUUID as Gn}from"node:crypto";import*as de from"node:fs";import hl from"node:path";var Sl=6e4,vl=1048576,Il=64,kl=4096,oa=1e3;function Ur(){return{callTimeoutMs:da("KODAX_REVERSE_CALL_TIMEOUT_MS",Sl),maxResultBytes:da("KODAX_HOST_TOOL_MAX_RESULT_BYTES",vl)}}o(Ur,"runtimeDaemonReverseBridgeLimits");function Wr(e,n={}){let t=Ur(),r=new Map,s=new Map,a=new Map,d=new Map,u=new Map((n.initialInvocations??[]).map(g=>[g.invocationId,g])),p=new Set,f=new Map,v=new Map,i,l=!1,c=o(()=>{if(l)throw z("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),w=o(()=>{let g=Date.now();for(let[h,D]of r)D.expiresAt!==void 0&&Date.parse(D.expiresAt)<=g&&r.delete(h)},"pruneExpiredCredentials"),P=o(g=>{for(let h of a.values())clearTimeout(h.timer),h.reject(z("credential_unavailable",g));a.clear()},"rejectPendingCredentialRequests"),R=o(()=>{for(let[g,h]of d)h.dispatched&&(d.delete(g),clearTimeout(h.timer),I(g,"unknown"),h.reject(z("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),I=o((g,h)=>{let D=u.get(g);if(D===void 0)return;let T={...D,state:h,updatedAt:new Date().toISOString()},C=new Map(u);for(C.delete(g),C.set(g,T);C.size>oa;){let H=C.keys().next().value;if(H===void 0)break;C.delete(H)}n.onInvocationsChanged?.([...C.values()]),u.clear();for(let[H,m]of C)u.set(H,m)},"updateHostToolInvocation"),k=o((g,h)=>{let D=i;if(!(h.dispatched||D===void 0||!p.has(h.leaseId)))try{I(g,"dispatched"),h.dispatched=!0,D.notify(h.notification)}catch{d.delete(g),clearTimeout(h.timer),I(g,"unknown"),h.reject(z("host_tool_unknown","Host tool transport failed after durable dispatch; the side-effect outcome is unknown."))}},"dispatchPendingHostCall"),x=o(async g=>{if(c(),s.get(g.lease.id)!==g.lease)throw z("host_tool_unavailable","Host tool lease was revoked.");let h=`hostcall_${Gn().replace(/-/g,"")}`,D=Xn("host_tool.invoke",{invocationId:h,leaseId:g.lease.id,toolName:g.descriptor.name,sessionId:g.sessionId,runId:g.runId,input:g.toolInput,sideEffect:g.descriptor.sideEffect}),T={invocationId:h,leaseId:g.lease.id,toolName:g.descriptor.name,sessionId:g.sessionId,runId:g.runId,state:"prepared",updatedAt:new Date().toISOString()},C=new Map(u);for(C.set(h,T);C.size>oa;){let S=C.keys().next().value;if(S===void 0)break;C.delete(S)}n.onInvocationsChanged?.([...C.values()]),u.clear();for(let[S,b]of C)u.set(S,b);let H=new Promise((S,b)=>{let A=setTimeout(()=>{let _=d.get(h);_&&(d.delete(h),I(h,_.dispatched?"unknown":"not_dispatched"),b(z(_.dispatched?"host_tool_unknown":"host_tool_unavailable",_.dispatched?`Host tool ${g.descriptor.name} did not return a certain result before timeout.`:`Host tool ${g.descriptor.name} had no connected host before timeout.`)))},t.callTimeoutMs);A.unref?.(),d.set(h,{invocationId:h,resolve:S,reject:b,timer:A,notification:D,leaseId:g.lease.id,dispatched:!1})}),m=d.get(h);return m&&k(h,m),H},"invokeHostTool");return e!==void 0&&(i={id:`bridge_${Gn().replace(/-/g,"")}`,notify:e}),{attachTransport(g){c(),i!==void 0&&(P("Credential client connection was replaced."),R());let h=`bridge_${Gn().replace(/-/g,"")}`;return i={id:h,notify:g},p.clear(),{close(){i?.id===h&&(i=void 0,p.clear(),P("Credential client disconnected."),R())}}},registerCredential(g){if(c(),w(),g.providers.length===0||g.providers.some(D=>D.trim().length===0)||new Set(g.providers).size!==g.providers.length)throw z("invalid_params","Credential lease providers must be non-empty and unique.");if(g.expiresAt!==void 0&&!Number.isFinite(Date.parse(g.expiresAt)))throw z("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(g.leaseId))throw z("conflict","Credential lease ID is already registered on this connection.");let h={id:g.leaseId,providers:[...g.providers],...g.expiresAt!==void 0?{expiresAt:g.expiresAt}:{},providerSet:new Set(g.providers)};return r.set(g.leaseId,h),aa(h)},getCredential(g){w();let h=r.get(g);return h===void 0?void 0:aa(h)},revokeCredential(g){return r.delete(g)},supplyCredential(g){let h=a.get(g.requestId);return h?(a.delete(g.requestId),clearTimeout(h.timer),g.credential!==void 0&&g.credential.length>0?h.resolve(g.credential):h.reject(z("credential_unavailable",g.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(g){c();let h=r.get(g.leaseId);if(!h||!h.providerSet.has(g.provider))throw z("credential_unavailable","Credential lease is missing or does not allow this provider.");if(h.expiresAt!==void 0&&Date.parse(h.expiresAt)<=Date.now())throw r.delete(h.id),z("credential_unavailable","Credential lease expired.");let D=i;if(!D)throw z("credential_unavailable","Credential broker transport is unavailable.");let T=`credreq_${Gn().replace(/-/g,"")}`,C=h.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(h.expiresAt)-Date.now())),H=new Promise((m,S)=>{let b=setTimeout(()=>{a.delete(T),S(z("credential_unavailable","Credential lease expired or broker timed out."))},C);b.unref?.(),a.set(T,{resolve:m,reject:S,timer:b})});try{D.notify(Xn("credential.request",{requestId:T,leaseId:h.id,provider:g.provider,sessionId:g.sessionId,runId:g.runId}))}catch{let m=a.get(T);m&&(a.delete(T),clearTimeout(m.timer),m.reject(z("credential_unavailable","Credential request was not dispatched.")))}return H.then(m=>(f.set(g.runId,{leaseId:g.leaseId,provider:g.provider}),m))},registerHostTools(g){c();let h=g.tools.map(T=>T.name);if(h.length===0||h.length>Il||new Set(h).size!==h.length)throw z("invalid_params","Host tool names must be non-empty and unique.");if(s.has(g.leaseId))throw z("conflict","Host tool lease ID is already registered on this connection.");for(let T of g.tools)Dl(T);let D={id:g.leaseId,tools:g.tools.map(T=>({...T,inputSchema:{...T.inputSchema}})),byName:new Map(g.tools.map(T=>[T.name,T]))};return s.set(g.leaseId,D),p.add(g.leaseId),{id:D.id,tools:D.tools}},getHostTools(g){let h=s.get(g);if(h!==void 0){p.add(g);for(let[D,T]of d)T.leaseId===g&&k(D,T)}return h===void 0?void 0:{id:h.id,tools:h.tools}},revokeHostTools(g){return s.delete(g)},completeHostTool(g){let h=d.get(g.invocationId);if(!h)return!1;if(g.result!==void 0){if(typeof g.result.content!="string")throw z("invalid_params","Host tool result content must be a string.");Tl(g.result,t.maxResultBytes,"Host tool result")}return d.delete(g.invocationId),clearTimeout(h.timer),g.result!==void 0?(I(g.invocationId,"completed"),h.resolve(g.result)):(I(g.invocationId,"unknown"),h.reject(z("host_tool_unknown",g.error??"Host tool result is unknown."))),!0},getHostToolInvocation(g){return u.get(g)},createHostToolRuntime(g){c();let h=s.get(g.leaseId);if(!h)throw z("host_tool_unavailable","Host tool lease is missing.");return v.set(g.runId,g.leaseId),{hasCapabilityProvider(D){return D==="mcp"},async searchCapabilities(D,T,C){if(D!=="mcp"||C?.kind!==void 0&&C.kind!=="tool")return[];let H=T.toLowerCase();return h.tools.filter(m=>m.name.toLowerCase().includes(H)||m.description.toLowerCase().includes(H)).slice(0,C?.limit??h.tools.length).map(m=>({id:Al(h.id,m.name),name:m.name,description:m.description,kind:"tool",server:"host",inputSchema:m.inputSchema}))},async describeCapability(D,T){if(D!=="mcp")return;let C=ua(h,T);return C?{...C,id:T,kind:"tool",server:"host"}:void 0},async executeCapability(D,T,C){if(D!=="mcp")throw z("host_tool_unavailable","Unsupported host capability provider.");let H=ua(h,T);if(!H)throw z("host_tool_unavailable","Host tool is not bound to this run.");return await x({lease:h,descriptor:H,sessionId:g.sessionId,runId:g.runId,toolInput:C})},async readCapability(){throw z("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(g){let h=f.get(g),D=v.get(g);if(!(h===void 0&&D===void 0))return{...h!==void 0?{credential:{...h,state:"ready"}}:{},...D!==void 0?{hostTools:{leaseId:D,state:s.has(D)?p.has(D)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!l){l=!0,i=void 0,p.clear(),r.clear(),s.clear(),P("Credential client disconnected.");for(let g of d.values())clearTimeout(g.timer),I(g.invocationId,g.dispatched?"unknown":"not_dispatched"),g.reject(z(g.dispatched?"host_tool_unknown":"host_tool_unavailable",g.dispatched?"Host tool client disconnected; the side-effect outcome is unknown.":"Host tool client disconnected before dispatch."));d.clear(),u.clear()}}}}o(Wr,"createRuntimeDaemonReverseBridge");function ca(e={}){let n=new Map,t=Pl(e.invocationStateFile),r=!1;return{attach(s){if(r)throw z("host_tool_unavailable","Host bridge hub is closed.");if(s.instanceSecret!==void 0&&(s.instanceSecret.length<32||s.instanceSecret.length>512))throw z("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let a=s.instanceSecret===void 0?`ephemeral:${s.connectionId}`:`stable:${s.principalId}:${wl("sha256").update(s.instanceSecret).digest("hex")}`,d=a.startsWith("stable:")?bl(t.get(a)??[]):[],u=n.get(a)??Wr(void 0,{initialInvocations:d,...a.startsWith("stable:")?{onInvocationsChanged(f){t.set(a,f),sa(e.invocationStateFile,t)}}:{}});!n.has(a)&&d.length>0&&(t.set(a,d),sa(e.invocationStateFile,t)),n.set(a,u);let p=u.attachTransport(s.notify);return{bridge:u,close(){p.close()}}},getRunRequirements(s){for(let a of n.values()){let d=a.getRunRequirements(s);if(d!==void 0)return d}},close(){if(!r){r=!0;for(let s of n.values())s.close();n.clear()}}}}o(ca,"createRuntimeDaemonReverseBridgeHub");function bl(e){let n=new Date().toISOString();return e.map(t=>t.state==="prepared"?{...t,state:"not_dispatched",updatedAt:n}:t.state==="dispatched"?{...t,state:"unknown",updatedAt:n}:t)}o(bl,"recoverHostToolInvocationStates");function Pl(e){if(e===void 0||!de.existsSync(e))return new Map;let n;try{n=JSON.parse(de.readFileSync(e,"utf8"))}catch(r){throw new Error(`Host Tool invocation recovery store is untrusted: ${Ml(r).message}`)}if(!Br(n)||n.version!==1||!Array.isArray(n.clients))throw new Error("Host Tool invocation recovery store is untrusted: invalid root shape.");let t=new Map;for(let r of n.clients){if(!Br(r)||typeof r.key!="string"||!Array.isArray(r.invocations))throw new Error("Host Tool invocation recovery store is untrusted: invalid client entry.");let s=r.invocations.map(El);t.set(r.key,s)}return t}o(Pl,"loadHostToolInvocationStore");function sa(e,n){if(e===void 0)return;de.mkdirSync(hl.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${Gn()}.tmp`,r;try{r=de.openSync(t,"wx",384),de.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([s,a])=>({key:s,invocations:a}))},null,2)}
65
65
  `,"utf8"),de.fsyncSync(r),de.closeSync(r),r=void 0,de.renameSync(t,e)}finally{r!==void 0&&de.closeSync(r),de.rmSync(t,{force:!0})}}o(sa,"saveHostToolInvocationStore");function El(e){if(!Br(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!xl(e.state)||typeof e.updatedAt!="string")throw new Error("Host Tool invocation recovery store is untrusted: invalid invocation entry.");return{invocationId:e.invocationId,leaseId:e.leaseId,toolName:e.toolName,sessionId:e.sessionId,runId:e.runId,state:e.state,updatedAt:e.updatedAt}}o(El,"parseHostToolInvocationStatus");function xl(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}o(xl,"isHostToolInvocationState");function aa(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}o(aa,"publicCredentialLease");function Dl(e){if(!e.name||!e.description||!e.inputSchema)throw z("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw z("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw z("invalid_params","Host tool name is invalid.");if(e.description.length>kl)throw z("invalid_params",`Host tool description is too long: ${e.name}.`)}o(Dl,"validateHostToolDescriptor");function Tl(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw z("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw z("invalid_params",`${t} exceeds the ${n}-byte limit.`)}o(Tl,"assertJsonByteLimit");function da(e,n){let t=process.env[e];if(t===void 0)return n;let r=Number(t);if(!Number.isSafeInteger(r)||r<=0)throw new Error(`${e} must be a positive integer.`);return r}o(da,"positiveIntegerEnvironment");function Al(e,n){return`host:${e}:${n}`}o(Al,"hostToolCapabilityId");function ua(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}o(ua,"descriptorFromCapabilityId");function z(e,n){return Object.assign(new Error(n),{code:e})}o(z,"bridgeError");function Br(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Br,"isRecord");function Ml(e){return e instanceof Error?e:new Error(String(e))}o(Ml,"normalizeError");var Cl=512*1024,la=1e3,_l=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],Ol=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),Ia=["session:observe","session:write","run:control","interaction:respond","permission:respond","permission:grant-admin","integration:admin","workflow:control","learning:read","learning:control","artifact:write","agent:control","credential:register","host-tool:register","owner:admin","daemon:admin"],ka=new Map([...pe("session:observe",["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status","daemon.logs","operation.get","session.load","session.list","session.transcript","session.transcript.page","session.transcript.entryChunk","session.observe","session.settings.get","session.transcript.search","session.settings.getVersioned","session.autoMode.getStats","run.get","run.list","run.await","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.grants.list","user_input.listPending","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","context.budget.get","tool.exposure.preview","config.read","model.list","provider.list","provider.custom.list","mcp.server.list","mcp.server.get","mcp.tool.list","extension.list","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.get"]),...pe("session:write",["session.create","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.update","session.settings.updateVersioned"]),...pe("run:control",["run.start","run.input.submit","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","permission.request"]),...pe("permission:respond",["permission.respond"]),...pe("permission:grant-admin",["permission.grants.revoke"]),...pe("interaction:respond",["user_input.respond","user_input.dismiss"]),...pe("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...pe("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...pe("integration:admin",["config.patch","config.reload","provider.custom.upsert","provider.custom.remove","mcp.server.validate","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","extension.reload"]),...pe("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...pe("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...pe("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...pe("artifact:write",["artifact.create","artifact.delete"]),...pe("agent:control",["agentRegistrations.list","agentRegistrations.upsert","agentRegistrations.setEnabled","agentRegistrations.remove","agents.listDispatchable","agents.describe","agents.preflight","agents.tree","agents.detail","agents.spawn","agents.send","agents.followup","agents.interrupt","agents.output","agents.events","agents.wait"]),...pe("owner:admin",["daemon.rollbackToInline"]),...pe("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),ma=gn.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!ka.has(e));if(ma.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${ma.join(", ")}`);function pe(e,n){return n.map(t=>[t,e])}o(pe,"scopeEntries");function Yr(){let e=new Map,n=o(()=>{if(!(e.size<=la))for(let[r,s]of e){if(e.size<=la)break;s.settled&&e.delete(r)}},"pruneSettled"),t=o((r,s)=>{e.get(r)===s&&(s.settled=!0,n())},"markSettled");return{remember(r,s){let a,d=s.finally(()=>{a&&t(r,a)});d.catch(()=>{}),a={promise:d,settled:!1},e.set(r,a),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}o(Yr,"createRuntimeDaemonRunResultStore");function Jn(e){return e==="initialize"||e==="runtime.initialize"}o(Jn,"isInitializeMethod");function ba(e){let n=new Map,t=e.runResults??Yr(),r=`connection_${Dn().replace(/-/g,"")}`,s=Wr(e.notify),a=s,d,u=!1,p=!1,f="client",v={},i=`client_${Dn().replace(/-/g,"")}`,l,c,w=new Set(e.grantedScopes??Ia),P=o(x=>{let g=n.get(x);return g?(n.delete(x),g.close(),!0):!1},"closeSubscription"),R=o((x,g)=>{n.set(x,g)},"rememberSubscription"),I=o((x,g)=>{Ea(g)&&v.contextDiagnostics!==!0||e.notify?.(Xn("event",{subscriptionId:x,event:g}))},"notify");return{handle:o(async x=>{try{if(ds(x.method))throw K("client_upgrade_required","The legacy agentTasks control plane was retired. Upgrade the KodaX SDK; if this daemon does not advertise actorControlPlane v1, restart it with the upgraded KodaX installation.");let g=x;va(g.method,"params",g.params===void 0?{}:g.params,"invalid_params");let h;if(!u&&!Jn(g.method))throw K("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(u&&Jn(g.method))throw K("conflict","Runtime daemon connection is already initialized.");if(u&&f==="probe"&&!Ol.has(g.method))throw K("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(Jn(g.method)){h=Z(g.params),f=h?.connectionPurpose==="probe"?"probe":"client";let H=typeof h?.token=="string"?h.token:void 0;if(e.authToken!==void 0&&H!==e.authToken)throw K("unauthorized","Runtime daemon initialize token is invalid.");let m=typeof h?.profile=="string"?h.profile:void 0;if(m!==void 0&&m!==e.runtime.identity.profile)throw K("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${m}.`);i=ql(h?.clientInfo,i),l=tm(h?.clientInfo),c=rm(h?.clientInfo)}Jn(g.method)||(jl(g.method,w),Fl(g,w));let T=await Nl(g,e,v,i,o(()=>$l(g,e,t,R,P,I,()=>v,i,l,c,a),"dispatch")),C=dm(g.method,T);if(va(g.method,"result",C,"internal_error"),Jn(g.method)){if(v=Kl(h?.capabilities),f==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(d=e.reverseBridgeHub.attach({principalId:i,connectionId:r,...fa(h?.clientInfo)!==void 0?{instanceSecret:fa(h?.clientInfo)}:{},notify:e.notify}),a=d.bridge,s.close()),f==="client"&&e.management!==void 0)try{e.management.attachClient(r),p=!0}catch(H){throw d?.close(),d=void 0,H}u=!0}return us(g.id,C)}catch(g){return Ke(um(g),x.id)}},"handle"),close(){for(let x of[...n.keys()])P(x);d!==void 0?d.close():a.close(),p&&(e.management?.detachClient(r),p=!1)}}}o(ba,"createRuntimeDaemonDispatcher");async function Nl(e,n,t,r,s){let a=o(()=>n.management!==void 0&&Ll(e.method)?n.management.runMutation(e.method,s):s(),"execute");if(!Ye(e.method)||n.requireOperationEnvelope!==!0)return a();if(t.operationDeduplication!==!0)throw K("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw K("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw K("internal_error","Runtime daemon control journal is unavailable.");return n.controlJournal.execute({operationId:e.operation.operationId,journalEpoch:e.operation.journalEpoch,principalId:r,method:e.method,...pa(e.params)!==void 0?{resourceId:pa(e.params)}:{},params:e.params??{}},{externalEffect:!0},a)}o(Nl,"dispatchWithOperation");function Ll(e){return as(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}o(Ll,"isManagedRuntimeMutation");function jl(e,n){let t=ka.get(e);if(t===void 0)throw K("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw K("unauthorized",`Runtime daemon method requires scope ${t}.`)}o(jl,"requireRuntimeMethodScope");function Fl(e,n){if(e.method!=="permission.respond")return;let t=fe(e.params)?e.params:void 0;if(!((t&&fe(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw K("unauthorized","Persistent permission grants require scope permission:grant-admin.")}o(Fl,"requirePersistentGrantScope");function pa(e){if(fe(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}o(pa,"operationResourceId");function ql(e,n){if(!fe(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}o(ql,"parseRuntimeClientPrincipal");function fa(e){if(!fe(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}o(fa,"parseRuntimeClientInstanceSecret");async function $l(e,n,t,r,s,a,d,u,p,f,v){let i=n.runtime,l=n.reverseBridgeHub??v;switch(e.method){case"initialize":case"runtime.initialize":return{identity:i.identity,capabilities:Ra(n.capabilities,i.agents.enabled,i.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0),principalId:u,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??Ia]};case"ping":return{ok:!0,runtimeId:i.identity.runtimeId};case"runtime.identity":return i.identity;case"daemon.status":case"runtime.status":return Wl(await(n.status?n.status():i.status.snapshot()),l);case"daemon.stop":case"runtime.shutdown":return n.management?n.management.stop():n.stop?n.stop():i.close().then(()=>({ok:!0}));case"daemon.logs":return n.logs?n.logs():{entries:[]};case"daemon.preflight":return zl(await(n.management?n.management.preflight():n.preflight?n.preflight():i.status.preflight()),l);case"daemon.management.get":if(!n.management)throw K("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw K("client_upgrade_required","Runtime daemon rollback management is unavailable.");let c=O(e.params),w={expectedRuntimeId:j(c,"expectedRuntimeId"),expectedRevision:Ot(c,"expectedRevision"),expectedOwnerPolicyRevision:Ot(c,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(w)}case"runtime.capabilities":return Ra(n.capabilities,i.agents.enabled,i.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0);case"operation.get":{let c=O(e.params),w=j(c,"operationId"),P=j(c,"journalEpoch");if(!n.controlJournal)return i.operations.get({operationId:w,journalEpoch:P});if(P!==n.controlJournal.journalEpoch)throw K("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let R=n.controlJournal.get(w);if(!R||R.principalId!==u)throw K("not_found","Runtime operation was not found.");return Xl(R)}case"config.read":return n.config?Qr(await n.config()):i.config.read();case"config.patch":{let c=xa(O(e.params),"patch");return i.config.patch(c)}case"config.reload":return i.config.reload();case"provider.list":return n.providerList?n.providerList():i.catalog.providers();case"model.list":return n.providerList?Jl(await n.providerList(),Z(e.params)):i.catalog.models(Ql(e.params));case"provider.custom.list":return i.catalog.customProviders();case"provider.custom.upsert":{let c=O(e.params);return i.catalog.upsertCustomProvider(O(c.config))}case"provider.custom.remove":return i.catalog.deleteCustomProvider(G(e.params,"name"));case"mcp.server.list":return i.mcp.listServers();case"mcp.server.get":return i.mcp.getServer(G(e.params,"name"));case"mcp.server.validate":{let c=O(e.params);return i.mcp.validateServer(j(c,"name"),c.config)}case"mcp.server.upsert":{let c=O(e.params);return i.mcp.upsertServer(j(c,"name"),O(c.config))}case"mcp.server.delete":case"mcp.server.remove":return i.mcp.deleteServer(G(e.params,"name"));case"mcp.server.reload":return i.mcp.reloadServers();case"mcp.tool.list":return i.mcp.listTools(Yl(e.params));case"extension.list":return i.catalog.extensions();case"extension.reload":return i.catalog.reloadExtensions();case"command.list":{let c=Z(e.params),w=typeof c?.projectRoot=="string"?c.projectRoot:void 0;return i.catalog.commands(w)}case"command.resolve":{let c=O(e.params);return i.catalog.resolveCommand({name:j(c,"name"),...typeof c.projectRoot=="string"?{projectRoot:c.projectRoot}:{}})}case"skill.list":return i.catalog.skills(Zl(e.params));case"skill.describe":case"skill.read":{let c=O(e.params);return i.catalog.describeSkill({name:j(c,"name"),...typeof c.projectRoot=="string"?{projectRoot:c.projectRoot}:{}})}case"artifact.create":return i.artifacts.create(em(e.params));case"artifact.get":return i.artifacts.get(G(e.params,"artifactId"));case"artifact.delete":return i.artifacts.delete(G(e.params,"artifactId"));case"agentRegistrations.list":return _t(n),Ct(i),i.admin.agentRegistrations.list();case"agentRegistrations.upsert":{_t(n),Ct(i);let c=O(e.params);return i.admin.agentRegistrations.upsert(O(c.registration),{expectedConfigurationRevision:Gr(c),expectedManagementOwner:Jr(c)})}case"agentRegistrations.setEnabled":{_t(n),Ct(i);let c=O(e.params),w=ue(c,"claimOwner");if(w!==void 0&&w.length===0)throw K("invalid_request","Expected non-empty optional string param: claimOwner");return i.admin.agentRegistrations.setEnabled(j(c,"agentId"),am(c,"enabled"),{expectedConfigurationRevision:Gr(c),expectedManagementOwner:Jr(c),...w?{claimOwner:w}:{}})}case"agentRegistrations.remove":_t(n),Ct(i);{let c=O(e.params);return i.admin.agentRegistrations.remove(j(c,"agentId"),{expectedConfigurationRevision:Gr(c),expectedManagementOwner:Jr(c)})}case"agents.listDispatchable":return i.agents.listDispatchable(O(e.params));case"agents.describe":{let c=O(e.params);return i.agents.describe(j(c,"agentId"),O(c.query))}case"agents.preflight":return i.agents.preflight(O(e.params));case"agents.tree":return i.agents.tree(G(e.params,"sessionId"));case"agents.detail":{let c=O(e.params);return i.agents.detail(j(c,"sessionId"),j(c,"actorPath"))}case"agents.spawn":{let c=O(e.params);return i.agents.spawn(j(c,"sessionId"),O(c.input))}case"agents.send":{let c=O(e.params),w=ue(c,"classification");if(w!==void 0&&w!=="public"&&w!=="internal"&&w!=="sensitive")throw K("invalid_params","Invalid Agent message classification.");return await i.agents.send(j(c,"sessionId"),j(c,"actorPath"),j(c,"content"),w),{ok:!0}}case"agents.followup":{let c=O(e.params),w=Be(c,"expectedRevision");return i.agents.followup(j(c,"sessionId"),j(c,"actorPath"),j(c,"objective"),w===void 0?void 0:{expectedRevision:w})}case"agents.interrupt":{let c=O(e.params);return await i.agents.interrupt(j(c,"sessionId"),j(c,"actorPath"),ue(c,"reason")),{ok:!0}}case"agents.output":{let c=O(e.params);return i.agents.output(j(c,"sessionId"),j(c,"actorPath"),ue(c,"turnId"))}case"agents.events":{let c=O(e.params);return i.agents.events(j(c,"sessionId"),Be(c,"afterSequence"))}case"agents.wait":{let c=O(e.params);return i.agents.wait(j(c,"sessionId"),Be(c,"afterSequence"),Be(c,"timeoutMs"))}case"session.create":return i.sessions.create(Z(e.params));case"session.load":return i.sessions.load(G(e.params,"sessionId"));case"session.list":return i.sessions.list(Z(e.params));case"session.transcript":{let c=await i.sessions.transcript(G(e.params,"sessionId"));if(c!==null&&Buffer.byteLength(JSON.stringify(c),"utf8")>Cl)throw K("invalid_request","Transcript is too large for the legacy endpoint; use session.transcript.page and session.transcript.entryChunk.");return c}case"session.transcript.page":return i.sessions.transcriptPage(O(e.params));case"session.transcript.entryChunk":return i.sessions.transcriptEntryChunk(O(e.params));case"session.transcript.search":return i.sessions.transcriptSearch(O(e.params));case"session.observe":{let c=Vr(),w=await i.sessions.observe(G(e.params,"sessionId"),P=>a(c,zr(P,l)));return r(c,w),{subscriptionId:c,snapshot:Ul(w.snapshot,l)}}case"session.fork":return i.sessions.fork(O(e.params));case"session.notice.append":return i.sessions.appendNotice(O(e.params));case"session.rewind":return i.sessions.rewind(O(e.params));case"session.active_entry.set":case"session.activeEntry.set":return i.sessions.setActiveEntry(O(e.params));case"session.compact":return i.sessions.compact(O(e.params));case"session.archive":return await i.sessions.archive(G(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await i.sessions.unarchive(G(e.params,"sessionId")),{ok:!0};case"session.delete":return await i.sessions.delete(G(e.params,"sessionId")),{ok:!0};case"session.settings.get":return i.sessions.getSettings(G(e.params,"sessionId"));case"session.settings.getVersioned":return i.sessions.getSettingsVersioned(G(e.params,"sessionId"));case"session.autoMode.getStats":return i.sessions.getAutoModeStats(G(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw K("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let c=O(e.params);return i.sessions.updateSettings(j(c,"sessionId"),O(c.patch))}case"session.settings.updateVersioned":{let c=O(e.params);return i.sessions.updateSettingsVersioned(j(c,"sessionId"),O(c.patch),{expectedRevision:Ot(c,"expectedRevision")})}case"run.start":{let c=O(e.params),w=j(c,"sessionId"),P=`run_${Date.now().toString(36)}_${Dn().replace(/-/g,"").slice(0,8)}`,R=await ga({params:c,sessionId:w,trustedRunId:P,principalId:u,clientName:p,clientVersion:f,operationId:e.operation?.operationId,reverseBridge:v}),I=await i.runs.start(R);return t.remember(I.runId,I.result),{runId:I.runId,sessionId:I.sessionId,...I.turnId!==void 0?{turnId:I.turnId}:{}}}case"run.input.submit":{let c=O(e.params),w=j(c,"sessionId"),P=j(c,"afterRunId"),R=j(c,"delivery"),I=await i.runs.get(P);if(I.sessionId!==w)throw K("conflict",`Runtime continuation target ${P} does not belong to session ${w}.`);if(!Hl(I.phase))return{accepted:!1,delivery:R,sessionId:w,afterRunId:P,reason:"stale_run"};if(R==="interrupt"){if(I.phase==="queued")return{accepted:!1,delivery:R,sessionId:w,afterRunId:P,reason:"stale_run"};if(c.credential!==void 0||c.hostTools!==void 0)throw K("invalid_params","Interrupt input cannot replace active-run credential or host-tool bindings.");let h=`input_${Date.now().toString(36)}_${Dn().replace(/-/g,"").slice(0,8)}`;return i.runs.submitInput({...c,sessionId:w,afterRunId:P,delivery:"interrupt",trustedInputId:h,origin:{principalId:u,...p!==void 0?{clientName:p}:{},...f!==void 0?{clientVersion:f}:{},...e.operation?.operationId!==void 0?{operationId:e.operation.operationId}:{}}})}let k=`run_${Date.now().toString(36)}_${Dn().replace(/-/g,"").slice(0,8)}`,x=await ga({params:c,sessionId:w,trustedRunId:k,principalId:u,clientName:p,clientVersion:f,operationId:e.operation?.operationId,reverseBridge:v}),g=await i.runs.submitInput(x);if(g.accepted&&g.delivery==="after_turn"){let h=i.runs.await(g.runId);t.remember(g.runId,h)}return g}case"run.get":return dn(await i.runs.get(G(e.params,"runId")),l);case"run.list":return(await i.runs.list(Z(e.params))).map(c=>dn(c,l));case"run.await":{let c=G(e.params,"runId"),w=t.get(c);return w||i.runs.await(c)}case"run.abort":return await i.runs.abort(G(e.params,"runId")),{ok:!0};case"run.model.set":return ha(i,e.params);case"run.setModel":return ha(i,e.params);case"run.provider.set":{let c=O(e.params);return await i.runs.setProvider(j(c,"runId"),j(c,"provider")),{ok:!0}}case"run.setProvider":{let c=O(e.params);return await i.runs.setProvider(j(c,"runId"),j(c,"provider")),{ok:!0}}case"run.reasoning.set":return Sa(i,e.params);case"run.setReasoning":return Sa(i,e.params);case"event.subscribe":{let c=Z(e.params)??{},w=Z(c.filter);await an(i,w?.sessionId);let P=Vr(),R=i.events.subscribe(w??{},I=>{a(P,zr(I,l))});return r(P,R),{subscriptionId:P}}case"event.unsubscribe":return{ok:s(G(e.params,"subscriptionId"))};case"event.replay":{let c=Z(e.params);return await an(i,c?.sessionId),Bl(await i.events.replay(c),d()).map(w=>zr(w,l))}case"permission.list":case"permission.listPending":{let c=Z(e.params);return await an(i,c?.sessionId),i.permissions.listPending(c)}case"permission.request":{let c=O(e.params);return await an(i,c.sessionId),i.permissions.request(c)}case"permission.respond":{let c=O(e.params),w=ue(c,"runId");return i.permissions.respond(j(c,"requestId"),O(c.decision),w!==void 0?{runId:w}:void 0)}case"permission.grants.list":return i.permissions.listGrants();case"permission.grants.revoke":{let c=O(e.params);return i.permissions.revokeGrant(j(c,"grantId"),Ot(c,"expectedRevision"))}case"user_input.listPending":{let c=Z(e.params);return await an(i,c?.sessionId),i.userInputs.listPending(c)}case"user_input.respond":{let c=O(e.params),w=Be(c,"expectedRevision"),P=ue(c,"runId");return i.userInputs.respond(j(c,"requestId"),c.answer,w!==void 0||P!==void 0?{...w!==void 0?{expectedRevision:w}:{},...P!==void 0?{runId:P}:{}}:void 0)}case"user_input.dismiss":{let c=O(e.params),w=Be(c,"expectedRevision"),P=ue(c,"runId");return i.userInputs.dismiss(j(c,"requestId"),w!==void 0||P!==void 0?{...w!==void 0?{expectedRevision:w}:{},...P!==void 0?{runId:P}:{}}:void 0)}case"credential.register":{let c=O(e.params);return v.registerCredential({leaseId:j(c,"leaseId"),providers:im(c,"providers"),...ue(c,"expiresAt")!==void 0?{expiresAt:ue(c,"expiresAt")}:{}})}case"credential.get":return v.getCredential(G(e.params,"leaseId"));case"credential.revoke":return v.revokeCredential(G(e.params,"leaseId"));case"credential.supply":{let c=O(e.params);return{ok:v.supplyCredential({requestId:j(c,"requestId"),...ue(c,"credential")!==void 0?{credential:ue(c,"credential")}:{},...ue(c,"error")!==void 0?{error:ue(c,"error")}:{}})}}case"host_tool.register":{let c=O(e.params);return v.registerHostTools({leaseId:j(c,"leaseId"),tools:om(c.tools)})}case"host_tool.get":return v.getHostTools(G(e.params,"leaseId"));case"host_tool.invocation.get":return v.getHostToolInvocation(G(e.params,"invocationId"));case"host_tool.revoke":return v.revokeHostTools(G(e.params,"leaseId"));case"host_tool.complete":{let c=O(e.params);return{ok:v.completeHostTool({invocationId:j(c,"invocationId"),...c.result!==void 0?{result:O(c.result)}:{},...ue(c,"error")!==void 0?{error:ue(c,"error")}:{}})}}case"workflow.list":return i.workflows.list(Z(e.params));case"workflow.get":return i.workflows.get(G(e.params,"runId"));case"workflow.subscribe":{let c=Z(e.params)??{},w=Z(c.filter),P=Vr(),R=i.workflows.subscribe(w??{},I=>{a(P,I)});return r(P,R),{subscriptionId:P}}case"workflow.unsubscribe":return{ok:s(G(e.params,"subscriptionId"))};case"workflow.pause":return i.workflows.pause(G(e.params,"runId"));case"workflow.resume":return i.workflows.resume(G(e.params,"runId"));case"workflow.stop":return i.workflows.stop(G(e.params,"runId"));case"learning.list":return Le(i.learning,u).list(Z(e.params));case"learning.get":return Le(i.learning,u).get(G(e.params,"nameOrSlug"));case"learning.snapshot":return Le(i.learning,u).getSnapshot();case"learning.events":return Le(i.learning,u).events(Be(Z(e.params)??{},"afterRevision"));case"learning.acknowledge":return await Le(i.learning,u).acknowledge(G(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let c=O(e.params);return await Le(i.learning,u).snooze(j(c,"nameOrSlug"),j(c,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let c=Le(i.learning,u),w=G(e.params,"nameOrSlug");return e.method==="learning.reject"?await c.reject(w):e.method==="learning.disable"?await c.disable(w):e.method==="learning.rollback"?await c.rollback(w):e.method==="learning.review"?await c.review(w):await c.trust(w),{ok:!0}}case"learning.promote":{let c=O(e.params),w=j(c,"scope");if(w!=="user")throw K("invalid_params","Learning promotion scope must be user.");return await Le(i.learning,u).promote(j(c,"nameOrSlug"),w),{ok:!0}}case"context.budget.get":return ya(d()),await an(i,ue(Z(e.params)??{},"sessionId")),wa(i,"context.budget.snapshot",Z(e.params));case"tool.exposure.preview":return ya(d()),await an(i,ue(Z(e.params)??{},"sessionId")),wa(i,"tool.exposure.planned",Z(e.params));default:throw K("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}o($l,"dispatchRuntimeDaemonRequest");async function ga(e){let n=Z(e.params.credential),t=Z(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:j(n,"leaseId"),provider:j(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),s=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:j(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),a=mn(),d=s===void 0?void 0:a===null?s:sm(s,a),u=Z(e.params.options)??{};return{...e.params,sessionId:e.sessionId,trustedRunId:e.trustedRunId,origin:{principalId:e.principalId,...e.clientName!==void 0?{clientName:e.clientName}:{},...e.clientVersion!==void 0?{clientVersion:e.clientVersion}:{},...e.operationId!==void 0?{operationId:e.operationId}:{}},...r!==void 0?{providerCredential:r}:{},...n!==void 0?{providerCredentialProvider:j(n,"provider")}:{},...d!==void 0?{options:{...u,extensionRuntime:d}}:{}}}o(ga,"bindTrustedRunInput");function Hl(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"}o(Hl,"isActiveRuntimeRunPhase");function Kl(e){return fe(e)?{...e.richEvents===!0?{richEvents:!0}:{},...e.permissionPrompts===!0?{permissionPrompts:!0}:{},...e.configAdmin===!0?{configAdmin:!0}:{},...e.commandCatalog===!0?{commandCatalog:!0}:{},...e.skillCatalog===!0?{skillCatalog:!0}:{},...e.artifactUpload===!0?{artifactUpload:!0}:{},...e.contextDiagnostics===!0?{contextDiagnostics:!0}:{},...e.operationDeduplication===!0?{operationDeduplication:!0}:{}}:{}}o(Kl,"parseRuntimeClientCapabilities");function Ra(e={},n=!1,t=!1,r=!1,s,a=!1,d=!1,u=!1){let p={...e};delete p.externalAgents,delete p.externalAgentAdmin,delete p.a2aConfigReconciler,delete p.actorControlPlane,delete p.runtimeAutoModeGuardrail;let f=Ur();return{events:!0,permissions:!0,workflows:!0,configAdmin:!0,commandCatalog:!0,skillCatalog:!0,artifactUpload:!0,contextDiagnostics:!0,hardDispose:!1,externalAgents:n,actorControlPlane:{version:1,methodNamespace:"agents"},runtimeAutoModeGuardrail:{version:3,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!0,defaultClassifierTimeoutMs:at,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...t?{externalAgentAdmin:{version:1,activation:!0,conditionalMutations:!0,managementOwner:!0}}:{},...r?{a2aConfigReconciler:{version:1}}:{},...s!==void 0?{operationDeduplication:{version:1,retentionMs:Number.MAX_SAFE_INTEGER},journalEpoch:s.journalEpoch,controlHealth:s.health}:{},sessionObservation:{version:1,maxBufferedEvents:256},sessionAdmission:{version:1,surfaces:_l,legacySurface:!0,partnerDenied:!0},completeObservationSnapshot:{version:1,transcriptRevision:!0,managedTasks:!0,queuedInputs:!0},connectionLifecycle:{version:1},typedRuntimeEvents:{version:1},daemonSafeRunInput:{version:1},...u?{daemonManagement:{version:1,logicalClientCount:!0,revisionedStop:!0,ownerPolicy:!0,ownerFenceState:!0,reverseBridgeDrainingFence:!0,backgroundWorkPreflight:!0}}:{},sharedSessionSettings:{version:1,keys:["provider","model","effort","thinking","reasoningMode","permissionMode","executionCwd","agentMode","autoModeEngine","autoModeClassifierModel","autoModeTimeoutMs","autoModeSpeculativeWindowMs"]},...s!==void 0?{durableRecoveryQueries:{version:1,operationResult:!0,hostToolInvocation:d,permissionGrants:!0,daemonPreflight:!0,terminalAcknowledgement:!1,terminalAcknowledgementOwner:"client"}}:{},afterTurnInput:{version:1},interruptInput:{version:1,availability:"per_run"},contextCompaction:{version:3,alwaysOn:!0,absoluteThreshold:!0,contextIdentity:!0,canonicalFinishedEvent:!0,durableBeforeEvict:!0,exactHistoryRecovery:!0},transcriptPaging:{version:1,maxPageBytes:512*1024},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},learningCenter:{version:1},askUserTransport:{version:1},permissionCas:{version:1},providerCredentialBroker:{version:1,registrationConnectionBound:!a,stableClientResume:a,runtimeRestartExpiresLease:!0,acquiredCredentialSurvivesDisconnect:!0,requestTimeoutMs:f.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!a,stableClientResume:a,invocationStatusQuery:a,invocationReplay:!1,invocationTimeoutMs:f.callTimeoutMs,maxResultBytes:f.maxResultBytes},coderOwnerFencing:{version:1},crashOutcomeModel:{version:1},coderFeatureMatrix:{version:1,managedRun:!0,transcriptSessions:!0,todoProjection:!0,managedTasks:!0,workflow:!0,mcp:!0,referenceExternalAgent:n,memory:!0,runtimeArtifacts:!0},...p}}o(Ra,"runtimeDaemonCapabilities");function Xl(e){return e?{...e}:{}}o(Xl,"publicOperationReceipt");function Ct(e){if(!e.agents.enabled)throw K("method_not_found","Runtime external agent executor plane is not enabled.")}o(Ct,"requireExternalAgentsEnabled");function _t(e){if(e.allowAgentRegistrationAdmin!==!0)throw K("permission_denied","Runtime daemon host denied Agent registration administration.")}o(_t,"requireAgentRegistrationAdmin");function Bl(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!Ea(t))}o(Bl,"filterReplayForClientCapabilities");async function an(e,n){n!==void 0&&await e.sessions.transcript(n)}o(an,"assertAdmittedSessionId");function Ul(e,n){return{...e,runs:e.runs.map(t=>dn(t,n))}}o(Ul,"augmentObservationRunRequirements");function Wl(e,n){return!fe(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>Pa(t)?dn(t,n):t)}}o(Wl,"augmentStatusRunRequirements");function zl(e,n){return{...e,activeRuns:e.activeRuns.map(t=>dn(t,n)),queuedRuns:e.queuedRuns.map(t=>dn(t,n))}}o(zl,"augmentPreflightRunRequirements");function zr(e,n){return Pa(e.payload)?{...e,payload:dn(e.payload,n)}:e}o(zr,"augmentRuntimeEventRequirements");function dn(e,n){let t=n?.getRunRequirements(e.runId);return t===void 0?e:Gl(e.phase)?{...e,requirements:{...t.credential!==void 0?{credential:{...t.credential,state:"terminal"}}:{},...t.hostTools!==void 0?{hostTools:{...t.hostTools,state:"terminal"}}:{}}}:{...e,requirements:t}}o(dn,"augmentRunRequirements");function Pa(e){return fe(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}o(Pa,"isRuntimeRunStatus");function Gl(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(Gl,"isTerminalRuntimeRunPhase");function ya(e){if(e.contextDiagnostics!==!0)throw K("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}o(ya,"requireContextDiagnosticsCapability");function Ea(e){return fe(e)?e.type==="context.budget.snapshot"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}o(Ea,"isContextDiagnosticRuntimeEvent");async function wa(e,n,t){let r=t??{},s={type:n,limit:100,...typeof r.sessionId=="string"?{sessionId:r.sessionId}:{},...typeof r.runId=="string"?{runId:r.runId}:{}};return(await e.events.replay(s)).at(-1)?.payload??null}o(wa,"latestRuntimeDiagnosticPayload");async function ha(e,n){let t=O(n);return await e.runs.setModel(j(t,"runId"),ue(t,"model")),{ok:!0}}o(ha,"setRunModel");async function Sa(e,n){let t=O(n);return await e.runs.setReasoning(j(t,"runId"),ue(t,"reasoning")),{ok:!0}}o(Sa,"setRunReasoning");function Jl(e,n){let t=Array.isArray(e)?e:[],r=typeof n?.provider=="string"?n.provider:void 0;if(r!==void 0){let s=t.find(a=>fe(a)&&a.name===r);return fe(s)?{provider:r,models:Array.isArray(s.models)?s.models:[]}:{provider:r,models:[]}}return t.flatMap(s=>!fe(s)||typeof s.name!="string"?[]:[{provider:s.name,models:Array.isArray(s.models)?s.models:[]}])}o(Jl,"listRuntimeModels");function Qr(e){return Array.isArray(e)?e.map(n=>Qr(n)):fe(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Vl(n)?"[redacted]":Qr(t)])):e}o(Qr,"redactRuntimeConfig");function Vl(e){let n=e.toLowerCase();return n.includes("apikey")||n.includes("api_key")||n==="key"||n.endsWith("key")||n.includes("token")||n.includes("secret")||n.includes("password")}o(Vl,"isSensitiveConfigKey");function Z(e){if(e!==void 0)return O(e)}o(Z,"optionalRecord");function xa(e,n){return O(e[n])}o(xa,"requireRecordField");function Ql(e){let n=Z(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}o(Ql,"parseModelListFilter");function Yl(e){let n=Z(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}o(Yl,"parseMcpToolListFilter");function Zl(e){let n=Z(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}o(Zl,"parseSkillListFilter");function em(e){let n=O(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw K("invalid_request","Expected artifact kind: image | file | video");let r=j(n,"path");return{kind:t,path:r,...typeof n.mediaType=="string"?{mediaType:n.mediaType}:{},...typeof n.mimeType=="string"?{mimeType:n.mimeType}:{},...typeof n.name=="string"?{name:n.name}:{},...nm(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}o(em,"parseArtifactCreateInput");function nm(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}o(nm,"isRuntimeArtifactSource");function tm(e){return fe(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}o(tm,"parseRuntimeClientName");function rm(e){return fe(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}o(rm,"parseRuntimeClientVersion");function im(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw K("invalid_request",`Expected string array param: ${n}`);return t}o(im,"requireStringArrayField");function om(e){if(!Array.isArray(e))throw K("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=O(n),r=j(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw K("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:j(t,"name"),description:j(t,"description"),inputSchema:xa(t,"inputSchema"),sideEffect:r}})}o(om,"parseRuntimeHostToolDescriptors");function sm(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,s){let[a,d]=await Promise.all([e.searchCapabilities(t,r,s),n.searchCapabilities(t,r,s)]),u=[...a,...d];return u.slice(0,s?.limit??u.length)},async describeCapability(t,r){return r.startsWith("host:")?e.describeCapability(t,r):n.describeCapability(t,r)},executeCapability(t,r,s){return r.startsWith("host:")?e.executeCapability(t,r,s):n.executeCapability(t,r,s)},readCapability(t,r,s){return n.readCapability(t,r,s)},getCapabilityPrompt(t,r,s){return n.getCapabilityPrompt(t,r,s)},getCapabilityPromptContext(t){return n.getCapabilityPromptContext(t)},...n.getDefaults!==void 0?{getDefaults:o(()=>n.getDefaults(),"getDefaults")}:{},...n.bindController!==void 0?{bindController:o(t=>n.bindController(t),"bindController")}:{},...n.hydrateSession!==void 0?{hydrateSession:o(t=>n.hydrateSession(t),"hydrateSession")}:{}}}o(sm,"mergeExtensionRuntimeContracts");function fe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(fe,"isRecord");function O(e){if(!e||typeof e!="object"||Array.isArray(e))throw K("invalid_request","Expected params to be an object.");return e}o(O,"requireRecord");function G(e,n){return j(O(e),n)}o(G,"requireStringParam");function j(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw K("invalid_request",`Expected string param: ${n}`);return t}o(j,"requireStringField");function am(e,n){let t=e[n];if(typeof t!="boolean")throw K("invalid_request",`Expected boolean param: ${n}`);return t}o(am,"requireBooleanField");function ue(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw K("invalid_request",`Expected optional string param: ${n}`);return t}}o(ue,"optionalStringField");function Gr(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw K("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}o(Gr,"optionalExpectedConfigurationRevision");function Jr(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw K("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}o(Jr,"optionalExpectedManagementOwner");function Be(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw K("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}o(Be,"optionalIntegerField");function Ot(e,n){let t=Be(e,n);if(t===void 0)throw K("invalid_request",`Expected non-negative integer param: ${n}`);return t}o(Ot,"requireIntegerField");function K(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}o(K,"daemonError");function Vr(){return`sub_${Dn().replace(/-/g,"").slice(0,12)}`}o(Vr,"createSubscriptionId");function va(e,n,t,r){let s=xn(Mt[e][n],t,n);if(s.length!==0)throw K(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:s})}o(va,"validateDaemonMethodValue");function dm(e,n){return n===void 0?null:e!=="run.await"||!fe(n)||!(n.error instanceof Error)?n:{...n,error:{name:n.error.name,message:n.error.message,...n.error.stack!==void 0?{stack:n.error.stack}:{}}}}o(dm,"serializeRuntimeDaemonMethodResult");function um(e){if(e instanceof Error&&"code"in e&&e.code==="revision_conflict"){let n=e;return{code:"conflict",message:e.message,data:{conflict:"revision_conflict",expectedRevision:n.expectedRevision,currentRevision:n.currentRevision}}}if(e instanceof Hi)return{code:"conflict",message:e.message,data:{agentId:e.agentId,conflict:e.code}};if(e instanceof Error){let n=e;return{code:typeof n.code=="string"&&cm(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}o(um,"normalizeRuntimeDaemonError");function cm(e){return e==="invalid_frame"||e==="invalid_request"||e==="invalid_params"||e==="not_initialized"||e==="method_not_found"||e==="unauthorized"||e==="permission_denied"||e==="conflict"||e==="not_found"||e==="session_not_admitted"||e==="cancelled"||e==="overloaded"||e==="client_upgrade_required"||e==="operation_required"||e==="operation_epoch_mismatch"||e==="operation_id_reuse"||e==="operation_interrupted"||e==="operation_unknown"||e==="control_history_untrusted"||e==="credential_unavailable"||e==="host_tool_unavailable"||e==="host_tool_unknown"||e==="internal_error"}o(cm,"isRuntimeDaemonErrorCode");import{createHash as lm,randomUUID as Aa}from"node:crypto";import*as re from"node:fs";import Da from"node:path";var De=class extends Error{static{o(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function Ma(e){re.mkdirSync(e.rootDir,{recursive:!0});let n=Da.join(e.rootDir,"journal-meta.json"),t=Da.join(e.rootDir,"control.jsonl"),r=hm(n),s=r.meta,a=wm(t),d=a.records,u=new Map,p=a.trusted&&r.trusted?"healthy":"control_history_untrusted";return p==="healthy"&&ym(d,t),{journalEpoch:s.journalEpoch,get health(){return p},execute(f,v,i){if(p!=="healthy")return Promise.reject(new De("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{Rm(f,s.journalEpoch);let l=vm(f.params),c=d.get(f.operationId);if(c){gm(c,f,l);let P=u.get(f.operationId);return P||fm(c)}let w=mm(t,d,f,l,v.externalEffect===!0,i,()=>{p="control_history_untrusted"});return u.set(f.operationId,w),w.finally(()=>u.delete(f.operationId)).catch(()=>{}),w}catch(l){return Promise.reject(l)}},get(f){return d.get(f)}}}o(Ma,"createRuntimeControlJournal");async function mm(e,n,t,r,s,a,d){let u=pm(t,r,"accepted");Ca(e,u),n.set(t.operationId,u),s&&Nt(e,n,u,"dispatched");let p;try{p=await a()}catch(f){let v=Im(f);try{Nt(e,n,u,"rejected",{error:v})}catch{d()}throw f}try{return Nt(e,n,u,"applied",{result:p}).result}catch{throw d(),n.set(t.operationId,{...u,state:"unknown",updatedAt:new Date().toISOString()}),new De("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}o(mm,"executeNewOperation");function Nt(e,n,t,r,s={}){let a={type:"operation",...t,state:r,...s,updatedAt:new Date().toISOString()};return Ca(e,a),n.set(a.operationId,a),a}o(Nt,"updateOperation");function pm(e,n,t){return{type:"operation",operationId:e.operationId,journalEpoch:e.journalEpoch,principalId:e.principalId,method:e.method,...e.resourceId!==void 0?{resourceId:e.resourceId}:{},requestDigest:n,state:t,updatedAt:new Date().toISOString()}}o(pm,"operationRecord");function fm(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new De(e.error?.code??"operation_rejected",e.error?.message??"Runtime operation was rejected."));let n=e.state==="unknown"?"operation_unknown":"operation_interrupted";return Promise.reject(new De(n,`Runtime operation is ${e.state}; it will not be replayed.`))}o(fm,"replayOperation");function gm(e,n,t){if(!(e.journalEpoch===n.journalEpoch&&e.principalId===n.principalId&&e.method===n.method&&e.resourceId===n.resourceId&&e.requestDigest===t))throw new De("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}o(gm,"assertMatchingOperation");function Rm(e,n){if(e.journalEpoch!==n)throw new De("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new De("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new De("invalid_operation","Runtime operation identity is incomplete.")}o(Rm,"validateOperationInput");function ym(e,n){for(let t of[...e.values()])t.state!=="accepted"&&t.state!=="dispatched"||Nt(n,e,t,t.state==="dispatched"?"unknown":"interrupted")}o(ym,"recoverUnfinished");function wm(e){let n=new Map;if(!re.existsSync(e))return{trusted:!0,records:n};let t=re.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let s=JSON.parse(r);if(!bm(s))return{trusted:!1,records:n};n.set(s.operationId,s)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}o(wm,"loadOperationRecords");function hm(e){if(re.existsSync(e)){try{let t=JSON.parse(re.readFileSync(e,"utf8"));if(km(t))return{meta:t,trusted:!0}}catch{}return{meta:Ta(),trusted:!1}}let n=Ta();return Sm(e,n),{meta:n,trusted:!0}}o(hm,"loadOrCreateMeta");function Ta(){return{version:1,journalEpoch:`je_${Aa().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}o(Ta,"createJournalMeta");function Ca(e,n){let t=`${JSON.stringify(n)}
66
66
  `,r=re.openSync(e,"a",384);try{re.writeFileSync(r,t,"utf8"),re.fsyncSync(r)}finally{re.closeSync(r)}}o(Ca,"appendRecord");function Sm(e,n){let t=`${e}.${process.pid}.${Aa()}.tmp`,r=re.openSync(t,"wx",384);try{re.writeFileSync(r,`${JSON.stringify(n,null,2)}
67
- `,"utf8"),re.fsyncSync(r)}finally{re.closeSync(r)}re.renameSync(t,e)}o(Sm,"writeJsonAtomic");function vm(e){return lm("sha256").update(Zr(e)).digest("hex")}o(vm,"digestCanonical");function Zr(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new De("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(Zr).join(",")}]`;if(e&&typeof e=="object"){let n=e;return`{${Object.keys(n).sort().filter(r=>n[r]!==void 0).map(r=>`${JSON.stringify(r)}:${Zr(n[r])}`).join(",")}}`}throw new De("invalid_operation","Operation contains a non-JSON value.")}o(Zr,"canonicalJson");function Im(e){if(!(e instanceof Error))return{code:"operation_rejected",message:String(e)};let n=e;return{code:typeof n.code=="string"?n.code:"operation_rejected",message:e.message}}o(Im,"normalizeOperationError");function km(e){return _a(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}o(km,"isJournalMeta");function bm(e){return _a(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&Pm(e.state)&&typeof e.updatedAt=="string":!1}o(bm,"isOperationRecord");function Pm(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}o(Pm,"isOperationState");function _a(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}o(_a,"isRecord");function Oa(e){return new ei(e)}o(Oa,"createRuntimeDaemonManagementController");var ei=class{constructor(n){this.input=n;this.runtimeEvents=n.runtime.events.subscribe({},()=>{this.revision+=1})}input;static{o(this,"DaemonManagementController")}clients=new Set;runtimeEvents;revision=0;activeMutations=0;activeMutationMethods=new Map;draining=!1;closed=!1;preflightFingerprint;attachClient(n){if(this.draining||this.closed)throw Ie("conflict","Runtime daemon is draining and cannot attach another client.");this.clients.has(n)||(this.clients.add(n),this.revision+=1)}detachClient(n){this.clients.delete(n)&&(this.revision+=1)}async runMutation(n,t){if(this.draining||this.closed)throw Ie("conflict","Runtime daemon is draining and rejects new mutations.");this.activeMutations+=1,this.activeMutationMethods.set(n,(this.activeMutationMethods.get(n)??0)+1),this.revision+=1;try{return await t()}finally{this.activeMutations-=1;let r=(this.activeMutationMethods.get(n)??1)-1;r===0?this.activeMutationMethods.delete(n):this.activeMutationMethods.set(n,r)}}async preflight(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.input.runtime.status.preflight();if(this.observePreflight(r),t===this.revision&&this.activeMutations===0)return Em(r,this.clients.size)}throw Ie("conflict","Runtime state changed while daemon preflight was being read.")}async inspect(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.preflight();if(t!==this.revision)continue;let s=te(this.input.paths.lockFile);if(s===void 0||s.runtimeId!==this.input.runtime.identity.runtimeId||s.kind!=="daemon")throw Ie("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:Ee(this.input.paths),owner:s,preflight:r}}throw Ie("conflict","Runtime state changed while daemon management was inspected.")}async stop(){this.beginDraining();try{return await this.assertStoppable(),this.input.requestStop(),{ok:!0}}catch(n){throw this.draining=!1,n}}async rollbackToInline(n){if(n.expectedRuntimeId!==this.input.runtime.identity.runtimeId)throw Ie("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=bs(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw Ie("internal_error","Runtime owner rollback did not commit inline mode.");return this.revision+=1,this.input.requestStop(),{accepted:!0,runtimeId:this.input.runtime.identity.runtimeId,revision:this.revision,ownerPolicy:{...t,mode:"inline"}}}catch(t){throw this.draining=!1,t}}close(){this.closed||(this.closed=!0,this.runtimeEvents.close(),this.clients.clear())}beginDraining(n){if(this.closed)throw Ie("conflict","Runtime daemon management is closed.");if(this.draining)throw Ie("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw Ie("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw Ie("conflict",`Runtime daemon has in-flight mutations: ${[...this.activeMutationMethods].map(([t,r])=>`${t} (${r})`).join(", ")}.`);this.draining=!0}async assertStoppable(n){let t=await this.preflight();if(n!==void 0&&this.revision!==n)throw Ie("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw Ie("conflict",`Runtime daemon cannot stop safely: ${t.blockers.join(", ")}.`,{preflight:t})}observePreflight(n){let t=JSON.stringify(n);if(this.preflightFingerprint===void 0){this.preflightFingerprint=t;return}t!==this.preflightFingerprint&&(this.preflightFingerprint=t,this.revision+=1)}};function Em(e,n){let t=e.blockers.filter(r=>r!=="connected_clients");return n>1&&t.push("connected_clients"),{...e,clientCount:n,blockers:t,canStop:t.length===0}}o(Em,"withLogicalClients");function Ie(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}o(Ie,"managementError");async function ja(e){Ce(e.paths);let n=Es();xs(e.paths,n);let t=Lt(e,"starting");vn(e.paths,t),_e(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Ti(I=>{xm(e.paths,I)}),s,a,d=!1,u=o(()=>{if(a===void 0){d=!0;return}a()},"requestStop"),p=Yr(),f=Ma({rootDir:Na.join(e.paths.rootDir,"control")}),v=ca({invocationStateFile:Na.join(e.paths.rootDir,"host-tool-invocations.json")}),i=Oa({runtime:e.runtime,paths:e.paths,requestStop:u}),l;try{s=await Fs({endpoint:e.endpoint,createDispatcher:o(I=>ba({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},allowAgentRegistrationAdmin:!0,notify:I,runResults:p,controlJournal:f,reverseBridgeHub:v,management:i,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:o(()=>({logFile:e.paths.logFile,entries:Ds(e.paths)}),"logs")}),"createDispatcher")}),l=Lt(e,"ready"),vn(e.paths,l),_e(e.paths,"info","Runtime daemon ready.",{runtimeId:l.runtimeId,endpoint:l.endpoint})}catch(I){_e(e.paths,"error","Runtime daemon failed to start.",{error:Te(I).message});let k=!0;try{await s?.close()}catch(x){k=!1,_e(e.paths,"error","Runtime daemon transport cleanup failed.",{error:Te(x).message})}throw i.close(),p.clear(),v.close(),r(),k?await La(e.paths,e.lock):vn(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),I}let c=!1,w,P=new Promise(I=>{w=I}),R=o(async()=>{if(c)return;c=!0;let I=[],k=!1,x=!1;try{try{vn(e.paths,Lt(e,"stopping")),_e(e.paths,"info","Runtime daemon stopping.")}catch(g){I.push(`state transition: ${Te(g).message}`)}try{await s?.close(),k=!0}catch(g){I.push(`transport close: ${Te(g).message}`)}i.close(),v.close(),p.clear();try{await e.runtime.close(),x=!0}catch(g){I.push(`Runtime close: ${Te(g).message}`)}try{_e(e.paths,"info","Runtime daemon stopped.")}catch(g){I.push(`stop log: ${Te(g).message}`)}if(r(),k&&x){let g=await La(e.paths,e.lock),h=te(e.lock.file);!g&&h?.runtimeId===e.lock.owner.runtimeId&&h.pid===e.lock.owner.pid&&h.createdAt===e.lock.owner.createdAt&&I.push("owner release: the daemon still owns its profile lock")}else try{vn(e.paths,{...Lt(e,"unhealthy"),lastError:I.join("; ")})}catch(g){I.push(`unhealthy state: ${Te(g).message}`)}if(I.length>0){try{_e(e.paths,"error","Runtime daemon stopped with cleanup failures.",{failures:I})}catch(g){I.push(`failure log: ${Te(g).message}`)}throw new Error(`Runtime daemon cleanup failed: ${I.join("; ")}`)}}finally{r(),w?.()}},"closeHost");return a=o(()=>{try{_e(e.paths,"info","Runtime daemon stop requested.")}catch(k){oe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:Te(k)})}setTimeout(()=>{R().catch(k=>{oe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:Te(k)})})},0).unref?.()},"scheduleStop"),d&&a(),{endpoint:e.endpoint,state:l,closed:P,unref(){s?.unref()},close:R}}o(ja,"startRuntimeDaemonHost");async function La(e,n){for(let t=0;t<50;t+=1){try{if(Ms(e,n))return!0}catch(s){oe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:Te(s)})}let r=te(n.file);if(r===void 0||r.runtimeId!==n.owner.runtimeId||r.pid!==n.owner.pid||r.createdAt!==n.owner.createdAt||r.kind!==n.owner.kind)return!1;await new Promise(s=>{setTimeout(s,10)})}try{_e(e,"error","Runtime daemon ownership release timed out.")}catch(t){oe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:Te(t)})}return!1}o(La,"releaseHostOwnership");function xm(e,n){try{_e(e,n.level==="error"?"error":n.level==="warn"?"warn":"info",`[${n.source}] ${n.message}`,{level:n.level,source:n.source,...n.detail!==void 0?{detail:n.detail}:{}})}catch{}}o(xm,"appendRuntimeDiagnostic");function Lt(e,n){return{runtimeId:e.runtime.identity.runtimeId,profile:e.paths.profile,pid:process.pid,startedAt:e.runtime.identity.startedAt,endpoint:e.endpoint.path,version:e.runtime.identity.version,status:n,configHome:e.paths.configHome}}o(Lt,"createHostState");function Te(e){return e instanceof Error?e:new Error(String(e))}o(Te,"normalizeHostError");async function Fa(e){let n=e.profile??"default",t=Am(e.homeDir),r=ni.resolve(e.configHome??ni.join(t,".kodax")),s=hn(r,n);Pt(s);let a=e.endpoint??En(n,Sn(t,r)),d={runtimeId:`rt_${Dm().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon"},u=await Hr(s,d,e.healthCheck);if(u.kind==="attach"){let p=tn(u.state);return $a(s,p,e.connectTimeoutMs)}if(u.kind==="wait")return Mm(s,a,d,{...e,profile:n});if(u.kind==="unhealthy")throw new Error(`Runtime daemon is ${u.health}; refusing to take ownership.`);return qa(s,a,d,u.lock,e)}o(Fa,"acquireRuntimeDaemonLease");function Am(e){return ni.resolve(e??Tm.homedir())}o(Am,"resolveRuntimeDaemonHomeDir");async function Mm(e,n,t,r){let s=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=s;){let a=await Hr(e,t,r.healthCheck);if(a.kind==="attach")return $a(e,tn(a.state),r.connectTimeoutMs);if(a.kind==="claim")return qa(e,n,t,a.lock,r);if(a.kind==="unhealthy")throw new Error(`Runtime daemon is ${a.health}; refusing to take ownership.`);await _m(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}o(Mm,"waitForDaemonLease");async function qa(e,n,t,r,s){let a,d=!1;try{if(a=await s.createRuntime(t.runtimeId),a.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");d=!0;let u=await ja({runtime:a,paths:e,endpoint:n,lock:r,...s.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{}});try{let p=await je(n,{connectTimeoutMs:s.connectTimeoutMs});return Cm(e,n,p,u)}catch(p){throw await u.close(),p}}catch(u){throw d||Et(r),await a?.close(),u}}o(qa,"createClaimedDaemonLease");async function $a(e,n,t){let r=await je(n,{connectTimeoutMs:t});return{transport:r,endpoint:n,paths:e,ownsHost:!1,async close(){await r.close?.()},async shutdown(){try{await r.request("runtime.shutdown")}finally{await r.close?.()}}}}o($a,"createAttachedLease");function Cm(e,n,t,r){r.unref();let s=!1,a=!1;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,async close(){s||(s=!0,await t.close?.())},async shutdown(){a||(a=!0,await r.close())}}}o(Cm,"createOwnedLease");function _m(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}o(_m,"delay");import{spawn as Om}from"node:child_process";import{existsSync as Nm}from"node:fs";import{fileURLToPath as Lm}from"node:url";import jm from"node:os";import Ae from"node:path";var Ha=1e3,Tn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{o(this,"RuntimeDaemonStartupError")}};async function Ua(e){let n=e.profile??"default",t=Ae.resolve(e.homeDir??jm.homedir()),r=Ae.resolve(e.configHome??Ae.join(t,".kodax")),s=hn(r,n);Pt(s);let a=En(s.profile,Sn(t,r));if(e.endpoint&&e.endpoint.path!==a.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let d=await Tt(s,e.healthCheck),u=Wn(d);if(u==="healthy"&&d.state)return Ka(s,tn(d.state),!1,e);if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let p=await Km({profile:s.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs}),f=await Fm(s,e,p),v=tn(f.state);return Ka(s,v,f.state.pid===p.pid,e)}o(Ua,"acquireRuntimeDaemonProcessLease");async function Ka(e,n,t,r){let s=await je(n,{connectTimeoutMs:r.connectTimeoutMs});return{transport:s,endpoint:n,paths:e,ownsHost:t,async close(){await s.close?.()},async shutdown(){try{await s.request("runtime.shutdown")}finally{await s.close?.()}}}}o(Ka,"connectProcessLease");async function Fm(e,n,t,r=Tt){let s=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let a=await qm(e,n,t,r),d=Wn(a);if(d==="healthy"&&a.state)return a.state.pid===t.pid?t.unref():await t.terminate(),{...a,state:a.state};if(d==="mismatch")throw new Tn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=s-Date.now();if(u<=0)throw Hm(e);await $m(Math.min(Math.max(1,n.pollIntervalMs??100),u),e,t,n.startupSignal)}}catch(a){try{await t.terminate()}catch(d){throw new AggregateError([a,d],"Runtime daemon startup failed and its child process could not be reclaimed.")}throw a}}o(Fm,"waitForHealthyDaemonStartup");async function qm(e,n,t,r){let s=await Vn(Promise.race([r(e,n.healthCheck).then(a=>({kind:"health",observation:a})),t.exit.then(a=>({kind:"exit",exit:a}))]),n.startupSignal);if(s.kind==="exit"){if(ti(e,t))return r(e,n.healthCheck);if(s.exit.code===0&&s.exit.signal===null){let a=Math.min(Ha,n.startupTimeoutMs??Ha),d=Date.now()+a;for(;Date.now()<=d;){let u=await Vn(r(e,n.healthCheck),n.startupSignal);if(Wn(u)!=="missing"||ti(e,t))return u;await Vn(ri(Math.min(n.pollIntervalMs??100,Math.max(1,d-Date.now()))),n.startupSignal)}}throw Wa(s.exit)}return s.observation}o(qm,"observeStartupHealth");async function $m(e,n,t,r){let s=await Vn(Promise.race([ri(e).then(()=>{}),t.exit]),r);if(s!==void 0){if(ti(n,t)){await Vn(ri(e),r);return}throw Wa(s)}}o($m,"waitForStartupPoll");function ti(e,n){let t=te(e.lockFile);return t!==void 0&&t.pid!==n.pid}o(ti,"hasCompetingStartupOwner");function Wa(e){let n=e.signal!==null?`signal ${e.signal}`:`code ${e.code??"unknown"}`;return new Tn(`Runtime daemon child exited before becoming healthy (${n}).`,"child_exit")}o(Wa,"runtimeDaemonExitedEarly");function Hm(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Tn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n}`,"timeout")}o(Hm,"runtimeDaemonStartupTimeout");async function Km(e){let n=zm();Um(n);let t=[...n!==void 0?Gm(process.execArgv,n.endsWith(".ts")):[],...n!==void 0?[n]:[],"daemon","serve","--profile",e.profile,"--home",e.homeDir,"--config-home",e.configHome];e.defaultProvider!==void 0&&t.push("--provider",e.defaultProvider),e.defaultModel!==void 0&&t.push("--model",e.defaultModel),e.sessionsDir!==void 0&&t.push("--sessions-dir",e.sessionsDir),e.permissionTimeoutMs!==void 0&&t.push("--permission-timeout-ms",String(e.permissionTimeoutMs));let r=Ln({args:t,env:Wm({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),s=Om(process.execPath,r.args,{detached:!0,stdio:"ignore",windowsHide:!0,env:r.env}),a=new Promise(d=>{s.once("exit",(u,p)=>d({code:u,signal:p}))});return await new Promise((d,u)=>{s.once("spawn",d),s.once("error",u)}),Xm(s,a)}o(Km,"spawnRuntimeDaemonServeProcess");function Xm(e,n){return{pid:e.pid,exit:n,unref(){e.unref()},async terminate(){if(!(e.exitCode!==null||e.signalCode!==null)&&(await _i(e),!await Bm(n,1e3)))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}o(Xm,"createRuntimeDaemonStartupProcess");async function Bm(e,n){let t;try{return await Promise.race([e.then(()=>!0),new Promise(r=>{t=setTimeout(()=>r(!1),n)})])}finally{t!==void 0&&clearTimeout(t)}}o(Bm,"didExitWithin");function Um(e){if(e!==void 0&&!Nm(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}o(Um,"assertRuntimeDaemonCliEntryAvailable");function Wm(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Ae.join(e.homeDir,".kodax")};return delete n[st],n}o(Wm,"createRuntimeDaemonServeEnvironment");function zm(){if(process.env.KODAX_BUNDLED==="true")return;let e=Lm(import.meta.url);if(e.endsWith(".ts"))return Ae.resolve(Ae.dirname(e),"..","kodax_cli.ts");let n=Ae.dirname(e),t=Ae.basename(n)==="chunks"?Ae.dirname(n):n;return Ae.join(t,"kodax_cli.js")}o(zm,"resolveDaemonCliEntry");function Gm(e,n){let t=[];for(let r=0;r<e.length;r+=1){let s=e[r]??"",a=s.toLowerCase();if(a==="--require"||a==="-r"){let d=e[r+1];d!==void 0&&(Xa(d)&&t.push(s,d),r+=1)}else if(a.startsWith("--require=")){let d=s.slice(10);Xa(d)&&t.push(s)}else(a.startsWith("--max-old-space-size")||a==="--enable-source-maps")&&t.push(s)}return n&&t.push("--import","tsx"),t}o(Gm,"daemonServeExecArgv");function Xa(e){return Ae.resolve(e)===Ae.resolve("scripts","production-env.cjs")}o(Xa,"isKodaXProductionEnvPreload");function ri(e){return new Promise(n=>setTimeout(n,e))}o(ri,"delay");async function Vn(e,n){if(!n)return e;if(n.aborted)throw Ba();let t;try{return await Promise.race([e,new Promise((r,s)=>{t=o(()=>s(Ba()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}o(Vn,"raceRuntimeDaemonStartupStep");function Ba(){return new Tn("Runtime daemon startup cancelled.","cancelled")}o(Ba,"runtimeDaemonStartupCancelled");import{Worker as Jm}from"node:worker_threads";import{existsSync as Vm}from"node:fs";import{basename as Qm,dirname as ii,join as za}from"node:path";import{fileURLToPath as Ga,pathToFileURL as Ja}from"node:url";function Va(e,n={}){let t=Ym(),r=new Jm(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),s=new Map,a=new Set,d=0,u=!1,p=o(i=>{for(let l of s.values())l.reject(i);s.clear()},"rejectPending"),f=o(i=>{u||(u=!0,p(i),a.clear())},"markClosed");return r.on("message",i=>{if(Bn(i)){for(let w of a)w(i);return}if(!Rn(i)&&!yn(i)||!i.id)return;let l=s.get(i.id);if(!l)return;if(s.delete(i.id),Rn(i)){l.resolve(i.result);return}let c=new Error(i.error.message);c.code=i.error.code,i.error.data!==void 0&&(c.data=i.error.data),l.reject(c)}),r.on("error",i=>f(i)),r.on("exit",i=>f(new Error(`Runtime Worker exited with code ${i}.`))),{transport:{request(i,l,c){if(u)return Promise.reject(new Error("Runtime Worker transport is closed."));let w=`worker_${++d}`;return new Promise((P,R)=>{s.set(w,{resolve:P,reject:R});try{r.postMessage(Rt(w,i,l,c))}catch(I){s.delete(w),R(I instanceof Error?I:new Error(String(I)))}})},subscribe(i){return u?{close(){}}:(a.add(i),{close:o(()=>a.delete(i),"close")})},async close(){u||(f(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){u||f(new Error("Runtime Worker terminated.")),await r.terminate()}}}o(Va,"createRuntimeWorkerTransport");function Ym(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return Vm(Ga(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return Ja(za(ii(process.execPath),"runtime-worker.js"));let e=ii(Ga(import.meta.url)),n=Qm(e)==="chunks"?ii(e):e;return Ja(za(n,"runtime-worker.js"))}o(Ym,"resolveRuntimeWorkerUrl");var Ne=class extends Error{constructor(t,r,s){super(t,s);this.preflight=r;this.name="RuntimeDaemonCapabilityUpgradeError"}preflight;static{o(this,"RuntimeDaemonCapabilityUpgradeError")}code="daemon_capability_upgrade_required";capability="runtimeAutoModeGuardrail";recoverable=!0;restartRequired=!0},un=class extends Error{static{o(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function wi(e){let n=F.resolve(e??xd.homedir());return{homeDir:n,configHome:e===void 0?F.resolve(ar):F.join(n,".kodax")}}o(wi,"resolveRuntimeDaemonClientLocation");function _n(e,n="default"){let t=wi(e);return{...t,paths:hn(t.configHome,n)}}o(_n,"resolveRuntimeDaemonClientPaths");function Jy(e={}){let{paths:n}=_n(e.homeDir,e.profile),t=`inline_${Re().replace(/-/g,"")}`,r=Ps(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),s=!1;return{profile:n.profile,ownerId:t,ownerPolicy:Ee(n),close(){s||(s=!0,Et(r))}}}o(Jy,"acquireKodaXInlineOwner");function Vy(e={}){return Ee(_n(e.homeDir,e.profile).paths)}o(Vy,"getKodaXRuntimeOwnerPolicy");function Qy(e={}){let{paths:n}=_n(e.homeDir,e.profile),t=te(n.lockFile);return{profile:n.profile,policy:Ee(n),ownerStatus:t!==void 0?"owned":N.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}o(Qy,"getKodaXRuntimeOwnerState");function Yy(e={}){return kt(_n(e.homeDir,e.profile).paths)}o(Yy,"enableKodaXDaemonOwner");function Zy(e){let{paths:n}=_n(e.homeDir,e.profile);if(te(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return ks(n,e.mode,e.expectedRevision)}o(Zy,"setKodaXRuntimeOwnerMode");var Zm=["provider","model","effort","planModeEffort","thinking","reasoningMode","agentMode","permissionMode","locale","providerModels","extensions","repoIntelligenceMode","repoIntelligenceTrace","verifierLog","stallLog","fallbackProviders","fastProvider","fastModel","deepProvider","deepModel","maxOutputTokens","disablePromptCache","lsp","lspAutoDownload","acpLogLevel","sessionRetentionDays","repoIntelligence","workflow"],ep=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),$t=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{o(this,"RuntimeContinuationStaleError")}},Qa=5*6e4,Ht=1e4,Kt=1e3,Ya=256*1024*1024,np=64*1024,tp=10,Dd=16*1024*1024,rp=Dd/2,ip=128*1024,op=8,Td=512*1024,Za=128*1024,sp=256*1024,ap=50,dp=200,ed=1024,up=new Set(["assistant.delta","thinking.delta","tool.progress","run.progress"]),Ad=new Set(["tool_call","tool_describe"]),cp=new Set(["image","file","video"]);function lp(e,n){let t=F.relative(Ai(),e);return F.isAbsolute(t)||t.startsWith("..")?e:F.join(n,t)}o(lp,"rebaseAgentConfigPath");async function mp(e={}){if(e.daemonHostRuntimeId!==void 0&&e.sharedDaemonHost!==!0)throw new Error("daemonHostRuntimeId is reserved for a claimed shared daemon owner.");if(e.daemonHostRuntimeId!==void 0&&!/^rt_[a-f0-9]{12}$/.test(e.daemonHostRuntimeId))throw new Error("Invalid shared daemon Runtime owner identity.");if(e.isolation!==void 0&&e.isolation!=="inline"&&e.isolation!=="worker")throw new Error(`Unsupported KodaX Runtime isolation: ${String(e.isolation)}`);if(e.mode==="daemon"){if(e.isolation!==void 0)throw new Error("Daemon mode selects its isolation internally and does not accept an isolation option.");if(e.worker!==void 0)throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.externalAgents!==void 0)return pp(e);let b=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return Md({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:b,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:b?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return fp(e);let n={hardDispose:!1,externalAgents:e.externalAgents!==void 0,afterTurnInput:{version:1},interruptInput:{version:1,availability:"per_run"},contextCompaction:{version:3,alwaysOn:!0,absoluteThreshold:!0,contextIdentity:!0,canonicalFinishedEvent:!0,durableBeforeEvict:!0,exactHistoryRecovery:!0},transcriptPaging:{version:1,maxPageBytes:Td},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},learningCenter:{version:1},actorControlPlane:{version:1,methodNamespace:"agents"},runtimeAutoModeGuardrail:{version:3,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!0,defaultClassifierTimeoutMs:at,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};hi(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Re().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.75",isolation:"inline"},r=Xp(e),s=yo(r?{sessionsDir:r}:void 0),a=mf(t.profile,s,e.sharedDaemonHost===!0),d=If(e);Bd(d);let u=Kp(e),p=e.externalAgents?await Ki({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:bo(F.join(u.runtimeDir,"agents"))}):void 0,f=Lp(u),v=Sp(u,f),i=nf(f,e.permissionTimeoutMs??Qa,u),l=Yp(f,e.permissionTimeoutMs??Qa),c=xp(),w=kp(),P=Ap(s,p,e.externalAgents?.defaultContext),R=new Map,I=new Map,k=[...Bf(u.loadRunStatuses())].sort(Si);for(let b of k){let A=b.sessionOrder??(I.get(b.sessionId)??0)+1;I.set(b.sessionId,Math.max(I.get(b.sessionId)??0,A));let _=Vp({...b,acceptedAt:b.acceptedAt??b.startedAt,sessionOrder:A},f,u);R.set(_.runId,Jp(_))}let x=!1,g=o(()=>{if(x)throw new Error("KodaX runtime is closed")},"ensureOpen"),h=Ip({bus:f,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,ensureOpen:g,isClosed:o(()=>x,"isClosed"),artifacts:c,permissions:i,userInputs:l,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:u,runs:R,sessionManager:s,sessionAdmission:a,agentPlane:p,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:P,settingsOwner:v}),D=vp(t,s,f,u,g,b=>[...R.values()].some(A=>A.sessionId===b&&We(A.phase)),v,b=>h.list({sessionId:b}),b=>i.service.listPending({sessionId:b}),b=>h.getAutoModeStats(b),b=>{h.releaseSession(b),i.releaseSession(b)},a),T=e.homeDir?F.join(F.resolve(e.homeDir),".kodax"):ar,C=F.join(e.homeDir?F.resolve(e.homeDir):xd.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),H=Bo({configHome:T,managedWorkspaceRoot:C,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:h,sessions:D,createSkillScriptRunner:o(b=>es({...b,snapshotRoot:F.join(C,"bindings")}),"createSkillScriptRunner")}),m=rs({rootDir:F.join(T,"learned"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[lp(Li(process.cwd()),T)]});return{identity:t,capabilities:n,sessions:D,runs:h,events:f.service,permissions:i.service,userInputs:l.service,credentials:pg(),hostTools:fg(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:w,learning:m,config:bp(g,d),catalog:Pp(g,d),mcp:Ep(g,d),artifacts:c.service,status:_p({identity:t,permissions:i,userInputs:l,runs:R,sessionManager:s,sessionAdmission:a,workflows:w,actors:P}),diagnostics:Op(f.service),admin:Cp(p),agents:Mp(p,H,P,a),async close(){x||(x=!0,h.closeAll("runtime closed"),i.rejectAll("runtime closed"),i.releaseAllSessionGrants(),l.rejectAll("runtime closed"),await P.close("runtime closed"),await p?.close(),f.close())}}}o(mp,"createKodaXRuntime");async function pp(e){let n=e.externalAgents;if(!n)throw new Error("External agent options are required for the hosted daemon.");if(e.daemonTransport!==void 0)throw new Error("External agent factories cannot be installed through an existing daemon transport.");if(e.autoStartDaemon===!1)throw new Error("External agent factories require an in-process daemon host with autoStartDaemon enabled.");let t=e.daemonEndpoint!==void 0?Od(e.daemonEndpoint):void 0,r=wi(e.homeDir),s=await Fa({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:o(a=>mp({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,sharedDaemonHost:!0,daemonHostRuntimeId:a,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!s.ownsHost)throw await s.close(),new Error("External agent factories cannot be installed into an already-running daemon profile; configure its owner or use a unique profile.");try{let a=await Md({profile:e.profile,transport:s.transport,daemonToken:e.daemonToken??Un(s.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),d=!1;return{...a,identity:{...a.identity,isolation:"inline"},async close(){d||(d=!0,await a.close(),s.ownsHost?await s.shutdown():await s.close())}}}catch(a){throw await s.close(),s.ownsHost&&await s.shutdown(),a}}o(pp,"createInProcessExternalAgentDaemon");async function fp(e){let n=e.worker?.shutdownTimeoutMs??2e3;if(!Number.isFinite(n)||n<=0)throw new Error("Runtime Worker shutdownTimeoutMs must be a positive finite number.");let t=Va({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs},e.worker);try{let r=Cn(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),s=Ud(r.identity);hi(r.capabilities,{...e.requirements,hardDispose:!0});let a=St({identity:{...s,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:Cn(r.capabilities)}),d=!1;return{...a,async close(){if(!d){d=!0;try{await gp(t.transport.request("runtime.shutdown"),n)}finally{await t.terminate()}}}}}catch(r){throw await t.terminate(),r}}o(fp,"createWorkerHostedKodaXRuntime");function hi(e,n){if(!n?.hardDispose&&!n?.externalAgents&&n?.externalAgentAdmin===void 0&&n?.a2aConfigReconciler===void 0&&n?.operationDeduplication===void 0&&n?.sessionObservation===void 0&&n?.afterTurnInput===void 0&&n?.learningCenter===void 0&&n?.interruptInput===void 0&&n?.askUserTransport===void 0&&n?.permissionCas===void 0&&n?.providerCredentialBroker===void 0&&n?.runBoundHostTools===void 0&&n?.coderOwnerFencing===void 0&&n?.crashOutcomeModel===void 0&&n?.coderFeatureMatrix===void 0&&n?.sessionAdmission===void 0&&n?.completeObservationSnapshot===void 0&&n?.contextCompaction===void 0&&n?.transcriptPaging===void 0&&n?.transcriptSearch===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.daemonManagement===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=Cn(e);if(n.hardDispose&&t.hardDispose!==!0)throw new Error("Runtime does not support the required hardDispose capability.");if(n.externalAgents&&t.externalAgents!==!0)throw new Error("Runtime does not support the required externalAgents capability.");n.operationDeduplication!==void 0&&nd(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["interruptInput",n.interruptInput],["askUserTransport",n.askUserTransport],["permissionCas",n.permissionCas],["providerCredentialBroker",n.providerCredentialBroker],["runBoundHostTools",n.runBoundHostTools],["coderOwnerFencing",n.coderOwnerFencing],["crashOutcomeModel",n.crashOutcomeModel],["coderFeatureMatrix",n.coderFeatureMatrix],["sessionAdmission",n.sessionAdmission],["completeObservationSnapshot",n.completeObservationSnapshot],["contextCompaction",n.contextCompaction],["transcriptPaging",n.transcriptPaging],["transcriptSearch",n.transcriptSearch],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["daemonManagement",n.daemonManagement],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[s,a]of r)a!==void 0&&nd(t,s,a)}o(hi,"assertRuntimeCapabilities");function nd(e,n,t){let r=e[n];if(!X(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}o(nd,"assertVersionedRuntimeCapability");async function gp(e,n){let t;try{await Promise.race([e,new Promise((r,s)=>{t=setTimeout(()=>s(new Error(`Runtime Worker shutdown timed out after ${n}ms.`)),n),t.unref?.()})])}finally{t!==void 0&&clearTimeout(t)}}o(gp,"settleWithin");async function Md(e={}){return _d(e,!0)}o(Md,"connectKodaXRuntime");function Cd(e,n,t){let r=e[n];return X(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}o(Cd,"hasVersionedRuntimeCapability");async function Rp(e){if(!Cd(e.capabilities,"daemonManagement",1))throw new Ne("The running daemon is too old to perform a fenced in-place upgrade. Stop it manually after all runs and pending interactions finish, then retry.");let n=St({identity:{...e.identity,mode:"daemon",isolation:"process"},transport:e.transport,capabilities:e.capabilities,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{}}),t;try{if(t=await n.daemon.inspect(),!t.preflight.canStop)throw new Ne(`The running daemon needs runtimeAutoModeGuardrail v${e.requiredVersion} but cannot be replaced safely yet: ${t.preflight.blockers.join(", ")}. Finish or cancel that work and retry.`,t.preflight);await n.daemon.stopForInline({expectedRuntimeId:t.runtimeId,expectedRevision:t.revision,expectedOwnerPolicyRevision:t.ownerPolicy.revision})}catch(s){throw s instanceof Ne?s:new Ne("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:s})}finally{let s=!1;await n.close().then(()=>{s=!0}).catch(a=>{oe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:se(a)})}),s||await e.lease.close().catch(a=>{oe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:se(a)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;te(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Ne("The legacy daemon accepted the upgrade stop but did not release its owner fence before timeout. Retry after the daemon exits.");await new Promise(s=>setTimeout(s,50))}}catch(s){try{kt(e.lease.paths)}catch(a){throw new Ne("The legacy daemon upgrade failed and daemon ownership could not be restored automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:new AggregateError([s,a])})}throw s}try{kt(e.lease.paths)}catch(s){throw new Ne("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:s})}}o(Rp,"replaceLegacyRuntimeDaemonForGuardrailUpgrade");async function _d(e,n){td("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),td("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs);let t=e.endpoint!==void 0?Od(e.endpoint):void 0,r=wi(e.homeDir),s=e.transport===void 0&&e.autoStart===!0?await Ua({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,a=t??s?.endpoint??(e.transport===void 0?En(e.profile??"default",Sn(r.homeDir,r.configHome)):void 0),d=e.transport??s?.transport??(a!==void 0?await je(a,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!d)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=hp(e),p,f={},v,i,l=!1;try{let w={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Re().replace(/-/g,"")}`,...e.clientInfo?.instanceSecret!==void 0?{instanceSecret:e.clientInfo.instanceSecret}:{},...e.clientInfo?.title!==void 0?{title:e.clientInfo.title}:{},...e.clientInfo?.version!==void 0?{version:e.clientInfo.version}:{}},P=Cn(await d.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:w,capabilities:{...e.capabilities,operationDeduplication:!0},...a!==void 0?{endpoint:a.path}:{}}));p=Ud(P.identity),f=P.capabilities===void 0?{}:Cn(P.capabilities),v=typeof P.journalEpoch=="string"?P.journalEpoch:void 0,i=yp(P.grantedScopes);let R=e.autoStart===!0?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements,I=R?.runtimeAutoModeGuardrail;if(I!==void 0&&!Cd(f,"runtimeAutoModeGuardrail",I)){if(!n||e.autoStart!==!0||s===void 0)throw new Ne(`Runtime daemon does not support runtimeAutoModeGuardrail v${I}. Stop all daemon work and restart it with the upgraded KodaX installation.`);try{await Rp({identity:p,capabilities:f,transport:d,lease:s,...v!==void 0?{journalEpoch:v}:{},...i!==void 0?{grantedScopes:i}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredVersion:I})}finally{l=!0}return _d(e,!1)}hi(f,R);let k=e.profile??"default";if(p.profile!==k)throw new Error(`Runtime daemon profile mismatch: expected ${k}, got ${p.profile}`)}catch(w){throw l||(s!==void 0?await s.close():await d.close?.()),w}let c=St({identity:{...p,mode:"daemon",isolation:"process"},transport:d,capabilities:f,...v!==void 0?{journalEpoch:v}:{},...i!==void 0?{grantedScopes:i}:{}});return s?{...c,async close(){await c.close()}}:c}o(_d,"connectKodaXRuntimeInternal");function td(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}o(td,"assertPositiveRuntimeTimeout");function yp(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&wp(t));return n.length===e.length?n:void 0}o(yp,"parseRuntimeGrantedScopes");function wp(e){return e==="session:observe"||e==="session:write"||e==="run:control"||e==="interaction:respond"||e==="permission:respond"||e==="permission:grant-admin"||e==="integration:admin"||e==="workflow:control"||e==="learning:read"||e==="learning:control"||e==="artifact:write"||e==="agent:control"||e==="credential:register"||e==="host-tool:register"||e==="owner:admin"||e==="daemon:admin"}o(wp,"isRuntimeGrantedScope");function hp(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Un(_n(e.homeDir,e.profile).paths)}o(hp,"resolveConnectDaemonToken");function Od(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}o(Od,"normalizeRuntimeDaemonEndpoint");function Sp(e,n){let t=new Map,r=new Map,s=new Set,a=o((u,p)=>{let v=(r.get(u)??Promise.resolve()).then(p),i=v.then(()=>{},()=>{});return r.set(u,i),i.then(()=>{r.get(u)===i&&r.delete(u)}),v},"enqueue"),d=o((u,p,f)=>{t.set(u,p);for(let v of s)v(u,p,f);n.emit("session.settings.updated",{sessionId:u,revision:p.revision,settings:p.value,patch:f},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let p=e.loadSessionSettingsVersioned(u);return t.set(u,p),p},peek(u){return t.get(u)},update(u,p,f,v){return a(u,()=>{let i=e.loadSessionSettingsVersioned(u);if(f!==void 0&&i.revision!==f)throw Ut(`Session settings revision ${f} is stale; current revision is ${i.revision}`,i.revision);let l=ff(i.value,p);v(l);let c={revision:i.revision+1,value:l};return e.saveSessionSettingsVersioned(u,c),d(u,c,p),c})},async persistAutoModeEngine(u,p){let f=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:f.revision,value:{...f.value,autoModeEngine:p}}),await a(u,()=>{let v=e.loadSessionSettingsVersioned(u);if(v.value.autoModeEngine===p){t.set(u,v);return}let i={revision:v.revision+1,value:{...v.value,autoModeEngine:p}};e.saveSessionSettingsVersioned(u,i),d(u,i,{autoModeEngine:p})})},subscribe(u){return s.add(u),{close:o(()=>{s.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}o(Sp,"createRuntimeSessionSettingsOwner");function vp(e,n,t,r,s,a,d,u,p,f,v,i){let l=new Set,c=o((R,I,k)=>({id:R,title:I.title,...I.gitRoot?{gitRoot:I.gitRoot}:{},...I.runtimeInfo?.workspaceRoot?{workspaceRoot:I.runtimeInfo.workspaceRoot}:{},...I.runtimeInfo?.surface?{surface:I.runtimeInfo.surface}:{},...I.runtimeInfo?.profileId?{profileId:I.runtimeInfo.profileId}:{},...k?{createdAt:k}:{}}),"toRuntimeSession"),w,P=o(async R=>{for(let I=0;I<op;I+=1){let k=t.currentSessionSeq(R),x=await i.loadRequired(R),[g,h,D]=await Promise.all([n.loadFullTranscript(R),u(R),p(R)]),T=await d.read(R),C=t.currentSessionSeq(R);if(k===C)return{runtimeId:e.runtimeId,cursor:C,transcriptRevision:qt(g),session:c(R,x),transcript:g===null?null:yd(g),settings:T,runs:h,pendingPermissions:D,live:t.projectSession(R)}}throw Fe(`Session ${R} changed continuously while taking a snapshot`)},"captureObservationSnapshot");return{async create(R={}){s(),i.assertCreate(R);let I=R.sessionId??await tr();if(l.has(I))throw Object.assign(new Error(`Session already exists: ${I}`),{code:"conflict"});l.add(I);try{if(await n.loadSession(I)!==null)throw Object.assign(new Error(`Session already exists: ${I}`),{code:"conflict"});let k=R.projectPath?F.resolve(R.projectPath):void 0,x=R.gitRoot?F.resolve(R.gitRoot):k,g=af(R,k,x),h={messages:[],title:R.title??"",gitRoot:x??"",...R.tag!==void 0?{tag:R.tag}:{},...g!==void 0?{runtimeInfo:g}:{},scope:"user"};await n.storage.save(I,h);let D=c(I,h,new Date().toISOString());return t.emit("session.created",D,{sessionId:I,runId:I}),D}finally{l.delete(I)}},async load(R){s();let I=await i.loadRequired(R),k=c(R,I);return t.emit("session.loaded",k,{sessionId:R,runId:R}),k},async list(R){return s(),i.assertFilter(R),(await n.listSessions(R)).filter(i.admitsSummary).map(jd)},async transcript(R){return s(),await i.loadRequired(R),n.loadFullTranscript(R)},async transcriptPage(R){s(),await i.loadRequired(R.sessionId);let I=await n.loadFullTranscript(R.sessionId);return I===null?null:yd(I,R.cursor,R.limit)},async transcriptEntryChunk(R){s(),await i.loadRequired(R.sessionId);let I=t.currentSessionSeq(R.sessionId);if(w?.sessionId===R.sessionId&&w.sessionSeq===I&&w.revision===R.revision&&w.entryIndex===R.entryIndex)return wd(R,w.revision,w.entryId,w.encoded);let k=await n.loadFullTranscript(R.sessionId);if(k===null)return null;let x=qt(k);if(R.revision!==x)throw Fe("Transcript revision changed; request a fresh observation snapshot");let g=k.transcriptEntries[R.entryIndex];if(g===void 0)throw new Error(`Transcript entry index is out of range: ${R.entryIndex}`);let h=Buffer.from(JSON.stringify(g),"utf8");return w={sessionId:R.sessionId,sessionSeq:I,revision:x,entryIndex:R.entryIndex,...typeof g.entryId=="string"?{entryId:g.entryId}:{},encoded:h},wd(R,x,w.entryId,h)},async transcriptSearch(R){s(),await i.loadRequired(R.sessionId);let I=await n.loadFullTranscript(R.sessionId);if(I===null)return null;let k=I.lineage??Fi(I.messages),x=qi(k,{query:R.query,limit:R.limit,role:R.role,scope:R.scope}),g=new Map(I.transcriptEntries.map((D,T)=>[D.entryId,T])),h=x.hits.flatMap(D=>{let T=g.get(D.entryId);return T===void 0?[]:[{...D,entryIndex:T}]});return{revision:qt(I),hits:h}},async observe(R,I){s();let k=[],x,g=!1,h=o(T=>{if(!(g||x!==void 0&&T.seq<=x))try{I(T)}catch(C){oe({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${T.type}`,detail:se(C)})}},"deliver"),D=t.service.subscribe({sessionId:R},T=>{x===void 0?k.push(T):h(T)});try{let T=await P(R);x=T.cursor;for(let C of k.splice(0).sort((H,m)=>H.seq-m.seq))h(C);return{snapshot:T,close(){g||(g=!0,k.length=0,D.close())}}}catch(T){throw g=!0,D.close(),T}},async fork(R){s();let I=await i.loadRequired(R.sessionId),k=await n.forkSession(R.sessionId,{...R.selector!==void 0?{selector:R.selector}:{},...R.newSessionId!==void 0?{sessionId:R.newSessionId}:{},...R.title!==void 0?{title:R.title}:{}});if(!k){let g=R.newSessionId??await tr(),h={...I,title:R.title??I.title,messages:I.messages.map(Rg),actorSnapshot:void 0};await n.storage.save(g,h);let D=c(g,h);return t.emit("session.created",D,{sessionId:g,runId:g}),D}let x=c(k.sessionId,k.data);return t.emit("session.created",x,{sessionId:k.sessionId,runId:k.sessionId}),x},async getSettingsVersioned(R){return s(),await i.loadRequired(R),d.read(R)},async getSettings(R){return(await this.getSettingsVersioned(R)).value},async getAutoModeStats(R){s(),await i.loadRequired(R);let I=(await d.read(R)).value;if(Se(I.permissionMode)!=="auto")return;let k=f(R);return{engine:I.autoModeEngine??k?.engine??"llm",...I.autoModeClassifierModel!==void 0?{classifierModel:I.autoModeClassifierModel}:{},denials:k?.denials??or(),breaker:k?.breaker??sr()}},async updateSettings(R,I){s();let k=await i.loadRequired(R);return(await d.update(R,I,void 0,x=>fi(k,x))).value},async updateSettingsVersioned(R,I,k){s();let x=await i.loadRequired(R);return d.update(R,I,k.expectedRevision,g=>fi(x,g))},async appendNotice(R){s(),await i.loadRequired(R.sessionId);let I=await n.appendClientNotice(R.sessionId,{content:R.content,...R.source!==void 0?{source:R.source}:{}});return I&&t.emit("session.notice.appended",{sessionId:R.sessionId,entry:I},{sessionId:R.sessionId,runId:R.sessionId}),I},async rewind(R){s(),await i.loadRequired(R.sessionId),mi(R.sessionId,a);let I=await n.rewindSession(R.sessionId,{...R.selector!==void 0?{selector:R.selector}:{}});if(!I)return null;let k=c(R.sessionId,I);return t.emit("session.rewound",{sessionId:R.sessionId,selector:R.selector,session:k},{sessionId:R.sessionId,runId:R.sessionId}),k},async setActiveEntry(R){s(),await i.loadRequired(R.sessionId),mi(R.sessionId,a);let I=await n.setActiveEntry(R.sessionId,R.entryId);if(!I)return null;let k=c(R.sessionId,I);return t.emit("session.active_entry.updated",{sessionId:R.sessionId,entryId:R.entryId,session:k},{sessionId:R.sessionId,runId:R.sessionId}),k},async compact(R){s();let I=await i.loadRequired(R.sessionId);mi(R.sessionId,a);let k=Date.now(),x=I.lineage?.entries.filter(h=>h.type==="compaction").length??0;t.emit("context.compaction.started",{meta:{contextId:R.sessionId,contextKind:"root",contextRevision:x}},{sessionId:R.sessionId,runId:R.sessionId});let g=x;try{let h=(await d.read(R.sessionId)).value,D=await n.compactSession(R.sessionId,{...R.provider!==void 0?{provider:R.provider}:{},...R.model!==void 0?{model:R.model}:{},...R.customInstructions!==void 0?{customInstructions:R.customInstructions}:{},...R.contextWindow!==void 0?{contextWindow:R.contextWindow}:{},...(R.triggerPercent??h.compactionTriggerPercent)!==void 0?{triggerPercent:R.triggerPercent??h.compactionTriggerPercent}:{},...(R.triggerTokens??h.compactionTriggerTokens)!==void 0?{triggerTokens:R.triggerTokens??h.compactionTriggerTokens}:{}}),T=await n.loadSession(R.sessionId),C=T?c(R.sessionId,T):void 0;return g=T?.lineage?.entries.filter(H=>H.type==="compaction").length??x,t.emit("context.compaction.finished",{contextId:R.sessionId,contextKind:"root",contextRevision:g,source:"manual",tokensBefore:D.tokensBefore,tokensAfter:D.tokensAfter,committed:D.compacted,elapsedMs:Date.now()-k,beforeRevision:x,afterRevision:g,...D.report??{},...D.reason!==void 0?{reason:D.reason}:{}},{sessionId:R.sessionId,runId:R.sessionId}),D.compacted&&t.emit("session.compacted",{sessionId:R.sessionId,result:{compacted:D.compacted,tokensBefore:D.tokensBefore,tokensAfter:D.tokensAfter},...C!==void 0?{session:C}:{}},{sessionId:R.sessionId,runId:R.sessionId}),{...D,...C!==void 0?{session:C}:{}}}finally{t.emit("context.compaction.ended",{meta:{contextId:R.sessionId,contextKind:"root",contextRevision:g}},{sessionId:R.sessionId,runId:R.sessionId})}},async archive(R){if(s(),await i.loadRequired(R),!await n.archiveSession(R))throw new Error(`Session not found or not archived: ${R}`)},async unarchive(R){if(s(),await i.loadRequired(R),!await n.unarchiveSession(R))throw new Error(`Session not found or not unarchived: ${R}`)},async delete(R){s(),await i.loadRequired(R);let I=await n.deleteSession(R);gg(R,I),d.release(R),v(R)}}}o(vp,"createRuntimeSessionService");function Ip(e){let n=new Map,t=new Map,r=new Map,s=new Map,a=new Map,d=new Map,u=new Map;for(let m of e.runs.values())d.set(m.sessionId,Math.max(d.get(m.sessionId)??0,m.sessionOrder));let p=o(m=>{let S=e.runs.get(m);if(!S)throw new Error(`Runtime run not found: ${m}`);return S},"getRecord"),f=o(m=>{n.get(m.sessionId)===m.runId&&n.delete(m.sessionId)},"releaseActiveRun"),v=o(m=>{t.get(m.runId)?.(),t.delete(m.runId)},"releaseActiveQueueRoute"),i=o(m=>{m.releaseAbortSignalSubscription?.(),m.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),l=o(m=>{m.actorSession===void 0||t.has(m.runId)||t.set(m.runId,xi(Yt(m.sessionId,"/root")))},"registerActiveQueueRoute"),c=o((m,S)=>{m.start?.resolve(S),m.start=void 0,delete m.providerCredential},"resolveRunStart"),w=o((m,S)=>(i(m),e.permissions.rejectForRun(m.runId,"runtime run ended"),e.userInputs.rejectForRun(m.runId,"runtime run ended"),m.start?.options.guardrails?.find(Ri)?.clearAllowedCalls(),c(m,S),v(m),f(m),Uf(e.runs),x(m.sessionId),S),"finishRun"),P=o((m,S)=>{let b=Yf(S,m),A=Qf(S),_=m.terminalEmitted?m.phase:A.phase;return m.terminalEmitted||(m.error=b.message),jt(e.bus,e.persistence,m,_,A.terminal),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,error:b}},"failedRunResult"),R=o((m,S,b)=>{let A=m.phase==="queued";m.phase==="queued"&&Np(a,m),i(m),m.running?.abort(new Error(S)),m.abortController?.abort(new Error(S)),e.permissions.rejectForRun(m.runId,S),e.userInputs.rejectForRun(m.runId,S),m.start?.options.guardrails?.find(Ri)?.clearAllowedCalls(),jt(e.bus,e.persistence,m,"cancelled",{code:"cancelled",effectOutcome:A?"none":"unknown",message:S});let _={runId:m.runId,sessionId:m.sessionId,phase:m.phase};return c(m,_),v(m),f(m),b&&!e.isClosed()&&x(m.sessionId),_},"cancelRun"),I=o(m=>{if(!m.start||e.isClosed()){R(m,"runtime closed",!1);return}m.phase="running",m.interruptInputOpen=m.actorSession!==void 0,m.queuedAt=void 0,m.runningAt=new Date().toISOString(),n.set(m.sessionId,m.runId),cn(e.bus,e.persistence,m,ke(m)),e.bus.emit("run.started",ke(m),{sessionId:m.sessionId,runId:m.runId});let S=sf({bus:e.bus,original:m.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:m,onMidTurnUserMessages:o(U=>D(m,U),"onMidTurnUserMessages")}),b=Dp({agentPlane:e.agentPlane,events:S,model:m.model,options:m.start.options,provider:m.provider,record:m,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:m.sessionId,runId:m.runId,provider:m.provider,...m.model!==void 0?{model:m.model}:{},...b.effort!==void 0?{effort:b.effort}:{},...b.thinking!==void 0?{thinking:b.thinking}:{},...b.reasoningMode!==void 0?{reasoningMode:b.reasoningMode}:{},...b.agentMode!==void 0?{agentMode:b.agentMode}:{},...m.permissionMode!==void 0?{permissionMode:m.permissionMode}:{},...m.autoModeEngine!==void 0?{autoModeEngine:m.autoModeEngine}:{},...m.autoModeClassifierModel!==void 0?{autoModeClassifierModel:m.autoModeClassifierModel}:{},...m.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:m.autoModeTimeoutMs}:{},...m.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:m.autoModeSpeculativeWindowMs}:{},...b.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:b.compaction.triggerPercent}:{},...b.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:b.compaction.triggerTokens}:{},...b.context?.executionCwd!==void 0?{executionCwd:b.context.executionCwd}:{}},{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}}),m.mode==="managed_task"){let U=new AbortController;m.abortController=U;let q=b.abortSignal,ae=o(()=>{m.releaseAbortSignalSubscription=void 0,m.interruptInputOpen=!1,U.abort(q?.reason)},"handleUpstreamAbort");q?.aborted&&ae();let ge=o(()=>zi({...b,abortSignal:U.signal},m.start.prompt),"managedOperation"),ze=m.providerCredential!==void 0?Qt(m.provider,m.providerCredential,ge):ge();q!==void 0&&!q.aborted?(q.addEventListener("abort",ae,{once:!0}),m.releaseAbortSignalSubscription=()=>{q.removeEventListener("abort",ae)}):q?.aborted&&!U.signal.aborted&&ae(),l(m),ze.then(ce=>{let Jt=m.terminalEmitted?m.phase:ce.interrupted?"interrupted":ce.success?"completed":"failed",tt=!ce.success&&!ce.interrupted&&ce.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...ce.signalReason!==void 0?{message:ce.signalReason}:{}}:void 0;return jt(e.bus,e.persistence,m,Jt,tt),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:ce,...m.terminal!==void 0?{terminal:m.terminal}:{}}}).catch(ce=>P(m,ce)).then(ce=>w(m,ce));return}let A=o(()=>Wi(b,m.start.prompt),"codingOperation"),_=m.providerCredential!==void 0?Qt(m.provider,m.providerCredential,A):A();m.running=_;let $=b.abortSignal,Q=o(()=>{m.releaseAbortSignalSubscription=void 0,m.interruptInputOpen=!1},"handleUpstreamAbort");$?.aborted?Q():$!==void 0&&($.addEventListener("abort",Q,{once:!0}),m.releaseAbortSignalSubscription=()=>{$.removeEventListener("abort",Q)}),l(m),_.result.then(U=>{let q=m.terminalEmitted?m.phase:U.interrupted?"interrupted":U.success?"completed":"failed";return jt(e.bus,e.persistence,m,q),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:U}}).catch(U=>P(m,U)).then(U=>w(m,U))},"launchRecord"),k=o(m=>{try{I(m);return}catch(S){return w(m,P(m,S)),{error:S}}},"startRecord"),x=o(m=>{let S=a.get(m);if(!S||S.length===0||n.has(m))return;let b=S.shift();if(S.length===0&&a.delete(m),!b)return;let A=e.runs.get(b);if(!A||A.phase!=="queued"){x(m);return}k(A)},"drainNext"),g=o(m=>{let S=a.get(m.sessionId)??[];S.push(m.runId),a.set(m.sessionId,S),cn(e.bus,e.persistence,m,ke(m)),e.bus.emit("run.queued",ke(m),{sessionId:m.sessionId,runId:m.runId})},"enqueue"),h=o(m=>{let S=ke(m);cn(e.bus,e.persistence,m,S),e.bus.emit("run.updated",S,{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}})},"publishRunUpdate"),D=o((m,S)=>{let b=new Map;for(let q of m.interruptInputs)q.state==="queued"&&q.queueMessageId!==void 0&&b.set(q.queueMessageId,q);let A=[],_=new Set;for(let q of S){if(_.has(q))continue;_.add(q);let ae=b.get(q);ae!==void 0&&A.push(ae)}if(A.length===0)return;let $=new Date().toISOString(),Q=A.map(q=>{if(q.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${q.inputId}`);return{inputId:q.inputId,afterRunId:q.afterRunId,input:q.input,queuedAt:q.queuedAt,deliveredAt:$,...q.origin!==void 0?{origin:q.origin}:{}}}),U={sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:Q},U,()=>{for(let q of A)q.state="delivered",q.deliveredAt=$,delete q.queueMessageId})}catch(q){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${se(q).message}`,inputIds:A.map(ae=>ae.inputId)},U),q}h(m)},"deliverInterruptInputs"),T=e.settingsOwner.subscribe((m,S)=>{for(let b of e.runs.values())b.sessionId!==m||b.phase!=="queued"&&!We(b.phase)||(b.permissionMode=S.value.permissionMode,b.autoModeEngine=Se(S.value.permissionMode)==="auto"?S.value.autoModeEngine??"llm":S.value.autoModeEngine,b.autoModeClassifierModel=S.value.autoModeClassifierModel,b.autoModeTimeoutMs=S.value.autoModeTimeoutMs,b.autoModeSpeculativeWindowMs=S.value.autoModeSpeculativeWindowMs,h(b))}),C=o(async(m,S)=>{e.ensureOpen();let b=gd(m,e.artifacts,S),A=await e.sessionAdmission.loadRequired(m.sessionId),_=(await e.settingsOwner.read(m.sessionId)).value;fi(A,_);let $=lf(m.options??{},_,b.inputArtifacts,A),Q=$.agentMode==="sa"?void 0:await e.actorRegistry.forSession(m.sessionId,$.maxConcurrentThreadsPerSession),U=$.provider??e.defaultProvider;if(!U)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let q=m;if(q.providerCredential!==void 0&&q.providerCredentialProvider!==void 0&&q.providerCredentialProvider!==U)throw mg(`Credential lease is bound to ${q.providerCredentialProvider}, not ${U}.`);let ae=$.modelOverride??$.model??e.defaultModel,ge=m.trustedRunId??Hf();if(e.runs.has(ge))throw Ut(`Runtime run already exists: ${ge}`,0);let ze=e.enableSharedInteractions||Se(_.permissionMode)==="auto";if(wf(_,ae),ze&&$.guardrails?.some(ye=>ye.kind==="tool"&&ye.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let ce=ze?og({sessionId:m.sessionId,provider:U,model:ae,options:$,permissions:e.permissions,cache:r,states:s,settingsOwner:e.settingsOwner,getRecord:o(()=>{let ye=n.get(m.sessionId);return ye===void 0?void 0:e.runs.get(ye)},"getRecord"),onEngineChange:o(ye=>{for(let qe of e.runs.values())qe.sessionId===m.sessionId&&(qe.phase==="queued"||We(qe.phase))&&qe.autoModeEngine!==ye&&(qe.autoModeEngine=ye,h(qe));e.settingsOwner.persistAutoModeEngine(m.sessionId,ye).catch(qe=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${se(qe).message}`},{sessionId:m.sessionId,runId:m.sessionId})})},"onEngineChange")}):void 0;await ce?.prepare?.();let Jt=ce===void 0?$:{...$,guardrails:[...$.guardrails??[],ce]},tt=new Date().toISOString(),Ii=o(()=>{},"resolveResult"),ki=new Promise(ye=>{Ii=ye}),Nn=m.requiredAfterRunId,ln=Nn===void 0?void 0:p(Nn);if(ln!==void 0){if(ln.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${Nn} does not belong to session ${m.sessionId}`);if(!We(ln.phase)&&ln.phase!=="queued")throw new $t(ln.runId)}let bi=(d.get(m.sessionId)??0)+1;d.set(m.sessionId,bi);let Vt=ln!==void 0||n.has(m.sessionId),rt={runId:ge,sessionId:m.sessionId,phase:Vt?"queued":"running",startedAt:tt,sessionOrder:bi,...Vt?{queuedAt:tt}:{},provider:U,...ae!==void 0?{model:ae}:{},...m.permissionBroker!==void 0?{permissionBroker:m.permissionBroker}:{},..._.permissionMode!==void 0?{permissionMode:_.permissionMode}:{},..._.autoModeClassifierModel!==void 0?{autoModeClassifierModel:_.autoModeClassifierModel}:{},..._.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:_.autoModeTimeoutMs}:{},..._.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:_.autoModeSpeculativeWindowMs}:{},...Se(_.permissionMode)==="auto"?{autoModeEngine:_.autoModeEngine??"llm"}:_.autoModeEngine!==void 0?{autoModeEngine:_.autoModeEngine}:{},...$.reasoningMode!==void 0?{reasoning:$.reasoningMode}:{},mode:m.mode??"coding",...m.providerCredential!==void 0?{providerCredential:m.providerCredential}:{},hadProviderCredential:m.providerCredential!==void 0,...m.origin!==void 0?{origin:m.origin}:{},...Nn!==void 0?{continuation:{inputId:ge,afterRunId:Nn,delivery:"after_turn",contentPreview:hd(b.prompt)}}:{},interruptInputs:[],...m.agentContext??e.defaultAgentContext?{agentContext:m.agentContext??e.defaultAgentContext}:{},...Q?{actorSession:Q}:{},interruptInputOpen:!1,result:ki,start:{prompt:b.prompt,inputArtifacts:b.inputArtifacts,options:Jt,resolve:Ii},terminalEmitted:!1};if(e.runs.set(ge,rt),Vt)g(rt);else{let ye=k(rt);if(ye!==void 0)throw ye.error}return{runId:ge,sessionId:m.sessionId,get turnId(){return rt.turnId},result:ki}},"startRun"),H=o((m,S="runtime.runs.start")=>{let A=(u.get(m.sessionId)??Promise.resolve()).then(()=>C(m,S)),_=A.then(()=>{},()=>{});return u.set(m.sessionId,_),_.then(()=>{u.get(m.sessionId)===_&&u.delete(m.sessionId)}),A},"start");return{start:H,async submitInput(m){e.ensureOpen(),await e.sessionAdmission.loadRequired(m.sessionId);let S=p(m.afterRunId);if(S.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${m.afterRunId} does not belong to session ${m.sessionId}`);if(!We(S.phase)&&S.phase!=="queued")return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(m.delivery==="interrupt"){if(!We(S.phase)||n.get(m.sessionId)!==S.runId)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(S.actorSession===void 0)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"unsupported_capability"};if(!S.interruptInputOpen)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"interrupt_window_closed"};if(m.credential!==void 0||m.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let $=gd({sessionId:m.sessionId,input:m.input},e.artifacts,"runtime.runs.submitInput"),Q=structuredClone(m.input),U=m,q=U.trustedInputId??Kf();if(S.interruptInputs.some(ce=>ce.inputId===q))throw Ut(`Runtime interrupt input already exists: ${q}`,0);let ae=Di({sessionId:m.sessionId,content:$.prompt,inputArtifacts:$.inputArtifacts,provider:S.provider,...S.model!==void 0?{model:S.model}:{}}),ge=new Date().toISOString(),ze={inputId:q,afterRunId:m.afterRunId,delivery:"interrupt",state:"queued",contentPreview:hd($.prompt),queuedAt:ge,...U.origin!==void 0?{origin:U.origin}:{},input:Q,queueMessageId:ae};return S.interruptInputs.push(ze),h(S),e.bus.emit("run.input.queued",{input:Wd(ze)},{sessionId:S.sessionId,runId:S.runId,...S.turnId!==void 0?{turnId:S.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:q,runId:S.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:S.sessionOrder}}let b=m,A;try{A=await H({sessionId:m.sessionId,input:m.input,...b.options!==void 0?{options:b.options}:{},...b.providerCredential!==void 0?{providerCredential:b.providerCredential}:{},...b.providerCredentialProvider!==void 0?{providerCredentialProvider:b.providerCredentialProvider}:{},...b.origin!==void 0?{origin:b.origin}:{},...b.trustedRunId!==void 0?{trustedRunId:b.trustedRunId}:{},requiredAfterRunId:m.afterRunId},"runtime.runs.submitInput")}catch($){if(!($ instanceof $t))throw $;return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"}}let _=p(A.runId).sessionOrder;return{accepted:!0,delivery:m.delivery,runId:A.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:_}},async await(m){e.ensureOpen();let S=e.runs.get(m);if(S)return await e.sessionAdmission.assertRunAccess(S.sessionId),S.result;let b=e.persistence.loadRunStatus(m);if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),zd(b);throw new Error(`Runtime run not found: ${m}`)},async get(m){e.ensureOpen();let S=e.runs.get(m);if(S)return await e.sessionAdmission.assertRunAccess(S.sessionId),ke(S);let b=e.persistence.loadRunStatus(m);if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),b;throw new Error(`Runtime run not found: ${m}`)},async list(m){e.ensureOpen(),m?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(m.sessionId);let S=[...e.runs.values()].filter(b=>Wf(b,m)).map(ke);return pi(S,e.sessionAdmission)},async abort(m){e.ensureOpen();let S=p(m);await e.sessionAdmission.assertRunAccess(S.sessionId),(S.phase==="queued"||We(S.phase))&&R(S,"runtime run aborted",!0)},async setModel(m,S){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.model=S,b.running?.setModel(S),h(b)},async setProvider(m,S){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.provider=S,b.running?.setProvider(S),h(b)},async setReasoning(m,S){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.reasoning=S,b.running?.setReasoning(S),h(b)},closeAll(m){T.close();for(let S of e.runs.values())(S.phase==="queued"||We(S.phase))&&R(S,m,!1);n.clear(),r.clear(),s.clear(),a.clear()},releaseSession(m){for(let S of r.get(m)?.values()??[])S.guardrail.clearAllowedCalls();r.delete(m),s.delete(m)},getAutoModeStats(m){let S=s.get(m);return S===void 0?void 0:{engine:S.engine,denials:S.denials,breaker:S.breaker}}}}o(Ip,"createRuntimeRunService");function kp(){let e=$i();return{async list(n){let t=e.list(),r=n?.runId?t.filter(s=>s.runId===n.runId):t;return n?.limit===void 0?r:r.slice(0,n.limit)},async get(n){return e.getWorkflowProcessSnapshot(n)},subscribe(n,t){return{close:e.subscribeWorkflowProcess(s=>{n.runId&&s.snapshot.runId!==n.runId||n.activeOnly===!0&&Jf(s.snapshot.status)||t(s)})}},async pause(n){return e.pause(n)},async resume(n){return e.resume(n)},async stop(n){return e.stop(n)}}}o(kp,"createRuntimeWorkflowService");function bp(e,n){return{async read(){return e(),An(Me(n))},async patch(t){return e(),Sf(t,"runtime.config.patch"),kf(n,vf(t)),An(Me(n))},async reload(){return e(),n!==void 0?(Bd(n),{ok:!0,config:An(Me(n))}):{ok:!0,config:An(eo())}}}}o(bp,"createRuntimeConfigService");function Pp(e,n){return{async providers(){return e(),dr()},async models(t){return e(),_f(dr(),t)},async commands(t){return e(),vd(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return vd(t.projectRoot).find(s=>s.name.trim().toLowerCase()===r||(s.aliases??[]).some(a=>a.trim().toLowerCase()===r))??null},async skills(t){e();let r=await Zt(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(Ff)},async describeSkill(t){e();let r=await Zt(t.projectRoot);return r.has(t.name)?qf(await r.loadFull(t.name)):null},async customProviders(){return e(),bf(n)},async upsertCustomProvider(t){return e(),Pf(n,t)},async deleteCustomProvider(t){return e(),Ef(n,t)},async extensions(){e();let t=mn();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=mn();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}o(Pp,"createRuntimeCatalogService");function Ep(e,n){return{async listServers(){return e(),li(n)},async getServer(t){return e(),Df(n,t)},async validateServer(t,r){e();try{return ur(t,r),{ok:!0,config:structuredClone(r)}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}},async upsertServer(t,r){return e(),Tf(n,t,r)},async deleteServer(t){return e(),Af(n,t)},async reloadServers(){e();let t=nr(li(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=li(n),s=t?.server!==void 0?[t.server]:Object.keys(r),a=nr(r);try{let d=[];for(let u of s)d.push(await a.listTools(u,{forceRefresh:t?.forceRefresh===!0}));return d}finally{await a.dispose()}}}}o(Ep,"createRuntimeMcpService");function xp(){let e=new Map;return{service:{async create(r){if(!cf(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let s=F.resolve(r.path),a;try{a=await N.promises.stat(s)}catch(p){throw new Error(`Runtime artifact path is not readable: ${s}`,{cause:p})}if(!a.isFile())throw new Error(`Runtime artifact path must be a regular file: ${s}`);if(a.size>Ya)throw new Error(`Runtime artifact exceeds the ${Ya}-byte limit: ${s}`);let d=`art_${Re().replace(/-/g,"").slice(0,12)}`,u={id:d,kind:r.kind,path:s,sizeBytes:a.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(d,u),u},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:o(r=>{let s=e.get(r);if(!s)throw new Error(`Runtime artifact not found: ${r}`);return s},"resolve")}}o(xp,"createRuntimeArtifactStore");function Dp(e){let{agentPlane:n,events:t,model:r,options:s,provider:a,record:d,sessionManager:u}=e,p=s.events?.exitPlanMode===void 0,f=p||d.actorSession!==void 0||!!(n&&d.agentContext);return{...s,provider:a,...r!==void 0?{modelOverride:r}:{},session:{...s.session??{},id:d.sessionId,storage:u.storage,persistedByHost:!1},events:t,...f?{context:{...s.context??{},...p?{excludeTools:[...new Set([...s.context?.excludeTools??[],"exit_plan_mode"])]}:{},...d.actorSession?{actorSession:d.actorSession}:{},...n&&d.agentContext?{agentExecutorPlane:{plane:n,context:d.agentContext}}:{}}}:{}}}o(Dp,"buildRunOptions");function Ft(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}o(Ft,"assertRuntimeAgentContext");function Tp(e,n){let t=[],r=new Set(e.skills);for(let a of n.requiredSkills??[])r.has(a)||t.push(`required skill is unavailable: ${a}`);let s=n.requiredCapabilities;if(s)for(let a of["streaming","durableTasks","inputRequired","cancellation","artifacts"])s[a]===!0&&e.capabilities[a]!=="supported"&&t.push(`required capability ${a} is ${e.capabilities[a]}`);return t}o(Tp,"localAgentReasons");function oi(e){return Ft(e),jn(e).map(n=>{let t=Tp(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}o(oi,"runtimeLocalListings");function Ap(e,n,t){let r=new Map,s=o((a,d)=>{let u=r.get(a);if(u)return u.then(f=>{let v=f.rootControl().list().maxConcurrentThreads;if(d!==void 0&&d!==v)throw new Error(`Actor concurrency for ${a} is already ${v}; cannot change it to ${d}.`);return f});let p=(async()=>{let f=await e.storage.load(a);if(!f)throw new Error(`Session not found: ${a}`);let v=f.actorSnapshot?.maxConcurrentThreads;if(v!==void 0&&d!==void 0&&v!==d)throw new Error(`Persisted Actor concurrency for ${a} is ${v}; requested ${d}.`);let i={async load(){return(await e.storage.load(a))?.actorSnapshot},save(c,w){return e.storage.saveActorSnapshot(a,c,w)}},l=new Bi({sessionId:a,store:i,maxConcurrentThreadsPerSession:d??v,...n?{executor:Ui({plane:n,context:t??{actorId:`runtime:${a}`}})}:{}});return await l.initialize(),l})();return r.set(a,p),p.catch(()=>r.delete(a)),p},"forSession");return{forSession:s,async root(a){return(await s(a)).rootControl()},async activeTurns(a){return(await Promise.all(a.map(async u=>({sessionId:u,root:(await s(u)).rootControl()})))).flatMap(({sessionId:u,root:p})=>p.list().actors.flatMap(f=>f.currentTurnId&&f.path!=="/root"?[{sessionId:u,actorPath:f.path,turnId:f.currentTurnId,kind:f.kind}]:[]))},async close(a){let d=await Promise.allSettled([...r.values()]);await Promise.all(d.flatMap(u=>u.status==="fulfilled"?[u.value.close(a)]:[])),r.clear()}}}o(Ap,"createRuntimeAgentActorRegistry");function Mp(e,n,t,r){return{execution:n,enabled:e!==void 0,async listDispatchable(s){Ft(s);let a=jn(s);return e?e.listDispatchable(s,a):oi(s)},async describe(s,a){Ft(a);let d=jn(a);return e?e.describe(s,a,d):oi(a).find(u=>u.descriptor.agentId===s)},async preflight(s){Ft(s.query);let a=jn(s.query);if(e)return e.preflight(s,a);let d=oi(s.query).find(p=>p.descriptor.agentId===s.agentId),u=d?[]:["agent is not dispatchable"];return d&&s.expectedConfigurationRevision!==void 0&&d.descriptor.configurationRevision!==s.expectedConfigurationRevision&&u.push("configuration revision changed"),{ok:d!==void 0&&u.length===0,...d?{descriptor:d.descriptor}:{},dispatchability:d?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:u},reasons:u}},async tree(s){return await r.loadRequired(s),(await t.root(s)).list()},async detail(s,a){return await r.loadRequired(s),(await t.root(s)).get(a)},async spawn(s,a){return await r.loadRequired(s),(await t.root(s)).spawn(a)},async send(s,a,d,u){await r.loadRequired(s),await(await t.root(s)).send(a,d,u)},async followup(s,a,d,u){return await r.loadRequired(s),(await t.root(s)).followup(a,d,void 0,u)},async interrupt(s,a,d){await r.loadRequired(s),await(await t.root(s)).interrupt(a,d)},async output(s,a,d){return await r.loadRequired(s),(await t.root(s)).output(a,d)},async events(s,a){return await r.loadRequired(s),(await t.root(s)).eventSnapshot(a)},async wait(s,a,d){return await r.loadRequired(s),(await t.root(s)).wait(a,d)}}}o(Mp,"createRuntimeAgentService");function si(){return new Error("Runtime external agent executor plane is not enabled.")}o(si,"externalAgentsDisabled");function Cp(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw si()},async setEnabled(){throw si()},async remove(){throw si()}}}}o(Cp,"createRuntimeAdminService");function _p(e){return{async snapshot(){let n=await pi([...e.runs.values()].map(ke),e.sessionAdmission);return{runtimeId:e.identity.runtimeId,mode:e.identity.mode,profile:e.identity.profile,startedAt:e.identity.startedAt,sessions:(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(jd),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await pi([...e.runs.values()].map(ke),e.sessionAdmission),t=n.filter(v=>v.phase==="running"||v.phase==="waiting_permission"||v.phase==="waiting_user_input"),r=n.filter(v=>v.phase==="queued"),s=(await e.workflows.list({})).filter(v=>v.status!=="completed"&&v.status!=="failed"&&v.status!=="denied"&&v.status!=="stopped"),a=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(v=>v.id),d=await e.actors.activeTurns(a),u=await e.permissions.service.listPending(),p=await e.userInputs.service.listPending(),f=[];return t.length>0&&f.push("active_runs"),r.length>0&&f.push("queued_runs"),s.length>0&&f.push("active_workflows"),d.length>0&&f.push("active_agent_turns"),d.length>0&&f.push("active_agent_tasks"),(u.length>0||p.length>0)&&f.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:s,activeAgentTurns:d,activeAgentTasks:d,pendingPermissions:u,pendingUserInputs:p,blockers:f,canStop:f.length===0}}}}o(_p,"createRuntimeStatusService");function Op(e){return{latestContextBudget(n){return rd(e,"context.budget.snapshot",n)},latestToolExposure(n){return rd(e,"tool.exposure.planned",n)}}}o(Op,"createRuntimeDiagnosticsService");async function rd(e,n,t){let r={type:n,limit:100,...t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return(await e.replay(r)).at(-1)?.payload??null}o(rd,"latestRuntimeDiagnosticPayload");function We(e){return e==="running"||e==="waiting_permission"||e==="waiting_user_input"}o(We,"isActiveRunPhase");function Np(e,n){let t=e.get(n.sessionId);if(!t)return;let r=t.filter(s=>s!==n.runId);r.length===0?e.delete(n.sessionId):e.set(n.sessionId,r)}o(Np,"removeQueuedRun");function Lp(e){let n=!1,t=[],r=new Map,s=new Map,a=new Set,d=o((i,l)=>l?!(l.sessionId!==void 0&&i.sessionId!==l.sessionId||l.runId!==void 0&&i.runId!==l.runId||l.type!==void 0&&!(Array.isArray(l.type)?l.type:[l.type]).includes(i.type)):!0,"matches"),u=o(i=>{t.push(i),t.length>Ht&&t.splice(0,t.length-Ht)},"remember"),p=o((i,l,c)=>{let w=e.nextEventSeq();return{id:`evt_${w}_${Re().replace(/-/g,"").slice(0,8)}`,seq:w,time:new Date().toISOString(),sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{},type:i,payload:l}},"createEvent"),f=o(i=>{for(let l of[...a])if(d(i,l.filter))try{l.listener(i)}catch(c){oe({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${i.type}`,detail:{eventId:i.id,error:se(c)}})}},"notify");return{service:{subscribe(i,l){if(n)throw new Error("KodaX runtime event bus is closed");let c={filter:i,listener:l};return a.add(c),{close(){a.delete(c)}}},async replay(i){let l=e.replay(i),c=new Map;for(let P of l)c.set(P.id,P);for(let P of t)c.set(P.id,P);let w=[...c.values()].filter(P=>d(P,i)&&(i?.sinceSeq===void 0||P.seq>i.sinceSeq)).sort((P,R)=>P.seq-R.seq||P.time.localeCompare(R.time));return i?.limit===void 0?w:w.slice(-i.limit)}},emit(i,l,c){let w=p(i,l,c);s.set(w.sessionId,w.seq);let P=r.get(w.sessionId)??ai();r.set(w.sessionId,P),id(P,w),u(w);let R=[w];try{e.appendEvent(w)}catch(I){let k=p("runtime.warning",{message:se(I).message,sourceEventId:w.id},c);u(k),R.push(k)}for(let I of R)f(I);return w},emitDurable(i,l,c,w){let P=p(i,l,c);e.appendDurableEvent(P),w?.(),s.set(P.sessionId,P.seq);let R=r.get(P.sessionId)??ai();return r.set(P.sessionId,R),id(R,P),u(P),f(P),P},projectSession(i){let l=r.get(i);return od(l===void 0?ai():l)},currentSessionSeq(i){let l=s.get(i);if(l!==void 0)return l;let c=$p(e.replay({sessionId:i}));return s.set(i,c),c},close(){n=!0;try{e.close()}catch(i){oe({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:i})}a.clear(),r.clear(),s.clear()}}}o(Lp,"createRuntimeEventBus");function ai(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}o(ai,"createRuntimeSessionLiveProjectionState");function id(e,n){let t=X(n.payload)?n.payload:void 0;if(!Fp(n.type,t)){if(n.type==="assistant.delta"&&typeof t?.text=="string")e.assistantTextByRun[n.runId]=`${e.assistantTextByRun[n.runId]??""}${t.text}`;else if(n.type==="thinking.delta"&&typeof t?.text=="string")e.thinkingTextByRun[n.runId]=`${e.thinkingTextByRun[n.runId]??""}${t.text}`;else if(n.type==="tool.started"){let r=di(n);e.activeTools.set(r,{key:r,runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},started:n.payload})}else if(n.type==="tool.progress"){let r=di(n),s=e.activeTools.get(r)??Hp(e.activeTools,n.runId);s&&e.activeTools.set(s.key,{...s,progress:n.payload})}else if(n.type==="tool.finished"){let r=di(n);if(!e.activeTools.delete(r))for(let[s,a]of e.activeTools)a.runId===n.runId&&e.activeTools.delete(s)}else if(n.type==="todo.updated")e.todo=n.payload;else if(n.type==="run.progress"&&t?.kind==="managed_task_status"){let r=qp(t.status);r!==void 0&&e.managedTasks.set(n.runId,{runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},status:r})}else if(n.type==="user_input.requested"&&(typeof t?.id=="string"||typeof t?.requestId=="string")){let r=typeof t?.id=="string"?t.id:t.requestId;e.pendingUserInputs.set(r,{requestId:r,runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},detail:n.payload})}else if(n.type==="user_input.resolved"&&typeof t?.requestId=="string")e.pendingUserInputs.delete(t.requestId);else if(Nd(n.type)){delete e.assistantTextByRun[n.runId],delete e.thinkingTextByRun[n.runId];for(let[r,s]of e.activeTools)s.runId===n.runId&&e.activeTools.delete(r);for(let[r,s]of e.pendingUserInputs)s.runId===n.runId&&e.pendingUserInputs.delete(r);e.managedTasks.delete(n.runId)}}}o(id,"applyRuntimeSessionEvent");var jp=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.finished","todo.updated"]);function Fp(e,n){if(!jp.has(e))return!1;let t=X(n?.meta)?n.meta:void 0;if(!t)return!1;if(t.contextKind==="child"||typeof t.childAgentId=="string"&&t.childAgentId.length>0)return!0;let r=X(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}o(Fp,"isChildOwnedPrimaryLiveEvent");function od(e){return{assistantTextByRun:{...e.assistantTextByRun},thinkingTextByRun:{...e.thinkingTextByRun},activeTools:[...e.activeTools.values()],...e.todo!==void 0?{todo:e.todo}:{},pendingUserInputs:[...e.pendingUserInputs.values()],managedTasks:[...e.managedTasks.values()]}}o(od,"snapshotRuntimeSessionLiveProjection");function qp(e){if(!(!X(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}o(qp,"parseRuntimeManagedTaskStatus");function $p(e){return e.at(-1)?.seq??0}o($p,"latestRuntimeEventSeq");function di(e){let n=X(e.payload)?e.payload:void 0,t=X(n?.meta)?n.meta:void 0,r=X(n?.tool)?n.tool:void 0,s=X(n?.update)?n.update:void 0,a=X(n?.result)?n.result:void 0,d=t?.toolCallId??t?.toolUseId??r?.id??s?.id??a?.id??a?.toolCallId;return typeof d=="string"&&d.length>0?`${e.runId}:${d}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}o(di,"runtimeToolProjectionKey");function Hp(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}o(Hp,"latestActiveToolForRun");function Nd(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}o(Nd,"isTerminalRuntimeEvent");function Kp(e){let n=e.homeDir?F.resolve(e.homeDir):e.sessionsDir?F.resolve(e.sessionsDir,".."):process.cwd(),t=e.sharedDaemonHost===!0?F.join(n,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):F.join(n,".kodax","runtime"),r=F.join(t,"runs"),s=F.join(t,"session-settings"),a=F.join(t,"permission-grants.json"),d=F.join(t,"event-sequence"),u=new Map,p=0,f,v,i,l=!1,c=o(S=>F.join(r,encodeURIComponent(S)),"runDir"),w=o(S=>F.join(c(S),"events.jsonl"),"eventFile"),P=o(S=>F.join(c(S),"status.json"),"statusFile"),R=o(S=>F.join(s,`${encodeURIComponent(S)}.json`),"sessionSettingsFile"),I=[],k=new Set,x=o(()=>{let S=0;if(N.existsSync(d))try{let b=Number.parseInt(N.readFileSync(d,"utf-8").trim(),10);Number.isSafeInteger(b)&&b>0&&(S=b)}catch(b){oe({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:b})}if(!N.existsSync(r))return S;for(let b of N.readdirSync(r,{withFileTypes:!0})){if(!b.isDirectory())continue;let A=F.join(r,b.name,"events.jsonl");if(!N.existsSync(A))continue;let _=N.statSync(A).size,$=Math.min(_,ip),Q=Buffer.allocUnsafe($),U=N.openSync(A,"r");try{N.readSync(U,Q,0,$,_-$)}finally{N.closeSync(U)}let q=Q.toString("utf-8").split(/\r?\n/);$<_&&q.shift();for(let ae of q)if(ae.trim())try{let ge=JSON.parse(ae);sd(ge)&&Number.isSafeInteger(ge.seq)&&(S=Math.max(S,ge.seq))}catch{}}return S},"findMaxPersistedEventSeq"),g=o(()=>{i===void 0&&(i=x()+1);let S=i;return i+=1,l=!0,S},"allocateEventSeq"),h=o((S,b,A)=>{if(k.has(S))return;k.add(S);let _=g(),$={id:`evt_persist_warn_${_}_${Re().replace(/-/g,"").slice(0,8)}`,seq:_,time:new Date().toISOString(),sessionId:A.sessionId??"runtime",runId:A.runId??A.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:b,...A.file!==void 0?{file:A.file}:{}}};I.push($),I.length>Ht&&I.splice(0,I.length-Ht)},"pushPersistenceWarning"),D=o((S,b)=>[...S,...I].filter(A=>Bp(A,b)).sort((A,_)=>A.seq-_.seq||A.time.localeCompare(_.time)),"withPersistenceWarnings"),T=o((S,b)=>{if(!N.existsSync(S))return[];let A=N.readFileSync(S,"utf-8"),_=[],$=A.split(/\r?\n/);for(let Q=0;Q<$.length;Q+=1){let U=$[Q]??"";if(U.trim())try{let q=JSON.parse(U);sd(q)?_.push(q):h(`${S}:${Q+1}:shape`,`Skipped malformed runtime event record at ${F.basename(S)}:${Q+1}`,{runId:b,file:S})}catch(q){h(`${S}:${Q+1}:parse`,`Skipped malformed runtime event record at ${F.basename(S)}:${Q+1}: ${se(q).message}`,{runId:b,file:S})}}return _},"readEventsFromFile"),C=o(S=>{if(N.statSync(S).size<=Dd)return;let b=N.readFileSync(S,"utf-8").trimEnd().split(/\r?\n/),A=[],_=0;for(let $=b.length-1;$>=0;$-=1){let Q=b[$]??"";if(!Q)continue;let U=Buffer.byteLength(Q,"utf-8")+1;if(A.length>0&&_+U>rp)break;A.push(Q),_+=U}A.reverse(),N.writeFileSync(S,A.length>0?`${A.join(`
67
+ `,"utf8"),re.fsyncSync(r)}finally{re.closeSync(r)}re.renameSync(t,e)}o(Sm,"writeJsonAtomic");function vm(e){return lm("sha256").update(Zr(e)).digest("hex")}o(vm,"digestCanonical");function Zr(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new De("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(Zr).join(",")}]`;if(e&&typeof e=="object"){let n=e;return`{${Object.keys(n).sort().filter(r=>n[r]!==void 0).map(r=>`${JSON.stringify(r)}:${Zr(n[r])}`).join(",")}}`}throw new De("invalid_operation","Operation contains a non-JSON value.")}o(Zr,"canonicalJson");function Im(e){if(!(e instanceof Error))return{code:"operation_rejected",message:String(e)};let n=e;return{code:typeof n.code=="string"?n.code:"operation_rejected",message:e.message}}o(Im,"normalizeOperationError");function km(e){return _a(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}o(km,"isJournalMeta");function bm(e){return _a(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&Pm(e.state)&&typeof e.updatedAt=="string":!1}o(bm,"isOperationRecord");function Pm(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}o(Pm,"isOperationState");function _a(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}o(_a,"isRecord");function Oa(e){return new ei(e)}o(Oa,"createRuntimeDaemonManagementController");var ei=class{constructor(n){this.input=n;this.runtimeEvents=n.runtime.events.subscribe({},()=>{this.revision+=1})}input;static{o(this,"DaemonManagementController")}clients=new Set;runtimeEvents;revision=0;activeMutations=0;activeMutationMethods=new Map;draining=!1;closed=!1;preflightFingerprint;attachClient(n){if(this.draining||this.closed)throw Ie("conflict","Runtime daemon is draining and cannot attach another client.");this.clients.has(n)||(this.clients.add(n),this.revision+=1)}detachClient(n){this.clients.delete(n)&&(this.revision+=1)}async runMutation(n,t){if(this.draining||this.closed)throw Ie("conflict","Runtime daemon is draining and rejects new mutations.");this.activeMutations+=1,this.activeMutationMethods.set(n,(this.activeMutationMethods.get(n)??0)+1),this.revision+=1;try{return await t()}finally{this.activeMutations-=1;let r=(this.activeMutationMethods.get(n)??1)-1;r===0?this.activeMutationMethods.delete(n):this.activeMutationMethods.set(n,r)}}async preflight(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.input.runtime.status.preflight();if(this.observePreflight(r),t===this.revision&&this.activeMutations===0)return Em(r,this.clients.size)}throw Ie("conflict","Runtime state changed while daemon preflight was being read.")}async inspect(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.preflight();if(t!==this.revision)continue;let s=te(this.input.paths.lockFile);if(s===void 0||s.runtimeId!==this.input.runtime.identity.runtimeId||s.kind!=="daemon")throw Ie("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:Ee(this.input.paths),owner:s,preflight:r}}throw Ie("conflict","Runtime state changed while daemon management was inspected.")}async stop(){this.beginDraining();try{return await this.assertStoppable(),this.input.requestStop(),{ok:!0}}catch(n){throw this.draining=!1,n}}async rollbackToInline(n){if(n.expectedRuntimeId!==this.input.runtime.identity.runtimeId)throw Ie("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=bs(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw Ie("internal_error","Runtime owner rollback did not commit inline mode.");return this.revision+=1,this.input.requestStop(),{accepted:!0,runtimeId:this.input.runtime.identity.runtimeId,revision:this.revision,ownerPolicy:{...t,mode:"inline"}}}catch(t){throw this.draining=!1,t}}close(){this.closed||(this.closed=!0,this.runtimeEvents.close(),this.clients.clear())}beginDraining(n){if(this.closed)throw Ie("conflict","Runtime daemon management is closed.");if(this.draining)throw Ie("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw Ie("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw Ie("conflict",`Runtime daemon has in-flight mutations: ${[...this.activeMutationMethods].map(([t,r])=>`${t} (${r})`).join(", ")}.`);this.draining=!0}async assertStoppable(n){let t=await this.preflight();if(n!==void 0&&this.revision!==n)throw Ie("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw Ie("conflict",`Runtime daemon cannot stop safely: ${t.blockers.join(", ")}.`,{preflight:t})}observePreflight(n){let t=JSON.stringify(n);if(this.preflightFingerprint===void 0){this.preflightFingerprint=t;return}t!==this.preflightFingerprint&&(this.preflightFingerprint=t,this.revision+=1)}};function Em(e,n){let t=e.blockers.filter(r=>r!=="connected_clients");return n>1&&t.push("connected_clients"),{...e,clientCount:n,blockers:t,canStop:t.length===0}}o(Em,"withLogicalClients");function Ie(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}o(Ie,"managementError");async function ja(e){Ce(e.paths);let n=Es();xs(e.paths,n);let t=Lt(e,"starting");vn(e.paths,t),_e(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Ti(I=>{xm(e.paths,I)}),s,a,d=!1,u=o(()=>{if(a===void 0){d=!0;return}a()},"requestStop"),p=Yr(),f=Ma({rootDir:Na.join(e.paths.rootDir,"control")}),v=ca({invocationStateFile:Na.join(e.paths.rootDir,"host-tool-invocations.json")}),i=Oa({runtime:e.runtime,paths:e.paths,requestStop:u}),l;try{s=await Fs({endpoint:e.endpoint,createDispatcher:o(I=>ba({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},allowAgentRegistrationAdmin:!0,notify:I,runResults:p,controlJournal:f,reverseBridgeHub:v,management:i,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:o(()=>({logFile:e.paths.logFile,entries:Ds(e.paths)}),"logs")}),"createDispatcher")}),l=Lt(e,"ready"),vn(e.paths,l),_e(e.paths,"info","Runtime daemon ready.",{runtimeId:l.runtimeId,endpoint:l.endpoint})}catch(I){_e(e.paths,"error","Runtime daemon failed to start.",{error:Te(I).message});let k=!0;try{await s?.close()}catch(x){k=!1,_e(e.paths,"error","Runtime daemon transport cleanup failed.",{error:Te(x).message})}throw i.close(),p.clear(),v.close(),r(),k?await La(e.paths,e.lock):vn(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),I}let c=!1,w,P=new Promise(I=>{w=I}),R=o(async()=>{if(c)return;c=!0;let I=[],k=!1,x=!1;try{try{vn(e.paths,Lt(e,"stopping")),_e(e.paths,"info","Runtime daemon stopping.")}catch(g){I.push(`state transition: ${Te(g).message}`)}try{await s?.close(),k=!0}catch(g){I.push(`transport close: ${Te(g).message}`)}i.close(),v.close(),p.clear();try{await e.runtime.close(),x=!0}catch(g){I.push(`Runtime close: ${Te(g).message}`)}try{_e(e.paths,"info","Runtime daemon stopped.")}catch(g){I.push(`stop log: ${Te(g).message}`)}if(r(),k&&x){let g=await La(e.paths,e.lock),h=te(e.lock.file);!g&&h?.runtimeId===e.lock.owner.runtimeId&&h.pid===e.lock.owner.pid&&h.createdAt===e.lock.owner.createdAt&&I.push("owner release: the daemon still owns its profile lock")}else try{vn(e.paths,{...Lt(e,"unhealthy"),lastError:I.join("; ")})}catch(g){I.push(`unhealthy state: ${Te(g).message}`)}if(I.length>0){try{_e(e.paths,"error","Runtime daemon stopped with cleanup failures.",{failures:I})}catch(g){I.push(`failure log: ${Te(g).message}`)}throw new Error(`Runtime daemon cleanup failed: ${I.join("; ")}`)}}finally{r(),w?.()}},"closeHost");return a=o(()=>{try{_e(e.paths,"info","Runtime daemon stop requested.")}catch(k){oe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:Te(k)})}setTimeout(()=>{R().catch(k=>{oe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:Te(k)})})},0).unref?.()},"scheduleStop"),d&&a(),{endpoint:e.endpoint,state:l,closed:P,unref(){s?.unref()},close:R}}o(ja,"startRuntimeDaemonHost");async function La(e,n){for(let t=0;t<50;t+=1){try{if(Ms(e,n))return!0}catch(s){oe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:Te(s)})}let r=te(n.file);if(r===void 0||r.runtimeId!==n.owner.runtimeId||r.pid!==n.owner.pid||r.createdAt!==n.owner.createdAt||r.kind!==n.owner.kind)return!1;await new Promise(s=>{setTimeout(s,10)})}try{_e(e,"error","Runtime daemon ownership release timed out.")}catch(t){oe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:Te(t)})}return!1}o(La,"releaseHostOwnership");function xm(e,n){try{_e(e,n.level==="error"?"error":n.level==="warn"?"warn":"info",`[${n.source}] ${n.message}`,{level:n.level,source:n.source,...n.detail!==void 0?{detail:n.detail}:{}})}catch{}}o(xm,"appendRuntimeDiagnostic");function Lt(e,n){return{runtimeId:e.runtime.identity.runtimeId,profile:e.paths.profile,pid:process.pid,startedAt:e.runtime.identity.startedAt,endpoint:e.endpoint.path,version:e.runtime.identity.version,status:n,configHome:e.paths.configHome}}o(Lt,"createHostState");function Te(e){return e instanceof Error?e:new Error(String(e))}o(Te,"normalizeHostError");async function Fa(e){let n=e.profile??"default",t=Am(e.homeDir),r=ni.resolve(e.configHome??ni.join(t,".kodax")),s=hn(r,n);Pt(s);let a=e.endpoint??En(n,Sn(t,r)),d={runtimeId:`rt_${Dm().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon"},u=await Hr(s,d,e.healthCheck);if(u.kind==="attach"){let p=tn(u.state);return $a(s,p,e.connectTimeoutMs)}if(u.kind==="wait")return Mm(s,a,d,{...e,profile:n});if(u.kind==="unhealthy")throw new Error(`Runtime daemon is ${u.health}; refusing to take ownership.`);return qa(s,a,d,u.lock,e)}o(Fa,"acquireRuntimeDaemonLease");function Am(e){return ni.resolve(e??Tm.homedir())}o(Am,"resolveRuntimeDaemonHomeDir");async function Mm(e,n,t,r){let s=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=s;){let a=await Hr(e,t,r.healthCheck);if(a.kind==="attach")return $a(e,tn(a.state),r.connectTimeoutMs);if(a.kind==="claim")return qa(e,n,t,a.lock,r);if(a.kind==="unhealthy")throw new Error(`Runtime daemon is ${a.health}; refusing to take ownership.`);await _m(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}o(Mm,"waitForDaemonLease");async function qa(e,n,t,r,s){let a,d=!1;try{if(a=await s.createRuntime(t.runtimeId),a.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");d=!0;let u=await ja({runtime:a,paths:e,endpoint:n,lock:r,...s.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{}});try{let p=await je(n,{connectTimeoutMs:s.connectTimeoutMs});return Cm(e,n,p,u)}catch(p){throw await u.close(),p}}catch(u){throw d||Et(r),await a?.close(),u}}o(qa,"createClaimedDaemonLease");async function $a(e,n,t){let r=await je(n,{connectTimeoutMs:t});return{transport:r,endpoint:n,paths:e,ownsHost:!1,async close(){await r.close?.()},async shutdown(){try{await r.request("runtime.shutdown")}finally{await r.close?.()}}}}o($a,"createAttachedLease");function Cm(e,n,t,r){r.unref();let s=!1,a=!1;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,async close(){s||(s=!0,await t.close?.())},async shutdown(){a||(a=!0,await r.close())}}}o(Cm,"createOwnedLease");function _m(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}o(_m,"delay");import{spawn as Om}from"node:child_process";import{existsSync as Nm}from"node:fs";import{fileURLToPath as Lm}from"node:url";import jm from"node:os";import Ae from"node:path";var Ha=1e3,Tn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{o(this,"RuntimeDaemonStartupError")}};async function Ua(e){let n=e.profile??"default",t=Ae.resolve(e.homeDir??jm.homedir()),r=Ae.resolve(e.configHome??Ae.join(t,".kodax")),s=hn(r,n);Pt(s);let a=En(s.profile,Sn(t,r));if(e.endpoint&&e.endpoint.path!==a.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let d=await Tt(s,e.healthCheck),u=Wn(d);if(u==="healthy"&&d.state)return Ka(s,tn(d.state),!1,e);if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let p=await Km({profile:s.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs}),f=await Fm(s,e,p),v=tn(f.state);return Ka(s,v,f.state.pid===p.pid,e)}o(Ua,"acquireRuntimeDaemonProcessLease");async function Ka(e,n,t,r){let s=await je(n,{connectTimeoutMs:r.connectTimeoutMs});return{transport:s,endpoint:n,paths:e,ownsHost:t,async close(){await s.close?.()},async shutdown(){try{await s.request("runtime.shutdown")}finally{await s.close?.()}}}}o(Ka,"connectProcessLease");async function Fm(e,n,t,r=Tt){let s=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let a=await qm(e,n,t,r),d=Wn(a);if(d==="healthy"&&a.state)return a.state.pid===t.pid?t.unref():await t.terminate(),{...a,state:a.state};if(d==="mismatch")throw new Tn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=s-Date.now();if(u<=0)throw Hm(e);await $m(Math.min(Math.max(1,n.pollIntervalMs??100),u),e,t,n.startupSignal)}}catch(a){try{await t.terminate()}catch(d){throw new AggregateError([a,d],"Runtime daemon startup failed and its child process could not be reclaimed.")}throw a}}o(Fm,"waitForHealthyDaemonStartup");async function qm(e,n,t,r){let s=await Vn(Promise.race([r(e,n.healthCheck).then(a=>({kind:"health",observation:a})),t.exit.then(a=>({kind:"exit",exit:a}))]),n.startupSignal);if(s.kind==="exit"){if(ti(e,t))return r(e,n.healthCheck);if(s.exit.code===0&&s.exit.signal===null){let a=Math.min(Ha,n.startupTimeoutMs??Ha),d=Date.now()+a;for(;Date.now()<=d;){let u=await Vn(r(e,n.healthCheck),n.startupSignal);if(Wn(u)!=="missing"||ti(e,t))return u;await Vn(ri(Math.min(n.pollIntervalMs??100,Math.max(1,d-Date.now()))),n.startupSignal)}}throw Wa(s.exit)}return s.observation}o(qm,"observeStartupHealth");async function $m(e,n,t,r){let s=await Vn(Promise.race([ri(e).then(()=>{}),t.exit]),r);if(s!==void 0){if(ti(n,t)){await Vn(ri(e),r);return}throw Wa(s)}}o($m,"waitForStartupPoll");function ti(e,n){let t=te(e.lockFile);return t!==void 0&&t.pid!==n.pid}o(ti,"hasCompetingStartupOwner");function Wa(e){let n=e.signal!==null?`signal ${e.signal}`:`code ${e.code??"unknown"}`;return new Tn(`Runtime daemon child exited before becoming healthy (${n}).`,"child_exit")}o(Wa,"runtimeDaemonExitedEarly");function Hm(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Tn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n}`,"timeout")}o(Hm,"runtimeDaemonStartupTimeout");async function Km(e){let n=zm();Um(n);let t=[...n!==void 0?Gm(process.execArgv,n.endsWith(".ts")):[],...n!==void 0?[n]:[],"daemon","serve","--profile",e.profile,"--home",e.homeDir,"--config-home",e.configHome];e.defaultProvider!==void 0&&t.push("--provider",e.defaultProvider),e.defaultModel!==void 0&&t.push("--model",e.defaultModel),e.sessionsDir!==void 0&&t.push("--sessions-dir",e.sessionsDir),e.permissionTimeoutMs!==void 0&&t.push("--permission-timeout-ms",String(e.permissionTimeoutMs));let r=Ln({args:t,env:Wm({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),s=Om(process.execPath,r.args,{detached:!0,stdio:"ignore",windowsHide:!0,env:r.env}),a=new Promise(d=>{s.once("exit",(u,p)=>d({code:u,signal:p}))});return await new Promise((d,u)=>{s.once("spawn",d),s.once("error",u)}),Xm(s,a)}o(Km,"spawnRuntimeDaemonServeProcess");function Xm(e,n){return{pid:e.pid,exit:n,unref(){e.unref()},async terminate(){if(!(e.exitCode!==null||e.signalCode!==null)&&(await _i(e),!await Bm(n,1e3)))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}o(Xm,"createRuntimeDaemonStartupProcess");async function Bm(e,n){let t;try{return await Promise.race([e.then(()=>!0),new Promise(r=>{t=setTimeout(()=>r(!1),n)})])}finally{t!==void 0&&clearTimeout(t)}}o(Bm,"didExitWithin");function Um(e){if(e!==void 0&&!Nm(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}o(Um,"assertRuntimeDaemonCliEntryAvailable");function Wm(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Ae.join(e.homeDir,".kodax")};return delete n[st],n}o(Wm,"createRuntimeDaemonServeEnvironment");function zm(){if(process.env.KODAX_BUNDLED==="true")return;let e=Lm(import.meta.url);if(e.endsWith(".ts"))return Ae.resolve(Ae.dirname(e),"..","kodax_cli.ts");let n=Ae.dirname(e),t=Ae.basename(n)==="chunks"?Ae.dirname(n):n;return Ae.join(t,"kodax_cli.js")}o(zm,"resolveDaemonCliEntry");function Gm(e,n){let t=[];for(let r=0;r<e.length;r+=1){let s=e[r]??"",a=s.toLowerCase();if(a==="--require"||a==="-r"){let d=e[r+1];d!==void 0&&(Xa(d)&&t.push(s,d),r+=1)}else if(a.startsWith("--require=")){let d=s.slice(10);Xa(d)&&t.push(s)}else(a.startsWith("--max-old-space-size")||a==="--enable-source-maps")&&t.push(s)}return n&&t.push("--import","tsx"),t}o(Gm,"daemonServeExecArgv");function Xa(e){return Ae.resolve(e)===Ae.resolve("scripts","production-env.cjs")}o(Xa,"isKodaXProductionEnvPreload");function ri(e){return new Promise(n=>setTimeout(n,e))}o(ri,"delay");async function Vn(e,n){if(!n)return e;if(n.aborted)throw Ba();let t;try{return await Promise.race([e,new Promise((r,s)=>{t=o(()=>s(Ba()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}o(Vn,"raceRuntimeDaemonStartupStep");function Ba(){return new Tn("Runtime daemon startup cancelled.","cancelled")}o(Ba,"runtimeDaemonStartupCancelled");import{Worker as Jm}from"node:worker_threads";import{existsSync as Vm}from"node:fs";import{basename as Qm,dirname as ii,join as za}from"node:path";import{fileURLToPath as Ga,pathToFileURL as Ja}from"node:url";function Va(e,n={}){let t=Ym(),r=new Jm(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),s=new Map,a=new Set,d=0,u=!1,p=o(i=>{for(let l of s.values())l.reject(i);s.clear()},"rejectPending"),f=o(i=>{u||(u=!0,p(i),a.clear())},"markClosed");return r.on("message",i=>{if(Bn(i)){for(let w of a)w(i);return}if(!Rn(i)&&!yn(i)||!i.id)return;let l=s.get(i.id);if(!l)return;if(s.delete(i.id),Rn(i)){l.resolve(i.result);return}let c=new Error(i.error.message);c.code=i.error.code,i.error.data!==void 0&&(c.data=i.error.data),l.reject(c)}),r.on("error",i=>f(i)),r.on("exit",i=>f(new Error(`Runtime Worker exited with code ${i}.`))),{transport:{request(i,l,c){if(u)return Promise.reject(new Error("Runtime Worker transport is closed."));let w=`worker_${++d}`;return new Promise((P,R)=>{s.set(w,{resolve:P,reject:R});try{r.postMessage(Rt(w,i,l,c))}catch(I){s.delete(w),R(I instanceof Error?I:new Error(String(I)))}})},subscribe(i){return u?{close(){}}:(a.add(i),{close:o(()=>a.delete(i),"close")})},async close(){u||(f(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){u||f(new Error("Runtime Worker terminated.")),await r.terminate()}}}o(Va,"createRuntimeWorkerTransport");function Ym(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return Vm(Ga(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return Ja(za(ii(process.execPath),"runtime-worker.js"));let e=ii(Ga(import.meta.url)),n=Qm(e)==="chunks"?ii(e):e;return Ja(za(n,"runtime-worker.js"))}o(Ym,"resolveRuntimeWorkerUrl");var Ne=class extends Error{constructor(t,r,s){super(t,s);this.preflight=r;this.name="RuntimeDaemonCapabilityUpgradeError"}preflight;static{o(this,"RuntimeDaemonCapabilityUpgradeError")}code="daemon_capability_upgrade_required";capability="runtimeAutoModeGuardrail";recoverable=!0;restartRequired=!0},un=class extends Error{static{o(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function wi(e){let n=F.resolve(e??xd.homedir());return{homeDir:n,configHome:e===void 0?F.resolve(ar):F.join(n,".kodax")}}o(wi,"resolveRuntimeDaemonClientLocation");function _n(e,n="default"){let t=wi(e);return{...t,paths:hn(t.configHome,n)}}o(_n,"resolveRuntimeDaemonClientPaths");function Jy(e={}){let{paths:n}=_n(e.homeDir,e.profile),t=`inline_${Re().replace(/-/g,"")}`,r=Ps(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),s=!1;return{profile:n.profile,ownerId:t,ownerPolicy:Ee(n),close(){s||(s=!0,Et(r))}}}o(Jy,"acquireKodaXInlineOwner");function Vy(e={}){return Ee(_n(e.homeDir,e.profile).paths)}o(Vy,"getKodaXRuntimeOwnerPolicy");function Qy(e={}){let{paths:n}=_n(e.homeDir,e.profile),t=te(n.lockFile);return{profile:n.profile,policy:Ee(n),ownerStatus:t!==void 0?"owned":N.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}o(Qy,"getKodaXRuntimeOwnerState");function Yy(e={}){return kt(_n(e.homeDir,e.profile).paths)}o(Yy,"enableKodaXDaemonOwner");function Zy(e){let{paths:n}=_n(e.homeDir,e.profile);if(te(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return ks(n,e.mode,e.expectedRevision)}o(Zy,"setKodaXRuntimeOwnerMode");var Zm=["provider","model","effort","planModeEffort","thinking","reasoningMode","agentMode","permissionMode","locale","providerModels","extensions","repoIntelligenceMode","repoIntelligenceTrace","verifierLog","stallLog","fallbackProviders","fastProvider","fastModel","deepProvider","deepModel","maxOutputTokens","disablePromptCache","lsp","lspAutoDownload","acpLogLevel","sessionRetentionDays","repoIntelligence","workflow"],ep=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),$t=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{o(this,"RuntimeContinuationStaleError")}},Qa=5*6e4,Ht=1e4,Kt=1e3,Ya=256*1024*1024,np=64*1024,tp=10,Dd=16*1024*1024,rp=Dd/2,ip=128*1024,op=8,Td=512*1024,Za=128*1024,sp=256*1024,ap=50,dp=200,ed=1024,up=new Set(["assistant.delta","thinking.delta","tool.progress","run.progress"]),Ad=new Set(["tool_call","tool_describe"]),cp=new Set(["image","file","video"]);function lp(e,n){let t=F.relative(Ai(),e);return F.isAbsolute(t)||t.startsWith("..")?e:F.join(n,t)}o(lp,"rebaseAgentConfigPath");async function mp(e={}){if(e.daemonHostRuntimeId!==void 0&&e.sharedDaemonHost!==!0)throw new Error("daemonHostRuntimeId is reserved for a claimed shared daemon owner.");if(e.daemonHostRuntimeId!==void 0&&!/^rt_[a-f0-9]{12}$/.test(e.daemonHostRuntimeId))throw new Error("Invalid shared daemon Runtime owner identity.");if(e.isolation!==void 0&&e.isolation!=="inline"&&e.isolation!=="worker")throw new Error(`Unsupported KodaX Runtime isolation: ${String(e.isolation)}`);if(e.mode==="daemon"){if(e.isolation!==void 0)throw new Error("Daemon mode selects its isolation internally and does not accept an isolation option.");if(e.worker!==void 0)throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.externalAgents!==void 0)return pp(e);let b=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return Md({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:b,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:b?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return fp(e);let n={hardDispose:!1,externalAgents:e.externalAgents!==void 0,afterTurnInput:{version:1},interruptInput:{version:1,availability:"per_run"},contextCompaction:{version:3,alwaysOn:!0,absoluteThreshold:!0,contextIdentity:!0,canonicalFinishedEvent:!0,durableBeforeEvict:!0,exactHistoryRecovery:!0},transcriptPaging:{version:1,maxPageBytes:Td},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},learningCenter:{version:1},actorControlPlane:{version:1,methodNamespace:"agents"},runtimeAutoModeGuardrail:{version:3,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!0,defaultClassifierTimeoutMs:at,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};hi(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Re().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.76",isolation:"inline"},r=Xp(e),s=yo(r?{sessionsDir:r}:void 0),a=mf(t.profile,s,e.sharedDaemonHost===!0),d=If(e);Bd(d);let u=Kp(e),p=e.externalAgents?await Ki({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:bo(F.join(u.runtimeDir,"agents"))}):void 0,f=Lp(u),v=Sp(u,f),i=nf(f,e.permissionTimeoutMs??Qa,u),l=Yp(f,e.permissionTimeoutMs??Qa),c=xp(),w=kp(),P=Ap(s,p,e.externalAgents?.defaultContext),R=new Map,I=new Map,k=[...Bf(u.loadRunStatuses())].sort(Si);for(let b of k){let A=b.sessionOrder??(I.get(b.sessionId)??0)+1;I.set(b.sessionId,Math.max(I.get(b.sessionId)??0,A));let _=Vp({...b,acceptedAt:b.acceptedAt??b.startedAt,sessionOrder:A},f,u);R.set(_.runId,Jp(_))}let x=!1,g=o(()=>{if(x)throw new Error("KodaX runtime is closed")},"ensureOpen"),h=Ip({bus:f,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,ensureOpen:g,isClosed:o(()=>x,"isClosed"),artifacts:c,permissions:i,userInputs:l,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:u,runs:R,sessionManager:s,sessionAdmission:a,agentPlane:p,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:P,settingsOwner:v}),D=vp(t,s,f,u,g,b=>[...R.values()].some(A=>A.sessionId===b&&We(A.phase)),v,b=>h.list({sessionId:b}),b=>i.service.listPending({sessionId:b}),b=>h.getAutoModeStats(b),b=>{h.releaseSession(b),i.releaseSession(b)},a),T=e.homeDir?F.join(F.resolve(e.homeDir),".kodax"):ar,C=F.join(e.homeDir?F.resolve(e.homeDir):xd.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),H=Bo({configHome:T,managedWorkspaceRoot:C,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:h,sessions:D,createSkillScriptRunner:o(b=>es({...b,snapshotRoot:F.join(C,"bindings")}),"createSkillScriptRunner")}),m=rs({rootDir:F.join(T,"learned"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[lp(Li(process.cwd()),T)]});return{identity:t,capabilities:n,sessions:D,runs:h,events:f.service,permissions:i.service,userInputs:l.service,credentials:pg(),hostTools:fg(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:w,learning:m,config:bp(g,d),catalog:Pp(g,d),mcp:Ep(g,d),artifacts:c.service,status:_p({identity:t,permissions:i,userInputs:l,runs:R,sessionManager:s,sessionAdmission:a,workflows:w,actors:P}),diagnostics:Op(f.service),admin:Cp(p),agents:Mp(p,H,P,a),async close(){x||(x=!0,h.closeAll("runtime closed"),i.rejectAll("runtime closed"),i.releaseAllSessionGrants(),l.rejectAll("runtime closed"),await P.close("runtime closed"),await p?.close(),f.close())}}}o(mp,"createKodaXRuntime");async function pp(e){let n=e.externalAgents;if(!n)throw new Error("External agent options are required for the hosted daemon.");if(e.daemonTransport!==void 0)throw new Error("External agent factories cannot be installed through an existing daemon transport.");if(e.autoStartDaemon===!1)throw new Error("External agent factories require an in-process daemon host with autoStartDaemon enabled.");let t=e.daemonEndpoint!==void 0?Od(e.daemonEndpoint):void 0,r=wi(e.homeDir),s=await Fa({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:o(a=>mp({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,sharedDaemonHost:!0,daemonHostRuntimeId:a,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!s.ownsHost)throw await s.close(),new Error("External agent factories cannot be installed into an already-running daemon profile; configure its owner or use a unique profile.");try{let a=await Md({profile:e.profile,transport:s.transport,daemonToken:e.daemonToken??Un(s.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),d=!1;return{...a,identity:{...a.identity,isolation:"inline"},async close(){d||(d=!0,await a.close(),s.ownsHost?await s.shutdown():await s.close())}}}catch(a){throw await s.close(),s.ownsHost&&await s.shutdown(),a}}o(pp,"createInProcessExternalAgentDaemon");async function fp(e){let n=e.worker?.shutdownTimeoutMs??2e3;if(!Number.isFinite(n)||n<=0)throw new Error("Runtime Worker shutdownTimeoutMs must be a positive finite number.");let t=Va({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs},e.worker);try{let r=Cn(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),s=Ud(r.identity);hi(r.capabilities,{...e.requirements,hardDispose:!0});let a=St({identity:{...s,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:Cn(r.capabilities)}),d=!1;return{...a,async close(){if(!d){d=!0;try{await gp(t.transport.request("runtime.shutdown"),n)}finally{await t.terminate()}}}}}catch(r){throw await t.terminate(),r}}o(fp,"createWorkerHostedKodaXRuntime");function hi(e,n){if(!n?.hardDispose&&!n?.externalAgents&&n?.externalAgentAdmin===void 0&&n?.a2aConfigReconciler===void 0&&n?.operationDeduplication===void 0&&n?.sessionObservation===void 0&&n?.afterTurnInput===void 0&&n?.learningCenter===void 0&&n?.interruptInput===void 0&&n?.askUserTransport===void 0&&n?.permissionCas===void 0&&n?.providerCredentialBroker===void 0&&n?.runBoundHostTools===void 0&&n?.coderOwnerFencing===void 0&&n?.crashOutcomeModel===void 0&&n?.coderFeatureMatrix===void 0&&n?.sessionAdmission===void 0&&n?.completeObservationSnapshot===void 0&&n?.contextCompaction===void 0&&n?.transcriptPaging===void 0&&n?.transcriptSearch===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.daemonManagement===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=Cn(e);if(n.hardDispose&&t.hardDispose!==!0)throw new Error("Runtime does not support the required hardDispose capability.");if(n.externalAgents&&t.externalAgents!==!0)throw new Error("Runtime does not support the required externalAgents capability.");n.operationDeduplication!==void 0&&nd(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["interruptInput",n.interruptInput],["askUserTransport",n.askUserTransport],["permissionCas",n.permissionCas],["providerCredentialBroker",n.providerCredentialBroker],["runBoundHostTools",n.runBoundHostTools],["coderOwnerFencing",n.coderOwnerFencing],["crashOutcomeModel",n.crashOutcomeModel],["coderFeatureMatrix",n.coderFeatureMatrix],["sessionAdmission",n.sessionAdmission],["completeObservationSnapshot",n.completeObservationSnapshot],["contextCompaction",n.contextCompaction],["transcriptPaging",n.transcriptPaging],["transcriptSearch",n.transcriptSearch],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["daemonManagement",n.daemonManagement],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[s,a]of r)a!==void 0&&nd(t,s,a)}o(hi,"assertRuntimeCapabilities");function nd(e,n,t){let r=e[n];if(!X(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}o(nd,"assertVersionedRuntimeCapability");async function gp(e,n){let t;try{await Promise.race([e,new Promise((r,s)=>{t=setTimeout(()=>s(new Error(`Runtime Worker shutdown timed out after ${n}ms.`)),n),t.unref?.()})])}finally{t!==void 0&&clearTimeout(t)}}o(gp,"settleWithin");async function Md(e={}){return _d(e,!0)}o(Md,"connectKodaXRuntime");function Cd(e,n,t){let r=e[n];return X(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}o(Cd,"hasVersionedRuntimeCapability");async function Rp(e){if(!Cd(e.capabilities,"daemonManagement",1))throw new Ne("The running daemon is too old to perform a fenced in-place upgrade. Stop it manually after all runs and pending interactions finish, then retry.");let n=St({identity:{...e.identity,mode:"daemon",isolation:"process"},transport:e.transport,capabilities:e.capabilities,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{}}),t;try{if(t=await n.daemon.inspect(),!t.preflight.canStop)throw new Ne(`The running daemon needs runtimeAutoModeGuardrail v${e.requiredVersion} but cannot be replaced safely yet: ${t.preflight.blockers.join(", ")}. Finish or cancel that work and retry.`,t.preflight);await n.daemon.stopForInline({expectedRuntimeId:t.runtimeId,expectedRevision:t.revision,expectedOwnerPolicyRevision:t.ownerPolicy.revision})}catch(s){throw s instanceof Ne?s:new Ne("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:s})}finally{let s=!1;await n.close().then(()=>{s=!0}).catch(a=>{oe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:se(a)})}),s||await e.lease.close().catch(a=>{oe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:se(a)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;te(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Ne("The legacy daemon accepted the upgrade stop but did not release its owner fence before timeout. Retry after the daemon exits.");await new Promise(s=>setTimeout(s,50))}}catch(s){try{kt(e.lease.paths)}catch(a){throw new Ne("The legacy daemon upgrade failed and daemon ownership could not be restored automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:new AggregateError([s,a])})}throw s}try{kt(e.lease.paths)}catch(s){throw new Ne("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:s})}}o(Rp,"replaceLegacyRuntimeDaemonForGuardrailUpgrade");async function _d(e,n){td("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),td("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs);let t=e.endpoint!==void 0?Od(e.endpoint):void 0,r=wi(e.homeDir),s=e.transport===void 0&&e.autoStart===!0?await Ua({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,a=t??s?.endpoint??(e.transport===void 0?En(e.profile??"default",Sn(r.homeDir,r.configHome)):void 0),d=e.transport??s?.transport??(a!==void 0?await je(a,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!d)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=hp(e),p,f={},v,i,l=!1;try{let w={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Re().replace(/-/g,"")}`,...e.clientInfo?.instanceSecret!==void 0?{instanceSecret:e.clientInfo.instanceSecret}:{},...e.clientInfo?.title!==void 0?{title:e.clientInfo.title}:{},...e.clientInfo?.version!==void 0?{version:e.clientInfo.version}:{}},P=Cn(await d.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:w,capabilities:{...e.capabilities,operationDeduplication:!0},...a!==void 0?{endpoint:a.path}:{}}));p=Ud(P.identity),f=P.capabilities===void 0?{}:Cn(P.capabilities),v=typeof P.journalEpoch=="string"?P.journalEpoch:void 0,i=yp(P.grantedScopes);let R=e.autoStart===!0?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements,I=R?.runtimeAutoModeGuardrail;if(I!==void 0&&!Cd(f,"runtimeAutoModeGuardrail",I)){if(!n||e.autoStart!==!0||s===void 0)throw new Ne(`Runtime daemon does not support runtimeAutoModeGuardrail v${I}. Stop all daemon work and restart it with the upgraded KodaX installation.`);try{await Rp({identity:p,capabilities:f,transport:d,lease:s,...v!==void 0?{journalEpoch:v}:{},...i!==void 0?{grantedScopes:i}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredVersion:I})}finally{l=!0}return _d(e,!1)}hi(f,R);let k=e.profile??"default";if(p.profile!==k)throw new Error(`Runtime daemon profile mismatch: expected ${k}, got ${p.profile}`)}catch(w){throw l||(s!==void 0?await s.close():await d.close?.()),w}let c=St({identity:{...p,mode:"daemon",isolation:"process"},transport:d,capabilities:f,...v!==void 0?{journalEpoch:v}:{},...i!==void 0?{grantedScopes:i}:{}});return s?{...c,async close(){await c.close()}}:c}o(_d,"connectKodaXRuntimeInternal");function td(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}o(td,"assertPositiveRuntimeTimeout");function yp(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&wp(t));return n.length===e.length?n:void 0}o(yp,"parseRuntimeGrantedScopes");function wp(e){return e==="session:observe"||e==="session:write"||e==="run:control"||e==="interaction:respond"||e==="permission:respond"||e==="permission:grant-admin"||e==="integration:admin"||e==="workflow:control"||e==="learning:read"||e==="learning:control"||e==="artifact:write"||e==="agent:control"||e==="credential:register"||e==="host-tool:register"||e==="owner:admin"||e==="daemon:admin"}o(wp,"isRuntimeGrantedScope");function hp(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Un(_n(e.homeDir,e.profile).paths)}o(hp,"resolveConnectDaemonToken");function Od(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}o(Od,"normalizeRuntimeDaemonEndpoint");function Sp(e,n){let t=new Map,r=new Map,s=new Set,a=o((u,p)=>{let v=(r.get(u)??Promise.resolve()).then(p),i=v.then(()=>{},()=>{});return r.set(u,i),i.then(()=>{r.get(u)===i&&r.delete(u)}),v},"enqueue"),d=o((u,p,f)=>{t.set(u,p);for(let v of s)v(u,p,f);n.emit("session.settings.updated",{sessionId:u,revision:p.revision,settings:p.value,patch:f},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let p=e.loadSessionSettingsVersioned(u);return t.set(u,p),p},peek(u){return t.get(u)},update(u,p,f,v){return a(u,()=>{let i=e.loadSessionSettingsVersioned(u);if(f!==void 0&&i.revision!==f)throw Ut(`Session settings revision ${f} is stale; current revision is ${i.revision}`,i.revision);let l=ff(i.value,p);v(l);let c={revision:i.revision+1,value:l};return e.saveSessionSettingsVersioned(u,c),d(u,c,p),c})},async persistAutoModeEngine(u,p){let f=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:f.revision,value:{...f.value,autoModeEngine:p}}),await a(u,()=>{let v=e.loadSessionSettingsVersioned(u);if(v.value.autoModeEngine===p){t.set(u,v);return}let i={revision:v.revision+1,value:{...v.value,autoModeEngine:p}};e.saveSessionSettingsVersioned(u,i),d(u,i,{autoModeEngine:p})})},subscribe(u){return s.add(u),{close:o(()=>{s.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}o(Sp,"createRuntimeSessionSettingsOwner");function vp(e,n,t,r,s,a,d,u,p,f,v,i){let l=new Set,c=o((R,I,k)=>({id:R,title:I.title,...I.gitRoot?{gitRoot:I.gitRoot}:{},...I.runtimeInfo?.workspaceRoot?{workspaceRoot:I.runtimeInfo.workspaceRoot}:{},...I.runtimeInfo?.surface?{surface:I.runtimeInfo.surface}:{},...I.runtimeInfo?.profileId?{profileId:I.runtimeInfo.profileId}:{},...k?{createdAt:k}:{}}),"toRuntimeSession"),w,P=o(async R=>{for(let I=0;I<op;I+=1){let k=t.currentSessionSeq(R),x=await i.loadRequired(R),[g,h,D]=await Promise.all([n.loadFullTranscript(R),u(R),p(R)]),T=await d.read(R),C=t.currentSessionSeq(R);if(k===C)return{runtimeId:e.runtimeId,cursor:C,transcriptRevision:qt(g),session:c(R,x),transcript:g===null?null:yd(g),settings:T,runs:h,pendingPermissions:D,live:t.projectSession(R)}}throw Fe(`Session ${R} changed continuously while taking a snapshot`)},"captureObservationSnapshot");return{async create(R={}){s(),i.assertCreate(R);let I=R.sessionId??await tr();if(l.has(I))throw Object.assign(new Error(`Session already exists: ${I}`),{code:"conflict"});l.add(I);try{if(await n.loadSession(I)!==null)throw Object.assign(new Error(`Session already exists: ${I}`),{code:"conflict"});let k=R.projectPath?F.resolve(R.projectPath):void 0,x=R.gitRoot?F.resolve(R.gitRoot):k,g=af(R,k,x),h={messages:[],title:R.title??"",gitRoot:x??"",...R.tag!==void 0?{tag:R.tag}:{},...g!==void 0?{runtimeInfo:g}:{},scope:"user"};await n.storage.save(I,h);let D=c(I,h,new Date().toISOString());return t.emit("session.created",D,{sessionId:I,runId:I}),D}finally{l.delete(I)}},async load(R){s();let I=await i.loadRequired(R),k=c(R,I);return t.emit("session.loaded",k,{sessionId:R,runId:R}),k},async list(R){return s(),i.assertFilter(R),(await n.listSessions(R)).filter(i.admitsSummary).map(jd)},async transcript(R){return s(),await i.loadRequired(R),n.loadFullTranscript(R)},async transcriptPage(R){s(),await i.loadRequired(R.sessionId);let I=await n.loadFullTranscript(R.sessionId);return I===null?null:yd(I,R.cursor,R.limit)},async transcriptEntryChunk(R){s(),await i.loadRequired(R.sessionId);let I=t.currentSessionSeq(R.sessionId);if(w?.sessionId===R.sessionId&&w.sessionSeq===I&&w.revision===R.revision&&w.entryIndex===R.entryIndex)return wd(R,w.revision,w.entryId,w.encoded);let k=await n.loadFullTranscript(R.sessionId);if(k===null)return null;let x=qt(k);if(R.revision!==x)throw Fe("Transcript revision changed; request a fresh observation snapshot");let g=k.transcriptEntries[R.entryIndex];if(g===void 0)throw new Error(`Transcript entry index is out of range: ${R.entryIndex}`);let h=Buffer.from(JSON.stringify(g),"utf8");return w={sessionId:R.sessionId,sessionSeq:I,revision:x,entryIndex:R.entryIndex,...typeof g.entryId=="string"?{entryId:g.entryId}:{},encoded:h},wd(R,x,w.entryId,h)},async transcriptSearch(R){s(),await i.loadRequired(R.sessionId);let I=await n.loadFullTranscript(R.sessionId);if(I===null)return null;let k=I.lineage??Fi(I.messages),x=qi(k,{query:R.query,limit:R.limit,role:R.role,scope:R.scope}),g=new Map(I.transcriptEntries.map((D,T)=>[D.entryId,T])),h=x.hits.flatMap(D=>{let T=g.get(D.entryId);return T===void 0?[]:[{...D,entryIndex:T}]});return{revision:qt(I),hits:h}},async observe(R,I){s();let k=[],x,g=!1,h=o(T=>{if(!(g||x!==void 0&&T.seq<=x))try{I(T)}catch(C){oe({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${T.type}`,detail:se(C)})}},"deliver"),D=t.service.subscribe({sessionId:R},T=>{x===void 0?k.push(T):h(T)});try{let T=await P(R);x=T.cursor;for(let C of k.splice(0).sort((H,m)=>H.seq-m.seq))h(C);return{snapshot:T,close(){g||(g=!0,k.length=0,D.close())}}}catch(T){throw g=!0,D.close(),T}},async fork(R){s();let I=await i.loadRequired(R.sessionId),k=await n.forkSession(R.sessionId,{...R.selector!==void 0?{selector:R.selector}:{},...R.newSessionId!==void 0?{sessionId:R.newSessionId}:{},...R.title!==void 0?{title:R.title}:{}});if(!k){let g=R.newSessionId??await tr(),h={...I,title:R.title??I.title,messages:I.messages.map(Rg),actorSnapshot:void 0};await n.storage.save(g,h);let D=c(g,h);return t.emit("session.created",D,{sessionId:g,runId:g}),D}let x=c(k.sessionId,k.data);return t.emit("session.created",x,{sessionId:k.sessionId,runId:k.sessionId}),x},async getSettingsVersioned(R){return s(),await i.loadRequired(R),d.read(R)},async getSettings(R){return(await this.getSettingsVersioned(R)).value},async getAutoModeStats(R){s(),await i.loadRequired(R);let I=(await d.read(R)).value;if(Se(I.permissionMode)!=="auto")return;let k=f(R);return{engine:I.autoModeEngine??k?.engine??"llm",...I.autoModeClassifierModel!==void 0?{classifierModel:I.autoModeClassifierModel}:{},denials:k?.denials??or(),breaker:k?.breaker??sr()}},async updateSettings(R,I){s();let k=await i.loadRequired(R);return(await d.update(R,I,void 0,x=>fi(k,x))).value},async updateSettingsVersioned(R,I,k){s();let x=await i.loadRequired(R);return d.update(R,I,k.expectedRevision,g=>fi(x,g))},async appendNotice(R){s(),await i.loadRequired(R.sessionId);let I=await n.appendClientNotice(R.sessionId,{content:R.content,...R.source!==void 0?{source:R.source}:{}});return I&&t.emit("session.notice.appended",{sessionId:R.sessionId,entry:I},{sessionId:R.sessionId,runId:R.sessionId}),I},async rewind(R){s(),await i.loadRequired(R.sessionId),mi(R.sessionId,a);let I=await n.rewindSession(R.sessionId,{...R.selector!==void 0?{selector:R.selector}:{}});if(!I)return null;let k=c(R.sessionId,I);return t.emit("session.rewound",{sessionId:R.sessionId,selector:R.selector,session:k},{sessionId:R.sessionId,runId:R.sessionId}),k},async setActiveEntry(R){s(),await i.loadRequired(R.sessionId),mi(R.sessionId,a);let I=await n.setActiveEntry(R.sessionId,R.entryId);if(!I)return null;let k=c(R.sessionId,I);return t.emit("session.active_entry.updated",{sessionId:R.sessionId,entryId:R.entryId,session:k},{sessionId:R.sessionId,runId:R.sessionId}),k},async compact(R){s();let I=await i.loadRequired(R.sessionId);mi(R.sessionId,a);let k=Date.now(),x=I.lineage?.entries.filter(h=>h.type==="compaction").length??0;t.emit("context.compaction.started",{meta:{contextId:R.sessionId,contextKind:"root",contextRevision:x}},{sessionId:R.sessionId,runId:R.sessionId});let g=x;try{let h=(await d.read(R.sessionId)).value,D=await n.compactSession(R.sessionId,{...R.provider!==void 0?{provider:R.provider}:{},...R.model!==void 0?{model:R.model}:{},...R.customInstructions!==void 0?{customInstructions:R.customInstructions}:{},...R.contextWindow!==void 0?{contextWindow:R.contextWindow}:{},...(R.triggerPercent??h.compactionTriggerPercent)!==void 0?{triggerPercent:R.triggerPercent??h.compactionTriggerPercent}:{},...(R.triggerTokens??h.compactionTriggerTokens)!==void 0?{triggerTokens:R.triggerTokens??h.compactionTriggerTokens}:{}}),T=await n.loadSession(R.sessionId),C=T?c(R.sessionId,T):void 0;return g=T?.lineage?.entries.filter(H=>H.type==="compaction").length??x,t.emit("context.compaction.finished",{contextId:R.sessionId,contextKind:"root",contextRevision:g,source:"manual",tokensBefore:D.tokensBefore,tokensAfter:D.tokensAfter,committed:D.compacted,elapsedMs:Date.now()-k,beforeRevision:x,afterRevision:g,...D.report??{},...D.reason!==void 0?{reason:D.reason}:{}},{sessionId:R.sessionId,runId:R.sessionId}),D.compacted&&t.emit("session.compacted",{sessionId:R.sessionId,result:{compacted:D.compacted,tokensBefore:D.tokensBefore,tokensAfter:D.tokensAfter},...C!==void 0?{session:C}:{}},{sessionId:R.sessionId,runId:R.sessionId}),{...D,...C!==void 0?{session:C}:{}}}finally{t.emit("context.compaction.ended",{meta:{contextId:R.sessionId,contextKind:"root",contextRevision:g}},{sessionId:R.sessionId,runId:R.sessionId})}},async archive(R){if(s(),await i.loadRequired(R),!await n.archiveSession(R))throw new Error(`Session not found or not archived: ${R}`)},async unarchive(R){if(s(),await i.loadRequired(R),!await n.unarchiveSession(R))throw new Error(`Session not found or not unarchived: ${R}`)},async delete(R){s(),await i.loadRequired(R);let I=await n.deleteSession(R);gg(R,I),d.release(R),v(R)}}}o(vp,"createRuntimeSessionService");function Ip(e){let n=new Map,t=new Map,r=new Map,s=new Map,a=new Map,d=new Map,u=new Map;for(let m of e.runs.values())d.set(m.sessionId,Math.max(d.get(m.sessionId)??0,m.sessionOrder));let p=o(m=>{let S=e.runs.get(m);if(!S)throw new Error(`Runtime run not found: ${m}`);return S},"getRecord"),f=o(m=>{n.get(m.sessionId)===m.runId&&n.delete(m.sessionId)},"releaseActiveRun"),v=o(m=>{t.get(m.runId)?.(),t.delete(m.runId)},"releaseActiveQueueRoute"),i=o(m=>{m.releaseAbortSignalSubscription?.(),m.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),l=o(m=>{m.actorSession===void 0||t.has(m.runId)||t.set(m.runId,xi(Yt(m.sessionId,"/root")))},"registerActiveQueueRoute"),c=o((m,S)=>{m.start?.resolve(S),m.start=void 0,delete m.providerCredential},"resolveRunStart"),w=o((m,S)=>(i(m),e.permissions.rejectForRun(m.runId,"runtime run ended"),e.userInputs.rejectForRun(m.runId,"runtime run ended"),m.start?.options.guardrails?.find(Ri)?.clearAllowedCalls(),c(m,S),v(m),f(m),Uf(e.runs),x(m.sessionId),S),"finishRun"),P=o((m,S)=>{let b=Yf(S,m),A=Qf(S),_=m.terminalEmitted?m.phase:A.phase;return m.terminalEmitted||(m.error=b.message),jt(e.bus,e.persistence,m,_,A.terminal),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,error:b}},"failedRunResult"),R=o((m,S,b)=>{let A=m.phase==="queued";m.phase==="queued"&&Np(a,m),i(m),m.running?.abort(new Error(S)),m.abortController?.abort(new Error(S)),e.permissions.rejectForRun(m.runId,S),e.userInputs.rejectForRun(m.runId,S),m.start?.options.guardrails?.find(Ri)?.clearAllowedCalls(),jt(e.bus,e.persistence,m,"cancelled",{code:"cancelled",effectOutcome:A?"none":"unknown",message:S});let _={runId:m.runId,sessionId:m.sessionId,phase:m.phase};return c(m,_),v(m),f(m),b&&!e.isClosed()&&x(m.sessionId),_},"cancelRun"),I=o(m=>{if(!m.start||e.isClosed()){R(m,"runtime closed",!1);return}m.phase="running",m.interruptInputOpen=m.actorSession!==void 0,m.queuedAt=void 0,m.runningAt=new Date().toISOString(),n.set(m.sessionId,m.runId),cn(e.bus,e.persistence,m,ke(m)),e.bus.emit("run.started",ke(m),{sessionId:m.sessionId,runId:m.runId});let S=sf({bus:e.bus,original:m.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:m,onMidTurnUserMessages:o(U=>D(m,U),"onMidTurnUserMessages")}),b=Dp({agentPlane:e.agentPlane,events:S,model:m.model,options:m.start.options,provider:m.provider,record:m,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:m.sessionId,runId:m.runId,provider:m.provider,...m.model!==void 0?{model:m.model}:{},...b.effort!==void 0?{effort:b.effort}:{},...b.thinking!==void 0?{thinking:b.thinking}:{},...b.reasoningMode!==void 0?{reasoningMode:b.reasoningMode}:{},...b.agentMode!==void 0?{agentMode:b.agentMode}:{},...m.permissionMode!==void 0?{permissionMode:m.permissionMode}:{},...m.autoModeEngine!==void 0?{autoModeEngine:m.autoModeEngine}:{},...m.autoModeClassifierModel!==void 0?{autoModeClassifierModel:m.autoModeClassifierModel}:{},...m.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:m.autoModeTimeoutMs}:{},...m.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:m.autoModeSpeculativeWindowMs}:{},...b.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:b.compaction.triggerPercent}:{},...b.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:b.compaction.triggerTokens}:{},...b.context?.executionCwd!==void 0?{executionCwd:b.context.executionCwd}:{}},{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}}),m.mode==="managed_task"){let U=new AbortController;m.abortController=U;let q=b.abortSignal,ae=o(()=>{m.releaseAbortSignalSubscription=void 0,m.interruptInputOpen=!1,U.abort(q?.reason)},"handleUpstreamAbort");q?.aborted&&ae();let ge=o(()=>zi({...b,abortSignal:U.signal},m.start.prompt),"managedOperation"),ze=m.providerCredential!==void 0?Qt(m.provider,m.providerCredential,ge):ge();q!==void 0&&!q.aborted?(q.addEventListener("abort",ae,{once:!0}),m.releaseAbortSignalSubscription=()=>{q.removeEventListener("abort",ae)}):q?.aborted&&!U.signal.aborted&&ae(),l(m),ze.then(ce=>{let Jt=m.terminalEmitted?m.phase:ce.interrupted?"interrupted":ce.success?"completed":"failed",tt=!ce.success&&!ce.interrupted&&ce.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...ce.signalReason!==void 0?{message:ce.signalReason}:{}}:void 0;return jt(e.bus,e.persistence,m,Jt,tt),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:ce,...m.terminal!==void 0?{terminal:m.terminal}:{}}}).catch(ce=>P(m,ce)).then(ce=>w(m,ce));return}let A=o(()=>Wi(b,m.start.prompt),"codingOperation"),_=m.providerCredential!==void 0?Qt(m.provider,m.providerCredential,A):A();m.running=_;let $=b.abortSignal,Q=o(()=>{m.releaseAbortSignalSubscription=void 0,m.interruptInputOpen=!1},"handleUpstreamAbort");$?.aborted?Q():$!==void 0&&($.addEventListener("abort",Q,{once:!0}),m.releaseAbortSignalSubscription=()=>{$.removeEventListener("abort",Q)}),l(m),_.result.then(U=>{let q=m.terminalEmitted?m.phase:U.interrupted?"interrupted":U.success?"completed":"failed";return jt(e.bus,e.persistence,m,q),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:U}}).catch(U=>P(m,U)).then(U=>w(m,U))},"launchRecord"),k=o(m=>{try{I(m);return}catch(S){return w(m,P(m,S)),{error:S}}},"startRecord"),x=o(m=>{let S=a.get(m);if(!S||S.length===0||n.has(m))return;let b=S.shift();if(S.length===0&&a.delete(m),!b)return;let A=e.runs.get(b);if(!A||A.phase!=="queued"){x(m);return}k(A)},"drainNext"),g=o(m=>{let S=a.get(m.sessionId)??[];S.push(m.runId),a.set(m.sessionId,S),cn(e.bus,e.persistence,m,ke(m)),e.bus.emit("run.queued",ke(m),{sessionId:m.sessionId,runId:m.runId})},"enqueue"),h=o(m=>{let S=ke(m);cn(e.bus,e.persistence,m,S),e.bus.emit("run.updated",S,{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}})},"publishRunUpdate"),D=o((m,S)=>{let b=new Map;for(let q of m.interruptInputs)q.state==="queued"&&q.queueMessageId!==void 0&&b.set(q.queueMessageId,q);let A=[],_=new Set;for(let q of S){if(_.has(q))continue;_.add(q);let ae=b.get(q);ae!==void 0&&A.push(ae)}if(A.length===0)return;let $=new Date().toISOString(),Q=A.map(q=>{if(q.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${q.inputId}`);return{inputId:q.inputId,afterRunId:q.afterRunId,input:q.input,queuedAt:q.queuedAt,deliveredAt:$,...q.origin!==void 0?{origin:q.origin}:{}}}),U={sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:Q},U,()=>{for(let q of A)q.state="delivered",q.deliveredAt=$,delete q.queueMessageId})}catch(q){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${se(q).message}`,inputIds:A.map(ae=>ae.inputId)},U),q}h(m)},"deliverInterruptInputs"),T=e.settingsOwner.subscribe((m,S)=>{for(let b of e.runs.values())b.sessionId!==m||b.phase!=="queued"&&!We(b.phase)||(b.permissionMode=S.value.permissionMode,b.autoModeEngine=Se(S.value.permissionMode)==="auto"?S.value.autoModeEngine??"llm":S.value.autoModeEngine,b.autoModeClassifierModel=S.value.autoModeClassifierModel,b.autoModeTimeoutMs=S.value.autoModeTimeoutMs,b.autoModeSpeculativeWindowMs=S.value.autoModeSpeculativeWindowMs,h(b))}),C=o(async(m,S)=>{e.ensureOpen();let b=gd(m,e.artifacts,S),A=await e.sessionAdmission.loadRequired(m.sessionId),_=(await e.settingsOwner.read(m.sessionId)).value;fi(A,_);let $=lf(m.options??{},_,b.inputArtifacts,A),Q=$.agentMode==="sa"?void 0:await e.actorRegistry.forSession(m.sessionId,$.maxConcurrentThreadsPerSession),U=$.provider??e.defaultProvider;if(!U)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let q=m;if(q.providerCredential!==void 0&&q.providerCredentialProvider!==void 0&&q.providerCredentialProvider!==U)throw mg(`Credential lease is bound to ${q.providerCredentialProvider}, not ${U}.`);let ae=$.modelOverride??$.model??e.defaultModel,ge=m.trustedRunId??Hf();if(e.runs.has(ge))throw Ut(`Runtime run already exists: ${ge}`,0);let ze=e.enableSharedInteractions||Se(_.permissionMode)==="auto";if(wf(_,ae),ze&&$.guardrails?.some(ye=>ye.kind==="tool"&&ye.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let ce=ze?og({sessionId:m.sessionId,provider:U,model:ae,options:$,permissions:e.permissions,cache:r,states:s,settingsOwner:e.settingsOwner,getRecord:o(()=>{let ye=n.get(m.sessionId);return ye===void 0?void 0:e.runs.get(ye)},"getRecord"),onEngineChange:o(ye=>{for(let qe of e.runs.values())qe.sessionId===m.sessionId&&(qe.phase==="queued"||We(qe.phase))&&qe.autoModeEngine!==ye&&(qe.autoModeEngine=ye,h(qe));e.settingsOwner.persistAutoModeEngine(m.sessionId,ye).catch(qe=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${se(qe).message}`},{sessionId:m.sessionId,runId:m.sessionId})})},"onEngineChange")}):void 0;await ce?.prepare?.();let Jt=ce===void 0?$:{...$,guardrails:[...$.guardrails??[],ce]},tt=new Date().toISOString(),Ii=o(()=>{},"resolveResult"),ki=new Promise(ye=>{Ii=ye}),Nn=m.requiredAfterRunId,ln=Nn===void 0?void 0:p(Nn);if(ln!==void 0){if(ln.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${Nn} does not belong to session ${m.sessionId}`);if(!We(ln.phase)&&ln.phase!=="queued")throw new $t(ln.runId)}let bi=(d.get(m.sessionId)??0)+1;d.set(m.sessionId,bi);let Vt=ln!==void 0||n.has(m.sessionId),rt={runId:ge,sessionId:m.sessionId,phase:Vt?"queued":"running",startedAt:tt,sessionOrder:bi,...Vt?{queuedAt:tt}:{},provider:U,...ae!==void 0?{model:ae}:{},...m.permissionBroker!==void 0?{permissionBroker:m.permissionBroker}:{},..._.permissionMode!==void 0?{permissionMode:_.permissionMode}:{},..._.autoModeClassifierModel!==void 0?{autoModeClassifierModel:_.autoModeClassifierModel}:{},..._.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:_.autoModeTimeoutMs}:{},..._.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:_.autoModeSpeculativeWindowMs}:{},...Se(_.permissionMode)==="auto"?{autoModeEngine:_.autoModeEngine??"llm"}:_.autoModeEngine!==void 0?{autoModeEngine:_.autoModeEngine}:{},...$.reasoningMode!==void 0?{reasoning:$.reasoningMode}:{},mode:m.mode??"coding",...m.providerCredential!==void 0?{providerCredential:m.providerCredential}:{},hadProviderCredential:m.providerCredential!==void 0,...m.origin!==void 0?{origin:m.origin}:{},...Nn!==void 0?{continuation:{inputId:ge,afterRunId:Nn,delivery:"after_turn",contentPreview:hd(b.prompt)}}:{},interruptInputs:[],...m.agentContext??e.defaultAgentContext?{agentContext:m.agentContext??e.defaultAgentContext}:{},...Q?{actorSession:Q}:{},interruptInputOpen:!1,result:ki,start:{prompt:b.prompt,inputArtifacts:b.inputArtifacts,options:Jt,resolve:Ii},terminalEmitted:!1};if(e.runs.set(ge,rt),Vt)g(rt);else{let ye=k(rt);if(ye!==void 0)throw ye.error}return{runId:ge,sessionId:m.sessionId,get turnId(){return rt.turnId},result:ki}},"startRun"),H=o((m,S="runtime.runs.start")=>{let A=(u.get(m.sessionId)??Promise.resolve()).then(()=>C(m,S)),_=A.then(()=>{},()=>{});return u.set(m.sessionId,_),_.then(()=>{u.get(m.sessionId)===_&&u.delete(m.sessionId)}),A},"start");return{start:H,async submitInput(m){e.ensureOpen(),await e.sessionAdmission.loadRequired(m.sessionId);let S=p(m.afterRunId);if(S.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${m.afterRunId} does not belong to session ${m.sessionId}`);if(!We(S.phase)&&S.phase!=="queued")return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(m.delivery==="interrupt"){if(!We(S.phase)||n.get(m.sessionId)!==S.runId)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(S.actorSession===void 0)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"unsupported_capability"};if(!S.interruptInputOpen)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"interrupt_window_closed"};if(m.credential!==void 0||m.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let $=gd({sessionId:m.sessionId,input:m.input},e.artifacts,"runtime.runs.submitInput"),Q=structuredClone(m.input),U=m,q=U.trustedInputId??Kf();if(S.interruptInputs.some(ce=>ce.inputId===q))throw Ut(`Runtime interrupt input already exists: ${q}`,0);let ae=Di({sessionId:m.sessionId,content:$.prompt,inputArtifacts:$.inputArtifacts,provider:S.provider,...S.model!==void 0?{model:S.model}:{}}),ge=new Date().toISOString(),ze={inputId:q,afterRunId:m.afterRunId,delivery:"interrupt",state:"queued",contentPreview:hd($.prompt),queuedAt:ge,...U.origin!==void 0?{origin:U.origin}:{},input:Q,queueMessageId:ae};return S.interruptInputs.push(ze),h(S),e.bus.emit("run.input.queued",{input:Wd(ze)},{sessionId:S.sessionId,runId:S.runId,...S.turnId!==void 0?{turnId:S.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:q,runId:S.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:S.sessionOrder}}let b=m,A;try{A=await H({sessionId:m.sessionId,input:m.input,...b.options!==void 0?{options:b.options}:{},...b.providerCredential!==void 0?{providerCredential:b.providerCredential}:{},...b.providerCredentialProvider!==void 0?{providerCredentialProvider:b.providerCredentialProvider}:{},...b.origin!==void 0?{origin:b.origin}:{},...b.trustedRunId!==void 0?{trustedRunId:b.trustedRunId}:{},requiredAfterRunId:m.afterRunId},"runtime.runs.submitInput")}catch($){if(!($ instanceof $t))throw $;return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"}}let _=p(A.runId).sessionOrder;return{accepted:!0,delivery:m.delivery,runId:A.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:_}},async await(m){e.ensureOpen();let S=e.runs.get(m);if(S)return await e.sessionAdmission.assertRunAccess(S.sessionId),S.result;let b=e.persistence.loadRunStatus(m);if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),zd(b);throw new Error(`Runtime run not found: ${m}`)},async get(m){e.ensureOpen();let S=e.runs.get(m);if(S)return await e.sessionAdmission.assertRunAccess(S.sessionId),ke(S);let b=e.persistence.loadRunStatus(m);if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),b;throw new Error(`Runtime run not found: ${m}`)},async list(m){e.ensureOpen(),m?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(m.sessionId);let S=[...e.runs.values()].filter(b=>Wf(b,m)).map(ke);return pi(S,e.sessionAdmission)},async abort(m){e.ensureOpen();let S=p(m);await e.sessionAdmission.assertRunAccess(S.sessionId),(S.phase==="queued"||We(S.phase))&&R(S,"runtime run aborted",!0)},async setModel(m,S){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.model=S,b.running?.setModel(S),h(b)},async setProvider(m,S){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.provider=S,b.running?.setProvider(S),h(b)},async setReasoning(m,S){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.reasoning=S,b.running?.setReasoning(S),h(b)},closeAll(m){T.close();for(let S of e.runs.values())(S.phase==="queued"||We(S.phase))&&R(S,m,!1);n.clear(),r.clear(),s.clear(),a.clear()},releaseSession(m){for(let S of r.get(m)?.values()??[])S.guardrail.clearAllowedCalls();r.delete(m),s.delete(m)},getAutoModeStats(m){let S=s.get(m);return S===void 0?void 0:{engine:S.engine,denials:S.denials,breaker:S.breaker}}}}o(Ip,"createRuntimeRunService");function kp(){let e=$i();return{async list(n){let t=e.list(),r=n?.runId?t.filter(s=>s.runId===n.runId):t;return n?.limit===void 0?r:r.slice(0,n.limit)},async get(n){return e.getWorkflowProcessSnapshot(n)},subscribe(n,t){return{close:e.subscribeWorkflowProcess(s=>{n.runId&&s.snapshot.runId!==n.runId||n.activeOnly===!0&&Jf(s.snapshot.status)||t(s)})}},async pause(n){return e.pause(n)},async resume(n){return e.resume(n)},async stop(n){return e.stop(n)}}}o(kp,"createRuntimeWorkflowService");function bp(e,n){return{async read(){return e(),An(Me(n))},async patch(t){return e(),Sf(t,"runtime.config.patch"),kf(n,vf(t)),An(Me(n))},async reload(){return e(),n!==void 0?(Bd(n),{ok:!0,config:An(Me(n))}):{ok:!0,config:An(eo())}}}}o(bp,"createRuntimeConfigService");function Pp(e,n){return{async providers(){return e(),dr()},async models(t){return e(),_f(dr(),t)},async commands(t){return e(),vd(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return vd(t.projectRoot).find(s=>s.name.trim().toLowerCase()===r||(s.aliases??[]).some(a=>a.trim().toLowerCase()===r))??null},async skills(t){e();let r=await Zt(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(Ff)},async describeSkill(t){e();let r=await Zt(t.projectRoot);return r.has(t.name)?qf(await r.loadFull(t.name)):null},async customProviders(){return e(),bf(n)},async upsertCustomProvider(t){return e(),Pf(n,t)},async deleteCustomProvider(t){return e(),Ef(n,t)},async extensions(){e();let t=mn();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=mn();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}o(Pp,"createRuntimeCatalogService");function Ep(e,n){return{async listServers(){return e(),li(n)},async getServer(t){return e(),Df(n,t)},async validateServer(t,r){e();try{return ur(t,r),{ok:!0,config:structuredClone(r)}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}},async upsertServer(t,r){return e(),Tf(n,t,r)},async deleteServer(t){return e(),Af(n,t)},async reloadServers(){e();let t=nr(li(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=li(n),s=t?.server!==void 0?[t.server]:Object.keys(r),a=nr(r);try{let d=[];for(let u of s)d.push(await a.listTools(u,{forceRefresh:t?.forceRefresh===!0}));return d}finally{await a.dispose()}}}}o(Ep,"createRuntimeMcpService");function xp(){let e=new Map;return{service:{async create(r){if(!cf(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let s=F.resolve(r.path),a;try{a=await N.promises.stat(s)}catch(p){throw new Error(`Runtime artifact path is not readable: ${s}`,{cause:p})}if(!a.isFile())throw new Error(`Runtime artifact path must be a regular file: ${s}`);if(a.size>Ya)throw new Error(`Runtime artifact exceeds the ${Ya}-byte limit: ${s}`);let d=`art_${Re().replace(/-/g,"").slice(0,12)}`,u={id:d,kind:r.kind,path:s,sizeBytes:a.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(d,u),u},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:o(r=>{let s=e.get(r);if(!s)throw new Error(`Runtime artifact not found: ${r}`);return s},"resolve")}}o(xp,"createRuntimeArtifactStore");function Dp(e){let{agentPlane:n,events:t,model:r,options:s,provider:a,record:d,sessionManager:u}=e,p=s.events?.exitPlanMode===void 0,f=p||d.actorSession!==void 0||!!(n&&d.agentContext);return{...s,provider:a,...r!==void 0?{modelOverride:r}:{},session:{...s.session??{},id:d.sessionId,storage:u.storage,persistedByHost:!1},events:t,...f?{context:{...s.context??{},...p?{excludeTools:[...new Set([...s.context?.excludeTools??[],"exit_plan_mode"])]}:{},...d.actorSession?{actorSession:d.actorSession}:{},...n&&d.agentContext?{agentExecutorPlane:{plane:n,context:d.agentContext}}:{}}}:{}}}o(Dp,"buildRunOptions");function Ft(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}o(Ft,"assertRuntimeAgentContext");function Tp(e,n){let t=[],r=new Set(e.skills);for(let a of n.requiredSkills??[])r.has(a)||t.push(`required skill is unavailable: ${a}`);let s=n.requiredCapabilities;if(s)for(let a of["streaming","durableTasks","inputRequired","cancellation","artifacts"])s[a]===!0&&e.capabilities[a]!=="supported"&&t.push(`required capability ${a} is ${e.capabilities[a]}`);return t}o(Tp,"localAgentReasons");function oi(e){return Ft(e),jn(e).map(n=>{let t=Tp(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}o(oi,"runtimeLocalListings");function Ap(e,n,t){let r=new Map,s=o((a,d)=>{let u=r.get(a);if(u)return u.then(f=>{let v=f.rootControl().list().maxConcurrentThreads;if(d!==void 0&&d!==v)throw new Error(`Actor concurrency for ${a} is already ${v}; cannot change it to ${d}.`);return f});let p=(async()=>{let f=await e.storage.load(a);if(!f)throw new Error(`Session not found: ${a}`);let v=f.actorSnapshot?.maxConcurrentThreads;if(v!==void 0&&d!==void 0&&v!==d)throw new Error(`Persisted Actor concurrency for ${a} is ${v}; requested ${d}.`);let i={async load(){return(await e.storage.load(a))?.actorSnapshot},save(c,w){return e.storage.saveActorSnapshot(a,c,w)}},l=new Bi({sessionId:a,store:i,maxConcurrentThreadsPerSession:d??v,...n?{executor:Ui({plane:n,context:t??{actorId:`runtime:${a}`}})}:{}});return await l.initialize(),l})();return r.set(a,p),p.catch(()=>r.delete(a)),p},"forSession");return{forSession:s,async root(a){return(await s(a)).rootControl()},async activeTurns(a){return(await Promise.all(a.map(async u=>({sessionId:u,root:(await s(u)).rootControl()})))).flatMap(({sessionId:u,root:p})=>p.list().actors.flatMap(f=>f.currentTurnId&&f.path!=="/root"?[{sessionId:u,actorPath:f.path,turnId:f.currentTurnId,kind:f.kind}]:[]))},async close(a){let d=await Promise.allSettled([...r.values()]);await Promise.all(d.flatMap(u=>u.status==="fulfilled"?[u.value.close(a)]:[])),r.clear()}}}o(Ap,"createRuntimeAgentActorRegistry");function Mp(e,n,t,r){return{execution:n,enabled:e!==void 0,async listDispatchable(s){Ft(s);let a=jn(s);return e?e.listDispatchable(s,a):oi(s)},async describe(s,a){Ft(a);let d=jn(a);return e?e.describe(s,a,d):oi(a).find(u=>u.descriptor.agentId===s)},async preflight(s){Ft(s.query);let a=jn(s.query);if(e)return e.preflight(s,a);let d=oi(s.query).find(p=>p.descriptor.agentId===s.agentId),u=d?[]:["agent is not dispatchable"];return d&&s.expectedConfigurationRevision!==void 0&&d.descriptor.configurationRevision!==s.expectedConfigurationRevision&&u.push("configuration revision changed"),{ok:d!==void 0&&u.length===0,...d?{descriptor:d.descriptor}:{},dispatchability:d?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:u},reasons:u}},async tree(s){return await r.loadRequired(s),(await t.root(s)).list()},async detail(s,a){return await r.loadRequired(s),(await t.root(s)).get(a)},async spawn(s,a){return await r.loadRequired(s),(await t.root(s)).spawn(a)},async send(s,a,d,u){await r.loadRequired(s),await(await t.root(s)).send(a,d,u)},async followup(s,a,d,u){return await r.loadRequired(s),(await t.root(s)).followup(a,d,void 0,u)},async interrupt(s,a,d){await r.loadRequired(s),await(await t.root(s)).interrupt(a,d)},async output(s,a,d){return await r.loadRequired(s),(await t.root(s)).output(a,d)},async events(s,a){return await r.loadRequired(s),(await t.root(s)).eventSnapshot(a)},async wait(s,a,d){return await r.loadRequired(s),(await t.root(s)).wait(a,d)}}}o(Mp,"createRuntimeAgentService");function si(){return new Error("Runtime external agent executor plane is not enabled.")}o(si,"externalAgentsDisabled");function Cp(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw si()},async setEnabled(){throw si()},async remove(){throw si()}}}}o(Cp,"createRuntimeAdminService");function _p(e){return{async snapshot(){let n=await pi([...e.runs.values()].map(ke),e.sessionAdmission);return{runtimeId:e.identity.runtimeId,mode:e.identity.mode,profile:e.identity.profile,startedAt:e.identity.startedAt,sessions:(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(jd),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await pi([...e.runs.values()].map(ke),e.sessionAdmission),t=n.filter(v=>v.phase==="running"||v.phase==="waiting_permission"||v.phase==="waiting_user_input"),r=n.filter(v=>v.phase==="queued"),s=(await e.workflows.list({})).filter(v=>v.status!=="completed"&&v.status!=="failed"&&v.status!=="denied"&&v.status!=="stopped"),a=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(v=>v.id),d=await e.actors.activeTurns(a),u=await e.permissions.service.listPending(),p=await e.userInputs.service.listPending(),f=[];return t.length>0&&f.push("active_runs"),r.length>0&&f.push("queued_runs"),s.length>0&&f.push("active_workflows"),d.length>0&&f.push("active_agent_turns"),d.length>0&&f.push("active_agent_tasks"),(u.length>0||p.length>0)&&f.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:s,activeAgentTurns:d,activeAgentTasks:d,pendingPermissions:u,pendingUserInputs:p,blockers:f,canStop:f.length===0}}}}o(_p,"createRuntimeStatusService");function Op(e){return{latestContextBudget(n){return rd(e,"context.budget.snapshot",n)},latestToolExposure(n){return rd(e,"tool.exposure.planned",n)}}}o(Op,"createRuntimeDiagnosticsService");async function rd(e,n,t){let r={type:n,limit:100,...t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return(await e.replay(r)).at(-1)?.payload??null}o(rd,"latestRuntimeDiagnosticPayload");function We(e){return e==="running"||e==="waiting_permission"||e==="waiting_user_input"}o(We,"isActiveRunPhase");function Np(e,n){let t=e.get(n.sessionId);if(!t)return;let r=t.filter(s=>s!==n.runId);r.length===0?e.delete(n.sessionId):e.set(n.sessionId,r)}o(Np,"removeQueuedRun");function Lp(e){let n=!1,t=[],r=new Map,s=new Map,a=new Set,d=o((i,l)=>l?!(l.sessionId!==void 0&&i.sessionId!==l.sessionId||l.runId!==void 0&&i.runId!==l.runId||l.type!==void 0&&!(Array.isArray(l.type)?l.type:[l.type]).includes(i.type)):!0,"matches"),u=o(i=>{t.push(i),t.length>Ht&&t.splice(0,t.length-Ht)},"remember"),p=o((i,l,c)=>{let w=e.nextEventSeq();return{id:`evt_${w}_${Re().replace(/-/g,"").slice(0,8)}`,seq:w,time:new Date().toISOString(),sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{},type:i,payload:l}},"createEvent"),f=o(i=>{for(let l of[...a])if(d(i,l.filter))try{l.listener(i)}catch(c){oe({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${i.type}`,detail:{eventId:i.id,error:se(c)}})}},"notify");return{service:{subscribe(i,l){if(n)throw new Error("KodaX runtime event bus is closed");let c={filter:i,listener:l};return a.add(c),{close(){a.delete(c)}}},async replay(i){let l=e.replay(i),c=new Map;for(let P of l)c.set(P.id,P);for(let P of t)c.set(P.id,P);let w=[...c.values()].filter(P=>d(P,i)&&(i?.sinceSeq===void 0||P.seq>i.sinceSeq)).sort((P,R)=>P.seq-R.seq||P.time.localeCompare(R.time));return i?.limit===void 0?w:w.slice(-i.limit)}},emit(i,l,c){let w=p(i,l,c);s.set(w.sessionId,w.seq);let P=r.get(w.sessionId)??ai();r.set(w.sessionId,P),id(P,w),u(w);let R=[w];try{e.appendEvent(w)}catch(I){let k=p("runtime.warning",{message:se(I).message,sourceEventId:w.id},c);u(k),R.push(k)}for(let I of R)f(I);return w},emitDurable(i,l,c,w){let P=p(i,l,c);e.appendDurableEvent(P),w?.(),s.set(P.sessionId,P.seq);let R=r.get(P.sessionId)??ai();return r.set(P.sessionId,R),id(R,P),u(P),f(P),P},projectSession(i){let l=r.get(i);return od(l===void 0?ai():l)},currentSessionSeq(i){let l=s.get(i);if(l!==void 0)return l;let c=$p(e.replay({sessionId:i}));return s.set(i,c),c},close(){n=!0;try{e.close()}catch(i){oe({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:i})}a.clear(),r.clear(),s.clear()}}}o(Lp,"createRuntimeEventBus");function ai(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}o(ai,"createRuntimeSessionLiveProjectionState");function id(e,n){let t=X(n.payload)?n.payload:void 0;if(!Fp(n.type,t)){if(n.type==="assistant.delta"&&typeof t?.text=="string")e.assistantTextByRun[n.runId]=`${e.assistantTextByRun[n.runId]??""}${t.text}`;else if(n.type==="thinking.delta"&&typeof t?.text=="string")e.thinkingTextByRun[n.runId]=`${e.thinkingTextByRun[n.runId]??""}${t.text}`;else if(n.type==="tool.started"){let r=di(n);e.activeTools.set(r,{key:r,runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},started:n.payload})}else if(n.type==="tool.progress"){let r=di(n),s=e.activeTools.get(r)??Hp(e.activeTools,n.runId);s&&e.activeTools.set(s.key,{...s,progress:n.payload})}else if(n.type==="tool.finished"){let r=di(n);if(!e.activeTools.delete(r))for(let[s,a]of e.activeTools)a.runId===n.runId&&e.activeTools.delete(s)}else if(n.type==="todo.updated")e.todo=n.payload;else if(n.type==="run.progress"&&t?.kind==="managed_task_status"){let r=qp(t.status);r!==void 0&&e.managedTasks.set(n.runId,{runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},status:r})}else if(n.type==="user_input.requested"&&(typeof t?.id=="string"||typeof t?.requestId=="string")){let r=typeof t?.id=="string"?t.id:t.requestId;e.pendingUserInputs.set(r,{requestId:r,runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},detail:n.payload})}else if(n.type==="user_input.resolved"&&typeof t?.requestId=="string")e.pendingUserInputs.delete(t.requestId);else if(Nd(n.type)){delete e.assistantTextByRun[n.runId],delete e.thinkingTextByRun[n.runId];for(let[r,s]of e.activeTools)s.runId===n.runId&&e.activeTools.delete(r);for(let[r,s]of e.pendingUserInputs)s.runId===n.runId&&e.pendingUserInputs.delete(r);e.managedTasks.delete(n.runId)}}}o(id,"applyRuntimeSessionEvent");var jp=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.finished","todo.updated"]);function Fp(e,n){if(!jp.has(e))return!1;let t=X(n?.meta)?n.meta:void 0;if(!t)return!1;if(t.contextKind==="child"||typeof t.childAgentId=="string"&&t.childAgentId.length>0)return!0;let r=X(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}o(Fp,"isChildOwnedPrimaryLiveEvent");function od(e){return{assistantTextByRun:{...e.assistantTextByRun},thinkingTextByRun:{...e.thinkingTextByRun},activeTools:[...e.activeTools.values()],...e.todo!==void 0?{todo:e.todo}:{},pendingUserInputs:[...e.pendingUserInputs.values()],managedTasks:[...e.managedTasks.values()]}}o(od,"snapshotRuntimeSessionLiveProjection");function qp(e){if(!(!X(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}o(qp,"parseRuntimeManagedTaskStatus");function $p(e){return e.at(-1)?.seq??0}o($p,"latestRuntimeEventSeq");function di(e){let n=X(e.payload)?e.payload:void 0,t=X(n?.meta)?n.meta:void 0,r=X(n?.tool)?n.tool:void 0,s=X(n?.update)?n.update:void 0,a=X(n?.result)?n.result:void 0,d=t?.toolCallId??t?.toolUseId??r?.id??s?.id??a?.id??a?.toolCallId;return typeof d=="string"&&d.length>0?`${e.runId}:${d}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}o(di,"runtimeToolProjectionKey");function Hp(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}o(Hp,"latestActiveToolForRun");function Nd(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}o(Nd,"isTerminalRuntimeEvent");function Kp(e){let n=e.homeDir?F.resolve(e.homeDir):e.sessionsDir?F.resolve(e.sessionsDir,".."):process.cwd(),t=e.sharedDaemonHost===!0?F.join(n,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):F.join(n,".kodax","runtime"),r=F.join(t,"runs"),s=F.join(t,"session-settings"),a=F.join(t,"permission-grants.json"),d=F.join(t,"event-sequence"),u=new Map,p=0,f,v,i,l=!1,c=o(S=>F.join(r,encodeURIComponent(S)),"runDir"),w=o(S=>F.join(c(S),"events.jsonl"),"eventFile"),P=o(S=>F.join(c(S),"status.json"),"statusFile"),R=o(S=>F.join(s,`${encodeURIComponent(S)}.json`),"sessionSettingsFile"),I=[],k=new Set,x=o(()=>{let S=0;if(N.existsSync(d))try{let b=Number.parseInt(N.readFileSync(d,"utf-8").trim(),10);Number.isSafeInteger(b)&&b>0&&(S=b)}catch(b){oe({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:b})}if(!N.existsSync(r))return S;for(let b of N.readdirSync(r,{withFileTypes:!0})){if(!b.isDirectory())continue;let A=F.join(r,b.name,"events.jsonl");if(!N.existsSync(A))continue;let _=N.statSync(A).size,$=Math.min(_,ip),Q=Buffer.allocUnsafe($),U=N.openSync(A,"r");try{N.readSync(U,Q,0,$,_-$)}finally{N.closeSync(U)}let q=Q.toString("utf-8").split(/\r?\n/);$<_&&q.shift();for(let ae of q)if(ae.trim())try{let ge=JSON.parse(ae);sd(ge)&&Number.isSafeInteger(ge.seq)&&(S=Math.max(S,ge.seq))}catch{}}return S},"findMaxPersistedEventSeq"),g=o(()=>{i===void 0&&(i=x()+1);let S=i;return i+=1,l=!0,S},"allocateEventSeq"),h=o((S,b,A)=>{if(k.has(S))return;k.add(S);let _=g(),$={id:`evt_persist_warn_${_}_${Re().replace(/-/g,"").slice(0,8)}`,seq:_,time:new Date().toISOString(),sessionId:A.sessionId??"runtime",runId:A.runId??A.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:b,...A.file!==void 0?{file:A.file}:{}}};I.push($),I.length>Ht&&I.splice(0,I.length-Ht)},"pushPersistenceWarning"),D=o((S,b)=>[...S,...I].filter(A=>Bp(A,b)).sort((A,_)=>A.seq-_.seq||A.time.localeCompare(_.time)),"withPersistenceWarnings"),T=o((S,b)=>{if(!N.existsSync(S))return[];let A=N.readFileSync(S,"utf-8"),_=[],$=A.split(/\r?\n/);for(let Q=0;Q<$.length;Q+=1){let U=$[Q]??"";if(U.trim())try{let q=JSON.parse(U);sd(q)?_.push(q):h(`${S}:${Q+1}:shape`,`Skipped malformed runtime event record at ${F.basename(S)}:${Q+1}`,{runId:b,file:S})}catch(q){h(`${S}:${Q+1}:parse`,`Skipped malformed runtime event record at ${F.basename(S)}:${Q+1}: ${se(q).message}`,{runId:b,file:S})}}return _},"readEventsFromFile"),C=o(S=>{if(N.statSync(S).size<=Dd)return;let b=N.readFileSync(S,"utf-8").trimEnd().split(/\r?\n/),A=[],_=0;for(let $=b.length-1;$>=0;$-=1){let Q=b[$]??"";if(!Q)continue;let U=Buffer.byteLength(Q,"utf-8")+1;if(A.length>0&&_+U>rp)break;A.push(Q),_+=U}A.reverse(),N.writeFileSync(S,A.length>0?`${A.join(`
68
68
  `)}
69
69
  `:"","utf-8")},"trimEventFile"),H=o(()=>{f!==void 0&&(clearTimeout(f),f=void 0);for(let[S,b]of u){let A=b.join(""),_=Buffer.byteLength(A,"utf-8"),$=c(S),Q=w(S);N.mkdirSync($,{recursive:!0}),N.appendFileSync(Q,A,"utf-8"),u.delete(S),p=Math.max(0,p-_),C(Q)}l&&i!==void 0&&(N.mkdirSync(t,{recursive:!0}),N.writeFileSync(d,String(i-1),"utf-8"),l=!1),v=void 0},"flushBufferedEvents"),m=o(()=>{f===void 0&&(f=setTimeout(()=>{f=void 0;try{H()}catch(S){v=se(S),oe({source:"runtime.persistence",level:"error",message:"Failed to flush buffered runtime events",detail:S})}},tp),f.unref?.())},"scheduleEventFlush");return{runtimeDir:t,appendDurableEvent(S){H();let b=c(S.runId),A=w(S.runId);N.mkdirSync(b,{recursive:!0}),N.appendFileSync(A,`${JSON.stringify(S)}
70
70
  `,"utf-8");try{C(A)}catch(_){h(`${A}:trim`,`Failed to trim runtime event file: ${se(_).message}`,{runId:S.runId,file:A})}},appendEvent(S){let b=`${JSON.stringify(S)}