@kodax-ai/kodax 0.7.82 → 0.7.84

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 (63) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +20 -0
  3. package/README_CN.md +10 -0
  4. package/dist/chunks/{agent-4UTCCMD5.js → agent-VMXNVYRK.js} +1 -1
  5. package/dist/chunks/argument-completer-QCS6GUAE.js +2 -0
  6. package/dist/chunks/{chunk-WMYCNECP.js → chunk-4ZI2CPUQ.js} +142 -67
  7. package/dist/chunks/{chunk-7ZN2MLVM.js → chunk-726WJGGY.js} +1 -1
  8. package/dist/chunks/{chunk-S6JTWDN6.js → chunk-A7L7XTUH.js} +1 -1
  9. package/dist/chunks/{chunk-XTCDCU2Q.js → chunk-BBBS644N.js} +4 -4
  10. package/dist/chunks/{chunk-JDZFNWMZ.js → chunk-ET2BMEQQ.js} +2 -2
  11. package/dist/chunks/{chunk-ZOBNDWOA.js → chunk-F44YYR6Z.js} +1 -1
  12. package/dist/chunks/{chunk-GIVYTXQW.js → chunk-GRLC3N46.js} +155 -155
  13. package/dist/chunks/{chunk-VQBJMNFD.js → chunk-OHZFGQEH.js} +2 -2
  14. package/dist/chunks/{chunk-ZZUIO5KL.js → chunk-TDJS5SFS.js} +1 -1
  15. package/dist/chunks/{chunk-NINELPXH.js → chunk-WTYAZOWO.js} +1 -1
  16. package/dist/chunks/chunk-WXHHZZRJ.js +379 -0
  17. package/dist/chunks/{chunk-KH2HED37.js → chunk-ZVPTDYDI.js} +2 -2
  18. package/dist/chunks/{compaction-config-IDL5JQVI.js → compaction-config-QTMFP7AF.js} +1 -1
  19. package/dist/chunks/{construction-bootstrap-STYUR6XA.js → construction-bootstrap-EVQ6VWSX.js} +1 -1
  20. package/dist/chunks/{dist-RKBHBUHV.js → dist-XRH6CRLL.js} +1 -1
  21. package/dist/chunks/{host-RF2IX3N6.js → host-F4TPD6WY.js} +1 -1
  22. package/dist/chunks/{run-manager-WE2KPAKZ.js → run-manager-PYD46OGY.js} +1 -1
  23. package/dist/chunks/{utils-Z2RSAENX.js → utils-TOTTXU2I.js} +1 -1
  24. package/dist/index.d.ts +13 -13
  25. package/dist/index.js +5 -5
  26. package/dist/kodax_bootstrap.js +1 -1
  27. package/dist/kodax_cli.js +1716 -1292
  28. package/dist/kodax_resume.js +140 -65
  29. package/dist/runtime-worker.js +1567 -1143
  30. package/dist/sandbox-workspace-session.js +121 -46
  31. package/dist/sdk-a2a.d.ts +8 -8
  32. package/dist/sdk-a2a.js +5 -5
  33. package/dist/sdk-agent.d.ts +16 -9
  34. package/dist/sdk-agent.js +1 -1
  35. package/dist/sdk-coding.d.ts +13 -13
  36. package/dist/sdk-coding.js +1 -1
  37. package/dist/sdk-mcp.js +1 -1
  38. package/dist/sdk-repl.d.ts +11 -11
  39. package/dist/sdk-repl.js +1 -1
  40. package/dist/sdk-runtime.d.ts +55 -10
  41. package/dist/sdk-runtime.js +1 -1
  42. package/dist/sdk-sandbox.js +1 -1
  43. package/dist/sdk-session.d.ts +4 -4
  44. package/dist/sdk-session.js +1 -1
  45. package/dist/sdk-skills.js +1 -1
  46. package/dist/semantic-worker.js +120 -45
  47. package/dist/types-chunks/{bash-prefix-extractor.d-CJM7OY-L.d.ts → bash-prefix-extractor.d-CkdGL4rM.d.ts} +1 -1
  48. package/dist/types-chunks/{capsule.d-B7yoH4dM.d.ts → capsule.d-7wQ_kM1C.d.ts} +1 -1
  49. package/dist/types-chunks/{controller.d-CYNuR2n9.d.ts → controller.d-CesRxFL5.d.ts} +2 -0
  50. package/dist/types-chunks/{guardrail.d-fM3mn4Op.d.ts → guardrail.d-KaIeVree.d.ts} +2 -2
  51. package/dist/types-chunks/{history-retrieval.d-BDI-ZMvY.d.ts → history-retrieval.d-CbCls7r0.d.ts} +1 -1
  52. package/dist/types-chunks/{public-api.d-i10kvYFs.d.ts → public-api.d-DpRj8b7d.d.ts} +2 -2
  53. package/dist/types-chunks/{repl.d-Cs3eqGVT.d.ts → repl.d-DWeC3PLW.d.ts} +5 -5
  54. package/dist/types-chunks/{run-manager.d-CodHf6rw.d.ts → run-manager.d-BXBkLT0A.d.ts} +1 -1
  55. package/dist/types-chunks/{sdk-session-CRXu5xNs.d.ts → sdk-session-DEtS6u20.d.ts} +2 -2
  56. package/dist/types-chunks/{shell-command-sets.d-DfeSUjjM.d.ts → shell-command-sets.d-P2h4_KKL.d.ts} +1 -1
  57. package/dist/types-chunks/{types.d-DKs4tfSd.d.ts → types.d-0m3PS7Ng.d.ts} +2 -2
  58. package/dist/types-chunks/{types.d-DIXZFauU.d.ts → types.d-CUtMr2IG.d.ts} +1 -1
  59. package/dist/types-chunks/{utils.d-CgITiLyc.d.ts → utils.d-C-eSIZ9n.d.ts} +4 -4
  60. package/docs/SDK_EMBEDDER_GUIDE.md +52 -8
  61. package/package.json +2 -1
  62. package/dist/chunks/argument-completer-N7ORRJBS.js +0 -2
  63. package/dist/chunks/chunk-PGTU7JQX.js +0 -30
@@ -0,0 +1,379 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{b as Wr,h as td,i as rd}from"./chunk-A7L7XTUH.js";import{Cb as za,Eb as Ja,Fb as Va,Gb as Ga,Hb as Ya,Ib as Qa,Jb as Za,Kb as co,Ob as lo,Pb as mo,Qb as an,Wa,Zb as fo,jc as ed,kc as nd}from"./chunk-BBBS644N.js";import{Aa as Xa,k as $a,m as pn,y as Ua}from"./chunk-ET2BMEQQ.js";import{O as uo,Q as qa,X as Ba,Y as Ka,f as ja,q as ao,y as Xr}from"./chunk-OHZFGQEH.js";import{$a as so,Ca as _a,Ja as Oa,Va as oo,aa as Kr,bb as Na,cb as La,e as Ca,ea as Ta,eb as Fa,fb as Ha,ib as Ur,ta as Da,w as Aa,za as Ma}from"./chunk-F44YYR6Z.js";import{k as ka}from"./chunk-TDJS5SFS.js";import{Kc as Ea,Pb as ro,Vc as Ct,ae as Pa,c as dr,ce as xa,d as to,jd as io,xb as ur}from"./chunk-GRLC3N46.js";import{Aa as jr,Ta as Vs,a as Wi,c as rt,ya as Js}from"./chunk-TRNAWSXP.js";import{La as Zs,Pa as ea,Sa as zi,Va as Br,Wa as na,Yd as Sa,Za as ta,Zb as eo,ae as Ia,bd as no,be as ba,ed as wa,fd as va,qc as ha}from"./chunk-4ZI2CPUQ.js";import{Fa as ma,Ga as Gi,H as aa,La as fa,Ma as pa,Na as ga,Oa as ya,Pa as Ra,Qa as Yi,Z as da,_a as Qi,ab as Zi,c as Gs,d as ge,g as Ys,i as qr,j as Qs,r as sa,ra as ua,va as Vi,ya as ca,za as la}from"./chunk-EVXIJPZ6.js";import{F as oa,b as ra,d as Ji,e as ia}from"./chunk-E7C4DRD2.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as It,randomUUID as Qe}from"node:crypto";import{spawnSync as Wc}from"node:child_process";import*as $ from"node:fs";import _i from"node:os";import Y from"node:path";import{createHash as mm}from"node:crypto";import cr from"node:path";var fm=["path","file_path"],pm=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function yo(e){let n=e.platform??Jr();if(e.toolName==="bash")return ym(e,n);let t=pm.has(e.toolName)?fm.map(s=>e.toolInput[s]).find(s=>typeof s=="string"&&s.length>0):void 0;if(t!==void 0)return hm(e.toolName,t,e.executionCwd,n);let r=ho(e.executionCwd,e.executionCwd,n),o=it(Sm(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:it({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(yo,"createRuntimePermissionMatcher");function id(e,n){if(e.toolName!==n.toolName)return!1;let t=yo(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(id,"runtimePermissionMatcherMatches");function od(e){if(!Im(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"&&e.shell!=="powershell"||!zr(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!zr(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!zr(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,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:e.commandFingerprint,cwd:e.cwd,background:e.background,...e.executable!==void 0?{executable:e.executable}:{},...e.argvFingerprint!==void 0?{argvFingerprint:e.argvFingerprint}:{}};return po(n,{version:1,kind:"exact-command",toolName:n.toolName,shell:n.shell,...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{},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 po(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&zr(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return po(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(od,"parseRuntimePermissionMatcher");function po(e,n){if(it(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(po,"assertMatcherFingerprint");function gm(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)}i(gm,"hasDynamicShellExpansion");function Ro(e,n){return gm(e,n==="posix"?"posix":"win32")}i(Ro,"hasDynamicExpansionForPermissionShell");function Jr(){return process.platform==="win32"?"win32":"posix"}i(Jr,"runtimePermissionHostPlatform");function ym(e,n){let t=e.toolInput.command,r=typeof t=="string"?wm(t):"",o=ho(e.executionCwd,e.executionCwd,n),s=e.toolInput.run_in_background===!0,a=e.shell??(n==="win32"?"cmd":"posix"),c=vm(r,a),l=Rm(c?.[0],n),m=c&&c.length>1?it(c.slice(1)):void 0,R=it(r),v={version:1,kind:"exact-command",toolName:e.toolName,shell:a,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:R,cwd:o,...l!==void 0?{executable:l}:{},...m!==void 0?{argvFingerprint:m}:{},background:s};return{...v,fingerprint:it(v)}}i(ym,"createExactCommandMatcher");function Rm(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?cr.win32.basename(e.replaceAll("/","\\")):cr.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(Rm,"safeExecutableMetadata");function hm(e,n,t,r){let o=ho(n,t,r),s={version:1,kind:"exact-path",toolName:e,path:o};return{...s,fingerprint:it(s)}}i(hm,"createExactPathMatcher");function wm(e){return e.replace(/\r\n?/g,`
3
+ `).trim()}i(wm,"normalizeCommand");function ho(e,n,t){if(t==="win32"){let r=cr.win32.resolve(n.replaceAll("/","\\"));return cr.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return cr.posix.resolve(n,e)}i(ho,"normalizePermissionPath");function vm(e,n){if(e.length===0||e.includes("\0")||e.includes(`
4
+ `))return;let t=[],r="",o;for(let s=0;s<e.length;s+=1){let a=e[s]??"";if(n!=="cmd"&&a==="'"&&o!=="double"){o=o==="single"?void 0:"single";continue}if(a==='"'&&o!=="single"){o=o==="double"?void 0:"double";continue}if(a===(n==="cmd"?"^":n==="powershell"?"`":"\\")&&o!=="single"&&s+1<e.length){r+=e[s+1]??"",s+=1;continue}if(/\s/.test(a)&&o===void 0){r.length>0&&t.push(r),r="";continue}r+=a}if(o===void 0)return r.length>0&&t.push(r),t.length>0?t:void 0}i(vm,"tokenizeShellCommand");function Sm(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}i(Sm,"normalizeGenericInput");function it(e){return mm("sha256").update(go(e)).digest("hex")}i(it,"stableFingerprint");function go(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(go).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${go(n[t])}`).join(",")}}`}i(go,"stableSerialize");function zr(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}i(zr,"isSha256");function Im(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Im,"isRecord");import{createHash as bm}from"node:crypto";import In from"node:fs";import Sn from"node:path";function At(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(At,"isRecord");function sd(e){return At(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"&&At(e.capabilities)&&At(e.effects):!1}i(sd,"isRegistration");function km(e){return At(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"&&At(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}i(km,"isTask");function Em(e){return At(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}i(Em,"isEvent");function dd(e){try{return JSON.parse(In.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}`)}}i(dd,"parseJson");function ad(e,n){if(!In.existsSync(e))return[];let t=dd(e);if(!Array.isArray(t)||!t.every(n))throw new Error(`Runtime agent store file has an invalid array shape: ${e}`);return structuredClone(t)}i(ad,"readList");function wo(e,n){In.mkdirSync(Sn.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;In.writeFileSync(t,`${JSON.stringify(n,null,2)}
5
+ `,{encoding:"utf8",mode:384}),In.renameSync(t,e)}i(wo,"writeJsonAtomic");function Vr(e,n){let t=bm("sha256").update(n).digest("hex");return Sn.join(e,t)}i(Vr,"taskDirectory");function Pm(e,n){if(!In.existsSync(e))return[];let t=In.readFileSync(e,"utf8").trim();if(!t)return[];let r=0;return t.split(/\r?\n/).map((o,s)=>{let a;try{a=JSON.parse(o)}catch(c){let l=c instanceof Error?c.message:String(c);throw new Error(`Invalid Runtime agent event at ${e}:${s+1}: ${l}`)}if(!Em(a))throw new Error(`Invalid Runtime agent event shape at ${e}:${s+1}`);if(a.taskId!==n)throw new Error(`Runtime agent event taskId does not match its ledger at ${e}:${s+1}`);if(a.seq<=r)throw new Error(`Runtime agent events require a strictly increasing positive sequence at ${e}:${s+1}`);return r=a.seq,a})}i(Pm,"readEvents");function ud(e){let n=Sn.resolve(e),t=Sn.join(n,"registrations.json"),r=Sn.join(n,"task-registration-snapshots.json"),o=Sn.join(n,"tasks");return{async loadRegistrations(){return ad(t,sd)},async saveRegistrations(s){wo(t,s)},async loadTaskRegistrationSnapshots(){return ad(r,sd)},async saveTaskRegistrationSnapshots(s){wo(r,s)},async loadTasks(){if(!In.existsSync(o))return[];let s=[];for(let c of In.readdirSync(o,{withFileTypes:!0})){if(!c.isDirectory())continue;let l=Sn.join(o,c.name,"snapshot.json");if(!In.existsSync(l))continue;let m=dd(l);if(!km(m))throw new Error(`Invalid Runtime agent task shape: ${l}`);s.push({directoryName:c.name,file:l,task:m})}let a=new Set;for(let{task:c}of s){if(a.has(c.taskId))throw new Error(`Duplicate Runtime agent taskId: ${c.taskId}`);a.add(c.taskId)}for(let{directoryName:c,file:l,task:m}of s){let R=Sn.basename(Vr(o,m.taskId));if(c!==R)throw new Error(`Runtime agent task directory does not match taskId hash: ${l}`)}return s.map(({task:c})=>c)},async saveTask(s){wo(Sn.join(Vr(o,s.taskId),"snapshot.json"),s)},async loadEvents(s){return Pm(Sn.join(Vr(o,s),"events.jsonl"),s)},async appendEvent(s){let a=Sn.join(Vr(o,s.taskId),"events.jsonl");In.mkdirSync(Sn.dirname(a),{recursive:!0}),In.appendFileSync(a,`${JSON.stringify(s)}
6
+ `,{encoding:"utf8",mode:384})}}}i(ud,"createRuntimeAgentExecutorPlaneStore");import{createHash as Sd,randomUUID as lr}from"node:crypto";import Dt from"node:fs";import{mkdir as Id,readFile as bd}from"node:fs/promises";import Xe from"node:path";var kd=["read","grep","glob"],Ed=["write","edit","multi_edit","insert_after_anchor"],Pd=["mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt"],xm=["list_dispatchable_agents","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output"],Cm=new Set([...kd,...Ed]),Am=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),Tm=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]);function So(e){return Array.isArray(e)?e.map(So):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,So(t)]))}i(So,"canonicalValue");function ot(e){return Sd("sha256").update(JSON.stringify(So(e))).digest("hex")}i(ot,"stableHash");function xd(e){let n=Sd("sha256");for(let t of e)n.update(t);return n.digest("hex")}i(xd,"hashParts");function Gr(e,n){let t=Xe.relative(Xe.resolve(e),Xe.resolve(n));return t===""||!t.startsWith("..")&&!Xe.isAbsolute(t)}i(Gr,"isInside");function Io(e){if(!Dt.existsSync(e))return 0;let n=0;for(let t of Dt.readdirSync(e,{withFileTypes:!0})){let r=Xe.join(e,t.name);t.isSymbolicLink()||(t.isDirectory()?n+=Io(r):t.isFile()&&(n+=Dt.statSync(r).size))}return n}i(Io,"directoryBytes");function cd(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<=0)throw new Error("Runtime workspace byte limit must be positive.");return e}}i(cd,"validateWorkspaceByteLimit");function vo(e){if(e.mode==="managed")return{mode:"managed"};if(!Xe.isAbsolute(e.root))throw new Error("Fixed Runtime workspace root must be absolute.");return{mode:"fixed",root:Xe.resolve(e.root)}}i(vo,"normalizedWorkspace");function bo(e,n,t=!0){if(!Array.isArray(e)||!t&&e.length===0)throw new Error(`${n} must be ${t?"an":"a non-empty"} array.`);let r=e.map(o=>{if(typeof o!="string"||o.trim().length===0||o.includes("*"))throw new Error(`${n} must contain exact names without wildcards.`);return o.trim()});if(new Set(r).size!==r.length)throw new Error(`${n} contains duplicates.`);return r.sort()}i(bo,"exactList");function ld(e,n){if(!e||typeof e!="object"||Array.isArray(e))throw new Error(`${n} must be an object.`);return Object.fromEntries(Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>{if(!t||t.includes("*"))throw new Error(`${n} keys must be exact names.`);return[t,bo(r,`${n}.${t}`,!1)]}))}i(ld,"exactMap");function md(e){if(!["none","read","write"].includes(e?.workspace))throw new Error("Runtime toolPolicy.workspace is invalid.");if(!["deny","isolated"].includes(e?.process))throw new Error("Runtime toolPolicy.process is invalid.");if(!["deny","inherit"].includes(e?.subagents))throw new Error("Runtime toolPolicy.subagents is invalid.");let n=e?.network;if(!n||n.mode!=="deny"&&n.mode!=="allowlist")throw new Error("Runtime toolPolicy.network is invalid.");let t=n.mode==="deny"?{mode:"deny"}:{mode:"allowlist",origins:bo(n.origins,"Runtime toolPolicy.network.origins").map(s=>{let a=new URL(s);if(!["http:","https:"].includes(a.protocol)||a.origin!==s)throw new Error("Runtime network authority must be an exact HTTP(S) origin.");return a.origin})},r=ld(e.skillScripts,"Runtime toolPolicy.skillScripts"),o=Object.values(r).reduce((s,a)=>s+a.length,0);if(e.process==="deny"!=(o===0))throw new Error("Runtime isolated process authority and skillScripts must be enabled together.");return{workspace:e.workspace,process:e.process,network:t,tools:bo(e.tools,"Runtime toolPolicy.tools"),mcp:ld(e.mcp,"Runtime toolPolicy.mcp"),skillScripts:r,subagents:e.subagents}}i(md,"validatedToolPolicy");function Dm(e){return e==="project"?"workspace":e}i(Dm,"skillSource");function Mm(e){return[...(e.scripts??[]).map(n=>({...n,relativePath:`scripts/${n.relativePath}`})),...(e.references??[]).map(n=>({...n,relativePath:`references/${n.relativePath}`})),...(e.assets??[]).map(n=>({...n,relativePath:`assets/${n.relativePath}`})),...(e.templates??[]).map(n=>({...n,relativePath:`templates/${n.relativePath}`})),...(e.resources??[]).map(n=>({...n,relativePath:`resources/${n.relativePath}`}))].sort((n,t)=>n.relativePath.localeCompare(t.relativePath))}i(Mm,"skillFiles");async function _m(e){let n=[e.name,e.rawContent];for(let t of Mm(e))n.push(t.relativePath,await bd(t.path));return xd(n)}i(_m,"skillRevision");var Yr=class{static{i(this,"PinnedSkillRegistry")}#n;#e;constructor(n,t){this.#n=n,this.#e=new Map(t.map(r=>[r.name,r]))}get skills(){return this.#e}get size(){return this.#e.size}async discover(){}get(n){return this.#e.get(n)}has(n){return this.#e.has(n)}list(){return[...this.#e.values()]}listUserInvocable(){return this.list().filter(n=>n.userInvocable)}async loadFull(n){if(!this.has(n))throw new Error(`Skill not admitted by Runtime binding: ${n}`);return this.#n.loadFull(n)}async invoke(n,t,r){return this.has(n)?this.#n.invoke(n,t,r):{success:!1,content:"",error:`Skill not admitted: ${n}`}}async reload(){throw new Error("A bound Skill registry is immutable; create a new Runtime binding.")}},ko=class{constructor(n,t){this.formal=n;this.learned=t}formal;learned;static{i(this,"CompositeSkillRegistry")}get skills(){return new Map(this.list().map(n=>[n.name,n]))}get size(){return this.list().length}async discover(){}get(n){return this.formal.get(n)??this.learned.get(n)}has(n){return this.formal.has(n)||this.learned.has(n)}list(){let n=new Map(this.learned.list().map(t=>[t.name,t]));for(let t of this.formal.list())n.set(t.name,t);return[...n.values()]}listUserInvocable(){return this.list().filter(n=>n.userInvocable)}loadFull(n){return this.formal.has(n)?this.formal.loadFull(n):this.learned.loadFull(n)}invoke(n,t,r){return this.formal.has(n)?this.formal.invoke(n,t,r):this.learned.invoke(n,t,r)}async reload(){throw new Error("A bound Skill registry is immutable; create a new Runtime binding.")}};async function Cd(e){let n=e.workspace.mode==="fixed"?e.workspace.root:void 0,t=aa(n),r=t.userPaths.filter(a=>Xe.basename(Xe.dirname(a))===".agents"),o=n===void 0?void 0:await Ad({configHome:e.configHome,projectRoot:n,...e.bindingId===void 0?{}:{bindingId:e.bindingId},...e.ownerSessionRef===void 0?{}:{ownerSessionRef:e.ownerSessionRef}}),s=new Qi(n,{projectPaths:e.workspace.mode==="managed"?[]:t.projectPaths,userPaths:[Xe.join(e.configHome,"skills"),...r],pluginPaths:t.pluginPaths,builtinPath:t.builtinPath,...o===void 0?{}:{learnedArea:o.discovery}});try{await s.discover()}catch(a){throw await st(o,e.bindingId),a}try{let a=s.list(),l=e.selection===void 0||e.selection.includes("*")?a.filter(v=>v.source!=="project"&&!v.disableModelInvocation):e.selection.map(v=>{let y=s.get(v);if(!y)throw new Error(`Markdown Agent requires unknown Skill "${v}".`);if(y.disableModelInvocation)throw new Error(`Skill "${v}" disables model invocation.`);return y}),m=[];for(let v of l.sort((y,x)=>y.name.localeCompare(x.name))){let y=await _m(await s.loadFull(v.name));m.push({name:v.name,source:Dm(v.source),revision:y})}let R={registry:new Yr(s,l),refs:m,revision:ot(m),protectedFormalSkillNames:a.filter(v=>v.source!=="learned").map(v=>v.name),...o===void 0?{}:{learnedSkills:{store:o.store,testingCapabilityIds:o.testingCapabilityIds}}};return await Tt(o,e.bindingId),R}catch(a){throw await Tt(o,e.bindingId),a}}i(Cd,"resolveSkills");async function Ad(e){try{return await Om(e)}catch(n){ge({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this binding: ${mr(n)}`});return}}i(Ad,"tryPrepareProjectLearnedSkills");async function st(e,n){e===void 0||n===void 0||await Promise.all(e.testingCapabilityIds.map(t=>Gi(e.store,t,n)))}i(st,"releaseResolvedLearnedSkills");async function Tt(e,n){if(e===void 0||n===void 0)return;let t=await Promise.allSettled(e.testingCapabilityIds.map(r=>Gi(e.store,r,n)));for(let r of t)r.status==="rejected"&&ge({source:"runtime:learned-skills",level:"warn",message:`Learned Skill binding release requires lease recovery: ${mr(r.reason)}`})}i(Tt,"safeReleaseResolvedLearnedSkills");function mr(e){return e instanceof Error?e.message:String(e)}i(mr,"errorMessage");async function Om(e){let n=`local:${e.configHome}`,t=sa(e.projectRoot)?.trim(),r=t===void 0?`local:${Xe.resolve(e.projectRoot).toLowerCase()}`:ka(t),o=ca(e.configHome,{tenantId:n,projectId:r}),s=new ua(o);await s.initialize();let a=la(e.configHome,{tenantId:n,projectId:r});await pa(e.configHome,s,a);let c={},l=[];if(e.bindingId!==void 0&&e.ownerSessionRef!==void 0)for(let m of await s.listCapabilities()){if(m.schemaVersion!==2||m.lifecycle!=="testing")continue;let R=await ma(s,m.capabilityId,{bindingId:e.bindingId,ownerSessionRef:e.ownerSessionRef});R!==void 0&&(c[m.capabilityId]=R.bindingId,l.push(m.capabilityId))}return{store:s,testingCapabilityIds:l,discovery:{rootDir:o,expectedScope:a,testingBindings:c}}}i(Om,"prepareProjectLearnedSkills");function Nm(e,n,t){let r={none:0,read:1,write:2};if(r[n.workspaceEffect]>r[t.workspace])throw new Error(`Remote tool "${e}" requires broader workspace access.`);let o=new Set(t.network.mode==="allowlist"?t.network.origins:[]);if(n.networkOrigins.some(s=>!o.has(new URL(s).origin)))throw new Error(`Remote tool "${e}" requires a network origin outside toolPolicy.`)}i(Nm,"validateRemoteContract");function fd(e){let n=new Set;e.policy.workspace!=="none"&&kd.forEach(s=>n.add(s)),e.policy.workspace==="write"&&Ed.forEach(s=>n.add(s)),e.hasSkills&&n.add("skill"),e.hasSkillScripts&&n.add("run_skill_script"),Object.keys(e.policy.mcp).length>0&&Pd.forEach(s=>n.add(s)),e.policy.subagents==="inherit"&&xm.forEach(s=>n.add(s));let t=new Map(io().map(s=>[s.name,s])),r=new Map;for(let s of e.policy.tools){let a=t.get(s)?.remoteContract;if(!a)throw new Error(`Tool "${s}" has no Runtime remote contract.`);Nm(s,a,e.policy),r.set(s,a),n.add(s)}let o=new Map;for(let s of n){let a=t.get(s);if(!a)throw new Error(`Runtime tool is unavailable: ${s}.`);if(!r.has(s)&&a.source.kind!=="builtin")throw new Error(`Native Runtime tool "${s}" is shadowed by a non-builtin registration.`);o.set(s,a.registrationId)}if(e.declared!==void 0){let s=e.declared.filter(c=>!n.has(c));if(s.length>0)throw new Error(`Markdown Agent tools are denied by remote policy: ${s.join(", ")}.`);let a=[...new Set(e.declared)].sort();return{tools:a,contracts:r,registrations:new Map(a.map(c=>[c,o.get(c)]))}}return{tools:[...n].sort(),contracts:r,registrations:o}}i(fd,"resolveToolSurface");function pd(e,n){return e.length===0?`## Available Skills
7
+
8
+ No Skills are admitted for this deployment.`:["## Available Skills","","Invoke a matching Skill with the `skill` tool before completing that work.",...e.map(t=>`- ${t.name}: ${n.get(t.name)?.description??""}`)].join(`
9
+ `)}i(pd,"skillsPrompt");function gd(e,n){let r=Xe.relative(n,e).split(Xe.sep).map(o=>o.toLowerCase());return r.some(o=>Am.has(o))||r.some(o=>Tm.has(o)||o.startsWith(".env."))}i(gd,"sensitivePath");function Lm(e){let n=e;for(;!Dt.existsSync(n);){let t=Xe.dirname(n);if(t===n)throw new Error("Tool path has no existing parent.");n=t}return n}i(Lm,"nearestExistingPath");function Fm(e,n){let t=Dt.realpathSync(e),r=Lm(n),o=Dt.realpathSync(r);if(!Gr(t,o))throw new Error("Tool path escapes the bound workspace through a link.");let s=Xe.resolve(o,Xe.relative(r,n));if(!Gr(t,s))throw new Error("Tool path escapes the bound workspace through a link.");return{root:t,candidate:s}}i(Fm,"resolveRealToolPath");function fr(e,n){if(n===void 0)return;if(typeof n!="string"||n.trim().length===0)throw new Error("Tool path must be a string.");let t=Xe.resolve(e,n);if(!Gr(e,t))throw new Error("Tool path escapes the bound workspace.");let r=Fm(e,t);if(gd(t,e)||gd(r.candidate,r.root))throw new Error("Secret-bearing paths are unavailable to remote Agents.");return t}i(fr,"resolveToolPath");function yd(){return{beforeToolExecute:i(async()=>!0,"beforeToolExecute")}}i(yd,"remoteRunEvents");function Hm(e,n,t){if(!Pd.includes(e))return;if(e==="mcp_search"){let m=n.server;if(typeof m!="string"||t.mcp[m]===void 0)throw new Error("MCP search requires an explicitly admitted server.");return}let r=n.id;if(typeof r!="string")throw new Error("MCP calls require a canonical capability id.");let o=/^mcp:([^:]+):(tool|resource|prompt):(.+)$/.exec(r);if(!o)throw new Error("MCP capability id is invalid.");let[,s,a,c]=o,l=t.mcp[s??""]??[];if(a==="tool"&&!l.includes(c??""))throw new Error("MCP tool is not admitted by the remote policy.");if(a!=="tool"&&!l.includes(c??""))throw new Error("MCP capability is not admitted by the remote policy.")}i(Hm,"authorizeMcp");function $m(e){return{async resolveReadablePath(n){return fr(e,n)??e},async stageOutput(n){let t=lr(),r=Xe.basename(n).replace(/[^A-Za-z0-9._-]/g,"_")||"output",o=Xe.join(e,".kodax-a2a-staging",`${t}-${r}`);return await Id(Xe.dirname(o),{recursive:!0}),{stagingId:t,path:fr(e,o)??o}}}}i($m,"workspaceBroker");function Rd(e,n){return{kind:"tool",name:`runtime-remote-policy:${e.bindingId}`,async beforeTool(t,r){try{if(e.workspaceByteLimit!==void 0&&Io(n)>e.workspaceByteLimit)throw new Error("Remote workspace byte quota is already exceeded.");if(!e.effectiveTools.includes(t.name))throw new Error("Tool is outside the bound surface.");if(io().find(a=>a.name===t.name)?.registrationId!==e.toolRegistrations.get(t.name))throw new Error("Tool registration changed after the Runtime binding was prepared.");if(Cm.has(t.name)){let a=(t.name==="grep"||t.name==="glob","path");fr(n,t.input[a])}Hm(t.name,t.input,e.toolPolicy);let s=e.remoteContracts.get(t.name);if(s){let a=await s.authorizeCall(t.input,{workspaceAccess:e.toolPolicy.workspace,allowedNetworkOrigins:e.toolPolicy.network.mode==="allowlist"?e.toolPolicy.network.origins:[],workspace:$m(n),signal:r.abortSignal??new AbortController().signal});if(!a.allowed)throw new Error(a.reason);return{action:"rewrite",payload:{...t,input:a.input}}}return{action:"allow"}}catch(o){return{action:"block",reason:o instanceof Error?o.message:String(o)}}},async afterTool(){return e.workspaceByteLimit!==void 0&&Io(n)>e.workspaceByteLimit?{action:"block",reason:"Remote workspace byte quota exceeded."}:{action:"allow"}}}}i(Rd,"createToolGuardrail");async function hd(e,n,t){let r=await e.sessions.load(t),o=r.workspaceRoot??r.gitRoot;if(!o)throw new Error("Remote Runtime session has no bound workspace.");if(n.workspace.mode==="fixed"&&Xe.resolve(o)!==n.workspace.root)throw new Error("Runtime session workspace does not match the fixed binding.");if(n.workspace.mode==="managed"&&!Gr(e.managedWorkspaceRoot,o))throw new Error("Runtime session workspace is outside the managed A2A root.");return Xe.resolve(o)}i(hd,"requiredWorkspaceRoot");async function wd(e,n,t,r){let o=t.mode==="fixed"?t.root:e.managedWorkspaceRoot,s=await Ea({cwd:o,configHome:e.configHome,userOnly:!0}),a=s.loaded.find(m=>m.name===n.name&&m.source==="markdown:user"),c=s.scope.resolve(n.name);if(!a||!c||c.source!=="markdown:user"){await s.dispose();let m=s.failed.find(R=>Xe.basename(R.path,".md")===n.name);throw new Error(m?.reason??`User Markdown Agent not found: ${n.name}`)}let l=xd([await bd(a.path)]);try{let m=await Cd({configHome:e.configHome,workspace:t,selection:a.requestedSkills,...r===void 0?{}:r});return{scope:s.scope,loaded:a,configurationRevision:l,skills:m}}catch(m){throw await s.dispose(),m}}i(wd,"localAgentResources");function vd(e,n){return{ref:e,agentId:`markdown:user:${e.name}`,displayName:e.name,description:n.loaded.description,configurationRevision:n.configurationRevision,effectiveSkills:n.skills.refs,skillSetRevision:n.skills.revision}}i(vd,"resolvedLocal");function Td(e){let n=new Map,t=new Map,r=i(l=>{let m=n.get(l);if(!m)throw new Error("Runtime Agent owner session is not active.");return m},"requireOwner"),o=i((l,m)=>{let R=t.get(m);if(!R||R.ownerSessionId!==l)throw new Error("Runtime Agent binding not found.");return R},"requireBinding"),s=i(async l=>{t.delete(l.bindingId),n.get(l.ownerSessionId)?.delete(l.bindingId),l.scope?.dispose(),await l.skillScriptRunner?.dispose(),await Tt(l.learnedSkills,l.bindingId)},"release"),a=i(async(l,m)=>{let R=l.skillRegistry.list().filter(h=>h.source!=="learned"),v=new Yr(l.skillRegistry,R),y={context:{configHome:e.configHome,protectedFormalSkillNames:l.protectedFormalSkillNames},registry:v,skills:l.effectiveSkills.filter(h=>h.source!=="learned"),release:i(async()=>{},"release")};if(l.learnedSkills===void 0||l.workspace.mode!=="fixed")return y;let x=`root_${lr()}`,p=await Ad({configHome:e.configHome,projectRoot:l.workspace.root,bindingId:x,ownerSessionRef:m});if(p===void 0)return y;let E=new Qi(void 0,{projectPaths:[],userPaths:[],pluginPaths:[],builtinPath:Xe.join(p.discovery.rootDir,".no-formal-skills"),learnedArea:p.discovery});try{await Yi(p.store,{sessionId:m,bindingId:x}),await E.discover()}catch(h){return await Tt(p,x),ge({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this root run: ${mr(h)}`}),y}let u=new ko(v,E);try{for(let h of u.list())h.source!=="learned"||h.learned===void 0||await ga(p.store,{sessionId:m,bindingId:x,capabilityId:h.learned.capabilityId,revision:h.learned.revision,fingerprint:h.learned.fingerprint})}catch(h){return await Tt(p,x),ge({source:"runtime:learned-skills",level:"warn",message:`Learned usage receipts disabled for this root run: ${mr(h)}`}),y}let g=u.list().filter(h=>h.source==="learned"&&h.learned!==void 0).map(h=>({name:h.name,source:"learned",revision:h.learned.fingerprint}));return{context:{configHome:e.configHome,protectedFormalSkillNames:l.protectedFormalSkillNames,learnedSkillBindingId:x,admitLearnedSkillInvocation:i(async h=>({invocationId:(await ya(p.store,{sessionId:m,ownerSessionRef:m,capabilityId:h.capabilityId,expectedRevision:h.revision,expectedFingerprint:h.fingerprint,bindingId:x})).invocationId}),"admitLearnedSkillInvocation"),completeLearnedSkillOutcomes:i(async h=>{await Ra(p.store,{...h,sessionId:m,bindingId:x})},"completeLearnedSkillOutcomes")},registry:u,skills:[...l.effectiveSkills.filter(h=>h.source!=="learned"),...g],release:i(async()=>{try{await Yi(p.store,{sessionId:m,bindingId:x})}catch(h){ge({source:"runtime:learned-skills",level:"warn",message:`Learned Skill outcome reconciliation failed: ${mr(h)}`})}finally{await Tt(p,x)}},"release")}},"prepareLearnedSkillRun"),c=i(async(l,m)=>{try{let R=await m();return{...R,result:R.result.finally(l.release)}}catch(R){throw await l.release(),R}},"withLearnedSkillRelease");return{async resolveLocal(l){let m=vo(l.workspace),R=await wd(e,l.ref,m);try{return vd(l.ref,R)}finally{R.scope.dispose()}},async openOwnerSession(){let l=lr();return n.set(l,new Set),{ownerSessionId:l}},async bindDefault(l){let m=r(l.ownerSessionId),R=vo(l.workspace),v=md(l.toolPolicy),y=cd(l.workspaceByteLimit),x=lr(),p=await Cd({configHome:e.configHome,workspace:R,bindingId:x,ownerSessionRef:l.ownerSessionId}),E=Object.keys(v.skillScripts).length>0,u=fd({policy:v,hasSkills:p.refs.length>0,hasSkillScripts:E}),g=E?await e.createSkillScriptRunner?.({registry:p.registry,admissions:v.skillScripts,workspaceAccess:v.workspace,network:v.network,workspaceByteLimit:y}):void 0;if(E&&!g)throw await st(p.learnedSkills,x),new Error("Runtime isolated Skill script backend is unavailable.");let h=ot(v),P=ot(R),I=ot({kind:"runtime-default",profileId:l.profileId,toolPolicyRevision:h,workspaceBindingRevision:P,skillSetRevision:p.revision,provider:e.defaultProvider,model:e.defaultModel,tools:u.tools,workspaceByteLimit:y});if(l.expectedExecutionPolicyRevision&&l.expectedExecutionPolicyRevision!==I)throw await g?.dispose(),await st(p.learnedSkills,x),new Error("Runtime default execution policy revision changed.");let k={ownerSessionId:l.ownerSessionId,bindingId:x,kind:"runtime-default",executionPolicyRevision:I,toolPolicyRevision:h,workspaceBindingRevision:P,workspace:R,toolPolicy:v,effectiveTools:u.tools,effectiveSkills:p.refs,skillSetRevision:p.revision,skillRegistry:p.registry,protectedFormalSkillNames:p.protectedFormalSkillNames,skillScriptRunner:g,remoteContracts:u.contracts,toolRegistrations:u.registrations,workspaceByteLimit:y,...p.learnedSkills===void 0?{}:{learnedSkills:p.learnedSkills}};return t.set(x,k),m.add(x),{ownerSessionId:l.ownerSessionId,bindingId:x,executionPolicyRevision:I,toolPolicyRevision:h,workspaceBindingRevision:P,skillSetRevision:p.revision,effectiveSkills:p.refs,effectiveTools:u.tools}},async startDefault(l){let m=o(l.ownerSessionId,l.bindingId);if(m.kind!=="runtime-default")throw new Error("Runtime Agent binding kind mismatch.");if(m.executionPolicyRevision!==l.expectedExecutionPolicyRevision)throw new Error("Runtime default execution policy revision changed.");let R=await hd(e,m,l.sessionId),v=await a(m,l.sessionId);return c(v,()=>e.runs.start({sessionId:l.sessionId,input:l.input,permissionBroker:l.permissionBroker,agentContext:l.agentContext,options:{context:{executionCwd:R,gitRoot:R,managedTaskWorkspaceDir:R,...v.context,toolVisibilityPolicy:i(y=>m.effectiveTools.includes(y.name),"toolVisibilityPolicy"),skillRegistry:v.registry,skillScriptRunner:m.skillScriptRunner,assertReadablePath:i(y=>{fr(R,y)},"assertReadablePath"),skillsPrompt:pd(v.skills,v.registry)},skillDynamicContext:{disable:!0},guardrails:[Rd(m,R)],events:yd()}}))},async bindLocal(l){let m=r(l.ownerSessionId),R=vo(l.workspace),v=md(l.toolPolicy),y=cd(l.workspaceByteLimit),x=lr(),p=await wd(e,l.ref,R,{bindingId:x,ownerSessionRef:l.ownerSessionId}),E=vd(l.ref,p);if(l.expectedConfigurationRevision&&l.expectedConfigurationRevision!==E.configurationRevision)throw p.scope.dispose(),await st(p.skills.learnedSkills,x),new Error("User Markdown Agent configuration revision changed.");let u=fd({declared:p.loaded.effectiveTools,policy:v,hasSkills:p.skills.refs.length>0,hasSkillScripts:Object.keys(v.skillScripts).length>0}),g=Object.keys(v.skillScripts).length>0,h=g?await e.createSkillScriptRunner?.({registry:p.skills.registry,admissions:v.skillScripts,workspaceAccess:v.workspace,network:v.network,workspaceByteLimit:y}):void 0;if(g&&!h)throw p.scope.dispose(),await st(p.skills.learnedSkills,x),new Error("Runtime isolated Skill script backend is unavailable.");let P=ot(v),I=ot(R),k=ot({kind:"local-agent",profileId:l.profileId,configurationRevision:E.configurationRevision,toolPolicyRevision:P,workspaceBindingRevision:I,skillSetRevision:p.skills.revision,tools:u.tools,workspaceByteLimit:y});if(l.expectedExecutionPolicyRevision&&l.expectedExecutionPolicyRevision!==k)throw await h?.dispose(),p.scope.dispose(),await st(p.skills.learnedSkills,x),new Error("Local Agent execution policy revision changed.");let A=p.scope.resolve(l.ref.name)?.agent;if(!A)throw await h?.dispose(),p.scope.dispose(),await st(p.skills.learnedSkills,x),new Error(`User Markdown Agent not found: ${l.ref.name}`);let C={ownerSessionId:l.ownerSessionId,bindingId:x,kind:"local-agent",executionPolicyRevision:k,toolPolicyRevision:P,workspaceBindingRevision:I,workspace:R,toolPolicy:v,effectiveTools:u.tools,effectiveSkills:p.skills.refs,skillSetRevision:p.skills.revision,skillRegistry:p.skills.registry,protectedFormalSkillNames:p.skills.protectedFormalSkillNames,skillScriptRunner:h,remoteContracts:u.contracts,toolRegistrations:u.registrations,...p.skills.learnedSkills===void 0?{}:{learnedSkills:p.skills.learnedSkills},workspaceByteLimit:y,scope:p.scope,loadedAgent:p.loaded,agent:A,configurationRevision:p.configurationRevision};return t.set(x,C),m.add(x),{...E,ownerSessionId:l.ownerSessionId,bindingId:x,executionPolicyRevision:k,toolPolicyRevision:P,workspaceBindingRevision:I,effectiveTools:u.tools}},async startLocal(l){let m=o(l.ownerSessionId,l.bindingId);if(m.kind!=="local-agent"||!m.agent||!m.scope)throw new Error("Runtime Agent binding kind mismatch.");let R=m.agent,v=m.scope;if(m.configurationRevision!==l.expectedConfigurationRevision)throw new Error("User Markdown Agent configuration revision changed.");if(m.executionPolicyRevision!==l.expectedExecutionPolicyRevision)throw new Error("Local Agent execution policy revision changed.");let y=await hd(e,m,l.sessionId),x=await a(m,l.sessionId),p=typeof R.instructions=="string"?R.instructions:R.instructions({});return c(x,()=>e.runs.start({sessionId:l.sessionId,input:l.input,permissionBroker:l.permissionBroker,agentContext:l.agentContext,options:{...R.provider?{provider:R.provider}:{},...R.model?{modelOverride:R.model}:{},...R.effort?{effort:R.effort}:{},context:{executionCwd:y,gitRoot:y,managedTaskWorkspaceDir:y,...x.context,systemPromptOverride:p,agentScope:v,toolVisibilityPolicy:i(E=>m.effectiveTools.includes(E.name),"toolVisibilityPolicy"),skillRegistry:x.registry,skillScriptRunner:m.skillScriptRunner,assertReadablePath:i(E=>{fr(y,E)},"assertReadablePath"),skillsPrompt:pd(x.skills,x.registry)},skillDynamicContext:{disable:!0},guardrails:[Rd(m,y)],events:yd()}}))},async prepareWorkspace(l){let m=o(l.ownerSessionId,l.bindingId);if(m.workspace.mode==="fixed")return m.workspace.root;if(!/^[a-f0-9]{32,64}$/.test(l.contextKey))throw new Error("Managed Runtime workspace context key is invalid.");let R=Xe.join(e.managedWorkspaceRoot,"contexts",l.contextKey);return await Id(R,{recursive:!0}),R},async releaseBinding(l){r(l.ownerSessionId),await s(o(l.ownerSessionId,l.bindingId))},async closeOwnerSession(l){let m=r(l);for(let R of[...m])await s(o(l,R));n.delete(l)}}}i(Td,"createRuntimeAgentBindingService");import{randomUUID as jm}from"node:crypto";import*as Zr from"node:net";var _d="127.0.0.1",qm=/^[a-f0-9]{32}$/,Bm=500,Km=128,Um=16;async function Od(e){let n=jm().replace(/-/g,""),t=new Set,r=Zr.createServer(a=>{t.add(a),a.on("close",()=>t.delete(a)),a.on("error",()=>a.destroy()),a.end(`${n}
10
+ `)});r.on("error",e.onError),await zm(r);let o=r.address();if(o===null||typeof o=="string")throw await Md(r),new Error("Runtime Actor owner liveness did not bind a TCP endpoint.");r.unref();let s;return{id:n,port:o.port,close(){if(s)return s;let a=(async()=>{for(let c of t)c.destroy();t.clear(),await Md(r)})();return s=a,a.catch(()=>{s===a&&(s=void 0)}),a}}}i(Od,"createRuntimeActorOwnerLiveness");async function Eo(e){return await pr(e)!=="dead"}i(Eo,"isRuntimeActorOwnerAlive");async function pr(e){if(Xm(e.pid))return"dead";if(e.livenessId===void 0||e.livenessPort===void 0||!qm.test(e.livenessId)||!Number.isSafeInteger(e.livenessPort)||e.livenessPort<=0||e.livenessPort>65535)return"unknown";try{return await Wm(e.livenessPort,e.livenessId)?"alive":"dead"}catch(n){return Qr(n)==="ECONNREFUSED"?"dead":"unknown"}}i(pr,"inspectRuntimeActorOwner");function Dd(e){return[e.ownerId,e.runtimeId,e.pid,e.startedAt,e.livenessId??"",e.livenessPort??""].join("\0")}i(Dd,"actorOwnerProbeKey");async function Nd(e){let n=new Map;for(let c of e)n.set(Dd(c),c);let t=[...n.entries()],r=new Map,o=0,s=i(async()=>{for(;o<t.length;){let c=t[o];if(o+=1,c===void 0)return;r.set(c[0],await pr(c[1]))}},"worker"),a=Math.min(Um,t.length);return await Promise.all(Array.from({length:a},()=>s())),e.map(c=>r.get(Dd(c))??"unknown")}i(Nd,"inspectRuntimeActorOwners");function Xm(e){try{return process.kill(e,0),!1}catch(n){return Qr(n)==="ESRCH"}}i(Xm,"isPidDefinitelyDead");function Wm(e,n){return new Promise((t,r)=>{let o=Zr.createConnection({host:_d,port:e}),s="",a=!1,c=setTimeout(()=>m(void 0),Bm);c.unref?.();let l=i(()=>{clearTimeout(c),o.off("data",R),o.off("end",v),o.off("error",y),o.destroy()},"cleanup"),m=i((x,p)=>{a||(a=!0,l(),p?r(p):x===void 0?r(new Error("Timed out probing Runtime Actor owner liveness.")):t(x))},"settle"),R=i(x=>{s+=x.toString("utf8"),Buffer.byteLength(s)>Km&&m(!1)},"onData"),v=i(()=>m(s.trim()===n),"onEnd"),y=i(x=>m(void 0,x),"onError");o.on("data",R),o.once("end",v),o.once("error",y)})}i(Wm,"probe");function zm(e){return new Promise((n,t)=>{let r=i(()=>{e.off("listening",o),e.off("error",s)},"cleanup"),o=i(()=>{r(),n()},"onListening"),s=i(a=>{r(),t(a)},"onError");e.once("listening",o),e.once("error",s),e.listen({host:_d,port:0,exclusive:!0})})}i(zm,"listen");function Md(e){return new Promise((n,t)=>{try{e.close(r=>{if(r&&Qr(r)!=="ERR_SERVER_NOT_RUNNING"){t(r);return}n()})}catch(r){if(Qr(r)==="ERR_SERVER_NOT_RUNNING"){n();return}t(r)}})}i(Md,"closeServer");function Qr(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}i(Qr,"errorCode");import{createHash as Jm}from"node:crypto";function Hd(e){let n=e.userSkillsRoot===void 0?[]:[fa({learnedAreaRoot:e.rootDir,learnedAreaKind:"global",userSkillsRoot:e.userSkillsRoot})],t=Vi({rootDir:e.rootDir,clientIdentity:Ld(e.defaultClientIdentity),proposalStores:e.proposalStores,actionDrivers:n}),r,o=i(()=>(r??=t.initialize(),r),"ensureReady"),s=i(c=>{let l=Ld(c),m=Vi({rootDir:e.rootDir,clientIdentity:l,proposalStores:e.proposalStores,actionDrivers:n});return Fd(m,o)},"forClient"),a=Fd(t,o);return Object.assign(a,{forClient:s})}i(Hd,"createRuntimeLearningOwner");function $n(e,n){let t=e;return typeof t.forClient=="function"?t.forClient(n):e}i($n,"bindRuntimeLearningClient");function Ld(e){return`client_${Jm("sha256").update(e).digest("hex").slice(0,32)}`}i(Ld,"learningClientFileKey");function Fd(e,n){let t,r=i(()=>(t??=n?.()??e.initialize(),t),"ensureReady");return{list:i(async o=>(await r(),e.list(o)),"list"),get:i(async o=>(await r(),e.get(o)),"get"),getSnapshot:i(async()=>(await r(),e.getSnapshot()),"getSnapshot"),events:i(async o=>(await r(),e.events(o)),"events"),subscribe:i(o=>Vm(r(),e,o),"subscribe"),acknowledge:i(async o=>{await r(),await e.acknowledge(o)},"acknowledge"),snooze:i(async(o,s)=>{await r(),await e.snooze(o,s)},"snooze"),reject:i(async o=>{await r(),await Mt(e,o,s=>e.reject(o,s))},"reject"),disable:i(async o=>{await r(),await Mt(e,o,s=>e.disable(o,s))},"disable"),rollback:i(async o=>{await r(),await Mt(e,o,s=>e.rollback(o,s))},"rollback"),promote:i(async(o,s)=>{await r(),await Mt(e,o,a=>e.promote(o,s,a))},"promote"),review:i(async o=>{await r(),await Mt(e,o,s=>e.review(o,s))},"review"),trust:i(async o=>{await r(),await Mt(e,o,s=>e.trust(o,s))},"trust")}}i(Fd,"createInitializedFacade");async function Mt(e,n,t){let r=await e.get(n);await t({authority:"explicit_user",expectedRevision:r.revision,...r.schemaVersion===2?{expectedFingerprint:r.artifact.fingerprint}:{}})}i(Mt,"withExplicitUserAuthority");function Vm(e,n,t){return{[Symbol.asyncIterator](){let r=!1,o,s=e.then(()=>{if(!r)return o=n.subscribe(t)[Symbol.asyncIterator](),o});return{async next(){let a=await s;return r||!a?{done:!0,value:void 0}:a.next()},async return(){return r=!0,o?.return?.()??{done:!0,value:void 0}}}}}}i(Vm,"subscribeWhenReady");import{randomUUID as ri}from"node:crypto";var Gm=new Set(["session.created","session.loaded","session.settings.updated","session.notice.appended","session.rewound","session.active_entry.updated","session.compacted","run.queued","run.started","run.updated","run.progress","run.input.queued","run.input.delivered","turn.started","turn.completed","turn.failed","assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","user_input.requested","user_input.resolved","permission.requested","permission.resolved","permission.grant.changed","workflow.started","workflow.updated","workflow.finished","context.compaction.started","context.compaction.stats","context.compaction.finished","context.compaction.messages","context.compaction.ended","context.compaction.skipped","context.budget.snapshot","tool.exposure.planned","child_activity.finished","provider.retry","provider.recovery","provider.cache.diagnostics","repo_intelligence.trace","todo.updated","todo.warning","sidecar.message","run.completed","run.failed","run.cancelled","run.interrupted","artifact.created","config.effective","runtime.warning"]),Ym=new Set(["run.queued","run.started","run.updated","run.completed","run.failed","run.cancelled","run.interrupted"]);function Po(e){if(!Ne(e))return gr("Runtime event must be an object.");if(typeof e.id!="string"||!Number.isSafeInteger(e.seq)||typeof e.seq!="number"||typeof e.time!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||e.turnId!==void 0&&typeof e.turnId!="string"||typeof e.type!="string"||!Gm.has(e.type))return gr("Runtime event envelope is malformed or has an unknown type.");if((e.type==="assistant.delta"||e.type==="thinking.delta")&&(!Ne(e.payload)||typeof e.payload.text!="string"))return gr(`${e.type} requires a string text payload.`);if(Ym.has(e.type)&&!ef(e.payload))return gr(`${e.type} requires a RuntimeRunStatus payload.`);let n=Qm(e.type,e.payload);return n!==void 0?gr(`${e.type} ${n}`):{ok:!0,event:{id:e.id,seq:e.seq,time:e.time,sessionId:e.sessionId,runId:e.runId,...typeof e.turnId=="string"?{turnId:e.turnId}:{},type:e.type,payload:e.payload}}}i(Po,"parseRuntimeEvent");function Qm(e,n){if(e==="session.created")return Mn(n,["id","title"])?void 0:"requires a RuntimeSession payload.";if(e==="session.loaded")return Mn(n,["id","title"])||Mn(n,["provider","sessionId"])?void 0:"requires a RuntimeSession or provider session payload.";if(e==="session.settings.updated")return Ne(n)&&typeof n.sessionId=="string"&&Number.isSafeInteger(n.revision)&&Ne(n.settings)&&Ne(n.patch)?void 0:"requires a session settings update payload.";if(e==="thinking.finished")return Ne(n)&&typeof n.thinking=="string"?void 0:"requires a string thinking payload.";if(e==="tool.started")return Ne(n)&&Mn(n.tool,["id","name"])?void 0:"requires a tool descriptor payload.";if(e==="tool.progress")return Ne(n)&&(Mn(n.update,["id","message"])||typeof n.toolName=="string"&&typeof n.partialJson=="string")?void 0:"requires a tool progress payload.";if(e==="tool.sandbox"){let t=Ne(n)&&Ne(n.update)?n.update:void 0,r=t&&Ne(t.observation)?t.observation:void 0;return typeof t?.id=="string"&&r?.version===1&&(r.state==="not_selected"||r.state==="fallback"&&(r.reason==="not_ready"||r.reason==="prepare_failed"||r.reason==="backend_failed")&&r.execution==="normal_permission_policy"||r.state==="applied"&&(r.backend==="windows-restricted-user"||r.backend==="macos-seatbelt"||r.backend==="linux-bubblewrap"||r.backend==="unsupported")&&r.policyId==="kodax-workspace-shell-v1")?void 0:"requires a sandbox observation payload."}if(e==="tool.finished")return Ne(n)&&Mn(n.result,["id","name","content"])?void 0:"requires a tool result payload.";if(e==="run.progress")return Zm(n);if(e==="run.input.queued")return Ne(n)&&nf(n.input,"queued")?void 0:"requires a queued interrupt input payload.";if(e==="run.input.delivered")return Ne(n)&&Array.isArray(n.inputs)&&n.inputs.length>0&&n.inputs.every(tf)?void 0:"requires an ordered interrupt input batch.";if(e==="context.compaction.finished")return Ne(n)&&typeof n.contextId=="string"&&(n.contextKind==="root"||n.contextKind==="child")&&Number.isSafeInteger(n.contextRevision)&&Number.isSafeInteger(n.beforeRevision)&&Number.isSafeInteger(n.afterRevision)&&(n.source==="manual"||n.source==="automatic_threshold"||n.source==="physical_capacity")&&typeof n.tokensBefore=="number"&&typeof n.tokensAfter=="number"&&typeof n.committed=="boolean"&&typeof n.elapsedMs=="number"?void 0:"requires a canonical compaction payload.";if(e==="todo.updated")return Ne(n)&&Array.isArray(n.items)?void 0:"requires an items array payload.";if(e==="user_input.requested"){let t=Ne(n)&&Mn(n,["id","sessionId","runId","kind","createdAt","expiresAt"])&&Number.isSafeInteger(n.revision),r=Ne(n)&&Mn(n,["requestId","kind"])&&Object.hasOwn(n,"options");return t||r?void 0:"requires a user input request payload."}if(e==="user_input.resolved"||e==="permission.resolved")return Ne(n)&&typeof n.requestId=="string"?void 0:"requires a requestId payload.";if(e==="permission.requested")return Mn(n,["id","sessionId","runId","toolName","createdAt"])?void 0:"requires a RuntimePermissionRequest payload.";if(e==="permission.grant.changed")return Ne(n)&&(n.action==="created"||n.action==="revoked"||n.action==="expired")&&Ne(n.grant)&&typeof n.grant.id=="string"&&Number.isSafeInteger(n.revision)?void 0:"requires a permission grant audit payload.";if(e==="turn.started"||e==="turn.completed"||e==="turn.failed")return Mn(n,["sessionId","turnId"])?void 0:"requires a turn payload.";if(e==="workflow.started"||e==="workflow.updated"||e==="workflow.finished")return Ne(n)?void 0:"requires a workflow event payload.";if(e==="context.budget.snapshot"||e==="tool.exposure.planned"||e==="provider.cache.diagnostics")return Ne(n)?void 0:"requires an object payload.";if(e==="runtime.warning")return Ne(n)&&typeof n.message=="string"?void 0:"requires a warning message payload."}i(Qm,"validateKnownRuntimeEventPayload");function Zm(e){return!Ne(e)||typeof e.kind!="string"?"requires a discriminated progress payload.":e.kind==="managed_task_status"?Ne(e.status)?void 0:"requires managed task status.":e.kind==="iteration_start"?typeof e.iter=="number"&&typeof e.maxIter=="number"?void 0:"requires iteration counters.":e.kind==="iteration_end"?Ne(e.info)?void 0:"requires iteration info.":e.kind==="mid_turn_user_messages"?Array.isArray(e.contents)&&e.contents.every(n=>typeof n=="string")?void 0:"requires string contents.":e.kind==="stream_end"||e.kind==="complete"?void 0:"has an unknown progress kind."}i(Zm,"validateRunProgressPayload");function ef(e){return Ne(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"&&typeof e.phase=="string"}i(ef,"isRuntimeRunStatusPayload");function nf(e,n){return Ne(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&e.delivery==="interrupt"&&(e.state==="queued"||e.state==="delivered"||e.state==="terminal")&&(n===void 0||e.state===n)&&typeof e.contentPreview=="string"&&typeof e.queuedAt=="string"&&(e.deliveredAt===void 0||typeof e.deliveredAt=="string")}i(nf,"isRuntimeInterruptInputStatus");function tf(e){return Ne(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&typeof e.queuedAt=="string"&&typeof e.deliveredAt=="string"&&(e.entryId===void 0||typeof e.entryId=="string"&&e.entryId.length>0)&&$d(e.input)}i(tf,"isDeliveredInterruptInput");function $d(e){return Array.isArray(e)?e.length>0&&e.every($d):!Ne(e)||typeof e.type!="string"?!1:e.type==="text"?typeof e.text=="string":e.type==="artifact_ref"?typeof e.artifactId=="string":e.type==="image"||e.type==="file"?typeof e.path=="string":e.type==="video"&&typeof e.path=="string"&&typeof e.mediaType=="string"}i($d,"isRuntimeInput");function Mn(e,n){return Ne(e)&&n.every(t=>typeof e[t]=="string")}i(Mn,"hasStrings");function gr(e){return{ok:!1,error:e}}i(gr,"invalid");function Ne(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ne,"isRecord");var Vn="kodax-runtime-daemon",xo=1,_t=["initialize","runtime.initialize","ping","runtime.identity","runtime.status","runtime.shutdown","runtime.capabilities","daemon.status","daemon.stop","daemon.logs","daemon.preflight","daemon.management.get","daemon.rollbackToInline","operation.get","session.create","session.load","session.list","session.status","session.transcript","session.transcript.page","session.transcript.entryChunk","session.transcript.search","session.conversation","session.conversation.page","session.conversation.entryChunk","session.observe","session.diagnostics","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.get","session.settings.getVersioned","session.autoMode.getStats","session.settings.update","session.settings.updateVersioned","run.start","run.input.submit","run.get","run.list","run.await","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","request.cancel","request.ack","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.request","permission.respond","permission.grants.list","permission.grants.revoke","user_input.listPending","user_input.respond","user_input.dismiss","credential.register","credential.get","credential.revoke","credential.supply","host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","workflow.pause","workflow.resume","workflow.stop","learning.list","learning.get","learning.snapshot","learning.events","learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust","config.read","config.patch","config.reload","model.list","provider.list","provider.custom.list","provider.custom.upsert","provider.custom.remove","mcp.server.list","mcp.server.get","mcp.server.validate","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","mcp.tool.list","extension.list","extension.reload","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.create","artifact.get","artifact.delete","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","context.budget.get","tool.exposure.preview","provider.cache.diagnostics.get"],rf=["runtime.shutdown","daemon.stop","daemon.rollbackToInline","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","run.start","run.input.submit","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","permission.request","permission.respond","permission.grants.revoke","user_input.respond","user_input.dismiss","workflow.pause","workflow.resume","workflow.stop","learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust","config.patch","config.reload","provider.custom.upsert","provider.custom.remove","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","extension.reload","artifact.create","artifact.delete","agentRegistrations.upsert","agentRegistrations.setEnabled","agentRegistrations.remove","agents.spawn","agents.send","agents.followup","agents.interrupt"],qd=["agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile"],of=new Set([..._t,...qd]),sf=new Set(rf),af=new Set(["credential.register","credential.revoke","credential.supply","host_tool.register","host_tool.revoke","host_tool.complete"]),df=new Set(["event","observation.invalidated","credential.request","host_tool.invoke","runtime.warning"]),uf=new Set(["invalid_frame","invalid_request","invalid_params","not_initialized","method_not_found","unauthorized","permission_denied","conflict","not_found","session_not_admitted","cancelled","overloaded","client_upgrade_required","operation_required","operation_epoch_mismatch","operation_id_reuse","operation_interrupted","operation_unknown","control_history_untrusted","resync_required","read_timeout","read_cancelled","data_changed","observation_invalidated","runtime_changed","data_corrupt","version_incompatible","credential_unavailable","host_tool_unavailable","host_tool_unknown","internal_error"]);function Ot(e,n,t,r){return{protocol:Vn,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{},...r!==void 0?{operation:r}:{}}}i(Ot,"createRuntimeDaemonRequest");function at(e){return sf.has(e)}i(at,"isRuntimeDaemonMutationMethod");function ei(e){return at(e)||af.has(e)}i(ei,"isRuntimeDaemonDrainingSensitiveMethod");function Bd(e){return qd.includes(e)}i(Bd,"isRuntimeDaemonRetiredMethod");function ni(e,n){return{protocol:Vn,version:1,kind:"response",id:e,result:n===void 0?null:n}}i(ni,"createRuntimeDaemonSuccessResponse");function Gn(e,n){return{protocol:Vn,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}i(Gn,"createRuntimeDaemonErrorResponse");function Nt(e,n){return{protocol:Vn,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}i(Nt,"createRuntimeDaemonNotification");function Co(e){if(!ti(e))return!1;let n=e;return n.kind==="request"&&typeof n.id=="string"&&n.id.length>0&&typeof n.method=="string"&&of.has(n.method)&&(n.operation===void 0||mf(n.operation))}i(Co,"isRuntimeDaemonRequest");function dt(e){if(!ti(e))return!1;let n=e;return n.kind==="response"&&typeof n.id=="string"&&n.id.length>0&&Object.prototype.hasOwnProperty.call(n,"result")}i(dt,"isRuntimeDaemonSuccessResponse");function Lt(e){if(!ti(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&lf(n.error)}i(Lt,"isRuntimeDaemonErrorResponse");function yr(e){if(!ti(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&df.has(n.method)}i(yr,"isRuntimeDaemonNotification");function cf(e){return Co(e)||dt(e)||Lt(e)||yr(e)}i(cf,"isRuntimeDaemonFrame");function Kd(e){let n;try{n=JSON.parse(e)}catch{return jd("Frame is not valid JSON.")}return cf(n)?n:jd("Frame does not match the runtime daemon protocol.")}i(Kd,"parseRuntimeDaemonFrame");function jd(e){return Gn({code:"invalid_frame",message:e})}i(jd,"invalidFrame");function ti(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===Vn&&n.version===1}i(ti,"isFrameBase");function lf(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&uf.has(n.code)&&typeof n.message=="string"}i(lf,"isRuntimeDaemonError");function mf(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.operationId=="string"&&n.operationId.length>0&&typeof n.journalEpoch=="string"&&n.journalEpoch.length>0}i(mf,"isRuntimeDaemonOperationEnvelope");var Qd=256,Ud=1e3,ct=class extends Error{constructor(t,r){super(r);this.path=t;this.name="RuntimeTransportBoundaryError"}path;static{i(this,"RuntimeTransportBoundaryError")}code="invalid_transport_value"},Ao=class extends Error{static{i(this,"RuntimeDaemonUpgradeRequiredError")}code="daemon_upgrade_required";capability="actorControlPlane";restartRequired=!0;constructor(){super("Runtime daemon does not advertise actorControlPlane v1. Upgrade KodaX and restart the daemon before using Runtime Actor control."),this.name="RuntimeDaemonUpgradeRequiredError"}},ii=class extends Error{static{i(this,"RuntimePermissionScopeUpgradeRequiredError")}code="daemon_upgrade_required";capability="runtimeAutoModeGuardrail";requiredVersion=3;restartRequired=!0;constructor(){super("Runtime daemon does not advertise concrete permission scopes. Upgrade KodaX and restart the daemon before requesting grants for a concrete tool call."),this.name="RuntimePermissionScopeUpgradeRequiredError"}},Ht=class extends Error{static{i(this,"RuntimeRunLifecycleUpgradeRequiredError")}code="daemon_upgrade_required";capability="runLifecycleControl";requiredVersion=1;restartRequired=!0;constructor(){super("Runtime daemon does not advertise structured Stop receipts and protocol-level request cancellation. Upgrade KodaX and restart the daemon."),this.name="RuntimeRunLifecycleUpgradeRequiredError"}};function Xd(e){let n=e.activeAgentTurns??e.activeAgentTasks??[];return{...e,activeAgentTurns:n,activeAgentTasks:n}}i(Xd,"normalizeRuntimeDaemonPreflight");function oi(e){let n=i((u,g,h,P)=>e.transport.request(u,g,at(u)?yf(e.journalEpoch,h):void 0,P),"request"),t=i((u,g,h,P)=>{try{if(Zd(h),(h?.timeoutMs!==void 0||h?.signal!==void 0)&&!Yd(e.capabilities))throw new Ht}catch(H){return Promise.reject(H)}let I=new AbortController,k=!1,A=!1,C=i(H=>{if(!A){A=!0;try{P?.(H)}catch(ee){ge({source:"runtime.daemon.client",level:"warn",message:"Runtime daemon late-result cleanup failed.",detail:ee})}}},"deliverLateResult"),O=n(u,{...g,...h?.timeoutMs!==void 0?{timeoutMs:h.timeoutMs}:{}},void 0,{signal:I.signal,...P!==void 0?{onLateResult:C}:{}});return P!==void 0&&O.then(H=>{k&&C(H)},()=>{}),wf(O,h,H=>{k=!0,I.abort(H)})},"readRequest"),r=i(()=>{let u=e.capabilities?.actorControlPlane;if(typeof u!="object"||u===null||!("version"in u)||u.version!==1||!("methodNamespace"in u)||u.methodNamespace!=="agents")return new Ao},"actorControlPlaneError"),o=i(()=>{let u=e.capabilities?.runtimeAutoModeGuardrail;if(typeof u!="object"||u===null||!("version"in u)||typeof u.version!="number"||u.version<3||!("concretePermissionMatchers"in u)||u.concretePermissionMatchers!==!0||!("permissionGrantSuggestions"in u)||u.permissionGrantSuggestions!==!0)return new ii},"concretePermissionScopeError"),s=new Map,a=new Map,c=new Map,l=new Set,m={state:"connected",connectionId:`connection_${ri().replace(/-/g,"")}`,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},reconnectable:!1},R=e.transport.subscribeLifecycle?.(u=>{m={...u,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{}};for(let g of l)try{g(m)}catch(h){ge({source:"runtime.daemon.client",level:"warn",message:"Runtime connection lifecycle listener failed.",detail:{errorType:h instanceof Error?h.name:typeof h}})}}),v=e.transport.subscribe(u=>{u.method==="credential.request"?pf(u.params,s,n).catch(()=>Wd("credential request")):u.method==="host_tool.invoke"&&gf(u.params,a,c,n).catch(()=>Wd("host tool invocation"))}),y=!1,x=!1,p,E=i(()=>{if(x)return Promise.resolve();if(p)return p;let u=(async()=>{y||(R?.close(),v.close(),l.clear(),s.clear(),a.clear(),c.clear(),y=!0),await e.transport.close?.(),x=!0})();return p=u,u.finally(()=>{p===u&&(p=void 0)}).catch(()=>{}),u},"closeClient");return{identity:e.identity,capabilities:e.capabilities,...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{},sessions:{create(u={}){let{operation:g,...h}=u;return n("session.create",h,g)},load(u,g){return t("session.load",{sessionId:u},g)},list(u){return n("session.list",u)},status(u){return n("session.status",{sessionId:u})},transcript(u,g){return t("session.transcript",{sessionId:u},g)},transcriptPage(u,g){return t("session.transcript.page",u,g)},transcriptEntryChunk(u,g){return t("session.transcript.entryChunk",u,g)},transcriptSearch(u,g){return t("session.transcript.search",u,g)},conversation(u,g){return t("session.conversation",{sessionId:u},g)},conversationPage(u,g){return t("session.conversation.page",u,g)},conversationEntryChunk(u,g){return t("session.conversation.entryChunk",u,g)},observe(u,g,h){return hf(e.transport,t,u,g,h)},diagnostics(u){return t("session.diagnostics",{sessionId:u.sessionId,...u.runId!==void 0?{runId:u.runId}:{}},u).then(g=>({...g,sdkVersion:Xr,runtimeVersion:e.identity.version,daemonVersion:e.identity.mode==="daemon"?e.identity.version:null,runtimeMode:e.identity.mode}))},fork(u){return n("session.fork",u)},getSettings(u){return n("session.settings.get",{sessionId:u})},getSettingsVersioned(u){return n("session.settings.getVersioned",{sessionId:u})},getAutoModeStats(u){return n("session.autoMode.getStats",{sessionId:u})},async updateSettings(u,g){let h=await this.getSettingsVersioned(u);return(await this.updateSettingsVersioned(u,g,{expectedRevision:h.revision})).value},updateSettingsVersioned(u,g,h){return n("session.settings.updateVersioned",{sessionId:u,patch:g,expectedRevision:h.expectedRevision},h)},appendNotice(u){return n("session.notice.append",u)},rewind(u){return n("session.rewind",u)},setActiveEntry(u){return n("session.active_entry.set",u)},compact(u){return n("session.compact",u)},async archive(u){await n("session.archive",{sessionId:u})},async unarchive(u){await n("session.unarchive",{sessionId:u})},async delete(u){await n("session.delete",{sessionId:u})}},runs:{async start(u){let{operation:g,...h}=u;Ft(h,"run.start");let P=fn(await n("run.start",h,g)),I=mn(P,"runId"),k=mn(P,"sessionId"),A=xf(P,"turnId");return{runId:I,sessionId:k,...A!==void 0?{turnId:A}:{},result:Vd(n,I)}},async submitInput(u){let{operation:g,...h}=u;return Ft(h,"run.input.submit"),n("run.input.submit",h,g)},await(u){return Vd(n,u)},get(u){return n("run.get",{runId:u})},list(u){return n("run.list",u)},abort(u){return Yd(e.capabilities)?n("run.abort",{runId:u}).then(g=>Pf(g,u)):Promise.reject(new Ht)},async setModel(u,g){await n("run.model.set",{runId:u,model:g})},async setProvider(u,g){await n("run.provider.set",{runId:u,provider:g})},async setReasoning(u,g){await n("run.reasoning.set",{runId:u,reasoning:g})}},events:{subscribe(u,g){return Rf(e.transport,n,u,g)},replay(u){return n("event.replay",u).then(g=>{if(!Array.isArray(g))throw new Error("Expected daemon event replay array.");return g.flatMap(h=>{let P=To(h);return P===void 0?[]:[P]})})}},permissions:{request(u){if(u.toolInput!==void 0){let g=o();if(g)return Promise.reject(g)}return n("permission.request",u)},listPending(u){return n("permission.list",u)},respond(u,g,h){return n("permission.respond",{requestId:u,decision:g,...h?.runId!==void 0?{runId:h.runId}:{}})},listGrants(){return n("permission.grants.list")},revokeGrant(u,g){return n("permission.grants.revoke",{grantId:u,expectedRevision:g})}},userInputs:{listPending(u){return n("user_input.listPending",u)},respond(u,g,h){return n("user_input.respond",{requestId:u,answer:g,...h?.expectedRevision!==void 0?{expectedRevision:h.expectedRevision}:{},...h?.runId!==void 0?{runId:h.runId}:{}})},dismiss(u,g){return n("user_input.dismiss",{requestId:u,...g?.expectedRevision!==void 0?{expectedRevision:g.expectedRevision}:{},...g?.runId!==void 0?{runId:g.runId}:{}})}},credentials:{async register(u,g){let h=`credlease_${ri().replace(/-/g,"")}`;s.set(h,g);try{return await n("credential.register",{leaseId:h,providers:u.providers,...u.expiresAt!==void 0?{expiresAt:u.expiresAt}:{}})}catch(P){throw s.delete(h),P}},async resume(u,g){s.set(u,g);try{let h=await n("credential.get",{leaseId:u});if(h==null)throw Object.assign(new Error(`Credential lease is unavailable after Runtime reconnect: ${u}`),{code:"credential_unavailable"});return fn(h)}catch(h){throw s.delete(u),h}},async revoke(u){let g=await n("credential.revoke",{leaseId:u});return g&&s.delete(u),g}},hostTools:{async register(u,g){zd(u,g);let h=`hostlease_${ri().replace(/-/g,"")}`;a.set(h,g);try{return await n("host_tool.register",{leaseId:h,tools:u})}catch(P){throw a.delete(h),P}},async resume(u,g){a.set(u,g);try{let h=await n("host_tool.get",{leaseId:u});if(h==null)throw Object.assign(new Error(`Host tool lease is unavailable after Runtime reconnect: ${u}`),{code:"host_tool_unavailable"});let P=fn(h);return zd(P.tools,g),P}catch(h){throw a.delete(u),h}},async getInvocation(u){return ut(await n("host_tool.invocation.get",{invocationId:u}))},async revoke(u){let g=await n("host_tool.revoke",{leaseId:u});return g&&a.delete(u),g}},operations:{get(u){return n("operation.get",u)}},workflows:{list(u){return n("workflow.list",u)},get(u){return n("workflow.get",{runId:u}).then(ut)},subscribe(u,g){return bf(e.transport,n,u,g)},pause(u){return n("workflow.pause",{runId:u})},resume(u){return n("workflow.resume",{runId:u})},stop(u){return n("workflow.stop",{runId:u})}},learning:{list(u){return n("learning.list",u??{})},get(u){return n("learning.get",{nameOrSlug:u})},getSnapshot(){return n("learning.snapshot")},events(u){return n("learning.events",{...u!==void 0?{afterRevision:u}:{}})},subscribe(u){return ff(n,u?.afterRevision??0)},async acknowledge(u){await n("learning.acknowledge",{nameOrSlug:u})},async snooze(u,g){await n("learning.snooze",{nameOrSlug:u,until:g})},async reject(u){await n("learning.reject",{nameOrSlug:u})},async disable(u){await n("learning.disable",{nameOrSlug:u})},async rollback(u){await n("learning.rollback",{nameOrSlug:u})},async promote(u,g){await n("learning.promote",{nameOrSlug:u,scope:g})},async review(u){await n("learning.review",{nameOrSlug:u})},async trust(u){await n("learning.trust",{nameOrSlug:u})}},config:{read(){return n("config.read")},patch(u){return n("config.patch",{patch:u})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(u){return n("model.list",u)},commands(u){return n("command.list",u!==void 0?{projectRoot:u}:void 0)},resolveCommand(u){return n("command.resolve",u)},skills(u){return n("skill.list",u)},describeSkill(u){return n("skill.describe",u)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(u){return n("provider.custom.upsert",{config:u})},deleteCustomProvider(u){return n("provider.custom.remove",{name:u})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(u){return n("mcp.server.get",{name:u}).then(ut)},validateServer(u,g){return n("mcp.server.validate",{name:u,config:g})},upsertServer(u,g){return n("mcp.server.upsert",{name:u,config:g})},deleteServer(u){return n("mcp.server.delete",{name:u})},reloadServers(){return n("mcp.server.reload")},listTools(u){return n("mcp.tool.list",u)}},artifacts:{create(u){return n("artifact.create",u)},get(u){return n("artifact.get",{artifactId:u}).then(ut)},delete(u){return n("artifact.delete",{artifactId:u})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(u,g){return Ft(u,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:u,...g?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:g.expectedConfigurationRevision}:{},...g?.expectedManagementOwner!==void 0?{expectedManagementOwner:g.expectedManagementOwner}:{}})},setEnabled(u,g,h){return n("agentRegistrations.setEnabled",{agentId:u,enabled:g,...h?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:h.expectedConfigurationRevision}:{},...h?.expectedManagementOwner!==void 0?{expectedManagementOwner:h.expectedManagementOwner}:{},...h?.claimOwner!==void 0?{claimOwner:h.claimOwner}:{}}).then(ut)},remove(u,g){return n("agentRegistrations.remove",{agentId:u,...g?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:g.expectedConfigurationRevision}:{},...g?.expectedManagementOwner!==void 0?{expectedManagementOwner:g.expectedManagementOwner}:{}})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(u){return n("agents.listDispatchable",u)},describe(u,g){return n("agents.describe",{agentId:u,query:g}).then(ut)},preflight(u){return n("agents.preflight",u)},tree(u){let g=r();return g?Promise.reject(g):n("agents.tree",{sessionId:u})},detail(u,g){let h=r();return h?Promise.reject(h):n("agents.detail",{sessionId:u,actorPath:g})},spawn(u,g){let h=r();return h?Promise.reject(h):(Ft(g,"agents.spawn"),n("agents.spawn",{sessionId:u,input:g}))},async send(u,g,h,P){let I=r();if(I)throw I;await n("agents.send",{sessionId:u,actorPath:g,content:h,...P!==void 0?{classification:P}:{}})},followup(u,g,h,P){let I=r();return I?Promise.reject(I):n("agents.followup",{sessionId:u,actorPath:g,objective:h,...P?.expectedRevision!==void 0?{expectedRevision:P.expectedRevision}:{}})},async interrupt(u,g,h){let P=r();if(P)throw P;await n("agents.interrupt",{sessionId:u,actorPath:g,...h!==void 0?{reason:h}:{}})},output(u,g,h){let P=r();return P?Promise.reject(P):n("agents.output",{sessionId:u,actorPath:g,...h!==void 0?{turnId:h}:{}})},events(u,g){let h=r();return h?Promise.reject(h):n("agents.events",{sessionId:u,...g!==void 0?{afterSequence:g}:{}})},wait(u,g,h,P){let I=r();return I?Promise.reject(I):t("agents.wait",{sessionId:u,...g!==void 0?{afterSequence:g}:{},...h!==void 0?{timeoutMs:h}:{}},P).then(ut)}},status:{snapshot(){return n("daemon.status")},preflight(){return n("daemon.preflight").then(u=>Xd(u))}},daemon:{inspect(){return n("daemon.management.get").then(u=>{let g=u;return{...g,preflight:Xd(g.preflight)}})},stopForInline(u){let{operation:g,...h}=u;return n("daemon.rollbackToInline",h,g)}},diagnostics:{latestContextBudget(u){return n("context.budget.get",u)},latestToolExposure(u){return n("tool.exposure.preview",u)},latestProviderCacheDiagnostic(u){return n("provider.cache.diagnostics.get",u)}},connection:{current(){return m},subscribe(u){return l.add(u),u(m),{close(){l.delete(u)}}}},close:E}}i(oi,"createRuntimeDaemonClient");async function*ff(e,n){let t=n;for(;;){let r=await e("learning.events",{afterRevision:t});if(r.length===0){await new Promise(o=>setTimeout(o,100));continue}for(let o of r)t=o.sequence,yield o}}i(ff,"pollRuntimeLearningEvents");function Wd(e){ge({source:"runtime.daemon.client",level:"warn",message:`Failed to deliver ${e} result to the Runtime daemon.`})}i(Wd,"reportReverseBridgeFailure");async function pf(e,n,t){let r=fn(e),o=mn(r,"requestId"),s=mn(r,"leaseId"),a=n.get(s);if(!a){await t("credential.supply",{requestId:o,error:"credential_lease_unavailable"});return}try{let c=await a({leaseId:s,provider:mn(r,"provider"),sessionId:mn(r,"sessionId"),runId:mn(r,"runId")});await t("credential.supply",{requestId:o,...c!==void 0?{credential:c}:{error:"credential_unavailable"}})}catch{await t("credential.supply",{requestId:o,error:"credential_broker_failed"})}}i(pf,"answerCredentialRequest");async function gf(e,n,t,r){let o=fn(e),s=mn(o,"invocationId"),a=mn(o,"leaseId"),c=mn(o,"toolName"),l=n.get(a)?.[c];if(!l){await r("host_tool.complete",{invocationId:s,error:"host_tool_unavailable"});return}let m=t.get(s);if(!m){let R=Promise.resolve().then(()=>l({invocationId:s,leaseId:a,toolName:c,sessionId:mn(o,"sessionId"),runId:mn(o,"runId"),input:fn(o.input)}));m={promise:R,settled:!1},t.set(s,m);let v=m;R.finally(()=>{v.settled=!0,Jd(t)}).catch(()=>{}),Jd(t)}try{await r("host_tool.complete",{invocationId:s,result:await m.promise})}catch{try{await r("host_tool.complete",{invocationId:s,error:"host_tool_failed"})}catch(R){throw new Error("Failed to report the Host Tool outcome to the Runtime daemon.",{cause:R})}}}i(gf,"answerHostToolInvocation");function zd(e,n){let t=new Set(e.map(r=>r.name));if(t.size!==e.length||e.length===0)throw new Error("Host tool descriptors must have unique, non-empty names.");for(let r of t)if(typeof n[r]!="function")throw new Error(`Missing host tool handler: ${r}`)}i(zd,"validateHostToolHandlers");function Jd(e){if(!(e.size<=Ud))for(let[n,t]of e){if(e.size<=Ud)return;t.settled&&e.delete(n)}}i(Jd,"pruneHostToolResults");function yf(e,n){let t=n?.journalEpoch??e;if(t!==void 0)return{operationId:n?.operationId??`op_${ri().replace(/-/g,"")}`,journalEpoch:t}}i(yf,"createOperationEnvelope");function Rf(e,n,t,r){return eu(e,n,"event.subscribe",{filter:t},o=>{If(o,r)})}i(Rf,"subscribeToDaemonEvents");async function hf(e,n,t,r,o){let s=!1,a=!1,c,l=!1,m,R=!1,v,y,x=new Promise(A=>{y=A}),p=[],E,u,g=i(()=>{p.length=0,E?.close(),E=void 0,u?.close(),u=void 0;let A=c;c=void 0,A!==void 0&&n("event.unsubscribe",{subscriptionId:A}).catch(C=>{ge({source:"runtime.daemon.client",level:"warn",message:"Failed to unsubscribe an invalidated Session observation.",detail:C})})},"closeResources"),h=i((A,C,O)=>{s||R||(R=!0,g(),y?.({code:"observation_invalidated",reason:A,runtimeId:O,message:C}))},"invalidate"),P=i((A,C)=>{let O=To(A.event);if(O===void 0){h("event_order","Runtime delivered an invalid observation event; full resync is required.",C);return}if(m!==void 0&&O.seq<m){if(!a)return;h("event_order",`Runtime observation event order regressed from ${m} to ${O.seq}.`,C);return}if(!(m!==void 0&&O.seq===m)){m=O.seq;try{r(O)}catch(H){ge({source:"runtime.daemon.client",level:"error",message:`Session observation listener failed for ${O.type}.`,detail:H}),h("delivery_failed",`Session observation listener failed while delivering ${O.type}; discard local state and resync.`,C)}}},"deliver"),I=i((A,C)=>{let O=Sf(A.invalidation);if(O===void 0){h("event_order","Runtime delivered an invalid observation invalidation; full resync is required.",C);return}h(O.reason,O.message,O.runtimeId)},"deliverInvalidation");E=e.subscribe(A=>{if(s||R||A.method!=="event"&&A.method!=="observation.invalidated")return;let C=fn(A.params);if(c===void 0||!a){if(A.method==="event"&&!vf(C.event,t)||A.method==="observation.invalidated"&&typeof C.sessionId=="string"&&C.sessionId!==t)return;p.length>=Qd?(l=!0,h("event_overflow","Runtime observation handoff overflowed; full resync is required.","daemon")):p.push({method:A.method,payload:C});return}C.subscriptionId===c&&(A.method==="event"?P(C,"daemon"):I(C,"daemon"))}),u=e.subscribeLifecycle?.(A=>{if(A.state==="connected"){v!==void 0&&v!==A.connectionId&&h("runtime_changed","Runtime transport connection changed; discard the observation and resync.","daemon"),v=A.connectionId;return}h("transport_disconnected",A.reason??"Runtime transport disconnected; observation is invalid.","daemon")});let k=i(A=>{try{let C=mn(fn(A),"subscriptionId");n("event.unsubscribe",{subscriptionId:C}).catch(O=>{ge({source:"runtime.daemon.client",level:"warn",message:"Failed to unsubscribe a late Session observation.",detail:O})})}catch(C){ge({source:"runtime.daemon.client",level:"warn",message:"Ignored an invalid late Session observation response.",detail:C})}},"unsubscribeLateObservation");try{let A=fn(await n("session.observe",{sessionId:t},o,k));if(c=mn(A,"subscriptionId"),l)throw Object.assign(new Error("Runtime session observation handshake exceeded its event buffer; full resync is required."),{code:"resync_required"});let C=fn(A.snapshot);m=C.cursor;let O={snapshot:C,invalidated:x,close(){s||(s=!0,g())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(s||R)){for(;p.length>0;){let H=p.splice(0);for(let ee of H){if(R)break;let{method:te,payload:fe}=ee;fe.subscriptionId===c&&(te==="event"?P(fe,C.runtimeId):I(fe,C.runtimeId))}}a=!0}})),O}catch(A){throw s=!0,g(),A}}i(hf,"observeDaemonSession");async function wf(e,n,t){if(Zd(n),n?.signal===void 0&&n?.timeoutMs===void 0)return e;let r,o;try{return await Promise.race([e,new Promise((s,a)=>{n?.timeoutMs!==void 0&&(r=setTimeout(()=>{let c=Object.assign(new Error(`Runtime read timed out after ${n.timeoutMs}ms`),{code:"read_timeout"});a(c),t(c)},n.timeoutMs)),n?.signal!==void 0&&(o=i(()=>{let c=Object.assign(new Error("Runtime read cancelled"),{code:"read_cancelled"});a(c),t(c)},"abort"),n.signal.addEventListener("abort",o,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),o!==void 0&&n?.signal?.removeEventListener("abort",o)}}i(wf,"raceRuntimeDaemonRead");function Zd(e){if(e?.signal?.aborted)throw Object.assign(new Error("Runtime read cancelled"),{code:"read_cancelled"});if(e?.timeoutMs!==void 0&&(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<=0))throw new Error("Runtime read timeoutMs must be a positive safe integer")}i(Zd,"validateRuntimeDaemonReadOptions");function vf(e,n){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&e.sessionId===n}i(vf,"isRuntimeEventForSession");function Sf(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let n=e;if(!(n.code!=="observation_invalidated"||n.reason!=="event_overflow"&&n.reason!=="event_order"&&n.reason!=="delivery_failed"&&n.reason!=="runtime_changed"&&n.reason!=="transport_disconnected"||typeof n.runtimeId!="string"||typeof n.message!="string"))return{code:"observation_invalidated",reason:n.reason,runtimeId:n.runtimeId,message:n.message}}i(Sf,"parseRuntimeObservationInvalidation");function If(e,n){let t=To(e);t!==void 0&&n(t)}i(If,"deliverRuntimeEvent");function To(e){let n=Po(e);if(!n.ok){ge({source:"runtime.daemon.client",level:"warn",message:`Ignored malformed Runtime event: ${n.error}`});return}return n.event}i(To,"parseRuntimeEventForClient");function bf(e,n,t,r){return eu(e,n,"workflow.subscribe",{filter:t},o=>{r(o)})}i(bf,"subscribeToDaemonWorkflowEvents");function eu(e,n,t,r,o){let s=!1,a,c=[],l=e.subscribe(R=>{if(s||R.method!=="event")return;let v=fn(R.params);if(a===void 0){c.length>=Qd&&c.shift(),c.push(v);return}v.subscriptionId===a&&o(v.event)}),m=n(t,r).then(R=>{if(a=mn(fn(R),"subscriptionId"),s){Gd(n,t,a),c.length=0;return}for(let v of c.splice(0))v.subscriptionId===a&&o(v.event)}).catch(R=>{throw c.length=0,l.close(),R});return m.catch(()=>{}),{ready:m,close(){s=!0,l.close(),a!==void 0&&Gd(n,t,a)}}}i(eu,"subscribeToDaemonNotification");function Vd(e,n){return e("run.await",{runId:n}).then(kf)}i(Vd,"requestRuntimeRunResult");function kf(e){let n=fn(e),t=Object.prototype.hasOwnProperty.call(n,"error")?Ef(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}i(kf,"deserializeRuntimeRunResult");function Ef(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=fn(e),t=new Error(typeof n.message=="string"&&n.message.length>0?n.message:"Runtime run failed.");return typeof n.name=="string"&&n.name.length>0&&(t.name=n.name),typeof n.stack=="string"&&n.stack.length>0&&(t.stack=n.stack),t}i(Ef,"deserializeRuntimeError");function Gd(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}i(Gd,"unsubscribeRemote");function ut(e){return e??void 0}i(ut,"nullToUndefined");function fn(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}i(fn,"requireRecord");function Yd(e){let n=e?.runLifecycleControl;if(!n||typeof n!="object"||Array.isArray(n))return!1;let t=n;return Number.isSafeInteger(t.version)&&Number(t.version)>=1&&t.structuredStopReceipt===!0&&t.protocolCancellation===!0&&t.responseAcknowledgement===!0}i(Yd,"supportsRunLifecycleControl");function Pf(e,n){let t;try{t=fn(e)}catch{throw new Ht}let r=t.runId,o=t.sessionId,s=t.accepted,a=t.state,c=t.outcome,l=t.phase,m=t.revision,R=["unknown","confirmed"],v=["unknown","cancelled","interrupted","completed","failed"],y=["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input","unknown","completed","failed","cancelled","interrupted"];if(typeof s!="boolean"||typeof r!="string"||r.length===0||r!==n||typeof o!="string"||o.length===0||typeof a!="string"||!R.includes(a)||typeof c!="string"||!v.includes(c)||typeof l!="string"||!y.includes(l)||!Number.isSafeInteger(m)||Number(m)<0)throw new Ht;return{runId:r,sessionId:o,accepted:s,state:a,outcome:c,phase:l,revision:Number(m)}}i(Pf,"parseRuntimeRunStopReceipt");function mn(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw new Error(`Expected daemon response string field: ${n}`);return t}i(mn,"requireStringField");function xf(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw new Error(`Expected daemon response optional string field: ${n}`);return t}}i(xf,"optionalStringField");function Ft(e,n,t=new WeakSet){if(e==null||typeof e=="string"||typeof e=="boolean")return;if(typeof e=="number"){if(Number.isFinite(e))return;throw new ct(n,`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new ct(n,`${n} is not transport-safe: ${typeof e} values cannot cross a Runtime boundary.`);if(typeof e!="object")return;if(t.has(e))throw new ct(n,`${n} is not transport-safe: cyclic values cannot cross a Runtime boundary.`);let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null){let o=r?.constructor?.name??"object";throw new ct(n,`${n} is not transport-safe: ${o} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((o,s)=>Ft(o,`${n}[${s}]`,t));else for(let[o,s]of Object.entries(e))Ft(s,`${n}.${o}`,t);t.delete(e)}i(Ft,"assertRuntimeTransportSafe");import{randomUUID as zg}from"node:crypto";import Jg from"node:os";import rs from"node:path";import{randomUUID as Mo}from"node:crypto";import*as se from"node:fs";import dn from"node:path";function jn(e,n="default"){let t=_o(n),r=dn.resolve(e),o=dn.join(r,"runtime","daemon",t);return{profile:t,configHome:r,rootDir:o,stateFile:dn.join(o,"daemon.json"),lockFile:dn.join(o,"daemon.lock"),tokenFile:dn.join(o,"daemon.token"),logFile:dn.join(o,"daemon.log"),runsDir:dn.join(o,"runs"),eventsDir:dn.join(o,"events"),ownerPolicyFile:dn.join(o,"owner-policy.json"),ownerPolicyLockFile:dn.join(o,"owner-policy.lock")}}i(jn,"resolveRuntimeDaemonPathsFromConfigHome");function Cf(e,n){let t=i(r=>{let o=dn.resolve(r);return process.platform==="win32"?o.toLowerCase():o},"resolveIdentity");return t(e)===t(n)}i(Cf,"isSameRuntimeDaemonPath");function $t(e,n){let t=dn.resolve(e);return Cf(n,dn.join(t,".kodax"))?t:dn.resolve(n)}i($t,"resolveRuntimeDaemonEndpointScope");function bn(e){if(!se.existsSync(e.ownerPolicyFile))return{mode:"daemon",revision:0,updatedAt:new Date(0).toISOString()};try{let n=JSON.parse(se.readFileSync(e.ownerPolicyFile,"utf8"));if(Lo(n)&&(n.mode==="daemon"||n.mode==="inline")&&typeof n.revision=="number"&&Number.isSafeInteger(n.revision)&&n.revision>=0&&typeof n.updatedAt=="string")return{mode:n.mode,revision:n.revision,updatedAt:n.updatedAt}}catch{}throw new Error("Runtime owner policy is corrupt; refusing to choose an owner.")}i(bn,"readRuntimeOwnerPolicy");function ru(e,n,t){gn(e);let r=Yn(e);if(!r)throw new Error("Runtime owner policy update is already in progress.");try{if(se.existsSync(e.lockFile))throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return ui(e,n,t,r.nonce)}finally{lt(e,r)}}i(ru,"updateRuntimeOwnerPolicy");function iu(e,n,t){gn(e);let r=Yn(e);if(!r)throw ai("Runtime owner rollback is already in progress.");try{let o=We(e.lockFile);if(o?.kind!=="daemon"||o.runtimeId!==n)throw ai("Runtime daemon owner changed before rollback commit.");if(bn(e).mode!=="daemon")throw ai("Runtime owner policy changed before rollback commit.");return ui(e,"inline",t,r.nonce)}finally{lt(e,r)}}i(iu,"commitRuntimeDaemonRollbackPolicy");function di(e){gn(e);let n=Yn(e);if(!n)throw new Error("Runtime owner transition is already in progress.");try{if(se.existsSync(e.lockFile))throw new Error("Cannot enable Runtime daemon ownership while an owner lock exists.");let t=bn(e);return t.mode==="daemon"?t:ui(e,"daemon",t.revision,n.nonce)}finally{lt(e,n)}}i(di,"enableRuntimeDaemonOwner");function ou(e,n,t=!1){gn(e);let r=Yn(e);if(!r)throw new Error("Runtime owner transition is already in progress.");try{let o=bn(e);if(o.mode!=="inline"){if(!t)throw new Error("Coder inline ownership requires explicit enableRollback: true.");if(se.existsSync(e.lockFile))throw new Error("Cannot enable inline rollback while a Coder owner lock exists.");ui(e,"inline",o.revision,r.nonce)}if(se.existsSync(e.lockFile))throw new Error(`Coder profile "${e.profile}" already has an owner.`);let s=lu(e,n);if(!s)throw new Error(`Coder profile "${e.profile}" already has an owner.`);return s}finally{lt(e,r)}}i(ou,"acquireRuntimeInlineOwner");function ui(e,n,t,r){let o=bn(e);if(o.revision!==t)throw ai(`Runtime owner policy conflict: expected ${t}, current ${o.revision}.`);let s={mode:n,revision:o.revision+1,updatedAt:new Date().toISOString()},a=`${e.ownerPolicyFile}.${process.pid}.${r}.tmp`;try{let c=se.openSync(a,"wx",384);try{se.writeFileSync(c,`${JSON.stringify(s,null,2)}
11
+ `,"utf8"),se.fsyncSync(c)}finally{se.closeSync(c)}return se.renameSync(a,e.ownerPolicyFile),s}finally{se.rmSync(a,{force:!0})}}i(ui,"writeRuntimeOwnerPolicy");function ai(e){let n=new Error(e);return n.code="conflict",n}i(ai,"runtimeOwnerPolicyConflict");function Yn(e,n=!0){let t=Mo(),r={runtimeId:`owner-transition-${t}`,pid:process.pid,createdAt:new Date().toISOString()},o;try{return o=se.openSync(e.ownerPolicyLockFile,"wx",384),se.writeFileSync(o,`${JSON.stringify({...r,nonce:t})}
12
+ `,"utf8"),se.fsyncSync(o),{nonce:t,owner:r}}catch(s){if(No(s)&&s.code==="EEXIST")return n&&Af(e)?Yn(e,!1):void 0;throw s}finally{o!==void 0&&se.closeSync(o)}}i(Yn,"tryAcquireRuntimeOwnerCoordination");function Af(e){let n=nu(e);if(!n||Tf(n.owner.pid))return!1;try{let t=nu(e);return!t||t.nonce!==n.nonce?!1:(se.unlinkSync(e.ownerPolicyLockFile),!0)}catch{return!1}}i(Af,"removeAbandonedRuntimeOwnerCoordination");function nu(e){try{let n=JSON.parse(se.readFileSync(e.ownerPolicyLockFile,"utf8"));return!Lo(n)||typeof n.nonce!="string"||!yu(n)||!n.runtimeId.startsWith("owner-transition-")?void 0:{nonce:n.nonce,owner:n}}catch{return}}i(nu,"readRuntimeOwnerCoordinationHandle");function Tf(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return No(n)&&n.code==="EPERM"}}i(Tf,"isRuntimeOwnerProcessAlive");function Df(e){return We(e.ownerPolicyLockFile)}i(Df,"readRuntimeOwnerCoordinator");function lt(e,n){try{let t=JSON.parse(se.readFileSync(e.ownerPolicyLockFile,"utf8"));Lo(t)&&t.nonce===n.nonce&&se.unlinkSync(e.ownerPolicyLockFile)}catch{}}i(lt,"releaseRuntimeOwnerCoordination");function ci(e){if(bn(e).mode!=="daemon")throw new Error(`Runtime daemon auto-start is disabled for profile "${e.profile}" by inline rollback policy.`)}i(ci,"assertRuntimeDaemonOwnerAllowed");function _o(e){let n=e.trim()||"default";if(!/^[A-Za-z0-9_.-]+$/.test(n))throw new Error(`Invalid runtime daemon profile: ${e}`);return n}i(_o,"normalizeRuntimeDaemonProfile");function gn(e){se.mkdirSync(e.rootDir,{recursive:!0}),se.mkdirSync(e.runsDir,{recursive:!0}),se.mkdirSync(e.eventsDir,{recursive:!0})}i(gn,"ensureRuntimeDaemonDirectories");function su(){return`dt_${Mo().replace(/-/g,"")}`}i(su,"createRuntimeDaemonToken");function au(e,n){gn(e),se.writeFileSync(e.tokenFile,`${n}
13
+ `,{encoding:"utf8",mode:384}),process.platform!=="win32"&&se.chmodSync(e.tokenFile,384)}i(au,"writeRuntimeDaemonToken");function Rr(e){try{let n=se.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}i(Rr,"readRuntimeDaemonToken");function jt(e,n){gn(e);let t=`${e.stateFile}.${process.pid}.${Mo()}.tmp`;try{let r=se.openSync(t,"wx",384);try{se.writeFileSync(r,`${JSON.stringify(n,null,2)}
14
+ `,"utf8"),se.fsyncSync(r)}finally{se.closeSync(r)}se.renameSync(t,e.stateFile)}finally{se.rmSync(t,{force:!0})}}i(jt,"writeRuntimeDaemonState");function yn(e,n,t,r){gn(e);let o={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};se.appendFileSync(e.logFile,`${JSON.stringify(o)}
15
+ `,"utf8")}i(yn,"appendRuntimeDaemonLog");function du(e,n=200){if(!se.existsSync(e.logFile))return[];let t=[],r=se.readFileSync(e.logFile,"utf8").split(/\r?\n/).filter(o=>o.trim().length>0);for(let o of r.slice(-n))try{let s=JSON.parse(o);Lf(s)&&t.push(s)}catch(s){t.push({time:new Date().toISOString(),level:"warn",message:`Skipped malformed daemon log line: ${s instanceof Error?s.message:String(s)}`})}return t}i(du,"readRuntimeDaemonLog");function uu(e){if(se.existsSync(e.stateFile))try{let n=JSON.parse(se.readFileSync(e.stateFile,"utf8"));return Nf(n)?n:void 0}catch{return}}i(uu,"readRuntimeDaemonState");function Mf(e,n){return dn.join(e.rootDir,`shutdown-outcome.${encodeURIComponent(n.runtimeId)}.${n.pid}.json`)}i(Mf,"runtimeDaemonShutdownOutcomePath");function cu(e,n){try{let t=JSON.parse(se.readFileSync(Mf(e,n),"utf8"));return Hf(t)?t:void 0}catch{return}}i(cu,"readRuntimeDaemonShutdownOutcome");function lu(e,n){gn(e);let t;try{return t=se.openSync(e.lockFile,"wx",384),se.writeFileSync(t,`${JSON.stringify(n,null,2)}
16
+ `,"utf8"),se.fsyncSync(t),{file:e.lockFile,owner:n}}catch(r){if(No(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&se.closeSync(t)}}i(lu,"tryAcquireRuntimeDaemonLock");function li(e){let n={ownerPolicyLockFile:dn.join(dn.dirname(e.file),"owner-policy.lock")},t=Yn(n);if(!t)return!1;try{return fu(e)}finally{lt(n,t)}}i(li,"releaseRuntimeDaemonLock");function mu(e,n){let t=Yn(e);if(!t)return!1;try{let r=We(n.file);return Oo(r,n.owner)?(Of(e),fu(n)):!1}finally{lt(e,t)}}i(mu,"releaseRuntimeDaemonOwnership");function fu(e){let n=We(e.file);return Oo(n,e.owner)?(se.unlinkSync(e.file),!0):!1}i(fu,"unlinkRuntimeDaemonLockIfOwned");function We(e){if(se.existsSync(e))try{let n=JSON.parse(se.readFileSync(e,"utf8"));return yu(n)?n:void 0}catch{return}}i(We,"readRuntimeDaemonLockOwner");function pu(e,n,t){gn(e);let r=qt(t),o=We(e.lockFile);if(r==="healthy")return t.state&&o!==void 0&&Do(o,t.state)?{kind:"attach",state:t.state,health:r}:{kind:"unhealthy",health:"mismatch",...t.state!==void 0?{state:t.state}:{},...o!==void 0?{lockOwner:o}:{}};if(r==="unhealthy"&&t.state!==void 0&&jf(t.state.status)&&t.pidAlive&&o!==void 0)return{kind:"wait",lockOwner:o,state:t.state,health:"missing"};if(r==="unhealthy"||r==="mismatch")return{kind:"unhealthy",health:r,...t.state!==void 0?{state:t.state}:{},...o!==void 0?{lockOwner:o}:{}};let s=r==="stale"?"stale":"missing",a=Yn(e);if(!a){let c=We(e.lockFile)??Df(e);return c?{kind:"wait",lockOwner:c,...t.state!==void 0?{state:t.state}:{},health:s}:{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}try{return bn(e).mode!=="daemon"?{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}:_f(e,n,t,s)}finally{lt(e,a)}}i(pu,"claimRuntimeDaemonOwnership");function _f(e,n,t,r){let o=We(e.lockFile);if(r==="stale"){if(o!==void 0&&(t.observedLockOwner!==void 0&&!Oo(o,t.observedLockOwner)||t.state!==void 0&&!Do(o,t.state)))return si(o,t,r);tu(e)}else if(o!==void 0){if(t.observedLockOwner!==void 0&&!Do(o,t.observedLockOwner))return si(o,t,r);if(t.lockOwnerPidAlive===!1)tu(e);else return si(o,t,r)}if(r==="missing"){let c=We(e.lockFile);if(c!==void 0)return{kind:"wait",lockOwner:c,...t.state!==void 0?{state:t.state}:{},health:r}}let s=lu(e,n);if(s)return{kind:"claim",lock:s,health:r};let a=We(e.lockFile);return a?si(a,t,r):{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}i(_f,"claimAvailableRuntimeDaemonOwnership");function si(e,n,t){return{kind:"wait",lockOwner:e,...n.state!==void 0?{state:n.state}:{},health:t}}i(si,"waitForRuntimeOwner");function Do(e,n){return e.runtimeId===n.runtimeId&&e.pid===n.pid}i(Do,"sameRuntimeOwner");function Oo(e,n){return e===void 0||n===void 0?e===n:e.runtimeId===n.runtimeId&&e.pid===n.pid&&e.createdAt===n.createdAt&&e.kind===n.kind}i(Oo,"sameRuntimeLockOwner");function tu(e){se.rmSync(e.lockFile,{force:!0}),se.rmSync(e.stateFile,{force:!0}),se.rmSync(e.tokenFile,{force:!0})}i(tu,"removeRuntimeDaemonOwnershipFiles");function Of(e){se.rmSync(e.stateFile,{force:!0}),se.rmSync(e.tokenFile,{force:!0})}i(Of,"removeRuntimeDaemonStateFiles");function qt(e){return e.state?e.endpointReachable&&!e.identityMatches?"mismatch":e.pidAlive&&e.endpointReachable&&e.identityMatches?"healthy":!e.pidAlive&&!e.endpointReachable?"stale":"unhealthy":"missing"}i(qt,"classifyRuntimeDaemonHealth");function Nf(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.runtimeId=="string"&&typeof n.profile=="string"&&typeof n.pid=="number"&&typeof n.startedAt=="string"&&typeof n.endpoint=="string"&&typeof n.version=="string"&&$f(n.status)&&(n.configHome===void 0||typeof n.configHome=="string")&&(n.lastError===void 0||typeof n.lastError=="string")}i(Nf,"isRuntimeDaemonState");function Lf(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&Ff(n.level)&&typeof n.message=="string"&&(n.data===void 0||gu(n.data))}i(Lf,"isRuntimeDaemonLogEntry");function Ff(e){return e==="info"||e==="warn"||e==="error"}i(Ff,"isRuntimeDaemonLogLevel");function Hf(e){return gu(e)?e.version===1&&typeof e.runtimeId=="string"&&typeof e.pid=="number"&&(e.status==="succeeded"||e.status==="failed")&&typeof e.completedAt=="string"&&(e.error===void 0||typeof e.error=="string"):!1}i(Hf,"isRuntimeDaemonShutdownOutcome");function gu(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(gu,"isPlainRecord");function yu(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.runtimeId=="string"&&typeof n.pid=="number"&&typeof n.createdAt=="string"&&(n.processContainment===void 0||n.processContainment==="windows-job")&&(n.processContainment==="windows-job"?Number.isSafeInteger(n.supervisorPid)&&n.supervisorPid>0:n.supervisorPid===void 0)}i(yu,"isRuntimeDaemonLockOwner");function $f(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}i($f,"isRuntimeDaemonStatus");function jf(e){return e==="starting"||e==="draining"||e==="stopping"}i(jf,"isRuntimeDaemonTransitionStatus");function No(e){return e instanceof Error&&"code"in e}i(No,"isNodeFileError");function Lo(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Lo,"isRecord");import{createHash as qf,randomUUID as mt}from"node:crypto";import*as Ut from"node:fs/promises";import*as hr from"node:net";import Bf from"node:os";import Ru from"node:path";import{StringDecoder as Fo}from"node:string_decoder";var Kf=8*1024*1024,Uf=3e4,Kt=class extends Error{constructor(t,r,o){super(t);this.code=r;this.data=o;this.name="RuntimeDaemonTransportError"}code;data;static{i(this,"RuntimeDaemonTransportError")}};function $o(e){return e instanceof Kt}i($o,"isRuntimeDaemonTransportError");function Xt(e="default",n){let t=_o(e),r=n===void 0?t:`${t}-${Xf(Ru.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:Ru.join(Bf.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}i(Xt,"defaultRuntimeDaemonEndpoint");function Xf(e){return qf("sha256").update(e).digest("hex").slice(0,12)}i(Xf,"shortPathHash");function wu(e,n={}){let t="",r=0,o=new Fo("utf8"),s=n.maxFrameBytes??Kf;if(!Number.isSafeInteger(s)||s<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let a=i(l=>{Jf(l,s),l.trim()&&e(Kd(l))},"consumeLine"),c=i(l=>{t+=l,r+=Buffer.byteLength(l,"utf8")},"append");return{push(l){for(typeof l=="string"?(c(o.end()),o=new Fo("utf8"),c(l)):c(o.write(l));;){let m=t.indexOf(`
17
+ `);if(m<0)break;let R=t.slice(0,m).replace(/\r$/,""),v=t.slice(0,m+1);t=t.slice(m+1),r-=Buffer.byteLength(v,"utf8"),a(R)}Su(r,s)},flush(){c(o.end()),o=new Fo("utf8");let l=t.trim();t="",r=0,l.length>0&&a(l)}}}i(wu,"createRuntimeDaemonFrameParser");async function qn(e,n={}){let t=hr.createConnection(e.path);t.setEncoding("utf8");let r=new Promise(I=>{t.once("close",()=>I())});await Vf(t,n.connectTimeoutMs);let o=!1,s,a=`transport_${mt().replace(/-/g,"")}`,c=mt().replace(/-/g,"")+mt().replace(/-/g,""),l=`connection_${mt().replace(/-/g,"")}`,m=new Set,R=new Set,v={state:"connected",connectionId:l,reconnectable:!1},y=i((I,k)=>{if(v.state!=="disconnected"){v={state:"disconnected",connectionId:l,reason:I,reconnectable:k};for(let A of R)try{A(v)}catch{ge({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport lifecycle listener failed."})}}},"disconnect"),x=new Map,p=new Map,E=i(I=>{let k=p.get(I);if(k!==void 0)return p.delete(I),clearTimeout(k.expiry),k.deliver},"removeLateResult"),u=i(()=>{for(let I of p.values())clearTimeout(I.expiry);p.clear()},"clearLateResults"),g=!1,h=i((I,k)=>{if(!g||o||t.destroyed)return;let C=Ot(`${I==="request.ack"?"ack":"cancel"}_${mt().replace(/-/g,"").slice(0,12)}`,I,{requestId:k});t.write(`${JSON.stringify(C)}
18
+ `)},"sendRequestLifecycleFrame"),P=wu(I=>{if(dt(I)){let k=x.get(I.id);if(k){x.delete(I.id),k.cleanup(),zf(I.result)&&(g=!0),h("request.ack",I.id),k.resolve(I.result);return}let A=E(I.id);if(I.id.startsWith("req_")&&h("request.cancel",I.id),A===void 0)return;try{A(I.result)}catch(C){ge({source:"runtime.daemon.transport",level:"warn",message:"Runtime daemon late-result handler failed.",detail:C})}return}if(Lt(I)){if(!I.id)return;let k=x.get(I.id);if(k){x.delete(I.id),k.cleanup(),k.reject(new Kt(I.error.message,I.error.code,I.error.data));return}E(I.id);return}if(yr(I))for(let k of m)try{k(I)}catch{ge({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport notification listener failed."})}},{maxFrameBytes:n.maxFrameBytes});return t.on("data",I=>{try{P.push(I)}catch(k){o=!0;let A=Bt(k);y(A.message,!0),mi(x,A),u(),t.destroy(A)}}),t.on("close",()=>{o=!0,y("Runtime daemon transport closed.",!0),mi(x,new Error("Runtime daemon transport closed.")),u()}),t.on("error",I=>{o=!0,y(I.message,!0),mi(x,I),u()}),{request(I,k,A,C){if(o)return Promise.reject(new Error("Runtime daemon transport is closed."));let O=`req_${mt().replace(/-/g,"").slice(0,12)}`,H=I==="initialize"||I==="runtime.initialize"?Wf(k,a,c):k,ee=A??(s!==void 0&&at(I)?{operationId:`op_${mt().replace(/-/g,"")}`,journalEpoch:s}:void 0),te=Ot(O,I,H,ee),fe;try{fe=JSON.stringify(te)}catch(qe){return Promise.reject(new Kt(`Runtime daemon request params are not JSON-serializable: ${Bt(qe).message}`,"invalid_params"))}let Re,Fe=!1,ke=i(()=>{Re!==void 0&&C?.signal?.removeEventListener("abort",Re)},"cleanup"),ue=new Promise((qe,xe)=>{let ze={resolve:qe,reject:xe,cleanup:ke};x.set(O,ze),C?.signal!==void 0&&(Re=i(()=>{if(x.get(O)===ze){if(x.delete(O),ke(),Fe&&!t.destroyed&&h("request.cancel",O),C.onLateResult!==void 0){let Ze=setTimeout(()=>{p.delete(O)},Uf);Ze.unref?.(),p.set(O,{deliver:C.onLateResult,expiry:Ze})}xe(Zf(C.signal?.reason))}},"abort"),C.signal.addEventListener("abort",Re,{once:!0}),C.signal.aborted&&Re())});return C?.signal?.aborted?ue:(t.write(`${fe}
19
+ `),Fe=!0,ue.then(qe=>{if(I==="initialize"||I==="runtime.initialize"){let xe=ft(qe);typeof xe?.journalEpoch=="string"&&(s=xe.journalEpoch)}return qe}))},subscribe(I){return m.add(I),{close(){m.delete(I)}}},subscribeLifecycle(I){return R.add(I),I(v),{close(){R.delete(I)}}},async close(){let I;if(!o){o=!0,y("Runtime daemon transport closed by client.",!1);try{P.flush()}catch(k){I=Bt(k)}t.end(),t.destroy(),mi(x,new Error("Runtime daemon transport closed.")),u()}if(await r,R.clear(),I!==void 0)throw I}}}i(qn,"createRuntimeDaemonSocketClientTransport");function Wf(e,n,t){let r=ft(e)??{},o=ft(r.capabilities)??{},s=ft(r.clientInfo)??{name:"kodax-transport"};return{...r,capabilities:{...o,operationDeduplication:!0},clientInfo:{...s,instanceId:typeof s.instanceId=="string"?s.instanceId:n,instanceSecret:typeof s.instanceSecret=="string"?s.instanceSecret:t}}}i(Wf,"withDurableOperationCapability");function ft(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}i(ft,"asRecord");function zf(e){let n=ft(e),t=ft(n?.capabilities),r=ft(t?.runLifecycleControl);return Number.isSafeInteger(r?.version)&&Number(r?.version)>=1&&r.structuredStopReceipt===!0&&r.protocolCancellation===!0&&r.responseAcknowledgement===!0}i(zf,"runtimeDaemonSupportsRequestLifecycle");async function vu(e){await Yf(e.endpoint);let n=hr.createServer(),t=new Set,r=new Set,o=!1;if(n.on("connection",s=>{if(o){s.destroy();return}t.add(s);let a=!1,c=i(v=>{if(s.destroyed)return;let y;try{y=JSON.stringify(v)}catch(x){let p=Gn({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${Bt(x).message}`},v.kind==="response"||v.kind==="error"?v.id:void 0);y=JSON.stringify(p)}s.write(`${y}
20
+ `)},"send"),l=e.createDispatcher(v=>c(v));r.add(l);let m=wu(v=>{if(Co(v)){l.handle(v).then(c,y=>{c(Gn({code:"internal_error",message:Bt(y).message}))});return}if(Lt(v)){c(v);return}c(Gn({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),R=i(v=>{if(a)return;a=!0;let y=Bt(v);c(Gn({code:"invalid_frame",message:y.message,...$o(y)&&y.data!==void 0?{data:y.data}:{}})),s.end()},"rejectInvalidFrame");s.on("data",v=>{if(!a)try{m.push(v)}catch(y){R(y)}}),s.on("end",()=>{try{m.flush()}catch(v){R(v)}}),s.on("close",()=>{t.delete(s),r.delete(l),l.close()}),s.on("error",()=>{s.destroy()})}),await Gf(n,e.endpoint.path),e.endpoint.kind==="unix")try{await Ut.chmod(e.endpoint.path,384)}catch(s){throw await hu(n),s}return{endpoint:e.endpoint,connectionCount(){return t.size},unref(){n.unref()},async close(){if(!o){o=!0;for(let s of r)s.close();r.clear();for(let s of t)s.destroy();t.clear(),await hu(n)}}}}i(vu,"createRuntimeDaemonSocketServer");function Jf(e,n){Su(Buffer.byteLength(e,"utf8"),n)}i(Jf,"assertFrameSize");function Su(e,n){if(!(e<=n))throw new Kt(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}i(Su,"assertFrameByteSize");function Vf(e,n=2e3){return new Promise((t,r)=>{let o=setTimeout(()=>{s(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);o.unref?.();let s=i(()=>{clearTimeout(o),e.off("connect",a),e.off("error",c)},"cleanup"),a=i(()=>{s(),t()},"onConnect"),c=i(l=>{s(),r(l)},"onError");e.once("connect",a),e.once("error",c)})}i(Vf,"waitForConnect");function Gf(e,n){return new Promise((t,r)=>{let o=i(()=>{e.off("listening",s),e.off("error",a)},"cleanup"),s=i(()=>{o(),t()},"onListening"),a=i(c=>{o(),r(c)},"onError");e.once("listening",s),e.once("error",a),e.listen(n)})}i(Gf,"waitForListen");async function Yf(e){if(e.kind!=="unix")return;let n;try{n=await Ut.stat(e.path)}catch(t){if(Ho(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 Qf(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await Ut.unlink(e.path)}catch(t){if(!Ho(t)||t.code!=="ENOENT")throw t}}i(Yf,"prepareUnixSocketEndpoint");function Qf(e){return new Promise((n,t)=>{let r=hr.createConnection(e),o=setTimeout(()=>{s(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);o.unref?.();let s=i(()=>{clearTimeout(o),r.off("connect",a),r.off("error",c)},"cleanup"),a=i(()=>{s(),r.end(),r.destroy(),n(!0)},"onConnect"),c=i(l=>{if(s(),r.destroy(),Ho(l)&&(l.code==="ECONNREFUSED"||l.code==="ENOENT")){n(!1);return}t(l)},"onError");r.once("connect",a),r.once("error",c)})}i(Qf,"unixSocketAcceptsConnections");function hu(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}i(hu,"closeNetServer");function mi(e,n){for(let t of e.values())t.cleanup(),t.reject(n);e.clear()}i(mi,"rejectPending");function Zf(e){return e instanceof Error?e:new Error("Runtime daemon request cancelled.")}i(Zf,"normalizeTransportAbortReason");function Bt(e){return e instanceof Error?e:new Error(String(e))}i(Bt,"normalizeTransportError");function Ho(e){return e instanceof Error&&"code"in e}i(Ho,"isNodeFileError");async function wr(e,n={}){let t=uu(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=We(e.lockFile),o=(n.isPidAlive??Wt)(t.pid),s=pt(t),a=Rr(e),c;try{c=await(n.createTransport?n.createTransport(s):qn(s,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let l=c.request("initialize",{profile:t.profile,connectionPurpose:"probe",...a!==void 0?{token:a}:{}});l.catch(()=>{});let m=await ep(l,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:o,endpointReachable:!0,identityMatches:np(m,t)&&tp(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(l){return $o(l)&&l.code==="unauthorized"?{state:t,pidAlive:o,endpointReachable:!0,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}:{state:t,pidAlive:o,endpointReachable:!1,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}}finally{await c?.close?.()}}i(wr,"observeRuntimeDaemonHealth");async function jo(e,n,t={}){let r=await wr(e,t),o=r.state?void 0:We(e.lockFile),s=o?{...r,observedLockOwner:o,lockOwnerPidAlive:(t.isPidAlive??Wt)(o.pid)}:r;return pu(e,n,s)}i(jo,"resolveRuntimeDaemonOwnership");function pt(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}i(pt,"runtimeDaemonEndpointFromState");function Wt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return rp(n)&&n.code==="EPERM"}}i(Wt,"isRuntimeDaemonPidAlive");async function ep(e,n,t){let r;try{return await Promise.race([e,new Promise((o,s)=>{r=setTimeout(()=>s(new Error(t)),n),r.unref?.()})])}finally{r!==void 0&&clearTimeout(r)}}i(ep,"withTimeout");function np(e,n){let t=Iu(e),r=Iu(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}i(np,"daemonIdentityMatchesState");function tp(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}i(tp,"runtimeDaemonLockMatchesState");function Iu(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}i(Iu,"asRecord");function rp(e){return e instanceof Error&&"code"in e}i(rp,"isNodeProcessError");import vc from"node:path";import{randomUUID as Vt}from"node:crypto";var w={type:"string"},De={type:"boolean"},de={type:"integer"},z={type:"object",additionalProperties:!0},bu={},kn={type:"array",items:z},_n={oneOf:[{type:"null"},z]},Ke=_({ok:De},["ok"]),Ye=_({}),fi={initialize:{params:_({profile:w,token:w,autoStart:De,endpoint:w,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:z,capabilities:z},[],!0),result:_({identity:z,capabilities:z},["identity","capabilities"],!0)},"runtime.initialize":{params:_({profile:w,token:w,autoStart:De,endpoint:w,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:z,capabilities:z},[],!0),result:_({identity:z,capabilities:z},["identity","capabilities"],!0)},ping:{params:Ye,result:_({ok:De,runtimeId:w},["ok","runtimeId"])},"runtime.identity":{params:Ye,result:z},"runtime.status":{params:Ye,result:z},"runtime.shutdown":{params:Ye,result:Ke},"runtime.capabilities":{params:Ye,result:z},"daemon.status":{params:Ye,result:z},"daemon.stop":{params:Ye,result:Ke},"daemon.logs":{params:Ye,result:z},"daemon.preflight":{params:Ye,result:z},"daemon.management.get":{params:Ye,result:_({runtimeId:w,revision:de,ownerPolicy:Pu(),owner:Ip(),preflight:z,integrations:ap()},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:_({expectedRuntimeId:w,expectedRevision:de,expectedOwnerPolicyRevision:de},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:_({accepted:{type:"boolean",enum:[!0]},runtimeId:w,revision:de,ownerPolicy:Pu("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:_({operationId:w,journalEpoch:w},["operationId","journalEpoch"]),result:z},"session.create":{params:lp(),result:yt()},"session.load":{params:_({sessionId:w,timeoutMs:de},["sessionId"]),result:yt()},"session.list":{params:mp(),result:rn(yt())},"session.status":{params:_({sessionId:w},["sessionId"]),result:z},"session.transcript":{params:_({sessionId:w,timeoutMs:de},["sessionId"]),result:_n},"session.transcript.page":{params:_({sessionId:w,cursor:w,limit:de,timeoutMs:de},["sessionId"]),result:_n},"session.transcript.entryChunk":{params:_({sessionId:w,revision:w,entryIndex:de,cursor:w,timeoutMs:de},["sessionId","revision","entryIndex"]),result:_n},"session.transcript.search":{params:up(),result:cn(cp())},"session.observe":{params:_({sessionId:w,timeoutMs:de},["sessionId"]),result:z},"session.conversation":{params:_({sessionId:w,timeoutMs:de},["sessionId"]),result:_n},"session.conversation.page":{params:_({sessionId:w,cursor:w,limit:de,timeoutMs:de},["sessionId"]),result:_n},"session.conversation.entryChunk":{params:_({sessionId:w,revision:w,entryIndex:de,cursor:w,timeoutMs:de},["sessionId","revision","entryIndex"]),result:_n},"session.diagnostics":{params:_({sessionId:w,runId:w,timeoutMs:de},["sessionId"]),result:xp()},"session.fork":{params:bp(),result:cn(yt())},"session.notice.append":{params:_({sessionId:w,content:w,source:w},["sessionId","content"]),result:_n},"session.rewind":{params:_({sessionId:w,selector:w,historyBoundary:Fu()},["sessionId"]),result:cn(yt())},"session.active_entry.set":{params:xu(),result:cn(yt())},"session.activeEntry.set":{params:xu(),result:cn(yt())},"session.compact":{params:kp(),result:z},"session.archive":{params:_({sessionId:w},["sessionId"]),result:Ke},"session.unarchive":{params:_({sessionId:w},["sessionId"]),result:Ke},"session.delete":{params:_({sessionId:w},["sessionId"]),result:Ke},"session.settings.get":{params:_({sessionId:w},["sessionId"]),result:z},"session.settings.getVersioned":{params:_({sessionId:w},["sessionId"]),result:z},"session.autoMode.getStats":{params:_({sessionId:w},["sessionId"]),result:cn(z)},"session.settings.update":{params:_({sessionId:w,patch:z},["sessionId","patch"]),result:z},"session.settings.updateVersioned":{params:_({sessionId:w,patch:z,expectedRevision:de},["sessionId","patch","expectedRevision"]),result:z},"run.start":{params:Ep(),result:dp()},"run.input.submit":{params:_({sessionId:w,afterRunId:w,delivery:{type:"string",enum:["after_turn","interrupt"]},input:bu,credential:z,hostTools:z},["sessionId","afterRunId","delivery","input"]),result:z},"run.get":{params:gt(),result:Cu()},"run.list":{params:Pp(),result:rn(Cu())},"run.await":{params:gt(),result:Ap()},"run.abort":{params:gt(),result:Cp()},"run.model.set":{params:_({runId:w,model:w},["runId"],!0),result:Ke},"run.provider.set":{params:_({runId:w,provider:w},["runId","provider"]),result:Ke},"run.reasoning.set":{params:_({runId:w,reasoning:w},["runId"],!0),result:Ke},"run.setModel":{params:_({runId:w,model:w},["runId"],!0),result:Ke},"run.setProvider":{params:_({runId:w,provider:w},["runId","provider"]),result:Ke},"run.setReasoning":{params:_({runId:w,reasoning:w},["runId"],!0),result:Ke},"request.cancel":{params:_({requestId:w},["requestId"]),result:Ke},"request.ack":{params:_({requestId:w},["requestId"]),result:Ke},"event.subscribe":{params:ku(qu()),result:Eu()},"event.unsubscribe":{params:_({subscriptionId:w},["subscriptionId"]),result:Ke},"event.replay":{params:Tp(),result:rn(Dp())},"permission.list":{params:Bo(),result:rn(Au())},"permission.listPending":{params:Bo(),result:rn(Au())},"permission.request":{params:Bu(),result:Tu()},"permission.respond":{params:_({requestId:w,runId:w,decision:Tu()},["requestId","decision"]),result:De},"permission.grants.list":{params:Ye,result:z},"permission.grants.revoke":{params:_({grantId:w,expectedRevision:de},["grantId","expectedRevision"]),result:De},"user_input.listPending":{params:Bo(),result:rn(z)},"user_input.respond":{params:_({requestId:w,answer:bu,runId:w,expectedRevision:de},["requestId","answer"],!0),result:z},"user_input.dismiss":{params:_({requestId:w,runId:w,expectedRevision:de},["requestId"],!0),result:z},"credential.register":{params:_({leaseId:w,providers:{type:"array",items:w},expiresAt:w},["leaseId","providers"],!0),result:z},"credential.get":{params:_({leaseId:w},["leaseId"]),result:{oneOf:[z,{type:"null"}]}},"credential.revoke":{params:_({leaseId:w},["leaseId"]),result:De},"credential.supply":{params:_({requestId:w,credential:w,error:w},["requestId"],!0),result:Ke},"host_tool.register":{params:_({leaseId:w,tools:{type:"array",items:z}},["leaseId","tools"]),result:z},"host_tool.get":{params:_({leaseId:w},["leaseId"]),result:{oneOf:[z,{type:"null"}]}},"host_tool.invocation.get":{params:_({invocationId:w},["invocationId"]),result:{oneOf:[z,{type:"null"}]}},"host_tool.revoke":{params:_({leaseId:w},["leaseId"]),result:De},"host_tool.complete":{params:_({invocationId:w,result:z,error:w},["invocationId"],!0),result:Ke},"workflow.list":{params:Du(),result:kn},"workflow.get":{params:gt(),result:{oneOf:[z,{type:"null"}]}},"workflow.subscribe":{params:ku(Du()),result:Eu()},"workflow.unsubscribe":{params:_({subscriptionId:w},["subscriptionId"]),result:Ke},"workflow.pause":{params:gt(),result:De},"workflow.resume":{params:gt(),result:De},"workflow.stop":{params:gt(),result:De},"learning.list":{params:fp(),result:Sp()},"learning.get":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Lu()},"learning.snapshot":{params:Ye,result:vp()},"learning.events":{params:_({afterRevision:de},[],!0),result:rn(wp())},"learning.acknowledge":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Ke},"learning.snooze":{params:_({nameOrSlug:w,until:w},["nameOrSlug","until"]),result:Ke},"learning.reject":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Ke},"learning.disable":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Ke},"learning.rollback":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Ke},"learning.promote":{params:_({nameOrSlug:w,scope:{type:"string",enum:["user"]}},["nameOrSlug","scope"]),result:Ke},"learning.review":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Ke},"learning.trust":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Ke},"config.read":{params:Ye,result:z},"config.patch":{params:_({patch:z},["patch"]),result:z},"config.reload":{params:Ye,result:_({ok:De,config:z},["ok","config"])},"model.list":{params:_({provider:w},[],!0),result:{oneOf:[z,kn]}},"provider.list":{params:Ye,result:kn},"provider.custom.list":{params:Ye,result:kn},"provider.custom.upsert":{params:_({config:z},["config"]),result:z},"provider.custom.remove":{params:_({name:w},["name"]),result:De},"mcp.server.list":{params:Ye,result:z},"mcp.server.get":{params:_({name:w},["name"]),result:{oneOf:[z,{type:"null"}]}},"mcp.server.validate":{params:_({name:w,config:z},["name","config"]),result:{oneOf:[_({ok:De,config:z},["ok","config"],!0),_({ok:De,error:w},["ok","error"],!0)]}},"mcp.server.upsert":{params:_({name:w,config:z},["name","config"]),result:z},"mcp.server.delete":{params:_({name:w},["name"]),result:De},"mcp.server.remove":{params:_({name:w},["name"]),result:De},"mcp.server.reload":{params:Ye,result:_({ok:De,servers:kn},["ok","servers"])},"mcp.tool.list":{params:_({server:w,forceRefresh:De},[],!0),result:kn},"extension.list":{params:Ye,result:_({active:De,extensions:kn,diagnostics:z},["active","extensions"],!0)},"extension.reload":{params:Ye,result:_({ok:De,active:De},["ok","active"],!0)},"command.list":{params:_({projectRoot:w},[],!0),result:kn},"command.resolve":{params:_({name:w,projectRoot:w},["name"],!0),result:_n},"skill.list":{params:_({projectRoot:w,userInvocableOnly:De},[],!0),result:kn},"skill.describe":{params:_({name:w,projectRoot:w},["name"],!0),result:_n},"skill.read":{params:_({name:w,projectRoot:w},["name"],!0),result:_n},"artifact.create":{params:_({kind:{enum:["image","file","video"]},path:w,mediaType:w,mimeType:w,name:w,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:w},["kind","path"]),result:Mu()},"artifact.get":{params:_({artifactId:w},["artifactId"]),result:cn(Mu())},"artifact.delete":{params:_({artifactId:w},["artifactId"]),result:De},"agentRegistrations.list":{params:Ye,result:kn},"agentRegistrations.upsert":{params:_({registration:z,expectedConfigurationRevision:cn(w),expectedManagementOwner:cn(w)},["registration"]),result:z},"agentRegistrations.setEnabled":{params:_({agentId:w,enabled:De,expectedConfigurationRevision:cn(w),expectedManagementOwner:cn(w),claimOwner:w},["agentId","enabled"]),result:cn(z)},"agentRegistrations.remove":{params:_({agentId:w,expectedConfigurationRevision:cn(w),expectedManagementOwner:cn(w)},["agentId"]),result:De},"agents.listDispatchable":{params:z,result:kn},"agents.describe":{params:_({agentId:w,query:z},["agentId","query"]),result:cn(z)},"agents.preflight":{params:z,result:z},"agents.tree":{params:_({sessionId:w},["sessionId"]),result:z},"agents.detail":{params:_({sessionId:w,actorPath:w},["sessionId","actorPath"]),result:z},"agents.spawn":{params:_({sessionId:w,input:z},["sessionId","input"]),result:z},"agents.send":{params:_({sessionId:w,actorPath:w,content:w,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:Ke},"agents.followup":{params:_({sessionId:w,actorPath:w,objective:w,expectedRevision:de},["sessionId","actorPath","objective"],!0),result:z},"agents.interrupt":{params:_({sessionId:w,actorPath:w,reason:w},["sessionId","actorPath"],!0),result:Ke},"agents.output":{params:_({sessionId:w,actorPath:w,turnId:w},["sessionId","actorPath"],!0),result:z},"agents.events":{params:_({sessionId:w,afterSequence:de},["sessionId"],!0),result:kn},"agents.wait":{params:_({sessionId:w,afterSequence:de,timeoutMs:de},["sessionId"],!0),result:cn(z)},"context.budget.get":{params:qo(),result:{oneOf:[z,{type:"null"}]}},"tool.exposure.preview":{params:qo(),result:{oneOf:[z,{type:"null"}]}},"provider.cache.diagnostics.get":{params:qo(),result:{oneOf:[z,{type:"null"}]}}},_u={event:_({subscriptionId:w,event:z},["subscriptionId","event"]),"observation.invalidated":_({subscriptionId:w,sessionId:w,invalidation:_({code:{type:"string",enum:["observation_invalidated"]},reason:{type:"string",enum:["event_overflow","event_order","delivery_failed","runtime_changed","transport_disconnected"]},runtimeId:w,message:w},["code","reason","runtimeId","message"])},["subscriptionId","invalidation"]),"credential.request":z,"host_tool.invoke":z,"runtime.warning":z},Ou={protocol:Vn,version:1,methods:fi,notifications:_u},ip=JSON.stringify(Ou,null,2);function op(){return _t}i(op,"listRuntimeDaemonSchemaMethods");function zt(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(a=>zt(a,n,t).length===0).length===1?[]:[`${t} must match exactly one allowed schema.`];if(e.enum!==void 0&&!e.enum.some(s=>Object.is(s,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(s=>sp(s,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 s=e.items;return s===void 0?[]:n.flatMap((a,c)=>zt(s,a,`${t}[${c}]`))}if(!Nu(n))return[];let o=[];for(let s of e.required??[])(!Object.prototype.hasOwnProperty.call(n,s)||n[s]===void 0)&&o.push(`${t}.${s} is required.`);for(let[s,a]of Object.entries(n)){if(a===void 0)continue;let c=e.properties?.[s];if(c!==void 0){o.push(...zt(c,a,`${t}.${s}`));continue}e.additionalProperties===!1?o.push(`${t}.${s} is not allowed.`):typeof e.additionalProperties=="object"&&o.push(...zt(e.additionalProperties,a,`${t}.${s}`))}return o}i(zt,"validateRuntimeDaemonJsonSchema");function sp(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 Nu(n);case"string":return typeof n=="string"}}i(sp,"matchesJsonSchemaType");function Nu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Nu,"isJsonObject");function ap(){let e=_({code:{type:"string",enum:["invalid-config","activation-failed","watcher-degraded"]},message:w,time:w},["code","message","time"]),n=_({domain:{type:"string",enum:["mcp","a2a","extensions"]},path:w,revision:w,source:{type:"string",enum:["user","legacy-user","default"]},lastReloadAt:w,diagnostic:e,watching:De},["domain","path","watching"]);return _({state:{type:"string",enum:["healthy","degraded"]},domains:{type:"array",items:n}},["state","domains"])}i(ap,"integrationHealthSchema");function _(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}i(_,"objectSchema");function gt(){return _({runId:w},["runId"])}i(gt,"runIdParamsSchema");function ku(e){return _({filter:e})}i(ku,"filterParamsSchema");function qo(){return _({sessionId:w,runId:w,contextKind:{type:"string",enum:["root","child"]},agentId:w},[],!0)}i(qo,"diagnosticParamsSchema");function Eu(){return _({subscriptionId:w},["subscriptionId"])}i(Eu,"subscriptionSchema");function dp(){return _({runId:w,sessionId:w,turnId:w},["runId","sessionId"],!0)}i(dp,"runStartedSchema");function rn(e){return{type:"array",items:e}}i(rn,"arraySchema");function cn(e){return{oneOf:[{type:"null"},e]}}i(cn,"nullableSchema");function up(){return _({sessionId:w,query:w,limit:de,role:{type:"string",enum:["user","assistant"]},scope:{type:"string",enum:["compacted","all"]},timeoutMs:de},["sessionId","query"])}i(up,"transcriptSearchParamsSchema");function cp(){let e=_({entryId:w,logicalId:w,sourceEntryId:w,timestamp:w,role:{type:"string",enum:["user","assistant"]},source:{type:"string",enum:["user","assistant","tool","child_task"]},active:De,score:{type:"number"},snippet:w,citation:w,entryIndex:de},["entryId","timestamp","role","source","active","score","snippet","citation","entryIndex"]);return _({revision:w,hits:rn(e)},["revision","hits"])}i(cp,"transcriptSearchResultSchema");function lp(){return _({sessionId:w,title:w,projectPath:w,gitRoot:w,surface:w,profileId:w,tag:w})}i(lp,"createSessionParamsSchema");function yt(){return _({id:w,cursor:w,title:w,gitRoot:w,workspaceRoot:w,surface:w,profileId:w,createdAt:w,msgCount:de,tag:w,projectKey:w,archived:De},["id","title"],!0)}i(yt,"sessionSchema");function mp(){return _({projectRoot:w,scope:{enum:["user","managed-task-worker","all"]},includeArchived:De,limit:de,before:w,tag:w,surface:w,cursor:w})}i(mp,"sessionFilterSchema");function fp(){return _({search:w,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:de,cursor:w})}i(fp,"learningQuerySchema");function pp(){return{capabilityId:w,displayName:w,slug:w,lifecycle:Ko(),revision:de,createdAt:w,updatedAt:w,source:_({kind:{enum:["learning_controller","f224_proposal","skill_learning_loop","legacy_manual"]},proposalId:w},["kind"]),lastAction:{enum:["review","trust","reject","disable","rollback","archive","restore","promote"]},artifactPath:w,previousGoodRevision:de,previousLifecycle:Ko(),diagnostics:rn(w)}}i(pp,"learnedCapabilityCommonProperties");function gp(){return["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"]}i(gp,"learnedCapabilityRequired");function yp(){return _({kind:{type:"string",enum:["skill_markdown"]},relativePath:w,fingerprint:w,contentRevision:de},["kind","relativePath","fingerprint","contentRevision"])}i(yp,"learnedCapabilityArtifactSchema");function Rp(){return _({maxInvocations:{type:"integer",enum:[3]},invocationCount:de,verifiedSuccesses:de,credibleNegatives:de,binding:_({bindingId:w,ownerSessionRef:w,expiresAt:w},["bindingId","ownerSessionRef","expiresAt"]),invocations:rn(hp())},["maxInvocations","invocationCount","verifiedSuccesses","credibleNegatives","invocations"])}i(Rp,"learnedCapabilityCanarySchema");function hp(){return _({invocationId:w,bindingId:w,usageSessionHash:w,artifactRevision:de,artifactFingerprint:w,status:{type:"string",enum:["pending","verified_success","credible_negative","inconclusive"]},evidenceRefs:rn(w),invokedAt:w,completedAt:w},["invocationId","bindingId","status","evidenceRefs","invokedAt"])}i(hp,"learnedCapabilityInvocationSchema");function Lu(){let e=pp(),n=yp(),t=gp(),r=_({...e,schemaVersion:{type:"integer",enum:[1]},carrier:{enum:["skill","extension","workflow_handoff"]}},t),o=_({...e,schemaVersion:{type:"integer",enum:[2]},carrier:{type:"string",enum:["skill"]},scope:_({configHomeHash:w,tenantHash:w,projectHash:w},["configHomeHash","tenantHash","projectHash"]),artifact:n,previousGoodArtifact:n,provenance:_({jobId:w,inputHash:w,decisionId:w,actionId:w},["jobId","inputHash","decisionId","actionId"]),canary:Rp()},[...t,"scope","artifact","provenance","canary"]);return{oneOf:[r,o]}}i(Lu,"learnedCapabilitySchema");function Ko(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}i(Ko,"learningLifecycleSchema");function wp(){return _({schemaVersion:{type:"integer",enum:[1]},sequence:de,eventId:w,capabilityId:w,capabilityRevision:de,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Ko(),displayName:w,slug:w,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:w},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}i(wp,"learningEventSchema");function vp(){return _({ready:de,newlyActive:de,attention:de,active:de,revision:de},["ready","newlyActive","attention","active","revision"])}i(vp,"learningSnapshotSchema");function Sp(){return _({items:rn(Lu()),nextCursor:w,revision:de},["items","revision"])}i(Sp,"learningPageSchema");function Pu(e){return _({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:de,updatedAt:w},["mode","revision","updatedAt"])}i(Pu,"ownerPolicySchema");function Ip(){return _({runtimeId:w,pid:de,createdAt:w,kind:{type:"string",enum:["daemon","inline"]},processContainment:{type:"string",enum:["windows-job"]},supervisorPid:de},["runtimeId","pid","createdAt"])}i(Ip,"ownerIdentitySchema");function bp(){return _({sessionId:w,selector:w,newSessionId:w,title:w,historyBoundary:Fu()},["sessionId"])}i(bp,"forkSessionParamsSchema");function Fu(){return _({entryId:w,sourceRevision:w},["entryId","sourceRevision"])}i(Fu,"conversationHistoryBoundarySchema");function xu(){return _({sessionId:w,entryId:w},["sessionId","entryId"])}i(xu,"activeEntryParamsSchema");function kp(){return _({sessionId:w,provider:w,model:w,customInstructions:w,contextWindow:de},["sessionId"])}i(kp,"compactSessionParamsSchema");function Ep(){return _({sessionId:w,prompt:w,input:{oneOf:[z,rn(z)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:z},["sessionId"],!0)}i(Ep,"startRunParamsSchema");function Pp(){return _({sessionId:w,phase:{oneOf:[Jt(),rn(Jt())]}})}i(Pp,"runFilterSchema");function Cu(){return _({runId:w,sessionId:w,turnId:w,phase:Jt(),stage:ju(),stageChangedAt:w,activeSubtaskCount:de,startedAt:w,endedAt:w,provider:w,model:w,reasoning:w,error:w,lifecycleError:_({code:{enum:["actor_settlement_retrying","actor_settlement_not_persisted"]},message:w,retryable:De},["code","message","retryable"]),terminal:Hu(),stop:$u()},["runId","sessionId","phase","startedAt","provider"],!0)}i(Cu,"runStatusSchema");function xp(){let e=_({code:{enum:["run_control_unknown","run_status_unknown","owner_liveness_unconfirmed","owner_recovery_required","stop_outcome_unconfirmed","actor_settlement_retrying","actor_settlement_not_persisted","run_failed","terminal_time_unknown"]},message:w},["code","message"]),n=_({controlRecord:{enum:["present","unknown"]},runId:w,turnId:w,state:{enum:["queued","active","terminal","unknown"]},phase:Jt(),stage:ju(),stageChangedAt:w,terminalAt:w,terminalTimeKnown:De,terminal:Hu(),activeSubtaskCount:{oneOf:[de,{type:"null"}]},activeSubtaskCountSource:{enum:["run_status","unknown"]},stop:$u(),interruptInputs:rn(z),errors:rn(e)},["controlRecord","state","stage","terminalTimeKnown","activeSubtaskCount","activeSubtaskCountSource","errors"]);return _({schemaVersion:{type:"integer",enum:[1]},captureStartedAt:w,capturedAt:w,sdkVersion:w,runtimeVersion:w,daemonVersion:{oneOf:[w,{type:"null"}]},runtimeId:w,runtimeMode:{enum:["embedded","daemon"]},sessionId:w,observation:_({cursor:de,transcriptRevision:w},["cursor","transcriptRevision"]),run:n},["schemaVersion","captureStartedAt","capturedAt","sdkVersion","runtimeVersion","daemonVersion","runtimeId","runtimeMode","sessionId","observation","run"])}i(xp,"sessionDiagnosticsSchema");function Hu(){return _({revision:de,kind:{enum:["completed","failed","cancelled","interrupted"]},code:{enum:["completed","run_failed","blocked","cancelled","interrupted","runtime_restarted","daemon_crashed","credential_unavailable","host_not_dispatched","host_outcome_unknown","control_history_untrusted"]},effectOutcome:{enum:["none","known","unknown"]},message:w},["revision","kind","code","effectOutcome"])}i(Hu,"runtimeTerminalFactSchema");function $u(){return _({requestedAt:w,state:{enum:["unknown","confirmed"]},outcome:{enum:["unknown","cancelled","interrupted","completed","failed"]},reason:w,resolvedAt:w},["requestedAt","state","outcome","reason"])}i($u,"runStopStatusSchema");function Cp(){return _({runId:w,sessionId:w,accepted:De,state:{type:"string",enum:["unknown","confirmed"]},outcome:{type:"string",enum:["unknown","cancelled","interrupted","completed","failed"]},phase:Jt(),revision:de},["runId","sessionId","accepted","state","outcome","phase","revision"])}i(Cp,"runStopReceiptSchema");function Ap(){return _({runId:w,sessionId:w,phase:Jt(),result:z,error:{oneOf:[w,z]}},["runId","sessionId","phase"],!0)}i(Ap,"runResultSchema");function Jt(){return{enum:["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input","unknown","completed","failed","cancelled","interrupted"]}}i(Jt,"runPhaseSchema");function ju(){return{enum:["queued","executing","waiting_agent","recovering","finalizing","terminal","unknown","starting","routing","preflight","round","worker","upgrade","verifying"]}}i(ju,"runStageSchema");function qu(){return _({sessionId:w,runId:w,type:{oneOf:[w,rn(w)]}})}i(qu,"eventFilterSchema");function Tp(){return _({...qu().properties??{},sinceSeq:de,limit:de})}i(Tp,"eventReplayFilterSchema");function Dp(){return _({id:w,seq:de,time:w,sessionId:w,runId:w,turnId:w,type:w,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}i(Dp,"runtimeEventSchema");function Bo(){return _({sessionId:w,runId:w,toolName:w})}i(Bo,"permissionFilterSchema");function Bu(){return _({sessionId:w,runId:w,turnId:w,toolCallId:w,toolName:w,reason:w,risk:{enum:["low","medium","high"]},inputPreview:w,toolInput:z,executionCwd:{type:"string",maxLength:4096},autoModeDiagnostics:z,expiresAt:w,timeoutMs:de},["sessionId","runId","toolName"])}i(Bu,"permissionRequestInputSchema");function Au(){let{toolInput:e,...n}=Bu().properties??{};return _({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:rn(_({id:w,kind:{enum:["session","persistent"]},label:{type:"string",maxLength:512}},["id","kind","label"])),id:w,createdAt:w},["id","sessionId","runId","toolName","createdAt"],!0)}i(Au,"permissionRequestSchema");function Tu(){return{oneOf:[_({type:{enum:["allow_once"]}},["type"]),_({type:{enum:["allow_session"]},suggestionId:w},["type","suggestionId"]),_({type:{enum:["allow_always"]},suggestionId:w},["type","suggestionId"]),_({type:{enum:["allow_always"]},scope:_({toolName:w,sessionId:w,matcher:Mp()})},["type","scope"]),_({type:{enum:["reject"]},reason:w,cause:{enum:["approval_timeout"]}},["type"])]}}i(Tu,"permissionDecisionSchema");function Mp(){let e={version:{type:"integer",enum:[1]},toolName:w,fingerprint:w};return{oneOf:[_({...e,kind:{enum:["exact-command"]},shell:{enum:["cmd","posix","powershell"]},shellContractFingerprint:w,commandFingerprint:w,cwd:w,executable:w,argvFingerprint:w,background:De},["version","kind","toolName","fingerprint","shell","commandFingerprint","cwd","background"]),_({...e,kind:{enum:["exact-path"]},path:w},["version","kind","toolName","fingerprint","path"]),_({...e,kind:{enum:["exact-call"]},cwd:w,inputFingerprint:w},["version","kind","toolName","fingerprint","cwd","inputFingerprint"])]}}i(Mp,"runtimePermissionMatcherSchema");function Du(){return _({runId:w,activeOnly:De,limit:de})}i(Du,"workflowFilterSchema");function Mu(){return _({id:w,kind:{enum:["image","file","video"]},path:w,sizeBytes:de,mediaType:w,mimeType:w,name:w,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:w,createdAt:w},["id","kind","path","sizeBytes","createdAt"],!0)}i(Mu,"artifactSchema");import{createHash as _p,randomUUID as vr}from"node:crypto";import*as tn from"node:fs";import Op from"node:path";var Np=6e4,Lp=1048576,Fp=64,Hp=4096,Ku=1e3;function Xo(){return{callTimeoutMs:Wu("KODAX_REVERSE_CALL_TIMEOUT_MS",Np),maxResultBytes:Wu("KODAX_HOST_TOOL_MAX_RESULT_BYTES",Lp)}}i(Xo,"runtimeDaemonReverseBridgeLimits");function Wo(e,n={}){let t=Xo(),r=new Map,o=new Map,s=new Map,a=new Map,c=new Map((n.initialInvocations??[]).map(I=>[I.invocationId,I])),l=new Set,m=new Map,R=new Map,v,y=!1,x=i(()=>{if(y)throw Le("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),p=i(()=>{let I=Date.now();for(let[k,A]of r)A.expiresAt!==void 0&&Date.parse(A.expiresAt)<=I&&r.delete(k)},"pruneExpiredCredentials"),E=i(I=>{for(let k of s.values())clearTimeout(k.timer),k.reject(Le("credential_unavailable",I));s.clear()},"rejectPendingCredentialRequests"),u=i(()=>{for(let[I,k]of a)k.dispatched&&(a.delete(I),clearTimeout(k.timer),g(I,"unknown"),k.reject(Le("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),g=i((I,k)=>{let A=c.get(I);if(A===void 0)return;let C={...A,state:k,updatedAt:new Date().toISOString()},O=new Map(c);for(O.delete(I),O.set(I,C);O.size>Ku;){let H=O.keys().next().value;if(H===void 0)break;O.delete(H)}n.onInvocationsChanged?.([...O.values()]),c.clear();for(let[H,ee]of O)c.set(H,ee)},"updateHostToolInvocation"),h=i((I,k)=>{let A=v;if(!(k.dispatched||A===void 0||!l.has(k.leaseId)))try{g(I,"dispatched"),k.dispatched=!0,A.notify(k.notification)}catch{a.delete(I),clearTimeout(k.timer),g(I,"unknown"),k.reject(Le("host_tool_unknown","Host tool transport failed after durable dispatch; the side-effect outcome is unknown."))}},"dispatchPendingHostCall"),P=i(async I=>{if(x(),o.get(I.lease.id)!==I.lease)throw Le("host_tool_unavailable","Host tool lease was revoked.");let k=`hostcall_${vr().replace(/-/g,"")}`,A=Nt("host_tool.invoke",{invocationId:k,leaseId:I.lease.id,toolName:I.descriptor.name,sessionId:I.sessionId,runId:I.runId,input:I.toolInput,sideEffect:I.descriptor.sideEffect}),C={invocationId:k,leaseId:I.lease.id,toolName:I.descriptor.name,sessionId:I.sessionId,runId:I.runId,state:"prepared",updatedAt:new Date().toISOString()},O=new Map(c);for(O.set(k,C);O.size>Ku;){let te=O.keys().next().value;if(te===void 0)break;O.delete(te)}n.onInvocationsChanged?.([...O.values()]),c.clear();for(let[te,fe]of O)c.set(te,fe);let H=new Promise((te,fe)=>{let Re=setTimeout(()=>{let Fe=a.get(k);Fe&&(a.delete(k),g(k,Fe.dispatched?"unknown":"not_dispatched"),fe(Le(Fe.dispatched?"host_tool_unknown":"host_tool_unavailable",Fe.dispatched?`Host tool ${I.descriptor.name} did not return a certain result before timeout.`:`Host tool ${I.descriptor.name} had no connected host before timeout.`)))},t.callTimeoutMs);Re.unref?.(),a.set(k,{invocationId:k,resolve:te,reject:fe,timer:Re,notification:A,leaseId:I.lease.id,dispatched:!1})}),ee=a.get(k);return ee&&h(k,ee),H},"invokeHostTool");return e!==void 0&&(v={id:`bridge_${vr().replace(/-/g,"")}`,notify:e}),{attachTransport(I){x(),v!==void 0&&(E("Credential client connection was replaced."),u());let k=`bridge_${vr().replace(/-/g,"")}`;return v={id:k,notify:I},l.clear(),{close(){v?.id===k&&(v=void 0,l.clear(),E("Credential client disconnected."),u())}}},registerCredential(I){if(x(),p(),I.providers.length===0||I.providers.some(A=>A.trim().length===0)||new Set(I.providers).size!==I.providers.length)throw Le("invalid_params","Credential lease providers must be non-empty and unique.");if(I.expiresAt!==void 0&&!Number.isFinite(Date.parse(I.expiresAt)))throw Le("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(I.leaseId))throw Le("conflict","Credential lease ID is already registered on this connection.");let k={id:I.leaseId,providers:[...I.providers],...I.expiresAt!==void 0?{expiresAt:I.expiresAt}:{},providerSet:new Set(I.providers)};return r.set(I.leaseId,k),Xu(k)},getCredential(I){p();let k=r.get(I);return k===void 0?void 0:Xu(k)},revokeCredential(I){return r.delete(I)},supplyCredential(I){let k=s.get(I.requestId);return k?(s.delete(I.requestId),clearTimeout(k.timer),I.credential!==void 0&&I.credential.length>0?k.resolve(I.credential):k.reject(Le("credential_unavailable",I.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(I){x();let k=r.get(I.leaseId);if(!k||!k.providerSet.has(I.provider))throw Le("credential_unavailable","Credential lease is missing or does not allow this provider.");if(k.expiresAt!==void 0&&Date.parse(k.expiresAt)<=Date.now())throw r.delete(k.id),Le("credential_unavailable","Credential lease expired.");let A=v;if(!A)throw Le("credential_unavailable","Credential broker transport is unavailable.");let C=`credreq_${vr().replace(/-/g,"")}`,O=k.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(k.expiresAt)-Date.now())),H=new Promise((ee,te)=>{let fe=setTimeout(()=>{s.delete(C),te(Le("credential_unavailable","Credential lease expired or broker timed out."))},O);fe.unref?.(),s.set(C,{resolve:ee,reject:te,timer:fe})});try{A.notify(Nt("credential.request",{requestId:C,leaseId:k.id,provider:I.provider,sessionId:I.sessionId,runId:I.runId}))}catch{let ee=s.get(C);ee&&(s.delete(C),clearTimeout(ee.timer),ee.reject(Le("credential_unavailable","Credential request was not dispatched.")))}return H.then(ee=>(m.set(I.runId,{leaseId:I.leaseId,provider:I.provider}),ee))},registerHostTools(I){x();let k=I.tools.map(C=>C.name);if(k.length===0||k.length>Fp||new Set(k).size!==k.length)throw Le("invalid_params","Host tool names must be non-empty and unique.");if(o.has(I.leaseId))throw Le("conflict","Host tool lease ID is already registered on this connection.");for(let C of I.tools)Kp(C);let A={id:I.leaseId,tools:I.tools.map(C=>({...C,inputSchema:{...C.inputSchema}})),byName:new Map(I.tools.map(C=>[C.name,C]))};return o.set(I.leaseId,A),l.add(I.leaseId),{id:A.id,tools:A.tools}},getHostTools(I){let k=o.get(I);if(k!==void 0){l.add(I);for(let[A,C]of a)C.leaseId===I&&h(A,C)}return k===void 0?void 0:{id:k.id,tools:k.tools}},revokeHostTools(I){return o.delete(I)},completeHostTool(I){let k=a.get(I.invocationId);if(!k)return!1;if(I.result!==void 0){if(typeof I.result.content!="string")throw Le("invalid_params","Host tool result content must be a string.");Up(I.result,t.maxResultBytes,"Host tool result")}return a.delete(I.invocationId),clearTimeout(k.timer),I.result!==void 0?(g(I.invocationId,"completed"),k.resolve(I.result)):(g(I.invocationId,"unknown"),k.reject(Le("host_tool_unknown",I.error??"Host tool result is unknown."))),!0},getHostToolInvocation(I){return c.get(I)},createHostToolRuntime(I){x();let k=o.get(I.leaseId);if(!k)throw Le("host_tool_unavailable","Host tool lease is missing.");R.set(I.runId,I.leaseId);let A=i(async(C,O,H)=>{if(C!=="mcp"||H?.kind!==void 0&&H.kind!=="tool")return[];if(H?.server!==void 0&&H.server!=="host")return[];let ee=O.toLowerCase();return k.tools.filter(te=>te.name.toLowerCase().includes(ee)||te.description.toLowerCase().includes(ee)).slice(0,H?.limit??k.tools.length).map(te=>({id:Xp(k.id,te.name),name:te.name,description:te.description,kind:"tool",server:"host",inputSchema:te.inputSchema}))},"searchCapabilities");return{hasCapabilityProvider(C){return C==="mcp"},searchCapabilities:A,async searchCapabilitySnapshot(C,O,H){return{items:await A(C,O,H),revision:`host:${k.id}`,complete:!0,freshness:"live"}},async describeCapability(C,O){if(C!=="mcp")return;let H=zu(k,O);return H?{...H,id:O,kind:"tool",server:"host"}:void 0},async executeCapability(C,O,H){if(C!=="mcp")throw Le("host_tool_unavailable","Unsupported host capability provider.");let ee=zu(k,O);if(!ee)throw Le("host_tool_unavailable","Host tool is not bound to this run.");return await P({lease:k,descriptor:ee,sessionId:I.sessionId,runId:I.runId,toolInput:H})},async readCapability(){throw Le("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(I){let k=m.get(I),A=R.get(I);if(!(k===void 0&&A===void 0))return{...k!==void 0?{credential:{...k,state:"ready"}}:{},...A!==void 0?{hostTools:{leaseId:A,state:o.has(A)?l.has(A)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!y){y=!0,v=void 0,l.clear(),r.clear(),o.clear(),E("Credential client disconnected.");for(let I of a.values())clearTimeout(I.timer),g(I.invocationId,I.dispatched?"unknown":"not_dispatched"),I.reject(Le(I.dispatched?"host_tool_unknown":"host_tool_unavailable",I.dispatched?"Host tool client disconnected; the side-effect outcome is unknown.":"Host tool client disconnected before dispatch."));a.clear(),c.clear()}}}}i(Wo,"createRuntimeDaemonReverseBridge");function Ju(e={}){let n=new Map,t=jp(e.invocationStateFile),r=!1;return{attach(o){if(r)throw Le("host_tool_unavailable","Host bridge hub is closed.");if(o.instanceSecret!==void 0&&(o.instanceSecret.length<32||o.instanceSecret.length>512))throw Le("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let s=o.instanceSecret===void 0?`ephemeral:${o.connectionId}`:`stable:${o.principalId}:${_p("sha256").update(o.instanceSecret).digest("hex")}`,a=s.startsWith("stable:")?$p(t.get(s)??[]):[],c=n.get(s)??Wo(void 0,{initialInvocations:a,...s.startsWith("stable:")?{onInvocationsChanged(m){t.set(s,m),Uu(e.invocationStateFile,t)}}:{}});!n.has(s)&&a.length>0&&(t.set(s,a),Uu(e.invocationStateFile,t)),n.set(s,c);let l=c.attachTransport(o.notify);return{bridge:c,close(){l.close()}}},getRunRequirements(o){for(let s of n.values()){let a=s.getRunRequirements(o);if(a!==void 0)return a}},close(){if(!r){r=!0;for(let o of n.values())o.close();n.clear()}}}}i(Ju,"createRuntimeDaemonReverseBridgeHub");function $p(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)}i($p,"recoverHostToolInvocationStates");function jp(e){if(e===void 0||!tn.existsSync(e))return new Map;let n;try{n=JSON.parse(tn.readFileSync(e,"utf8"))}catch(r){throw new Error(`Host Tool invocation recovery store is untrusted: ${Wp(r).message}`)}if(!Uo(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(!Uo(r)||typeof r.key!="string"||!Array.isArray(r.invocations))throw new Error("Host Tool invocation recovery store is untrusted: invalid client entry.");let o=r.invocations.map(qp);t.set(r.key,o)}return t}i(jp,"loadHostToolInvocationStore");function Uu(e,n){if(e===void 0)return;tn.mkdirSync(Op.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${vr()}.tmp`,r;try{r=tn.openSync(t,"wx",384),tn.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([o,s])=>({key:o,invocations:s}))},null,2)}
21
+ `,"utf8"),tn.fsyncSync(r),tn.closeSync(r),r=void 0,tn.renameSync(t,e)}finally{r!==void 0&&tn.closeSync(r),tn.rmSync(t,{force:!0})}}i(Uu,"saveHostToolInvocationStore");function qp(e){if(!Uo(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!Bp(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}}i(qp,"parseHostToolInvocationStatus");function Bp(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}i(Bp,"isHostToolInvocationState");function Xu(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}i(Xu,"publicCredentialLease");function Kp(e){if(!e.name||!e.description||!e.inputSchema)throw Le("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw Le("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw Le("invalid_params","Host tool name is invalid.");if(e.description.length>Hp)throw Le("invalid_params",`Host tool description is too long: ${e.name}.`)}i(Kp,"validateHostToolDescriptor");function Up(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw Le("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw Le("invalid_params",`${t} exceeds the ${n}-byte limit.`)}i(Up,"assertJsonByteLimit");function Wu(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}i(Wu,"positiveIntegerEnvironment");function Xp(e,n){return`host:${e}:${n}`}i(Xp,"hostToolCapabilityId");function zu(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}i(zu,"descriptorFromCapabilityId");function Le(e,n){return Object.assign(new Error(n),{code:e})}i(Le,"bridgeError");function Uo(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Uo,"isRecord");function Wp(e){return e instanceof Error?e:new Error(String(e))}i(Wp,"normalizeError");var Vu=512*1024,Gu=1e3,zp=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],Jp=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),ac=["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"],dc=new Map([...ln("session:observe",["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status","daemon.logs","operation.get","session.load","session.list","session.status","session.transcript","session.transcript.page","session.transcript.entryChunk","session.observe","session.diagnostics","session.settings.get","session.transcript.search","session.conversation","session.conversation.page","session.conversation.entryChunk","session.settings.getVersioned","session.autoMode.getStats","run.get","run.list","run.await","request.cancel","request.ack","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","provider.cache.diagnostics.get","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"]),...ln("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"]),...ln("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"]),...ln("permission:respond",["permission.respond"]),...ln("permission:grant-admin",["permission.grants.revoke"]),...ln("interaction:respond",["user_input.respond","user_input.dismiss"]),...ln("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...ln("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...ln("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"]),...ln("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...ln("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...ln("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...ln("artifact:write",["artifact.create","artifact.delete"]),...ln("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"]),...ln("owner:admin",["daemon.rollbackToInline"]),...ln("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),Yu=_t.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!dc.has(e));if(Yu.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${Yu.join(", ")}`);function ln(e,n){return n.map(t=>[t,e])}i(ln,"scopeEntries");function es(){let e=new Map,n=i(()=>{if(!(e.size<=Gu))for(let[r,o]of e){if(e.size<=Gu)break;o.settled&&e.delete(r)}},"pruneSettled"),t=i((r,o)=>{e.get(r)===o&&(o.settled=!0,n())},"markSettled");return{remember(r,o){let s,a=o.finally(()=>{s&&t(r,s)});a.catch(()=>{}),s={promise:a,settled:!1},e.set(r,s),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}i(es,"createRuntimeDaemonRunResultStore");function Sr(e){return e==="initialize"||e==="runtime.initialize"}i(Sr,"isInitializeMethod");function uc(e){let n=new Map,t=new Map,r=i((A,C)=>{t.get(A)===C&&t.delete(A)},"deleteInFlightRequest"),o=new Map,s=e.runResults??es(),a=`connection_${Vt().replace(/-/g,"")}`,c=Wo(e.notify),l=c,m,R=!1,v=!1,y="client",x={},p=`client_${Vt().replace(/-/g,"")}`,E,u,g=new Set(e.grantedScopes??ac),h=i(A=>{let C=n.get(A);if(!C)return!1;n.delete(A);let O=o.get(A);if(o.delete(A),O!==void 0){let H=t.get(O.requestId);H===O.inFlight&&H.subscriptionIds.delete(A),H===O.inFlight&&H.completed&&H.subscriptionIds.size===0&&r(O.requestId,H)}return C.close(),!0},"closeSubscription"),P=i((A,C)=>{n.set(A,C)},"rememberSubscription"),I=i((A,C)=>{lc(C)&&x.contextDiagnostics!==!0||e.notify?.(Nt("event",{subscriptionId:A,event:C}))},"notify");return{handle:i(async A=>{let C;try{if(Bd(A.method))throw ve("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 O=A;sc(O.method,"params",O.params===void 0?{}:O.params,"invalid_params");let H;if(!R&&!Sr(O.method))throw ve("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(R&&Sr(O.method))throw ve("conflict","Runtime daemon connection is already initialized.");if(R&&y==="probe"&&!Jp.has(O.method))throw ve("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(Sr(O.method)){H=$e(O.params),y=H?.connectionPurpose==="probe"?"probe":"client";let ke=typeof H?.token=="string"?H.token:void 0;if(e.authToken!==void 0&&ke!==e.authToken)throw ve("unauthorized","Runtime daemon initialize token is invalid.");let ue=typeof H?.profile=="string"?H.profile:void 0;if(ue!==void 0&&ue!==e.runtime.identity.profile)throw ve("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${ue}.`);p=eg(H?.clientInfo,p),E=Rg(H?.clientInfo),u=hg(H?.clientInfo)}if(Sr(O.method)||(Qp(O.method,g),Zp(O,g)),t.has(O.id))throw ve("invalid_request",`Runtime daemon request id is already in flight: ${O.id}.`);if(O.method==="request.cancel"){let ke=Ae(O.params,"requestId"),ue=t.get(ke);if(ue?.cancellable===!0){ue.controller.abort(Object.assign(new Error("Runtime daemon request cancelled."),{code:"read_cancelled"}));for(let qe of ue.subscriptionIds)h(qe)}return ni(O.id,{ok:ue?.cancellable===!0})}if(O.method==="request.ack"){let ke=Ae(O.params,"requestId"),ue=t.get(ke);if(ue?.completed===!0){for(let qe of ue.subscriptionIds)o.get(qe)?.inFlight===ue&&o.delete(qe);r(ke,ue)}return ni(O.id,{ok:ue?.completed===!0})}let ee=new AbortController,te={controller:ee,subscriptionIds:new Set,cancellable:!ei(O.method),completed:!1};t.set(O.id,te),C={id:O.id,subscriptionIds:te.subscriptionIds,inFlight:te};let fe=i(()=>ng(O,e,s,(ke,ue)=>{if(ee.signal.aborted||t.get(O.id)!==te){ue.close();return}P(ke,ue),te.subscriptionIds.add(ke),o.set(ke,{requestId:O.id,inFlight:te})},h,I,()=>x,p,E,u,l,ee.signal),"dispatch"),Re;try{let ke=Gp(O,e,x,p,fe);Re=ei(O.method)?await ke:await Vp(ke,ee.signal)}catch(ke){for(let ue of[...te.subscriptionIds])h(ue);throw r(O.id,te),ke}let Fe=Eg(O.method,Re);if(sc(O.method,"result",Fe,"internal_error"),Sr(O.method)){if(x=rg(H?.capabilities),y==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(m=e.reverseBridgeHub.attach({principalId:p,connectionId:a,...Zu(H?.clientInfo)!==void 0?{instanceSecret:Zu(H?.clientInfo)}:{},notify:e.notify}),l=m.bridge,c.close()),y==="client"&&e.management!==void 0)try{e.management.attachClient(a),v=!0}catch(ke){throw m?.close(),m=void 0,ke}R=!0}return te.completed=!0,te.subscriptionIds.size===0&&r(O.id,te),C=void 0,ni(O.id,Fe)}catch(O){if(C!==void 0){for(let H of[...C.subscriptionIds])h(H);r(C.id,C.inFlight)}return Gn(Pg(O),A.id)}},"handle"),close(){for(let A of t.values())A.controller.abort(Object.assign(new Error("Runtime daemon connection closed."),{code:"read_cancelled"}));t.clear();for(let A of[...n.keys()])h(A);m!==void 0?m.close():l.close(),v&&(e.management?.detachClient(a),v=!1)}}}i(uc,"createRuntimeDaemonDispatcher");function Vp(e,n){return n.aborted?Promise.reject(n.reason??ve("read_cancelled","Runtime daemon request cancelled.")):new Promise((t,r)=>{let o=i(()=>{r(n.reason??ve("read_cancelled","Runtime daemon request cancelled."))},"onAbort");n.addEventListener("abort",o,{once:!0}),e.then(t,r).finally(()=>{n.removeEventListener("abort",o)})})}i(Vp,"raceRuntimeDaemonRequestCancellation");async function Gp(e,n,t,r,o){let s=i(()=>n.management!==void 0&&Yp(e.method)?n.management.runMutation(e.method,o):o(),"execute");if(!at(e.method)||n.requireOperationEnvelope!==!0)return s();if(t.operationDeduplication!==!0)throw ve("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw ve("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw ve("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,...Qu(e.params)!==void 0?{resourceId:Qu(e.params)}:{},params:e.params??{}},{externalEffect:!0},s)}i(Gp,"dispatchWithOperation");function Yp(e){return ei(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}i(Yp,"isManagedRuntimeMutation");function Qp(e,n){let t=dc.get(e);if(t===void 0)throw ve("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw ve("unauthorized",`Runtime daemon method requires scope ${t}.`)}i(Qp,"requireRuntimeMethodScope");function Zp(e,n){if(e.method!=="permission.respond")return;let t=un(e.params)?e.params:void 0;if(!((t&&un(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw ve("unauthorized","Persistent permission grants require scope permission:grant-admin.")}i(Zp,"requirePersistentGrantScope");function Qu(e){if(un(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}i(Qu,"operationResourceId");function eg(e,n){if(!un(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}i(eg,"parseRuntimeClientPrincipal");function Zu(e){if(!un(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}i(Zu,"parseRuntimeClientInstanceSecret");async function ng(e,n,t,r,o,s,a,c,l,m,R,v){let y=n.runtime,x=n.reverseBridgeHub??R;switch(e.method){case"initialize":case"runtime.initialize":return{identity:y.identity,capabilities:nc(n.capabilities,y.agents.enabled,y.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0,n.orphanExitEnabled===!0,tc(y)),principalId:c,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??ac]};case"ping":return{ok:!0,runtimeId:y.identity.runtimeId};case"runtime.identity":return y.identity;case"daemon.status":case"runtime.status":return ag(await(n.status?n.status():y.status.snapshot()),x);case"daemon.stop":case"runtime.shutdown":return n.management?n.management.stop():n.stop?n.stop():y.close().then(()=>({ok:!0}));case"daemon.logs":return n.logs?n.logs():{entries:[]};case"daemon.preflight":return dg(await(n.management?n.management.preflight():n.preflight?n.preflight():y.status.preflight()),x);case"daemon.management.get":if(!n.management)throw ve("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw ve("client_upgrade_required","Runtime daemon rollback management is unavailable.");let p=ie(e.params),E={expectedRuntimeId:le(p,"expectedRuntimeId"),expectedRevision:yi(p,"expectedRevision"),expectedOwnerPolicyRevision:yi(p,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(E)}case"runtime.capabilities":return nc(n.capabilities,y.agents.enabled,y.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0,n.orphanExitEnabled===!0,tc(y));case"operation.get":{let p=ie(e.params),E=le(p,"operationId"),u=le(p,"journalEpoch");if(!n.controlJournal)return y.operations.get({operationId:E,journalEpoch:u});if(u!==n.controlJournal.journalEpoch)throw ve("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let g=n.controlJournal.get(E);if(!g||g.principalId!==c)throw ve("not_found","Runtime operation was not found.");return ig(g)}case"config.read":return n.config?Zo(await n.config()):y.config.read();case"config.patch":{let p=mc(ie(e.params),"patch");return y.config.patch(p)}case"config.reload":return y.config.reload();case"provider.list":return n.providerList?n.providerList():y.catalog.providers();case"model.list":return n.providerList?cg(await n.providerList(),$e(e.params)):y.catalog.models(mg(e.params));case"provider.custom.list":return y.catalog.customProviders();case"provider.custom.upsert":{let p=ie(e.params);return y.catalog.upsertCustomProvider(ie(p.config))}case"provider.custom.remove":return y.catalog.deleteCustomProvider(Ae(e.params,"name"));case"mcp.server.list":return y.mcp.listServers();case"mcp.server.get":return y.mcp.getServer(Ae(e.params,"name"));case"mcp.server.validate":{let p=ie(e.params);return y.mcp.validateServer(le(p,"name"),p.config)}case"mcp.server.upsert":{let p=ie(e.params);return y.mcp.upsertServer(le(p,"name"),ie(p.config))}case"mcp.server.delete":case"mcp.server.remove":return y.mcp.deleteServer(Ae(e.params,"name"));case"mcp.server.reload":return y.mcp.reloadServers();case"mcp.tool.list":return y.mcp.listTools(fg(e.params));case"extension.list":return y.catalog.extensions();case"extension.reload":return y.catalog.reloadExtensions();case"command.list":{let p=$e(e.params),E=typeof p?.projectRoot=="string"?p.projectRoot:void 0;return y.catalog.commands(E)}case"command.resolve":{let p=ie(e.params);return y.catalog.resolveCommand({name:le(p,"name"),...typeof p.projectRoot=="string"?{projectRoot:p.projectRoot}:{}})}case"skill.list":return y.catalog.skills(pg(e.params));case"skill.describe":case"skill.read":{let p=ie(e.params);return y.catalog.describeSkill({name:le(p,"name"),...typeof p.projectRoot=="string"?{projectRoot:p.projectRoot}:{}})}case"artifact.create":return y.artifacts.create(gg(e.params));case"artifact.get":return y.artifacts.get(Ae(e.params,"artifactId"));case"artifact.delete":return y.artifacts.delete(Ae(e.params,"artifactId"));case"agentRegistrations.list":return gi(n),pi(y),y.admin.agentRegistrations.list();case"agentRegistrations.upsert":{gi(n),pi(y);let p=ie(e.params);return y.admin.agentRegistrations.upsert(ie(p.registration),{expectedConfigurationRevision:Go(p),expectedManagementOwner:Yo(p)})}case"agentRegistrations.setEnabled":{gi(n),pi(y);let p=ie(e.params),E=en(p,"claimOwner");if(E!==void 0&&E.length===0)throw ve("invalid_request","Expected non-empty optional string param: claimOwner");return y.admin.agentRegistrations.setEnabled(le(p,"agentId"),kg(p,"enabled"),{expectedConfigurationRevision:Go(p),expectedManagementOwner:Yo(p),...E?{claimOwner:E}:{}})}case"agentRegistrations.remove":gi(n),pi(y);{let p=ie(e.params);return y.admin.agentRegistrations.remove(le(p,"agentId"),{expectedConfigurationRevision:Go(p),expectedManagementOwner:Yo(p)})}case"agents.listDispatchable":return y.agents.listDispatchable(ie(e.params));case"agents.describe":{let p=ie(e.params);return y.agents.describe(le(p,"agentId"),ie(p.query))}case"agents.preflight":return y.agents.preflight(ie(e.params));case"agents.tree":return y.agents.tree(Ae(e.params,"sessionId"));case"agents.detail":{let p=ie(e.params);return y.agents.detail(le(p,"sessionId"),le(p,"actorPath"))}case"agents.spawn":{let p=ie(e.params);return y.agents.spawn(le(p,"sessionId"),ie(p.input))}case"agents.send":{let p=ie(e.params),E=en(p,"classification");if(E!==void 0&&E!=="public"&&E!=="internal"&&E!=="sensitive")throw ve("invalid_params","Invalid Agent message classification.");return await y.agents.send(le(p,"sessionId"),le(p,"actorPath"),le(p,"content"),E),{ok:!0}}case"agents.followup":{let p=ie(e.params),E=Kn(p,"expectedRevision");return y.agents.followup(le(p,"sessionId"),le(p,"actorPath"),le(p,"objective"),E===void 0?void 0:{expectedRevision:E})}case"agents.interrupt":{let p=ie(e.params);return await y.agents.interrupt(le(p,"sessionId"),le(p,"actorPath"),en(p,"reason")),{ok:!0}}case"agents.output":{let p=ie(e.params);return y.agents.output(le(p,"sessionId"),le(p,"actorPath"),en(p,"turnId"))}case"agents.events":{let p=ie(e.params);return y.agents.events(le(p,"sessionId"),Kn(p,"afterSequence"))}case"agents.wait":{let p=ie(e.params);return y.agents.wait(le(p,"sessionId"),Kn(p,"afterSequence"),Kn(p,"timeoutMs"),{signal:v})}case"session.create":return y.sessions.create($e(e.params));case"session.load":return y.sessions.load(Ae(e.params,"sessionId"),Bn(e.params,v));case"session.list":return y.sessions.list($e(e.params));case"session.status":return y.sessions.status(Ae(e.params,"sessionId"));case"session.transcript":{let p=await y.sessions.transcript(Ae(e.params,"sessionId"),Bn(e.params,v));if(p!==null&&Buffer.byteLength(JSON.stringify(p),"utf8")>Vu)throw ve("invalid_request","Transcript is too large for the legacy endpoint; use session.transcript.page and session.transcript.entryChunk.");return p}case"session.transcript.page":return y.sessions.transcriptPage(ie(e.params),Bn(e.params,v));case"session.transcript.entryChunk":return y.sessions.transcriptEntryChunk(ie(e.params),Bn(e.params,v));case"session.transcript.search":return y.sessions.transcriptSearch(ie(e.params),Bn(e.params,v));case"session.conversation":{let p=await y.sessions.conversation(Ae(e.params,"sessionId"),Bn(e.params,v));if(p!==null&&Buffer.byteLength(JSON.stringify(p),"utf8")>Vu)throw ve("invalid_request","Conversation history is too large for the direct endpoint; use session.conversation.page and session.conversation.entryChunk.");return p}case"session.conversation.page":return y.sessions.conversationPage(ie(e.params),Bn(e.params,v));case"session.conversation.entryChunk":return y.sessions.conversationEntryChunk(ie(e.params),Bn(e.params,v));case"session.observe":{let p=Qo(),E=Ae(e.params,"sessionId"),u=await y.sessions.observe(E,g=>s(p,zo(g,x)),Bn(e.params,v));if(v.aborted)throw u.close(),ve("read_cancelled","Runtime Session observation was cancelled.");return r(p,u),u.invalidated.then(g=>{try{n.notify?.(Nt("observation.invalidated",{subscriptionId:p,sessionId:E,invalidation:g}))}finally{o(p)}}).catch(g=>{ge({source:"runtime.daemon.server",level:"error",message:`Failed to deliver Session observation invalidation for ${E}.`,detail:g})}),{subscriptionId:p,snapshot:sg(u.snapshot,x)}}case"session.diagnostics":return y.sessions.diagnostics(ie(e.params));case"session.fork":return y.sessions.fork(ie(e.params));case"session.notice.append":return y.sessions.appendNotice(ie(e.params));case"session.rewind":return y.sessions.rewind(ie(e.params));case"session.active_entry.set":case"session.activeEntry.set":return y.sessions.setActiveEntry(ie(e.params));case"session.compact":return y.sessions.compact(ie(e.params));case"session.archive":return await y.sessions.archive(Ae(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await y.sessions.unarchive(Ae(e.params,"sessionId")),{ok:!0};case"session.delete":return await y.sessions.delete(Ae(e.params,"sessionId")),{ok:!0};case"session.settings.get":return y.sessions.getSettings(Ae(e.params,"sessionId"));case"session.settings.getVersioned":return y.sessions.getSettingsVersioned(Ae(e.params,"sessionId"));case"session.autoMode.getStats":return y.sessions.getAutoModeStats(Ae(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw ve("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let p=ie(e.params);return y.sessions.updateSettings(le(p,"sessionId"),ie(p.patch))}case"session.settings.updateVersioned":{let p=ie(e.params);return y.sessions.updateSettingsVersioned(le(p,"sessionId"),ie(p.patch),{expectedRevision:yi(p,"expectedRevision")})}case"run.start":{let p=ie(e.params),E=le(p,"sessionId"),u=`run_${Date.now().toString(36)}_${Vt().replace(/-/g,"").slice(0,8)}`,g=await ec({params:p,sessionId:E,trustedRunId:u,principalId:c,clientName:l,clientVersion:m,operationId:e.operation?.operationId,reverseBridge:R}),h=await y.runs.start(g);return t.remember(h.runId,h.result),{runId:h.runId,sessionId:h.sessionId,...h.turnId!==void 0?{turnId:h.turnId}:{}}}case"run.input.submit":{let p=ie(e.params),E=le(p,"sessionId"),u=le(p,"afterRunId"),g=le(p,"delivery"),h=await y.runs.get(u);if(h.sessionId!==E)throw ve("conflict",`Runtime continuation target ${u} does not belong to session ${E}.`);if(!tg(h.phase))return{accepted:!1,delivery:g,sessionId:E,afterRunId:u,reason:"stale_run"};if(g==="interrupt"){if(h.phase==="queued")return{accepted:!1,delivery:g,sessionId:E,afterRunId:u,reason:"stale_run"};if(p.credential!==void 0||p.hostTools!==void 0)throw ve("invalid_params","Interrupt input cannot replace active-run credential or host-tool bindings.");let A=`input_${Date.now().toString(36)}_${Vt().replace(/-/g,"").slice(0,8)}`;return y.runs.submitInput({...p,sessionId:E,afterRunId:u,delivery:"interrupt",trustedInputId:A,origin:{principalId:c,...l!==void 0?{clientName:l}:{},...m!==void 0?{clientVersion:m}:{},...e.operation?.operationId!==void 0?{operationId:e.operation.operationId}:{}}})}let P=`run_${Date.now().toString(36)}_${Vt().replace(/-/g,"").slice(0,8)}`,I=await ec({params:p,sessionId:E,trustedRunId:P,principalId:c,clientName:l,clientVersion:m,operationId:e.operation?.operationId,reverseBridge:R}),k=await y.runs.submitInput(I);if(k.accepted&&k.delivery==="after_turn"){let A=y.runs.await(k.runId);t.remember(k.runId,A)}return k}case"run.get":return Rt(await y.runs.get(Ae(e.params,"runId")),x);case"run.list":return(await y.runs.list($e(e.params))).map(p=>Rt(p,x));case"run.await":{let p=Ae(e.params,"runId"),E=t.get(p);return E||y.runs.await(p)}case"run.abort":return y.runs.abort(Ae(e.params,"runId"));case"run.model.set":return rc(y,e.params);case"run.setModel":return rc(y,e.params);case"run.provider.set":{let p=ie(e.params);return await y.runs.setProvider(le(p,"runId"),le(p,"provider")),{ok:!0}}case"run.setProvider":{let p=ie(e.params);return await y.runs.setProvider(le(p,"runId"),le(p,"provider")),{ok:!0}}case"run.reasoning.set":return ic(y,e.params);case"run.setReasoning":return ic(y,e.params);case"event.subscribe":{let p=$e(e.params)??{},E=$e(p.filter);await Qn(y,E?.sessionId);let u=Qo(),g=y.events.subscribe(E??{},h=>{s(u,zo(h,x))});return r(u,g),{subscriptionId:u}}case"event.unsubscribe":return{ok:o(Ae(e.params,"subscriptionId"))};case"event.replay":{let p=$e(e.params);return await Qn(y,p?.sessionId),og(await y.events.replay(p),a()).map(E=>zo(E,x))}case"permission.list":case"permission.listPending":{let p=$e(e.params);return await Qn(y,p?.sessionId),y.permissions.listPending(p)}case"permission.request":{let p=ie(e.params);return await Qn(y,p.sessionId),y.permissions.request(p)}case"permission.respond":{let p=ie(e.params),E=en(p,"runId");return y.permissions.respond(le(p,"requestId"),ie(p.decision),E!==void 0?{runId:E}:void 0)}case"permission.grants.list":return y.permissions.listGrants();case"permission.grants.revoke":{let p=ie(e.params);return y.permissions.revokeGrant(le(p,"grantId"),yi(p,"expectedRevision"))}case"user_input.listPending":{let p=$e(e.params);return await Qn(y,p?.sessionId),y.userInputs.listPending(p)}case"user_input.respond":{let p=ie(e.params),E=Kn(p,"expectedRevision"),u=en(p,"runId");return y.userInputs.respond(le(p,"requestId"),p.answer,E!==void 0||u!==void 0?{...E!==void 0?{expectedRevision:E}:{},...u!==void 0?{runId:u}:{}}:void 0)}case"user_input.dismiss":{let p=ie(e.params),E=Kn(p,"expectedRevision"),u=en(p,"runId");return y.userInputs.dismiss(le(p,"requestId"),E!==void 0||u!==void 0?{...E!==void 0?{expectedRevision:E}:{},...u!==void 0?{runId:u}:{}}:void 0)}case"credential.register":{let p=ie(e.params);return R.registerCredential({leaseId:le(p,"leaseId"),providers:wg(p,"providers"),...en(p,"expiresAt")!==void 0?{expiresAt:en(p,"expiresAt")}:{}})}case"credential.get":return R.getCredential(Ae(e.params,"leaseId"));case"credential.revoke":return R.revokeCredential(Ae(e.params,"leaseId"));case"credential.supply":{let p=ie(e.params);return{ok:R.supplyCredential({requestId:le(p,"requestId"),...en(p,"credential")!==void 0?{credential:en(p,"credential")}:{},...en(p,"error")!==void 0?{error:en(p,"error")}:{}})}}case"host_tool.register":{let p=ie(e.params);return R.registerHostTools({leaseId:le(p,"leaseId"),tools:vg(p.tools)})}case"host_tool.get":return R.getHostTools(Ae(e.params,"leaseId"));case"host_tool.invocation.get":return R.getHostToolInvocation(Ae(e.params,"invocationId"));case"host_tool.revoke":return R.revokeHostTools(Ae(e.params,"leaseId"));case"host_tool.complete":{let p=ie(e.params);return{ok:R.completeHostTool({invocationId:le(p,"invocationId"),...p.result!==void 0?{result:ie(p.result)}:{},...en(p,"error")!==void 0?{error:en(p,"error")}:{}})}}case"workflow.list":return y.workflows.list($e(e.params));case"workflow.get":return y.workflows.get(Ae(e.params,"runId"));case"workflow.subscribe":{let p=$e(e.params)??{},E=$e(p.filter),u=Qo(),g=y.workflows.subscribe(E??{},h=>{s(u,h)});return r(u,g),{subscriptionId:u}}case"workflow.unsubscribe":return{ok:o(Ae(e.params,"subscriptionId"))};case"workflow.pause":return y.workflows.pause(Ae(e.params,"runId"));case"workflow.resume":return y.workflows.resume(Ae(e.params,"runId"));case"workflow.stop":return y.workflows.stop(Ae(e.params,"runId"));case"learning.list":return $n(y.learning,c).list($e(e.params));case"learning.get":return $n(y.learning,c).get(Ae(e.params,"nameOrSlug"));case"learning.snapshot":return $n(y.learning,c).getSnapshot();case"learning.events":return $n(y.learning,c).events(Kn($e(e.params)??{},"afterRevision"));case"learning.acknowledge":return await $n(y.learning,c).acknowledge(Ae(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let p=ie(e.params);return await $n(y.learning,c).snooze(le(p,"nameOrSlug"),le(p,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let p=$n(y.learning,c),E=Ae(e.params,"nameOrSlug");return e.method==="learning.reject"?await p.reject(E):e.method==="learning.disable"?await p.disable(E):e.method==="learning.rollback"?await p.rollback(E):e.method==="learning.review"?await p.review(E):await p.trust(E),{ok:!0}}case"learning.promote":{let p=ie(e.params),E=le(p,"scope");if(E!=="user")throw ve("invalid_params","Learning promotion scope must be user.");return await $n(y.learning,c).promote(le(p,"nameOrSlug"),E),{ok:!0}}case"context.budget.get":return Jo(a()),await Qn(y,en($e(e.params)??{},"sessionId")),Vo(y,"context.budget.snapshot",$e(e.params));case"tool.exposure.preview":return Jo(a()),await Qn(y,en($e(e.params)??{},"sessionId")),Vo(y,"tool.exposure.planned",$e(e.params));case"provider.cache.diagnostics.get":return Jo(a()),await Qn(y,en($e(e.params)??{},"sessionId")),Vo(y,"provider.cache.diagnostics",$e(e.params));default:throw ve("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}i(ng,"dispatchRuntimeDaemonRequest");async function ec(e){let n=$e(e.params.credential),t=$e(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:le(n,"leaseId"),provider:le(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),o=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:le(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),s=Ct(),a=o===void 0?void 0:s===null?o:bg(o,s),c=$e(e.params.options)??{},l=$e(c.context),m=l===void 0?c:{...c,context:Object.fromEntries(Object.entries(l).filter(([R])=>R!=="configHome"&&R!=="memoryIdentity"))};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:le(n,"provider")}:{},...e.params.options!==void 0||a!==void 0?{options:{...m,...a===void 0?{}:{extensionRuntime:a}}}:{}}}i(ec,"bindTrustedRunInput");function tg(e){return e==="queued"||e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(tg,"isActiveRuntimeRunPhase");function rg(e){return un(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}:{}}:{}}i(rg,"parseRuntimeClientCapabilities");function nc(e={},n=!1,t=!1,r=!1,o,s=!1,a=!1,c=!1,l=!1,m=!1){let R={...e};delete R.externalAgents,delete R.externalAgentAdmin,delete R.a2aConfigReconciler,delete R.actorControlPlane,delete R.integrationConfigResilience,delete R.managedRunDurability,delete R.daemonOrphanExit,delete R.daemonShutdownVerification,delete R.runtimeEventCoalescing,delete R.runtimeAutoModeGuardrail,delete R.sandboxRuntime,delete R.runLifecycleControl;let v=Xo();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"},sandboxRuntime:Wr(),managedRunDurability:{version:1,initialInputBeforeExecution:!0,completedTurnBeforeEvent:!0,deliveredInputBeforeEvent:!0,persistenceFailure:"fail_closed"},...m?{runtimeEventCoalescing:{version:1}}:{},runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:Kr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...l?{daemonOrphanExit:{version:1,idleOnly:!0,bootstrapGrace:!0}}:{},...Br()?{daemonShutdownVerification:{version:1,durableOutcome:!0,processContainment:"windows-job"}}:{},...t?{externalAgentAdmin:{version:1,activation:!0,conditionalMutations:!0,managementOwner:!0}}:{},...r?{a2aConfigReconciler:{version:1}}:{},...o!==void 0?{operationDeduplication:{version:1,retentionMs:Number.MAX_SAFE_INTEGER},journalEpoch:o.journalEpoch,controlHealth:o.health}:{},sessionObservation:{version:1,maxBufferedEvents:256},sessionAdmission:{version:1,surfaces:zp,legacySurface:!0,partnerDenied:!0},completeObservationSnapshot:{version:1,transcriptRevision:!0,managedTasks:!0,queuedInputs:!0},connectionLifecycle:{version:1},runLifecycleControl:{version:1,structuredStopReceipt:!0,protocolCancellation:!0,responseAcknowledgement:!0},typedRuntimeEvents:{version:1},daemonSafeRunInput:{version:1},integrationConfigResilience:{version:1,isolatedFailure:!0,legacySourceWatching:!0,lastKnownGood:!0,healthProjection:!0},...c?{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"]},...o!==void 0?{durableRecoveryQueries:{version:1,operationResult:!0,hostToolInvocation:a,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},conversationHistory:{version:1,immutablePaging:!0,revisionedBoundaries:!0,ambiguityReporting:!0},learningCenter:{version:1},skillLearningLoop:{version:1,activation:"project_scoped_canary",immutableDecisions:!0,recordGatedDiscovery:!0,exactUseAttribution:!0,rollback:!0},askUserTransport:{version:1},permissionCas:{version:1},providerCredentialBroker:{version:1,registrationConnectionBound:!s,stableClientResume:s,runtimeRestartExpiresLease:!0,acquiredCredentialSurvivesDisconnect:!0,requestTimeoutMs:v.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!s,stableClientResume:s,invocationStatusQuery:s,invocationReplay:!1,invocationTimeoutMs:v.callTimeoutMs,maxResultBytes:v.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},...R}}i(nc,"runtimeDaemonCapabilities");function tc(e){let n=e.capabilities?.runtimeEventCoalescing;return un(n)&&typeof n.version=="number"&&n.version>=1}i(tc,"runtimeImplementsEventCoalescing");function ig(e){return e?{...e}:{}}i(ig,"publicOperationReceipt");function pi(e){if(!e.agents.enabled)throw ve("method_not_found","Runtime external agent executor plane is not enabled.")}i(pi,"requireExternalAgentsEnabled");function gi(e){if(e.allowAgentRegistrationAdmin!==!0)throw ve("permission_denied","Runtime daemon host denied Agent registration administration.")}i(gi,"requireAgentRegistrationAdmin");function og(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!lc(t))}i(og,"filterReplayForClientCapabilities");async function Qn(e,n){n!==void 0&&await e.sessions.transcript(n)}i(Qn,"assertAdmittedSessionId");function sg(e,n){return{...e,runs:e.runs.map(t=>Rt(t,n))}}i(sg,"augmentObservationRunRequirements");function ag(e,n){return!un(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>cc(t)?Rt(t,n):t)}}i(ag,"augmentStatusRunRequirements");function dg(e,n){return{...e,activeRuns:e.activeRuns.map(t=>Rt(t,n)),queuedRuns:e.queuedRuns.map(t=>Rt(t,n))}}i(dg,"augmentPreflightRunRequirements");function zo(e,n){return cc(e.payload)?{...e,payload:Rt(e.payload,n)}:e}i(zo,"augmentRuntimeEventRequirements");function Rt(e,n){let t=n?.getRunRequirements(e.runId);return t===void 0?e:ug(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}}i(Rt,"augmentRunRequirements");function cc(e){return un(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}i(cc,"isRuntimeRunStatus");function ug(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(ug,"isTerminalRuntimeRunPhase");function Jo(e){if(e.contextDiagnostics!==!0)throw ve("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}i(Jo,"requireContextDiagnosticsCapability");function lc(e){return un(e)?e.type==="context.budget.snapshot"||e.type==="provider.cache.diagnostics"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}i(lc,"isContextDiagnosticRuntimeEvent");async function Vo(e,n,t){let r=t??{},o=r.contextKind==="root"||r.contextKind==="child"?r.contextKind:typeof r.agentId=="string"?void 0:"root",s=typeof r.agentId=="string"?r.agentId:void 0,a=o==="child"||s!==void 0,c={type:n,...!a&&typeof r.sessionId=="string"?{sessionId:r.sessionId}:{},...typeof r.runId=="string"?{runId:r.runId}:{}};return[...await e.events.replay(c)].reverse().find(R=>{let v=R.payload;if(v===null||typeof v!="object"||Array.isArray(v))return o===void 0&&s===void 0;let y=v,x=y.contextKind==="child"?"child":"root";if(o!==void 0&&x!==o||s!==void 0&&y.agentId!==s)return!1;if(!a||typeof r.sessionId!="string")return!0;let p=`${r.sessionId}/agent/`;return typeof y.contextId!="string"?!1:s===void 0?y.contextId.startsWith(p):y.contextId===`${p}${encodeURIComponent(s)}`})?.payload??null}i(Vo,"latestRuntimeDiagnosticPayload");async function rc(e,n){let t=ie(n);return await e.runs.setModel(le(t,"runId"),en(t,"model")),{ok:!0}}i(rc,"setRunModel");async function ic(e,n){let t=ie(n);return await e.runs.setReasoning(le(t,"runId"),en(t,"reasoning")),{ok:!0}}i(ic,"setRunReasoning");function cg(e,n){let t=Array.isArray(e)?e:[],r=typeof n?.provider=="string"?n.provider:void 0;if(r!==void 0){let o=t.find(s=>un(s)&&s.name===r);return un(o)?{provider:r,models:Array.isArray(o.models)?o.models:[]}:{provider:r,models:[]}}return t.flatMap(o=>!un(o)||typeof o.name!="string"?[]:[{provider:o.name,models:Array.isArray(o.models)?o.models:[]}])}i(cg,"listRuntimeModels");function Zo(e){return Array.isArray(e)?e.map(n=>Zo(n)):un(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,lg(n)?"[redacted]":Zo(t)])):e}i(Zo,"redactRuntimeConfig");function lg(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")}i(lg,"isSensitiveConfigKey");function $e(e){if(e!==void 0)return ie(e)}i($e,"optionalRecord");function mc(e,n){return ie(e[n])}i(mc,"requireRecordField");function mg(e){let n=$e(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}i(mg,"parseModelListFilter");function fg(e){let n=$e(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}i(fg,"parseMcpToolListFilter");function pg(e){let n=$e(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}i(pg,"parseSkillListFilter");function gg(e){let n=ie(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw ve("invalid_request","Expected artifact kind: image | file | video");let r=le(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}:{},...yg(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}i(gg,"parseArtifactCreateInput");function yg(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}i(yg,"isRuntimeArtifactSource");function Rg(e){return un(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}i(Rg,"parseRuntimeClientName");function hg(e){return un(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}i(hg,"parseRuntimeClientVersion");function wg(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw ve("invalid_request",`Expected string array param: ${n}`);return t}i(wg,"requireStringArrayField");function vg(e){if(!Array.isArray(e))throw ve("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=ie(n),r=le(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw ve("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:le(t,"name"),description:le(t,"description"),inputSchema:mc(t,"inputSchema"),sideEffect:r}})}i(vg,"parseRuntimeHostToolDescriptors");function oc(e,n,t,r){if(t!=="mcp")return[n];if(r!==void 0){let o=r==="host"?e:n;return o.hasCapabilityProvider?.(t)===!1?[]:[o]}return[e,n].filter(o=>o.hasCapabilityProvider?.(t)!==!1)}i(oc,"selectCapabilityRuntimes");async function Sg(e,n,t,r){return e.searchCapabilitySnapshot!==void 0?e.searchCapabilitySnapshot(n,t,r):{items:await e.searchCapabilities(n,t,{...r,limit:Number.MAX_SAFE_INTEGER}),complete:!1,freshness:"unknown"}}i(Sg,"searchCapabilityRuntimeSnapshot");function Ig(e){let n=new Set,t=e.flatMap(l=>l.items).filter(l=>{let m=l&&typeof l=="object"&&!Array.isArray(l)?l.id:void 0;return typeof m!="string"?!0:n.has(m)?!1:(n.add(m),!0)}),r=e.map(l=>l.revision),o=e.length===1?r[0]:r.every(l=>typeof l=="string")?JSON.stringify(r):void 0,s=e[0]?.freshness,a=s===void 0?"unknown":e.every(l=>l.freshness===s)?s:"mixed",c=e.flatMap(l=>l.failures??[]);return{items:t,...o!==void 0?{revision:o}:{},complete:e.length>0&&e.every(l=>l.complete),freshness:a,...c.length>0?{failures:c}:{}}}i(Ig,"mergeCapabilitySearchSnapshots");function bg(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,o){let s=oc(e,n,t,o?.server),c=(await Promise.all(s.map(l=>l.searchCapabilities(t,r,o)))).flat();return c.slice(0,o?.limit??c.length)},async searchCapabilitySnapshot(t,r,o){let s=oc(e,n,t,o?.server),a=await Promise.all(s.map(c=>Sg(c,t,r,o)));return Ig(a)},async describeCapability(t,r){return r.startsWith("host:")?e.describeCapability(t,r):n.describeCapability(t,r)},executeCapability(t,r,o){return r.startsWith("host:")?e.executeCapability(t,r,o):n.executeCapability(t,r,o)},readCapability(t,r,o){return n.readCapability(t,r,o)},getCapabilityPrompt(t,r,o){return n.getCapabilityPrompt(t,r,o)},getCapabilityPromptContext(t){return n.getCapabilityPromptContext(t)},...n.getDefaults!==void 0?{getDefaults:i(()=>n.getDefaults(),"getDefaults")}:{},...n.bindController!==void 0?{bindController:i(t=>n.bindController(t),"bindController")}:{},...n.hydrateSession!==void 0?{hydrateSession:i(t=>n.hydrateSession(t),"hydrateSession")}:{}}}i(bg,"mergeExtensionRuntimeContracts");function un(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(un,"isRecord");function ie(e){if(!e||typeof e!="object"||Array.isArray(e))throw ve("invalid_request","Expected params to be an object.");return e}i(ie,"requireRecord");function Ae(e,n){return le(ie(e),n)}i(Ae,"requireStringParam");function le(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw ve("invalid_request",`Expected string param: ${n}`);return t}i(le,"requireStringField");function kg(e,n){let t=e[n];if(typeof t!="boolean")throw ve("invalid_request",`Expected boolean param: ${n}`);return t}i(kg,"requireBooleanField");function en(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw ve("invalid_request",`Expected optional string param: ${n}`);return t}}i(en,"optionalStringField");function Go(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw ve("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}i(Go,"optionalExpectedConfigurationRevision");function Yo(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw ve("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}i(Yo,"optionalExpectedManagementOwner");function Kn(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw ve("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}i(Kn,"optionalIntegerField");function Bn(e,n){let t=Kn(ie(e),"timeoutMs");return{signal:n,...t===void 0?{}:{timeoutMs:t}}}i(Bn,"runtimeReadOptions");function yi(e,n){let t=Kn(e,n);if(t===void 0)throw ve("invalid_request",`Expected non-negative integer param: ${n}`);return t}i(yi,"requireIntegerField");function ve(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(ve,"daemonError");function Qo(){return`sub_${Vt().replace(/-/g,"").slice(0,12)}`}i(Qo,"createSubscriptionId");function sc(e,n,t,r){let o=zt(fi[e][n],t,n);if(o.length!==0)throw ve(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:o})}i(sc,"validateDaemonMethodValue");function Eg(e,n){return n===void 0?null:e!=="run.await"||!un(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}:{}}}}i(Eg,"serializeRuntimeDaemonMethodResult");function Pg(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 Ia)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"&&xg(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}i(Pg,"normalizeRuntimeDaemonError");function xg(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==="resync_required"||e==="read_timeout"||e==="read_cancelled"||e==="data_changed"||e==="observation_invalidated"||e==="runtime_changed"||e==="data_corrupt"||e==="version_incompatible"||e==="credential_unavailable"||e==="host_tool_unavailable"||e==="host_tool_unknown"||e==="internal_error"}i(xg,"isRuntimeDaemonErrorCode");import{createHash as Cg,randomUUID as gc}from"node:crypto";import*as Ve from"node:fs";import fc from"node:path";var En=class extends Error{static{i(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function yc(e){Ve.mkdirSync(e.rootDir,{recursive:!0});let n=fc.join(e.rootDir,"journal-meta.json"),t=fc.join(e.rootDir,"control.jsonl"),r=Lg(n),o=r.meta,s=Ng(t),a=s.records,c=new Map,l=s.trusted&&r.trusted?"healthy":"control_history_untrusted";return l==="healthy"&&Og(a,t),{journalEpoch:o.journalEpoch,get health(){return l},execute(m,R,v){if(l!=="healthy")return Promise.reject(new En("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{_g(m,o.journalEpoch);let y=Hg(m.params),x=a.get(m.operationId);if(x){Mg(x,m,y);let E=c.get(m.operationId);return E||Dg(x)}let p=Ag(t,a,m,y,R.externalEffect===!0,v,()=>{l="control_history_untrusted"});return c.set(m.operationId,p),p.finally(()=>c.delete(m.operationId)).catch(()=>{}),p}catch(y){return Promise.reject(y)}},get(m){return a.get(m)}}}i(yc,"createRuntimeControlJournal");async function Ag(e,n,t,r,o,s,a){let c=Tg(t,r,"accepted");Rc(e,c),n.set(t.operationId,c),o&&Ri(e,n,c,"dispatched");let l;try{l=await s()}catch(m){let R=$g(m);try{Ri(e,n,c,"rejected",{error:R})}catch{a()}throw m}try{return Ri(e,n,c,"applied",{result:l}).result}catch{throw a(),n.set(t.operationId,{...c,state:"unknown",updatedAt:new Date().toISOString()}),new En("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}i(Ag,"executeNewOperation");function Ri(e,n,t,r,o={}){let s={type:"operation",...t,state:r,...o,updatedAt:new Date().toISOString()};return Rc(e,s),n.set(s.operationId,s),s}i(Ri,"updateOperation");function Tg(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()}}i(Tg,"operationRecord");function Dg(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new En(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 En(n,`Runtime operation is ${e.state}; it will not be replayed.`))}i(Dg,"replayOperation");function Mg(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 En("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}i(Mg,"assertMatchingOperation");function _g(e,n){if(e.journalEpoch!==n)throw new En("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new En("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new En("invalid_operation","Runtime operation identity is incomplete.")}i(_g,"validateOperationInput");function Og(e,n){for(let t of[...e.values()])t.state!=="accepted"&&t.state!=="dispatched"||Ri(n,e,t,t.state==="dispatched"?"unknown":"interrupted")}i(Og,"recoverUnfinished");function Ng(e){let n=new Map;if(!Ve.existsSync(e))return{trusted:!0,records:n};let t=Ve.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let o=JSON.parse(r);if(!qg(o))return{trusted:!1,records:n};n.set(o.operationId,o)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}i(Ng,"loadOperationRecords");function Lg(e){if(Ve.existsSync(e)){try{let t=JSON.parse(Ve.readFileSync(e,"utf8"));if(jg(t))return{meta:t,trusted:!0}}catch{}return{meta:pc(),trusted:!1}}let n=pc();return Fg(e,n),{meta:n,trusted:!0}}i(Lg,"loadOrCreateMeta");function pc(){return{version:1,journalEpoch:`je_${gc().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}i(pc,"createJournalMeta");function Rc(e,n){let t=`${JSON.stringify(n)}
22
+ `,r=Ve.openSync(e,"a",384);try{Ve.writeFileSync(r,t,"utf8"),Ve.fsyncSync(r)}finally{Ve.closeSync(r)}}i(Rc,"appendRecord");function Fg(e,n){let t=`${e}.${process.pid}.${gc()}.tmp`,r=Ve.openSync(t,"wx",384);try{Ve.writeFileSync(r,`${JSON.stringify(n,null,2)}
23
+ `,"utf8"),Ve.fsyncSync(r)}finally{Ve.closeSync(r)}Ve.renameSync(t,e)}i(Fg,"writeJsonAtomic");function Hg(e){return Cg("sha256").update(ns(e)).digest("hex")}i(Hg,"digestCanonical");function ns(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new En("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(ns).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)}:${ns(n[r])}`).join(",")}}`}throw new En("invalid_operation","Operation contains a non-JSON value.")}i(ns,"canonicalJson");function $g(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}}i($g,"normalizeOperationError");function jg(e){return hc(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}i(jg,"isJournalMeta");function qg(e){return hc(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&Bg(e.state)&&typeof e.updatedAt=="string":!1}i(qg,"isOperationRecord");function Bg(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}i(Bg,"isOperationState");function hc(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(hc,"isRecord");function wc(e){return new ts(e)}i(wc,"createRuntimeDaemonManagementController");var ts=class{constructor(n){this.input=n;this.runtimeEvents=n.runtime.events.subscribe({},()=>{this.revision+=1})}input;static{i(this,"DaemonManagementController")}clients=new Set;runtimeEvents;revision=0;activeMutations=0;activeMutationMethods=new Map;draining=!1;closed=!1;preflightFingerprint;orphanExitArmed=!1;clientGeneration=0;orphanExitTimer;orphanExitCheckRunning=!1;orphanBlockerFingerprint;armOrphanExitAfterReady(){this.input.orphanExitMs===void 0||this.closed||this.draining||(this.orphanExitArmed=!0,this.scheduleOrphanExitCheck(this.input.orphanExitMs))}attachClient(n){if(this.draining||this.closed)throw Rn("conflict","Runtime daemon is draining and cannot attach another client.");this.clients.has(n)||(this.clients.add(n),this.orphanExitArmed=!0,this.clientGeneration+=1,this.cancelOrphanExitCheck(),this.orphanBlockerFingerprint=void 0,this.revision+=1)}detachClient(n){this.clients.delete(n)&&(this.clientGeneration+=1,this.revision+=1,this.clients.size===0&&this.scheduleOrphanExitCheck(this.input.orphanExitMs))}async runMutation(n,t){if(this.draining||this.closed)throw Rn("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 Ug(r,this.clients.size)}throw Rn("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 o=We(this.input.paths.lockFile);if(o===void 0||o.runtimeId!==this.input.runtime.identity.runtimeId||o.kind!=="daemon")throw Rn("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:bn(this.input.paths),owner:o,preflight:r,...this.input.integrationStatuses?{integrations:Kg(this.input.integrationStatuses())}:{}}}throw Rn("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 Rn("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=iu(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw Rn("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.cancelOrphanExitCheck(),this.runtimeEvents.close(),this.clients.clear())}beginDraining(n){if(this.closed)throw Rn("conflict","Runtime daemon management is closed.");if(this.draining)throw Rn("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw Rn("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw Rn("conflict",`Runtime daemon has in-flight mutations: ${[...this.activeMutationMethods].map(([t,r])=>`${t} (${r})`).join(", ")}.`);this.draining=!0,this.cancelOrphanExitCheck()}async assertStoppable(n){let t=await this.preflight();if(n!==void 0&&this.revision!==n)throw Rn("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw Rn("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)}scheduleOrphanExitCheck(n){n===void 0||!this.orphanExitArmed||this.closed||this.draining||this.clients.size>0||this.orphanExitCheckRunning||(this.cancelOrphanExitCheck(),this.orphanExitTimer=setTimeout(()=>{this.orphanExitTimer=void 0,this.tryOrphanExit()},n),this.orphanExitTimer.unref?.())}cancelOrphanExitCheck(){this.orphanExitTimer!==void 0&&(clearTimeout(this.orphanExitTimer),this.orphanExitTimer=void 0)}async tryOrphanExit(){if(this.closed||this.draining||this.clients.size>0||this.input.orphanExitMs===void 0)return;this.orphanExitCheckRunning=!0;let n=this.clientGeneration,t=!1,r=Math.min(this.input.orphanExitMs,5e3);try{let o=await this.preflight();if(this.clients.size>0||this.closed||this.draining)return;if(this.clientGeneration!==n){r=this.input.orphanExitMs;return}if(o.canStop){this.appendOrphanExitLog("info","Runtime daemon orphan exit accepted after the final client disconnected."),await this.stop(),t=!0;return}let s=o.blockers.join(",");s!==this.orphanBlockerFingerprint&&(this.orphanBlockerFingerprint=s,this.appendOrphanExitLog("info","Runtime daemon orphan exit deferred until governed work becomes idle.",{blockers:o.blockers}))}catch(o){this.appendOrphanExitLog("warn","Runtime daemon orphan exit inspection failed; it will retry.",{error:o instanceof Error?o.message:String(o)})}finally{this.orphanExitCheckRunning=!1,t||this.scheduleOrphanExitCheck(r)}}appendOrphanExitLog(n,t,r){try{yn(this.input.paths,n,t,r)}catch{}}};function Kg(e){let n=structuredClone(e);return{state:n.some(t=>t.diagnostic!==void 0)?"degraded":"healthy",domains:n}}i(Kg,"integrationHealth");function Ug(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}}i(Ug,"withLogicalClients");function Rn(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(Rn,"managementError");async function Ic(e){gn(e.paths);let n=su();au(e.paths,n);let t=hi(e,"starting");jt(e.paths,t),yn(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Gs(A=>{Xg(e.paths,A)}),o,s,a=!1,c=i(()=>{if(s===void 0){a=!0;return}s()},"requestStop"),l=es(),m=yc({rootDir:vc.join(e.paths.rootDir,"control")}),R=Ju({invocationStateFile:vc.join(e.paths.rootDir,"host-tool-invocations.json")}),v=wc({runtime:e.runtime,paths:e.paths,requestStop:c,...e.orphanExitMs!==void 0?{orphanExitMs:e.orphanExitMs}:{},...e.integrationStatuses?{integrationStatuses:e.integrationStatuses}:{}}),y;try{o=await vu({endpoint:e.endpoint,createDispatcher:i(C=>uc({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},...e.orphanExitMs!==void 0?{orphanExitEnabled:!0}:{},allowAgentRegistrationAdmin:!0,notify:C,runResults:l,controlJournal:m,reverseBridgeHub:R,management:v,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:i(()=>({logFile:e.paths.logFile,entries:du(e.paths)}),"logs")}),"createDispatcher")});let A=process.env.KODAX_INTERNAL_DAEMON_TEST_READY_DELAY_MS;A!==void 0&&await Wg(A),y=hi(e,"ready"),jt(e.paths,y),v.armOrphanExitAfterReady(),yn(e.paths,"info","Runtime daemon ready.",{runtimeId:y.runtimeId,endpoint:y.endpoint})}catch(A){yn(e.paths,"error","Runtime daemon failed to start.",{error:Pn(A).message});let C=!0;try{await o?.close()}catch(O){C=!1,yn(e.paths,"error","Runtime daemon transport cleanup failed.",{error:Pn(O).message})}throw v.close(),l.clear(),R.close(),r(),C?await Sc(e.paths,e.lock):jt(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),A}let x=!1,p,E=!1,u=!1,g=!1,h=!1,P,I=new Promise(A=>{P=A}),k=i(()=>{if(x)return Promise.resolve();if(p)return p;let A=(async()=>{let C=[];if(!h)try{jt(e.paths,hi(e,"stopping")),yn(e.paths,"info","Runtime daemon stopping.")}catch(O){C.push(`state transition: ${Pn(O).message}`)}if(!E)try{await o?.close(),E=!0}catch(O){C.push(`transport close: ${Pn(O).message}`)}if(u||(v.close(),R.close(),l.clear(),u=!0),!g)try{await e.runtime.close(),g=!0}catch(O){C.push(`Runtime close: ${Pn(O).message}`)}try{yn(e.paths,"info","Runtime daemon host stopped.")}catch(O){C.push(`stop log: ${Pn(O).message}`)}if(r(),E&&g&&!h){let O=await Sc(e.paths,e.lock),H=We(e.lock.file),ee=H?.runtimeId===e.lock.owner.runtimeId&&H.pid===e.lock.owner.pid&&H.createdAt===e.lock.owner.createdAt;!O&&ee?C.push("owner release: the daemon still owns its profile lock"):h=!0}else if(!E||!g)try{jt(e.paths,{...hi(e,"unhealthy"),lastError:C.join("; ")})}catch(O){C.push(`unhealthy state: ${Pn(O).message}`)}if(C.length>0){try{yn(e.paths,"error","Runtime daemon host stopped with cleanup failures.",{failures:C})}catch(O){C.push(`failure log: ${Pn(O).message}`)}throw new Error(`Runtime daemon cleanup failed: ${C.join("; ")}`)}x=!0,P?.()})();return p=A,A.finally(()=>{p===A&&(p=void 0),r()}).catch(()=>{}),A},"closeHost");return s=i(()=>{try{yn(e.paths,"info","Runtime daemon stop requested.")}catch(C){ge({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:Pn(C)})}setTimeout(()=>{k().catch(C=>{ge({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:Pn(C)})})},0).unref?.()},"scheduleStop"),a&&s(),{endpoint:e.endpoint,state:y,closed:I,unref(){o?.unref()},close:k}}i(Ic,"startRuntimeDaemonHost");async function Sc(e,n){for(let t=0;t<50;t+=1){try{if(mu(e,n))return!0}catch(o){ge({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:Pn(o)})}let r=We(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(o=>{setTimeout(o,10)})}try{yn(e,"error","Runtime daemon ownership release timed out.")}catch(t){ge({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:Pn(t)})}return!1}i(Sc,"releaseHostOwnership");function Xg(e,n){try{yn(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{}}i(Xg,"appendRuntimeDiagnostic");function hi(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}}i(hi,"createHostState");async function Wg(e){if(e===void 0)return;let n=Number(e);!Number.isFinite(n)||n<=0||await new Promise(t=>{setTimeout(t,Math.min(n,3e4))})}i(Wg,"delayInternalDaemonReadyForTest");function Pn(e){return e instanceof Error?e:new Error(String(e))}i(Pn,"normalizeHostError");async function bc(e){if(e.orphanExitMs!==void 0&&(!Number.isSafeInteger(e.orphanExitMs)||e.orphanExitMs<=0))throw new Error("orphanExitMs must be a positive safe integer.");let n=e.profile??"default",t=Vg(e.homeDir),r=rs.resolve(e.configHome??rs.join(t,".kodax")),o=jn(r,n);ci(o);let s=e.endpoint??Xt(n,$t(t,r)),a=Number.parseInt(process.env.KODAX_DAEMON_JOB_SUPERVISOR_PID??"",10),c=Br()&&Number.isSafeInteger(a)&&a>0,l={runtimeId:`rt_${zg().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon",...c?{processContainment:"windows-job",supervisorPid:a}:{}},m=await jo(o,l,e.healthCheck);if(m.kind==="attach"){let R=pt(m.state);return Ec(o,R,e.connectTimeoutMs)}if(m.kind==="wait")return Gg(o,s,l,{...e,profile:n});if(m.kind==="unhealthy")throw new Error(`Runtime daemon is ${m.health}; refusing to take ownership.`);return kc(o,s,l,m.lock,e)}i(bc,"acquireRuntimeDaemonLease");function Vg(e){return rs.resolve(e??Jg.homedir())}i(Vg,"resolveRuntimeDaemonHomeDir");async function Gg(e,n,t,r){let o=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=o;){let s=await jo(e,t,r.healthCheck);if(s.kind==="attach")return Ec(e,pt(s.state),r.connectTimeoutMs);if(s.kind==="claim")return kc(e,n,t,s.lock,r);if(s.kind==="unhealthy")throw new Error(`Runtime daemon is ${s.health}; refusing to take ownership.`);await Qg(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}i(Gg,"waitForDaemonLease");async function kc(e,n,t,r,o){let s,a=!1;try{if(s=await o.createRuntime(t.runtimeId),s.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");a=!0;let c=await Ic({runtime:s,paths:e,endpoint:n,lock:r,...o.orphanExitMs!==void 0?{orphanExitMs:o.orphanExitMs}:{},...o.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},...o.integrationStatuses?{integrationStatuses:o.integrationStatuses}:{}});try{let l=await qn(n,{connectTimeoutMs:o.connectTimeoutMs});return Yg(e,n,l,c)}catch(l){throw await c.close(),l}}catch(c){throw a||li(r),await s?.close(),c}}i(kc,"createClaimedDaemonLease");async function Ec(e,n,t){let r=await qn(n,{connectTimeoutMs:t}),o=!1,s,a=!1,c,l=i(()=>{if(o)return Promise.resolve();if(s)return s;let m=Promise.resolve(r.close?.()).then(()=>{o=!0});return s=m,m.finally(()=>{s===m&&(s=void 0)}).catch(()=>{}),m},"closeTransport");return{transport:r,endpoint:n,paths:e,ownsHost:!1,close:l,shutdown(){if(c)return c;let m=(async()=>{a||(await r.request("runtime.shutdown"),a=!0),await l()})();return c=m,m.finally(()=>{c===m&&(c=void 0)}).catch(()=>{}),m}}}i(Ec,"createAttachedLease");function Yg(e,n,t,r){r.unref();let o=!1,s=!1,a,c;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,close(){if(o)return Promise.resolve();if(a)return a;let l=Promise.resolve(t.close?.()).then(()=>{o=!0});return a=l,l.finally(()=>{a===l&&(a=void 0)}).catch(()=>{}),l},shutdown(){if(s)return Promise.resolve();if(c)return c;let l=r.close().then(()=>{s=!0});return c=l,l.finally(()=>{c===l&&(c=void 0)}).catch(()=>{}),l}}}i(Yg,"createOwnedLease");function Qg(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}i(Qg,"delay");import{spawn as fy}from"node:child_process";import{appendFileSync as US,closeSync as Nc,existsSync as Si,ftruncateSync as py,openSync as Lc,readSync as gy,renameSync as yy,statSync as Fc,unlinkSync as Ry,writeSync as hy}from"node:fs";import{fileURLToPath as wy}from"node:url";import vy from"node:os";import hn from"node:path";import{spawn as Zg}from"node:child_process";import{randomUUID as is}from"node:crypto";import{readFileSync as ey,rmSync as wi,writeFileSync as ny}from"node:fs";import Pc from"node:os";import xc from"node:path";var ty=15e3,os="KODAX_INTERNAL_WINDOWS_JOB_LAUNCH",vi="KODAX_INTERNAL_WINDOWS_JOB_READY_FILE",ss="KODAX_INTERNAL_WINDOWS_JOB_SCRIPT_FILE",Cc="KODAX_INTERNAL_WINDOWS_JOB_TEST_OWNER_AFTER_READY",ry=String.raw`
24
+ const { spawn } = require('node:child_process');
25
+ const { existsSync, writeFileSync } = require('node:fs');
26
+ const readyFile = process.env.${vi};
27
+ const childEnv = { ...process.env };
28
+ delete childEnv.${ss};
29
+ delete childEnv.${Cc};
30
+ const fail = (message) => {
31
+ if (!existsSync(readyFile)) writeFileSync(readyFile, 'ERROR:' + message);
32
+ };
33
+ let child;
34
+ let childExited = false;
35
+ process.on('message', (message) => {
36
+ if (message?.kind !== 'terminate') return;
37
+ if (child?.pid && !childExited) child.kill();
38
+ else process.exit(1);
39
+ });
40
+ child = spawn('powershell.exe', [
41
+ '-NoProfile',
42
+ '-NonInteractive',
43
+ '-ExecutionPolicy',
44
+ 'Bypass',
45
+ '-File',
46
+ process.env.${ss},
47
+ ], { detached: false, windowsHide: true, stdio: 'ignore', env: childEnv });
48
+ child.once('error', (error) => fail(error.message));
49
+ child.once('exit', (code) => {
50
+ childExited = true;
51
+ if (code !== 0) fail('PowerShell supervisor exited before readiness.');
52
+ process.exit(code ?? 1);
53
+ });
54
+ const publishOwner = () => {
55
+ if (!Number.isSafeInteger(child.pid) || child.pid <= 0 || !process.send) return;
56
+ process.send({ kind: 'owner', pid: child.pid }, (error) => {
57
+ if (!error) return;
58
+ child.kill();
59
+ fail('Could not publish the PowerShell Job owner: ' + error.message);
60
+ });
61
+ };
62
+ if (process.env.${Cc} === '1') {
63
+ const timer = setInterval(() => {
64
+ if (!existsSync(readyFile)) return;
65
+ clearInterval(timer);
66
+ publishOwner();
67
+ }, 10);
68
+ } else {
69
+ publishOwner();
70
+ }
71
+ `,iy=String.raw`
72
+ using System;
73
+ using System.IO;
74
+ using System.Runtime.InteropServices;
75
+ using System.Text;
76
+ using System.Threading;
77
+
78
+ public static class KodaXWindowsJobSupervisor {
79
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
80
+ private struct StartupInfo {
81
+ public uint cb;
82
+ public string lpReserved;
83
+ public string lpDesktop;
84
+ public string lpTitle;
85
+ public uint dwX;
86
+ public uint dwY;
87
+ public uint dwXSize;
88
+ public uint dwYSize;
89
+ public uint dwXCountChars;
90
+ public uint dwYCountChars;
91
+ public uint dwFillAttribute;
92
+ public uint dwFlags;
93
+ public ushort wShowWindow;
94
+ public ushort cbReserved2;
95
+ public IntPtr lpReserved2;
96
+ public IntPtr hStdInput;
97
+ public IntPtr hStdOutput;
98
+ public IntPtr hStdError;
99
+ }
100
+
101
+ [StructLayout(LayoutKind.Sequential)]
102
+ private struct ProcessInformation {
103
+ public IntPtr hProcess;
104
+ public IntPtr hThread;
105
+ public uint dwProcessId;
106
+ public uint dwThreadId;
107
+ }
108
+
109
+ [StructLayout(LayoutKind.Sequential)]
110
+ private struct SecurityAttributes {
111
+ public int length;
112
+ public IntPtr securityDescriptor;
113
+ public int inheritHandle;
114
+ }
115
+
116
+ [StructLayout(LayoutKind.Sequential)]
117
+ private struct BasicLimitInformation {
118
+ public long PerProcessUserTimeLimit;
119
+ public long PerJobUserTimeLimit;
120
+ public uint LimitFlags;
121
+ public UIntPtr MinimumWorkingSetSize;
122
+ public UIntPtr MaximumWorkingSetSize;
123
+ public uint ActiveProcessLimit;
124
+ public UIntPtr Affinity;
125
+ public uint PriorityClass;
126
+ public uint SchedulingClass;
127
+ }
128
+
129
+ [StructLayout(LayoutKind.Sequential)]
130
+ private struct IoCounters {
131
+ public ulong ReadOperationCount;
132
+ public ulong WriteOperationCount;
133
+ public ulong OtherOperationCount;
134
+ public ulong ReadTransferCount;
135
+ public ulong WriteTransferCount;
136
+ public ulong OtherTransferCount;
137
+ }
138
+
139
+ [StructLayout(LayoutKind.Sequential)]
140
+ private struct ExtendedLimitInformation {
141
+ public BasicLimitInformation BasicLimitInformation;
142
+ public IoCounters IoInfo;
143
+ public UIntPtr ProcessMemoryLimit;
144
+ public UIntPtr JobMemoryLimit;
145
+ public UIntPtr PeakProcessMemoryUsed;
146
+ public UIntPtr PeakJobMemoryUsed;
147
+ }
148
+
149
+ [StructLayout(LayoutKind.Sequential)]
150
+ private struct BasicAccountingInformation {
151
+ public long TotalUserTime;
152
+ public long TotalKernelTime;
153
+ public long ThisPeriodTotalUserTime;
154
+ public long ThisPeriodTotalKernelTime;
155
+ public uint TotalPageFaultCount;
156
+ public uint TotalProcesses;
157
+ public uint ActiveProcesses;
158
+ public uint TotalTerminatedProcesses;
159
+ }
160
+
161
+ [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
162
+ private static extern bool CreateProcessW(
163
+ string applicationName,
164
+ StringBuilder commandLine,
165
+ IntPtr processAttributes,
166
+ IntPtr threadAttributes,
167
+ bool inheritHandles,
168
+ uint creationFlags,
169
+ IntPtr environment,
170
+ string currentDirectory,
171
+ ref StartupInfo startupInfo,
172
+ out ProcessInformation processInformation);
173
+
174
+ [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
175
+ private static extern IntPtr CreateJobObjectW(IntPtr attributes, string name);
176
+
177
+ [DllImport("kernel32.dll", SetLastError = true)]
178
+ private static extern bool SetInformationJobObject(
179
+ IntPtr job,
180
+ int informationClass,
181
+ ref ExtendedLimitInformation information,
182
+ uint informationLength);
183
+
184
+ [DllImport("kernel32.dll", SetLastError = true)]
185
+ private static extern bool QueryInformationJobObject(
186
+ IntPtr job,
187
+ int informationClass,
188
+ out BasicAccountingInformation information,
189
+ uint informationLength,
190
+ IntPtr returnLength);
191
+
192
+ [DllImport("kernel32.dll", SetLastError = true)]
193
+ private static extern bool AssignProcessToJobObject(IntPtr job, IntPtr process);
194
+
195
+ [DllImport("kernel32.dll", SetLastError = true)]
196
+ private static extern bool TerminateProcess(IntPtr process, uint exitCode);
197
+
198
+ [DllImport("kernel32.dll", SetLastError = true)]
199
+ private static extern uint ResumeThread(IntPtr thread);
200
+
201
+ [DllImport("kernel32.dll", SetLastError = true)]
202
+ private static extern uint WaitForSingleObject(IntPtr handle, uint milliseconds);
203
+
204
+ [DllImport("kernel32.dll", SetLastError = true)]
205
+ private static extern bool GetExitCodeProcess(IntPtr process, out uint exitCode);
206
+
207
+ [DllImport("kernel32.dll", SetLastError = true)]
208
+ private static extern bool TerminateJobObject(IntPtr job, uint exitCode);
209
+
210
+ [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
211
+ private static extern IntPtr CreateFileW(
212
+ string fileName,
213
+ uint desiredAccess,
214
+ uint shareMode,
215
+ ref SecurityAttributes securityAttributes,
216
+ uint creationDisposition,
217
+ uint flagsAndAttributes,
218
+ IntPtr templateFile);
219
+
220
+ [DllImport("kernel32.dll")]
221
+ private static extern bool CloseHandle(IntPtr handle);
222
+
223
+ private const uint CreateSuspended = 0x00000004;
224
+ private const uint CreateNoWindow = 0x08000000;
225
+ private const uint StartfUseStdHandles = 0x00000100;
226
+ private const uint JobObjectLimitKillOnJobClose = 0x00002000;
227
+ private const uint FileAppendData = 0x00000004;
228
+ private const uint Synchronize = 0x00100000;
229
+ private const uint FileShareRead = 0x00000001;
230
+ private const uint FileShareWrite = 0x00000002;
231
+ private const uint FileShareDelete = 0x00000004;
232
+ private const uint OpenAlways = 4;
233
+ private const uint FileAttributeNormal = 0x00000080;
234
+
235
+ private static void Require(bool result, string operation) {
236
+ if (!result) throw new InvalidOperationException(
237
+ operation + " failed with Win32 error " + Marshal.GetLastWin32Error());
238
+ }
239
+
240
+ private static void PublishReady(string readyFile, uint processId) {
241
+ var temporaryFile = readyFile + "." + Guid.NewGuid().ToString("N") + ".tmp";
242
+ try {
243
+ File.WriteAllText(
244
+ temporaryFile,
245
+ "{\"processPid\":" + processId +
246
+ ",\"containmentSupervisorPid\":" +
247
+ System.Diagnostics.Process.GetCurrentProcess().Id + "}");
248
+ File.Move(temporaryFile, readyFile);
249
+ } finally {
250
+ if (File.Exists(temporaryFile)) File.Delete(temporaryFile);
251
+ }
252
+ }
253
+
254
+ public static int Run(
255
+ string executable,
256
+ string commandLine,
257
+ string cwd,
258
+ string readyFile,
259
+ string logFile,
260
+ string jobName) {
261
+ var job = CreateJobObjectW(IntPtr.Zero, jobName);
262
+ if (job == IntPtr.Zero) throw new InvalidOperationException(
263
+ "CreateJobObject failed with Win32 error " + Marshal.GetLastWin32Error());
264
+ var process = new ProcessInformation();
265
+ var processAssigned = false;
266
+ var security = new SecurityAttributes();
267
+ security.length = Marshal.SizeOf(typeof(SecurityAttributes));
268
+ security.inheritHandle = 1;
269
+ var logHandle = CreateFileW(
270
+ logFile,
271
+ FileAppendData | Synchronize,
272
+ FileShareRead | FileShareWrite | FileShareDelete,
273
+ ref security,
274
+ OpenAlways,
275
+ FileAttributeNormal,
276
+ IntPtr.Zero);
277
+ if (logHandle == new IntPtr(-1)) throw new InvalidOperationException(
278
+ "CreateFile for daemon log failed with Win32 error " + Marshal.GetLastWin32Error());
279
+ try {
280
+ var limits = new ExtendedLimitInformation();
281
+ limits.BasicLimitInformation.LimitFlags = JobObjectLimitKillOnJobClose;
282
+ Require(SetInformationJobObject(
283
+ job,
284
+ 9,
285
+ ref limits,
286
+ (uint)Marshal.SizeOf(typeof(ExtendedLimitInformation))),
287
+ "SetInformationJobObject");
288
+
289
+ var startup = new StartupInfo();
290
+ startup.cb = (uint)Marshal.SizeOf(typeof(StartupInfo));
291
+ startup.dwFlags = StartfUseStdHandles;
292
+ startup.hStdInput = IntPtr.Zero;
293
+ startup.hStdOutput = logHandle;
294
+ startup.hStdError = logHandle;
295
+ Require(CreateProcessW(
296
+ executable,
297
+ new StringBuilder(commandLine),
298
+ IntPtr.Zero,
299
+ IntPtr.Zero,
300
+ true,
301
+ CreateSuspended | CreateNoWindow,
302
+ IntPtr.Zero,
303
+ cwd,
304
+ ref startup,
305
+ out process),
306
+ "CreateProcess");
307
+ Require(AssignProcessToJobObject(job, process.hProcess), "AssignProcessToJobObject");
308
+ processAssigned = true;
309
+ PublishReady(readyFile, process.dwProcessId);
310
+ if (ResumeThread(process.hThread) == 0xffffffff) {
311
+ throw new InvalidOperationException(
312
+ "ResumeThread failed with Win32 error " + Marshal.GetLastWin32Error());
313
+ }
314
+
315
+ if (WaitForSingleObject(process.hProcess, 0xffffffff) == 0xffffffff) {
316
+ throw new InvalidOperationException(
317
+ "WaitForSingleObject failed with Win32 error " + Marshal.GetLastWin32Error());
318
+ }
319
+ uint exitCode;
320
+ if (!GetExitCodeProcess(process.hProcess, out exitCode)) exitCode = 1;
321
+ Require(TerminateJobObject(job, exitCode), "TerminateJobObject");
322
+ while (true) {
323
+ BasicAccountingInformation accounting;
324
+ Require(QueryInformationJobObject(
325
+ job,
326
+ 1,
327
+ out accounting,
328
+ (uint)Marshal.SizeOf(typeof(BasicAccountingInformation)),
329
+ IntPtr.Zero),
330
+ "QueryInformationJobObject");
331
+ if (accounting.ActiveProcesses == 0) return unchecked((int)exitCode);
332
+ Thread.Sleep(10);
333
+ }
334
+ } finally {
335
+ if (process.hProcess != IntPtr.Zero && !processAssigned) {
336
+ TerminateProcess(process.hProcess, 1);
337
+ WaitForSingleObject(process.hProcess, 2000);
338
+ }
339
+ if (process.hThread != IntPtr.Zero) CloseHandle(process.hThread);
340
+ if (process.hProcess != IntPtr.Zero) CloseHandle(process.hProcess);
341
+ CloseHandle(logHandle);
342
+ CloseHandle(job);
343
+ }
344
+ }
345
+ }`,oy=String.raw`
346
+ $ErrorActionPreference = 'Stop'
347
+ try {
348
+ $readyFile = $env:${vi}
349
+ $payloadBytes = [Convert]::FromBase64String($env:${os})
350
+ $payload = [Text.Encoding]::UTF8.GetString($payloadBytes) | ConvertFrom-Json
351
+ Remove-Item Env:${os} -ErrorAction SilentlyContinue
352
+ Remove-Item Env:${vi} -ErrorAction SilentlyContinue
353
+ $env:KODAX_DAEMON_JOB_CONTAINED = '1'
354
+ $env:KODAX_DAEMON_JOB_SUPERVISOR_PID = [string]$PID
355
+ $env:KODAX_DAEMON_JOB_NAME = [string]$payload.jobName
356
+ $source = @'
357
+ ${iy}
358
+ '@
359
+ Add-Type -TypeDefinition $source
360
+ $exitCode = [KodaXWindowsJobSupervisor]::Run(
361
+ [string]$payload.executable,
362
+ [string]$payload.commandLine,
363
+ [string]$payload.cwd,
364
+ [string]$payload.readyFile,
365
+ [string]$payload.logFile,
366
+ [string]$payload.jobName)
367
+ exit $exitCode
368
+ } catch {
369
+ [IO.File]::WriteAllText($readyFile, 'ERROR:' + $_.Exception.Message)
370
+ exit 1
371
+ }
372
+ `;function sy(e){return e.length>0&&!/[\s"]/u.test(e)?e:`"${e.replace(/(\\*)"/gu,'$1$1\\"').replace(/(\\+)$/u,"$1$1")}"`}i(sy,"quoteWindowsCommandLineArg");function ay(e,n){return[e,...n].map(sy).join(" ")}i(ay,"buildWindowsCommandLine");async function Tc(e){if(process.platform!=="win32")throw new Error("Windows Job containment is available only on Windows.");let n=xc.join(Pc.tmpdir(),`kodax-daemon-job-${is()}.ready`),t=xc.join(Pc.tmpdir(),`kodax-daemon-job-${is()}.ps1`);ny(t,oy,{encoding:"utf8",flag:"wx",mode:384});let r=Buffer.from(JSON.stringify({executable:e.executable,commandLine:ay(e.executable,e.args),cwd:e.cwd,readyFile:n,logFile:e.logFile,jobName:`KodaXDaemonJob-${is()}`}),"utf8").toString("base64"),o={...e.env};delete o.KODAX_DAEMON_JOB_CONTAINED,delete o.KODAX_DAEMON_JOB_SUPERVISOR_PID,delete o.KODAX_DAEMON_JOB_NAME;let s;try{s=Zg(process.execPath,["-e",ry],{cwd:e.cwd,detached:!0,windowsHide:!0,stdio:["ignore","ignore","ignore","ipc"],env:{...o,[os]:r,[vi]:n,[ss]:t}})}catch(c){throw wi(n,{force:!0}),wi(t,{force:!0}),c}let a=await dy(s,n,e.startupTimeoutMs??ty).catch(async c=>{try{await Ac(s)}catch(l){throw new AggregateError([c,l],"Windows Job supervisor startup failed and its process tree was not reclaimed.")}throw c}).finally(()=>{wi(n,{force:!0}),wi(t,{force:!0})});return{...a,supervisor:s,release:i(()=>uy(s),"release"),terminate:i(()=>Ac(s,a.processPid),"terminate")}}i(Tc,"spawnWindowsJobContainedProcess");async function dy(e,n,t){let r,o,s=i(l=>{r=l},"captureLaunchError"),a=i(l=>{l!==null&&typeof l=="object"&&"kind"in l&&l.kind==="owner"&&"pid"in l&&Number.isSafeInteger(l.pid)&&Number(l.pid)>0&&(o=Number(l.pid))},"captureOwner");e.once("error",s),e.on("message",a);let c=Date.now()+t;try{for(;;){if(r!==void 0)throw r;try{let l=ey(n,"utf8").trim();if(l.startsWith("ERROR:"))throw new Error(`Windows Job supervisor startup failed: ${l.slice(6)}`);let m=JSON.parse(l);if(!Number.isSafeInteger(m.processPid)||Number(m.processPid)<=0||!Number.isSafeInteger(m.containmentSupervisorPid)||Number(m.containmentSupervisorPid)<=0)throw new Error("Windows Job supervisor wrote invalid readiness identities.");if(o!==void 0){if(Number(m.containmentSupervisorPid)!==o)throw new Error("Windows Job supervisor readiness owner identities do not match.");return{processPid:Number(m.processPid),containmentSupervisorPid:o}}}catch(l){if(l.code!=="ENOENT")throw l}if(e.exitCode!==null||e.signalCode!==null)throw new Error(`Windows Job supervisor exited before daemon readiness (code ${e.exitCode??"unknown"}).`);if(Date.now()>=c)throw new Error("Windows Job supervisor did not report daemon readiness in time.");await new Promise(l=>setTimeout(l,10))}}finally{e.off("error",s),e.off("message",a)}}i(dy,"waitForSupervisorReadiness");function uy(e){e.connected&&e.disconnect(),e.unref()}i(uy,"releaseSupervisor");async function Ac(e,n){if(e.pid!==void 0){if(e.exitCode===null&&e.signalCode===null){if(!e.connected)throw new Error("Windows Job supervisor control channel is unavailable during startup.");await new Promise((t,r)=>{e.send({kind:"terminate"},o=>{o?r(o):t()})})}await cy(e),n!==void 0&&await ly(n,2e3)}}i(Ac,"terminateSupervisor");async function cy(e){let n=Date.now()+2e3;for(;e.exitCode===null&&e.signalCode===null;){if(Date.now()>=n)throw new Error("Windows Job supervisor did not exit after startup cleanup.");await new Promise(t=>setTimeout(t,10))}}i(cy,"waitForWrapperExit");async function ly(e,n){let t=Date.now()+n;for(;my(e);){if(Date.now()>=t)throw new Error(`Process ${e} did not exit after termination.`);await new Promise(r=>setTimeout(r,10))}}i(ly,"waitForPidExit");function my(e){try{return process.kill(e,0),!0}catch(n){if(n.code==="ESRCH")return!1;throw n}}i(my,"isPidAlive");var Ii=class extends Error{constructor(t){super(`Runtime daemon child ${t??"unknown"} process-tree cleanup could not be verified.`);this.pid=t;this.name="RuntimeDaemonProcessCleanupIncompleteError"}pid;static{i(this,"RuntimeDaemonProcessCleanupIncompleteError")}code="process_tree_cleanup_incomplete"},Dc=1e3,Hc=256*1024;function Ir(e){return hn.join(e.rootDir,"bootstrap.log")}i(Ir,"runtimeDaemonBootstrapLogPath");function Sy(e,n=Hc){gn(e);let t=Ir(e),r=Math.max(1,n),o=`${t}.1`;return as(o,r),Si(t)&&Fc(t).size>=r&&(as(t,r),Si(o)&&Ry(o),yy(t,o)),Lc(t,"a",384)}i(Sy,"openRuntimeDaemonBootstrapLog");function Iy(e,n=Hc){as(Ir(e),Math.max(1,n))}i(Iy,"capRuntimeDaemonBootstrapLog");function as(e,n){if(!Si(e))return;let t=Fc(e).size;if(t<=n)return;let r=Lc(e,"r+");try{let o=Buffer.allocUnsafe(n),s=0;for(;s<o.length;){let a=gy(r,o,s,o.length-s,t-n+s);if(a===0)break;s+=a}py(r,0),s>0&&hy(r,o,0,s,0)}finally{Nc(r)}}i(as,"capFileToTail");var Un=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function $c(e){if(e.orphanExitMs!==void 0&&(!Number.isSafeInteger(e.orphanExitMs)||e.orphanExitMs<=0))throw new Error("orphanExitMs must be a positive safe integer.");let n=e.profile??"default",t=hn.resolve(e.homeDir??vy.homedir()),r=hn.resolve(e.configHome??hn.join(t,".kodax")),o=jn(r,n);ci(o);let s=Xt(o.profile,$t(t,r));if(e.endpoint&&e.endpoint.path!==s.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let a=await wr(o,e.healthCheck),c=qt(a);if(c==="healthy"&&a.state){let v=a.state.status==="ready"?{...a,state:a.state}:await ky(o,e,a);return Mc(o,pt(v.state),!1,e)}if(c==="unhealthy"||c==="mismatch")throw new Error(`Runtime daemon is ${c}; refusing to start a competing owner.`);let l=await Cy({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.orphanExitMs,startupTimeoutMs:e.startupTimeoutMs}),m=await by(o,e,l),R=pt(m.state);return Mc(o,R,m.state.pid===l.pid,e)}i($c,"acquireRuntimeDaemonProcessLease");async function Mc(e,n,t,r){let o=await qn(n,{connectTimeoutMs:r.connectTimeoutMs}),s=!1,a,c=!1,l,m=i(()=>{if(s)return Promise.resolve();if(a)return a;let R=(async()=>{await o.close?.(),s=!0})();return a=R,R.finally(()=>{a===R&&(a=void 0)}).catch(()=>{}),R},"closeTransport");return{transport:o,endpoint:n,paths:e,ownsHost:t,close:m,shutdown(){if(l)return l;let R=(async()=>{c||(await o.request("runtime.shutdown"),c=!0),await m()})();return l=R,R.finally(()=>{l===R&&(l=void 0)}).catch(()=>{}),R}}}i(Mc,"connectProcessLease");async function by(e,n,t,r=wr){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let s=await Ey(e,n,t,r),a=qt(s);if(a==="healthy"&&s.state?.status==="ready")return s.state.pid===t.pid?t.unref():await Ay(t),{...s,state:s.state};if(a==="mismatch")throw new Un("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let c=o-Date.now();if(c<=0)throw qc(e);await Py(Math.min(Math.max(1,n.pollIntervalMs??100),c),e,t,n.startupSignal)}}catch(s){try{await t.terminate()}catch(a){throw new AggregateError([s,a],"Runtime daemon startup failed and its child process could not be reclaimed.")}try{Iy(e)}catch{}throw s}}i(by,"waitForHealthyDaemonStartup");async function ky(e,n,t,r=wr){let o=Date.now()+(n.startupTimeoutMs??6e4),s=t.state;if(s===void 0)throw new Un("Runtime daemon owner state disappeared before it reached ready.","identity_mismatch");let a=t;for(;;){let c=qt(a);if(a.state!==void 0&&(a.state.runtimeId!==s.runtimeId||a.state.pid!==s.pid||a.state.profile!==s.profile||a.state.endpoint!==s.endpoint))throw new Un("Runtime daemon owner identity changed before it reached ready.","identity_mismatch");if(c==="healthy"&&a.state?.status==="ready")return{...a,state:a.state};if(c==="mismatch")throw new Un("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let l=o-Date.now();if(l<=0)throw qc(e);await ht(bi(Math.min(Math.max(1,n.pollIntervalMs??100),l)),n.startupSignal),a=await ht(r(e,n.healthCheck),n.startupSignal)}}i(ky,"waitForReadyRuntimeDaemonOwner");async function Ey(e,n,t,r){let o=await ht(Promise.race([r(e,n.healthCheck).then(s=>({kind:"health",observation:s})),t.exit.then(s=>({kind:"exit",exit:s}))]),n.startupSignal);if(o.kind==="exit"){if(ds(e,t))return r(e,n.healthCheck);if(o.exit.code===0&&o.exit.signal===null){let s=Math.min(Dc,n.startupTimeoutMs??Dc),a=Date.now()+s;for(;Date.now()<=a;){let c=await ht(r(e,n.healthCheck),n.startupSignal);if(qt(c)!=="missing"||ds(e,t))return c;await ht(bi(Math.min(n.pollIntervalMs??100,Math.max(1,a-Date.now()))),n.startupSignal)}}throw jc(e,o.exit)}return o.observation}i(Ey,"observeStartupHealth");async function Py(e,n,t,r){let o=await ht(Promise.race([bi(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(ds(n,t)){await ht(bi(e),r);return}throw jc(n,o)}}i(Py,"waitForStartupPoll");function ds(e,n){let t=We(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(ds,"hasCompetingStartupOwner");function jc(e,n){let t=n.signal!==null?`signal ${n.signal}`:`code ${n.code??"unknown"}`;return new Un(`Runtime daemon child exited before becoming healthy (${t}). See daemon bootstrap log: ${Ir(e)}`,"child_exit")}i(jc,"runtimeDaemonExitedEarly");function qc(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Un(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n} See daemon bootstrap log: ${Ir(e)}`,"timeout")}i(qc,"runtimeDaemonStartupTimeout");function xy(e,n,t=process.execArgv){let r=[...n!==void 0?Oy(t,n.endsWith(".ts")):[],...n!==void 0?[n]:[],"daemon","serve","--profile",e.profile,"--home",e.homeDir,"--config-home",e.configHome];return e.defaultProvider!==void 0&&r.push("--provider",e.defaultProvider),e.defaultModel!==void 0&&r.push("--model",e.defaultModel),e.sessionsDir!==void 0&&r.push("--sessions-dir",e.sessionsDir),e.permissionTimeoutMs!==void 0&&r.push("--permission-timeout-ms",String(e.permissionTimeoutMs)),e.orphanExitMs!==void 0&&r.push("--orphan-exit-ms",String(e.orphanExitMs)),r}i(xy,"buildRuntimeDaemonServeArgs");async function Cy(e){let n=_y();Dy(n);let t=xy(e,n),r=ea({args:t,env:My({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=jn(e.configHome,e.profile),s=Sy(o),a,c,l,m;try{if(process.platform==="win32"){let v=await Tc({executable:process.execPath,args:r.args,cwd:process.cwd(),env:r.env,logFile:Ir(o),startupTimeoutMs:e.startupTimeoutMs});a=v.supervisor,c=v.processPid,l=v.terminate,m=v.release}else a=fy(process.execPath,r.args,{detached:!0,stdio:["ignore",s,s],windowsHide:!0,env:r.env})}finally{Nc(s)}let R=a.exitCode!==null||a.signalCode!==null?Promise.resolve({code:a.exitCode,signal:a.signalCode}):new Promise(v=>{a.once("exit",(y,x)=>v({code:y,signal:x}))});return c===void 0&&await new Promise((v,y)=>{a.once("spawn",v),a.once("error",y)}),na(a),Ty(a,R,c,l,m)}i(Cy,"spawnRuntimeDaemonServeProcess");async function Ay(e){if(e.hasExited?.()!==!0)try{await e.terminate()}catch(n){if(!(n instanceof Ii)||!await us(e.exit,1e3))throw n}}i(Ay,"terminateCompetingStartupChild");function Ty(e,n,t=e.pid,r,o){return{pid:t,exit:n,hasExited(){return zi(e)},unref(){o!==void 0?o():e.unref()},async terminate(){if(r!==void 0){if(await r(),!await us(n,1e3))throw new Error(`Runtime daemon Job supervisor ${e.pid??"unknown"} did not exit after termination.`);return}let s=zi(e);if((await ta(e)).status==="unknown"&&!s)throw new Ii(t);if(!await us(n,1e3))throw new Error(`Runtime daemon child ${t??"unknown"} did not exit after termination.`)}}}i(Ty,"createRuntimeDaemonStartupProcess");async function us(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)}}i(us,"didExitWithin");function Dy(e){if(e!==void 0&&!Si(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(Dy,"assertRuntimeDaemonCliEntryAvailable");function My(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??hn.join(e.homeDir,".kodax")};return delete n[Zs],n}i(My,"createRuntimeDaemonServeEnvironment");function _y(){if(process.env.KODAX_BUNDLED==="true")return;let e=wy(import.meta.url);if(e.endsWith(".ts"))return hn.resolve(hn.dirname(e),"..","kodax_cli.ts");let n=hn.dirname(e),t=hn.basename(n)==="chunks"?hn.dirname(n):n;return hn.join(t,"kodax_cli.js")}i(_y,"resolveDaemonCliEntry");function Oy(e,n){let t=[];for(let r=0;r<e.length;r+=1){let o=e[r]??"",s=o.toLowerCase();if(s==="--require"||s==="-r"){let a=e[r+1];a!==void 0&&(_c(a)&&t.push(o,a),r+=1)}else if(s.startsWith("--require=")){let a=o.slice(10);_c(a)&&t.push(o)}else(s.startsWith("--max-old-space-size")||s==="--enable-source-maps")&&t.push(o)}return n&&t.push("--import","tsx"),t}i(Oy,"daemonServeExecArgv");function _c(e){return hn.resolve(e)===hn.resolve("scripts","production-env.cjs")}i(_c,"isKodaXProductionEnvPreload");function bi(e){return new Promise(n=>setTimeout(n,e))}i(bi,"delay");async function ht(e,n){if(!n)return e;if(n.aborted)throw Oc();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(Oc()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(ht,"raceRuntimeDaemonStartupStep");function Oc(){return new Un("Runtime daemon startup cancelled.","cancelled")}i(Oc,"runtimeDaemonStartupCancelled");var Ny=15e3,Ly=25;async function Fy(e){if(!Number.isSafeInteger(e.owner.pid)||e.owner.pid<=0)throw new Error("Runtime daemon shutdown verification requires a positive owner PID.");let n=e.timeoutMs??Ny,t=e.pollIntervalMs??Ly;if(!Number.isSafeInteger(n)||n<=0)throw new Error("Runtime daemon shutdown verification timeout must be positive.");if(!Number.isSafeInteger(t)||t<=0)throw new Error("Runtime daemon shutdown verification poll interval must be positive.");if(e.owner.processContainment==="windows-job"&&(!Number.isSafeInteger(e.owner.supervisorPid)||e.owner.supervisorPid<=0))throw new Error("Windows Job containment requires a positive supervisor PID.");let r=jn(e.configHome,e.profile??"default"),o=Date.now()+n,s="outcome_missing";for(;;){let a=We(r.lockFile),c=a?.kind==="daemon"&&Wt(a.pid)&&(a.runtimeId!==e.owner.runtimeId||a.pid!==e.owner.pid)?a:void 0,l=cu(r,e.owner),m=Wt(e.owner.pid),R=e.owner.processContainment==="windows-job"&&Wt(e.owner.supervisorPid);if(l?.status==="failed")return{status:"failed",outcome:l};if(process.platform==="win32"&&e.owner.processContainment!=="windows-job")return{status:"unverified",reason:"containment_unavailable"};if(l?.status==="succeeded"&&!m&&!R)return c!==void 0?{status:"replacement_running",runtimeId:c.runtimeId,pid:c.pid}:{status:"succeeded",outcome:l};if(s=m?"daemon_active":R?"containment_active":"outcome_missing",Date.now()>=o)return{status:"unverified",reason:s};await Hy(Math.min(t,Math.max(1,o-Date.now())))}}i(Fy,"waitForRuntimeDaemonShutdown");function Hy(e){return new Promise(n=>setTimeout(n,e))}i(Hy,"delay");import{Worker as $y}from"node:worker_threads";import{existsSync as jy}from"node:fs";import{basename as qy,dirname as cs,join as Bc}from"node:path";import{fileURLToPath as Kc,pathToFileURL as Uc}from"node:url";var By=3e4;function Xc(e,n={}){let t=Xy(),r=new $y(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),o=new Map,s=new Map,a=new Set,c=0,l=!1,m=i(E=>{for(let u of o.values())u.cleanup(),u.reject(E);o.clear()},"rejectPending"),R=i(()=>{for(let E of s.values())clearTimeout(E.expiry);s.clear()},"clearLateResults"),v=i(E=>{let u=s.get(E);if(u!==void 0)return s.delete(E),clearTimeout(u.expiry),u.deliver},"removeLateResult"),y=i(E=>{l||(l=!0,m(E),R(),a.clear())},"markClosed"),x=i((E,u)=>{if(l)return;let g=E==="request.ack"?"ack":"cancel";try{r.postMessage(Ot(`worker_${g}_${++c}`,E,{requestId:u}))}catch(h){ge({source:"runtime.worker.transport",level:"warn",message:`Failed to send Worker ${E} lifecycle frame.`,detail:h})}},"sendRequestLifecycleFrame");return r.on("message",E=>{if(yr(E)){for(let h of a)h(E);return}if(!dt(E)&&!Lt(E)||!E.id)return;let u=o.get(E.id);if(!u){if(dt(E)){let h=v(E.id);if(h!==void 0)try{h(E.result)}catch(P){ge({source:"runtime.worker.transport",level:"warn",message:"Runtime Worker late-result handler failed.",detail:P})}}else v(E.id);return}if(o.delete(E.id),u.cleanup(),dt(E)){x("request.ack",E.id),u.resolve(E.result);return}let g=new Error(E.error.message);g.code=E.error.code,E.error.data!==void 0&&(g.data=E.error.data),u.reject(g)}),r.on("error",E=>y(E)),r.on("exit",E=>y(new Error(`Runtime Worker exited with code ${E}.`))),{transport:{request(E,u,g,h){if(l)return Promise.reject(new Error("Runtime Worker transport is closed."));let P=`worker_${++c}`,I,k=!1,A=i(()=>{I!==void 0&&h?.signal?.removeEventListener("abort",I)},"cleanup"),C=new Promise((O,H)=>{let ee={resolve:O,reject:H,cleanup:A};o.set(P,ee),I=Ky(h,()=>{if(o.get(P)===ee){if(o.delete(P),A(),k&&x("request.cancel",P),h?.onLateResult!==void 0){let te=setTimeout(()=>{s.delete(P)},By);te.unref?.(),s.set(P,{deliver:h.onLateResult,expiry:te})}H(Uy(h?.signal?.reason))}})});if(h?.signal?.aborted)return C;try{r.postMessage(Ot(P,E,u,g)),k=!0}catch(O){let H=o.get(P);H!==void 0&&(o.delete(P),H.cleanup(),H.reject(O instanceof Error?O:new Error(String(O))))}return C},subscribe(E){return l?{close(){}}:(a.add(E),{close:i(()=>a.delete(E),"close")})},async close(){l||(y(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){l||y(new Error("Runtime Worker terminated.")),await r.terminate()}}}i(Xc,"createRuntimeWorkerTransport");function Ky(e,n){let t=e?.signal;if(t!==void 0)return t.addEventListener("abort",n,{once:!0}),t.aborted&&n(),n}i(Ky,"attachWorkerRequestAbort");function Uy(e){return e instanceof Error?e:new Error("Runtime Worker request cancelled.")}i(Uy,"normalizeWorkerAbortReason");function Xy(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return jy(Kc(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return Uc(Bc(cs(process.execPath),"runtime-worker.js"));let e=cs(Kc(import.meta.url)),n=qy(e)==="chunks"?cs(e):e;return Uc(Bc(n,"runtime-worker.js"))}i(Xy,"resolveRuntimeWorkerUrl");var Tn=class extends Error{constructor(t,r,o,s="runtimeAutoModeGuardrail"){super(t,o);this.preflight=r;this.name="RuntimeDaemonCapabilityUpgradeError",this.capability=s}preflight;static{i(this,"RuntimeDaemonCapabilityUpgradeError")}code="daemon_capability_upgrade_required";recoverable=!0;restartRequired=!0;capability},St=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function _s(e){let n=Y.resolve(e??_i.homedir());return{homeDir:n,configHome:e===void 0?Y.resolve(ao):Y.join(n,".kodax")}}i(_s,"resolveRuntimeDaemonClientLocation");function sr(e,n="default"){let t=_s(e);return{...t,paths:jn(t.configHome,n)}}i(sr,"resolveRuntimeDaemonClientPaths");function NI(e={}){let{paths:n}=sr(e.homeDir,e.profile),t=`inline_${Qe().replace(/-/g,"")}`,r=ou(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),o=!1;return{profile:n.profile,ownerId:t,ownerPolicy:bn(n),close(){o||(o=!0,li(r))}}}i(NI,"acquireKodaXInlineOwner");function LI(e={}){return bn(sr(e.homeDir,e.profile).paths)}i(LI,"getKodaXRuntimeOwnerPolicy");function FI(e={}){let{paths:n}=sr(e.homeDir,e.profile),t=We(n.lockFile);return{profile:n.profile,policy:bn(n),ownerStatus:t!==void 0?"owned":$.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}i(FI,"getKodaXRuntimeOwnerState");function HI(e={}){return di(sr(e.homeDir,e.profile).paths)}i(HI,"enableKodaXDaemonOwner");function $I(e){let{paths:n}=sr(e.homeDir,e.profile);if(We(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return ru(n,e.mode,e.expectedRevision)}i($I,"setKodaXRuntimeOwnerMode");var Wy=["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"],zy=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),jI=Object.freeze({daemonOrphanExit:1,daemonShutdownVerification:1,managedRunDurability:1,runtimeEventCoalescing:1});async function qI(e,n){return e.sessions.diagnostics(n)}i(qI,"captureRuntimeSessionDiagnostics");function Jy(e,n,t,r){let o=t.runs.flatMap(R=>{let v=ji(R);return v===void 0?[]:[v]}),s=n.runId===void 0?sm(o):o.find(R=>R.runId===n.runId),a=s?.activeSubtaskCount??null,c=[],l=i((R,v)=>{c.some(y=>y.code===R)||c.push({code:R,message:v})},"addError");if(s===void 0)l("run_control_unknown",n.runId===void 0?"No Run control record is available at this Session boundary.":`Run control record is unavailable: ${n.runId}`);else if(s.phase==="unknown"){let R=s.error==="owner_liveness_unconfirmed"?"owner_liveness_unconfirmed":s.error==="owner_recovery_required"?"owner_recovery_required":s.error==="stop_outcome_unconfirmed"?"stop_outcome_unconfirmed":"run_status_unknown";l(R,R==="owner_liveness_unconfirmed"?"The prior Runtime owner could not be confirmed alive or dead.":R==="owner_recovery_required"?"The prior Runtime owner is gone; explicit Run recovery is required.":R==="stop_outcome_unconfirmed"?"A Stop was requested, but executor termination is not confirmed.":"The authoritative Run state could not be confirmed.")}(s?.stop?.state==="unknown"||s?.stop?.outcome==="unknown")&&l("stop_outcome_unconfirmed","A Stop was requested, but executor termination is not confirmed."),s?.lifecycleError!==void 0&&l(s.lifecycleError.code,s.lifecycleError.message),s?.phase==="failed"&&l("run_failed",s.error??"The Run failed without a recorded error message."),s!==void 0&&Me(s.phase)&&s.endedAt===void 0&&l("terminal_time_unknown","The Run is terminal, but its terminal time was not recorded.");let m=s?.activeSubtaskCount===void 0?"unknown":"run_status";return{schemaVersion:1,captureStartedAt:r,capturedAt:new Date().toISOString(),sdkVersion:Xr,runtimeVersion:e.version,daemonVersion:e.mode==="daemon"?e.version:null,runtimeId:t.runtimeId,runtimeMode:e.mode,sessionId:n.sessionId,observation:{cursor:t.cursor,transcriptRevision:t.transcriptRevision},run:s===void 0?{controlRecord:"unknown",...n.runId!==void 0?{runId:n.runId}:{},state:"unknown",stage:"unknown",terminalTimeKnown:!1,activeSubtaskCount:a,activeSubtaskCountSource:m,errors:c}:{controlRecord:"present",runId:s.runId,...s.turnId!==void 0?{turnId:s.turnId}:{},state:s.phase==="queued"?"queued":s.phase==="unknown"?"unknown":Me(s.phase)?"terminal":"active",phase:s.phase,stage:s.stage??(Me(s.phase)?"terminal":"unknown"),...s.stageChangedAt!==void 0?{stageChangedAt:s.stageChangedAt}:{},...s.endedAt!==void 0?{terminalAt:s.endedAt}:{},terminalTimeKnown:Me(s.phase)&&s.endedAt!==void 0,...s.terminal!==void 0?{terminal:s.terminal}:{},activeSubtaskCount:a,activeSubtaskCountSource:m,...s.stop!==void 0?{stop:s.stop}:{},...s.interruptInputs!==void 0?{interruptInputs:s.interruptInputs}:{},errors:c}}}i(Jy,"createRuntimeSessionDiagnosticsRecord");var Cr=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},Mr=class extends Error{static{i(this,"RuntimeEventCommitIndeterminateError")}constructor(n,t){super("Runtime event batch commit is indeterminate; automatic retry is disabled",{cause:new AggregateError([n,t],"Runtime event append and rollback both failed")}),this.name="RuntimeEventCommitIndeterminateError"}includeLockCleanupFailure(n){Object.defineProperty(this,"cause",{configurable:!0,value:new AggregateError([this.cause,n],"Runtime event commit and status-lock cleanup both failed")})}},bt=class extends Error{constructor(t){super("Runtime status lock cleanup failed after the operation completed",{cause:t});this.cleanupError=t;this.name="RuntimeStatusLockCleanupError"}cleanupError;static{i(this,"RuntimeStatusLockCleanupError")}},Oi=class extends Error{constructor(t){super(`Runtime status lock timed out: ${t}`);this.lockFile=t;this.name="RuntimeStatusLockTimeoutError"}lockFile;static{i(this,"RuntimeStatusLockTimeoutError")}},zc=5*6e4,Ni=1e4,Vy=1024,Jc=1024*1024,Nn=1e3,ki=200,ls=1e3,Gy=2*1024*1024,ms=512,Vc=256*1024*1024,Yy=50,ks=8*1024,Ol=16*1024*1024,Qy=Ol/2,Gc=128*1024,Yc=8,Zy=256,kt=512*1024,Li=128*1024,Ar=256*1024,Nl=50,Ll=200,eR=8,Tr=64*1024*1024,Fi=16,fs=4*1024,nR=256,tR=1024*1024,rR=250,ps=5*6e4,Qc="kodax-transcript-snapshots-",iR=5e3,oR=3e4,Zc=[5,15],sR="1970-01-01T00:00:00.000Z";function aR(e,n,t){let r=null,o=t.map((s,a)=>{let l=`entry_${It("sha256").update("kodax-runtime-legacy-lineage-v1\0").update(`${e}\0${n}\0${a}:`).update(JSON.stringify(s)).digest("hex").slice(0,12)}`,m={type:"message",id:l,parentId:r,logicalId:l,timestamp:s.timestamp??sR,message:structuredClone(s)};return r=l,m});return{version:2,activeEntryId:r,entries:o}}i(aR,"createDeterministicRuntimeLegacyLineage");var el=1024,Fl=new Set(["tool_call","tool_describe"]),dR=new Set(["image","file","video"]);function uR(e,n){let t=Y.relative(Ys(),e);return Y.isAbsolute(t)||t.startsWith("..")?e:Y.join(n,t)}i(uR,"rebaseAgentConfigPath");async function cR(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 lR(e);let S=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return Hl({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:S,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExitMs:e.daemonOrphanExitMs}:{},daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:S?{...e.requirements,managedRunDurability:1,runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}: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 mR(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:kt},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},conversationHistory:{version:1,immutablePaging:!0,revisionedBoundaries:!0,ambiguityReporting:!0},learningCenter:{version:1},skillLearningLoop:{version:1,activation:"project_scoped_canary",immutableDecisions:!0,recordGatedDiscovery:!0,exactUseAttribution:!0,rollback:!0},actorControlPlane:{version:1,methodNamespace:"agents"},sandboxRuntime:Wr(),managedRunDurability:{version:1,initialInputBeforeExecution:!0,completedTurnBeforeEvent:!0,deliveredInputBeforeEvent:!0,persistenceFailure:"fail_closed"},runtimeEventCoalescing:{version:1},runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:Kr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};Os(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Qe().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.84",isolation:"inline"},r=e.homeDir?Y.join(Y.resolve(e.homeDir),".kodax"):ao,o=eh(e),s=ed(o?{sessionsDir:o,configHome:r}:{configHome:r}),a=kh(t.profile,s,e.sharedDaemonHost===!0),c=wR(),l=Wh(e);tm(l);let m=await Od({onError(S){ge({source:"runtime.owner",level:"error",message:`Runtime owner liveness endpoint failed for ${t.runtimeId}.`,detail:He(S)})}}),R={ownerId:`runtime_${Qe().replace(/-/g,"")}`,runtimeId:t.runtimeId,pid:process.pid,startedAt:t.startedAt,livenessId:m.id,livenessPort:m.port},v=KR(e,R),y;try{y=e.externalAgents?await ba({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:ud(Y.join(v.runtimeDir,"agents"))}):void 0}catch(S){throw await m.close(),S}let x=FR(v),p=hR(v,x),E=mh(x,e.permissionTimeoutMs??zc,v),u=uh(x,e.permissionTimeoutMs??zc),g=PR(),h=IR(),P=new Map,I=new Map,k=new Map,A=new Map,C=i((S,T)=>{let F=I.get(S)??T;return F.state!=="recovering"?Promise.resolve(F):new Promise(D=>{let j=k.get(S)??new Set;j.add(D),k.set(S,j)})},"waitForActorHealthResolution"),O=i(S=>{let T,F=new Promise(j=>{T=j}),D=A.get(S)??new Set;return D.add(T),A.set(S,D),{promise:F,close(){T!==void 0&&(D.delete(T),D.size===0&&A.delete(S),T=void 0)}}},"waitForActorHealthChange"),H=i((S,T)=>{I.set(S,T);let F=A.get(S);A.delete(S);for(let D of F??[])D(T);for(let D of P.values()){if(D.sessionId!==S||!D.ownedByRuntime||Me(D.phase))continue;if(D.stop?.state==="unknown"){if(delete D.actorHealthBaseState,T.state==="unknown"){D.lifecycleError={code:T.code??"actor_settlement_not_persisted",message:T.message??"Actor executor settlement persistence is not confirmed.",retryable:!1},D.stageChangedAt=new Date().toISOString();let re=on(D),Q=Jn(x,v,D,re);Q===re?x.emit("run.updated",re,{sessionId:D.sessionId,runId:D.runId,...D.turnId!==void 0?{turnId:D.turnId}:{}}):Q!==void 0&&vt(D,Q)}continue}if(T.state==="healthy"){let re=D.actorHealthBaseState;if(re===void 0)continue;D.phase=re.phase,D.stage=re.stage,D.error=re.error,D.lifecycleError=re.lifecycleError,delete D.actorHealthBaseState}else D.actorHealthBaseState===void 0&&(D.actorHealthBaseState={phase:D.phase,stage:D.stage,error:D.error,lifecycleError:D.lifecycleError}),(D.phase!=="queued"||T.state==="unknown")&&(D.phase=T.state),D.stage=T.state,D.error=T.message,D.lifecycleError={code:T.code??"actor_settlement_retrying",message:T.message??"Actor executor settlement persistence is not confirmed.",retryable:T.state==="recovering"};D.stageChangedAt=new Date().toISOString();let j=on(D),V=Jn(x,v,D,j);V===j?x.emit("run.updated",j,{sessionId:D.sessionId,runId:D.runId,...D.turnId!==void 0?{turnId:D.turnId}:{}}):V!==void 0&&vt(D,V)}if(T.state!=="recovering"){let D=k.get(S);k.delete(S);for(let j of D??[])j(T)}},"onActorHealthChanged"),ee=AR(s,t,m,y,e.externalAgents?.defaultContext,H),te=new Map,fe=[...gw(v.loadRunStatuses())].sort((S,T)=>zn(S.status,T.status)),Re=[];for(let S of fe){let T=S.status,F=T.sessionOrder??(te.get(T.sessionId)??0)+1;te.set(T.sessionId,Math.max(te.get(T.sessionId)??0,F));let D={...T,acceptedAt:T.acceptedAt??T.startedAt,sessionOrder:F};if(!Me(T.phase)){let j=Xl(D,x,v);if(j!==void 0){P.set(j.runId,Mi(j,!1,S.owner));continue}D=$s(D,v.replay({runId:T.runId}))}Re.push({persisted:S,normalizedStatus:D})}let Fe=Re.flatMap(({persisted:S})=>!Me(S.status.phase)&&S.owner!==void 0?[S.owner]:[]),ke=await Nd(Fe),ue=0;for(let{persisted:S,normalizedStatus:T}of Re){let F=S.status,D=Me(F.phase)?"dead":S.owner===void 0?"unknown":ke[ue++]??"unknown";if(!Me(F.phase)&&D!=="dead"){P.set(F.runId,Mi(T,!1,S.owner));continue}let j=Ul(T,x,v);P.set(j.runId,Mi(j,!1,S.owner))}let qe=!1,xe,ze=!1,Ze=!1,X=y===void 0,J=!1,d=!1,b=i(()=>{if(qe)throw new Error("KodaX runtime is closed")},"ensureOpen"),M=SR({bus:x,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,defaultConfigHome:r,ensureOpen:b,isClosed:i(()=>qe,"isClosed"),artifacts:g,permissions:E,userInputs:u,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:v,runOwner:R,runs:P,sessionManager:s,sessionAdmission:a,sessionOperations:c,agentPlane:y,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:ee,waitForActorHealthResolution:C,waitForActorHealthChange:O,settingsOwner:p}),K,B,G=vR(t,r,s,x,v,b,S=>Rw(S,P,v),p,S=>M.list({sessionId:S}),S=>M.inspect({sessionId:S}),S=>M.inspectOne(S),S=>E.service.listPending({sessionId:S}),S=>M.getAutoModeStats(S),c,(S,T,F)=>ee.mutateSessionFile(S,T,F),S=>{M.releaseSession(S),E.releaseSession(S)},a,(S,T)=>{K=S,B=T}),we=Y.join(e.homeDir?Y.resolve(e.homeDir):_i.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),pe=Td({configHome:r,managedWorkspaceRoot:we,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:M,sessions:G,createSkillScriptRunner:i(S=>rd({...S,snapshotRoot:Y.join(we,"bindings")}),"createSkillScriptRunner")}),Se=Hd({rootDir:Y.join(r,"learned"),userSkillsRoot:Y.join(r,"skills"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[uR(da(process.cwd()),r)]}),W=i(()=>{if(xe)return xe;qe=!0;let S=(async()=>{ze||(M.closeAll("runtime closed"),E.rejectAll("runtime closed"),E.releaseAllSessionGrants(),u.rejectAll("runtime closed"),ze=!0),K?.(),await c.close(),await B?.(),K=void 0,B=void 0,Ze||(await ee.close("runtime closed"),Ze=!0),X||(await y.close(),X=!0),J||(await m.close(),J=!0),d||(x.close(),d=!0)})();return xe=S,S.then(()=>{xe===S&&(xe=void 0)},()=>{xe===S&&(xe=void 0)}),S},"closeRuntime");return{identity:t,capabilities:n,sessions:G,runs:M,events:x.service,permissions:E.service,userInputs:u.service,credentials:Bw(),hostTools:Kw(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:h,learning:Se,config:bR(b,l),catalog:kR(b,l),mcp:ER(b,l),artifacts:g.service,status:MR({identity:t,permissions:E,userInputs:u,listRuns:i(()=>M.list(),"listRuns"),sessionManager:s,sessionAdmission:a,workflows:h,actors:ee}),diagnostics:_R(x.service),admin:DR(y),agents:TR(y,pe,ee,a,c,b),close:W}}i(cR,"createKodaXRuntime");async function lR(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?ql(e.daemonEndpoint):void 0,r=_s(e.homeDir),o=await bc({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(s=>cR({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,sharedDaemonHost:!0,daemonHostRuntimeId:s,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!o.ownsHost)throw await o.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 s=await Hl({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??Rr(o.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),a=!1,c=!1,l,m=i(()=>{if(l)return l;let R=(async()=>{c||(o.ownsHost?await o.shutdown():await o.close(),c=!0),a||(await s.close(),a=!0)})();return l=R,R.then(()=>{l===R&&(l=void 0)},()=>{l===R&&(l=void 0)}),R},"closeHostedRuntime");return{...s,identity:{...s.identity,isolation:"inline"},close:m}}catch(s){let c=(await Promise.allSettled([o.ownsHost?o.shutdown():o.close()])).filter(l=>l.status==="rejected").map(l=>l.reason);throw c.length>0?new AggregateError([s,...c],"Hosted daemon initialization failed and cleanup was incomplete."):s}}i(lR,"createInProcessExternalAgentDaemon");async function mR(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=Xc({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,configuredA2A:e.worker?.configuredA2A},e.worker);try{let r=or(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=rm(r.identity);Os(r.capabilities,{...e.requirements,hardDispose:!0});let s=oi({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:or(r.capabilities)}),a=!1,c;return{...s,close:i(()=>{if(a)return Promise.resolve();if(c)return c;let m=(async()=>{let R;try{await fR(t.transport.request("runtime.shutdown"),n)}catch(v){R=v}try{await t.terminate(),a=!0}catch(v){throw R!==void 0?new AggregateError([R,v],"Runtime Worker shutdown and forced termination both failed."):v}if(R!==void 0)throw R})();return c=m,m.finally(()=>{c===m&&(c=void 0)}).catch(()=>{}),m},"closeWorkerRuntime")}}catch(r){throw await t.terminate(),r}}i(mR,"createWorkerHostedKodaXRuntime");function Os(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?.skillLearningLoop===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?.conversationHistory===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.managedRunDurability===void 0&&n?.daemonManagement===void 0&&n?.daemonOrphanExit===void 0&&n?.daemonShutdownVerification===void 0&&n?.runtimeEventCoalescing===void 0&&n?.integrationConfigResilience===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=or(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&&nl(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["skillLearningLoop",n.skillLearningLoop],["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],["conversationHistory",n.conversationHistory],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["managedRunDurability",n.managedRunDurability],["daemonManagement",n.daemonManagement],["daemonOrphanExit",n.daemonOrphanExit],["daemonShutdownVerification",n.daemonShutdownVerification],["runtimeEventCoalescing",n.runtimeEventCoalescing],["integrationConfigResilience",n.integrationConfigResilience],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,s]of r)s!==void 0&&nl(t,o,s)}i(Os,"assertRuntimeCapabilities");function nl(e,n,t){let r=e[n];if(!ae(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}i(nl,"assertVersionedRuntimeCapability");async function fR(e,n){let t;try{await Promise.race([e,new Promise((r,o)=>{t=setTimeout(()=>o(new Error(`Runtime Worker shutdown timed out after ${n}ms.`)),n),t.unref?.()})])}finally{t!==void 0&&clearTimeout(t)}}i(fR,"settleWithin");async function Hl(e={}){return jl(e,!0)}i(Hl,"connectKodaXRuntime");function $l(e,n,t){let r=e[n];return ae(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i($l,"hasVersionedRuntimeCapability");async function pR(e){if(!$l(e.capabilities,"daemonManagement",1))throw new Tn("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.",void 0,void 0,e.requiredCapability);let n=oi({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 Tn(`The running daemon needs ${e.requiredCapability} v${e.requiredVersion} but cannot be replaced safely yet: ${t.preflight.blockers.join(", ")}. Finish or cancel that work and retry.`,t.preflight,void 0,e.requiredCapability);await n.daemon.stopForInline({expectedRuntimeId:t.runtimeId,expectedRevision:t.revision,expectedOwnerPolicyRevision:t.ownerPolicy.revision})}catch(o){throw o instanceof Tn?o:new Tn("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:o},e.requiredCapability)}finally{let o=!1;await n.close().then(()=>{o=!0}).catch(s=>{ge({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:He(s)})}),o||await e.lease.close().catch(s=>{ge({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:He(s)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;We(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Tn("The legacy daemon accepted the upgrade stop but did not release its owner fence before timeout. Retry after the daemon exits.",void 0,void 0,e.requiredCapability);await new Promise(o=>setTimeout(o,50))}}catch(o){try{di(e.lease.paths)}catch(s){throw new Tn("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([o,s])},e.requiredCapability)}throw o}try{di(e.lease.paths)}catch(o){throw new Tn("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:o},e.requiredCapability)}}i(pR,"replaceRuntimeDaemonForCapabilityUpgrade");async function jl(e,n){gs("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),gs("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs),gs("daemonOrphanExitMs",e.daemonOrphanExitMs);let t=e.endpoint!==void 0?ql(e.endpoint):void 0,r=_s(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await $c({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.daemonOrphanExitMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,s=t??o?.endpoint??(e.transport===void 0?Xt(e.profile??"default",$t(r.homeDir,r.configHome)):void 0),a=e.transport??o?.transport??(s!==void 0?await qn(s,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!a)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let c=RR(e),l,m={},R,v,y=!1;try{let p={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Qe().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}:{}},E=or(await a.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...c!==void 0?{token:c}:{},clientInfo:p,capabilities:{...e.capabilities,operationDeduplication:!0},...s!==void 0?{endpoint:s.path}:{}}));l=rm(E.identity),m=E.capabilities===void 0?{}:or(E.capabilities),R=typeof E.journalEpoch=="string"?E.journalEpoch:void 0,v=gR(E.grantedScopes);let u=e.autoStart===!0?{...e.requirements,managedRunDurability:1,runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:e.requirements,g=[{name:"managedRunDurability",version:u?.managedRunDurability},{name:"runtimeAutoModeGuardrail",version:u?.runtimeAutoModeGuardrail},{name:"runtimeEventCoalescing",version:u?.runtimeEventCoalescing},{name:"daemonOrphanExit",version:u?.daemonOrphanExit},{name:"daemonShutdownVerification",version:u?.daemonShutdownVerification}].find(P=>P.version!==void 0&&!$l(m,P.name,P.version));if(g!==void 0){if(!n||e.autoStart!==!0||o===void 0)throw new Tn(`Runtime daemon does not support ${g.name} v${g.version}. Stop all daemon work and restart it with a compatible KodaX installation.`,void 0,void 0,g.name);if(g.name==="daemonShutdownVerification")throw new Tn("The running Windows daemon predates authoritative process containment. Stop it explicitly before requiring daemonShutdownVerification v1; it cannot be migrated safely in place.",void 0,void 0,g.name);try{await pR({identity:l,capabilities:m,transport:a,lease:o,...R!==void 0?{journalEpoch:R}:{},...v!==void 0?{grantedScopes:v}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredCapability:g.name,requiredVersion:g.version})}finally{y=!0}return jl(e,!1)}Os(m,u);let h=e.profile??"default";if(l.profile!==h)throw new Error(`Runtime daemon profile mismatch: expected ${h}, got ${l.profile}`)}catch(p){throw y||(o!==void 0?await o.close():await a.close?.()),p}let x=oi({identity:{...l,mode:"daemon",isolation:"process"},transport:a,capabilities:m,...R!==void 0?{journalEpoch:R}:{},...v!==void 0?{grantedScopes:v}:{}});return o?{...x,async close(){await x.close()}}:x}i(jl,"connectKodaXRuntimeInternal");function gs(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(gs,"assertPositiveRuntimeTimeout");function gR(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&yR(t));return n.length===e.length?n:void 0}i(gR,"parseRuntimeGrantedScopes");function yR(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"}i(yR,"isRuntimeGrantedScope");function RR(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Rr(sr(e.homeDir,e.profile).paths)}i(RR,"resolveConnectDaemonToken");function ql(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(ql,"normalizeRuntimeDaemonEndpoint");function hR(e,n){let t=new Map,r=new Map,o=new Set,s=i((c,l)=>{let R=(r.get(c)??Promise.resolve()).then(l),v=R.then(()=>{},()=>{});return r.set(c,v),v.then(()=>{r.get(c)===v&&r.delete(c)}),R},"enqueue"),a=i((c,l,m)=>{t.set(c,l);for(let R of o)R(c,l,m);n.emit("session.settings.updated",{sessionId:c,revision:l.revision,settings:l.value,patch:m},{sessionId:c,runId:c})},"publish");return{async read(c){await(r.get(c)??Promise.resolve());let l=e.loadSessionSettingsVersioned(c);return t.set(c,l),l},peek(c){return t.get(c)},update(c,l,m,R){return s(c,()=>{let v=e.loadSessionSettingsVersioned(c);if(m!==void 0&&v.revision!==m)throw Wn(`Session settings revision ${m} is stale; current revision is ${v.revision}`,v.revision);let y=Fh(v.value,l);R(y);let x={revision:v.revision+1,value:y};return e.saveSessionSettingsVersioned(c,x),a(c,x,l),x})},async persistAutoModeEngine(c,l){let m=t.get(c)??e.loadSessionSettingsVersioned(c);t.set(c,{revision:m.revision,value:{...m.value,autoModeEngine:l}}),await s(c,()=>{let R=e.loadSessionSettingsVersioned(c);if(R.value.autoModeEngine===l){t.set(c,R);return}let v={revision:R.revision+1,value:{...R.value,autoModeEngine:l}};e.saveSessionSettingsVersioned(c,v),a(c,v,{autoModeEngine:l})})},subscribe(c){return o.add(c),{close:i(()=>{o.delete(c)},"close")}},release(c){t.delete(c),r.delete(c)}}}i(hR,"createRuntimeSessionSettingsOwner");function wR(){let e=new Map,n=!1;return{run(t,r){if(n)return Promise.reject(new Error("KodaX runtime is closed"));let s=(e.get(t)??Promise.resolve()).then(r),a=s.then(()=>{},()=>{});return e.set(t,a),a.then(()=>{e.get(t)===a&&e.delete(t)}),s},async close(){n=!0,await Promise.all([...e.values()])}}}i(wR,"createRuntimeSessionOperationGate");function vR(e,n,t,r,o,s,a,c,l,m,R,v,y,x,p,E,u,g){let h=new Set,P=i((f,L,N)=>({id:f,title:L.title,...L.gitRoot?{gitRoot:L.gitRoot}:{},...L.runtimeInfo?.workspaceRoot?{workspaceRoot:L.runtimeInfo.workspaceRoot}:{},...L.runtimeInfo?.surface?{surface:L.runtimeInfo.surface}:{},...L.runtimeInfo?.profileId?{profileId:L.runtimeInfo.profileId}:{},...N?{createdAt:N}:{}}),"toRuntimeSession"),I=i(f=>({revision:f.revision,sourceRevision:f.sourceRevision,status:f.status,issues:f.issues,entries:f.entries,hasMore:f.hasMore,...f.nextEnd!==void 0?{nextCursor:qi({kind:"conversation_cache_page",view:"conversation",revision:f.revision,end:f.nextEnd})}:{}}),"toRuntimeConversationPage"),k=new Map,A=new Map,C=new Map,O=new Map,H=new Map,ee=new Map,te=0,fe=new Map,Re=new Set,Fe=new Set,ke=0,ue,qe=0,xe=!1,ze=!1,Ze=new Set,X=new Map,J,d=i(()=>{J!==void 0&&(clearInterval(J),J=void 0)},"clearTranscriptSnapshotLease"),b=i(()=>{if(ue!==void 0)try{D(),F();let f=new Date;$.utimesSync(ue,f,f)}catch(f){process.emitWarning(`Unable to refresh transcript snapshot lease: ${He(f).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_LEASE_FAILED"})}},"refreshTranscriptSnapshotLease"),M=i(()=>{let f=_i.tmpdir(),L=Date.now()-ps;try{for(let N of $.readdirSync(f,{withFileTypes:!0})){if(!N.isDirectory()||!N.name.startsWith(Qc))continue;let q=Y.join(f,N.name);$.statSync(q).mtimeMs>L||$.rmSync(q,{recursive:!0,force:!0})}}catch(N){process.emitWarning(`Unable to prune expired transcript snapshots: ${He(N).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"pruneStaleTranscriptSnapshotDirs"),K=i(f=>{let L=fe.get(f);L!==void 0&&(fe.delete(f),te-=L)},"releaseTranscriptSnapshotBytes"),B=i(f=>(Fe.add(f),f.then(()=>Fe.delete(f),()=>Fe.delete(f)),f),"trackTranscriptSnapshotOperation"),G=i(()=>{if(xe)throw new an("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(ke>=Fi)throw $w();ke+=1;let f=!1;return()=>{f||(f=!0,ke-=1)}},"acquireTranscriptSnapshotIo"),we=i(()=>{if(xe)throw new an("read_cancelled","Runtime history read cancelled because the Runtime is closing");let f=ue===void 0;if(ue!==void 0)try{f=$.statSync(ue).isDirectory()}catch(L){(!ae(L)||L.code!=="ENOENT"&&L.code!=="ENOTDIR")&&process.emitWarning(`Unable to inspect transcript snapshot directory: ${He(L).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_DIRECTORY_FAILED"}),f=!1}if(!f){d(),k.clear(),A.clear();for(let L of[...fe.keys()])if(!Re.has(L)){if((X.get(L)??0)>0){Ze.add(L);continue}K(L),Ze.delete(L)}ue=void 0}return ue===void 0&&(M(),ue=$.mkdtempSync(Y.join(_i.tmpdir(),Qc)),qe+=1,J=setInterval(b,Math.floor(ps/2)),J.unref?.()),ue},"ensureTranscriptSnapshotDir"),pe=i((f,L,N)=>`${N}\0${f}\0${L}`,"transcriptSnapshotKey"),Se=i((f,L,N)=>`${N}\0${f}\0${L}`,"transcriptSourceKey"),W=i(f=>{if((X.get(f)??0)>0){Ze.add(f);return}try{$.rmSync(f,{force:!0}),Ze.delete(f),K(f)}catch(L){Ze.add(f),process.emitWarning(`Unable to remove transcript snapshot: ${He(L).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"removeTranscriptSnapshotFile"),me=i((f,L)=>{if(xe)throw new an("read_cancelled","Runtime history read cancelled because the Runtime is closing");let N=fe.get(f)??0;if(N+L>Tr)throw Ti();for(;te+L>Tr;){let q=k.keys().next().value;if(q===void 0)throw Ti();T(q)}fe.set(f,N+L),te+=L},"reserveTranscriptSnapshotBytes"),S=i(f=>{for(;fe.size>=Fi;){let L=k.keys().next().value;if(L===void 0)throw Ti();T(L)}fe.set(f,0);try{me(f,fs)}catch(L){throw K(f),L}},"reserveTranscriptSnapshotFile"),T=i(f=>{let L=k.get(f);if(L===void 0)return;k.delete(f);let N=Se(L.sessionId,L.sourceRevision,L.view);A.get(N)===L.revision&&A.delete(N),W(L.filePath)},"removeTranscriptSnapshot"),F=i(()=>{let f=Date.now();for(let[L,N]of k)N.expiresAt<=f&&T(L)},"pruneExpiredTranscriptSnapshots"),D=i(()=>{for(let f of Ze)W(f)},"retryDeferredTranscriptSnapshotCleanup"),j=i(f=>{X.set(f,(X.get(f)??0)+1);let L=!1;return()=>{if(L)return;L=!0;let N=(X.get(f)??1)-1;if(N>0){X.set(f,N);return}X.delete(f),Ze.has(f)&&W(f)}},"acquireTranscriptSnapshotReader"),V=i(async(f,L,N)=>{let q=j(f.filePath),U;try{U=G()}catch(Ie){throw q(),Ie}let Z=B(Promise.resolve().then(N)),ce=i(()=>{q(),U?.()},"releaseResources");Z.then(ce,ce);try{return await An(()=>Z,L)}catch(Ie){if(Hw(Ie)){let Ee=[...k.entries()].find(([,_e])=>_e.filePath===f.filePath);Ee!==void 0&&T(Ee[0])}throw Ie}},"readTranscriptSnapshot"),re=i(async(f,L,N)=>{if(L.conversation===void 0)throw Pe("Conversation snapshot metadata is unavailable");let q;try{q=await t.storage.readConversationPageBoundary(f,Te(N))}catch(U){throw U instanceof an&&U.code==="data_changed"?Pe(U.message):U}if(q===null)throw Pe("Session moved or was removed; request a fresh boundary");if(u.assertCachedIdentity(f,q.admission),q.boundaryRevision!==L.conversation.boundaryRevision)throw T(pe(f,L.revision,"conversation")),Pe("Conversation history changed; request a fresh boundary")},"assertConversationSnapshotCurrent"),Q=i(async(f,L)=>{Te(L);let N=C.get(f);if(N===void 0){let q=new AbortController,U=B(u.captureRequired(f,{signal:q.signal}));N={controller:q,promise:U,waiters:0,settled:!1},C.set(f,N);let Z=N,ce=i(()=>{Z.settled=!0,C.get(f)===Z&&C.delete(f)},"settle");U.then(ce,ce)}N.waiters+=1;try{return await An(()=>N.promise,L)}finally{N.waiters-=1,N.waiters===0&&!N.settled&&(C.get(f)===N&&C.delete(f),N.controller.abort())}},"readSessionCaptureOnce"),oe=i(async(f,L)=>{for(let N=0;N<=Zc.length;N+=1)try{return await Q(f,L)}catch(q){if(!(q instanceof an)||q.code!=="data_changed")throw q;let U=Zc[N];if(U===void 0)throw Pe(q.message);await An(()=>new Promise(Z=>setTimeout(Z,U)),L)}throw new Error("unreachable session capture retry state")},"readSessionCapture"),ye=i(async(f,L,N,q,U,Z="",ce)=>{if(xe)throw new an("read_cancelled","Runtime history read cancelled because the Runtime is closing");F();let Ie=ce===void 0?0:Buffer.byteLength(JSON.stringify(ce),"utf8"),Ee=we(),_e=qe,Ce=Y.join(Ee,`${Qe()}.entries`),Be=G(),he=fs+Ie;try{for(let Ue=0;Ue<L.length;Ue+=1)if(Ue>0&&Ue%256===0&&await Yt(q),Te(q),he+=Buffer.byteLength(JSON.stringify(L[Ue]),"utf8"),he>Tr)throw Ti()}catch(Ue){throw Be(),Ue}try{S(Ce);let Ue=he-fs;Ue>0&&me(Ce,Ue)}catch(Ue){throw K(Ce),Be(),Ue}Re.add(Ce);let sn=B((async()=>{let Ue=[],vn=It("sha256");vn.update(U==="transcript"?"kodax-transcript-entries-v1\0":"kodax-conversation-history-v1\0"),Z.length>0&&(vn.update(`${Buffer.byteLength(Z,"utf8")}:`),vn.update(Z));let Ks=await $.promises.open(Ce,"wx"),Us=0,xt=[],ar=0,Xs=i(async()=>{if(ar===0)return;let tt=xt.length===1?xt[0]:Buffer.concat(xt,ar);xt=[],ar=0,await Lh(Ks,tt),Te(q)},"flushPendingWrites");try{for(let tt=0;tt<L.length;tt+=1){tt>0&&tt%256===0&&await Yt(q),Te(q);let Ws=L[tt],Hn=Buffer.from(JSON.stringify(Ws),"utf8");vn.update(`${Hn.length}:`),vn.update(Hn);let zs=[];for(let $r=0;$r<Hn.length;$r+=Ar)zs.push(It("sha256").update(Hn.subarray($r,Math.min(Hn.length,$r+Ar))).digest("hex"));Ue.push({offset:Us,byteLength:Hn.length,chunkDigests:zs,...Mh(Ws)}),Us+=Hn.length,xt.push(Hn),ar+=Hn.length,(xt.length>=nR||ar>=tR)&&await Xs()}await Xs()}finally{await Ks.close()}Te(q);let lm=U==="conversation"&&ce!==void 0?lo({sourceRevision:ce.sourceRevision,status:ce.status,issues:ce.issues,entries:L}):`sha256:${vn.digest("hex")}`;return{entries:Ue,revision:lm}})());sn.then(()=>{Re.delete(Ce),Be()},()=>{Re.delete(Ce),Be()});let nn;try{nn=await An(()=>sn,q),Te(q)}catch(Ue){throw sn.then(()=>W(Ce),vn=>{vn!==Ue&&!Bi(Ue)&&!Bi(vn)&&process.emitWarning(`Transcript snapshot materialization failed after its caller stopped waiting: ${He(vn).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_BACKGROUND_FAILED"}),W(Ce)}),jw(Ue,xe)}let{entries:Ge,revision:Dn}=nn;if(xe)throw W(Ce),new an("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(_e!==qe||!$.existsSync(Ce))throw W(Ce),Pe("Transcript snapshot directory changed; request a fresh boundary");let Hr=pe(f,Dn,U);for(T(Hr),k.set(Hr,{sessionId:f,view:U,revision:Dn,sourceRevision:N,filePath:Ce,entries:Ge,...ce!==void 0?{conversation:ce}:{},expiresAt:Date.now()+ps}),A.set(Se(f,N,U),Dn),b();k.size>eR;){let Ue=k.keys().next().value;if(Ue===void 0)break;T(Ue)}return Dn},"materializeTranscriptSnapshot"),be=i((f,L,N="transcript")=>{let q=pe(f,L,N),U=k.get(q);if(U!==void 0){if(U.expiresAt<=Date.now()){T(q);return}if(!$.existsSync(U.filePath)){T(q);return}return k.delete(q),k.set(q,U),{revision:U.revision,view:U.view,sourceRevision:U.sourceRevision,filePath:U.filePath,entries:U.entries,...U.conversation!==void 0?{conversation:U.conversation}:{}}}},"getTranscriptSnapshot"),Je=i(async(f,L,N,q,U="transcript",Z="",ce)=>{Te(q),F();let Ie=Se(f,N,U),Ee=A.get(Ie);if(Ee!==void 0&&be(f,Ee,U)!==void 0)return Ee;let _e=O.get(Ie);if(_e===void 0){let Ce=new AbortController,Be=xn({signal:Ce.signal}),he=ye(f,L,N,Be,U,Z,ce);_e={controller:Ce,promise:he,waiters:0,settled:!1},O.set(Ie,_e);let sn=_e,nn=i(()=>{sn.settled=!0,O.get(Ie)===sn&&O.delete(Ie)},"settle");he.then(nn,nn)}_e.waiters+=1;try{return await An(()=>_e.promise,q)}finally{_e.waiters-=1,_e.waiters===0&&!_e.settled&&(O.get(Ie)===_e&&O.delete(Ie),_e.controller.abort())}},"rememberTranscriptSnapshot"),ne=i(async(f,L)=>{Te(L);let N=r.currentSessionSeq(f),q=ee.get(f)??0,U=H.get(f);if(U!==void 0&&(U.sessionSeq!==N||U.sourceGeneration!==q)&&(H.delete(f),U=void 0),U===void 0){let Z=new AbortController,ce=xn({signal:Z.signal}),Ie=B((async()=>{let Ce=await oe(f,ce),Be=Ce.transcript.lineage??aR(f,Ce.sourceRevision,Ce.transcript.messages),he=Ce.transcript.lineage===void 0?Be.entries.flatMap(nn=>nn.type==="message"?[{entryId:nn.id,parentId:nn.parentId,logicalId:nn.logicalId??nn.id,...nn.sourceEntryId===void 0?{}:{sourceEntryId:nn.sourceEntryId},timestamp:nn.timestamp,type:"message",message:nn.message,active:!0}]:[]):Ce.transcript.transcriptEntries,sn=await Je(f,he,Ce.sourceRevision,ce);return{capture:Ce,revision:sn,lineage:Be,transcriptEntries:he}})());U={controller:Z,sessionSeq:N,sourceGeneration:q,promise:Ie,waiters:0,settled:!1},H.set(f,U);let Ee=U,_e=i(()=>{Ee.settled=!0,H.get(f)===Ee&&H.delete(f)},"settle");Ie.then(_e,_e)}U.waiters+=1;try{return await An(()=>U.promise,L)}finally{U.waiters-=1,U.waiters===0&&!U.settled&&(H.get(f)===U&&H.delete(f),U.controller.abort())}},"readMaterializedSessionCapture"),Oe=i(f=>{ee.set(f,(ee.get(f)??0)+1),H.delete(f)},"invalidateMaterializedSessionCapture"),nt=i(()=>{if(!ze){for(let f of[...k.keys()])T(f);ue!==void 0&&($.rmSync(ue,{recursive:!0,force:!0}),ue=void 0),te=0,fe.clear(),A.clear(),Re.clear(),ke=0,X.clear(),Ze.clear(),ze=!0}},"finalizeTranscriptSnapshots"),Fr=i((f=1)=>{try{nt()}catch(L){if(process.emitWarning(`Deferred transcript snapshot cleanup failed: ${He(L).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"}),f>=3)return;setTimeout(()=>Fr(f+1),f*100).unref?.()}},"retryDeferredTranscriptSnapshotFinalization"),Bs=i(()=>{xe=!0,d();for(let f of C.values())f.controller.abort();C.clear();for(let f of O.values())f.controller.abort();O.clear();for(let f of H.values())f.controller.abort();H.clear(),ee.clear()},"beginCloseTranscriptSnapshots");g(Bs,i(async()=>{Bs();let f=Promise.allSettled([...Fe]),L=!1;if(await Promise.race([f.then(()=>{L=!0}),new Promise(N=>{setTimeout(N,rR).unref?.()})]),L){nt();return}process.emitWarning("Runtime closed while transcript snapshot I/O was still pending; temporary files will be cleaned after the I/O settles.",{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLOSE_DEFERRED"}),f.then(()=>Fr())},"disposeTranscriptSnapshots"));let um=i(async(f,L)=>{let N=xn(L);for(let q=0;q<Yc;q+=1){let U=r.currentSessionSeq(f),[Z,ce,Ie]=await Promise.all([ne(f,N),An(()=>l(f),N),An(()=>v(f),N)]),Ee=await An(()=>c.read(f),N),{capture:_e,revision:Ce}=Z;Te(N);let Be=r.currentSessionSeq(f);if(U!==Be)continue;let he=be(f,Ce);if(he===void 0)throw Pe("Transcript snapshot is no longer retained; request a fresh boundary");let sn=await V(he,N,()=>Is(he,N));return{runtimeId:e.runtimeId,cursor:Be,transcriptRevision:Ce,session:P(f,_e.data),transcript:sn,settings:Ee,runs:ce,pendingPermissions:Ie,live:r.projectSession(f)}}throw Pe(`Session ${f} changed continuously while taking a snapshot`)},"captureObservationSnapshot"),cm=i(async f=>{let L=xn(f);for(let N=0;N<Yc;N+=1){let q=r.currentSessionSeq(f.sessionId),[U,Z]=await Promise.all([oe(f.sessionId,L),An(()=>f.runId===void 0?m(f.sessionId):R(f.runId).then(Ie=>Ie===void 0?[]:[Ie]),L)]);Te(L);let ce=r.currentSessionSeq(f.sessionId);if(q===ce)return{runtimeId:e.runtimeId,cursor:ce,transcriptRevision:Ph(U.transcript),runs:Z.filter(Ie=>Ie.sessionId===f.sessionId)}}throw Pe(`Session ${f.sessionId} changed continuously while taking a diagnostic snapshot`)},"captureDiagnosticBoundary"),Pt=i((f,L)=>x.run(f,async()=>{s();let N=await u.loadExecutable(f);try{return await p(f,"mutate",()=>L(N))}finally{Oe(f)}}),"mutateActiveSession");return{async create(f={}){s(),u.assertCreate(f);let L=f.sessionId??await no();if(h.has(L))throw Object.assign(new Error(`Session already exists: ${L}`),{code:"conflict"});h.add(L);try{if(f.sessionId!==void 0&&await t.loadSession(L)!==null)throw Object.assign(new Error(`Session already exists: ${L}`),{code:"conflict"});let N=f.projectPath?Y.resolve(f.projectPath):void 0,q=f.gitRoot?Y.resolve(f.gitRoot):N,U=hh(f,N,q),Z={messages:[],title:f.title??"",gitRoot:q??"",...f.tag!==void 0?{tag:f.tag}:{},...U!==void 0?{runtimeInfo:U}:{},scope:"user"};f.sessionId===void 0?await t.storage.createGenerated(L,Z):await t.storage.save(L,Z);let ce=P(L,Z,new Date().toISOString());return r.emit("session.created",ce,{sessionId:L,runId:L}),ce}finally{h.delete(L)}},async load(f,L){s();let N=xn(L),q=await u.loadRequired(f,Te(N));return P(f,q)},async list(f){return s(),u.assertFilter(f),(await t.listSessions(f)).filter(u.admitsSummary).map(zl)},async status(f){s(),await u.loadRequired(f);let L=await l(f),N=sm(L);return{sessionId:f,runtimeId:e.runtimeId,observedAt:new Date().toISOString(),phase:N?.phase??"idle",...N!==void 0?{runId:N.runId}:{}}},async transcript(f,L){s();let N=xn(L);return structuredClone((await oe(f,N)).transcript)},async transcriptPage(f,L){s();let N=xn(L);Te(N);let q=f.cursor===void 0?void 0:Dr(f.cursor).revision;if(q!==void 0){let _e=be(f.sessionId,q);if(_e===void 0)throw Pe("Transcript snapshot is no longer retained; request a fresh boundary");return V(_e,N,()=>Is(_e,N,f.cursor,f.limit))}let U=await ne(f.sessionId,N),ce=U.capture.transcript,Ie=U.revision,Ee=be(f.sessionId,Ie);if(Ee===void 0)throw Pe("Transcript snapshot is no longer retained; request a fresh boundary");return V(Ee,N,()=>Is(Ee,N,void 0,f.limit))},async transcriptEntryChunk(f,L){s();let N=xn(L);Te(N);let q=be(f.sessionId,f.revision);if(q===void 0)throw Pe("Transcript snapshot is no longer retained; request a fresh boundary");return V(q,N,()=>_h(f,q,N))},async transcriptSearch(f,L){s(),wa(f.query);let N=xn(L),q=await ne(f.sessionId,N),Z=q.capture.transcript,ce=q.revision;await Yt(N);let Ie=q.lineage,Ee=await va(Ie,{query:f.query,limit:f.limit,role:f.role,scope:f.scope},{revision:ce,checkpoint(){Te(N)},yieldControl(){return Yt(N)}});Te(N);let _e=new Map;for(let Be=0;Be<q.transcriptEntries.length;Be+=1){Be%256===0&&await Yt(N);let he=q.transcriptEntries[Be]?.entryId;he!==void 0&&_e.set(he,Be)}Te(N);let Ce=Ee.hits.flatMap(Be=>{let he=_e.get(Be.entryId);return he===void 0?[]:[{...Be,entryIndex:he}]});return Te(N),{revision:ce,hits:Ce}},async conversation(f,L){s();let N=xn(L),q=await oe(f,N);Te(N);let U=fo(q,()=>Te(N));await Yt(N);let Z=Th(U);Te(N);let ce=structuredClone({...U,revision:Z});return Te(N),ce},async conversationPage(f,L){s();let N=xn(L);Te(N);let q=f.limit??Nl;if(!Number.isSafeInteger(q)||q<=0)throw new Error("transcript page limit must be a positive safe integer");let U=Math.min(q,Ll),Z=f.cursor===void 0?void 0:Dr(f.cursor);if(Z===void 0||Z.kind==="conversation_cache_page")try{let he=await t.storage.readConversationPageCache(f.sessionId,{...Z?.kind==="conversation_cache_page"?{expectedRevision:Z.revision,end:Z.end}:{},limit:U,maxPageBytes:kt,maxInlineEntryBytes:Li,reservedBytes:0,authorize:i(sn=>u.assertCachedIdentity(f.sessionId,sn),"authorize")},Te(N));if(he!==null)return I(he)}catch(he){throw he instanceof mo?Ki():he instanceof an&&he.code==="data_changed"?Pe(he.message):he}let ce=Z===void 0?void 0:Z.revision;if(ce!==void 0){let he=be(f.sessionId,ce,"conversation");if(he===void 0)throw Pe("Conversation snapshot is no longer retained; request a fresh boundary");return await re(f.sessionId,he,N),V(he,N,()=>vl(he,N,f.cursor,f.limit))}let Ie=await oe(f.sessionId,N);Te(N);let Ee=fo(Ie,()=>Te(N));if(Ie.transcript.lineage!==void 0)try{await t.storage.prepareConversationPageCache(f.sessionId,Ee,Ie.transcript.lineage,Ie.data.runtimeInfo,Ie.boundaryRevision,Ie.sourceRevisionState,Te(N));let he=await t.storage.readConversationPageCache(f.sessionId,{limit:U,maxPageBytes:kt,maxInlineEntryBytes:Li,reservedBytes:0,authorize:i(sn=>u.assertCachedIdentity(f.sessionId,sn),"authorize")},Te(N));if(he!==null)return I(he)}catch(he){if(he instanceof mo)throw Ki();if(he instanceof an&&he.code==="data_changed")throw Pe(he.message);process.emitWarning(`Unable to prepare bounded Conversation pages: ${He(he).message}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_FAILED"})}let _e={sourceRevision:Ee.sourceRevision,status:Ee.status,issues:Ee.issues,boundaryRevision:Ie.boundaryRevision},Ce=await Je(f.sessionId,Ee.entries,Ee.sourceRevision,N,"conversation",Ah(Ee),_e),Be=be(f.sessionId,Ce,"conversation");if(Be===void 0)throw Pe("Conversation snapshot is no longer retained; request a fresh boundary");return V(Be,N,()=>vl(Be,N,void 0,f.limit))},async conversationEntryChunk(f,L){s();let N=xn(L);if(Te(N),!Number.isSafeInteger(f.entryIndex)||f.entryIndex<0)throw new Error(`Transcript entry index is out of range: ${f.entryIndex}`);let q=be(f.sessionId,f.revision,"conversation");if(q!==void 0)return await re(f.sessionId,q,N),V(q,N,()=>Oh(f,q,N));let U=0;if(f.cursor!==void 0){let Z=Dr(f.cursor);if(Z.kind!=="entry"||Z.view!=="conversation"||Z.revision!==f.revision||Z.entryIndex!==f.entryIndex)throw Pe("Conversation entry cursor is stale");U=Z.offset}try{let Z=await t.storage.readConversationPageCacheChunk(f.sessionId,{revision:f.revision,entryIndex:f.entryIndex,offset:U,authorize:i(ce=>u.assertCachedIdentity(f.sessionId,ce),"authorize")},Te(N));if(Z!==null){let ce=Z.nextOffset!==void 0;return{revision:Z.revision,entryIndex:Z.entryIndex,...Z.boundaryId!==void 0?{boundaryId:Z.boundaryId}:{},encoding:"base64-json",data:Z.data.toString("base64"),hasMore:ce,...Z.nextOffset!==void 0?{nextCursor:qi({kind:"entry",view:"conversation",revision:Z.revision,entryIndex:Z.entryIndex,offset:Z.nextOffset})}:{}}}}catch(Z){throw Z instanceof an&&Z.code==="data_changed"?Pe(Z.message):Z}throw Pe("Conversation snapshot is no longer retained; request a fresh boundary")},async observe(f,L,N){s();let q=[],U,Z=!1,ce=!1,Ie=!1,Ee=!1,_e,Ce,Be=new Promise(Ge=>{_e=Ge}),he=i((Ge,Dn)=>{Z||Ee||(Ee=!0,nn.close(),Ce?.close(),_e?.({code:"observation_invalidated",reason:Ge,runtimeId:e.runtimeId,message:Dn}))},"invalidate"),sn=i(Ge=>{if(!(Z||Ee)){if(U!==void 0&&Ge.seq<U){if(!ce)return;he("event_order",`Session observation event order regressed from ${U} to ${Ge.seq}.`);return}if(!(U!==void 0&&Ge.seq===U)){U=Ge.seq;try{L(Ge)}catch(Dn){ge({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${Ge.type}`,detail:He(Dn)}),he("delivery_failed",`Session observation listener failed while delivering ${Ge.type}; discard local state and resync.`)}}}},"deliver"),nn=r.service.subscribe({sessionId:f},Ge=>{if(ce)sn(Ge);else{if(q.length>=Zy){Ie=!0,he("event_overflow","Session observation handoff overflowed; acquire a fresh snapshot.");return}q.push(Ge)}});Ce=r.subscribeClose(()=>{he("runtime_changed","Runtime closed; discard the observation and resync after reconnecting.")});try{let Ge=await um(f,N);if(Ie)throw Pe("Session observation handoff overflowed; acquire a fresh snapshot");U=Ge.cursor;let Dn={snapshot:Ge,invalidated:Be,close(){Z||(Z=!0,q.length=0,nn.close(),Ce?.close())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(Z||Ee)){for(;q.length>0;){let Hr=q.splice(0).sort((Ue,vn)=>Ue.seq-vn.seq);for(let Ue of Hr)sn(Ue)}ce=!0}})),Dn}catch(Ge){throw Z=!0,nn.close(),Ce?.close(),Ge}},async diagnostics(f){s();let L=new Date().toISOString(),N=await cm(f);return Jy(e,f,N,L)},async fork(f){if(s(),f.selector!==void 0&&f.historyBoundary!==void 0)throw new Error("fork accepts either selector or historyBoundary, not both");let L=await u.loadRequired(f.sessionId),N;try{N=f.historyBoundary===void 0?await t.forkSession(f.sessionId,{...f.selector!==void 0?{selector:f.selector}:{},...f.newSessionId!==void 0?{sessionId:f.newSessionId}:{},...f.title!==void 0?{title:f.title}:{}}):await t.storage.fork(f.sessionId,f.historyBoundary.entryId,{...f.newSessionId!==void 0?{sessionId:f.newSessionId}:{},...f.title!==void 0?{title:f.title}:{},historyBoundary:{sourceRevision:f.historyBoundary.sourceRevision}})}catch(U){throw Ml(U)}if(!N&&f.historyBoundary!==void 0)return null;if(!N){let U=f.newSessionId??await no(),Z={...L,title:f.title??L.title,messages:L.messages.map(Uw),actorSnapshot:void 0};await t.storage.save(U,Z);let ce=P(U,Z);return r.emit("session.created",ce,{sessionId:U,runId:U}),ce}let q=P(N.sessionId,N.data);return r.emit("session.created",q,{sessionId:N.sessionId,runId:N.sessionId}),q},async getSettingsVersioned(f){return s(),await u.loadRequired(f),c.read(f)},async getSettings(f){return(await this.getSettingsVersioned(f)).value},async getAutoModeStats(f){s(),await u.loadRequired(f);let L=(await c.read(f)).value;if(pn(L.permissionMode)!=="auto")return;let N=y(f);return{engine:L.autoModeEngine??N?.engine??"llm",...L.autoModeClassifierModel!==void 0?{classifierModel:L.autoModeClassifierModel}:{},classifierHealth:N?.classifierHealth??"healthy",denials:N?.denials??oo(),breaker:N?.breaker??so()}},async updateSettings(f,L){return Pt(f,async N=>(await c.update(f,L,void 0,q=>Cs(N,q))).value)},async updateSettingsVersioned(f,L,N){return Pt(f,q=>c.update(f,L,N.expectedRevision,U=>Cs(q,U)))},async appendNotice(f){return Pt(f.sessionId,async()=>{let L=await t.appendClientNotice(f.sessionId,{content:f.content,...f.source!==void 0?{source:f.source}:{}});return L&&r.emit("session.notice.appended",{sessionId:f.sessionId,entry:L},{sessionId:f.sessionId,runId:f.sessionId}),L})},async rewind(f){return Pt(f.sessionId,async()=>{if(Qt(f.sessionId,a),f.selector!==void 0&&f.historyBoundary!==void 0)throw new Error("rewind accepts either selector or historyBoundary, not both");let L;try{L=f.historyBoundary===void 0?await t.rewindSession(f.sessionId,{...f.selector!==void 0?{selector:f.selector}:{}}):await t.storage.rewind(f.sessionId,f.historyBoundary.entryId,{historyBoundary:{sourceRevision:f.historyBoundary.sourceRevision}})}catch(q){throw Ml(q)}if(!L)return null;let N=P(f.sessionId,L);return r.emit("session.rewound",{sessionId:f.sessionId,selector:f.selector,session:N},{sessionId:f.sessionId,runId:f.sessionId}),N})},async setActiveEntry(f){return Pt(f.sessionId,async()=>{Qt(f.sessionId,a);let L=await t.setActiveEntry(f.sessionId,f.entryId);if(!L)return null;let N=P(f.sessionId,L);return r.emit("session.active_entry.updated",{sessionId:f.sessionId,entryId:f.entryId,session:N},{sessionId:f.sessionId,runId:f.sessionId}),N})},async compact(f){return Pt(f.sessionId,async L=>{Qt(f.sessionId,a);let N=Date.now(),q=L.lineage?.entries.filter(Z=>Z.type==="compaction").length??0;r.emit("context.compaction.started",{meta:{contextId:f.sessionId,contextKind:"root",contextRevision:q}},{sessionId:f.sessionId,runId:f.sessionId});let U=q;try{let Z=(await c.read(f.sessionId)).value,ce=await t.compactSession(f.sessionId,{...f.provider!==void 0?{provider:f.provider}:{},...f.model!==void 0?{model:f.model}:{},...f.customInstructions!==void 0?{customInstructions:f.customInstructions}:{},...f.contextWindow!==void 0?{contextWindow:f.contextWindow}:{},...(f.triggerPercent??Z.compactionTriggerPercent)!==void 0?{triggerPercent:f.triggerPercent??Z.compactionTriggerPercent}:{},...(f.triggerTokens??Z.compactionTriggerTokens)!==void 0?{triggerTokens:f.triggerTokens??Z.compactionTriggerTokens}:{}}),Ie=await t.loadSession(f.sessionId),Ee=Ie?P(f.sessionId,Ie):void 0;return U=Ie?.lineage?.entries.filter(_e=>_e.type==="compaction").length??q,r.emit("context.compaction.finished",{contextId:f.sessionId,contextKind:"root",contextRevision:U,source:"manual",tokensBefore:ce.tokensBefore,tokensAfter:ce.tokensAfter,committed:ce.compacted,elapsedMs:Date.now()-N,beforeRevision:q,afterRevision:U,...ce.report??{},...ce.reason!==void 0?{reason:ce.reason}:{}},{sessionId:f.sessionId,runId:f.sessionId}),ce.compacted&&r.emit("session.compacted",{sessionId:f.sessionId,result:{compacted:ce.compacted,tokensBefore:ce.tokensBefore,tokensAfter:ce.tokensAfter},...Ee!==void 0?{session:Ee}:{}},{sessionId:f.sessionId,runId:f.sessionId}),{...ce,...Ee!==void 0?{session:Ee}:{}}}finally{r.emit("context.compaction.ended",{meta:{contextId:f.sessionId,contextKind:"root",contextRevision:U}},{sessionId:f.sessionId,runId:f.sessionId})}})},async archive(f){await x.run(f,async()=>{s(),await u.loadRequired(f),Qt(f,a),await p(f,"archive",async L=>{if(!L)throw new Error(`Actor owner is unavailable for Session archive: ${f}`);if(!await t.storage.archiveOwned(f,L))throw new Error(`Session not found or not archived: ${f}`)}),Oe(f)})},async unarchive(f){await x.run(f,async()=>{s(),await u.loadRequired(f),Qt(f,a),await p(f,"unarchive",async L=>{if(!L)throw new Error(`Actor owner is unavailable for Session unarchive: ${f}`);if(!await t.storage.unarchiveOwned(f,L))throw new Error(`Session not found or not unarchived: ${f}`)}),Oe(f)})},async delete(f){await x.run(f,async()=>{s(),await u.loadRequired(f),Qt(f,a),await p(f,"delete",async L=>{if(!L)throw new Error(`Actor owner is unavailable for Session deletion: ${f}`);let N=(await t.listRunningSessions()).find(q=>q.sessionId===f);N&&_l(f,{error:{code:"session_running",runningProcess:{pid:N.pid,startedAt:N.startedAt}}});try{await t.storage.deleteOwned(f,L)}catch(q){if(ae(q)&&(q.code==="actor_owner_conflict"||q.code==="actor_owner_unknown"))throw q;ge({source:"runtime.sessions",level:"error",message:"Owned Session deletion failed.",detail:{sessionId:f,error:q}}),_l(f,{error:{code:"delete_failed"}})}}),Oe(f),c.release(f),E(f)})}}}i(vR,"createRuntimeSessionService");function SR(e){let n=new Map,t=new Map,r=new Map,o=new Map,s=new Map,a=i(d=>{let b=e.runs.get(d);if(!b)throw new Error(`Runtime run not found: ${d}`);return b},"getRecord"),c=i(async(d,b)=>{if(Me(d.status.phase)||b?.ownedByRuntime===!0)return d.status;let M=d.owner??b?.observedOwner,K=b===void 0?d.status:on(b);if(M===void 0)return{...K,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let B=await pr(M);if(B==="alive")return d.status;if(B==="unknown")return{...K,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let G=Ul(d.status,e.bus,e.persistence);return e.runs.set(G.runId,Mi(G,!1,M)),G},"observePersistedRun"),l=i(async(d,b)=>{if(b?.ownedByRuntime===!0)return on(b);if(Me(d.status.phase))return d.status;let M=d.owner??b?.observedOwner,K=b===void 0?d.status:on(b);if(M===void 0)return{...K,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let B=await pr(M);return B==="alive"?d.status:{...K,phase:"unknown",stage:"unknown",error:B==="dead"?"owner_recovery_required":"owner_liveness_unconfirmed"}},"inspectPersistedRun"),m=i(d=>{n.get(d.sessionId)===d.runId&&n.delete(d.sessionId)},"releaseActiveRun"),R=i(d=>{t.get(d.runId)?.(),t.delete(d.runId)},"releaseActiveQueueRoute"),v=i(d=>{d.releaseAbortSignalSubscription?.(),d.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),y=i(d=>{d.actorSession===void 0||t.has(d.runId)||t.set(d.runId,ia(Ji(d.sessionId,"/root")))},"registerActiveQueueRoute"),x=i((d,b)=>{d.start?.resolve(b),d.start=void 0,delete d.providerCredential},"resolveRunStart"),p=i((d,b)=>(d.settlementFinished===!0&&d.unconfirmedResult===void 0||(d.settlementFinished=!0,delete d.unconfirmedResult,delete d.unconfirmedFailure,v(d),e.permissions.rejectForRun(d.runId,"runtime run ended"),e.userInputs.rejectForRun(d.runId,"runtime run ended"),d.start?.options.guardrails?.find(er)?.clearAllowedCalls(),x(d,b),R(d),m(d),yw(e.runs),Fe(d.sessionId)),b),"finishRun"),E=i((d,b)=>d.settlementFinished===!0?(b.phase==="unknown"&&b.result!==void 0&&(d.unconfirmedResult=b),b):(d.settlementFinished=!0,d.unconfirmedResult=b,b.phase==="unknown"&&d.phase!=="unknown"&&(d.phase="unknown",d.stage="unknown",d.stageChangedAt=new Date().toISOString(),d.error=b.error?.message??"Actor settlement persistence is unknown.",ue(d)),v(d),e.permissions.rejectForRun(d.runId,"runtime run state is unknown"),e.userInputs.rejectForRun(d.runId,"runtime run state is unknown"),d.start?.options.guardrails?.find(er)?.clearAllowedCalls(),x(d,b),R(d),b),"finishUnconfirmedRun"),u=i(d=>{let b=d.actorSession,M=d.actorTurnBaseline;return b===void 0||M===void 0?[]:b.rootControl().list().actors.flatMap(K=>K.path!=="/root"&&K.currentTurnId!==void 0&&!M.has(K.currentTurnId)?[K.currentTurnId]:[])},"activeManagedActorTurnIds"),g=i((d,b)=>{let M=d.actorSession,K=d.actorTurnBaseline;if(d.mode!=="managed_task"||d.stop===void 0||M===void 0||K===void 0)return Promise.resolve();let G=(d.actorCancellation??Promise.resolve()).then(()=>M.quiesce(b,K)).catch(we=>{ge({source:"runtime.run.actor-cancellation",level:"error",message:`Failed to cooperatively cancel Actor descendants for Runtime run ${d.runId}.`,detail:we})});return d.actorCancellation=G,G},"requestManagedActorCancellation"),h=i(async d=>{let b=d.actorFinalizationAbortController??=new AbortController,M=i(()=>({state:"unknown",code:"actor_settlement_not_persisted",message:"Actor finalization could not be confirmed within the bounded grace period."}),"finalizationTimedOut"),K=new AbortController,B,G=Number.POSITIVE_INFINITY,we,pe=new Promise(S=>{we=S}),Se=i(S=>{let T=Date.now()+S;T>=G||(B!==void 0&&clearTimeout(B),G=T,B=setTimeout(()=>{K.abort(new Error("Actor finalization grace expired")),we?.(M())},S),B.unref?.())},"scheduleFinalizationTimer"),W=i(()=>{Se(iR)},"startCancellationTimer");Se(oR),b.signal.addEventListener("abort",W,{once:!0}),(b.signal.aborted||d.stop!==void 0||e.isClosed()||d.running?.aborted===!0||d.abortController?.signal.aborted===!0||d.start?.options.abortSignal?.aborted===!0)&&W();let me=i(async()=>{for(;;){if(K.signal.aborted)return M();let S=d.actorSession;if(S===void 0)return{state:"healthy"};if(d.stop!==void 0&&d.actorTurnBaseline!==void 0&&(await g(d,d.stop.reason),K.signal.aborted))return M();let T=S.health();if(T.state==="recovering"){let ye=e.waitForActorHealthChange(d.sessionId),be,Je=new Promise(Oe=>{be=Oe}),ne=i(()=>be?.(),"handleFinalizationAbort");K.signal.addEventListener("abort",ne,{once:!0});try{await Promise.race([ye.promise,Je])}finally{K.signal.removeEventListener("abort",ne),be=void 0,ye.close()}continue}if(T.state==="unknown")return T;let F=S.rootControl(),D=F.list(),j=d.stop!==void 0&&d.actorTurnBaseline!==void 0?u(d).length:D.activeNonRootTurns;if(j>0){if(d.stop?.state!=="unknown"){let nt=d.phase!=="waiting_agent",Fr=d.activeSubtaskCount!==j;nt&&(d.phase="waiting_agent",d.stage="waiting_agent",d.stageChangedAt=new Date().toISOString()),d.activeSubtaskCount=j,(nt||Fr)&&ue(d)}let ye=F.eventSnapshot().at(-1)?.sequence??0;if(d.stop!==void 0&&d.actorTurnBaseline!==void 0?u(d).length===0:F.list().activeNonRootTurns===0)continue;let be=e.waitForActorHealthChange(d.sessionId),Je,ne=new Promise(nt=>{Je=nt}),Oe=i(()=>Je?.(),"handleCancellation");b.signal.aborted?Oe():b.signal.addEventListener("abort",Oe,{once:!0});try{await Promise.race([F.wait(ye,void 0,K.signal),be.promise,ne])}finally{b.signal.removeEventListener("abort",Oe),Je=void 0,be.close()}continue}let V=D.admissionRevision;await Promise.resolve();let re=S.health();if(re.state==="recovering")continue;let Q=F.list();if(!((d.stop!==void 0&&d.actorTurnBaseline!==void 0?u(d).length:Q.activeNonRootTurns)>0)&&!(V!==void 0&&Q.admissionRevision!==V))return re}},"finalize");try{return await Promise.race([me(),pe])}finally{b.signal.removeEventListener("abort",W),B!==void 0&&clearTimeout(B),K.abort()}},"awaitActorFinalization"),P=i((d,b)=>({runId:d.runId,sessionId:d.sessionId,phase:"unknown",...b!==void 0?{result:b}:{},error:new Error(d.lifecycleError?.message??d.error??"Actor settlement persistence is unknown."),...d.stop!==void 0?{stop:d.stop}:{}}),"unknownActorSettlementResult"),I=i((d,b)=>d.terminalEmitted?p(d,b):E(d,b),"finishAccordingToTerminalFact"),k=i((d,b,M)=>{d.terminalEmitted||d.executorTerminalSignal!==void 0||(d.interruptInputOpen=!1,d.executorTerminalSignal={signal:b,...M!==void 0?{error:M}:{},...b==="failed"?{failure:A(d,M??new Error("Runtime executor reported failure"))}:{},interruptedAtSignal:d.running?.aborted===!0||d.start?.options.abortSignal?.aborted===!0||d.abortController?.signal.aborted===!0},setImmediate(()=>{(async()=>{if(d.settlementFinished===!0)return;let K=d.executorTerminalSignal;if(K===void 0)return;if((await h(d)).state==="unknown"){E(d,P(d));return}if(K.signal==="failed"){p(d,C(d,K.failure??A(d,K.error??new Error("Runtime executor reported failure"))));return}d.terminalEmitted||wt(e.bus,e.persistence,d,K.interruptedAtSignal?"interrupted":"completed"),p(d,{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}})})().catch(K=>{ge({source:"runtime.run.finalization",level:"error",message:`Failed to settle Runtime run ${d.runId} after its executor terminal signal.`,detail:K})})}))},"settleFromExecutorSignal"),A=i((d,b)=>{if(d.mode==="managed_task"&&d.stop!==void 0&&d.abortController?.signal.aborted===!0&&b instanceof Error&&b.name==="AbortError")return{phase:"interrupted",terminal:{code:"interrupted",effectOutcome:"unknown",message:d.stop.reason}};let K=am(b,d),B=Sw(b),G=new Error(K.message);return G.name=K.name,{phase:B.phase,error:G,terminal:B.terminal}},"captureRunFailureFact"),C=i((d,b)=>{let M=d.terminalEmitted?d.phase:b.phase;return d.terminalEmitted||(b.error===void 0?delete d.error:d.error=b.error.message),wt(e.bus,e.persistence,d,M,b.terminal),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...b.error!==void 0?{error:b.error}:{},...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}}},"applyRunFailureFact"),O=i((d,b)=>C(d,A(d,b)),"failedRunResult"),H=i(d=>{let b=d.actorSession;return b===void 0||b.health().state==="healthy"&&(d.stop!==void 0&&d.actorTurnBaseline!==void 0?u(d).length===0:b.rootControl().list().activeNonRootTurns===0)},"canApplyExecutorTerminalSignal"),ee=i((d,b,M)=>{let K=d.executorTerminalSignal;if(K!==void 0&&!d.terminalEmitted&&H(d))return K.signal==="failed"?C(d,K.failure??A(d,K.error??new Error("Runtime executor reported failure"))):(wt(e.bus,e.persistence,d,K.interruptedAtSignal?"interrupted":"completed"),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}});if(K!==void 0&&d.terminalEmitted)return{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}};let B=d.phase==="queued";B&&tl(s,d),delete d.actorHealthBaseState;let G=new Date().toISOString();if(d.stop??={requestedAt:G,state:B?"confirmed":"unknown",outcome:B?"cancelled":"unknown",reason:b,...B?{resolvedAt:G}:{}},v(d),d.running?.abort(new Error(b)),d.abortController?.abort(new Error(b)),g(d,b),d.actorFinalizationAbortController?.abort(new Error(b)),e.permissions.rejectForRun(d.runId,b),e.userInputs.rejectForRun(d.runId,b),d.start?.options.guardrails?.find(er)?.clearAllowedCalls(),!B){d.interruptInputOpen=!1,As(d),d.phase="unknown",d.stage="unknown",d.stageChangedAt=G,d.error="stop_outcome_unconfirmed",d.lifecycleError?.retryable!==!1&&delete d.lifecycleError,ue(d);let pe={runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.stop!==void 0?{stop:d.stop}:{}};return M||(x(d,pe),R(d),m(d)),pe}wt(e.bus,e.persistence,d,"cancelled",{code:"cancelled",effectOutcome:"none",message:b});let we={runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.stop!==void 0?{stop:d.stop}:{}};return x(d,we),R(d),m(d),M&&!e.isClosed()&&Fe(d.sessionId),we},"cancelRun"),te=i(d=>{let b=d.unconfirmedResult;if(b===void 0||d.terminalEmitted||!H(d))return;let M=b.result;if(M!==void 0){let B=M.interrupted?"interrupted":M.success?"completed":"failed",G=!M.success&&!M.interrupted&&M.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...M.signalReason!==void 0?{message:M.signalReason}:{}}:void 0;wt(e.bus,e.persistence,d,B,G),p(d,{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:M,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}});return}let K=d.unconfirmedFailure;if(K!==void 0){p(d,C(d,K));return}d.executorTerminalSignal!==void 0&&p(d,ee(d,d.stop?.reason??"runtime run recovered",!1))},"finishRecoveredUnconfirmedRun"),fe=i(d=>{if(!d.start||e.isClosed()){ee(d,"runtime closed",!1);return}d.phase="running",d.stage="executing",d.stageChangedAt=new Date().toISOString(),delete d.activeSubtaskCount,d.interruptInputOpen=d.actorSession!==void 0,d.queuedAt=void 0,d.runningAt=new Date().toISOString(),d.mode==="managed_task"&&d.actorSession!==void 0&&(d.actorTurnBaseline=new Set(d.actorSession.rootControl().list().actors.flatMap(W=>W.currentTurnId===void 0?[]:[W.currentTurnId]))),n.set(d.sessionId,d.runId);let b=on(d),M=Jn(e.bus,e.persistence,d,b);if(M===void 0)throw m(d),new Error(`Failed to persist running Runtime run: ${d.runId}`);if(M!==b)throw vt(d,M),m(d),Wn(`Runtime run already exists: ${d.runId}`,d.sessionOrder);e.bus.emit("run.started",b,{sessionId:d.sessionId,runId:d.runId});let K=Rh({bus:e.bus,original:d.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:d,onExecutorTerminal:i((W,me)=>k(d,W,me),"onExecutorTerminal"),onPhase:i(W=>{if(d.terminalEmitted||d.executorTerminalSignal!==void 0||d.phase==="unknown"||d.stop?.state==="unknown")return;let me=W==="running"?"executing":W==="waiting_agent"?"waiting_agent":W==="recovering"?"recovering":void 0,S=d.actorHealthBaseState;if(S!==void 0){S.phase=W,me!==void 0&&(S.stage=me);return}d.phase===W&&(me===void 0||d.stage===me)||(d.phase=W,me!==void 0&&d.stage!==me&&(d.stage=me,d.stageChangedAt=new Date().toISOString()),ue(d))},"onPhase"),onStage:i((W,me)=>{if(d.terminalEmitted||d.executorTerminalSignal!==void 0||d.phase==="unknown"||d.stop?.state==="unknown")return;let S=d.actorHealthBaseState;if(S!==void 0){S.stage=W,me===void 0?delete d.activeSubtaskCount:d.activeSubtaskCount=me;return}let T=d.activeSubtaskCount!==me;d.stage===W&&!T||(d.stage!==W&&(d.stage=W,d.stageChangedAt=new Date().toISOString()),me===void 0?delete d.activeSubtaskCount:d.activeSubtaskCount=me,ue(d))},"onStage"),onMidTurnUserMessages:i((W,me)=>qe(d,W,me),"onMidTurnUserMessages")}),B=xR({agentPlane:e.agentPlane,defaultConfigHome:e.defaultConfigHome,events:K,model:d.model,options:d.start.options,provider:d.provider,record:d,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:d.sessionId,runId:d.runId,provider:d.provider,...d.model!==void 0?{model:d.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}:{},...d.permissionMode!==void 0?{permissionMode:d.permissionMode}:{},...d.autoModeEngine!==void 0?{autoModeEngine:d.autoModeEngine}:{},...d.autoModeClassifierModel!==void 0?{autoModeClassifierModel:d.autoModeClassifierModel}:{},...d.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:d.autoModeTimeoutMs}:{},...d.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:d.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}:{},...B.context?.shellExecution!==void 0?{shellKind:B.context.shellExecution.shell.kind,shellExecutionFingerprint:to(B.context.shellExecution)}:{}},{sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}}),d.mode==="managed_task"){let W=new AbortController;d.abortController=W;let me=B.abortSignal,S=i(()=>{d.releaseAbortSignalSubscription=void 0,d.interruptInputOpen=!1;let D=me?.reason;ee(d,D instanceof Error?D.message:typeof D=="string"&&D.trim().length>0?D:"external abort requested",!0)},"handleUpstreamAbort");me?.aborted&&S();let T=i(()=>Aa({...B,abortSignal:W.signal},d.start.prompt),"managedOperation"),F=d.providerCredential!==void 0?Wi(d.provider,d.providerCredential,T):T();me!==void 0&&!me.aborted?(me.addEventListener("abort",S,{once:!0}),d.releaseAbortSignalSubscription=()=>{me.removeEventListener("abort",S)}):me?.aborted&&!W.signal.aborted&&S(),y(d),F.then(async D=>{let j=d.terminalEmitted?d.phase:D.interrupted?"interrupted":D.success?"completed":"failed",V=!D.success&&!D.interrupted&&D.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...D.signalReason!==void 0?{message:D.signalReason}:{}}:void 0;return(await h(d)).state==="unknown"?P(d,D):(wt(e.bus,e.persistence,d,j,V),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:D,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}})}).catch(async D=>{let j=A(d,D);return(await h(d)).state==="unknown"?(d.unconfirmedFailure=j,P(d)):C(d,j)}).then(D=>I(d,D));return}let G=i(()=>Ca(B,d.start.prompt),"codingOperation"),we=d.providerCredential!==void 0?Wi(d.provider,d.providerCredential,G):G();d.running=we;let pe=B.abortSignal,Se=i(()=>{d.releaseAbortSignalSubscription=void 0,d.interruptInputOpen=!1;let W=pe?.reason;ee(d,W instanceof Error?W.message:typeof W=="string"&&W.trim().length>0?W:"external abort requested",!0)},"handleUpstreamAbort");pe?.aborted?Se():pe!==void 0&&(pe.addEventListener("abort",Se,{once:!0}),d.releaseAbortSignalSubscription=()=>{pe.removeEventListener("abort",Se)}),y(d),we.result.then(async W=>{let me=d.terminalEmitted?d.phase:W.interrupted?"interrupted":W.success?"completed":"failed";return(await h(d)).state==="unknown"?P(d,W):(wt(e.bus,e.persistence,d,me),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:W,...d.stop!==void 0?{stop:d.stop}:{}})}).catch(async W=>{let me=A(d,W);return(await h(d)).state==="unknown"?(d.unconfirmedFailure=me,P(d)):C(d,me)}).then(W=>I(d,W))},"launchRecord"),Re=i(d=>{try{fe(d);return}catch(b){let M=A(d,b);return h(d).then(K=>{if(K.state==="unknown"){d.unconfirmedFailure=M,E(d,P(d));return}p(d,C(d,M))}),{error:b}}},"startRecord"),Fe=i(d=>{let b=s.get(d);if(!b||b.length===0||n.has(d))return;let M=b.shift();if(b.length===0&&s.delete(d),!M)return;let K=e.runs.get(M);if(!K||K.phase!=="queued"){Fe(d);return}Re(K)},"drainNext"),ke=i(d=>{let b=on(d),M=Jn(e.bus,e.persistence,d,b);if(M===void 0)throw new Error(`Failed to persist queued Runtime run: ${d.runId}`);if(M!==b)throw vt(d,M),Wn(`Runtime run already exists: ${d.runId}`,d.sessionOrder);let K=s.get(d.sessionId)??[];K.push(d.runId),s.set(d.sessionId,K),e.bus.emit("run.queued",b,{sessionId:d.sessionId,runId:d.runId})},"enqueue"),ue=i(d=>{let b=on(d),M=Jn(e.bus,e.persistence,d,b);if(M!==void 0){if(M!==b){vt(d,M);return}e.bus.emit("run.updated",b,{sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}})}},"publishRunUpdate"),qe=i((d,b,M)=>{let K=new Map;for(let W of d.interruptInputs)W.state==="queued"&&W.queueMessageId!==void 0&&K.set(W.queueMessageId,W);let B=[],G=new Set;for(let W of b){if(G.has(W))continue;G.add(W);let me=K.get(W);me!==void 0&&B.push(me)}if(B.length===0)return;let we=new Date().toISOString(),pe=B.map(W=>{if(W.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${W.inputId}`);let me=W.queueMessageId===void 0?void 0:M?.[W.queueMessageId];if(typeof me!="string"||me.length===0)throw new Error(`Runtime interrupt input is missing its canonical entry reference: ${W.inputId}`);let S={inputId:W.inputId,afterRunId:W.afterRunId,input:W.input,queuedAt:W.queuedAt,deliveredAt:we,entryId:me,...W.origin!==void 0?{origin:W.origin}:{}};return{record:W,entryId:me,eventInput:S}}),Se={sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:pe.map(W=>W.eventInput)},Se,()=>{for(let W of pe)W.record.state="delivered",W.record.deliveredAt=we,W.record.entryId=W.entryId,delete W.record.queueMessageId})}catch(W){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${He(W).message}`,inputIds:B.map(me=>me.inputId)},Se),W}ue(d)},"deliverInterruptInputs"),xe=e.settingsOwner.subscribe((d,b)=>{for(let M of e.runs.values())M.sessionId!==d||M.phase!=="queued"&&!wn(M.phase)||(M.permissionMode=b.value.permissionMode,M.autoModeEngine=pn(b.value.permissionMode)==="auto"?b.value.autoModeEngine??"llm":b.value.autoModeEngine,M.autoModeClassifierModel=b.value.autoModeClassifierModel,M.autoModeTimeoutMs=b.value.autoModeTimeoutMs,M.autoModeSpeculativeWindowMs=b.value.autoModeSpeculativeWindowMs,ue(M))}),ze=i(async(d,b=!1)=>{let M=d.admittedSessionContext;if(d.ownedByRuntime&&M!==void 0&&(b||!Me(d.phase))){e.sessionAdmission.assertCachedIdentity(d.sessionId,{surface:M.runtimeInfo?.surface,profileId:M.runtimeInfo?.profileId});return}await e.sessionAdmission.assertRunAccess(d.sessionId)},"assertRunRecordAccess"),Ze=i((d,b)=>{if(d.sessionId!==b)throw new Error(`Runtime continuation target ${d.runId} does not belong to session ${b}`);if(!wn(d.phase)&&d.phase!=="queued")throw new Cr(d.runId)},"assertContinuationTarget"),X=i(async(d,b)=>{e.ensureOpen();let M=d,K=M.requiredAfterRunId,B=K===void 0?void 0:a(K);B!==void 0&&(Ze(B,d.sessionId),await ze(B));let G=hl(d,e.artifacts,b),we=B?.admittedSessionContext;if(B!==void 0&&we===void 0)throw new Cr(B.runId);if(we===void 0){let ne=await e.sessionAdmission.loadExecutable(d.sessionId);we={gitRoot:ne.gitRoot,...ne.runtimeInfo!==void 0?{runtimeInfo:structuredClone(ne.runtimeInfo)}:{}}}let pe=(await e.settingsOwner.read(d.sessionId)).value;Cs(we,pe);let Se=Ih(d.options??{},pe,G.inputArtifacts,we),W=await e.actorRegistry.forSession(d.sessionId,Se.maxConcurrentThreadsPerSession),me=Se.agentMode==="sa"?void 0:W;if(me!==void 0){let ne=me.health(),Oe=ne.state==="recovering"?await e.waitForActorHealthResolution(d.sessionId,ne):ne;if(Oe.state==="unknown")throw Object.assign(new Error(Oe.message??"Actor settlement persistence is unknown; the Session cannot start another Run."),{code:Oe.code??"actor_settlement_not_persisted",retryable:!1})}let S=Se.provider??e.defaultProvider;if(!S)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");if(M.providerCredential!==void 0&&M.providerCredentialProvider!==void 0&&M.providerCredentialProvider!==S)throw qw(`Credential lease is bound to ${M.providerCredentialProvider}, not ${S}.`);let T=Se.modelOverride??Se.model??e.defaultModel??Vs(S)[0]?.id,F=d.trustedRunId??mw();if(e.runs.has(F))throw Wn(`Runtime run already exists: ${F}`,0);let D=e.enableSharedInteractions||pn(pe.permissionMode)==="auto";if(Bh(pe,T),D&&Se.guardrails?.some(ne=>ne.kind==="tool"&&ne.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let j=D?Tw({sessionId:d.sessionId,provider:S,model:T,options:Se,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let ne=n.get(d.sessionId);return ne===void 0?void 0:e.runs.get(ne)},"getRecord"),onPhase:i((ne,Oe)=>{ne.terminalEmitted||ne.executorTerminalSignal!==void 0||ne.phase==="unknown"||ne.stop?.state==="unknown"||ne.phase===Oe||(ne.phase=Oe,ue(ne))},"onPhase"),onEngineChange:i(ne=>{for(let Oe of e.runs.values())Oe.sessionId===d.sessionId&&(Oe.phase==="queued"||wn(Oe.phase))&&Oe.autoModeEngine!==ne&&(Oe.autoModeEngine=ne,ue(Oe));e.settingsOwner.persistAutoModeEngine(d.sessionId,ne).catch(Oe=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${He(Oe).message}`},{sessionId:d.sessionId,runId:d.sessionId})})},"onEngineChange")}):void 0;await j?.prepare?.();let V=j===void 0?Se:{...Se,guardrails:[...Se.guardrails??[],j]},re=new Date().toISOString(),Q=i(()=>{},"resolveResult"),oe=new Promise(ne=>{Q=ne});B!==void 0&&Ze(B,d.sessionId);let ye=e.persistence.nextSessionOrder(d.sessionId),be=B!==void 0||n.has(d.sessionId),Je={runId:F,sessionId:d.sessionId,phase:be?"queued":"running",stage:be?"queued":"executing",stageChangedAt:re,startedAt:re,sessionOrder:ye,...be?{queuedAt:re}:{},provider:S,...T!==void 0?{model:T}:{},...d.permissionBroker!==void 0?{permissionBroker:d.permissionBroker}:{},...pe.permissionMode!==void 0?{permissionMode:pe.permissionMode}:{},...pe.autoModeClassifierModel!==void 0?{autoModeClassifierModel:pe.autoModeClassifierModel}:{},...pe.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:pe.autoModeTimeoutMs}:{},...pe.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:pe.autoModeSpeculativeWindowMs}:{},...pn(pe.permissionMode)==="auto"?{autoModeEngine:pe.autoModeEngine??"llm"}:pe.autoModeEngine!==void 0?{autoModeEngine:pe.autoModeEngine}:{},...Se.reasoningMode!==void 0?{reasoning:Se.reasoningMode}:{},mode:d.mode??"coding",...d.providerCredential!==void 0?{providerCredential:d.providerCredential}:{},hadProviderCredential:d.providerCredential!==void 0,...d.origin!==void 0?{origin:d.origin}:{},...K!==void 0?{continuation:{inputId:F,afterRunId:K,delivery:"after_turn",contentPreview:Sl(G.prompt)}}:{},interruptInputs:[],...d.agentContext??e.defaultAgentContext?{agentContext:d.agentContext??e.defaultAgentContext}:{},...me?{actorSession:me}:{},admittedSessionContext:we,interruptInputOpen:!1,result:oe,start:{prompt:G.prompt,inputArtifacts:G.inputArtifacts,options:V,resolve:Q},terminalEmitted:!1,ownedByRuntime:!0};if(e.runs.set(F,Je),be)ke(Je);else{let ne=Re(Je);if(ne!==void 0)throw ne.error}return{runId:F,sessionId:d.sessionId,get turnId(){return Je.turnId},result:oe}},"startRun"),J=i((d,b="runtime.runs.start")=>e.sessionOperations.run(d.sessionId,()=>X(d,b)),"start");return{start:J,async submitInput(d){e.ensureOpen();let b=a(d.afterRunId);if(b.sessionId!==d.sessionId)throw new Error(`Runtime continuation target ${d.afterRunId} does not belong to session ${d.sessionId}`);if(await ze(b,!0),d.delivery==="interrupt"){if(b.actorSession===void 0&&wn(b.phase)&&n.get(d.sessionId)===b.runId)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"unsupported_capability"};if(!b.interruptInputOpen)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"interrupt_window_closed"};if(!wn(b.phase)||n.get(d.sessionId)!==b.runId)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"};if(d.credential!==void 0||d.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let G=hl({sessionId:d.sessionId,input:d.input},e.artifacts,"runtime.runs.submitInput"),we=structuredClone(d.input),pe=d,Se=pe.trustedInputId??fw();if(b.interruptInputs.some(T=>T.inputId===Se))throw Wn(`Runtime interrupt input already exists: ${Se}`,0);let W=oa({sessionId:d.sessionId,content:G.prompt,inputArtifacts:G.inputArtifacts,provider:b.provider,...b.model!==void 0?{model:b.model}:{}}),me=new Date().toISOString(),S={inputId:Se,afterRunId:d.afterRunId,delivery:"interrupt",state:"queued",contentPreview:Sl(G.prompt),queuedAt:me,...pe.origin!==void 0?{origin:pe.origin}:{},input:we,queueMessageId:W};return b.interruptInputs.push(S),ue(b),e.bus.emit("run.input.queued",{input:im(S)},{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:Se,runId:b.runId,sessionId:d.sessionId,afterRunId:d.afterRunId,sessionOrder:b.sessionOrder}}if(!wn(b.phase)&&b.phase!=="queued")return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"};let M=d,K;try{K=await J({sessionId:d.sessionId,input:d.input,...M.options!==void 0?{options:M.options}:{},...M.providerCredential!==void 0?{providerCredential:M.providerCredential}:{},...M.providerCredentialProvider!==void 0?{providerCredentialProvider:M.providerCredentialProvider}:{},...M.origin!==void 0?{origin:M.origin}:{},...M.trustedRunId!==void 0?{trustedRunId:M.trustedRunId}:{},requiredAfterRunId:d.afterRunId},"runtime.runs.submitInput")}catch(G){if(!(G instanceof Cr))throw G;return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"}}let B=a(K.runId).sessionOrder;return{accepted:!0,delivery:d.delivery,runId:K.runId,sessionId:d.sessionId,afterRunId:d.afterRunId,sessionOrder:B}},async await(d){e.ensureOpen();let b=e.runs.get(d);if(b?.ownedByRuntime===!0)return await ze(b),b.result;let M=e.persistence.loadRunStatus(d);if(M)return await e.sessionAdmission.assertRunAccess(M.status.sessionId),om(await c(M,e.runs.get(d)));if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),b.result;throw new Error(`Runtime run not found: ${d}`)},async get(d){e.ensureOpen();let b=e.runs.get(d),M=e.persistence.loadRunStatus(d);if(M&&(b!==void 0?await ze(b):await e.sessionAdmission.assertRunAccess(M.status.sessionId),b===void 0||!b.ownedByRuntime||Me(M.status.phase)))return c(M,b);if(b)return await ze(b),on(b);throw new Error(`Runtime run not found: ${d}`)},async list(d){e.ensureOpen(),d?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(d.sessionId);let b=e.persistence.loadRunStatuses(),M=await Promise.all(b.map(G=>c(G,e.runs.get(G.status.runId)))),K=new Map(M.map(G=>[G.runId,G]));for(let G of e.runs.values()){let we=K.get(G.runId);!G.ownedByRuntime||we!==void 0&&Me(we.phase)||K.set(G.runId,on(G))}let B=[...K.values()].filter(G=>Pl(G,d));return wl(El(kl(B)),e.sessionAdmission)},async inspect(d){e.ensureOpen(),d?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(d.sessionId);let b=e.persistence.loadRunStatuses(),M=await Promise.all(b.map(G=>l(G,e.runs.get(G.status.runId)))),K=new Map(M.map(G=>[G.runId,G]));for(let G of e.runs.values())!G.ownedByRuntime||Me(G.phase)||K.set(G.runId,on(G));let B=[...K.values()].filter(G=>Pl(G,d));return wl(El(kl(B)),e.sessionAdmission)},async inspectOne(d){e.ensureOpen();let b=e.runs.get(d),M=e.persistence.loadRunStatus(d);if(M!==void 0)return await e.sessionAdmission.assertRunAccess(M.status.sessionId),l(M,b);if(b!==void 0)return await e.sessionAdmission.assertRunAccess(b.sessionId),on(b)},async abort(d){e.ensureOpen();let b=e.runs.get(d),M=e.persistence.loadRunStatus(d),K=b?.sessionId??M?.status.sessionId;if(K===void 0)throw new Error(`Runtime run not found: ${d}`);if(await e.sessionAdmission.assertRunAccess(K),b!==void 0&&Ai(b,e.runOwner),b?.terminalEmitted===!0&&M?.owner?.ownerId===e.runOwner.ownerId)return Ci({accepted:!1,effectDeliveryAllowed:!1,status:on(b),revision:M.revision});if(b?.executorTerminalSignal!==void 0&&!b.terminalEmitted&&H(b)){ee(b,"runtime run aborted",!1);let we=e.persistence.loadRunStatus(d);return Ci({accepted:!1,effectDeliveryAllowed:!1,status:we?.status??on(b),revision:we?.revision??0})}let B=e.persistence.requestRunStop(d,"runtime run aborted",b?.ownedByRuntime===!0?e.runOwner.ownerId:void 0);if(b===void 0)return Ci(B);if(vt(b,B.status),B.status.stop!==void 0&&b.actorFinalizationAbortController?.abort(new Error("runtime run aborted")),B.status.stop?.state==="unknown"&&delete b.actorHealthBaseState,B.accepted||B.effectDeliveryAllowed){let we=B.status.phase==="cancelled";if(we&&tl(s,b),v(b),b.running?.abort(new Error("runtime run aborted")),b.abortController?.abort(new Error("runtime run aborted")),g(b,"runtime run aborted").then(()=>te(b)),e.permissions.rejectForRun(b.runId,"runtime run aborted"),e.userInputs.rejectForRun(b.runId,"runtime run aborted"),b.start?.options.guardrails?.find(er)?.clearAllowedCalls(),b.interruptInputOpen=!1,As(b),B.accepted&&we){e.bus.emit("run.cancelled",B.status,{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}});let Se={runId:b.runId,sessionId:b.sessionId,phase:b.phase,...b.terminal!==void 0?{terminal:b.terminal}:{},...b.stop!==void 0?{stop:b.stop}:{}};x(b,Se),R(b),m(b),e.isClosed()||Fe(b.sessionId)}else B.accepted&&e.bus.emit("run.updated",B.status,{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}})}return Ci(B)},async setModel(d,b){e.ensureOpen();let M=a(d);await e.sessionAdmission.assertRunAccess(M.sessionId),Ai(M,e.runOwner),M.model=b,M.running?.setModel(b),ue(M)},async setProvider(d,b){e.ensureOpen();let M=a(d);await e.sessionAdmission.assertRunAccess(M.sessionId),Ai(M,e.runOwner),M.provider=b,M.running?.setProvider(b),ue(M)},async setReasoning(d,b){e.ensureOpen();let M=a(d);await e.sessionAdmission.assertRunAccess(M.sessionId),Ai(M,e.runOwner),M.reasoning=b,M.running?.setReasoning(b),ue(M)},closeAll(d){xe.close();for(let b of e.runs.values())b.ownedByRuntime&&(b.phase==="queued"||wn(b.phase)||b.phase==="unknown")&&ee(b,d,!1);n.clear(),r.clear(),o.clear(),s.clear()},releaseSession(d){for(let b of r.get(d)?.values()??[])b.guardrail.clearAllowedCalls();r.delete(d),o.delete(d)},getAutoModeStats(d){let b=o.get(d);return b===void 0?void 0:{engine:b.engine,classifierHealth:Na(b.breaker,Date.now())?"degraded":"healthy",denials:b.denials,breaker:b.breaker}}}}i(SR,"createRuntimeRunService");function IR(){let e=Sa();return{async list(n){let t=e.list(),r=n?.runId?t.filter(o=>o.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(o=>{n.runId&&o.snapshot.runId!==n.runId||n.activeOnly===!0&&ww(o.snapshot.status)||t(o)})}},async pause(n){return e.pause(n)},async resume(n){return e.resume(n)},async stop(n){return e.stop(n)}}}i(IR,"createRuntimeWorkflowService");function bR(e,n){return{async read(){return e(),Zt(et(n))},async patch(t){return e(),Uh(t,"runtime.config.patch"),zh(n,Xh(t)),Zt(et(n))},async reload(){return e(),n!==void 0?(tm(n),{ok:!0,config:Zt(et(n))}):{ok:!0,config:Zt(Ba())}}}}i(bR,"createRuntimeConfigService");function kR(e,n){return{async providers(){return e(),uo()},async models(t){return e(),iw(uo(),t)},async commands(t){return e(),bl(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return bl(t.projectRoot).find(o=>o.name.trim().toLowerCase()===r||(o.aliases??[]).some(s=>s.trim().toLowerCase()===r))??null},async skills(t){e();let r=await Zi(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(uw)},async describeSkill(t){e();let r=await Zi(t.projectRoot);return r.has(t.name)?cw(await r.loadFull(t.name)):null},async customProviders(){return e(),Vh(n)},async upsertCustomProvider(t){return e(),Gh(n,t)},async deleteCustomProvider(t){return e(),Yh(n,t)},async extensions(){e();let t=Ct();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=Ct();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(kR,"createRuntimeCatalogService");function ER(e,n){return{async listServers(){return e(),bs(n)},async getServer(t){return e(),Zh(n,t)},async validateServer(t,r){e();try{return co(t,r),{ok:!0,config:structuredClone(r)}}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}},async upsertServer(t,r){return e(),ew(n,t,r)},async deleteServer(t){return e(),nw(n,t)},async reloadServers(){e();let t=eo(bs(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=bs(n),o=t?.server!==void 0?[t.server]:Object.keys(r),s=eo(r);try{let a=[];for(let c of o)a.push(await s.listTools(c,{forceRefresh:t?.forceRefresh===!0}));return a}finally{await s.dispose()}}}}i(ER,"createRuntimeMcpService");function PR(){let e=new Map;return{service:{async create(r){if(!Sh(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=Y.resolve(r.path),s;try{s=await $.promises.stat(o)}catch(l){throw new Error(`Runtime artifact path is not readable: ${o}`,{cause:l})}if(!s.isFile())throw new Error(`Runtime artifact path must be a regular file: ${o}`);if(s.size>Vc)throw new Error(`Runtime artifact exceeds the ${Vc}-byte limit: ${o}`);let a=`art_${Qe().replace(/-/g,"").slice(0,12)}`,c={id:a,kind:r.kind,path:o,sizeBytes:s.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(a,c),c},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:i(r=>{let o=e.get(r);if(!o)throw new Error(`Runtime artifact not found: ${r}`);return o},"resolve")}}i(PR,"createRuntimeArtifactStore");function xR(e){let{agentPlane:n,events:t,model:r,options:o,provider:s,record:a,sessionManager:c}=e,l=o.events?.exitPlanMode===void 0,{configHome:m,memoryIdentity:R,shellSandbox:v,...y}=o.context??{},x=o.guardrails?.find(er),p=o.context?.gitRoot??o.context?.executionCwd,E=x!==void 0&&p!==void 0?td({workspaceRoot:p,shouldSandbox:i(P=>x.consumeWorkspaceSandboxCall(P),"shouldSandbox")}):void 0,u=E!==void 0&&v!==void 0?{async prepare(P){let I,k=await E.prepare({...P,reportObservation:i(H=>{I=H},"reportObservation")});if(k!==void 0)return k;let A,C=await v.prepare({...P,reportObservation:i(H=>{A=H},"reportObservation")});if(C!==void 0)return C;let O=[A,I].find(H=>H?.state==="fallback")??A??I;O!==void 0&&P.reportObservation?.(O)}}:E??v,g=o.skillDynamicContext?.execute,h=o.skillDynamicContext?.disable===!0||g===void 0?{disable:!0}:{async execute(P,I){if(pn(a.permissionMode)==="plan")throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in Plan mode.");return g(P,I)}};return{...o,provider:s,skillDynamicContext:h,...r!==void 0?{modelOverride:r}:{},session:{...o.session??{},id:a.sessionId,storage:c.storage,persistedByHost:!1},events:t,context:{...y,configHome:e.defaultConfigHome,...u!==void 0?{shellSandbox:u}:{},...l?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...a.actorSession?{actorSession:a.actorSession,interruptInput:{closeInputWindow(){a.interruptInputOpen=!1},reopenInputWindow(){!a.terminalEmitted&&wn(a.phase)&&o.abortSignal?.aborted!==!0&&(a.interruptInputOpen=!0)}}}:{},...n&&a.agentContext?{agentExecutorPlane:{plane:n,context:a.agentContext}}:{}}}}i(xR,"buildRunOptions");function Di(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i(Di,"assertRuntimeAgentContext");function CR(e,n){let t=[],r=new Set(e.skills);for(let s of n.requiredSkills??[])r.has(s)||t.push(`required skill is unavailable: ${s}`);let o=n.requiredCapabilities;if(o)for(let s of["streaming","durableTasks","inputRequired","cancellation","artifacts"])o[s]===!0&&e.capabilities[s]!=="supported"&&t.push(`required capability ${s} is ${e.capabilities[s]}`);return t}i(CR,"localAgentReasons");function ys(e){return Di(e),ur(e).map(n=>{let t=CR(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}i(ys,"runtimeLocalListings");function AR(e,n,t,r,o,s){let a=new Map,c=!1,l=i((R,v)=>{if(c)return Promise.reject(new Error("KodaX runtime is closed"));let y=a.get(R);if(y)return y.then(p=>{let E=p.rootControl().list().maxConcurrentThreads;if(v!==void 0&&v!==E)throw new Error(`Actor concurrency for ${R} is already ${E}; cannot change it to ${v}.`);return p});let x=(async()=>{let p=await e.storage.peek(R);if(!p)throw new Error(`Session not found: ${R}`);let E=p.actorSnapshot?.maxConcurrentThreads;if(E!==void 0&&v!==void 0&&E!==v)throw new Error(`Persisted Actor concurrency for ${R} is ${E}; requested ${v}.`);let u={async load(){return(await e.storage.peek(R))?.actorSnapshot},save(h,P){return e.storage.saveActorSnapshot(R,h,P)}},g=new Pa({sessionId:R,store:u,maxConcurrentThreadsPerSession:v??E,owner:{ownerId:`actor_${Qe().replace(/-/g,"")}`,runtimeId:n.runtimeId,pid:process.pid,startedAt:n.startedAt,livenessId:t.id,livenessPort:t.port},isOwnerAlive:Eo,onHealthChanged:i(h=>s?.(R,h),"onHealthChanged"),...r?{executor:xa({plane:r,context:o??{actorId:`runtime:${R}`}})}:{}});try{return await g.initialize(),s?.(R,g.health()),g}catch(h){if(!g.ownsDurableFence())throw h;try{await g.close("Actor initialization cleanup")}catch(P){throw new AggregateError([h,P],`Actor session ${R} initialization and owner cleanup both failed.`)}throw h}})();return a.set(R,x),x.catch(()=>a.delete(R)),x},"claimSession"),m=i(async(R,v)=>{let y=l(R,v),x=a.get(R),p=await y;if(!await e.storage.isArchived(R))return p;throw await p.close("archived Session execution rejected"),a.get(R)===x&&a.delete(R),Ms(R)},"forSession");return{forSession:m,async root(R){return(await m(R)).rootControl()},async activeTurns(R){return(await Promise.all(R.map(async y=>{if(await e.storage.isArchived(y))return;let x=a.get(y);if(x)return{sessionId:y,snapshot:(await x).rootControl().list()};let p=await e.storage.peek(y);if(p?.actorSnapshot&&!(p.actorSnapshot.schemaVersion===2&&p.actorSnapshot.owner!==void 0&&!await Eo(p.actorSnapshot.owner)))return{sessionId:y,snapshot:p.actorSnapshot}}))).flatMap(y=>{if(!y)return[];let{sessionId:x,snapshot:p}=y;return p.actors.flatMap(E=>E.currentTurnId&&E.path!=="/root"?[{sessionId:x,actorPath:E.path,turnId:E.currentTurnId,kind:E.kind}]:[])})},async mutateSessionFile(R,v,y){if(c)throw new Error("KodaX runtime is closed");let x=a.get(R)??l(R),p=await x,u=p.rootControl().list();if(v==="mutate"&&await e.storage.isArchived(R))throw await p.close("archived Session mutation rejected"),a.get(R)===x&&a.delete(R),Ms(R);let g=u.actors.some(P=>P.currentTurnId!==void 0);if((v==="archive"||v==="unarchive")&&g)throw Wn(`Session has active Agent turns and cannot be moved: ${R}`,u.revision);v==="delete"&&g&&await p.quiesce("session deleted");let h=await y(p.ownerId());return v==="delete"?p.disposeAfterStoreRemoval("session deleted"):v!=="mutate"&&await p.close(`session ${v}d`),v!=="mutate"&&a.get(R)===x&&a.delete(R),h},async close(R){c=!0;let v=await Promise.allSettled([...a.values()]),x=(await Promise.allSettled(v.flatMap(p=>p.status==="fulfilled"?[p.value.close(R)]:[]))).flatMap(p=>p.status==="rejected"?[p.reason]:[]);if(x.length===1)throw x[0];if(x.length>1)throw new AggregateError(x,"Actor registry cleanup failed.");a.clear()}}}i(AR,"createRuntimeAgentActorRegistry");function TR(e,n,t,r,o,s){let a=i((c,l)=>o.run(c,async()=>(s(),await r.loadExecutable(c),l(await t.root(c)))),"withRoot");return{execution:n,enabled:e!==void 0,async listDispatchable(c){s(),Di(c);let l=ur(c);return e?e.listDispatchable(c,l):ys(c)},async describe(c,l){Di(l);let m=ur(l);return e?e.describe(c,l,m):ys(l).find(R=>R.descriptor.agentId===c)},async preflight(c){Di(c.query);let l=ur(c.query);if(e)return e.preflight(c,l);let m=ys(c.query).find(v=>v.descriptor.agentId===c.agentId),R=m?[]:["agent is not dispatchable"];return m&&c.expectedConfigurationRevision!==void 0&&m.descriptor.configurationRevision!==c.expectedConfigurationRevision&&R.push("configuration revision changed"),{ok:m!==void 0&&R.length===0,...m?{descriptor:m.descriptor}:{},dispatchability:m?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:R},reasons:R}},async tree(c){return a(c,l=>l.list())},async detail(c,l){return a(c,m=>m.get(l))},async spawn(c,l){return a(c,m=>m.spawn(l))},async send(c,l,m,R){await a(c,v=>v.send(l,m,R))},async followup(c,l,m,R){return a(c,v=>v.followup(l,m,void 0,R))},async interrupt(c,l,m){await a(c,R=>R.interrupt(l,m))},async output(c,l,m){return a(c,R=>R.output(l,m))},async events(c,l){return a(c,m=>m.eventSnapshot(l))},async wait(c,l,m,R){return(await a(c,y=>y)).wait(l,m,R?.signal)}}}i(TR,"createRuntimeAgentService");function Rs(){return new Error("Runtime external agent executor plane is not enabled.")}i(Rs,"externalAgentsDisabled");function DR(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw Rs()},async setEnabled(){throw Rs()},async remove(){throw Rs()}}}}i(DR,"createRuntimeAdminService");function MR(e){return{async snapshot(){let n=await e.listRuns();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(zl),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await e.listRuns(),t=n.filter(R=>wn(R.phase)||R.phase==="unknown"),r=n.filter(R=>R.phase==="queued"),o=(await e.workflows.list({})).filter(R=>R.status!=="completed"&&R.status!=="failed"&&R.status!=="denied"&&R.status!=="stopped"),s=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(R=>R.id),a=await e.actors.activeTurns(s),c=await e.permissions.service.listPending(),l=await e.userInputs.service.listPending(),m=[];return t.length>0&&m.push("active_runs"),r.length>0&&m.push("queued_runs"),o.length>0&&m.push("active_workflows"),a.length>0&&m.push("active_agent_turns"),a.length>0&&m.push("active_agent_tasks"),(c.length>0||l.length>0)&&m.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:o,activeAgentTurns:a,activeAgentTasks:a,pendingPermissions:c,pendingUserInputs:l,blockers:m,canStop:m.length===0}}}}i(MR,"createRuntimeStatusService");function _R(e){return{latestContextBudget(n){return hs(e,"context.budget.snapshot",n)},latestToolExposure(n){return hs(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return hs(e,"provider.cache.diagnostics",n)}}}i(_R,"createRuntimeDiagnosticsService");async function hs(e,n,t){let r=t?.contextKind??(t?.agentId===void 0?"root":void 0),o=r==="child"||t?.agentId!==void 0,s={type:n,...!o&&t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return[...await e.replay(s)].reverse().find(l=>{let m=l.payload;if(m===null||typeof m!="object"||Array.isArray(m))return t?.contextKind===void 0&&t?.agentId===void 0;let R=m,v=R.contextKind==="child"?"child":"root";if(r!==void 0&&v!==r||t?.agentId!==void 0&&R.agentId!==t.agentId)return!1;if(!o||t?.sessionId===void 0)return!0;let y=`${t.sessionId}/agent/`;return typeof R.contextId!="string"?!1:t.agentId===void 0?R.contextId.startsWith(y):R.contextId===`${y}${encodeURIComponent(t.agentId)}`})?.payload??null}i(hs,"latestRuntimeDiagnosticPayload");function wn(e){return e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(wn,"isActiveRunPhase");function tl(e,n){let t=e.get(n.sessionId);if(!t)return;let r=t.filter(o=>o!==n.runId);r.length===0?e.delete(n.sessionId):e.set(n.sessionId,r)}i(tl,"removeQueuedRun");function OR(e,n,t){let r=ae(n)?n:void 0;if((e==="assistant.delta"||e==="thinking.delta")&&typeof r?.text=="string")return{key:br(e,n,t),mode:"append_text",bytes:Buffer.byteLength(r.text,"utf-8")};if(e==="tool.progress"&&typeof r?.partialJson=="string"){let o=ae(r.meta)?r.meta:void 0,s=typeof o?.toolId=="string"?o.toolId:"";return s.length===0?void 0:{key:br(e,n,t,`tool:${s}`),mode:"append_tool_input",bytes:Buffer.byteLength(r.partialJson,"utf-8")}}if(e==="tool.progress"&&ae(r?.update)){let o=typeof r.update.id=="string"?r.update.id:"";return o.length===0?void 0:{key:br(e,n,t,`progress:${o}`),mode:"latest",bytes:ws(n),preserveFirst:!0}}if(e==="run.progress"&&r?.kind==="managed_task_status")return{key:br(e,n,t),mode:"latest",bytes:ws(n)};if(e==="workflow.updated"){let o=ae(r?.snapshot)?r.snapshot:void 0,s=typeof o?.runId=="string"?o.runId:"";return s.length===0?void 0:{key:br(e,n,t,`workflow:${s}`),mode:"latest",bytes:ws(n)}}}i(OR,"runtimeEventMergePlan");function ws(e){try{return Buffer.byteLength(JSON.stringify(e)??"","utf-8")}catch{return ks}}i(ws,"runtimeEventPayloadBytes");function Gt(e){let n=JSON.stringify(e);if(n===void 0)throw new Error("Runtime event emission is not serializable");return Buffer.byteLength(n,"utf-8")}i(Gt,"runtimePendingEmissionBytes");function NR(e){let n;try{n=JSON.stringify(e)}catch(t){throw new Error("Runtime event payload is not serializable",{cause:t})}if(n===void 0)throw new Error("Runtime event payload is not serializable");return JSON.parse(n)}i(NR,"snapshotRuntimeEventPayload");function br(e,n,t,r=""){let o=ae(n)?n:void 0,s=ae(o?.meta)?o.meta:void 0,a=ae(s?.workflowCorrelation)?s.workflowCorrelation:void 0,c=[s?.contextKind,s?.contextId,s?.parentContextId,s?.agentId,s?.childAgentId,s?.parentToolId,a?.workflowRunId,a?.childAgentId,s?.liveOnly===!0?"live":""].map(l=>typeof l=="string"?l:"").join("");return[t.sessionId,t.runId,t.turnId??"",e,c,r].join("\0")}i(br,"runtimeEventMergeKey");function LR(e,n){let t=e.merge;if(t===void 0)return n;let r=t.mode,o=ae(e.payload)?e.payload:{},s=ae(n.payload)?n.payload:{};return r==="append_text"?{...e,payload:{...o,...s,text:`${o.text??""}${s.text??""}`},merge:{...t,bytes:t.bytes+(n.merge?.bytes??0)}}:r==="append_tool_input"?{...e,payload:{...o,...s,partialJson:`${o.partialJson??""}${s.partialJson??""}`},merge:{...t,bytes:t.bytes+(n.merge?.bytes??0)}}:n}i(LR,"mergeRuntimeEventEmissions");function FR(e){let n=!1,t=[],r=new Map,o=new Map,s=[],a=[],c=new Map,l=new Set,m=new Set,R=0,v,y=!1,x,p,E,u=!1,g=!1,h=0,P=0,I=i((X,J)=>J?!(J.sessionId!==void 0&&X.sessionId!==J.sessionId||J.runId!==void 0&&X.runId!==J.runId||J.type!==void 0&&!(Array.isArray(J.type)?J.type:[J.type]).includes(X.type)):!0,"matches"),k=i(X=>{t.push(X),t.length>Ni&&t.splice(0,t.length-Ni)},"remember"),A=i(X=>{for(let J of[...m])if(I(X,J.filter))try{J.listener(X)}catch(d){ge({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${X.type}`,detail:{eventId:X.id,error:He(d)}})}},"notifyOne"),C=i(X=>{if(a.push(...X),!g){g=!0;try{for(;h<a.length;){let J=a[h];h+=1,J!==void 0&&A(J)}}finally{a.splice(0,h),h=0,g=!1}}},"notify"),O=i((X,J)=>X.length===0?[]:X.map((d,b)=>{let M=J+b;return{id:`evt_${M}_${Qe().replace(/-/g,"").slice(0,8)}`,seq:M,time:d.time,sessionId:d.scope.sessionId,runId:d.scope.runId,...d.scope.turnId!==void 0?{turnId:d.scope.turnId}:{},type:d.type,payload:d.payload}}),"createEvents"),H=i((X,J)=>{if(x!==void 0)throw x;try{return e.commitEvents(X,J)}catch(d){throw d instanceof Mr&&(x=d,p=void 0,te(),s.splice(0,s.length),R=0,P=0,c.clear()),d}},"commitEvents"),ee=i(X=>{for(let J of X){o.set(J.sessionId,J.seq);let d=r.get(J.sessionId)??rl();r.set(J.sessionId,d),HR(d,J),k(J),Ns(J.type)&&c.delete(J.runId)}},"applyAndRemember"),te=i(()=>{v!==void 0&&(clearTimeout(v),v=void 0)},"clearScheduledFlush"),fe=i(()=>{let X=s[0]?.scope.runId;if(X===void 0)return 0;let J=0;for(;s[J]?.scope.runId===X;)J+=1;return J},"nextRunEmissionCount"),Re=i(()=>{if(te(),x!==void 0)throw x;for(;s.length>0;){let X=fe(),J=s.slice(0,X),d;try{d=H(X,b=>O(J,b))}catch(b){throw x===void 0&&(p=He(b),te()),b}p=void 0,s.splice(0,X),R=Math.max(0,R-J.reduce((b,M)=>b+(M.merge?.bytes??0),0)),P=Math.max(0,P-J.reduce((b,M)=>b+Gt(M),0)),u=!1,ee(d),C(d)}},"flushPending"),Fe=i(()=>{n||x!==void 0||p!==void 0||v===void 0&&(v=setTimeout(()=>{if(v=void 0,!n)try{Re()}catch(X){u||(u=!0,ge({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:X}))}},Yy),v.unref?.())},"scheduleFlush"),ke=i(()=>{try{Re()}catch(X){u||(u=!0,ge({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:X}))}},"flushPendingSafely"),ue=i(X=>{let J=H(1,d=>O([X],d));ee(J),C(J)},"commitEmissionDirectly"),qe=i(X=>{let J=X.merge;if(J?.mode==="latest"){for(let d=s.length-1;d>=0;d-=1){let b=s[d];if(b?.merge===void 0)break;if(b.merge.mode==="latest"&&b.merge.key===J.key){s.splice(d,1),R=Math.max(0,R-b.merge.bytes),P=Math.max(0,P-Gt(b));break}}s.push(X),R+=J.bytes,P+=Gt(X)}},"replacePendingLatest"),xe=i(X=>{let J=X.merge;if(J?.mode!=="latest"||J.preserveFirst!==!0)return!1;let d=c.get(X.scope.runId)??new Set;return d.has(J.key)?!1:(d.add(J.key),c.set(X.scope.runId,d),!0)},"shouldPreserveFirstLatest"),ze=i((X,J,d)=>{if(n)throw new Error("KodaX runtime event bus is closed");if(x!==void 0)throw x;if(p!==void 0)throw p;let b=NR(J),M=OR(X,b,d),K={type:X,payload:b,scope:d,time:new Date().toISOString(),...M!==void 0?{merge:M}:{}},B=Gt(K);if(B>Jc){Re(),ue(K);return}if((s.length>=Vy||P+B>Jc)&&Re(),M===void 0){s.push(K),P+=B,ke();return}if(M.mode==="latest"){if(xe(K)){s.push(K),R+=M.bytes,P+=B,ke();return}qe(K)}else{let G=s.at(-1),we=G?.merge?.key===M.key&&G.merge.mode===M.mode;if(we&&G.merge.bytes+M.bytes>ks){if(ke(),x!==void 0)throw x;if(p!==void 0)throw p;s.push(K),R+=M.bytes,P+=B}else if(we){let pe=LR(G,K);R+=(pe.merge?.bytes??0)-G.merge.bytes,P+=Gt(pe)-Gt(G),s[s.length-1]=pe}else s.push(K),R+=M.bytes,P+=B}R>=ks?ke():Fe()},"enqueue");return{service:{subscribe(X,J){if(n)throw new Error("KodaX runtime event bus is closed");Re();let d={filter:X,listener:J};return m.add(d),{close(){m.delete(d),!y&&(y=!0,queueMicrotask(()=>{y=!1,n||ke()}))}}},async replay(X){Re();let J=e.replay(X),d=new Map;for(let M of J)d.set(M.id,M);for(let M of t)d.set(M.id,M);let b=[...d.values()].filter(M=>I(M,X)&&(X?.sinceSeq===void 0||M.seq>X.sinceSeq)).sort((M,K)=>M.seq-K.seq||M.time.localeCompare(K.time));return X?.limit===void 0?b:b.slice(-X.limit)}},subscribeClose(X){return n?(X(),{close(){}}):(l.add(X),{close(){l.delete(X)}})},emit(X,J,d){ze(X,J,d)},emitDurable(X,J,d,b){Re();let M={type:X,payload:J,scope:d,time:new Date().toISOString()},K=H(1,B=>O([M],B))[0];return b?.(),ee([K]),C([K]),K},projectSession(X){Re();let J=r.get(X);return il(J===void 0?rl():J)},currentSessionSeq(X){Re();let J=o.get(X);if(J!==void 0)return J;let d=BR(e.replay({sessionId:X}));return o.set(X,d),d},close(){if(n){if(E!==void 0)throw E;return}let X;try{Re()}catch(J){X=He(J)}finally{n=!0,te(),s.splice(0,s.length),R=0,P=0;for(let J of[...l])try{J()}catch(d){ge({source:"runtime.events",level:"error",message:"Runtime event close listener failed.",detail:He(d)})}l.clear();try{e.close()}catch(J){let d=He(J);X??=d,ge({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:d})}m.clear(),r.clear(),o.clear()}if(E=X,X!==void 0)throw X}}}i(FR,"createRuntimeEventBus");function rl(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(rl,"createRuntimeSessionLiveProjectionState");function HR(e,n){let t=ae(n.payload)?n.payload:void 0;if(!jR(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=Ei(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=Ei(n),o=e.activeTools.get(r)??ol(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.sandbox"){let r=Ei(n),o=e.activeTools.get(r)??ol(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,sandbox:n.payload})}else if(n.type==="tool.finished"){let r=Ei(n);if(!e.activeTools.delete(r))for(let[o,s]of e.activeTools)s.runId===n.runId&&e.activeTools.delete(o)}else if(n.type==="todo.updated")e.todo=n.payload;else if(n.type==="run.progress"&&t?.kind==="managed_task_status"){let r=qR(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(Ns(n.type)){delete e.assistantTextByRun[n.runId],delete e.thinkingTextByRun[n.runId];for(let[r,o]of e.activeTools)o.runId===n.runId&&e.activeTools.delete(r);for(let[r,o]of e.pendingUserInputs)o.runId===n.runId&&e.pendingUserInputs.delete(r);e.managedTasks.delete(n.runId)}}}i(HR,"applyRuntimeSessionEvent");var $R=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","todo.updated"]);function jR(e,n){if(!$R.has(e))return!1;let t=ae(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=ae(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}i(jR,"isChildOwnedPrimaryLiveEvent");function il(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()]}}i(il,"snapshotRuntimeSessionLiveProjection");function qR(e){if(!(!ae(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(qR,"parseRuntimeManagedTaskStatus");function BR(e){return e.at(-1)?.seq??0}i(BR,"latestRuntimeEventSeq");function Ei(e){let n=ae(e.payload)?e.payload:void 0,t=ae(n?.meta)?n.meta:void 0,r=ae(n?.tool)?n.tool:void 0,o=ae(n?.update)?n.update:void 0,s=ae(n?.result)?n.result:void 0,a=t?.toolId??t?.toolCallId??t?.toolUseId??r?.id??o?.id??s?.id??s?.toolCallId;return typeof a=="string"&&a.length>0?`${e.runId}:${a}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}i(Ei,"runtimeToolProjectionKey");function ol(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(ol,"latestActiveToolForRun");function Ns(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(Ns,"isTerminalRuntimeEvent");function KR(e,n){let t=e.homeDir?Y.resolve(e.homeDir):e.sessionsDir?Y.resolve(e.sessionsDir,".."):process.cwd(),r=e.sharedDaemonHost===!0?Y.join(t,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):Y.join(t,".kodax","runtime"),o=Y.join(r,"runs"),s=Y.join(r,"session-settings"),a=Y.join(r,"session-orders"),c=Y.join(r,"permission-grants.json"),l=Y.join(r,"event-sequence"),m=Y.join(r,"run-status-index.json"),R,v,y=i(S=>Y.join(o,encodeURIComponent(S)),"runDir"),x=i(S=>Y.join(y(S),"events.jsonl"),"eventFile"),p=i(S=>Y.join(y(S),"events.watermark"),"eventWatermarkFile"),E=i(S=>Y.join(y(S),"status.json"),"statusFile"),u=i(S=>Y.join(s,`${encodeURIComponent(S)}.json`),"sessionSettingsFile"),g=i(S=>Y.join(a,`${encodeURIComponent(S)}.json`),"sessionOrderFile"),h=[],P=new Set,I=i(()=>{if($.existsSync(l))try{let S=Number.parseInt($.readFileSync(l,"utf-8").trim(),10);if(Number.isSafeInteger(S)&&S>=0)return S}catch(S){ge({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:S})}},"readEventSequenceCursor"),k=i(()=>{let S=0;if(!$.existsSync(o))return S;for(let T of $.readdirSync(o,{withFileTypes:!0})){if(!T.isDirectory())continue;let F=Y.join(o,T.name,"events.jsonl");if(!$.existsSync(F))continue;let D=$.statSync(F).size,j=Math.min(D,Gc);for(;j>0;){let V=Buffer.allocUnsafe(j),re=$.openSync(F,"r");try{$.readSync(re,V,0,j,D-j)}finally{$.closeSync(re)}let Q=V.toString("utf-8").split(/\r?\n/);j<D&&Q.shift();let oe=!1;for(let ye of Q)if(ye.trim())try{let be=JSON.parse(ye);kr(be)&&Number.isSafeInteger(be.seq)&&(S=Math.max(S,be.seq),oe=!0)}catch{}if(oe||j===D)break;j=Math.min(D,j*2)}}return S},"findMaxPersistedEventSeq"),A=i(S=>{if(!Number.isSafeInteger(S)||S<=0)throw new Error("Runtime event sequence batch size must be positive");let T=I(),F=v===void 0||T===void 0?k():v;v=Math.max(T??0,F,v??0);let D=v+1,j=v+S;return Cn(l,j),v=j,R=j+1,D},"reserveEventSeqsLocked"),C=i(S=>($.mkdirSync(r,{recursive:!0}),On(l,()=>A(S))),"reserveEventSeqs"),O=i(S=>{if(!$.existsSync(o))return 0;let T=0;for(let F of $.readdirSync(o,{withFileTypes:!0}))if(F.isDirectory())try{let D=Pi(Y.join(o,F.name,"status.json"));if(D?.status.sessionId!==S)continue;T=Math.max(T,D.status.sessionOrder??0)}catch{}return T},"findMaxPersistedSessionOrder"),H=i((S,T,F)=>{if(P.has(S))return;P.add(S);let D=C(1),j={id:`evt_persist_warn_${D}_${Qe().replace(/-/g,"").slice(0,8)}`,seq:D,time:new Date().toISOString(),sessionId:F.sessionId??"runtime",runId:F.runId??F.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:T,...F.file!==void 0?{file:F.file}:{}}};h.push(j),h.length>Ni&&h.splice(0,h.length-Ni)},"pushPersistenceWarning"),ee=i((S,T)=>[...S,...h].filter(F=>nh(F,T)).sort((F,D)=>F.seq-D.seq||F.time.localeCompare(D.time)),"withPersistenceWarnings"),te=i((S,T)=>{if(!$.existsSync(S))return[];let F=$.readFileSync(S,"utf-8"),D=[],j=F.split(/\r?\n/);for(let V=0;V<j.length;V+=1){let re=j[V]??"";if(re.trim())try{let Q=JSON.parse(re);kr(Q)?D.push(Q):H(`${S}:${V+1}:shape`,`Skipped malformed runtime event record at ${Y.basename(S)}:${V+1}`,{runId:T,file:S})}catch(Q){H(`${S}:${V+1}:parse`,`Skipped malformed runtime event record at ${Y.basename(S)}:${V+1}: ${He(Q).message}`,{runId:T,file:S})}}return D},"readEventsFromFile"),fe=i((S,T)=>{if($.statSync(S).size<=Ol)return;let F=$.readFileSync(S,"utf-8").trimEnd().split(/\r?\n/),D=[],j=0,V=F.length;for(let ye=F.length-1;ye>=0;ye-=1){let be=F[ye]??"";if(!be)continue;let Je=Buffer.byteLength(be,"utf-8")+1;if(D.length>0&&j+Je>Qy)break;D.push(be),j+=Je,V=ye}D.reverse();let re=vs(p(T)),Q=re.droppedThrough,oe=re.sessionId;for(let ye of F.slice(0,V))try{let be=JSON.parse(ye);kr(be)&&(Q=Math.max(Q,be.seq),oe??=be.sessionId)}catch{}if(oe===void 0)for(let ye of D)try{let be=JSON.parse(ye);if(kr(be)){oe=be.sessionId;break}}catch{}Cn(p(T),{droppedThrough:Q,...oe!==void 0?{sessionId:oe}:{}}),Hi(S,D.length>0?`${D.join(`
373
+ `)}
374
+ `:"")},"trimEventFile"),Re=i(S=>{if(!$.existsSync(S))return 0;let T=$.openSync(S,"r"),F=0,D;try{if(F=$.fstatSync(T).size,F===0)return 0;let V=Buffer.allocUnsafe(1);if($.readSync(T,V,0,1,F-1),V[0]===10)return F;let re=Math.min(F,Gc);for(;D=Buffer.allocUnsafe(re),$.readSync(T,D,0,re,F-re),!(D.lastIndexOf(10)>=0||re===F);)re=Math.min(F,re*2)}finally{$.closeSync(T)}let j=F-D.length+D.lastIndexOf(10)+1;try{let V=JSON.parse(D.subarray(D.lastIndexOf(10)+1).toString("utf-8"));if(kr(V))return $.appendFileSync(S,`
375
+ `,"utf-8"),F+1}catch{}return $.truncateSync(S,j),j},"repairIncompleteEventTail"),Fe=i(S=>{let T=S[0];if(T===void 0)return;if(S.some(V=>V.runId!==T.runId))throw new Error("Runtime event persistence batches must contain one Run");let F=y(T.runId),D=x(T.runId);$.mkdirSync(F,{recursive:!0});let j;try{On(D,()=>{let V=Re(D),re=S.map(Q=>`${JSON.stringify(Q)}
376
+ `).join("");try{$.appendFileSync(D,re,"utf-8")}catch(Q){if(Ln(Q)==="EISDIR")throw Q;try{$.truncateSync(D,V)}catch(oe){throw new Mr(Q,oe)}throw Q}try{fe(D,T.runId)}catch(Q){j=Q}})}catch(V){if(!(V instanceof bt))throw V;j=j===void 0?V.cleanupError:new AggregateError([j,V.cleanupError],"Runtime event trim and status-lock cleanup both failed")}return j},"appendEventBatch"),ke=i((S,T)=>{$.mkdirSync(r,{recursive:!0});let F,D,j;try{j=On(l,()=>{let re=A(S),Q=T(re);if(Q.length!==S||Q.some((oe,ye)=>oe.seq!==re+ye))throw new Error("Runtime event batch must match its reserved sequence range");return F=Fe(Q),D=Q,Q})}catch(re){if(!(re instanceof bt)||D===void 0)throw re;j=D,F=F===void 0?re.cleanupError:new AggregateError([F,re.cleanupError],"Runtime event file and sequence-lock cleanup both failed")}let V=j[0];if(F!==void 0&&V!==void 0){let re=x(V.runId);try{H(`${re}:trim`,`Failed to trim runtime event file: ${He(F).message}`,{runId:V.runId,sessionId:V.sessionId,file:re})}catch(Q){ge({source:"runtime.persistence",level:"warn",message:"Runtime events committed, but their trim warning could not be recorded",detail:Q})}}return j},"commitEventBatch"),ue=i(S=>{if(S?.sinceSeq===void 0)return;let T=i(F=>{if(S.sinceSeq<F.droppedThrough)throw Pe(`Runtime event history before sequence ${F.droppedThrough} is no longer retained`)},"assertWatermark");if(S.runId!==void 0){T(vs(p(S.runId)));return}if($.existsSync(o))for(let F of $.readdirSync(o,{withFileTypes:!0})){if(!F.isDirectory())continue;let D=vs(Y.join(o,F.name,"events.watermark"));if(S.sessionId!==void 0)try{let j=Pi(Y.join(o,F.name,"status.json"));if(j!==void 0&&j.status.sessionId!==S.sessionId||j===void 0&&D.sessionId!==void 0&&D.sessionId!==S.sessionId)continue}catch{if(D.sessionId!==void 0&&D.sessionId!==S.sessionId)continue}T(D)}},"assertReplayCursorRetained"),qe=i(S=>{let T=E(S);if($.existsSync(T))try{let F=Kl(JSON.parse($.readFileSync(T,"utf-8")));if(F)return F;H(`${T}:shape`,`Skipped malformed runtime status record at ${Y.basename(T)}`,{runId:S,file:T})}catch(F){H(`${T}:parse`,`Skipped malformed runtime status record at ${Y.basename(T)}: ${He(F).message}`,{runId:S,file:T})}},"readIndexedRunStatus"),xe=i(S=>{try{let T=$.statSync(S,{bigint:!0});return{dev:T.dev.toString(),ino:T.ino.toString(),size:T.size.toString(),mtimeNs:T.mtimeNs.toString(),ctimeNs:T.ctimeNs.toString()}}catch(T){if(Ln(T)==="ENOENT")return null;throw T}},"readRuntimePathIdentity"),ze=i((S,T)=>S===null||T===null?S===T:S.dev===T.dev&&S.ino===T.ino&&S.size===T.size&&S.mtimeNs===T.mtimeNs&&S.ctimeNs===T.ctimeNs,"sameRuntimePathIdentity"),Ze=i(()=>{if(!$.existsSync(o))return{statuses:[],pendingRunStatuses:[],pendingOverflow:!1};let S=[],T=[],F=!1;for(let D of $.readdirSync(o,{withFileTypes:!0})){if(!D.isDirectory())continue;let j;try{j=decodeURIComponent(D.name)}catch{continue}let V=qe(j);if(V!==void 0){S.push(V);continue}if(T.length>=ls){F=!0;continue}T.push({runId:j,identity:xe(E(j))})}return{statuses:S,pendingRunStatuses:T,pendingOverflow:F}},"scanAllRunStatuses"),X=i((S,T)=>[...new Set(S)].filter(F=>Buffer.byteLength(F,"utf-8")<=ms).slice(-T),"boundedRunIds"),J=i((S,T,F=S.pendingOverflow)=>{let D=[...S.statuses].sort((j,V)=>zn(j.status,V.status));return{version:2,activeRunIds:X(D.filter(j=>!Me(j.status.phase)).map(j=>j.status.runId),Nn),recentRunIds:X(D.map(j=>j.status.runId),ki),runsDirectory:T,pendingRunStatuses:S.pendingRunStatuses,requiresRescan:F}},"createRunStatusIndex"),d=i(S=>{if(!ae(S)||S.version!==2||!Array.isArray(S.activeRunIds)||!Array.isArray(S.recentRunIds)||!Array.isArray(S.pendingRunStatuses)||typeof S.requiresRescan!="boolean")return;let T=i((Q,oe)=>{if(Q.length>oe||!Q.every(be=>typeof be=="string"&&Buffer.byteLength(be,"utf-8")<=ms))return;let ye=Q;return new Set(ye).size===ye.length?ye:void 0},"parseIds"),F=T(S.activeRunIds,Nn),D=T(S.recentRunIds,ki),j=i(Q=>{if(Q===null)return null;if(!(!ae(Q)||![Q.dev,Q.ino,Q.size,Q.mtimeNs,Q.ctimeNs].every(ye=>typeof ye=="string"&&/^\d{1,32}$/.test(ye))))return{dev:Q.dev,ino:Q.ino,size:Q.size,mtimeNs:Q.mtimeNs,ctimeNs:Q.ctimeNs}},"parseIdentity"),V=j(S.runsDirectory);if(V===void 0||S.pendingRunStatuses.length>ls)return;let re=[];for(let Q of S.pendingRunStatuses){if(!ae(Q)||typeof Q.runId!="string"||Buffer.byteLength(Q.runId,"utf-8")>ms)return;let oe=j(Q.identity);if(oe===void 0)return;re.push({runId:Q.runId,identity:oe})}if(new Set(re.map(Q=>Q.runId)).size===re.length)return F===void 0||D===void 0?void 0:{version:2,activeRunIds:F,recentRunIds:D,runsDirectory:V,pendingRunStatuses:re,requiresRescan:S.requiresRescan}},"parseRunStatusIndex"),b=i(()=>{if(!$.existsSync(m))return;let S;try{S=$.openSync(m,"r");let T=$.fstatSync(S).size;if(T>Gy)return;let F=Buffer.allocUnsafe(T),D=0;for(;D<T;){let j=$.readSync(S,F,D,T-D,D);if(j===0)return;D+=j}return d(JSON.parse(F.toString("utf-8")))}catch(T){Ln(T)!=="ENOENT"&&ge({source:"runtime.persistence",level:"warn",message:"Runtime run-status index is invalid; rebuilding it once",detail:T});return}finally{S!==void 0&&$.closeSync(S)}},"readRunStatusIndex"),M=i(S=>S.every(T=>ze(T.identity,xe(E(T.runId)))),"pendingRunStatusesUnchanged"),K=i(S=>!S.requiresRescan&&ze(S.runsDirectory,xe(o))&&M(S.pendingRunStatuses),"runStatusIndexIsCurrent"),B=i(()=>{let S,T=!1;for(let F=0;F<3;F+=1){let D=xe(o),j=Ze();T||=j.pendingOverflow;let V=xe(o),re=ze(D,V)&&M(j.pendingRunStatuses);if(S=J(j,V,!re||j.pendingOverflow),re)break}return S===void 0&&(S=J({statuses:[],pendingRunStatuses:[],pendingOverflow:!0},xe(o),!0)),T&&ge({source:"runtime.persistence",level:"warn",message:"Runtime run-status recovery found more than 1000 missing or malformed status files; startup performed one fail-closed compatibility scan",detail:{runsDir:o,trackedPendingLimit:ls}}),Cn(m,S),S},"rebuildRunStatusIndexLocked"),G=i(()=>{let S=b();return S!==void 0&&K(S)?S:B()},"ensureRunStatusIndexLocked"),we=new Map,pe,Se=i(S=>{pe=S.requiresRescan?xe(m)??void 0:void 0},"rememberRunStatusIndexState"),W=i((S,T)=>{$.mkdirSync(r,{recursive:!0}),On(m,()=>{let F=b()??B();Se(F);let D=[...we.values()].filter(ne=>ne.runId!==S.runId).sort(zn),j=new Set(D.map(ne=>ne.runId)),V=X([...F.recentRunIds.filter(ne=>ne!==S.runId&&!j.has(ne)),...D.map(ne=>ne.runId),S.runId],ki),re=T?F.activeRunIds.filter(ne=>ne!==S.runId&&!j.has(ne)):X([...F.activeRunIds.filter(ne=>ne!==S.runId&&!j.has(ne)),S.runId],Nn),Q=F.pendingRunStatuses.filter(ne=>ne.runId!==S.runId&&!j.has(ne.runId)),oe=xe(o),ye=F.requiresRescan||!ze(oe,F.runsDirectory);if(re.length===F.activeRunIds.length&&V.length===F.recentRunIds.length&&Q.length===F.pendingRunStatuses.length&&ze(oe,F.runsDirectory)&&re.every((ne,Oe)=>ne===F.activeRunIds[Oe])&&V.every((ne,Oe)=>ne===F.recentRunIds[Oe])){for(let ne of D)we.delete(ne.runId);return}let Je={version:2,activeRunIds:re,recentRunIds:V,runsDirectory:oe,pendingRunStatuses:Q,requiresRescan:ye};Cn(m,Je),Se(Je);for(let ne of D)we.delete(ne.runId)})},"updateRunStatusIndex"),me=i(S=>{if(Me(S.phase)){we.delete(S.runId),we.set(S.runId,S),$.mkdirSync(r,{recursive:!0});try{On(m,()=>{if(pe!==void 0&&ze(pe,xe(m)))return;let T=b()??B();if(T.requiresRescan)Se(T);else{let F={...T,requiresRescan:!0};Cn(m,F),Se(F)}})}catch(T){ge({source:"runtime.persistence",level:"warn",message:"Runtime terminal status committed, but its derived run-status index could not be marked dirty",detail:{runId:S.runId,error:T}})}}},"finalizeRunStatusIndex");return{runtimeDir:r,commitEvents(S,T){return ke(S,T)},close(){$.mkdirSync(r,{recursive:!0}),On(m,()=>{Se(B())}),we.clear()},nextSessionOrder(S){$.mkdirSync(a,{recursive:!0});let T=g(S);return On(T,()=>{let F;if($.existsSync(T))try{let j=JSON.parse($.readFileSync(T,"utf-8"));typeof j=="number"&&Number.isSafeInteger(j)&&j>=0&&(F=j)}catch{F=void 0}let D=(F??O(S))+1;return Cn(T,D),D})},currentEventSeq(){return v??=k(),Math.max(R===void 0?0:R-1,I()??0,v)},replay(S){if(ue(S),S?.runId)return ee(te(x(S.runId),S.runId),S);if(!$.existsSync(o))return ee([],S);let T=[];for(let F of $.readdirSync(o,{withFileTypes:!0}))F.isDirectory()&&T.push(...te(Y.join(o,F.name,"events.jsonl"),F.name));return ee(T,S)},saveRunStatus(S){let T=y(S.runId);$.mkdirSync(T,{recursive:!0});let F=E(S.runId);return On(F,()=>{let D=Pi(F);return D&&Me(D.status.phase)||D?.owner!==void 0&&D.owner.ownerId!==n.ownerId&&!Me(S.phase)?D.status:(Cn(F,{...S,_runtime:{revision:(D?.revision??0)+1,owner:n}}),Me(S.phase)?me(S):D===void 0&&W(S,!1),S)})},requestRunStop(S,T,F){let D=E(S);return On(D,()=>{let j=Pi(D);if(j===void 0)throw new Error(`Runtime run not found: ${S}`);if(j.owner!==void 0&&j.owner.ownerId!==n.ownerId&&!Me(j.status.phase))throw Wn(`Runtime ${n.runtimeId} does not own run ${S}`,j.revision);let V=j.status,re=F===n.ownerId&&j.owner?.ownerId===n.ownerId,Q=re&&V.phase==="unknown"&&V.stop===void 0;if(V.stop!==void 0||V.phase==="unknown"&&!Q||Me(V.phase)||!Q&&V.phase!=="queued"&&!wn(V.phase))return{accepted:!1,effectDeliveryAllowed:re&&V.phase==="unknown"&&V.stop?.state==="unknown"&&V.terminal===void 0,status:V,revision:j.revision};let oe=new Date().toISOString(),{lifecycleError:ye,...be}=V,Je=Q?V:be,ne=V.phase==="queued"?{...Je,phase:"cancelled",stage:"terminal",stageChangedAt:oe,activeSubtaskCount:0,endedAt:oe,stop:{requestedAt:oe,state:"confirmed",outcome:"cancelled",reason:T,resolvedAt:oe},terminal:{revision:1,kind:"cancelled",code:"cancelled",effectOutcome:"none",message:T}}:{...Je,phase:"unknown",stage:"unknown",stageChangedAt:oe,error:"stop_outcome_unconfirmed",stop:{requestedAt:oe,state:"unknown",outcome:"unknown",reason:T}},Oe=j.revision+1;return Cn(D,{...ne,_runtime:{revision:Oe,owner:n}}),me(ne),{accepted:!0,effectDeliveryAllowed:re,status:ne,revision:Oe}})},loadRunStatus(S){return qe(S)},loadRunStatuses(){return $.mkdirSync(r,{recursive:!0}),On(m,()=>{let S=G(),F=[...new Set([...S.activeRunIds,...S.recentRunIds])].flatMap(oe=>{let ye=qe(oe);return ye===void 0?[]:[ye]}),D=new Map(F.map(oe=>[oe.status.runId,oe])),j=S.activeRunIds.filter(oe=>{let ye=D.get(oe);return ye!==void 0&&!Me(ye.status.phase)}),V=S.activeRunIds.flatMap(oe=>{let ye=D.get(oe);return ye!==void 0&&Me(ye.status.phase)?[ye]:[]}).sort((oe,ye)=>zn(oe.status,ye.status)),re=new Set(V.map(oe=>oe.status.runId)),Q=X([...S.recentRunIds.filter(oe=>D.has(oe)&&!re.has(oe)),...V.map(oe=>oe.status.runId)],ki);if(j.length!==S.activeRunIds.length||Q.length!==S.recentRunIds.length||j.some((oe,ye)=>oe!==S.activeRunIds[ye])||Q.some((oe,ye)=>oe!==S.recentRunIds[ye])){let oe={...S,activeRunIds:j,recentRunIds:Q};Cn(m,oe),Se(oe)}else Se(S);return F})},loadSessionSettingsVersioned(S){let T=u(S);if(!$.existsSync(T))return{revision:0,value:{}};try{let F=JSON.parse($.readFileSync(T,"utf-8"));return ae(F)&&Number.isSafeInteger(F.revision)&&typeof F.revision=="number"&&F.revision>=0&&ae(F.value)?{revision:F.revision,value:Il(F.value)}:{revision:0,value:Il(F)}}catch(F){return H(`${T}:parse`,`Skipped malformed runtime session settings at ${Y.basename(T)}: ${He(F).message}`,{sessionId:S,file:T}),{revision:0,value:{}}}},loadSessionSettings(S){return this.loadSessionSettingsVersioned(S).value},saveSessionSettingsVersioned(S,T){$.mkdirSync(s,{recursive:!0});let F=u(S);Cn(F,{revision:T.revision,value:lw(T.value)})},saveSessionSettings(S,T){let F=this.loadSessionSettingsVersioned(S);this.saveSessionSettingsVersioned(S,{revision:F.revision+1,value:T})},loadPermissionGrants(){if(!$.existsSync(c))return{revision:0,value:[]};try{let S=JSON.parse($.readFileSync(c,"utf-8"));if(!ae(S)||!Number.isSafeInteger(S.revision)||!Array.isArray(S.value))throw new Error("invalid permission grant store shape");return{revision:S.revision,value:S.value.map(Kh)}}catch(S){throw new Error(`Permission grant store is untrusted: ${He(S).message}`)}},savePermissionGrants(S){$.mkdirSync(r,{recursive:!0}),Cn(c,S)}}}i(KR,"createRuntimePersistence");function Cn(e,n){Hi(e,`${JSON.stringify(n,null,2)}
377
+ `)}i(Cn,"writeRuntimeJsonAtomic");function Hi(e,n){let t=`${e}.${process.pid}.${Qe()}.tmp`,r,o=!1,s;try{r=$.openSync(t,"wx",384),$.writeFileSync(r,n,"utf-8"),$.fsyncSync(r),$.closeSync(r),r=void 0,$.renameSync(t,e),o=!0}catch(c){s=c}let a=[];if(r!==void 0)try{$.closeSync(r)}catch(c){a.push(c)}try{$.rmSync(t,{force:!0})}catch(c){a.push(c)}if(!o)throw a.length>0?new AggregateError([s,...a],`Runtime atomic write and cleanup both failed: ${e}`):s;if(a.length===1)throw a[0];if(a.length>1)throw new AggregateError(a,`Runtime atomic-write cleanup failed: ${e}`)}i(Hi,"writeRuntimeTextAtomic");function On(e,n){let t=`${e}.lock`,r=performance.now()+2e3,o=new Int32Array(new SharedArrayBuffer(4)),s=Qe();VR(t),GR(t,r);let a=`${t}.reclaim`,c=!$.existsSync(a)&&!$.existsSync(`${a}.cleanup`)&&!zR(t)&&sl(t,s);for(;!c;){try{c=XR(t,r,()=>{if(!JR(t,r))return!1;if($.existsSync(t)){if(Ls(t,Fs(r))!=="gone")return!1;let y=Fn(t);if(y===void 0||(Hs(t,y.token),$.existsSync(t)))return!1}return sl(t,s)})}catch(y){if(Fn(t)?.token===s)try{Or(t,s)}catch(x){throw ir(t,t,s,"blocking"),new AggregateError([y,x],"Runtime status lock acquisition and cleanup both failed")}throw y}if(c)break;if(performance.now()>=r)throw new Oi(t);Atomics.wait(o,0,0,10)}let l=!1,m,R;try{m=n(),l=!0}catch(y){R=y}let v;try{Or(t,s)}catch(y){ir(t,t,s,"blocking"),v=y}if(!l)throw v!==void 0&&(R instanceof Mr?R.includeLockCleanupFailure(v):R=new AggregateError([R,v],"Runtime status operation and lock cleanup both failed")),R;if(v!==void 0)throw new bt(v);return m}i(On,"withRuntimeStatusFileLock");var Es=Bl(process.pid),Xn=new Map,_r=new Set,nr=new Set;function ir(e,n,t,r,o){Xn.set(e,{family:n,token:t,kind:r,...o===void 0?{}:{fileIdentity:o}}),r==="candidate"&&_r.add(n)}i(ir,"rememberAbandonedRuntimeLockFile");function $i(e,n){return{pid:process.pid,createdAt:Date.now(),token:e,...Es===void 0?{}:{processStartIdentity:Es},...n===void 0?{}:{ticket:n}}}i($i,"runtimeStatusLockRecord");function Fn(e){try{let n=JSON.parse($.readFileSync(e,"utf-8"));return!ae(n)||!Number.isSafeInteger(n.pid)||typeof n.pid!="number"||n.pid<=0||!Number.isFinite(n.createdAt)||typeof n.createdAt!="number"||typeof n.token!="string"||n.processStartIdentity!==void 0&&typeof n.processStartIdentity!="string"||n.ticket!==void 0&&(typeof n.ticket!="number"||!Number.isSafeInteger(n.ticket)||n.ticket<=0)?void 0:{pid:n.pid,createdAt:n.createdAt,token:n.token,...n.processStartIdentity===void 0?{}:{processStartIdentity:n.processStartIdentity},...n.ticket===void 0?{}:{ticket:n.ticket}}}catch{return}}i(Fn,"readRuntimeStatusLockRecord");function Ls(e,n=1e3){let t=Fn(e);if(t===void 0)return"unknown";try{try{process.kill(t.pid,0)}catch(o){return Ln(o)==="ESRCH"?"gone":"unknown"}if(typeof t.processStartIdentity!="string")return"alive";let r=t.pid===process.pid?Es:Bl(t.pid,n);return r===void 0?"unknown":r===t.processStartIdentity?"alive":"gone"}catch{return"unknown"}}i(Ls,"runtimeStatusLockOwnerState");function sl(e,n,t){if(_r.has(e))return al(e,n,t);let r=`${e}.candidate.${process.pid}.${Qe()}`,o,s=!1,a,c=!1,l=!1;try{o=$.openSync(r,"wx",384),$.writeFileSync(o,JSON.stringify($i(n,t)),"utf-8"),$.fsyncSync(o),$.closeSync(o),o=void 0;try{$.linkSync(r,e),c=!0,s=!0}catch(R){let v=Ln(R);if(v==="EEXIST")s=!0;else if(UR(v))s=!0,l=!0;else throw R}}catch(R){a=R}let m=[];if(o!==void 0)try{$.closeSync(o)}catch(R){m.push(R)}try{$.rmSync(r,{force:!0})}catch(R){ir(r,e,n,"candidate"),m.push(R)}if(!s)throw m.length>0?new AggregateError([a,...m],`Runtime status lock publication and cleanup both failed: ${e}`):a;return m.length>0&&(nr.has(e)||(nr.add(e),ge({source:"runtime.status.lock",level:"warn",message:"Runtime status lock candidate cleanup was deferred; using exclusive creation for this lock family.",detail:{lockFile:e,cleanupErrors:m}}))),l?al(e,n,t):c}i(sl,"createRuntimeStatusLockFile");function UR(e){return e==="EACCES"||e==="EPERM"||e==="ENOTSUP"||e==="EOPNOTSUPP"||e==="ENOSYS"||e==="EXDEV"}i(UR,"runtimeStatusHardLinkUnavailable");function al(e,n,t){let r,o=!1,s,a;try{return r=$.openSync(e,"wx",384),o=!0,s=YR(r),$.writeFileSync(r,JSON.stringify($i(n,t)),"utf-8"),$.fsyncSync(r),$.closeSync(r),r=void 0,!0}catch(l){if(!o&&Ln(l)==="EEXIST")return!1;a=l}let c=[];if(r!==void 0)try{$.closeSync(r)}catch(l){c.push(l)}if(o)try{$.rmSync(e,{force:!0})}catch(l){ir(e,e,n,"unpublished",s),c.push(l)}throw c.length>0?new AggregateError([a,...c],`Runtime fallback status lock creation and cleanup both failed: ${e}`):a}i(al,"createRuntimeStatusLockFileByExclusiveWrite");function XR(e,n,t){let r=Qe(),o=`${e}.choosing.${r}`,s=`${e}.claim.${r}`,a=!1,c,l;try{Hi(o,JSON.stringify($i(r)));let R=Ps(e,"claim").map(y=>Fn(y)?.ticket).filter(y=>y!==void 0),v=Math.max(0,...R)+1;if(!Number.isSafeInteger(v))throw new Error(`Runtime status lock ticket overflow: ${e}`);Hi(s,JSON.stringify($i(r,v))),Or(o,r),WR(e,s,v,r,n),c=t(),a=!0}catch(R){l=R}let m=[];for(let R of[s,o])if($.existsSync(R))try{Or(R,r)}catch(v){ir(R,e,r,"blocking"),m.push(v)}if(!a)throw m.length>0?new AggregateError([l,...m],"Runtime status acquisition and gate cleanup both failed"):l;if(m.length===1)throw m[0];if(m.length>1)throw new AggregateError(m,"Runtime status acquisition gate cleanup failed");return c}i(XR,"withRuntimeStatusAcquisitionGate");function WR(e,n,t,r,o){let s=new Int32Array(new SharedArrayBuffer(4));for(;;){let a=!1;for(let c of Ps(e,"choosing"))c!==`${e}.choosing.${r}`&&(xs(c,o)||(a=!0));for(let c of Ps(e,"claim")){if(c===n)continue;let l=Fn(c);if(l?.ticket===void 0){a=!0;continue}l.ticket>t||l.ticket===t&&l.token.localeCompare(r)>0||xs(c,o)||(a=!0)}if(!a)return;if(performance.now()>=o)throw new Oi(e);Atomics.wait(s,0,0,10)}}i(WR,"waitForRuntimeStatusGateTurn");function Ps(e,n){let t=Y.dirname(e),r=`${Y.basename(e)}.${n}.`;try{return $.readdirSync(t).filter(o=>o.startsWith(r)&&/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(o.slice(r.length))).map(o=>Y.join(t,o))}catch(o){if(Ln(o)==="ENOENT")return[];throw o}}i(Ps,"runtimeStatusGateFiles");function zR(e){let n=Y.dirname(e),t=Y.basename(e),r=[`${t}.choosing.`,`${t}.claim.`];try{return $.readdirSync(n).some(o=>r.some(s=>o.startsWith(s)&&/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(o.slice(s.length))))}catch(o){if(Ln(o)==="ENOENT")return!1;throw o}}i(zR,"hasRuntimeStatusAcquisitionGateFiles");function xs(e,n){if(!$.existsSync(e))return!0;if(Ls(e,Fs(n))!=="gone")return!1;let t=Fn(e);return t===void 0?!1:(Hs(e,t.token),!$.existsSync(e))}i(xs,"removeGoneRuntimeStatusGateFile");function JR(e,n){let t=`${e}.reclaim`;for(let r of[`${t}.cleanup`,t])if($.existsSync(r)&&!xs(r,n))return!1;return!0}i(JR,"clearLegacyRuntimeReclaimGates");function VR(e){for(let[t,r]of[...Xn]){if(r.family!==e)continue;if(!$.existsSync(t)){Xn.delete(t);continue}if(r.kind==="unpublished"){if(r.fileIdentity===void 0)throw new bt(new Error(`Runtime unpublished lock identity is unavailable: ${t}`));let s=QR(t);if(!ZR(s,r.fileIdentity)){Xn.delete(t);continue}try{$.rmSync(t,{force:!0}),Xn.delete(t)}catch(a){throw new bt(a)}continue}if(Fn(t)?.token!==r.token){Xn.delete(t);continue}try{Or(t,r.token),Xn.delete(t)}catch(s){if(r.kind==="blocking")throw s}}[...Xn.values()].some(t=>t.family===e&&t.kind==="candidate")||(_r.delete(e),nr.delete(e))}i(VR,"retryAbandonedRuntimeLockCleanup");function GR(e,n){let t=dl(e);for(let o of t){let s=Fn(o);if(!(s===void 0||Ls(o,Fs(n))!=="gone"))try{Hs(o,s.token)}catch(a){ir(o,e,s.token,"candidate"),nr.has(e)||(nr.add(e),ge({source:"runtime.status.lock",level:"warn",message:"A prior Runtime lock candidate could not be removed; using exclusive creation for this lock family.",detail:{lockFile:e,candidate:o,error:a}}))}}dl(e).length>0?_r.add(e):[...Xn.values()].some(o=>o.family===e&&o.kind==="candidate")||(_r.delete(e),nr.delete(e))}i(GR,"reconcileRuntimeStatusLockCandidates");function dl(e){let n=Y.dirname(e),t=`${Y.basename(e)}.candidate.`;try{return $.readdirSync(n).filter(r=>r.startsWith(t)&&/^\d+\.[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(r.slice(t.length))).map(r=>Y.join(n,r))}catch(r){if(Ln(r)==="ENOENT")return[];throw r}}i(dl,"runtimeStatusLockCandidateFiles");function YR(e){let n=$.fstatSync(e,{bigint:!0});return{device:n.dev,inode:n.ino}}i(YR,"runtimeStatusLockDescriptorIdentity");function QR(e){try{let n=$.statSync(e,{bigint:!0});return{device:n.dev,inode:n.ino}}catch(n){if(Ln(n)==="ENOENT")return;throw n}}i(QR,"runtimeStatusLockPathIdentity");function ZR(e,n){return e!==void 0&&e.device===n.device&&e.inode===n.inode}i(ZR,"runtimeStatusLockFileIdentityEquals");function Fs(e){return Math.max(0,Math.min(1e3,Math.floor(e-performance.now())))}i(Fs,"runtimeLockProbeBudget");function Hs(e,n){return!$.existsSync(e)||Fn(e)?.token!==n?!1:($.rmSync(e,{force:!0}),!0)}i(Hs,"tryRemoveRuntimeStatusLockOwnedBy");function Or(e,n){if(!$.existsSync(e))throw new Error(`Runtime status lock ownership disappeared: ${e}`);if(Fn(e)?.token!==n)throw new Error(`Runtime status lock ownership changed: ${e}`);$.rmSync(e,{force:!0})}i(Or,"removeRuntimeStatusLockOwnedBy");function Bl(e,n=1e3){if(n<=0)return;if(process.platform==="linux")try{let o=$.readFileSync(`/proc/${e}/stat`,"utf-8"),s=o.slice(o.lastIndexOf(")")+2).trim().split(/\s+/);return s[19]===void 0?void 0:`linux:${s[19]}`}catch{return}if(process.platform==="win32"){let o=Wc("powershell.exe",["-NoProfile","-NonInteractive","-Command",`([DateTimeOffset](Get-Process -Id ${e} -ErrorAction Stop).StartTime).ToUnixTimeMilliseconds()`],{encoding:"utf-8",timeout:n,windowsHide:!0}),s=o.status===0?o.stdout.trim():"";return/^\d+$/.test(s)?`windows:${s}`:void 0}let t=Wc("ps",["-o","lstart=","-p",String(e)],{encoding:"utf-8",timeout:n,windowsHide:!0}),r=t.status===0?t.stdout.trim():"";return r===""?void 0:`${process.platform}:${r}`}i(Bl,"readRuntimeProcessStartIdentity");function Ln(e){return ae(e)&&typeof e.code=="string"?e.code:void 0}i(Ln,"runtimeErrorCode");function Pi(e){if(!$.existsSync(e))return;let n=JSON.parse($.readFileSync(e,"utf-8")),t=Kl(n);if(!t)throw new Error(`Runtime status record is malformed: ${e}`);return t}i(Pi,"readPersistedRuntimeRunStatus");function vs(e){if(!$.existsSync(e))return{droppedThrough:0};try{let n=$.readFileSync(e,"utf-8").trim(),t=JSON.parse(n);return ae(t)&&Number.isSafeInteger(t.droppedThrough)&&typeof t.droppedThrough=="number"&&t.droppedThrough>=0&&(t.sessionId===void 0||typeof t.sessionId=="string")?{droppedThrough:t.droppedThrough,...t.sessionId!==void 0?{sessionId:t.sessionId}:{}}:typeof t=="number"&&Number.isSafeInteger(t)&&t>=0?{droppedThrough:t}:{droppedThrough:0}}catch{return{droppedThrough:0}}}i(vs,"readRuntimeEventWatermark");function eh(e){if(e.sessionsDir!==void 0)return Y.resolve(e.sessionsDir);if(e.homeDir!==void 0)return Y.join(Y.resolve(e.homeDir),".kodax","sessions")}i(eh,"resolveRuntimeSessionsDir");function nh(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.runId!==void 0&&e.runId!==n.runId||n.type!==void 0&&!(Array.isArray(n.type)?n.type:[n.type]).includes(e.type)||n.sinceSeq!==void 0&&e.seq<=n.sinceSeq):!0}i(nh,"eventMatchesReplayFilter");function kr(e){return ae(e)?typeof e.id=="string"&&typeof e.seq=="number"&&typeof e.time=="string"&&typeof e.sessionId=="string"&&typeof e.runId=="string"&&typeof e.type=="string"&&"payload"in e:!1}i(kr,"isRuntimeEvent");function ji(e){if(ae(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!ih(e.phase)||typeof e.startedAt!="string"||typeof e.provider!="string"))return{runId:e.runId,sessionId:e.sessionId,...typeof e.turnId=="string"?{turnId:e.turnId}:{},phase:e.phase,...oh(e.stage)?{stage:e.stage}:{},...typeof e.stageChangedAt=="string"?{stageChangedAt:e.stageChangedAt}:{},...Number.isSafeInteger(e.activeSubtaskCount)&&typeof e.activeSubtaskCount=="number"&&e.activeSubtaskCount>=0?{activeSubtaskCount:e.activeSubtaskCount}:{},startedAt:e.startedAt,...typeof e.acceptedAt=="string"?{acceptedAt:e.acceptedAt}:{},...Number.isSafeInteger(e.sessionOrder)&&typeof e.sessionOrder=="number"?{sessionOrder:e.sessionOrder}:{},...typeof e.queuedAt=="string"?{queuedAt:e.queuedAt}:{},...typeof e.runningAt=="string"?{runningAt:e.runningAt}:{},...typeof e.executionStartedAt=="string"?{executionStartedAt:e.executionStartedAt}:{},...typeof e.endedAt=="string"?{endedAt:e.endedAt}:{},provider:e.provider,...e.mode==="coding"||e.mode==="managed_task"?{mode:e.mode}:{},...ae(e.origin)&&typeof e.origin.principalId=="string"?{origin:{principalId:e.origin.principalId,...typeof e.origin.clientName=="string"?{clientName:e.origin.clientName}:{},...typeof e.origin.clientVersion=="string"?{clientVersion:e.origin.clientVersion}:{},...typeof e.origin.operationId=="string"?{operationId:e.origin.operationId}:{}}}:{},...typeof e.model=="string"?{model:e.model}:{},...typeof e.reasoning=="string"?{reasoning:e.reasoning}:{},...typeof e.error=="string"?{error:e.error}:{},...ml(e.lifecycleError)!==void 0?{lifecycleError:ml(e.lifecycleError)}:{},...fl(e.terminal)!==void 0?{terminal:fl(e.terminal)}:{},...ul(e.continuation)!==void 0?{continuation:ul(e.continuation)}:{},...cl(e.interruptInputs)!==void 0?{interruptInputs:cl(e.interruptInputs)}:{},...ll(e.stop)!==void 0?{stop:ll(e.stop)}:{}}}i(ji,"parseRuntimeRunStatus");function Kl(e){let n=ji(e);if(!n)return;let t=ae(e)&&ae(e._runtime)?e._runtime:void 0,r=th(t?.owner),o=t!==void 0&&Number.isSafeInteger(t.revision)&&typeof t.revision=="number"&&t.revision>=0?t.revision:0;return{status:n,revision:o,...r!==void 0?{owner:r}:{}}}i(Kl,"parsePersistedRuntimeRunStatus");function th(e){if(!(!ae(e)||typeof e.ownerId!="string"||typeof e.runtimeId!="string"||!Number.isSafeInteger(e.pid)||typeof e.pid!="number"||e.pid<=0||typeof e.startedAt!="string"||e.livenessId!==void 0&&typeof e.livenessId!="string"||e.livenessPort!==void 0&&(!Number.isSafeInteger(e.livenessPort)||typeof e.livenessPort!="number")))return{ownerId:e.ownerId,runtimeId:e.runtimeId,pid:e.pid,startedAt:e.startedAt,...typeof e.livenessId=="string"?{livenessId:e.livenessId}:{},...typeof e.livenessPort=="number"?{livenessPort:e.livenessPort}:{}}}i(th,"parseRuntimeRunOwner");function ul(e){if(!(!ae(e)||typeof e.inputId!="string"||typeof e.afterRunId!="string"||e.delivery!=="after_turn"||e.state!=="queued"&&e.state!=="delivered"&&e.state!=="terminal"||typeof e.contentPreview!="string"))return{inputId:e.inputId,afterRunId:e.afterRunId,delivery:e.delivery,state:e.state,contentPreview:e.contentPreview}}i(ul,"parseRuntimeContinuationStatus");function cl(e){if(e===void 0||!Array.isArray(e))return;let n=e.map(rh);return n.every(t=>t!==void 0)?n:void 0}i(cl,"parseRuntimeInterruptInputStatuses");function ll(e){if(!(!ae(e)||typeof e.requestedAt!="string"||e.state!=="unknown"&&e.state!=="confirmed"||e.outcome!=="unknown"&&e.outcome!=="cancelled"&&e.outcome!=="interrupted"&&e.outcome!=="completed"&&e.outcome!=="failed"||typeof e.reason!="string"))return{requestedAt:e.requestedAt,state:e.state,outcome:e.outcome,reason:e.reason,...typeof e.resolvedAt=="string"?{resolvedAt:e.resolvedAt}:{}}}i(ll,"parseRuntimeRunStopStatus");function ml(e){if(!(!ae(e)||e.code!=="actor_settlement_retrying"&&e.code!=="actor_settlement_not_persisted"||typeof e.message!="string"||typeof e.retryable!="boolean"))return{code:e.code,message:e.message,retryable:e.retryable}}i(ml,"parseRuntimeRunLifecycleError");function rh(e){if(!ae(e)||typeof e.inputId!="string"||typeof e.afterRunId!="string"||e.delivery!=="interrupt"||e.state!=="queued"&&e.state!=="delivered"&&e.state!=="terminal"||typeof e.contentPreview!="string"||typeof e.queuedAt!="string"||e.deliveredAt!==void 0&&typeof e.deliveredAt!="string"||e.entryId!==void 0&&(typeof e.entryId!="string"||e.entryId.length===0))return;let n=ae(e.origin)&&typeof e.origin.principalId=="string"?{principalId:e.origin.principalId,...typeof e.origin.clientName=="string"?{clientName:e.origin.clientName}:{},...typeof e.origin.clientVersion=="string"?{clientVersion:e.origin.clientVersion}:{},...typeof e.origin.operationId=="string"?{operationId:e.origin.operationId}:{}}:void 0;return{inputId:e.inputId,afterRunId:e.afterRunId,delivery:"interrupt",state:e.state,contentPreview:e.contentPreview,queuedAt:e.queuedAt,...typeof e.deliveredAt=="string"?{deliveredAt:e.deliveredAt}:{},...typeof e.entryId=="string"&&e.entryId.length>0?{entryId:e.entryId}:{},...n!==void 0?{origin:n}:{}}}i(rh,"parseRuntimeInterruptInputStatus");function ih(e){return e==="queued"||e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"||e==="unknown"||e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(ih,"isRuntimeRunPhase");function oh(e){return e==="queued"||e==="executing"||e==="waiting_agent"||e==="recovering"||e==="finalizing"||e==="terminal"||e==="unknown"||e==="starting"||e==="routing"||e==="preflight"||e==="round"||e==="worker"||e==="upgrade"||e==="verifying"}i(oh,"isRuntimeRunStage");function fl(e){if(ae(e)&&!(!Number.isSafeInteger(e.revision)||typeof e.revision!="number"||!sh(e.kind)||!ah(e.code)||e.effectOutcome!=="none"&&e.effectOutcome!=="known"&&e.effectOutcome!=="unknown"))return{revision:e.revision,kind:e.kind,code:e.code,effectOutcome:e.effectOutcome,...typeof e.message=="string"?{message:e.message}:{}}}i(fl,"parseRuntimeTerminalFact");function sh(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(sh,"isRuntimeTerminalKind");function ah(e){return e==="completed"||e==="run_failed"||e==="blocked"||e==="cancelled"||e==="interrupted"||e==="runtime_restarted"||e==="daemon_crashed"||e==="credential_unavailable"||e==="host_not_dispatched"||e==="host_outcome_unknown"||e==="control_history_untrusted"}i(ah,"isRuntimeTerminalCode");function Mi(e,n,t){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,...e.stage!==void 0?{stage:e.stage}:{},...e.stageChangedAt!==void 0?{stageChangedAt:e.stageChangedAt}:{},...e.activeSubtaskCount!==void 0?{activeSubtaskCount:e.activeSubtaskCount}:{},startedAt:e.startedAt,sessionOrder:e.sessionOrder??0,...e.queuedAt!==void 0?{queuedAt:e.queuedAt}:{},...e.runningAt!==void 0?{runningAt:e.runningAt}:{},...e.endedAt!==void 0?{endedAt:e.endedAt}:{},provider:e.provider,...e.origin!==void 0?{origin:e.origin}:{},...e.model!==void 0?{model:e.model}:{},...e.reasoning!==void 0?{reasoning:e.reasoning}:{},...e.error!==void 0?{error:e.error}:{},...e.lifecycleError!==void 0?{lifecycleError:e.lifecycleError}:{},...e.terminal!==void 0?{terminal:e.terminal}:{},...e.stop!==void 0?{stop:e.stop}:{},...e.continuation!==void 0?{continuation:{inputId:e.continuation.inputId,afterRunId:e.continuation.afterRunId,delivery:e.continuation.delivery,contentPreview:e.continuation.contentPreview}}:{},interruptInputs:(e.interruptInputs??[]).map(r=>({...r})),interruptInputOpen:!1,mode:e.mode??"coding",hadProviderCredential:!1,result:Promise.resolve(om(e)),terminalEmitted:Me(e.phase),ownedByRuntime:n,...t!==void 0?{observedOwner:t}:{}}}i(Mi,"recordFromPersistedStatus");function Ul(e,n,t){let r=Xl(e,n,t);if(r!==void 0)return r;let o=[...t.replay({runId:e.runId})],s=$s(e,o);if(Me(s.phase))return s!==e&&Jn(n,t,void 0,s),s;let a=s.phase==="queued"?"runtime_restarted":"daemon_crashed",c=new Date().toISOString(),l={...s,phase:"interrupted",stage:"terminal",stageChangedAt:c,activeSubtaskCount:0,endedAt:c,error:a,...s.stop!==void 0?{stop:{...s.stop,state:"confirmed",outcome:"interrupted",resolvedAt:c}}:{},...s.interruptInputs!==void 0?{interruptInputs:s.interruptInputs.map(R=>R.state==="queued"?{...R,state:"terminal"}:R)}:{},terminal:{revision:1,kind:"interrupted",code:a,effectOutcome:s.phase==="queued"?"none":"unknown",message:"Runtime process restarted before this run reached a durable terminal state."}},m=Jn(n,t,void 0,l);return m===void 0?{...s,phase:"unknown",stage:"unknown",error:"terminal_recovery_not_persisted"}:(m!==l||n.emit("run.interrupted",m,{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}}),m)}i(Ul,"interruptPersistedNonTerminalRun");function Xl(e,n,t){let r=[...t.replay({runId:e.runId})],o=[...r].reverse().find(c=>{if(!Ns(c.type))return!1;let l=ji(c.payload);return l?.runId===e.runId&&l.sessionId===e.sessionId&&l.phase===dh(c.type)});if(o===void 0)return;let s=ji(o.payload);if(s===void 0)return;let a=$s(s,r);return Jn(n,t,void 0,a),a}i(Xl,"recoverPersistedDurableTerminal");function $s(e,n){if(e.interruptInputs===void 0)return e;let t=new Map;for(let s of n){if(s.type!=="run.input.delivered"||s.runId!==e.runId||s.sessionId!==e.sessionId||!ae(s.payload))continue;let a=s.payload.inputs;if(Array.isArray(a))for(let c of a)ae(c)&&(typeof c.inputId!="string"||c.afterRunId!==e.runId||typeof c.deliveredAt!="string"||c.entryId!==void 0&&(typeof c.entryId!="string"||c.entryId.length===0)||t.set(c.inputId,{deliveredAt:c.deliveredAt,...typeof c.entryId=="string"?{entryId:c.entryId}:{}}))}let r=!1,o=e.interruptInputs.map(s=>{let a=t.get(s.inputId);return a===void 0?s:s.state==="queued"?(r=!0,{...s,state:"delivered",deliveredAt:a.deliveredAt,...a.entryId!==void 0?{entryId:a.entryId}:{}}):s.state==="delivered"&&a.entryId!==void 0&&s.entryId!==a.entryId?(r=!0,{...s,entryId:a.entryId}):s});return r?{...e,interruptInputs:o}:e}i($s,"reconcilePersistedInterruptDeliveries");function dh(e){if(e==="run.completed")return"completed";if(e==="run.failed")return"failed";if(e==="run.cancelled")return"cancelled";if(e==="run.interrupted")return"interrupted"}i(dh,"terminalPhaseFromEvent");function pl(e,n){if(e===void 0)return n;let t=Date.parse(e);return Number.isFinite(t)?Math.max(1,t-Date.now()):1}i(pl,"resolvePermissionTimeoutMs");function uh(e,n){let t=new Map,r=i((c,l,m,R)=>{let v=t.get(c);return!v||m?.runId!==void 0&&v.request.runId!==m.runId||m?.expectedRevision!==void 0&&v.request.revision!==m.expectedRevision?{requestId:c,accepted:!1,status:"already_resolved"}:(l.status==="answered"&&ch(v.request.kind,l.answer),t.delete(c),clearTimeout(v.timer),v.resolve(l),e.emit("user_input.resolved",{requestId:c,kind:v.request.kind,status:l.status,...R!==void 0?{reason:R}:{}},{sessionId:v.request.sessionId,runId:v.request.runId,...v.request.turnId!==void 0?{turnId:v.request.turnId}:{}}),{requestId:c,accepted:!0,status:l.status})},"resolvePending"),o=i((c,l=n)=>{let m=`input_${Qe().replace(/-/g,"").slice(0,12)}`,R=new Date,v={id:m,revision:0,sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{},kind:c.kind,options:c.options,createdAt:R.toISOString(),expiresAt:new Date(R.getTime()+l).toISOString()},y=i(()=>{},"resolveResponse"),x=new Promise(E=>{y=E}),p=setTimeout(()=>{r(m,{status:"dismissed"},void 0,"timeout")},Math.max(1,l));return p.unref?.(),t.set(m,{request:v,resolve:y,timer:p}),e.emit("user_input.requested",v,{sessionId:v.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{}}),{request:v,response:x}},"trackAndWait"),s=i((c,l)=>{for(let m of[...t.values()])c(m.request)&&r(m.request.id,{status:"dismissed"},void 0,l)},"dismissMatching");return{service:{async listPending(c){return[...t.values()].map(l=>l.request).filter(l=>(c?.sessionId===void 0||l.sessionId===c.sessionId)&&(c?.runId===void 0||l.runId===c.runId))},async respond(c,l,m){return r(c,{status:"answered",answer:l},m)},async dismiss(c,l){return r(c,{status:"dismissed"},l,"client_dismissed")}},trackAndWait:o,resolve:r,rejectForRun(c,l){s(m=>m.runId===c,l)},rejectAll(c){s(()=>!0,c)}}}i(uh,"createRuntimeUserInputRegistry");function ch(e,n){if(!(e==="askUser"?Wl(n):e==="askUserMulti"?lh(n):typeof n=="string"))throw dm(`Invalid answer for ${e}`)}i(ch,"assertRuntimeUserInputAnswer");function Wl(e){return Array.isArray(e)?e.every(gl):gl(e)}i(Wl,"isAskUserAnswer");function gl(e){return typeof e=="string"||ae(e)&&e.kind==="customInput"&&typeof e.value=="string"}i(gl,"isAskUserSelectionAnswer");function lh(e){return ae(e)&&Object.values(e).every(Wl)}i(lh,"isAskUserMultiAnswer");function mh(e,n,t){let r=new Map,o=new Map,s=0,a=i((h,P=n,I)=>{let k=i(()=>{},"resolveResponse"),A=new Promise(O=>{k=O});return{request:g(h,[k],pl(h.expiresAt,P),I),response:A}},"trackAndWait"),c=i((h,P,I)=>{let k=r.get(h);if(!k||I!==void 0&&k.request.runId!==I)return!1;if(P.type==="allow_session"||P.type==="allow_always"){let A=p(k,P);E(A,k.request)}r.delete(h),k.timer&&clearTimeout(k.timer);for(let A of k.waiters)A(P);return e.emit("permission.resolved",{requestId:h,decision:P},{sessionId:k.request.sessionId,runId:k.request.runId,...k.request.turnId!==void 0?{turnId:k.request.turnId}:{}}),!0},"resolvePending"),l=i((h,P)=>{let I=[...r.values()].filter(k=>h(k.request)).map(k=>k.request.id);for(let k of I)c(k,P)},"resolveMatching"),m={request(h){return R(h)},async listPending(h){return[...r.values()].map(P=>P.request).filter(P=>Iw(P,h))},async respond(h,P,I){return c(h,P,I?.runId)},async listGrants(){let h=v();return{revision:s,value:[...h.value,...o.values()]}},async revokeGrant(h,P){let I=v();if(s!==P)throw Wn(`Permission grant revision ${P} is stale; current revision is ${s}`,s);let k=o.get(h);if(k!==void 0)return o.delete(h),s+=1,t.savePermissionGrants({revision:s,value:I.value}),u("revoked",k,s),!0;let A=I.value.find(O=>O.id===h),C=I.value.filter(O=>O.id!==h);return C.length===I.value.length?!1:(s+=1,t.savePermissionGrants({revision:s,value:C}),A!==void 0&&u("revoked",A,s),!0)}};function R(h,P){let I=P??(h.toolInput!==void 0?{toolInput:h.toolInput}:void 0),k=y(h.sessionId,h.toolName,I?.toolInput,h.executionCwd,I?.shell,I?.shellContractFingerprint);if(k!==void 0)return k.persistence==="session"?Promise.resolve({type:"allow_session",suggestionId:k.id}):Promise.resolve({type:"allow_always",suggestionId:k.id});let{toolInput:A,...C}=h,O=I===void 0?C.inputPreview:rr(I.toolInput),H={sessionId:C.sessionId,runId:C.runId,...C.turnId!==void 0?{turnId:C.turnId}:{},...C.toolCallId!==void 0?{toolCallId:C.toolCallId}:{},toolName:C.toolName,...C.reason!==void 0?{reason:C.reason}:{},...C.risk!==void 0?{risk:C.risk}:{},...O!==void 0?{inputPreview:O}:{},...C.executionCwd!==void 0?{executionCwd:C.executionCwd}:{},...C.autoModeDiagnostics!==void 0?{autoModeDiagnostics:C.autoModeDiagnostics}:{},...C.expiresAt!==void 0?{expiresAt:C.expiresAt}:{}},ee=I===void 0?void 0:x(H,I);return ee!==void 0?ee:a(H,C.timeoutMs??n,I).response}i(R,"requestPermission");function v(){let h=t.loadPermissionGrants();return s=Math.max(s,h.revision),h}i(v,"loadPersistentPermissionGrants");function y(h,P,I,k,A,C){let O=v().value;return[...o.values(),...O].find(H=>H.scope.sessionId!==void 0&&H.scope.sessionId!==h||H.scope.toolName!==void 0&&H.scope.toolName!==P||H.scope.matcher===void 0||I===void 0||H.persistence!=="session"&&H.scope.matcher.kind==="exact-command"&&typeof I.command=="string"&&Ro(I.command,A??(Jr()==="win32"?"cmd":"posix"))?!1:id(H.scope.matcher,{toolName:P,toolInput:I,executionCwd:k??process.cwd(),...A!==void 0?{shell:A}:{},...C!==void 0?{shellContractFingerprint:C}:{}}))}i(y,"findPermissionGrant");function x(h,P){let I=yl(h,P);if(I.length===0)return;let k=[...r.values()].find(A=>A.request.sessionId===h.sessionId&&A.request.runId===h.runId&&A.grantCandidates.length===I.length&&I.every(C=>A.grantCandidates.some(O=>O.persistence===C.persistence&&Ss(O.scope,C.scope))));if(k)return new Promise(A=>{k.waiters.push(A)})}i(x,"joinMatchingPendingPermission");function p(h,P){let I=P.type==="allow_session"?"session":"persistent",k="suggestionId"in P?h.grantCandidates.find(A=>A.suggestion.id===P.suggestionId&&A.persistence===I):fh(h,P.scope,I);if(!k)throw dm("Permission decision does not select a Runtime-issued grant suggestion.");return k}i(p,"resolveRuntimePermissionGrantCandidate");function E(h,P){let I={id:`grant_${Qe().replace(/-/g,"").slice(0,12)}`,scope:h.scope,createdAt:new Date().toISOString(),persistence:h.persistence,label:h.suggestion.label,sourcePermissionId:P.id};if(h.persistence==="session"){if([...o.values()].some(C=>Ss(C.scope,I.scope)))return;let A=v();s+=1,o.set(I.id,I),t.savePermissionGrants({revision:s,value:A.value}),u("created",I,s,P);return}let k=v();k.value.some(A=>Ss(A.scope,I.scope))||(s+=1,t.savePermissionGrants({revision:s,value:[...k.value,I]}),u("created",I,s,P))}i(E,"saveRuntimePermissionCandidate");function u(h,P,I,k){e.emit("permission.grant.changed",{action:h,grant:P,revision:I},{sessionId:k?.sessionId??P.scope.sessionId??"runtime",runId:k?.runId??"permission-grants",...k?.turnId!==void 0?{turnId:k.turnId}:{}})}return i(u,"emitPermissionGrantChanged"),{service:m,requestOwned(h,P){return R(h,P)},track(h){return g(h,[],pl(h.expiresAt,n))},trackAndWait(h,P=n,I){return a(h,P,I)},resolve(h,P){c(h,P)},isGranted(h,P,I,k,A,C){return y(h,P,I,k,A,C)!==void 0},rejectForRun(h,P){l(I=>I.runId===h,{type:"reject",reason:P})},rejectAll(h){l(()=>!0,{type:"reject",reason:h})},releaseSession(h){let P=v(),I=[...o.values()].filter(k=>k.scope.sessionId===h);if(I.length!==0){for(let k of I)o.delete(k.id);s+=1,t.savePermissionGrants({revision:s,value:P.value});for(let k of I)u("expired",k,s)}},releaseAllSessionGrants(){if(o.size===0)return;let h=v(),P=[...o.values()];o.clear(),s+=1,t.savePermissionGrants({revision:s,value:h.value});for(let I of P)u("expired",I,s)}};function g(h,P,I=n,k){let A=h.inputPreview===void 0?void 0:Fw(h.inputPreview),C=k===void 0?[]:yl(h,k),O=new Date,H={...h,...A!==void 0?{inputPreview:A}:{},executionCwd:Y.resolve(h.executionCwd??process.cwd()),id:`perm_${Qe().replace(/-/g,"").slice(0,12)}`,createdAt:O.toISOString(),...h.expiresAt===void 0&&I>0?{expiresAt:new Date(O.getTime()+I).toISOString()}:{},...C.length>0?{grantSuggestions:C.map(te=>te.suggestion)}:{}},ee=I>0?setTimeout(()=>{let te=r.get(H.id);if(!te)return;r.delete(H.id);let fe={type:"reject",reason:"permission request timed out",cause:"approval_timeout"};for(let Re of te.waiters)Re(fe);e.emit("permission.resolved",{requestId:H.id,decision:fe},{sessionId:H.sessionId,runId:H.runId,...H.turnId!==void 0?{turnId:H.turnId}:{}})},I):void 0;return ee?.unref?.(),r.set(H.id,{request:H,waiters:P,grantCandidates:C,...ee!==void 0?{timer:ee}:{}}),e.emit("permission.requested",H,{sessionId:H.sessionId,runId:H.runId,...H.turnId!==void 0?{turnId:H.turnId}:{}}),H}i(g,"createPendingPermission")}i(mh,"createRuntimePermissionRegistry");function fh(e,n,t){if(n.toolName!==void 0&&n.toolName!==e.request.toolName||n.sessionId!==void 0&&n.sessionId!==e.request.sessionId)return;let r=e.grantCandidates.find(o=>o.persistence!==t?!1:n.matcher!==void 0?o.scope.matcher?.kind===n.matcher.kind&&o.scope.matcher.fingerprint===n.matcher.fingerprint:!0);return!r||n.sessionId===void 0?r:{...r,scope:{...r.scope,sessionId:n.sessionId}}}i(fh,"resolveLegacyRuntimePermissionGrantCandidate");function yl(e,n){let t=Y.resolve(e.executionCwd??process.cwd()),r=yo({toolName:e.toolName,toolInput:n.toolInput,executionCwd:t,...n.shell!==void 0?{shell:n.shell}:{},...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{}});if(r.kind==="exact-command"&&(typeof n.toolInput.command!="string"||n.toolInput.command.trim().length===0))return[];let o=gh(r,n.toolInput),s=[{suggestion:{id:`scope_${Qe().replace(/-/g,"").slice(0,16)}`,kind:"session",label:Rl(r,o,e.toolName,"session")},scope:{toolName:e.toolName,sessionId:e.sessionId,matcher:r},persistence:"session"}];return r.kind!=="exact-call"&&ph(e,n,t)&&s.push({suggestion:{id:`scope_${Qe().replace(/-/g,"").slice(0,16)}`,kind:"persistent",label:Rl(r,o,e.toolName,"persistent")},scope:{toolName:e.toolName,matcher:r},persistence:"persistent"}),s}i(yl,"createRuntimePermissionGrantCandidates");function ph(e,n,t){if(e.risk==="high")return!1;let r={id:e.toolCallId??"permission-scope",name:e.toolName,input:n.toolInput},o=Y.resolve(n.projectRoot??t);if(Fa(r,o,t).denied||[...n.signals??[],...Ha.collect(r,o,t)].some(a=>a.kind==="dangerous_pattern"))return!1;if(e.toolName==="bash"){let a=typeof n.toolInput.command=="string"?n.toolInput.command:"";if(Ro(a,n.shell??(Jr()==="win32"?"cmd":"posix")))return!1}return!0}i(ph,"isPersistentRuntimePermissionSafe");function gh(e,n){let t=e.kind==="exact-command"?typeof n.command=="string"?n.command:e.toolName:e.kind==="exact-path"?e.path:e.toolName,r=Ds(t.slice(0,Nr)).replace(/\s+/g," ").trim();return r.length<=120?r:`${r.slice(0,117)}...`}i(gh,"runtimePermissionGrantLabel");function Rl(e,n,t,r){return e.kind==="exact-command"?r==="session"?`Allow this exact command for this Runtime session: ${n}`:`Always allow this exact command: ${n}`:e.kind==="exact-path"?r==="session"?`Allow ${t} on this path for this Runtime session: ${n}`:`Always allow ${t} on this path: ${n}`:`Allow this exact ${t} call for this Runtime session`}i(Rl,"runtimePermissionGrantSuggestionLabel");function yh(e,n){let t=n.lastIndexOf("/");if(t<=0)return e;let r=n.slice(0,t);return r==="/root"?e:`${e}/agent/${encodeURIComponent(r)}`}i(yh,"childParentContextId");function xi(e,n){let t=e.contextKind??(e.agentId===void 0?"root":"child"),r=e.contextId??(t==="child"&&e.agentId!==void 0?`${n}/agent/${encodeURIComponent(e.agentId)}`:n),o=e.parentContextId??(t==="child"&&e.agentId!==void 0?yh(n,e.agentId):void 0);return{...e,contextId:r,contextKind:t,...o!==void 0?{parentContextId:o}:{}}}i(xi,"withRuntimeDiagnosticIdentity");function Ss(e,n){return e.toolName===n.toolName&&e.sessionId===n.sessionId&&e.matcher?.kind===n.matcher?.kind&&e.matcher?.fingerprint===n.matcher?.fingerprint}i(Ss,"permissionScopesEqual");function Rh(e){let{bus:n,original:t,permissions:r,userInputs:o,enableSharedInteractions:s,record:a,onExecutorTerminal:c,onPhase:l,onStage:m,onMidTurnUserMessages:R}=e,v=i(u=>({sessionId:u?.sessionId??a.sessionId,runId:a.runId,turnId:u?.turnId??a.turnId}),"scopeFromMeta"),y=i((u,g,h)=>{n.emit(u,rt(g),v(h))},"emit"),x=i(()=>{(a.phase==="waiting_agent"||a.phase==="recovering")&&l("running")},"resumeFromTransientPhase"),p=i(()=>a.mode==="managed_task"&&a.stop!==void 0&&a.abortController?.signal.aborted===!0?a.stop.reason:void 0,"managedStopDecision"),E=i(async(u,g,h,P,I)=>{let k=a.phase;if(a.phase==="running"&&l("waiting_user_input"),s){let C=o.trackAndWait({sessionId:h?.sessionId??a.sessionId,runId:a.runId,...h?.turnId??a.turnId?{turnId:h?.turnId??a.turnId}:{},kind:u,options:g});try{let O=P===void 0?await C.response:await Promise.race([C.response,P().then(H=>({status:H===void 0?"dismissed":"answered",...H!==void 0?{answer:H}:{}})).then(H=>(o.resolve(C.request.id,H),H))]);return O.status==="answered"?O.answer:I}finally{a.phase==="waiting_user_input"&&l(k)}}let A=`input_${Qe().replace(/-/g,"").slice(0,12)}`;y("user_input.requested",{requestId:A,kind:u,options:g},h);try{if(P===void 0)return I;let C=await P();return y("user_input.resolved",{requestId:A,kind:u,status:C===void 0?"dismissed":"answered"},h),C}catch(C){throw y("user_input.resolved",{requestId:A,kind:u,status:"failed",error:He(C).message},h),C}finally{a.phase==="waiting_user_input"&&l(k)}},"runWithUserInputPhase");return{...t,onTextDelta(u,g){x(),y("assistant.delta",{text:u,meta:g},g),t?.onTextDelta?.(u,g)},onThinkingDelta(u,g){x(),y("thinking.delta",{text:u,meta:g},g),t?.onThinkingDelta?.(u,g)},onThinkingEnd(u,g){y("thinking.finished",{thinking:u,meta:g},g),t?.onThinkingEnd?.(u,g)},onToolUseStart(u,g){l(u.name==="wait_agent"?"waiting_agent":"running"),y("tool.started",{tool:u,meta:g},g),t?.onToolUseStart?.(u,g)},onToolProgress(u,g){y("tool.progress",{update:u,meta:g},g),t?.onToolProgress?.(u,g)},onToolSandboxObservation(u,g){y("tool.sandbox",{update:u,meta:g},g),t?.onToolSandboxObservation?.(u,g)},onToolInputDelta(u,g,h){y("tool.progress",{toolName:u,partialJson:g,meta:h},h),t?.onToolInputDelta?.(u,g,h)},onToolResult(u,g){u.name==="wait_agent"&&l("running"),y("tool.finished",{result:u,meta:g},g),t?.onToolResult?.(u,g)},onStreamEnd(u){y("run.progress",{kind:"stream_end",meta:u},u),t?.onStreamEnd?.(u)},onChildActivityEnd(u){y("child_activity.finished",{meta:u},u),t?.onChildActivityEnd?.(u)},onSessionStart(u){a.provider=u.provider,n.emit("session.loaded",rt(u),{sessionId:u.sessionId,runId:a.runId,turnId:u.turnId??a.turnId}),t?.onSessionStart?.(u)},onTurnStarted(u){a.turnId=u.turnId,n.emit("turn.started",rt(u),{sessionId:u.sessionId,runId:a.runId,turnId:u.turnId}),t?.onTurnStarted?.(u)},onTurnCompleted(u){n.emit("turn.completed",rt(u),{sessionId:u.sessionId,runId:a.runId,turnId:u.turnId}),t?.onTurnCompleted?.(u)},onTurnFailed(u){n.emit("turn.failed",rt(u),{sessionId:u.sessionId,runId:a.runId,turnId:u.turnId}),t?.onTurnFailed?.(u)},onIterationStart(u,g,h){y("run.progress",{kind:"iteration_start",iter:u,maxIter:g,meta:h},h),t?.onIterationStart?.(u,g,h)},onIterationEnd(u){y("run.progress",{kind:"iteration_end",info:u},u),t?.onIterationEnd?.(u)},onCompactStart(u){y("context.compaction.started",{meta:u},u),t?.onCompactStart?.(u)},onCompact(u,g){t?.onCompact?.(u,g)},onCompactStats(u){y("context.compaction.stats",u,u),t?.onCompactStats?.(u)},async onCompactedMessages(u,g,h){let P=g===void 0?void 0:{hasAnchor:g.anchor!==void 0,...g.anchor?.tokensBefore!==void 0?{tokensBefore:g.anchor.tokensBefore}:{},...g.anchor?.tokensAfter!==void 0?{tokensAfter:g.anchor.tokensAfter}:{},...g.anchor?.entriesRemoved!==void 0?{entriesRemoved:g.anchor.entriesRemoved}:{},...g.anchor?.reason!==void 0?{reason:g.anchor.reason}:{},artifactLedgerEntryCount:g.artifactLedger?.length??0,postCompactAttachmentCount:g.postCompactAttachments?.length??0,exactSnapshotAvailable:g.preCompactionMessages!==void 0};y("context.compaction.messages",{messageCount:u.length,update:P,meta:h},h),await t?.onCompactedMessages?.(u,g,h)},onContextCompactionFinished(u){let g=u.contextRevision??0;y("context.compaction.finished",{...u,contextId:u.contextId??a.sessionId,contextKind:u.contextKind??"root",contextRevision:g,beforeRevision:Math.max(0,g-1),afterRevision:g},u),t?.onContextCompactionFinished?.(u)},onCompactEnd(u){y("context.compaction.ended",{meta:u},u),t?.onCompactEnd?.(u)},onMidTurnUserMessages(u,g){R(g?.queuedMessageIds??[],g?.queuedMessageEntryIds),y("run.progress",{kind:"mid_turn_user_messages",contents:u,meta:g},g),t?.onMidTurnUserMessages?.(u,g)},onRetry(u,g,h,P){y("provider.retry",{reason:u,attempt:g,maxAttempts:h,meta:P},P),t?.onRetry?.(u,g,h,P)},onProviderRateLimit(u,g,h,P){y("provider.retry",{reason:"rate_limit",attempt:u,maxAttempts:g,delayMs:h,meta:P},P),t?.onProviderRateLimit?.(u,g,h,P)},onRetryAfter(u,g){y("provider.retry",{retryAfter:u,meta:g},g),t?.onRetryAfter?.(u,g)},onReasoningEffortRejected(u){y("provider.recovery",{kind:"reasoning_effort_rejected",event:u},u),t?.onReasoningEffortRejected?.(u)},onRepoIntelligenceTrace(u){y("repo_intelligence.trace",u,u),t?.onRepoIntelligenceTrace?.(u)},onContextBudgetSnapshot(u){let g=xi(u,a.sessionId);y("context.budget.snapshot",g,g),t?.onContextBudgetSnapshot?.(g)},onPromptCacheDiagnostics(u){let g=xi(u,a.sessionId);y("provider.cache.diagnostics",g,g),t?.onPromptCacheDiagnostics?.(g)},onToolExposurePlanned(u){let g=xi(u,a.sessionId);y("tool.exposure.planned",g,g),t?.onToolExposurePlanned?.(g)},onContextCompactionSkipped(u){let g=xi(u,a.sessionId);y("context.compaction.skipped",g,g),t?.onContextCompactionSkipped?.(g)},onSidecarMessage(u){y("sidecar.message",u,u),t?.onSidecarMessage?.(u)},onTodoUpdate(u,g){y("todo.updated",{items:u,meta:g},g),t?.onTodoUpdate?.(u,g)},onTodoDriftWarning(u){y("todo.warning",u,u),t?.onTodoDriftWarning?.(u)},onProviderRecovery(u,g){l("recovering"),y("provider.recovery",{event:u,meta:g},g),t?.onProviderRecovery?.(u,g)},onEffectiveConfig(u){y("config.effective",u,u),t?.onEffectiveConfig?.(u)},onWorkflowProcessEvent(u){let g=hw(u);n.emit(g,rt(u),{sessionId:u.snapshot.hostMetadata?.sessionId??a.sessionId,runId:a.runId,turnId:a.turnId}),t?.onWorkflowProcessEvent?.(u)},onComplete(u){a.interruptInputOpen=!1,c("completed"),y("run.progress",{kind:"complete",meta:u},u),t?.onComplete?.(u)},onError(u,g){a.interruptInputOpen=!1,c("failed",u);let h=a.mode==="managed_task"&&a.stop!==void 0&&a.abortController?.signal.aborted===!0&&u.name==="AbortError";y("runtime.warning",{source:"coding",severity:"error",message:h?"Managed provider observed Runtime Stop.":am(u,a).message},g),t?.onError?.(u,g)},onManagedTaskStatus(u){if(a.mode==="managed_task"&&u.phase==="completed")a.interruptInputOpen=!1,l("running"),m("finalizing",0);else if(a.mode==="managed_task"){l(u.idleWaiting===!0?"waiting_agent":"running");let g=u.idleWaitingPendingCount??(u.phase==="verifying"?0:void 0);m(u.phase??(u.idleWaiting===!0?"waiting_agent":"executing"),g)}y("run.progress",{kind:"managed_task_status",status:u},u),t?.onManagedTaskStatus?.(u)},beforeToolExecute:i(async(u,g,h)=>{let P=p();if(P!==void 0)return P;let I=xw(a),k=a.autoModeEngine;if(I!==void 0&&pn(a.permissionMode)==="auto"&&(k==="llm"||k==="rules")){if(Fl.has(u))return!0;let fe=await t?.beforeToolExecute?.(u,g,h),Re=p();return Re!==void 0?Re:fe!==void 0&&fe!==!0?fe:h?.toolId!==void 0&&I.consumeAllowedCall({id:h.toolId,name:u,input:g})?!0:"[Blocked] Runtime auto mode did not classify this concrete tool call."}if(pn(a.permissionMode)==="plan"){let fe=Al(a,u,g);if(fe!==!0&&fe!==void 0)return fe}let C=Pw(a);if(r.isGranted(h?.sessionId??a.sessionId,u,g,Ts(a),C?.shell,C?.shellContractFingerprint))return!0;let O=t?.beforeToolExecute===void 0?Al(a,u,g):void 0;if(O!==void 0)return O;let H=p();if(H!==void 0)return H;let ee=a.phase;a.phase==="running"&&l("waiting_permission");let te=r.trackAndWait({sessionId:h?.sessionId??a.sessionId,runId:a.runId,...h?.turnId??a.turnId?{turnId:h?.turnId??a.turnId}:{},...h?.toolId?{toolCallId:h.toolId}:{},toolName:u,inputPreview:rr(g),executionCwd:Ts(a)},void 0,{toolInput:g,...C??{},...typeof a.start?.options.context?.gitRoot=="string"?{projectRoot:a.start.options.context.gitRoot}:{}});try{if(!t?.beforeToolExecute){let ue=await te.response;return Tl(ue)}let fe=Promise.resolve(t.beforeToolExecute(u,g,h)).then(ue=>({source:"hook",decision:ue})),Re=te.response.then(ue=>({source:"runtime",decision:Tl(ue)})),Fe=await Promise.race([fe,Re]),ke=p();return ke!==void 0?ke:(Fe.source==="hook"&&r.resolve(te.request.id,bw(Fe.decision)),Fe.decision)}catch(fe){r.resolve(te.request.id,{type:"reject",reason:He(fe).message});let Re=p();if(Re!==void 0)return Re;throw fe}finally{a.phase==="waiting_permission"&&l(ee==="queued"?"running":ee)}},"beforeToolExecute"),...t?.askUser||s?{askUser:i((u,g)=>E("askUser",u,g,t?.askUser?()=>t.askUser(u,g):void 0,""),"askUser")}:{},...t?.askUserMulti||s?{askUserMulti:i((u,g)=>E("askUserMulti",u,g,t?.askUserMulti?()=>t.askUserMulti(u,g):void 0,void 0),"askUserMulti")}:{},...t?.askUserInput||s?{askUserInput:i((u,g)=>E("askUserInput",u,g,t?.askUserInput?()=>t.askUserInput(u,g):void 0,void 0),"askUserInput")}:{}}}i(Rh,"wrapKodaXEvents");function hh(e,n,t){let r={...t!==void 0?{canonicalRepoRoot:t}:{},...n!==void 0?{workspaceRoot:n,executionCwd:n}:{},...n!==void 0?{workspaceKind:"managed"}:{},...e.surface!==void 0?{surface:e.surface}:{},...e.profileId!==void 0?{profileId:e.profileId}:{}};return Object.keys(r).length>0?r:void 0}i(hh,"buildSessionRuntimeInfo");function zl(e){return{id:e.id,...e.cursor!==void 0?{cursor:e.cursor}:{},title:e.title,msgCount:e.msgCount,...e.runtimeInfo?.gitRoot?{gitRoot:e.runtimeInfo.gitRoot}:{},...e.runtimeInfo?.workspaceRoot?{workspaceRoot:e.runtimeInfo.workspaceRoot}:{},...e.runtimeInfo?.surface?{surface:e.runtimeInfo.surface}:{},...e.runtimeInfo?.profileId?{profileId:e.runtimeInfo.profileId}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.tag!==void 0?{tag:e.tag}:{},...e.projectKey!==void 0?{projectKey:e.projectKey}:{},...e.archived===!0?{archived:!0}:{}}}i(zl,"toRuntimeSessionSummary");function hl(e,n,t){let r=e.input===void 0?[]:Array.isArray(e.input)?[...e.input]:[e.input],o=r.filter(a=>a.type==="text");if(e.prompt!==void 0&&o.length>0)throw new Error(`${t} accepts either prompt or text input, not both`);if(o.length>1)throw new Error(`${t} accepts at most one text input item`);let s=e.prompt??o[0]?.text;if(s===void 0)throw new Error(`${t} requires prompt or text input`);return{prompt:s,inputArtifacts:r.flatMap(a=>wh(a,n))}}i(hl,"normalizeRuntimeRunInput");function wh(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return vh(n.resolve(e.artifactId),e.description);if(e.type==="image")return[{kind:"image",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];if(e.type==="file")return[{kind:"file",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.mimeType!==void 0?{mimeType:e.mimeType}:{},...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];if(e.type==="video")return[{kind:"video",path:e.path,mediaType:e.mediaType,...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];let t=e;throw new Error(`Unsupported runtime input type: ${String(t.type)}`)}i(wh,"runtimeInputToArtifacts");function vh(e,n){let t=n??e.description;if(e.kind==="image")return[{kind:"image",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];if(e.kind==="file")return[{kind:"file",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.mimeType!==void 0?{mimeType:e.mimeType}:{},...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];if(e.kind==="video")return[{kind:"video",path:e.path,mediaType:e.mediaType??"video/mp4",...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];throw new Error(`Unsupported runtime artifact kind: ${String(e.kind)}`)}i(vh,"runtimeArtifactToInputArtifacts");function Sh(e){return typeof e=="string"&&dR.has(e)}i(Sh,"isRuntimeArtifactKind");function Ih(e,n,t,r){let o=r.runtimeInfo?.canonicalRepoRoot??(r.gitRoot?r.gitRoot:void 0),s=o===void 0?void 0:Y.resolve(o),a=r.runtimeInfo?.executionCwd??r.runtimeInfo?.workspaceRoot??s,c={...s!==void 0?{gitRoot:s}:{},...n.executionCwd!==void 0?{executionCwd:Y.resolve(n.executionCwd)}:a!==void 0?{executionCwd:Y.resolve(a)}:{},...n.shellExecution!==void 0?{shellExecution:n.shellExecution}:{}},l=e.context,m={...l??{}};delete m.shellExecution;let R=l?.shellExecution===void 0?void 0:dr(l.shellExecution),v=typeof l?.gitRoot=="string"?Y.resolve(l.gitRoot):void 0;if(s!==void 0&&v!==void 0&&!(qr(s,v)&&qr(v,s)))throw new Error("gitRoot must match the session repository safety boundary");let y=l?.executionCwd===void 0?void 0:Y.resolve(l.executionCwd),x=y??c.executionCwd,p=r.runtimeInfo?.workspaceRoot??s;y!==void 0&&p!==void 0&&Ql(y,p,"executionCwd");let E=[...l?.inputArtifacts??[],...t],u={...c,...m,...s!==void 0?{gitRoot:s}:v!==void 0?{gitRoot:v}:{},...x!==void 0?{executionCwd:x}:{},...R!==void 0?{shellExecution:R}:{},...E.length>0?{inputArtifacts:E}:{}},g=e.provider??n.provider,h=e.model??n.model,P=e.effort??n.effort,I=e.thinking??n.thinking,k=e.reasoningMode??n.reasoningMode,A=e.agentMode??n.agentMode,C=A==="amaw"?"ama":A,O=e.compaction!==void 0||n.compactionTriggerPercent!==void 0||n.compactionTriggerTokens!==void 0?{...n.compactionTriggerPercent!==void 0?{triggerPercent:n.compactionTriggerPercent}:{},...n.compactionTriggerTokens!==void 0?{triggerTokens:n.compactionTriggerTokens}:{},...e.compaction??{}}:void 0;return{...e,...g!==void 0?{provider:g}:{},...h!==void 0?{model:h}:{},...P!==void 0?{effort:P}:{},...I!==void 0?{thinking:I}:{},...k!==void 0?{reasoningMode:k}:{},...C!==void 0?{agentMode:C}:{},...O!==void 0?{compaction:O}:{},...Object.keys(u).length>0?{context:u}:{}}}i(Ih,"buildEffectiveRuntimeOptions");async function bh(e,n,t){let r=await e.storage.read(n,t);if(!r)throw new Error(`Session not found: ${n}`);return r}i(bh,"loadRequiredSession");function xn(e){if(e?.timeoutMs!==void 0&&(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0))throw new Error("Runtime read timeoutMs must be a positive finite number");return{...e?.timeoutMs!==void 0?{deadline:Date.now()+e.timeoutMs}:{},...e?.signal!==void 0?{signal:e.signal}:{}}}i(xn,"createRuntimeReadBudget");function Te(e){if(e.signal?.aborted)throw new an("read_cancelled","Runtime history read cancelled");if(e.deadline===void 0)return e.signal===void 0?{}:{signal:e.signal};let n=e.deadline-Date.now();if(n<=0)throw new an("read_timeout","Runtime history read timed out");return{timeoutMs:n,...e.signal!==void 0?{signal:e.signal}:{}}}i(Te,"sessionReadOptionsFromBudget");function An(e,n){let t=Te(n),r=Promise.resolve().then(e);if(t.timeoutMs===void 0&&t.signal===void 0)return r;let o,s,a=[];return t.timeoutMs!==void 0&&a.push(new Promise((c,l)=>{o=setTimeout(()=>l(new an("read_timeout","Runtime history read timed out")),t.timeoutMs),o.unref?.()})),t.signal!==void 0&&a.push(new Promise((c,l)=>{s=i(()=>l(new an("read_cancelled","Runtime history read cancelled")),"onAbort"),t.signal?.addEventListener("abort",s,{once:!0}),t.signal?.aborted&&s()})),Promise.race([r,...a]).finally(()=>{o!==void 0&&clearTimeout(o),s!==void 0&&t.signal?.removeEventListener("abort",s)})}i(An,"awaitRuntimeReadOperation");async function Yt(e){await An(()=>new Promise(n=>setImmediate(n)),e),Te(e)}i(Yt,"yieldToRuntimeReadBudget");function kh(e,n,t){let r=i((a,c)=>t?Eh(a,c)?!1:a===void 0||zy.has(a.toLowerCase()):!0,"admitted"),o=i(a=>{throw Object.assign(new Error(`Session is not admitted by shared Runtime profile ${e}: ${a}`),{code:"session_not_admitted"})},"reject"),s=i(async(a,c,l=!1)=>{let m=l?await n.loadSession(a):await bh(n,a,c);if(m===null)throw new Error(`Session not found: ${a}`);return r(m.runtimeInfo?.surface,m.runtimeInfo?.profileId)||o(a),m},"loadAdmitted");return{assertCreate(a){r(a.surface,a.profileId)||o(a.sessionId??"<new>")},assertFilter(a){a?.surface!==void 0&&!r(a.surface,void 0)&&o("<list>")},admitsData(a){return r(a.runtimeInfo?.surface,a.runtimeInfo?.profileId)},admitsSummary(a){return r(a.runtimeInfo?.surface,a.runtimeInfo?.profileId)},assertCachedIdentity(a,c){r(c.surface,c.profileId)||o(a)},async admitsSession(a){if(!t)return!0;let c=await n.storage.peek(a);return c!==null&&r(c.runtimeInfo?.surface,c.runtimeInfo?.profileId)},async assertRunAccess(a){t&&await s(a)},async loadRequired(a,c){return s(a,c)},async captureRequired(a,c){let l=await n.readSessionCapture(a,c);if(l===null)throw new Error(`Session not found: ${a}`);return r(l.data.runtimeInfo?.surface,l.data.runtimeInfo?.profileId)||o(a),l},async loadExecutable(a){let c=await s(a,void 0,!0);if(await n.storage.isArchived(a))throw Ms(a);return c}}}i(kh,"createRuntimeSessionAdmission");async function wl(e,n){let t=new Map,r=[];for(let o of e){let s=t.get(o.sessionId);s===void 0&&(s=await n.admitsSession(o.sessionId),t.set(o.sessionId,s)),s&&r.push(o)}return r}i(wl,"filterAdmittedRunStatuses");function Eh(e,n){let t=i(r=>r?.toLowerCase().split(/[^a-z0-9]+/).includes("partner")===!0,"hasPartnerToken");return t(e)||t(n)}i(Eh,"isPartnerSessionIdentity");function Ph(e){return e===null?Dh("null"):xh(e.transcriptEntries)}i(Ph,"createRuntimeTranscriptRevision");function xh(e,n){return Ch(e,"kodax-transcript-entries-v1\0","",n)}i(xh,"createRuntimeTranscriptEntriesRevision");function Ch(e,n,t,r){let o=It("sha256");o.update(n),t.length>0&&(o.update(`${Buffer.byteLength(t,"utf8")}:`),o.update(t));for(let s of e){let a=Buffer.from(JSON.stringify(s),"utf8");o.update(`${a.length}:`),o.update(a),r?.(s,a)}return`sha256:${o.digest("hex")}`}i(Ch,"createRuntimeHistoryEntriesRevision");function Ah(e){return JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})}i(Ah,"runtimeConversationRevisionContext");function Th(e){return lo(e)}i(Th,"createRuntimeConversationHistoryRevision");function Dh(e){return`sha256:${It("sha256").update(e).digest("hex")}`}i(Dh,"createRuntimeTranscriptRevisionFromSerialized");function Mh(e){return"entryId"in e&&typeof e.entryId=="string"?{entryId:e.entryId}:"boundaryId"in e&&typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}i(Mh,"runtimeHistoryEntryDescriptorIdentity");function qi(e){return Buffer.from(JSON.stringify(e),"utf8").toString("base64url")}i(qi,"encodeRuntimeTranscriptCursor");function Dr(e){let n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch(r){throw Pe(`Invalid transcript cursor: ${He(r).message}`)}if(!ae(n)||typeof n.revision!="string")throw Pe("Invalid transcript cursor payload");let t=n.view===void 0||n.view==="transcript"?"transcript":n.view==="conversation"?"conversation":void 0;if(t===void 0)throw Pe("Invalid transcript cursor view");if(n.kind==="conversation_cache_page"&&t==="conversation"&&Number.isSafeInteger(n.end)&&Number(n.end)>=0)return{kind:"conversation_cache_page",view:t,revision:n.revision,end:Number(n.end)};if(n.kind==="page"&&Number.isSafeInteger(n.end)&&Number(n.end)>=0)return{kind:"page",view:t,revision:n.revision,end:Number(n.end)};if(n.kind==="entry"&&Number.isSafeInteger(n.entryIndex)&&Number(n.entryIndex)>=0&&Number.isSafeInteger(n.offset)&&Number(n.offset)>=0)return{kind:"entry",view:t,revision:n.revision,entryIndex:Number(n.entryIndex),offset:Number(n.offset)};throw Pe("Invalid transcript cursor payload")}i(Dr,"decodeRuntimeTranscriptCursor");async function Is(e,n,t,r){if(e.view!=="transcript")throw Pe("Transcript snapshot view does not match the request");let o=await Jl(e,n,t,r);return{revision:e.revision,entries:o.entries.map(s=>({index:s.index,...s.entryId!==void 0?{entryId:s.entryId}:{},byteLength:s.byteLength,oversized:s.oversized,...s.entry!==void 0?{entry:s.entry}:{}})),hasMore:o.hasMore,...o.nextCursor!==void 0?{nextCursor:o.nextCursor}:{}}}i(Is,"createRuntimeTranscriptSlice");async function Jl(e,n,t,r,o=0){let s=r??Nl;if(!Number.isSafeInteger(s)||s<=0)throw new Error("transcript page limit must be a positive safe integer");let a=Math.min(s,Ll);if(o>kt)throw Ki();let c=e.entries.length;if(t!==void 0){let y=Dr(t);if(y.kind!=="page"||y.revision!==e.revision||y.view!==e.view)throw Pe("Transcript cursor is stale; request a fresh observation snapshot");c=Math.min(y.end,e.entries.length)}let l=[],m=o,R=c;for(let y=c-1;y>=0&&(Te(n),!(l.length>=a));y-=1){let x=e.entries[y],p=x.byteLength,E=p<=Li?await Nh(e,x,n):void 0,u={index:y,...x.entryId!==void 0?{entryId:x.entryId}:{},...x.boundaryId!==void 0?{boundaryId:x.boundaryId}:{},byteLength:p,oversized:p>Li,...E!==void 0?{entry:E}:{}},g=Buffer.byteLength(JSON.stringify(u),"utf8");if(m+g>kt){if(l.length===0)throw Ki();break}l.unshift(u),m+=g,R=y}Te(n);let v=R>0;return{entries:l,hasMore:v,...v?{nextCursor:qi({kind:"page",view:e.view,revision:e.revision,end:R})}:{}}}i(Jl,"createRuntimeHistorySlice");async function vl(e,n,t,r){if(e.view!=="conversation"||e.conversation===void 0)throw Pe("Conversation snapshot view does not match the request");let o=await Jl(e,n,t,r,Buffer.byteLength(JSON.stringify({revision:e.revision,sourceRevision:e.conversation.sourceRevision,status:e.conversation.status,issues:e.conversation.issues}),"utf8"));return{revision:e.revision,sourceRevision:e.conversation.sourceRevision,status:e.conversation.status,issues:structuredClone(e.conversation.issues),entries:o.entries.map(s=>({index:s.index,...s.boundaryId!==void 0?{boundaryId:s.boundaryId}:{},byteLength:s.byteLength,oversized:s.oversized,...s.entry!==void 0?{entry:s.entry}:{}})),hasMore:o.hasMore,...o.nextCursor!==void 0?{nextCursor:o.nextCursor}:{}}}i(vl,"createRuntimeConversationHistorySlice");async function _h(e,n,t){if(n.view!=="transcript")throw Pe("Transcript snapshot view does not match the request");let r=await Vl(e,n,t);return{revision:r.revision,entryIndex:r.entryIndex,...r.entryId!==void 0?{entryId:r.entryId}:{},encoding:"base64-json",data:r.data,hasMore:r.hasMore,...r.nextCursor!==void 0?{nextCursor:r.nextCursor}:{}}}i(_h,"createRuntimeTranscriptEntryChunkFromSnapshot");async function Vl(e,n,t){if(e.revision!==n.revision)throw Pe("Transcript revision changed; request a fresh observation snapshot");let r=n.entries[e.entryIndex];if(r===void 0)throw new Error(`Transcript entry index is out of range: ${e.entryIndex}`);let o=0;if(e.cursor!==void 0){let l=Dr(e.cursor);if(l.kind!=="entry"||l.revision!==n.revision||l.view!==n.view||l.entryIndex!==e.entryIndex)throw Pe("Transcript entry cursor is stale; restart entry retrieval");o=l.offset}if(o>r.byteLength||o%Ar!==0)throw Pe("Transcript entry cursor offset is invalid");let s=Math.min(r.byteLength,o+Ar),a=await Gl(n.filePath,r.offset+o,s-o,t);Yl(a,r.chunkDigests[o/Ar]),Te(t);let c=s<r.byteLength;return{revision:n.revision,entryIndex:e.entryIndex,...r.entryId!==void 0?{entryId:r.entryId}:{},...r.boundaryId!==void 0?{boundaryId:r.boundaryId}:{},data:a.toString("base64"),hasMore:c,...c?{nextCursor:qi({kind:"entry",view:n.view,revision:n.revision,entryIndex:e.entryIndex,offset:s})}:{}}}i(Vl,"createRuntimeHistoryEntryChunkFromSnapshot");async function Oh(e,n,t){if(n.view!=="conversation")throw Pe("Conversation snapshot view does not match the request");let r=await Vl(e,n,t);return{revision:r.revision,entryIndex:r.entryIndex,...r.boundaryId!==void 0?{boundaryId:r.boundaryId}:{},encoding:"base64-json",data:r.data,hasMore:r.hasMore,...r.nextCursor!==void 0?{nextCursor:r.nextCursor}:{}}}i(Oh,"createRuntimeConversationEntryChunkFromSnapshot");async function Nh(e,n,t){let r=await Gl(e.filePath,n.offset,n.byteLength,t);Yl(r,n.chunkDigests[0]);try{return JSON.parse(r.toString("utf8"))}catch(o){throw qs(`Transcript snapshot entry is corrupt: ${He(o).message}`)}}i(Nh,"parseRuntimeTranscriptSnapshotEntry");async function Gl(e,n,t,r){let o=Buffer.allocUnsafe(t),s;try{s=await $.promises.open(e,"r");let a=0;for(;a<t;){let c=await s.read(o,a,t-a,n+a);if(c.bytesRead===0)throw new Error("Transcript snapshot ended unexpectedly.");a+=c.bytesRead,Te(r)}return o}catch(a){throw Bi(a)?a:qs(`Transcript snapshot is unavailable: ${He(a).message}`)}finally{s!==void 0&&await s.close()}}i(Gl,"readRuntimeTranscriptSnapshotBytes");async function Lh(e,n){let t=0;for(;t<n.length;){let r=await e.write(n,t,n.length-t,null);if(r.bytesWritten===0)throw new Error("Transcript snapshot write made no progress.");t+=r.bytesWritten}}i(Lh,"writeFileHandleFully");function Bi(e){return ae(e)?e.code==="read_timeout"||e.code==="read_cancelled":!1}i(Bi,"isExpectedRuntimeReadTermination");function Yl(e,n){let t=It("sha256").update(e).digest("hex");if(n===void 0||t!==n)throw qs("Transcript snapshot integrity check failed; request a fresh boundary")}i(Yl,"assertRuntimeTranscriptSnapshotDigest");function Sl(e){return e.length<=el?e:`${e.slice(0,el-1)}\u2026`}i(Sl,"previewQueuedInput");function Cs(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&Ql(n.executionCwd,t,"executionCwd")}i(Cs,"assertSessionSettingsAllowed");function Ql(e,n,t){if(!qr(e,n))throw new Error(`${t} must stay within the session workspace root`)}i(Ql,"assertPathWithinRoot");function Fh(e,n){let t={...e};return Er(t,"provider",n.provider),Er(t,"model",n.model),Er(t,"permissionMode",n.permissionMode),Er(t,"executionCwd",n.executionCwd,!0),Hh(t,n.shellExecution),Er(t,"autoModeClassifierModel",n.autoModeClassifierModel),Pr(t,"effort",n.effort),Pr(t,"thinking",n.thinking),Pr(t,"reasoningMode",n.reasoningMode),Pr(t,"agentMode",n.agentMode),Pr(t,"autoModeEngine",n.autoModeEngine),jh(t,"autoModeTimeoutMs",n.autoModeTimeoutMs),qh(t,"autoModeSpeculativeWindowMs",n.autoModeSpeculativeWindowMs),Zl(t,n.compactionTriggerPercent),$h(t,n.compactionTriggerTokens),t}i(Fh,"applySessionSettingsPatch");function Zl(e,n){if(n!==void 0){if(n===null){Et(e,"compactionTriggerPercent");return}if(!Number.isFinite(n))throw new Error("compactionTriggerPercent must be a finite number");je(e,"compactionTriggerPercent",ha({triggerPercent:n}).triggerPercent)}}i(Zl,"applyNullableCompactionPercentPatch");function Hh(e,n){if(n!==void 0){if(n===null){Et(e,"shellExecution");return}je(e,"shellExecution",dr(n))}}i(Hh,"applyNullableShellExecutionPatch");function $h(e,n){if(n!==void 0){if(n===null||n===0){Et(e,"compactionTriggerTokens");return}if(!Number.isSafeInteger(n)||n<0)throw new Error("compactionTriggerTokens must be a positive safe integer or zero");je(e,"compactionTriggerTokens",n)}}i($h,"applyNullableCompactionTokensPatch");function jh(e,n,t){if(t!==void 0){if(t===null){Et(e,n);return}if(!Number.isSafeInteger(t)||t<=0)throw new Error(`${n} must be a positive safe integer`);je(e,n,t)}}i(jh,"applyNullablePositiveIntegerPatch");function qh(e,n,t){if(t!==void 0){if(t===null){Et(e,n);return}if(!Number.isSafeInteger(t)||t<0)throw new Error(`${n} must be a non-negative safe integer`);je(e,n,t)}}i(qh,"applyNullableNonNegativeIntegerPatch");function Er(e,n,t,r=!1){if(t===void 0)return;if(t===null){Et(e,n);return}if(r&&!Y.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);let o=n==="autoModeClassifierModel"?em(t):t;je(e,n,o)}i(Er,"applyNullableStringPatch");function em(e){let n=e.trim();if(n.length===0)throw new St("autoModeClassifierModel must be a non-empty classifier model spec.");try{La(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw new St(`autoModeClassifierModel must be a valid classifier model spec: ${r}`)}return n}i(em,"validateRuntimeAutoModeClassifierModel");function nm(e,n){if(!(pn(e.permissionMode)!=="auto"||(e.autoModeEngine??"llm")!=="llm")){if(e.autoModeClassifierModel!==void 0){try{em(e.autoModeClassifierModel)}catch(t){return t instanceof St?t:new St("Auto LLM classifier model configuration is invalid.")}return}if(!n?.trim().length)return new St("Auto LLM requires a classifier model. Set autoModeClassifierModel, the Session/run model, or runtime defaultModel.")}}i(nm,"runtimeAutoModeClassifierModelError");function Bh(e,n){let t=nm(e,n);if(t)throw t}i(Bh,"assertRuntimeAutoModeClassifierModelConfigured");function Pr(e,n,t){if(t!==void 0){if(t===null){Et(e,n);return}je(e,n,t)}}i(Pr,"applyNullablePatch");function je(e,n,t){e[n]=t}i(je,"setMutableSetting");function Et(e,n){delete e[n]}i(Et,"deleteMutableSetting");function Il(e){if(!ae(e))return{};let n={};return Zn(n,"provider",e.provider),Zn(n,"model",e.model),Zn(n,"permissionMode",e.permissionMode),Zn(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&je(n,"shellExecution",dr(e.shellExecution)),Zn(n,"autoModeClassifierModel",e.autoModeClassifierModel),Zn(n,"effort",e.effort),typeof e.thinking=="boolean"&&je(n,"thinking",e.thinking),Zn(n,"reasoningMode",e.reasoningMode),Zn(n,"agentMode",e.agentMode),(e.autoModeEngine==="llm"||e.autoModeEngine==="rules")&&je(n,"autoModeEngine",e.autoModeEngine),Number.isSafeInteger(e.autoModeTimeoutMs)&&Number(e.autoModeTimeoutMs)>0&&je(n,"autoModeTimeoutMs",Number(e.autoModeTimeoutMs)),Number.isSafeInteger(e.autoModeSpeculativeWindowMs)&&Number(e.autoModeSpeculativeWindowMs)>=0&&je(n,"autoModeSpeculativeWindowMs",Number(e.autoModeSpeculativeWindowMs)),typeof e.compactionTriggerPercent=="number"&&Zl(n,e.compactionTriggerPercent),Number.isSafeInteger(e.compactionTriggerTokens)&&Number(e.compactionTriggerTokens)>0&&je(n,"compactionTriggerTokens",Number(e.compactionTriggerTokens)),n}i(Il,"parseRuntimeSessionSettings");function Kh(e){if(!ae(e)||!ae(e.scope))throw new Error("invalid permission grant");let n=e.scope.toolName,t=e.scope.sessionId,r=e.scope.matcher,o=e.persistence,s=e.label,a=e.sourcePermissionId;if(typeof e.id!="string"||typeof e.createdAt!="string"||n!==void 0&&typeof n!="string"||t!==void 0&&typeof t!="string"||o!==void 0&&o!=="session"&&o!=="persistent"||s!==void 0&&typeof s!="string"||a!==void 0&&typeof a!="string")throw new Error("invalid permission grant");return{id:e.id,createdAt:e.createdAt,persistence:o??"persistent",...s!==void 0?{label:s}:{},...a!==void 0?{sourcePermissionId:a}:{},scope:{...n!==void 0?{toolName:n}:{},...t!==void 0?{sessionId:t}:{},...r!==void 0?{matcher:od(r)}:{}}}}i(Kh,"parseRuntimePermissionGrant");function Zn(e,n,t){typeof t=="string"&&t.length>0&&je(e,n,t)}i(Zn,"setStringIfPresent");function ae(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(ae,"isRecord");function Uh(e,n){if(!ae(e))throw new Error(`${n} requires a plain object`)}i(Uh,"assertPlainObject");function Xh(e){let n=new Set(Wy);for(let t of Object.keys(e))if(!n.has(t))throw new Error(`runtime.config.patch does not support config key: ${t}`);return e}i(Xh,"sanitizeRuntimeConfigPatch");function Wh(e){if(e.homeDir!==void 0)return Y.join(Y.resolve(e.homeDir),".kodax","config.json")}i(Wh,"resolveRuntimeConfigFile");function et(e){if(e===void 0)return qa();if(!$.existsSync(e))return{};try{let n=JSON.parse($.readFileSync(e,"utf8"));return ae(n)?n:{}}catch{return{}}}i(et,"readRuntimeConfig");function zh(e,n){if(e===void 0){Ka(n);return}Lr(e,t=>{let r={...t,...n};for(let o of Object.keys(n))n[o]===void 0&&delete r[o];return{config:r,result:void 0}})}i(zh,"patchRuntimeConfig");function Jh(e,n){$.mkdirSync(Y.dirname(e),{recursive:!0}),$.writeFileSync(e,`${JSON.stringify(n,null,2)}
378
+ `,"utf8")}i(Jh,"writeRuntimeConfigUnlocked");function Lr(e,n){return ja(e,()=>{let t=n(et(e));return t.config&&Jh(e,t.config),t.result})}i(Lr,"mutateRuntimeConfig");function Vh(e){return e===void 0?za():Qh(Ui(et(e)))}i(Vh,"listRuntimeCustomProviders");function Gh(e,n){if(e===void 0)return Ja(n);Js(n);let t=Lr(e,r=>{let o=rw(Ui(r),n,s=>s.name===n.name);return{config:{...r,customProviders:o},result:o}});return jr(t),structuredClone(n)}i(Gh,"upsertRuntimeCustomProvider");function Yh(e,n){if(e===void 0)return Va(n);if(typeof n!="string"||n.length===0)return!1;let t=Lr(e,r=>{let o=Ui(r),s=o.filter(a=>a.name!==n);return s.length===o.length?{result:void 0}:{config:{...r,customProviders:s},result:s}});return t?(jr(t),!0):!1}i(Yh,"removeRuntimeCustomProvider");function tm(e){e!==void 0&&jr(Ui(et(e)))}i(tm,"registerRuntimeConfiguredCustomProviders");function Ui(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}i(Ui,"extractRuntimeCustomProviders");function Qh(e){return structuredClone(e)}i(Qh,"cloneCustomProviders");function bs(e){return e===void 0?Ga():tw(Xi(et(e)))}i(bs,"listRuntimeMcpServers");function Zh(e,n){if(e===void 0)return Ya(n);let t=Xi(et(e))[n];return t===void 0?void 0:structuredClone(t)}i(Zh,"getRuntimeMcpServer");function ew(e,n,t){return e===void 0?Qa(n,t):(co(n,t),Lr(e,r=>{let o={...Xi(r),[n]:structuredClone(t)};return{config:{...r,mcpServers:o},result:void 0}}),structuredClone(t))}i(ew,"upsertRuntimeMcpServer");function nw(e,n){return e===void 0?Za(n):Lr(e,t=>{let r=Xi(t);if(!(n in r))return{result:!1};let o={...r};return delete o[n],{config:{...t,mcpServers:o},result:!0}})}i(nw,"removeRuntimeMcpServer");function Xi(e){return ae(e.mcpServers)?structuredClone(e.mcpServers):{}}i(Xi,"extractRuntimeMcpServers");function tw(e){return structuredClone(e)}i(tw,"cloneMcpServers");function rw(e,n,t){let r=e.findIndex(t);return r<0?[...e,structuredClone(n)]:e.map((o,s)=>s===r?structuredClone(n):structuredClone(o))}i(rw,"upsertConfigEntry");function iw(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(o=>ae(o)&&o.name===n.provider);return ae(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!ae(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}i(iw,"listRuntimeModels");function bl(e){let n=ow(e).map(sw),t=Ct()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(aw)??[];return[...n,...t].sort((r,o)=>r.name.localeCompare(o.name))}i(bl,"listRuntimeCommands");function ow(e){let n=nd;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):Xa().getAll()}i(ow,"listReplCommands");function sw(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:e.source,...e.usage!==void 0?{usage:e.usage}:{},...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},...e.location!==void 0?{location:e.location}:{},...e.path!==void 0?{path:e.path}:{},...e.userInvocable!==void 0?{userInvocable:e.userInvocable}:{},...e.disableModelInvocation!==void 0?{disableModelInvocation:e.disableModelInvocation}:{},...e.allowedTools!==void 0?{allowedTools:e.allowedTools}:{},...e.context!==void 0?{context:e.context}:{},...e.agent!==void 0?{agent:e.agent}:{},...e.model!==void 0?{model:e.model}:{}}}i(sw,"replCommandToRuntimeCommandInfo");function aw(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:"extension",...e.usage!==void 0?{usage:e.usage}:{}}}i(aw,"extensionCommandToRuntimeCommandInfo");function Zt(e){return Array.isArray(e)?e.map(n=>Zt(n)):ae(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,dw(n)?"[redacted]":Zt(t)])):e}i(Zt,"redactRuntimeConfig");function dw(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")}i(dw,"isSensitiveConfigKey");function uw(e){return{name:e.name,description:e.description,userInvocable:e.userInvocable,...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},path:e.path,source:e.source,disableModelInvocation:e.disableModelInvocation}}i(uw,"toRuntimeSkillSummary");function cw(e){return{name:e.name,description:e.description,userInvocable:e.userInvocable??!0,...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},path:e.path,source:e.source,disableModelInvocation:e.disableModelInvocation??!1,content:e.content,skillFilePath:e.skillFilePath,...e.scripts!==void 0?{scripts:e.scripts.map(xr)}:{},...e.references!==void 0?{references:e.references.map(xr)}:{},...e.assets!==void 0?{assets:e.assets.map(xr)}:{},...e.templates!==void 0?{templates:e.templates.map(xr)}:{},...e.resources!==void 0?{resources:e.resources.map(xr)}:{}}}i(cw,"toRuntimeSkillDescription");function xr(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}i(xr,"toRuntimeSkillFileSummary");function or(e){if(!ae(e))throw new Error("Invalid runtime daemon response: expected object");return e}i(or,"requireRuntimeRecord");function rm(e){let n=or(e);if(typeof n.runtimeId!="string"||typeof n.mode!="string"||typeof n.profile!="string"||typeof n.startedAt!="string"||typeof n.version!="string")throw new Error("Invalid runtime daemon response: missing identity fields");return{runtimeId:n.runtimeId,mode:n.mode==="daemon"?"daemon":"embedded",profile:n.profile,startedAt:n.startedAt,version:n.version,...n.isolation==="inline"||n.isolation==="worker"||n.isolation==="process"?{isolation:n.isolation}:{},...typeof n.workerThreadId=="number"?{workerThreadId:n.workerThreadId}:{}}}i(rm,"parseRuntimeIdentity");function lw(e){let n={};return e.provider!==void 0&&je(n,"provider",e.provider),e.model!==void 0&&je(n,"model",e.model),e.effort!==void 0&&je(n,"effort",e.effort),e.thinking!==void 0&&je(n,"thinking",e.thinking),e.reasoningMode!==void 0&&je(n,"reasoningMode",e.reasoningMode),e.permissionMode!==void 0&&je(n,"permissionMode",e.permissionMode),e.executionCwd!==void 0&&je(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&je(n,"shellExecution",dr(e.shellExecution)),e.agentMode!==void 0&&je(n,"agentMode",e.agentMode),e.autoModeEngine!==void 0&&je(n,"autoModeEngine",e.autoModeEngine),e.autoModeClassifierModel!==void 0&&je(n,"autoModeClassifierModel",e.autoModeClassifierModel),e.autoModeTimeoutMs!==void 0&&je(n,"autoModeTimeoutMs",e.autoModeTimeoutMs),e.autoModeSpeculativeWindowMs!==void 0&&je(n,"autoModeSpeculativeWindowMs",e.autoModeSpeculativeWindowMs),e.compactionTriggerPercent!==void 0&&je(n,"compactionTriggerPercent",e.compactionTriggerPercent),e.compactionTriggerTokens!==void 0&&je(n,"compactionTriggerTokens",e.compactionTriggerTokens),n}i(lw,"serializeSessionSettings");function mw(){return`run_${Date.now().toString(36)}_${Qe().replace(/-/g,"").slice(0,8)}`}i(mw,"createRunId");function fw(){return`input_${Date.now().toString(36)}_${Qe().replace(/-/g,"").slice(0,8)}`}i(fw,"createInputId");function im(e){return{inputId:e.inputId,afterRunId:e.afterRunId,delivery:e.delivery,state:e.state,contentPreview:e.contentPreview,queuedAt:e.queuedAt,...e.deliveredAt!==void 0?{deliveredAt:e.deliveredAt}:{},...e.entryId!==void 0?{entryId:e.entryId}:{},...e.origin!==void 0?{origin:e.origin}:{}}}i(im,"runtimeInterruptInputStatus");function on(e){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,...e.stage!==void 0?{stage:e.stage}:{},...e.stageChangedAt!==void 0?{stageChangedAt:e.stageChangedAt}:{},...e.activeSubtaskCount!==void 0?{activeSubtaskCount:e.activeSubtaskCount}:{},startedAt:e.startedAt,acceptedAt:e.startedAt,sessionOrder:e.sessionOrder,...e.queuedAt!==void 0?{queuedAt:e.queuedAt}:{},...e.runningAt!==void 0?{runningAt:e.runningAt}:{},...e.runningAt!==void 0?{executionStartedAt:e.runningAt}:{},...e.endedAt!==void 0?{endedAt:e.endedAt}:{},provider:e.provider,mode:e.mode,...e.origin!==void 0?{origin:e.origin}:{},...e.model!==void 0?{model:e.model}:{},...e.reasoning!==void 0?{reasoning:e.reasoning}:{},...e.error!==void 0?{error:e.error}:{},...e.lifecycleError!==void 0?{lifecycleError:e.lifecycleError}:{},...e.terminal!==void 0?{terminal:e.terminal}:{},...e.stop!==void 0?{stop:e.stop}:{},...e.continuation!==void 0?{continuation:{...e.continuation,state:pw(e.phase)}}:{},...e.interruptInputs.length>0?{interruptInputs:e.interruptInputs.map(im)}:{}}}i(on,"statusFromRecord");function pw(e){return e==="queued"?"queued":Me(e)?"terminal":"delivered"}i(pw,"runtimeContinuationState");function om(e){return{runId:e.runId,sessionId:e.sessionId,phase:e.phase,...e.error!==void 0?{error:new Error(e.error)}:{},...e.terminal!==void 0?{terminal:e.terminal}:{},...e.stop!==void 0?{stop:e.stop}:{}}}i(om,"resultFromStatus");function Ci(e){let n=e.status.stop,t=n?.outcome??(e.status.phase==="completed"?"completed":e.status.phase==="failed"?"failed":e.status.phase==="cancelled"?"cancelled":e.status.phase==="interrupted"?"interrupted":"unknown");return{runId:e.status.runId,sessionId:e.status.sessionId,accepted:e.accepted,state:n?.state??(Me(e.status.phase)?"confirmed":"unknown"),outcome:t,phase:e.status.phase,revision:e.revision}}i(Ci,"runtimeRunStopReceipt");function gw(e){if(e.length<=Nn)return e;let n=e.filter(o=>!Me(o.status.phase)).sort((o,s)=>zn(o.status,s.status)).slice(-Nn),t=Nn-n.length,r=t===0?[]:e.filter(o=>Me(o.status.phase)).sort((o,s)=>zn(o.status,s.status)).slice(-t);return[...n,...r]}i(gw,"recentRunStatuses");function kl(e){if(e.length<=Nn)return e;let n=e.filter(o=>!Me(o.phase)),t=Math.max(0,Nn-n.length),r=t===0?[]:e.filter(o=>Me(o.phase)).sort(zn).slice(-t);return[...n,...r]}i(kl,"boundedRuntimeRunStatuses");function El(e){return[...e].sort((n,t)=>{let r=(n.acceptedAt??n.startedAt).localeCompare(t.acceptedAt??t.startedAt);if(r!==0)return r;let o=n.sessionId.localeCompare(t.sessionId);if(o!==0)return o;let s=(n.sessionOrder??0)-(t.sessionOrder??0);return s!==0?s:n.runId.localeCompare(t.runId)})}i(El,"canonicalRuntimeRunStatuses");function yw(e){if(e.size<=Nn)return;let n=[...e.values()].filter(t=>Me(t.phase)).sort((t,r)=>zn(on(t),on(r)));for(let t of n){if(e.size<=Nn)return;e.delete(t.runId)}}i(yw,"pruneTerminalRuns");function zn(e,n){let t=e.endedAt??e.startedAt,r=n.endedAt??n.startedAt,o=t.localeCompare(r);return o!==0?o:e.runId.localeCompare(n.runId)}i(zn,"compareRunStatusRecency");function Pl(e,n){return n?n.sessionId!==void 0&&e.sessionId!==n.sessionId?!1:n.phase===void 0?!0:(Array.isArray(n.phase)?n.phase:[n.phase]).includes(e.phase):!0}i(Pl,"runStatusMatchesFilter");function sm(e){return[...e].sort((n,t)=>{let r=xl(n.phase),o=xl(t.phase);if(r!==o)return o-r;let s=n.sessionOrder??0,a=t.sessionOrder??0;return s!==a?a-s:zn(t,n)})[0]}i(sm,"authoritativeSessionRun");function xl(e){return e==="unknown"?4:wn(e)?3:e==="queued"?2:1}i(xl,"runtimeSessionRunPriority");function Ai(e,n){if(!(e.ownedByRuntime||Me(e.phase)))throw Wn(`Run ${e.runId} is owned by another live Runtime; ${n.runtimeId} may observe but not mutate it.`,e.sessionOrder)}i(Ai,"assertRuntimeOwnsRun");function Rw(e,n,t){return[...n.values()].some(s=>s.sessionId===e&&s.ownedByRuntime&&(s.phase==="queued"||wn(s.phase)||s.phase==="unknown"||s.start!==void 0&&s.settlementFinished!==!0))?"local":t.loadRunStatuses().some(({status:s})=>s.sessionId===e&&(s.phase==="queued"||wn(s.phase)||s.phase==="unknown"))?"foreign":void 0}i(Rw,"runtimeSessionActiveRunOwner");function wt(e,n,t,r,o){if(t.terminalEmitted)return;delete t.actorHealthBaseState,delete t.lifecycleError,t.error==="stop_outcome_unconfirmed"&&delete t.error,t.interruptInputOpen=!1,As(t),t.phase=r;let s=new Date().toISOString();t.stage="terminal",t.stageChangedAt=s,t.activeSubtaskCount=0,t.endedAt=s,t.stop!==void 0&&(t.stop={...t.stop,state:"confirmed",outcome:r==="completed"?"completed":r==="failed"?"failed":r==="interrupted"?"interrupted":"cancelled",resolvedAt:s}),t.terminalEmitted=!0;let a=r==="completed"?"completed":r==="cancelled"?"cancelled":r==="interrupted"?"interrupted":"failed";t.terminal={revision:1,kind:a,code:o?.code??vw(a),effectOutcome:o?.effectOutcome??(a==="interrupted"?"unknown":"known"),...o?.message!==void 0?{message:o.message}:{}};let c=r==="completed"?"run.completed":r==="cancelled"?"run.cancelled":r==="interrupted"?"run.interrupted":"run.failed",l=on(t),m=Jn(e,n,t,l);if(m!==void 0&&m!==l){vt(t,m);return}e.emit(c,on(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}})}i(wt,"markRunTerminal");function As(e){for(let n of e.interruptInputs)n.state==="queued"&&(n.queueMessageId!==void 0&&(ra().dequeue({agentId:Ji(e.sessionId,"/root"),maxPriority:"user",mode:"prompt",id:n.queueMessageId}),delete n.queueMessageId),n.state="terminal")}i(As,"terminalizeQueuedInterruptInputs");function Jn(e,n,t,r){try{return n.saveRunStatus(r)}catch(o){let s=t?.turnId??r.turnId;e.emit("runtime.warning",{message:`Failed to save runtime run status for ${r.runId}: ${He(o).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...s!==void 0?{turnId:s}:{}});return}}i(Jn,"saveRunStatusSafely");function vt(e,n){e.phase=n.phase,e.stage=n.stage,e.stageChangedAt=n.stageChangedAt,e.activeSubtaskCount=n.activeSubtaskCount,e.provider=n.provider,e.queuedAt=n.queuedAt,e.runningAt=n.runningAt,e.endedAt=n.endedAt,e.model=n.model,e.reasoning=n.reasoning,e.error=n.error,e.lifecycleError=n.lifecycleError,e.terminal=n.terminal,e.stop=n.stop,e.terminalEmitted=Me(n.phase),e.interruptInputOpen=!1}i(vt,"applyAuthoritativeRunStatus");function Me(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(Me,"isTerminalRunPhase");function hw(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}i(hw,"workflowEventType");function ww(e){return e==="completed"||e==="failed"||e==="cancelled"}i(ww,"isFinalWorkflowStatus");function vw(e){return e==="completed"?"completed":e==="failed"?"run_failed":e==="cancelled"?"cancelled":"interrupted"}i(vw,"defaultRuntimeTerminalCode");function Sw(e){let n=e instanceof Error?e.code:void 0;return n==="host_tool_unknown"?{phase:"interrupted",terminal:{code:"host_outcome_unknown",effectOutcome:"unknown",message:"A run-bound host tool may have produced a side effect; it was not replayed."}}:n==="host_tool_unavailable"?{phase:"failed",terminal:{code:"host_not_dispatched",effectOutcome:"none",message:"The run-bound host tool was unavailable before dispatch."}}:n==="credential_unavailable"?{phase:"failed",terminal:{code:"credential_unavailable",effectOutcome:"none",message:"The provider credential was unavailable before the request could continue."}}:{phase:"failed",terminal:{code:"run_failed",effectOutcome:"known"}}}i(Sw,"classifyRuntimeRunFailure");function am(e,n){if(!n.hadProviderCredential)return He(e);let t=new Error("Provider run failed while using a run-scoped credential.");return t.name="KodaXProviderRunError",t}i(am,"normalizeRuntimeRunError");function Iw(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.runId!==void 0&&e.runId!==n.runId||n.toolName!==void 0&&e.toolName!==n.toolName):!0}i(Iw,"permissionMatchesFilter");function bw(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}i(bw,"decisionToPermissionDecision");function kw(e){return e?.some(n=>n.kind==="dangerous_pattern"&&n.severity==="high"||n.kind==="protected_path"||n.kind==="shell_redirect_outside")?"high":e&&e.length>0?"medium":"low"}i(kw,"autoModeEscalationRisk");var Ew=8;function Ts(e){return Y.resolve(e.start?.options.context?.executionCwd??e.start?.options.context?.gitRoot??process.cwd())}i(Ts,"resolveRuntimeExecutionCwd");function Pw(e){let n=e.start?.options.context?.shellExecution;if(n===void 0)return;let t=n.shell.kind;return{shell:t==="bash"||t==="zsh"?"posix":t==="cmd"?"cmd":"powershell",shellContractFingerprint:to(n)}}i(Pw,"runtimeShellPermissionIdentity");function er(e){return e.kind==="tool"&&e.name==="auto-mode"&&"getEngine"in e&&typeof e.getEngine=="function"&&"consumeAllowedCall"in e&&typeof e.consumeAllowedCall=="function"&&"consumeWorkspaceSandboxCall"in e&&typeof e.consumeWorkspaceSandboxCall=="function"}i(er,"isRuntimeAutoModeGuardrail");function xw(e){if(pn(e.permissionMode)==="auto")return e.start?.options.guardrails?.find(er)}i(xw,"getRuntimeAutoModeGuardrail");function js(e,n=new Set){if(e===null)return"null";if(typeof e=="string")return`string:${e.length}:${e}`;if(typeof e=="boolean")return e?"boolean:true":"boolean:false";if(typeof e>"u")return"undefined";if(typeof e=="bigint")return`bigint:${e.toString()};`;if(typeof e=="number")return Number.isNaN(e)?"number:NaN":Object.is(e,-0)?"number:-0":`number:${String(e)};`;if(typeof e!="object")throw new Error("Tool input must contain data values only.");if(n.has(e))throw new Error("Tool input must not be circular.");let t=Object.getPrototypeOf(e);if(!Array.isArray(e)&&t!==Object.prototype&&t!==null)throw new Error("Tool input must be a plain object.");n.add(e);try{let r=Reflect.ownKeys(e);if(r.some(s=>typeof s=="symbol"))throw new Error("Tool input must not contain symbol properties.");if(Array.isArray(e)){let s=r.filter(a=>a!=="length"&&typeof a=="string").map(a=>{let c=Number(a);if(!Number.isInteger(c)||c<0||c>=e.length||String(c)!==a)throw new Error("Tool input arrays must not contain named properties.");return{index:c,key:a}}).sort((a,c)=>a.index-c.index);return`array:${e.length}:[${s.map(({key:a})=>`${a}:${Cl(e,a,n)}`).join("")}]`}return`object:{${r.filter(s=>typeof s=="string").sort().map(s=>`${js(s,n)}${Cl(e,s,n)}`).join("")}}`}finally{n.delete(e)}}i(js,"serializeRuntimeToolInput");function Cl(e,n,t){let r=Object.getOwnPropertyDescriptor(e,n);if(!r||!r.enumerable||!("value"in r))throw new Error("Tool input must contain enumerable data properties only.");return js(r.value,t)}i(Cl,"serializeRuntimeDataProperty");function tr(e){try{let n=js(e.input);return It("sha256").update(`${e.id}\0${e.name}\0${n}`).digest("hex")}catch{return}}i(tr,"runtimeAutoModeDecisionKey");function Cw(e){if(process.platform!=="win32")return!1;let n=Y.resolve(process.env.SystemRoot??"C:\\Windows","Temp"),t=i(r=>{if(!Y.isAbsolute(r))return!1;let o=Y.relative(n,Y.resolve(r));return o===""||!o.startsWith("..")&&!Y.isAbsolute(o)},"isSystemTemp");return e.operations.some(r=>"target"in r?t(r.target.path):"source"in r?t(r.source.path)||t(r.destination.path):!1)}i(Cw,"reviewTouchesProtectedWindowsSystemTemp");function Aw(e,n){let t=new Set;return{...e,beforeTool:i(async(r,o)=>{if(!e.beforeTool)return{action:"block",reason:"Runtime auto-mode guardrail has no beforeTool hook."};let s=await e.beforeTool(r,o);if(s.action==="allow"){let a=ro(r),c=a?.ok?a.call:r,l=tr(c);l!==void 0&&t.add(l)}return s},"beforeTool"),consumeAllowedCall(r){let o=tr(r);return o===void 0||!t.has(o)?!1:(t.delete(o),!0)},consumeWorkspaceSandboxCall(r){let o=tr(r);return o===void 0||!n.has(o)?!1:(n.delete(o),!0)},clearAllowedCalls(){t.clear(),n.clear()}}}i(Aw,"createRuntimeOwnedAutoModeGuardrail");function Tw(e){let n=new Set,t,r,o=i(async()=>{let s=(await e.settingsOwner.read(e.sessionId)).value,a=e.getRecord();if(a&&(a.permissionMode=s.permissionMode,a.autoModeEngine=pn(s.permissionMode)==="auto"?s.autoModeEngine??"llm":s.autoModeEngine,a.autoModeClassifierModel=s.autoModeClassifierModel,a.autoModeTimeoutMs=s.autoModeTimeoutMs,a.autoModeSpeculativeWindowMs=s.autoModeSpeculativeWindowMs),r=nm(s,a?.model??e.model),r){t=void 0;return}let c=await Mw({...e,settings:s});return t=c,c},"resolveGuardrail");return{kind:"tool",name:"auto-mode",async prepare(){if(await o(),r)throw r},async beforeTool(s,a){let c=await o();if(!c?.beforeTool)return r?{action:"block",reason:r.message}:{action:"allow"};t=c;let l=await c.beforeTool(s,a);if(l.action==="allow"){let m=ro(s),R=m?.ok?m.call:s;c.consumeAllowedCall(R);let v=tr(R);v!==void 0&&n.add(v)}return l},getEngine(){if(t)return t.getEngine();let s=e.settingsOwner.peek(e.sessionId)?.value;return pn(s?.permissionMode)==="auto"?s?.autoModeEngine??"llm":"rules"},consumeAllowedCall(s){let a=tr(s);return a===void 0||!n.has(a)?!1:(n.delete(a),!0)},consumeWorkspaceSandboxCall(s){return t?.consumeWorkspaceSandboxCall(s)??!1},clearAllowedCalls(){n.clear(),t?.clearAllowedCalls()}}}i(Tw,"createRuntimeSessionAutoModeGuardrail");function Dw(e){if(e===void 0)return!0;if((e.shell.profile??"default")!=="none")return!1;let n=e.environment;return n?.setup!==void 0||(n?.denyPatterns?.length??0)>0?!1:!Object.keys(n?.set??{}).some(t=>["TEMP","TMP","TMPDIR"].includes(t.toUpperCase()))}i(Dw,"runtimeShellUsesProcessEnvironmentPathAliases");async function Mw(e){if(pn(e.settings.permissionMode)!=="auto")return;let n=e.settings.autoModeEngine??"llm",t=e.states.get(e.sessionId);t===void 0?(t={engine:n,denials:oo(),breaker:so()},e.states.set(e.sessionId,t)):t.engine=n;let r=Y.resolve(e.options.context?.executionCwd??e.settings.executionCwd??e.options.context?.gitRoot??process.cwd()),o=Y.resolve(e.options.context?.gitRoot??r),s=Dw(e.options.context?.shellExecution),a=JSON.stringify([process.platform==="win32"?o.toLowerCase():o,process.platform==="win32"?r.toLowerCase():r,n,e.settings.autoModeClassifierModel??null,e.settings.autoModeTimeoutMs??null,e.settings.autoModeSpeculativeWindowMs??null,s]),c=e.cache.get(e.sessionId)??new Map;e.cache.set(e.sessionId,c);let l=c.get(a);if(l?.engine===n)return l.guardrail;l&&c.delete(a);let m,R=new Set,v=await Wa({askUser:i(async(x,p,E,u)=>{let g=e.getRecord();if(!g)return"block";let h=g.phase;g.phase==="running"&&e.onPhase(g,"waiting_permission");try{let P=await e.permissions.requestOwned({sessionId:e.sessionId,runId:g.runId,...g.turnId!==void 0?{turnId:g.turnId}:{},toolCallId:x.id,toolName:x.name,reason:p.slice(0,512),risk:kw(E),inputPreview:rr(x.input),executionCwd:r,...u!==void 0?{autoModeDiagnostics:u}:{}},{toolInput:x.input,projectRoot:o,...E!==void 0?{signals:E}:{}});return P.type==="reject"&&P.cause==="approval_timeout"?"timeout":P.type==="allow_once"||P.type==="allow_session"||P.type==="allow_always"?"allow":"block"}finally{g.phase==="waiting_permission"&&e.onPhase(g,h==="queued"?"running":h)}},"askUser"),projectRoot:o,executionCwd:r,trustProcessEnvironmentPathExpansion:s,admitWorkspaceSandboxCall:i((x,p)=>{if(Cw(p))return;let E=tr(x);E!==void 0&&R.add(E)},"admitWorkspaceSandboxCall"),getCurrentProviderName:i(()=>e.getRecord()?.provider??e.provider,"getCurrentProviderName"),getCurrentModel:i(()=>e.getRecord()?.model??e.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>"auto","getCurrentPermissionMode"),autoModeSettings:{engine:n,...e.settings.autoModeClassifierModel!==void 0?{classifierModel:e.settings.autoModeClassifierModel}:{},...e.settings.autoModeTimeoutMs!==void 0?{timeoutMs:e.settings.autoModeTimeoutMs}:{},...e.settings.autoModeSpeculativeWindowMs!==void 0?{speculativeWindowMs:e.settings.autoModeSpeculativeWindowMs}:{}},sharedState:t,extraCollectors:[Ua],onEngineChange:i(x=>{m&&(m.engine=x),e.onEngineChange(x)},"onEngineChange")}),y=Aw(v.getGuardrail(),R);for(m={projectRoot:o,executionCwd:r,engine:y.getEngine(),...e.settings.autoModeClassifierModel!==void 0?{classifierModel:e.settings.autoModeClassifierModel}:{},...e.settings.autoModeTimeoutMs!==void 0?{timeoutMs:e.settings.autoModeTimeoutMs}:{},...e.settings.autoModeSpeculativeWindowMs!==void 0?{speculativeWindowMs:e.settings.autoModeSpeculativeWindowMs}:{},guardrail:y},c.set(a,m);c.size>Ew;){let x=c.keys().next().value;if(x===void 0||x===a)break;c.get(x)?.guardrail.clearAllowedCalls(),c.delete(x)}return y}i(Mw,"createRuntimeAutoModeGuardrail");function Al(e,n,t){if(Fl.has(n))return!0;let r=pn(e.permissionMode);if(r===void 0)return;let o=e.start?.options.context?.gitRoot??e.start?.options.context?.executionCwd,s=o===void 0?void 0:Y.resolve(o),a=Ts(e);if(r==="plan"){let c=Oa(n,t,s,a);return c===null?!0:`${c} Finish the plan before switching to a writable permission mode.`}if(n==="bash"){let c=typeof t.command=="string"?t.command:"";if(Da(c))return!0;if(s&&_a(c,s,a))return}if(s&&Ta.has(n)){let c=typeof t.path=="string"?t.path:void 0;if(c&&Ma(Qs(c,a),s))return}return $a(r).has(n)?void 0:!0}i(Al,"resolveRuntimePermissionPolicy");function Tl(e){return e?e.type==="allow_once"||e.type==="allow_session"||e.type==="allow_always"?!0:e.reason??!1:!1}i(Tl,"decisionToToolDecision");var _w=8192,Nr=16384,Dl=16,Ow={command:2048,description:1024,file_path:1024,path:1024,paths:1024,cwd:1024,url:1024,preview:2048},Nw=/(?:api[_-]?key|authorization|cookie|credential|password|secret|token)/i;function Ds(e){return e.replace(/-----BEGIN ([A-Z0-9][A-Z0-9 _-]{0,63})-----[\s\S]*?(?:-----END \1-----|$)/gi,"[REDACTED_PEM]").replace(/^([ \t]*(?:api[_-]?key|access[_-]?key|access[_-]?token|auth(?:orization)?[_-]?token|client[_-]?secret|cookie|credential|password|private[_-]?key|refresh[_-]?token|secret|token)\s*:\s*[>|][-+0-9]*[ \t]*\r?\n)(?:(?:[ \t]+[^\r\n]*(?:\r?\n|$)))+/gim,`$1 [REDACTED]
379
+ `).replace(/\b((?=[a-z0-9_]*(?:api[_-]?key|access[_-]?key|access[_-]?token|auth[_-]?token|client[_-]?secret|password|private[_-]?key|refresh[_-]?token|secret|token))[a-z_][a-z0-9_]*)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s;&|]+)/gi,"$1=[REDACTED]").replace(/((?:["']?(?:api[_-]?key|access[_-]?key|access[_-]?token|auth(?:orization)?[_-]?token|client[_-]?secret|cookie|credential|password|private[_-]?key|refresh[_-]?token|secret|token)["']?)\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}\]]+)/gi,'$1"[REDACTED]"').replace(/(--(?:(?:api|access|auth|id|refresh)[_-]?(?:key|token)|authorization|client[_-]?secret|password|private[_-]?key|secret|token))(?:=|\s+)(?:"[^"]*"|'[^']*'|[^\s;&|]+)/gi,"$1=[REDACTED]").replace(/\b((?:proxy-)?authorization|cookie|x-api-key)(\s*:\s*)(?:bearer\s+|basic\s+)?[^\s"';&|]+/gi,"$1$2[REDACTED]").replace(/(https?:\/\/)[^\s/:@]+:[^\s/@]+@/gi,"$1[REDACTED]@")}i(Ds,"redactPermissionPreviewString");function rr(e){try{return Lw(e)}catch{return'{"__truncated":true}'}}i(rr,"previewInput");function Lw(e){let n={},t=!0;for(let[o,s]of Object.entries(Ow)){let a=Object.getOwnPropertyDescriptor(e,o);if(!a||!a.enumerable||!("value"in a))continue;if(Nw.test(o)){n[o]="[REDACTED]";continue}let c=a.value;if(typeof c=="string"){let l=c.slice(0,Nr),m=Ds(l);n[o]=m.length<=s?m:`${m.slice(0,Math.max(0,s-1))}\u2026`,t||=c.length>l.length||m.length>s;continue}if(o==="paths"&&Array.isArray(c)){let l=[];for(let m of c.slice(0,Dl)){if(typeof m!="string"){t=!0;continue}let R=m.slice(0,Nr),v=Ds(R);l.push(v.slice(0,s)),t||=m.length>R.length||v.length>s}t||=c.length>Dl,n[o]=l;continue}if(typeof c=="boolean"||typeof c=="number"||typeof c=="bigint"){n[o]=typeof c=="bigint"?c.toString():c;continue}t=!0}t&&(n.__truncated=!0);let r=JSON.stringify(n);return r.length<=_w?r:'{"__truncated":true}'}i(Lw,"buildPermissionInputPreview");function Fw(e){if(e.length>Nr)return rr({preview:e.slice(0,Nr)});try{let n=JSON.parse(e);return rr(ae(n)?n:{value:n})}catch{return rr({preview:e})}}i(Fw,"normalizePermissionInputPreview");function He(e){return e instanceof Error?e:new Error(String(e))}i(He,"normalizeError");function Wn(e,n){return Object.assign(new Error(e),{code:"conflict",currentRevision:n})}i(Wn,"createRuntimeConflictError");function Ms(e){return Object.assign(new Error(`Session is archived and cannot execute until it is unarchived: ${e}`),{code:"session_archived"})}i(Ms,"createSessionArchivedError");function Pe(e){return Object.assign(new Error(e),{code:"resync_required"})}i(Pe,"createRuntimeResyncError");function Ml(e){return e instanceof an&&e.code==="data_changed"?Pe("Conversation history changed; acquire a fresh history boundary"):He(e)}i(Ml,"normalizeConversationBoundaryMutationError");function qs(e){return Object.assign(Pe(e),{snapshotInvalid:!0})}i(qs,"createRuntimeTranscriptSnapshotInvalidError");function Hw(e){return ae(e)&&e.snapshotInvalid===!0}i(Hw,"isRuntimeTranscriptSnapshotInvalidError");function Ti(){return Object.assign(new Error(`Transcript snapshot storage limit exceeded (${Tr} bytes)`),{code:"overloaded",data:{limitBytes:Tr}})}i(Ti,"createRuntimeSnapshotCapacityError");function Ki(){return Object.assign(new Error(`Runtime history page limit exceeded (${kt} bytes)`),{code:"overloaded",data:{limitBytes:kt}})}i(Ki,"createRuntimeHistoryPageCapacityError");function $w(){return Object.assign(new Error(`Transcript snapshot I/O limit exceeded (${Fi} operations)`),{code:"overloaded",data:{resource:"transcript_snapshot_io",limit:Fi}})}i($w,"createRuntimeSnapshotIoCapacityError");function jw(e,n){return Bi(e)?e:ae(e)&&(e.code==="overloaded"||e.code==="resync_required")?e instanceof Error?e:Object.assign(new Error("Transcript snapshot operation failed"),e):n?new an("read_cancelled","Runtime history read cancelled because the Runtime is closing"):ae(e)&&(e.code==="ENOENT"||e.code==="ENOTDIR")?Pe("Transcript snapshot storage changed; request a fresh boundary"):Object.assign(new Error("Unable to materialize the transcript snapshot",{cause:e}),{code:"internal_error"})}i(jw,"normalizeRuntimeSnapshotMaterializationError");function dm(e){return Object.assign(new Error(e),{code:"invalid_input"})}i(dm,"createRuntimeInvalidInputError");function qw(e){return Object.assign(new Error(e),{code:"credential_unavailable"})}i(qw,"createRuntimeCredentialUnavailableError");function Bw(){return{async register(){throw new Error("Credential broker registration requires a shared daemon client.")},async resume(){throw new Error("Credential broker resume requires a shared daemon client.")},async revoke(){return!1}}}i(Bw,"createUnsupportedCredentialService");function Kw(){return{async register(){throw new Error("Host tool registration requires a shared daemon client.")},async resume(){throw new Error("Host tool resume requires a shared daemon client.")},async getInvocation(){},async revoke(){return!1}}}i(Kw,"createUnsupportedHostToolService");function Qt(e,n){let t=n(e);if(t===void 0)return;let r=new Error(`Session has an active run and cannot be mutated: ${e}`);throw Object.defineProperty(r,"code",{configurable:!0,enumerable:!0,value:t==="foreign"?"actor_owner_conflict":"conflict"}),r}i(Qt,"assertSessionMutationAllowed");function _l(e,n){if(!("ok"in n))throw n.error.code==="session_running"?new Error(`Session is running and cannot be deleted: ${e}`):Object.assign(new Error(`Session could not be deleted: ${e}`),{code:"session_delete_failed"})}i(_l,"assertDeleteSucceeded");function Uw(e){return structuredClone(e)}i(Uw,"cloneMessage");export{Po as a,Vn as b,xo as c,_t as d,ct as e,ii as f,fi as g,_u as h,Ou as i,ip as j,op as k,Fy as l,Tn as m,St as n,NI as o,LI as p,FI as q,HI as r,$I as s,jI as t,qI as u,cR as v,Hl as w};