@kodax-ai/kodax 0.7.80 → 0.7.82

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 (64) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +26 -3
  3. package/README_CN.md +21 -3
  4. package/dist/chunks/{agent-5PHGNFW3.js → agent-4UTCCMD5.js} +1 -1
  5. package/dist/chunks/argument-completer-N7ORRJBS.js +2 -0
  6. package/dist/chunks/{chunk-PMKAG4SZ.js → chunk-7ZN2MLVM.js} +1 -1
  7. package/dist/chunks/{chunk-GC4JBMBS.js → chunk-GIVYTXQW.js} +7 -7
  8. package/dist/chunks/{chunk-IHPH3444.js → chunk-JDZFNWMZ.js} +2 -2
  9. package/dist/chunks/{chunk-BWX4YZX3.js → chunk-KH2HED37.js} +2 -2
  10. package/dist/chunks/{chunk-RXXKDR6Y.js → chunk-NINELPXH.js} +1 -1
  11. package/dist/chunks/chunk-PGTU7JQX.js +30 -0
  12. package/dist/chunks/{chunk-T5U4OP2N.js → chunk-S6JTWDN6.js} +1 -1
  13. package/dist/chunks/{chunk-CDCCTM5I.js → chunk-VQBJMNFD.js} +2 -2
  14. package/dist/chunks/{chunk-CEB5FDND.js → chunk-WMYCNECP.js} +57 -57
  15. package/dist/chunks/{chunk-FQ7NVMSU.js → chunk-XTCDCU2Q.js} +136 -136
  16. package/dist/chunks/{chunk-RPF5RGWZ.js → chunk-ZOBNDWOA.js} +151 -151
  17. package/dist/chunks/chunk-ZZUIO5KL.js +348 -0
  18. package/dist/chunks/{compaction-config-6J6XCBJS.js → compaction-config-IDL5JQVI.js} +1 -1
  19. package/dist/chunks/{construction-bootstrap-KPCAE3VN.js → construction-bootstrap-STYUR6XA.js} +1 -1
  20. package/dist/chunks/{dist-RWEVZOFK.js → dist-RKBHBUHV.js} +1 -1
  21. package/dist/chunks/{host-OGS2R5J4.js → host-RF2IX3N6.js} +1 -1
  22. package/dist/chunks/{run-manager-2YMM3BOT.js → run-manager-WE2KPAKZ.js} +1 -1
  23. package/dist/chunks/{utils-2YHRUZYC.js → utils-Z2RSAENX.js} +1 -1
  24. package/dist/index.d.ts +12 -12
  25. package/dist/index.js +1 -1
  26. package/dist/kodax_bootstrap.js +1 -1
  27. package/dist/kodax_cli.js +1292 -1292
  28. package/dist/kodax_resume.js +4 -4
  29. package/dist/runtime-worker.js +1148 -1148
  30. package/dist/sandbox-workspace-session.js +4 -4
  31. package/dist/sdk-a2a.d.ts +8 -8
  32. package/dist/sdk-a2a.js +1 -1
  33. package/dist/sdk-agent.d.ts +10 -10
  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 +15 -8
  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 +2 -2
  47. package/dist/types-chunks/{bash-prefix-extractor.d-DStqKIlu.d.ts → bash-prefix-extractor.d-CJM7OY-L.d.ts} +4 -2
  48. package/dist/types-chunks/{capsule.d-BuFJaYxA.d.ts → capsule.d-B7yoH4dM.d.ts} +4 -2
  49. package/dist/types-chunks/{controller.d-C2aHqzHj.d.ts → controller.d-CYNuR2n9.d.ts} +2 -2
  50. package/dist/types-chunks/{guardrail.d-DM-OK0m3.d.ts → guardrail.d-fM3mn4Op.d.ts} +2 -2
  51. package/dist/types-chunks/{history-retrieval.d-DImTKgO6.d.ts → history-retrieval.d-BDI-ZMvY.d.ts} +1 -1
  52. package/dist/types-chunks/{public-api.d-CewTvUKV.d.ts → public-api.d-i10kvYFs.d.ts} +2 -2
  53. package/dist/types-chunks/{repl.d-DvXQtgr7.d.ts → repl.d-Cs3eqGVT.d.ts} +5 -5
  54. package/dist/types-chunks/{run-manager.d-C6ahvZqK.d.ts → run-manager.d-CodHf6rw.d.ts} +1 -1
  55. package/dist/types-chunks/{sdk-session-C59RUrri.d.ts → sdk-session-CRXu5xNs.d.ts} +2 -2
  56. package/dist/types-chunks/{shell-command-sets.d-Dp4UvPLL.d.ts → shell-command-sets.d-DfeSUjjM.d.ts} +1 -1
  57. package/dist/types-chunks/{types.d-BzpPDBPV.d.ts → types.d-DIXZFauU.d.ts} +1 -1
  58. package/dist/types-chunks/{types.d-yuJzE82x.d.ts → types.d-DKs4tfSd.d.ts} +2 -2
  59. package/dist/types-chunks/{utils.d-BpACJmzt.d.ts → utils.d-CgITiLyc.d.ts} +4 -4
  60. package/docs/SDK_EMBEDDER_GUIDE.md +38 -10
  61. package/package.json +1 -1
  62. package/dist/chunks/argument-completer-FXRZFMTC.js +0 -2
  63. package/dist/chunks/chunk-UZSHBQER.js +0 -30
  64. package/dist/chunks/chunk-VECRQTSD.js +0 -348
@@ -0,0 +1,30 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{b as jr,h as Ga,i as Va}from"./chunk-S6JTWDN6.js";import{Cb as qa,Eb as $a,Fb as ja,Gb as Ba,Hb as Ka,Ib as Xa,Jb as Ua,Kb as to,Ob as ro,Pb as io,Qb as rn,Wa as Fa,Zb as oo,jc as za,kc as Wa}from"./chunk-XTCDCU2Q.js";import{Aa as Ha,k as Da,m as mn,y as La}from"./chunk-JDZFNWMZ.js";import{O as no,Q as _a,X as Oa,Y as Na,f as Ma,q as eo,y as $r}from"./chunk-VQBJMNFD.js";import{$a as Zi,Ca as Ea,Ja as Pa,Va as Qi,aa as Fr,bb as xa,cb as Ca,e as va,ea as Ia,eb as Aa,fb as Ta,ib as qr,ta as ka,w as Sa,za as ba}from"./chunk-ZOBNDWOA.js";import{k as ya}from"./chunk-ZZUIO5KL.js";import{Kc as Ra,Pb as Ji,Vc as xt,ae as ha,c as sr,ce as wa,d as Vi,jd as Yi,xb as ar}from"./chunk-GIVYTXQW.js";import{Aa as Lr,Ta as js,a as qi,c as nt,ya as $s}from"./chunk-TRNAWSXP.js";import{$d as pa,La as Us,Pa as zs,Sa as $i,Va as Ws,Xd as fa,Ya as Gs,Yb as Wi,ad as Gi,ae as ga,dd as la,ed as ma,pc as ca}from"./chunk-WMYCNECP.js";import{Fa as ia,Ga as Ki,H as Zs,La as oa,Ma as sa,Na as aa,Oa as da,Pa as ua,Qa as Xi,Z as ea,_a as Ui,ab as zi,c as Bs,d as ye,g as Ks,i as Hr,j as Xs,r as Qs,ra as na,va as Bi,ya as ta,za as ra}from"./chunk-EVXIJPZ6.js";import{F as Ys,b as Vs,d as ji,e as Js}from"./chunk-E7C4DRD2.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as St,randomUUID as Je}from"node:crypto";import{spawnSync as _c}from"node:child_process";import*as q from"node:fs";import Pi from"node:os";import J from"node:path";import{createHash as Zl}from"node:crypto";import dr from"node:path";var em=["path","file_path"],nm=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function uo(e){let n=e.platform??Kr();if(e.toolName==="bash")return rm(e,n);let t=nm.has(e.toolName)?em.map(s=>e.toolInput[s]).find(s=>typeof s=="string"&&s.length>0):void 0;if(t!==void 0)return om(e.toolName,t,e.executionCwd,n);let r=lo(e.executionCwd,e.executionCwd,n),o=tt(dm(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:tt({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(uo,"createRuntimePermissionMatcher");function Ja(e,n){if(e.toolName!==n.toolName)return!1;let t=uo(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(Ja,"runtimePermissionMatcherMatches");function Ya(e){if(!um(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"||!Br(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!Br(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!Br(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 so(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 so(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&Br(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return so(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(Ya,"parseRuntimePermissionMatcher");function so(e,n){if(tt(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(so,"assertMatcherFingerprint");function tm(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(tm,"hasDynamicShellExpansion");function co(e,n){return tm(e,n==="posix"?"posix":"win32")}i(co,"hasDynamicExpansionForPermissionShell");function Kr(){return process.platform==="win32"?"win32":"posix"}i(Kr,"runtimePermissionHostPlatform");function rm(e,n){let t=e.toolInput.command,r=typeof t=="string"?sm(t):"",o=lo(e.executionCwd,e.executionCwd,n),s=e.toolInput.run_in_background===!0,a=e.shell??(n==="win32"?"cmd":"posix"),c=am(r,a),l=im(c?.[0],n),m=c&&c.length>1?tt(c.slice(1)):void 0,R=tt(r),S={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{...S,fingerprint:tt(S)}}i(rm,"createExactCommandMatcher");function im(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?dr.win32.basename(e.replaceAll("/","\\")):dr.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(im,"safeExecutableMetadata");function om(e,n,t,r){let o=lo(n,t,r),s={version:1,kind:"exact-path",toolName:e,path:o};return{...s,fingerprint:tt(s)}}i(om,"createExactPathMatcher");function sm(e){return e.replace(/\r\n?/g,`
3
+ `).trim()}i(sm,"normalizeCommand");function lo(e,n,t){if(t==="win32"){let r=dr.win32.resolve(n.replaceAll("/","\\"));return dr.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return dr.posix.resolve(n,e)}i(lo,"normalizePermissionPath");function am(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(am,"tokenizeShellCommand");function dm(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}i(dm,"normalizeGenericInput");function tt(e){return Zl("sha256").update(ao(e)).digest("hex")}i(tt,"stableFingerprint");function ao(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(ao).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${ao(n[t])}`).join(",")}}`}i(ao,"stableSerialize");function Br(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}i(Br,"isSha256");function um(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(um,"isRecord");import{createHash as cm}from"node:crypto";import Sn from"node:fs";import vn from"node:path";function Ct(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ct,"isRecord");function Qa(e){return Ct(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"&&Ct(e.capabilities)&&Ct(e.effects):!1}i(Qa,"isRegistration");function lm(e){return Ct(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"&&Ct(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}i(lm,"isTask");function mm(e){return Ct(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}i(mm,"isEvent");function ed(e){try{return JSON.parse(Sn.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(ed,"parseJson");function Za(e,n){if(!Sn.existsSync(e))return[];let t=ed(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(Za,"readList");function mo(e,n){Sn.mkdirSync(vn.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;Sn.writeFileSync(t,`${JSON.stringify(n,null,2)}
5
+ `,{encoding:"utf8",mode:384}),Sn.renameSync(t,e)}i(mo,"writeJsonAtomic");function Xr(e,n){let t=cm("sha256").update(n).digest("hex");return vn.join(e,t)}i(Xr,"taskDirectory");function fm(e,n){if(!Sn.existsSync(e))return[];let t=Sn.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(!mm(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(fm,"readEvents");function nd(e){let n=vn.resolve(e),t=vn.join(n,"registrations.json"),r=vn.join(n,"task-registration-snapshots.json"),o=vn.join(n,"tasks");return{async loadRegistrations(){return Za(t,Qa)},async saveRegistrations(s){mo(t,s)},async loadTaskRegistrationSnapshots(){return Za(r,Qa)},async saveTaskRegistrationSnapshots(s){mo(r,s)},async loadTasks(){if(!Sn.existsSync(o))return[];let s=[];for(let c of Sn.readdirSync(o,{withFileTypes:!0})){if(!c.isDirectory())continue;let l=vn.join(o,c.name,"snapshot.json");if(!Sn.existsSync(l))continue;let m=ed(l);if(!lm(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=vn.basename(Xr(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){mo(vn.join(Xr(o,s.taskId),"snapshot.json"),s)},async loadEvents(s){return fm(vn.join(Xr(o,s),"events.jsonl"),s)},async appendEvent(s){let a=vn.join(Xr(o,s.taskId),"events.jsonl");Sn.mkdirSync(vn.dirname(a),{recursive:!0}),Sn.appendFileSync(a,`${JSON.stringify(s)}
6
+ `,{encoding:"utf8",mode:384})}}}i(nd,"createRuntimeAgentExecutorPlaneStore");import{createHash as fd,randomUUID as ur}from"node:crypto";import Tt from"node:fs";import{mkdir as pd,readFile as gd}from"node:fs/promises";import Xe from"node:path";var yd=["read","grep","glob"],Rd=["write","edit","multi_edit","insert_after_anchor"],hd=["mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt"],pm=["list_dispatchable_agents","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output"],gm=new Set([...yd,...Rd]),ym=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),Rm=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]);function po(e){return Array.isArray(e)?e.map(po):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,po(t)]))}i(po,"canonicalValue");function rt(e){return fd("sha256").update(JSON.stringify(po(e))).digest("hex")}i(rt,"stableHash");function wd(e){let n=fd("sha256");for(let t of e)n.update(t);return n.digest("hex")}i(wd,"hashParts");function Ur(e,n){let t=Xe.relative(Xe.resolve(e),Xe.resolve(n));return t===""||!t.startsWith("..")&&!Xe.isAbsolute(t)}i(Ur,"isInside");function go(e){if(!Tt.existsSync(e))return 0;let n=0;for(let t of Tt.readdirSync(e,{withFileTypes:!0})){let r=Xe.join(e,t.name);t.isSymbolicLink()||(t.isDirectory()?n+=go(r):t.isFile()&&(n+=Tt.statSync(r).size))}return n}i(go,"directoryBytes");function td(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<=0)throw new Error("Runtime workspace byte limit must be positive.");return e}}i(td,"validateWorkspaceByteLimit");function fo(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(fo,"normalizedWorkspace");function yo(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(yo,"exactList");function rd(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,yo(r,`${n}.${t}`,!1)]}))}i(rd,"exactMap");function id(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:yo(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=rd(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:yo(e.tools,"Runtime toolPolicy.tools"),mcp:rd(e.mcp,"Runtime toolPolicy.mcp"),skillScripts:r,subagents:e.subagents}}i(id,"validatedToolPolicy");function hm(e){return e==="project"?"workspace":e}i(hm,"skillSource");function wm(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(wm,"skillFiles");async function vm(e){let n=[e.name,e.rawContent];for(let t of wm(e))n.push(t.relativePath,await gd(t.path));return wd(n)}i(vm,"skillRevision");var zr=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.")}},Ro=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 vd(e){let n=e.workspace.mode==="fixed"?e.workspace.root:void 0,t=Zs(n),r=t.userPaths.filter(a=>Xe.basename(Xe.dirname(a))===".agents"),o=n===void 0?void 0:await Sd({configHome:e.configHome,projectRoot:n,...e.bindingId===void 0?{}:{bindingId:e.bindingId},...e.ownerSessionRef===void 0?{}:{ownerSessionRef:e.ownerSessionRef}}),s=new Ui(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 it(o,e.bindingId),a}try{let a=s.list(),l=e.selection===void 0||e.selection.includes("*")?a.filter(S=>S.source!=="project"&&!S.disableModelInvocation):e.selection.map(S=>{let y=s.get(S);if(!y)throw new Error(`Markdown Agent requires unknown Skill "${S}".`);if(y.disableModelInvocation)throw new Error(`Skill "${S}" disables model invocation.`);return y}),m=[];for(let S of l.sort((y,x)=>y.name.localeCompare(x.name))){let y=await vm(await s.loadFull(S.name));m.push({name:S.name,source:hm(S.source),revision:y})}let R={registry:new zr(s,l),refs:m,revision:rt(m),protectedFormalSkillNames:a.filter(S=>S.source!=="learned").map(S=>S.name),...o===void 0?{}:{learnedSkills:{store:o.store,testingCapabilityIds:o.testingCapabilityIds}}};return await At(o,e.bindingId),R}catch(a){throw await At(o,e.bindingId),a}}i(vd,"resolveSkills");async function Sd(e){try{return await Sm(e)}catch(n){ye({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this binding: ${cr(n)}`});return}}i(Sd,"tryPrepareProjectLearnedSkills");async function it(e,n){e===void 0||n===void 0||await Promise.all(e.testingCapabilityIds.map(t=>Ki(e.store,t,n)))}i(it,"releaseResolvedLearnedSkills");async function At(e,n){if(e===void 0||n===void 0)return;let t=await Promise.allSettled(e.testingCapabilityIds.map(r=>Ki(e.store,r,n)));for(let r of t)r.status==="rejected"&&ye({source:"runtime:learned-skills",level:"warn",message:`Learned Skill binding release requires lease recovery: ${cr(r.reason)}`})}i(At,"safeReleaseResolvedLearnedSkills");function cr(e){return e instanceof Error?e.message:String(e)}i(cr,"errorMessage");async function Sm(e){let n=`local:${e.configHome}`,t=Qs(e.projectRoot)?.trim(),r=t===void 0?`local:${Xe.resolve(e.projectRoot).toLowerCase()}`:ya(t),o=ta(e.configHome,{tenantId:n,projectId:r}),s=new na(o);await s.initialize();let a=ra(e.configHome,{tenantId:n,projectId:r});await sa(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 ia(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(Sm,"prepareProjectLearnedSkills");function Im(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(Im,"validateRemoteContract");function od(e){let n=new Set;e.policy.workspace!=="none"&&yd.forEach(s=>n.add(s)),e.policy.workspace==="write"&&Rd.forEach(s=>n.add(s)),e.hasSkills&&n.add("skill"),e.hasSkillScripts&&n.add("run_skill_script"),Object.keys(e.policy.mcp).length>0&&hd.forEach(s=>n.add(s)),e.policy.subagents==="inherit"&&pm.forEach(s=>n.add(s));let t=new Map(Yi().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.`);Im(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(od,"resolveToolSurface");function sd(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(sd,"skillsPrompt");function ad(e,n){let r=Xe.relative(n,e).split(Xe.sep).map(o=>o.toLowerCase());return r.some(o=>ym.has(o))||r.some(o=>Rm.has(o)||o.startsWith(".env."))}i(ad,"sensitivePath");function km(e){let n=e;for(;!Tt.existsSync(n);){let t=Xe.dirname(n);if(t===n)throw new Error("Tool path has no existing parent.");n=t}return n}i(km,"nearestExistingPath");function bm(e,n){let t=Tt.realpathSync(e),r=km(n),o=Tt.realpathSync(r);if(!Ur(t,o))throw new Error("Tool path escapes the bound workspace through a link.");let s=Xe.resolve(o,Xe.relative(r,n));if(!Ur(t,s))throw new Error("Tool path escapes the bound workspace through a link.");return{root:t,candidate:s}}i(bm,"resolveRealToolPath");function lr(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(!Ur(e,t))throw new Error("Tool path escapes the bound workspace.");let r=bm(e,t);if(ad(t,e)||ad(r.candidate,r.root))throw new Error("Secret-bearing paths are unavailable to remote Agents.");return t}i(lr,"resolveToolPath");function dd(){return{beforeToolExecute:i(async()=>!0,"beforeToolExecute")}}i(dd,"remoteRunEvents");function Em(e,n,t){if(!hd.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(Em,"authorizeMcp");function Pm(e){return{async resolveReadablePath(n){return lr(e,n)??e},async stageOutput(n){let t=ur(),r=Xe.basename(n).replace(/[^A-Za-z0-9._-]/g,"_")||"output",o=Xe.join(e,".kodax-a2a-staging",`${t}-${r}`);return await pd(Xe.dirname(o),{recursive:!0}),{stagingId:t,path:lr(e,o)??o}}}}i(Pm,"workspaceBroker");function ud(e,n){return{kind:"tool",name:`runtime-remote-policy:${e.bindingId}`,async beforeTool(t,r){try{if(e.workspaceByteLimit!==void 0&&go(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(Yi().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(gm.has(t.name)){let a=(t.name==="grep"||t.name==="glob","path");lr(n,t.input[a])}Em(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:Pm(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&&go(n)>e.workspaceByteLimit?{action:"block",reason:"Remote workspace byte quota exceeded."}:{action:"allow"}}}}i(ud,"createToolGuardrail");async function cd(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"&&!Ur(e.managedWorkspaceRoot,o))throw new Error("Runtime session workspace is outside the managed A2A root.");return Xe.resolve(o)}i(cd,"requiredWorkspaceRoot");async function ld(e,n,t,r){let o=t.mode==="fixed"?t.root:e.managedWorkspaceRoot,s=await Ra({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=wd([await gd(a.path)]);try{let m=await vd({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(ld,"localAgentResources");function md(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(md,"resolvedLocal");function Id(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 At(l.learnedSkills,l.bindingId)},"release"),a=i(async(l,m)=>{let R=l.skillRegistry.list().filter(h=>h.source!=="learned"),S=new zr(l.skillRegistry,R),y={context:{configHome:e.configHome,protectedFormalSkillNames:l.protectedFormalSkillNames},registry:S,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_${ur()}`,g=await Sd({configHome:e.configHome,projectRoot:l.workspace.root,bindingId:x,ownerSessionRef:m});if(g===void 0)return y;let E=new Ui(void 0,{projectPaths:[],userPaths:[],pluginPaths:[],builtinPath:Xe.join(g.discovery.rootDir,".no-formal-skills"),learnedArea:g.discovery});try{await Xi(g.store,{sessionId:m,bindingId:x}),await E.discover()}catch(h){return await At(g,x),ye({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this root run: ${cr(h)}`}),y}let d=new Ro(S,E);try{for(let h of d.list())h.source!=="learned"||h.learned===void 0||await aa(g.store,{sessionId:m,bindingId:x,capabilityId:h.learned.capabilityId,revision:h.learned.revision,fingerprint:h.learned.fingerprint})}catch(h){return await At(g,x),ye({source:"runtime:learned-skills",level:"warn",message:`Learned usage receipts disabled for this root run: ${cr(h)}`}),y}let p=d.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 da(g.store,{sessionId:m,ownerSessionRef:m,capabilityId:h.capabilityId,expectedRevision:h.revision,expectedFingerprint:h.fingerprint,bindingId:x})).invocationId}),"admitLearnedSkillInvocation"),completeLearnedSkillOutcomes:i(async h=>{await ua(g.store,{...h,sessionId:m,bindingId:x})},"completeLearnedSkillOutcomes")},registry:d,skills:[...l.effectiveSkills.filter(h=>h.source!=="learned"),...p],release:i(async()=>{try{await Xi(g.store,{sessionId:m,bindingId:x})}catch(h){ye({source:"runtime:learned-skills",level:"warn",message:`Learned Skill outcome reconciliation failed: ${cr(h)}`})}finally{await At(g,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=fo(l.workspace),R=await ld(e,l.ref,m);try{return md(l.ref,R)}finally{R.scope.dispose()}},async openOwnerSession(){let l=ur();return n.set(l,new Set),{ownerSessionId:l}},async bindDefault(l){let m=r(l.ownerSessionId),R=fo(l.workspace),S=id(l.toolPolicy),y=td(l.workspaceByteLimit),x=ur(),g=await vd({configHome:e.configHome,workspace:R,bindingId:x,ownerSessionRef:l.ownerSessionId}),E=Object.keys(S.skillScripts).length>0,d=od({policy:S,hasSkills:g.refs.length>0,hasSkillScripts:E}),p=E?await e.createSkillScriptRunner?.({registry:g.registry,admissions:S.skillScripts,workspaceAccess:S.workspace,network:S.network,workspaceByteLimit:y}):void 0;if(E&&!p)throw await it(g.learnedSkills,x),new Error("Runtime isolated Skill script backend is unavailable.");let h=rt(S),P=rt(R),I=rt({kind:"runtime-default",profileId:l.profileId,toolPolicyRevision:h,workspaceBindingRevision:P,skillSetRevision:g.revision,provider:e.defaultProvider,model:e.defaultModel,tools:d.tools,workspaceByteLimit:y});if(l.expectedExecutionPolicyRevision&&l.expectedExecutionPolicyRevision!==I)throw await p?.dispose(),await it(g.learnedSkills,x),new Error("Runtime default execution policy revision changed.");let b={ownerSessionId:l.ownerSessionId,bindingId:x,kind:"runtime-default",executionPolicyRevision:I,toolPolicyRevision:h,workspaceBindingRevision:P,workspace:R,toolPolicy:S,effectiveTools:d.tools,effectiveSkills:g.refs,skillSetRevision:g.revision,skillRegistry:g.registry,protectedFormalSkillNames:g.protectedFormalSkillNames,skillScriptRunner:p,remoteContracts:d.contracts,toolRegistrations:d.registrations,workspaceByteLimit:y,...g.learnedSkills===void 0?{}:{learnedSkills:g.learnedSkills}};return t.set(x,b),m.add(x),{ownerSessionId:l.ownerSessionId,bindingId:x,executionPolicyRevision:I,toolPolicyRevision:h,workspaceBindingRevision:P,skillSetRevision:g.revision,effectiveSkills:g.refs,effectiveTools:d.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 cd(e,m,l.sessionId),S=await a(m,l.sessionId);return c(S,()=>e.runs.start({sessionId:l.sessionId,input:l.input,permissionBroker:l.permissionBroker,agentContext:l.agentContext,options:{context:{executionCwd:R,gitRoot:R,managedTaskWorkspaceDir:R,...S.context,toolVisibilityPolicy:i(y=>m.effectiveTools.includes(y.name),"toolVisibilityPolicy"),skillRegistry:S.registry,skillScriptRunner:m.skillScriptRunner,assertReadablePath:i(y=>{lr(R,y)},"assertReadablePath"),skillsPrompt:sd(S.skills,S.registry)},skillDynamicContext:{disable:!0},guardrails:[ud(m,R)],events:dd()}}))},async bindLocal(l){let m=r(l.ownerSessionId),R=fo(l.workspace),S=id(l.toolPolicy),y=td(l.workspaceByteLimit),x=ur(),g=await ld(e,l.ref,R,{bindingId:x,ownerSessionRef:l.ownerSessionId}),E=md(l.ref,g);if(l.expectedConfigurationRevision&&l.expectedConfigurationRevision!==E.configurationRevision)throw g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error("User Markdown Agent configuration revision changed.");let d=od({declared:g.loaded.effectiveTools,policy:S,hasSkills:g.skills.refs.length>0,hasSkillScripts:Object.keys(S.skillScripts).length>0}),p=Object.keys(S.skillScripts).length>0,h=p?await e.createSkillScriptRunner?.({registry:g.skills.registry,admissions:S.skillScripts,workspaceAccess:S.workspace,network:S.network,workspaceByteLimit:y}):void 0;if(p&&!h)throw g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error("Runtime isolated Skill script backend is unavailable.");let P=rt(S),I=rt(R),b=rt({kind:"local-agent",profileId:l.profileId,configurationRevision:E.configurationRevision,toolPolicyRevision:P,workspaceBindingRevision:I,skillSetRevision:g.skills.revision,tools:d.tools,workspaceByteLimit:y});if(l.expectedExecutionPolicyRevision&&l.expectedExecutionPolicyRevision!==b)throw await h?.dispose(),g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error("Local Agent execution policy revision changed.");let A=g.scope.resolve(l.ref.name)?.agent;if(!A)throw await h?.dispose(),g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error(`User Markdown Agent not found: ${l.ref.name}`);let C={ownerSessionId:l.ownerSessionId,bindingId:x,kind:"local-agent",executionPolicyRevision:b,toolPolicyRevision:P,workspaceBindingRevision:I,workspace:R,toolPolicy:S,effectiveTools:d.tools,effectiveSkills:g.skills.refs,skillSetRevision:g.skills.revision,skillRegistry:g.skills.registry,protectedFormalSkillNames:g.skills.protectedFormalSkillNames,skillScriptRunner:h,remoteContracts:d.contracts,toolRegistrations:d.registrations,...g.skills.learnedSkills===void 0?{}:{learnedSkills:g.skills.learnedSkills},workspaceByteLimit:y,scope:g.scope,loadedAgent:g.loaded,agent:A,configurationRevision:g.configurationRevision};return t.set(x,C),m.add(x),{...E,ownerSessionId:l.ownerSessionId,bindingId:x,executionPolicyRevision:b,toolPolicyRevision:P,workspaceBindingRevision:I,effectiveTools:d.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,S=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 cd(e,m,l.sessionId),x=await a(m,l.sessionId),g=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:g,agentScope:S,toolVisibilityPolicy:i(E=>m.effectiveTools.includes(E.name),"toolVisibilityPolicy"),skillRegistry:x.registry,skillScriptRunner:m.skillScriptRunner,assertReadablePath:i(E=>{lr(y,E)},"assertReadablePath"),skillsPrompt:sd(x.skills,x.registry)},skillDynamicContext:{disable:!0},guardrails:[ud(m,y)],events:dd()}}))},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 pd(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(Id,"createRuntimeAgentBindingService");import{randomUUID as xm}from"node:crypto";import*as Gr from"node:net";var Ed="127.0.0.1",Cm=/^[a-f0-9]{32}$/,Am=500,Tm=128,Dm=16;async function Pd(e){let n=xm().replace(/-/g,""),t=new Set,r=Gr.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 Om(r);let o=r.address();if(o===null||typeof o=="string")throw await bd(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 bd(r)})();return s=a,a.catch(()=>{s===a&&(s=void 0)}),a}}}i(Pd,"createRuntimeActorOwnerLiveness");async function ho(e){return await mr(e)!=="dead"}i(ho,"isRuntimeActorOwnerAlive");async function mr(e){if(Mm(e.pid))return"dead";if(e.livenessId===void 0||e.livenessPort===void 0||!Cm.test(e.livenessId)||!Number.isSafeInteger(e.livenessPort)||e.livenessPort<=0||e.livenessPort>65535)return"unknown";try{return await _m(e.livenessPort,e.livenessId)?"alive":"dead"}catch(n){return Wr(n)==="ECONNREFUSED"?"dead":"unknown"}}i(mr,"inspectRuntimeActorOwner");function kd(e){return[e.ownerId,e.runtimeId,e.pid,e.startedAt,e.livenessId??"",e.livenessPort??""].join("\0")}i(kd,"actorOwnerProbeKey");async function xd(e){let n=new Map;for(let c of e)n.set(kd(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 mr(c[1]))}},"worker"),a=Math.min(Dm,t.length);return await Promise.all(Array.from({length:a},()=>s())),e.map(c=>r.get(kd(c))??"unknown")}i(xd,"inspectRuntimeActorOwners");function Mm(e){try{return process.kill(e,0),!1}catch(n){return Wr(n)==="ESRCH"}}i(Mm,"isPidDefinitelyDead");function _m(e,n){return new Promise((t,r)=>{let o=Gr.createConnection({host:Ed,port:e}),s="",a=!1,c=setTimeout(()=>m(void 0),Am);c.unref?.();let l=i(()=>{clearTimeout(c),o.off("data",R),o.off("end",S),o.off("error",y),o.destroy()},"cleanup"),m=i((x,g)=>{a||(a=!0,l(),g?r(g):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)>Tm&&m(!1)},"onData"),S=i(()=>m(s.trim()===n),"onEnd"),y=i(x=>m(void 0,x),"onError");o.on("data",R),o.once("end",S),o.once("error",y)})}i(_m,"probe");function Om(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:Ed,port:0,exclusive:!0})})}i(Om,"listen");function bd(e){return new Promise((n,t)=>{try{e.close(r=>{if(r&&Wr(r)!=="ERR_SERVER_NOT_RUNNING"){t(r);return}n()})}catch(r){if(Wr(r)==="ERR_SERVER_NOT_RUNNING"){n();return}t(r)}})}i(bd,"closeServer");function Wr(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}i(Wr,"errorCode");import{createHash as Nm}from"node:crypto";function Td(e){let n=e.userSkillsRoot===void 0?[]:[oa({learnedAreaRoot:e.rootDir,learnedAreaKind:"global",userSkillsRoot:e.userSkillsRoot})],t=Bi({rootDir:e.rootDir,clientIdentity:Cd(e.defaultClientIdentity),proposalStores:e.proposalStores,actionDrivers:n}),r,o=i(()=>(r??=t.initialize(),r),"ensureReady"),s=i(c=>{let l=Cd(c),m=Bi({rootDir:e.rootDir,clientIdentity:l,proposalStores:e.proposalStores,actionDrivers:n});return Ad(m,o)},"forClient"),a=Ad(t,o);return Object.assign(a,{forClient:s})}i(Td,"createRuntimeLearningOwner");function Fn(e,n){let t=e;return typeof t.forClient=="function"?t.forClient(n):e}i(Fn,"bindRuntimeLearningClient");function Cd(e){return`client_${Nm("sha256").update(e).digest("hex").slice(0,32)}`}i(Cd,"learningClientFileKey");function Ad(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=>Lm(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 Dt(e,o,s=>e.reject(o,s))},"reject"),disable:i(async o=>{await r(),await Dt(e,o,s=>e.disable(o,s))},"disable"),rollback:i(async o=>{await r(),await Dt(e,o,s=>e.rollback(o,s))},"rollback"),promote:i(async(o,s)=>{await r(),await Dt(e,o,a=>e.promote(o,s,a))},"promote"),review:i(async o=>{await r(),await Dt(e,o,s=>e.review(o,s))},"review"),trust:i(async o=>{await r(),await Dt(e,o,s=>e.trust(o,s))},"trust")}}i(Ad,"createInitializedFacade");async function Dt(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(Dt,"withExplicitUserAuthority");function Lm(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(Lm,"subscribeWhenReady");import{randomUUID as Qr}from"node:crypto";var Hm=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"]),Fm=new Set(["run.queued","run.started","run.updated","run.completed","run.failed","run.cancelled","run.interrupted"]);function wo(e){if(!Me(e))return fr("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"||!Hm.has(e.type))return fr("Runtime event envelope is malformed or has an unknown type.");if((e.type==="assistant.delta"||e.type==="thinking.delta")&&(!Me(e.payload)||typeof e.payload.text!="string"))return fr(`${e.type} requires a string text payload.`);if(Fm.has(e.type)&&!jm(e.payload))return fr(`${e.type} requires a RuntimeRunStatus payload.`);let n=qm(e.type,e.payload);return n!==void 0?fr(`${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(wo,"parseRuntimeEvent");function qm(e,n){if(e==="session.created")return Tn(n,["id","title"])?void 0:"requires a RuntimeSession payload.";if(e==="session.loaded")return Tn(n,["id","title"])||Tn(n,["provider","sessionId"])?void 0:"requires a RuntimeSession or provider session payload.";if(e==="session.settings.updated")return Me(n)&&typeof n.sessionId=="string"&&Number.isSafeInteger(n.revision)&&Me(n.settings)&&Me(n.patch)?void 0:"requires a session settings update payload.";if(e==="thinking.finished")return Me(n)&&typeof n.thinking=="string"?void 0:"requires a string thinking payload.";if(e==="tool.started")return Me(n)&&Tn(n.tool,["id","name"])?void 0:"requires a tool descriptor payload.";if(e==="tool.progress")return Me(n)&&(Tn(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=Me(n)&&Me(n.update)?n.update:void 0,r=t&&Me(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 Me(n)&&Tn(n.result,["id","name","content"])?void 0:"requires a tool result payload.";if(e==="run.progress")return $m(n);if(e==="run.input.queued")return Me(n)&&Bm(n.input,"queued")?void 0:"requires a queued interrupt input payload.";if(e==="run.input.delivered")return Me(n)&&Array.isArray(n.inputs)&&n.inputs.length>0&&n.inputs.every(Km)?void 0:"requires an ordered interrupt input batch.";if(e==="context.compaction.finished")return Me(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 Me(n)&&Array.isArray(n.items)?void 0:"requires an items array payload.";if(e==="user_input.requested"){let t=Me(n)&&Tn(n,["id","sessionId","runId","kind","createdAt","expiresAt"])&&Number.isSafeInteger(n.revision),r=Me(n)&&Tn(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 Me(n)&&typeof n.requestId=="string"?void 0:"requires a requestId payload.";if(e==="permission.requested")return Tn(n,["id","sessionId","runId","toolName","createdAt"])?void 0:"requires a RuntimePermissionRequest payload.";if(e==="permission.grant.changed")return Me(n)&&(n.action==="created"||n.action==="revoked"||n.action==="expired")&&Me(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 Tn(n,["sessionId","turnId"])?void 0:"requires a turn payload.";if(e==="workflow.started"||e==="workflow.updated"||e==="workflow.finished")return Me(n)?void 0:"requires a workflow event payload.";if(e==="context.budget.snapshot"||e==="tool.exposure.planned"||e==="provider.cache.diagnostics")return Me(n)?void 0:"requires an object payload.";if(e==="runtime.warning")return Me(n)&&typeof n.message=="string"?void 0:"requires a warning message payload."}i(qm,"validateKnownRuntimeEventPayload");function $m(e){return!Me(e)||typeof e.kind!="string"?"requires a discriminated progress payload.":e.kind==="managed_task_status"?Me(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"?Me(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($m,"validateRunProgressPayload");function jm(e){return Me(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"&&typeof e.phase=="string"}i(jm,"isRuntimeRunStatusPayload");function Bm(e,n){return Me(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(Bm,"isRuntimeInterruptInputStatus");function Km(e){return Me(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)&&Dd(e.input)}i(Km,"isDeliveredInterruptInput");function Dd(e){return Array.isArray(e)?e.length>0&&e.every(Dd):!Me(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(Dd,"isRuntimeInput");function Tn(e,n){return Me(e)&&n.every(t=>typeof e[t]=="string")}i(Tn,"hasStrings");function fr(e){return{ok:!1,error:e}}i(fr,"invalid");function Me(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Me,"isRecord");var Gn="kodax-runtime-daemon",vo=1,Mt=["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"],Xm=["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"],_d=["agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile"],Um=new Set([...Mt,..._d]),zm=new Set(Xm),Wm=new Set(["credential.register","credential.revoke","credential.supply","host_tool.register","host_tool.revoke","host_tool.complete"]),Gm=new Set(["event","observation.invalidated","credential.request","host_tool.invoke","runtime.warning"]),Vm=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 _t(e,n,t,r){return{protocol:Gn,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{},...r!==void 0?{operation:r}:{}}}i(_t,"createRuntimeDaemonRequest");function ot(e){return zm.has(e)}i(ot,"isRuntimeDaemonMutationMethod");function Vr(e){return ot(e)||Wm.has(e)}i(Vr,"isRuntimeDaemonDrainingSensitiveMethod");function Od(e){return _d.includes(e)}i(Od,"isRuntimeDaemonRetiredMethod");function Jr(e,n){return{protocol:Gn,version:1,kind:"response",id:e,result:n===void 0?null:n}}i(Jr,"createRuntimeDaemonSuccessResponse");function Vn(e,n){return{protocol:Gn,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}i(Vn,"createRuntimeDaemonErrorResponse");function Ot(e,n){return{protocol:Gn,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}i(Ot,"createRuntimeDaemonNotification");function So(e){if(!Yr(e))return!1;let n=e;return n.kind==="request"&&typeof n.id=="string"&&n.id.length>0&&typeof n.method=="string"&&Um.has(n.method)&&(n.operation===void 0||Qm(n.operation))}i(So,"isRuntimeDaemonRequest");function st(e){if(!Yr(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(st,"isRuntimeDaemonSuccessResponse");function Nt(e){if(!Yr(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&Ym(n.error)}i(Nt,"isRuntimeDaemonErrorResponse");function pr(e){if(!Yr(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&Gm.has(n.method)}i(pr,"isRuntimeDaemonNotification");function Jm(e){return So(e)||st(e)||Nt(e)||pr(e)}i(Jm,"isRuntimeDaemonFrame");function Nd(e){let n;try{n=JSON.parse(e)}catch{return Md("Frame is not valid JSON.")}return Jm(n)?n:Md("Frame does not match the runtime daemon protocol.")}i(Nd,"parseRuntimeDaemonFrame");function Md(e){return Vn({code:"invalid_frame",message:e})}i(Md,"invalidFrame");function Yr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===Gn&&n.version===1}i(Yr,"isFrameBase");function Ym(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&Vm.has(n.code)&&typeof n.message=="string"}i(Ym,"isRuntimeDaemonError");function Qm(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(Qm,"isRuntimeDaemonOperationEnvelope");var Xd=256,Ld=1e3,dt=class extends Error{constructor(t,r){super(r);this.path=t;this.name="RuntimeTransportBoundaryError"}path;static{i(this,"RuntimeTransportBoundaryError")}code="invalid_transport_value"},Io=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"}},Zr=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 Hd(e){let n=e.activeAgentTurns??e.activeAgentTasks??[];return{...e,activeAgentTurns:n,activeAgentTasks:n}}i(Hd,"normalizeRuntimeDaemonPreflight");function ei(e){let n=i((d,p,h,P)=>e.transport.request(d,p,ot(d)?tf(e.journalEpoch,h):void 0,P),"request"),t=i((d,p,h,P)=>{try{if(Ud(h),(h?.timeoutMs!==void 0||h?.signal!==void 0)&&!Kd(e.capabilities))throw new Ht}catch(F){return Promise.reject(F)}let I=new AbortController,b=!1,A=!1,C=i(F=>{if(!A){A=!0;try{P?.(F)}catch(te){ye({source:"runtime.daemon.client",level:"warn",message:"Runtime daemon late-result cleanup failed.",detail:te})}}},"deliverLateResult"),M=n(d,{...p,...h?.timeoutMs!==void 0?{timeoutMs:h.timeoutMs}:{}},void 0,{signal:I.signal,...P!==void 0?{onLateResult:C}:{}});return P!==void 0&&M.then(F=>{b&&C(F)},()=>{}),sf(M,h,F=>{b=!0,I.abort(F)})},"readRequest"),r=i(()=>{let d=e.capabilities?.actorControlPlane;if(typeof d!="object"||d===null||!("version"in d)||d.version!==1||!("methodNamespace"in d)||d.methodNamespace!=="agents")return new Io},"actorControlPlaneError"),o=i(()=>{let d=e.capabilities?.runtimeAutoModeGuardrail;if(typeof d!="object"||d===null||!("version"in d)||typeof d.version!="number"||d.version<3||!("concretePermissionMatchers"in d)||d.concretePermissionMatchers!==!0||!("permissionGrantSuggestions"in d)||d.permissionGrantSuggestions!==!0)return new Zr},"concretePermissionScopeError"),s=new Map,a=new Map,c=new Map,l=new Set,m={state:"connected",connectionId:`connection_${Qr().replace(/-/g,"")}`,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},reconnectable:!1},R=e.transport.subscribeLifecycle?.(d=>{m={...d,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{}};for(let p of l)try{p(m)}catch(h){ye({source:"runtime.daemon.client",level:"warn",message:"Runtime connection lifecycle listener failed.",detail:{errorType:h instanceof Error?h.name:typeof h}})}}),S=e.transport.subscribe(d=>{d.method==="credential.request"?ef(d.params,s,n).catch(()=>Fd("credential request")):d.method==="host_tool.invoke"&&nf(d.params,a,c,n).catch(()=>Fd("host tool invocation"))}),y=!1,x=!1,g,E=i(()=>{if(x)return Promise.resolve();if(g)return g;let d=(async()=>{y||(R?.close(),S.close(),l.clear(),s.clear(),a.clear(),c.clear(),y=!0),await e.transport.close?.(),x=!0})();return g=d,d.finally(()=>{g===d&&(g=void 0)}).catch(()=>{}),d},"closeClient");return{identity:e.identity,capabilities:e.capabilities,...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{},sessions:{create(d={}){let{operation:p,...h}=d;return n("session.create",h,p)},load(d,p){return t("session.load",{sessionId:d},p)},list(d){return n("session.list",d)},status(d){return n("session.status",{sessionId:d})},transcript(d,p){return t("session.transcript",{sessionId:d},p)},transcriptPage(d,p){return t("session.transcript.page",d,p)},transcriptEntryChunk(d,p){return t("session.transcript.entryChunk",d,p)},transcriptSearch(d,p){return t("session.transcript.search",d,p)},conversation(d,p){return t("session.conversation",{sessionId:d},p)},conversationPage(d,p){return t("session.conversation.page",d,p)},conversationEntryChunk(d,p){return t("session.conversation.entryChunk",d,p)},observe(d,p,h){return of(e.transport,t,d,p,h)},diagnostics(d){return t("session.diagnostics",{sessionId:d.sessionId,...d.runId!==void 0?{runId:d.runId}:{}},d).then(p=>({...p,sdkVersion:$r,runtimeVersion:e.identity.version,daemonVersion:e.identity.mode==="daemon"?e.identity.version:null,runtimeMode:e.identity.mode}))},fork(d){return n("session.fork",d)},getSettings(d){return n("session.settings.get",{sessionId:d})},getSettingsVersioned(d){return n("session.settings.getVersioned",{sessionId:d})},getAutoModeStats(d){return n("session.autoMode.getStats",{sessionId:d})},async updateSettings(d,p){let h=await this.getSettingsVersioned(d);return(await this.updateSettingsVersioned(d,p,{expectedRevision:h.revision})).value},updateSettingsVersioned(d,p,h){return n("session.settings.updateVersioned",{sessionId:d,patch:p,expectedRevision:h.expectedRevision},h)},appendNotice(d){return n("session.notice.append",d)},rewind(d){return n("session.rewind",d)},setActiveEntry(d){return n("session.active_entry.set",d)},compact(d){return n("session.compact",d)},async archive(d){await n("session.archive",{sessionId:d})},async unarchive(d){await n("session.unarchive",{sessionId:d})},async delete(d){await n("session.delete",{sessionId:d})}},runs:{async start(d){let{operation:p,...h}=d;Lt(h,"run.start");let P=ln(await n("run.start",h,p)),I=cn(P,"runId"),b=cn(P,"sessionId"),A=pf(P,"turnId");return{runId:I,sessionId:b,...A!==void 0?{turnId:A}:{},result:jd(n,I)}},async submitInput(d){let{operation:p,...h}=d;return Lt(h,"run.input.submit"),n("run.input.submit",h,p)},await(d){return jd(n,d)},get(d){return n("run.get",{runId:d})},list(d){return n("run.list",d)},abort(d){return Kd(e.capabilities)?n("run.abort",{runId:d}).then(p=>ff(p,d)):Promise.reject(new Ht)},async setModel(d,p){await n("run.model.set",{runId:d,model:p})},async setProvider(d,p){await n("run.provider.set",{runId:d,provider:p})},async setReasoning(d,p){await n("run.reasoning.set",{runId:d,reasoning:p})}},events:{subscribe(d,p){return rf(e.transport,n,d,p)},replay(d){return n("event.replay",d).then(p=>{if(!Array.isArray(p))throw new Error("Expected daemon event replay array.");return p.flatMap(h=>{let P=ko(h);return P===void 0?[]:[P]})})}},permissions:{request(d){if(d.toolInput!==void 0){let p=o();if(p)return Promise.reject(p)}return n("permission.request",d)},listPending(d){return n("permission.list",d)},respond(d,p,h){return n("permission.respond",{requestId:d,decision:p,...h?.runId!==void 0?{runId:h.runId}:{}})},listGrants(){return n("permission.grants.list")},revokeGrant(d,p){return n("permission.grants.revoke",{grantId:d,expectedRevision:p})}},userInputs:{listPending(d){return n("user_input.listPending",d)},respond(d,p,h){return n("user_input.respond",{requestId:d,answer:p,...h?.expectedRevision!==void 0?{expectedRevision:h.expectedRevision}:{},...h?.runId!==void 0?{runId:h.runId}:{}})},dismiss(d,p){return n("user_input.dismiss",{requestId:d,...p?.expectedRevision!==void 0?{expectedRevision:p.expectedRevision}:{},...p?.runId!==void 0?{runId:p.runId}:{}})}},credentials:{async register(d,p){let h=`credlease_${Qr().replace(/-/g,"")}`;s.set(h,p);try{return await n("credential.register",{leaseId:h,providers:d.providers,...d.expiresAt!==void 0?{expiresAt:d.expiresAt}:{}})}catch(P){throw s.delete(h),P}},async resume(d,p){s.set(d,p);try{let h=await n("credential.get",{leaseId:d});if(h==null)throw Object.assign(new Error(`Credential lease is unavailable after Runtime reconnect: ${d}`),{code:"credential_unavailable"});return ln(h)}catch(h){throw s.delete(d),h}},async revoke(d){let p=await n("credential.revoke",{leaseId:d});return p&&s.delete(d),p}},hostTools:{async register(d,p){qd(d,p);let h=`hostlease_${Qr().replace(/-/g,"")}`;a.set(h,p);try{return await n("host_tool.register",{leaseId:h,tools:d})}catch(P){throw a.delete(h),P}},async resume(d,p){a.set(d,p);try{let h=await n("host_tool.get",{leaseId:d});if(h==null)throw Object.assign(new Error(`Host tool lease is unavailable after Runtime reconnect: ${d}`),{code:"host_tool_unavailable"});let P=ln(h);return qd(P.tools,p),P}catch(h){throw a.delete(d),h}},async getInvocation(d){return at(await n("host_tool.invocation.get",{invocationId:d}))},async revoke(d){let p=await n("host_tool.revoke",{leaseId:d});return p&&a.delete(d),p}},operations:{get(d){return n("operation.get",d)}},workflows:{list(d){return n("workflow.list",d)},get(d){return n("workflow.get",{runId:d}).then(at)},subscribe(d,p){return cf(e.transport,n,d,p)},pause(d){return n("workflow.pause",{runId:d})},resume(d){return n("workflow.resume",{runId:d})},stop(d){return n("workflow.stop",{runId:d})}},learning:{list(d){return n("learning.list",d??{})},get(d){return n("learning.get",{nameOrSlug:d})},getSnapshot(){return n("learning.snapshot")},events(d){return n("learning.events",{...d!==void 0?{afterRevision:d}:{}})},subscribe(d){return Zm(n,d?.afterRevision??0)},async acknowledge(d){await n("learning.acknowledge",{nameOrSlug:d})},async snooze(d,p){await n("learning.snooze",{nameOrSlug:d,until:p})},async reject(d){await n("learning.reject",{nameOrSlug:d})},async disable(d){await n("learning.disable",{nameOrSlug:d})},async rollback(d){await n("learning.rollback",{nameOrSlug:d})},async promote(d,p){await n("learning.promote",{nameOrSlug:d,scope:p})},async review(d){await n("learning.review",{nameOrSlug:d})},async trust(d){await n("learning.trust",{nameOrSlug:d})}},config:{read(){return n("config.read")},patch(d){return n("config.patch",{patch:d})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(d){return n("model.list",d)},commands(d){return n("command.list",d!==void 0?{projectRoot:d}:void 0)},resolveCommand(d){return n("command.resolve",d)},skills(d){return n("skill.list",d)},describeSkill(d){return n("skill.describe",d)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(d){return n("provider.custom.upsert",{config:d})},deleteCustomProvider(d){return n("provider.custom.remove",{name:d})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(d){return n("mcp.server.get",{name:d}).then(at)},validateServer(d,p){return n("mcp.server.validate",{name:d,config:p})},upsertServer(d,p){return n("mcp.server.upsert",{name:d,config:p})},deleteServer(d){return n("mcp.server.delete",{name:d})},reloadServers(){return n("mcp.server.reload")},listTools(d){return n("mcp.tool.list",d)}},artifacts:{create(d){return n("artifact.create",d)},get(d){return n("artifact.get",{artifactId:d}).then(at)},delete(d){return n("artifact.delete",{artifactId:d})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(d,p){return Lt(d,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:d,...p?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:p.expectedConfigurationRevision}:{},...p?.expectedManagementOwner!==void 0?{expectedManagementOwner:p.expectedManagementOwner}:{}})},setEnabled(d,p,h){return n("agentRegistrations.setEnabled",{agentId:d,enabled:p,...h?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:h.expectedConfigurationRevision}:{},...h?.expectedManagementOwner!==void 0?{expectedManagementOwner:h.expectedManagementOwner}:{},...h?.claimOwner!==void 0?{claimOwner:h.claimOwner}:{}}).then(at)},remove(d,p){return n("agentRegistrations.remove",{agentId:d,...p?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:p.expectedConfigurationRevision}:{},...p?.expectedManagementOwner!==void 0?{expectedManagementOwner:p.expectedManagementOwner}:{}})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(d){return n("agents.listDispatchable",d)},describe(d,p){return n("agents.describe",{agentId:d,query:p}).then(at)},preflight(d){return n("agents.preflight",d)},tree(d){let p=r();return p?Promise.reject(p):n("agents.tree",{sessionId:d})},detail(d,p){let h=r();return h?Promise.reject(h):n("agents.detail",{sessionId:d,actorPath:p})},spawn(d,p){let h=r();return h?Promise.reject(h):(Lt(p,"agents.spawn"),n("agents.spawn",{sessionId:d,input:p}))},async send(d,p,h,P){let I=r();if(I)throw I;await n("agents.send",{sessionId:d,actorPath:p,content:h,...P!==void 0?{classification:P}:{}})},followup(d,p,h,P){let I=r();return I?Promise.reject(I):n("agents.followup",{sessionId:d,actorPath:p,objective:h,...P?.expectedRevision!==void 0?{expectedRevision:P.expectedRevision}:{}})},async interrupt(d,p,h){let P=r();if(P)throw P;await n("agents.interrupt",{sessionId:d,actorPath:p,...h!==void 0?{reason:h}:{}})},output(d,p,h){let P=r();return P?Promise.reject(P):n("agents.output",{sessionId:d,actorPath:p,...h!==void 0?{turnId:h}:{}})},events(d,p){let h=r();return h?Promise.reject(h):n("agents.events",{sessionId:d,...p!==void 0?{afterSequence:p}:{}})},wait(d,p,h,P){let I=r();return I?Promise.reject(I):t("agents.wait",{sessionId:d,...p!==void 0?{afterSequence:p}:{},...h!==void 0?{timeoutMs:h}:{}},P).then(at)}},status:{snapshot(){return n("daemon.status")},preflight(){return n("daemon.preflight").then(d=>Hd(d))}},daemon:{inspect(){return n("daemon.management.get").then(d=>{let p=d;return{...p,preflight:Hd(p.preflight)}})},stopForInline(d){let{operation:p,...h}=d;return n("daemon.rollbackToInline",h,p)}},diagnostics:{latestContextBudget(d){return n("context.budget.get",d)},latestToolExposure(d){return n("tool.exposure.preview",d)},latestProviderCacheDiagnostic(d){return n("provider.cache.diagnostics.get",d)}},connection:{current(){return m},subscribe(d){return l.add(d),d(m),{close(){l.delete(d)}}}},close:E}}i(ei,"createRuntimeDaemonClient");async function*Zm(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(Zm,"pollRuntimeLearningEvents");function Fd(e){ye({source:"runtime.daemon.client",level:"warn",message:`Failed to deliver ${e} result to the Runtime daemon.`})}i(Fd,"reportReverseBridgeFailure");async function ef(e,n,t){let r=ln(e),o=cn(r,"requestId"),s=cn(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:cn(r,"provider"),sessionId:cn(r,"sessionId"),runId:cn(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(ef,"answerCredentialRequest");async function nf(e,n,t,r){let o=ln(e),s=cn(o,"invocationId"),a=cn(o,"leaseId"),c=cn(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:cn(o,"sessionId"),runId:cn(o,"runId"),input:ln(o.input)}));m={promise:R,settled:!1},t.set(s,m);let S=m;R.finally(()=>{S.settled=!0,$d(t)}).catch(()=>{}),$d(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(nf,"answerHostToolInvocation");function qd(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(qd,"validateHostToolHandlers");function $d(e){if(!(e.size<=Ld))for(let[n,t]of e){if(e.size<=Ld)return;t.settled&&e.delete(n)}}i($d,"pruneHostToolResults");function tf(e,n){let t=n?.journalEpoch??e;if(t!==void 0)return{operationId:n?.operationId??`op_${Qr().replace(/-/g,"")}`,journalEpoch:t}}i(tf,"createOperationEnvelope");function rf(e,n,t,r){return zd(e,n,"event.subscribe",{filter:t},o=>{uf(o,r)})}i(rf,"subscribeToDaemonEvents");async function of(e,n,t,r,o){let s=!1,a=!1,c,l=!1,m,R=!1,S,y,x=new Promise(A=>{y=A}),g=[],E,d,p=i(()=>{g.length=0,E?.close(),E=void 0,d?.close(),d=void 0;let A=c;c=void 0,A!==void 0&&n("event.unsubscribe",{subscriptionId:A}).catch(C=>{ye({source:"runtime.daemon.client",level:"warn",message:"Failed to unsubscribe an invalidated Session observation.",detail:C})})},"closeResources"),h=i((A,C,M)=>{s||R||(R=!0,p(),y?.({code:"observation_invalidated",reason:A,runtimeId:M,message:C}))},"invalidate"),P=i((A,C)=>{let M=ko(A.event);if(M===void 0){h("event_order","Runtime delivered an invalid observation event; full resync is required.",C);return}if(m!==void 0&&M.seq<m){if(!a)return;h("event_order",`Runtime observation event order regressed from ${m} to ${M.seq}.`,C);return}if(!(m!==void 0&&M.seq===m)){m=M.seq;try{r(M)}catch(F){ye({source:"runtime.daemon.client",level:"error",message:`Session observation listener failed for ${M.type}.`,detail:F}),h("delivery_failed",`Session observation listener failed while delivering ${M.type}; discard local state and resync.`,C)}}},"deliver"),I=i((A,C)=>{let M=df(A.invalidation);if(M===void 0){h("event_order","Runtime delivered an invalid observation invalidation; full resync is required.",C);return}h(M.reason,M.message,M.runtimeId)},"deliverInvalidation");E=e.subscribe(A=>{if(s||R||A.method!=="event"&&A.method!=="observation.invalidated")return;let C=ln(A.params);if(c===void 0||!a){if(A.method==="event"&&!af(C.event,t)||A.method==="observation.invalidated"&&typeof C.sessionId=="string"&&C.sessionId!==t)return;g.length>=Xd?(l=!0,h("event_overflow","Runtime observation handoff overflowed; full resync is required.","daemon")):g.push({method:A.method,payload:C});return}C.subscriptionId===c&&(A.method==="event"?P(C,"daemon"):I(C,"daemon"))}),d=e.subscribeLifecycle?.(A=>{if(A.state==="connected"){S!==void 0&&S!==A.connectionId&&h("runtime_changed","Runtime transport connection changed; discard the observation and resync.","daemon"),S=A.connectionId;return}h("transport_disconnected",A.reason??"Runtime transport disconnected; observation is invalid.","daemon")});let b=i(A=>{try{let C=cn(ln(A),"subscriptionId");n("event.unsubscribe",{subscriptionId:C}).catch(M=>{ye({source:"runtime.daemon.client",level:"warn",message:"Failed to unsubscribe a late Session observation.",detail:M})})}catch(C){ye({source:"runtime.daemon.client",level:"warn",message:"Ignored an invalid late Session observation response.",detail:C})}},"unsubscribeLateObservation");try{let A=ln(await n("session.observe",{sessionId:t},o,b));if(c=cn(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=ln(A.snapshot);m=C.cursor;let M={snapshot:C,invalidated:x,close(){s||(s=!0,p())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(s||R)){for(;g.length>0;){let F=g.splice(0);for(let te of F){if(R)break;let{method:Z,payload:pe}=te;pe.subscriptionId===c&&(Z==="event"?P(pe,C.runtimeId):I(pe,C.runtimeId))}}a=!0}})),M}catch(A){throw s=!0,p(),A}}i(of,"observeDaemonSession");async function sf(e,n,t){if(Ud(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(sf,"raceRuntimeDaemonRead");function Ud(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(Ud,"validateRuntimeDaemonReadOptions");function af(e,n){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&e.sessionId===n}i(af,"isRuntimeEventForSession");function df(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(df,"parseRuntimeObservationInvalidation");function uf(e,n){let t=ko(e);t!==void 0&&n(t)}i(uf,"deliverRuntimeEvent");function ko(e){let n=wo(e);if(!n.ok){ye({source:"runtime.daemon.client",level:"warn",message:`Ignored malformed Runtime event: ${n.error}`});return}return n.event}i(ko,"parseRuntimeEventForClient");function cf(e,n,t,r){return zd(e,n,"workflow.subscribe",{filter:t},o=>{r(o)})}i(cf,"subscribeToDaemonWorkflowEvents");function zd(e,n,t,r,o){let s=!1,a,c=[],l=e.subscribe(R=>{if(s||R.method!=="event")return;let S=ln(R.params);if(a===void 0){c.length>=Xd&&c.shift(),c.push(S);return}S.subscriptionId===a&&o(S.event)}),m=n(t,r).then(R=>{if(a=cn(ln(R),"subscriptionId"),s){Bd(n,t,a),c.length=0;return}for(let S of c.splice(0))S.subscriptionId===a&&o(S.event)}).catch(R=>{throw c.length=0,l.close(),R});return m.catch(()=>{}),{ready:m,close(){s=!0,l.close(),a!==void 0&&Bd(n,t,a)}}}i(zd,"subscribeToDaemonNotification");function jd(e,n){return e("run.await",{runId:n}).then(lf)}i(jd,"requestRuntimeRunResult");function lf(e){let n=ln(e),t=Object.prototype.hasOwnProperty.call(n,"error")?mf(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}i(lf,"deserializeRuntimeRunResult");function mf(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=ln(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(mf,"deserializeRuntimeError");function Bd(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}i(Bd,"unsubscribeRemote");function at(e){return e??void 0}i(at,"nullToUndefined");function ln(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}i(ln,"requireRecord");function Kd(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(Kd,"supportsRunLifecycleControl");function ff(e,n){let t;try{t=ln(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"],S=["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"||!S.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(ff,"parseRuntimeRunStopReceipt");function cn(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(cn,"requireStringField");function pf(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(pf,"optionalStringField");function Lt(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 dt(n,`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new dt(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 dt(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 dt(n,`${n} is not transport-safe: ${o} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((o,s)=>Lt(o,`${n}[${s}]`,t));else for(let[o,s]of Object.entries(e))Lt(s,`${n}.${o}`,t);t.delete(e)}i(Lt,"assertRuntimeTransportSafe");import{randomUUID as _g}from"node:crypto";import Og from"node:os";import Jo from"node:path";import{randomUUID as Eo}from"node:crypto";import*as oe from"node:fs";import an from"node:path";function ut(e,n="default"){let t=Po(n),r=an.resolve(e),o=an.join(r,"runtime","daemon",t);return{profile:t,configHome:r,rootDir:o,stateFile:an.join(o,"daemon.json"),lockFile:an.join(o,"daemon.lock"),tokenFile:an.join(o,"daemon.token"),logFile:an.join(o,"daemon.log"),runsDir:an.join(o,"runs"),eventsDir:an.join(o,"events"),ownerPolicyFile:an.join(o,"owner-policy.json"),ownerPolicyLockFile:an.join(o,"owner-policy.lock")}}i(ut,"resolveRuntimeDaemonPathsFromConfigHome");function gf(e,n){let t=i(r=>{let o=an.resolve(r);return process.platform==="win32"?o.toLowerCase():o},"resolveIdentity");return t(e)===t(n)}i(gf,"isSameRuntimeDaemonPath");function Ft(e,n){let t=an.resolve(e);return gf(n,an.join(t,".kodax"))?t:an.resolve(n)}i(Ft,"resolveRuntimeDaemonEndpointScope");function In(e){if(!oe.existsSync(e.ownerPolicyFile))return{mode:"daemon",revision:0,updatedAt:new Date(0).toISOString()};try{let n=JSON.parse(oe.readFileSync(e.ownerPolicyFile,"utf8"));if(Ao(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(In,"readRuntimeOwnerPolicy");function Vd(e,n,t){pn(e);let r=Jn(e);if(!r)throw new Error("Runtime owner policy update is already in progress.");try{if(oe.existsSync(e.lockFile))throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return ii(e,n,t,r.nonce)}finally{ct(e,r)}}i(Vd,"updateRuntimeOwnerPolicy");function Jd(e,n,t){pn(e);let r=Jn(e);if(!r)throw ti("Runtime owner rollback is already in progress.");try{let o=Ue(e.lockFile);if(o?.kind!=="daemon"||o.runtimeId!==n)throw ti("Runtime daemon owner changed before rollback commit.");if(In(e).mode!=="daemon")throw ti("Runtime owner policy changed before rollback commit.");return ii(e,"inline",t,r.nonce)}finally{ct(e,r)}}i(Jd,"commitRuntimeDaemonRollbackPolicy");function ri(e){pn(e);let n=Jn(e);if(!n)throw new Error("Runtime owner transition is already in progress.");try{if(oe.existsSync(e.lockFile))throw new Error("Cannot enable Runtime daemon ownership while an owner lock exists.");let t=In(e);return t.mode==="daemon"?t:ii(e,"daemon",t.revision,n.nonce)}finally{ct(e,n)}}i(ri,"enableRuntimeDaemonOwner");function Yd(e,n,t=!1){pn(e);let r=Jn(e);if(!r)throw new Error("Runtime owner transition is already in progress.");try{let o=In(e);if(o.mode!=="inline"){if(!t)throw new Error("Coder inline ownership requires explicit enableRollback: true.");if(oe.existsSync(e.lockFile))throw new Error("Cannot enable inline rollback while a Coder owner lock exists.");ii(e,"inline",o.revision,r.nonce)}if(oe.existsSync(e.lockFile))throw new Error(`Coder profile "${e.profile}" already has an owner.`);let s=tu(e,n);if(!s)throw new Error(`Coder profile "${e.profile}" already has an owner.`);return s}finally{ct(e,r)}}i(Yd,"acquireRuntimeInlineOwner");function ii(e,n,t,r){let o=In(e);if(o.revision!==t)throw ti(`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=oe.openSync(a,"wx",384);try{oe.writeFileSync(c,`${JSON.stringify(s,null,2)}
11
+ `,"utf8"),oe.fsyncSync(c)}finally{oe.closeSync(c)}return oe.renameSync(a,e.ownerPolicyFile),s}finally{oe.rmSync(a,{force:!0})}}i(ii,"writeRuntimeOwnerPolicy");function ti(e){let n=new Error(e);return n.code="conflict",n}i(ti,"runtimeOwnerPolicyConflict");function Jn(e,n=!0){let t=Eo(),r={runtimeId:`owner-transition-${t}`,pid:process.pid,createdAt:new Date().toISOString()},o;try{return o=oe.openSync(e.ownerPolicyLockFile,"wx",384),oe.writeFileSync(o,`${JSON.stringify({...r,nonce:t})}
12
+ `,"utf8"),oe.fsyncSync(o),{nonce:t,owner:r}}catch(s){if(Co(s)&&s.code==="EEXIST")return n&&yf(e)?Jn(e,!1):void 0;throw s}finally{o!==void 0&&oe.closeSync(o)}}i(Jn,"tryAcquireRuntimeOwnerCoordination");function yf(e){let n=Wd(e);if(!n||Rf(n.owner.pid))return!1;try{let t=Wd(e);return!t||t.nonce!==n.nonce?!1:(oe.unlinkSync(e.ownerPolicyLockFile),!0)}catch{return!1}}i(yf,"removeAbandonedRuntimeOwnerCoordination");function Wd(e){try{let n=JSON.parse(oe.readFileSync(e.ownerPolicyLockFile,"utf8"));return!Ao(n)||typeof n.nonce!="string"||!su(n)||!n.runtimeId.startsWith("owner-transition-")?void 0:{nonce:n.nonce,owner:n}}catch{return}}i(Wd,"readRuntimeOwnerCoordinationHandle");function Rf(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Co(n)&&n.code==="EPERM"}}i(Rf,"isRuntimeOwnerProcessAlive");function hf(e){return Ue(e.ownerPolicyLockFile)}i(hf,"readRuntimeOwnerCoordinator");function ct(e,n){try{let t=JSON.parse(oe.readFileSync(e.ownerPolicyLockFile,"utf8"));Ao(t)&&t.nonce===n.nonce&&oe.unlinkSync(e.ownerPolicyLockFile)}catch{}}i(ct,"releaseRuntimeOwnerCoordination");function oi(e){if(In(e).mode!=="daemon")throw new Error(`Runtime daemon auto-start is disabled for profile "${e.profile}" by inline rollback policy.`)}i(oi,"assertRuntimeDaemonOwnerAllowed");function Po(e){let n=e.trim()||"default";if(!/^[A-Za-z0-9_.-]+$/.test(n))throw new Error(`Invalid runtime daemon profile: ${e}`);return n}i(Po,"normalizeRuntimeDaemonProfile");function pn(e){oe.mkdirSync(e.rootDir,{recursive:!0}),oe.mkdirSync(e.runsDir,{recursive:!0}),oe.mkdirSync(e.eventsDir,{recursive:!0})}i(pn,"ensureRuntimeDaemonDirectories");function Qd(){return`dt_${Eo().replace(/-/g,"")}`}i(Qd,"createRuntimeDaemonToken");function Zd(e,n){pn(e),oe.writeFileSync(e.tokenFile,`${n}
13
+ `,{encoding:"utf8",mode:384}),process.platform!=="win32"&&oe.chmodSync(e.tokenFile,384)}i(Zd,"writeRuntimeDaemonToken");function gr(e){try{let n=oe.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}i(gr,"readRuntimeDaemonToken");function qt(e,n){pn(e);let t=`${e.stateFile}.${process.pid}.${Eo()}.tmp`;try{let r=oe.openSync(t,"wx",384);try{oe.writeFileSync(r,`${JSON.stringify(n,null,2)}
14
+ `,"utf8"),oe.fsyncSync(r)}finally{oe.closeSync(r)}oe.renameSync(t,e.stateFile)}finally{oe.rmSync(t,{force:!0})}}i(qt,"writeRuntimeDaemonState");function gn(e,n,t,r){pn(e);let o={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};oe.appendFileSync(e.logFile,`${JSON.stringify(o)}
15
+ `,"utf8")}i(gn,"appendRuntimeDaemonLog");function eu(e,n=200){if(!oe.existsSync(e.logFile))return[];let t=[],r=oe.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);If(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(eu,"readRuntimeDaemonLog");function nu(e){if(oe.existsSync(e.stateFile))try{let n=JSON.parse(oe.readFileSync(e.stateFile,"utf8"));return Sf(n)?n:void 0}catch{return}}i(nu,"readRuntimeDaemonState");function tu(e,n){pn(e);let t;try{return t=oe.openSync(e.lockFile,"wx",384),oe.writeFileSync(t,`${JSON.stringify(n,null,2)}
16
+ `,"utf8"),oe.fsyncSync(t),{file:e.lockFile,owner:n}}catch(r){if(Co(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&oe.closeSync(t)}}i(tu,"tryAcquireRuntimeDaemonLock");function si(e){let n={ownerPolicyLockFile:an.join(an.dirname(e.file),"owner-policy.lock")},t=Jn(n);if(!t)return!1;try{return iu(e)}finally{ct(n,t)}}i(si,"releaseRuntimeDaemonLock");function ru(e,n){let t=Jn(e);if(!t)return!1;try{let r=Ue(n.file);return xo(r,n.owner)?(vf(e),iu(n)):!1}finally{ct(e,t)}}i(ru,"releaseRuntimeDaemonOwnership");function iu(e){let n=Ue(e.file);return xo(n,e.owner)?(oe.unlinkSync(e.file),!0):!1}i(iu,"unlinkRuntimeDaemonLockIfOwned");function Ue(e){if(oe.existsSync(e))try{let n=JSON.parse(oe.readFileSync(e,"utf8"));return su(n)?n:void 0}catch{return}}i(Ue,"readRuntimeDaemonLockOwner");function ou(e,n,t){pn(e);let r=$t(t),o=Ue(e.lockFile);if(r==="healthy")return t.state&&o!==void 0&&bo(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&&Pf(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=Jn(e);if(!a){let c=Ue(e.lockFile)??hf(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 In(e).mode!=="daemon"?{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}:wf(e,n,t,s)}finally{ct(e,a)}}i(ou,"claimRuntimeDaemonOwnership");function wf(e,n,t,r){let o=Ue(e.lockFile);if(r==="stale"){if(o!==void 0&&(t.observedLockOwner!==void 0&&!xo(o,t.observedLockOwner)||t.state!==void 0&&!bo(o,t.state)))return ni(o,t,r);Gd(e)}else if(o!==void 0){if(t.observedLockOwner!==void 0&&!bo(o,t.observedLockOwner))return ni(o,t,r);if(t.lockOwnerPidAlive===!1)Gd(e);else return ni(o,t,r)}if(r==="missing"){let c=Ue(e.lockFile);if(c!==void 0)return{kind:"wait",lockOwner:c,...t.state!==void 0?{state:t.state}:{},health:r}}let s=tu(e,n);if(s)return{kind:"claim",lock:s,health:r};let a=Ue(e.lockFile);return a?ni(a,t,r):{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}i(wf,"claimAvailableRuntimeDaemonOwnership");function ni(e,n,t){return{kind:"wait",lockOwner:e,...n.state!==void 0?{state:n.state}:{},health:t}}i(ni,"waitForRuntimeOwner");function bo(e,n){return e.runtimeId===n.runtimeId&&e.pid===n.pid}i(bo,"sameRuntimeOwner");function xo(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(xo,"sameRuntimeLockOwner");function Gd(e){oe.rmSync(e.lockFile,{force:!0}),oe.rmSync(e.stateFile,{force:!0}),oe.rmSync(e.tokenFile,{force:!0})}i(Gd,"removeRuntimeDaemonOwnershipFiles");function vf(e){oe.rmSync(e.stateFile,{force:!0}),oe.rmSync(e.tokenFile,{force:!0})}i(vf,"removeRuntimeDaemonStateFiles");function $t(e){return e.state?e.endpointReachable&&!e.identityMatches?"mismatch":e.pidAlive&&e.endpointReachable&&e.identityMatches?"healthy":!e.pidAlive&&!e.endpointReachable?"stale":"unhealthy":"missing"}i($t,"classifyRuntimeDaemonHealth");function Sf(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"&&Ef(n.status)&&(n.configHome===void 0||typeof n.configHome=="string")&&(n.lastError===void 0||typeof n.lastError=="string")}i(Sf,"isRuntimeDaemonState");function If(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&kf(n.level)&&typeof n.message=="string"&&(n.data===void 0||bf(n.data))}i(If,"isRuntimeDaemonLogEntry");function kf(e){return e==="info"||e==="warn"||e==="error"}i(kf,"isRuntimeDaemonLogLevel");function bf(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(bf,"isPlainRecord");function su(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"}i(su,"isRuntimeDaemonLockOwner");function Ef(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}i(Ef,"isRuntimeDaemonStatus");function Pf(e){return e==="starting"||e==="draining"||e==="stopping"}i(Pf,"isRuntimeDaemonTransitionStatus");function Co(e){return e instanceof Error&&"code"in e}i(Co,"isNodeFileError");function Ao(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ao,"isRecord");import{createHash as xf,randomUUID as lt}from"node:crypto";import*as Kt from"node:fs/promises";import*as yr from"node:net";import Cf from"node:os";import au from"node:path";import{StringDecoder as To}from"node:string_decoder";var Af=8*1024*1024,Tf=3e4,Bt=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 Mo(e){return e instanceof Bt}i(Mo,"isRuntimeDaemonTransportError");function Xt(e="default",n){let t=Po(e),r=n===void 0?t:`${t}-${Df(au.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:au.join(Cf.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}i(Xt,"defaultRuntimeDaemonEndpoint");function Df(e){return xf("sha256").update(e).digest("hex").slice(0,12)}i(Df,"shortPathHash");function uu(e,n={}){let t="",r=0,o=new To("utf8"),s=n.maxFrameBytes??Af;if(!Number.isSafeInteger(s)||s<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let a=i(l=>{Of(l,s),l.trim()&&e(Nd(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 To("utf8"),c(l)):c(o.write(l));;){let m=t.indexOf(`
17
+ `);if(m<0)break;let R=t.slice(0,m).replace(/\r$/,""),S=t.slice(0,m+1);t=t.slice(m+1),r-=Buffer.byteLength(S,"utf8"),a(R)}lu(r,s)},flush(){c(o.end()),o=new To("utf8");let l=t.trim();t="",r=0,l.length>0&&a(l)}}}i(uu,"createRuntimeDaemonFrameParser");async function qn(e,n={}){let t=yr.createConnection(e.path);t.setEncoding("utf8");let r=new Promise(I=>{t.once("close",()=>I())});await Nf(t,n.connectTimeoutMs);let o=!1,s,a=`transport_${lt().replace(/-/g,"")}`,c=lt().replace(/-/g,"")+lt().replace(/-/g,""),l=`connection_${lt().replace(/-/g,"")}`,m=new Set,R=new Set,S={state:"connected",connectionId:l,reconnectable:!1},y=i((I,b)=>{if(S.state!=="disconnected"){S={state:"disconnected",connectionId:l,reason:I,reconnectable:b};for(let A of R)try{A(S)}catch{ye({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport lifecycle listener failed."})}}},"disconnect"),x=new Map,g=new Map,E=i(I=>{let b=g.get(I);if(b!==void 0)return g.delete(I),clearTimeout(b.expiry),b.deliver},"removeLateResult"),d=i(()=>{for(let I of g.values())clearTimeout(I.expiry);g.clear()},"clearLateResults"),p=!1,h=i((I,b)=>{if(!p||o||t.destroyed)return;let C=_t(`${I==="request.ack"?"ack":"cancel"}_${lt().replace(/-/g,"").slice(0,12)}`,I,{requestId:b});t.write(`${JSON.stringify(C)}
18
+ `)},"sendRequestLifecycleFrame"),P=uu(I=>{if(st(I)){let b=x.get(I.id);if(b){x.delete(I.id),b.cleanup(),_f(I.result)&&(p=!0),h("request.ack",I.id),b.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){ye({source:"runtime.daemon.transport",level:"warn",message:"Runtime daemon late-result handler failed.",detail:C})}return}if(Nt(I)){if(!I.id)return;let b=x.get(I.id);if(b){x.delete(I.id),b.cleanup(),b.reject(new Bt(I.error.message,I.error.code,I.error.data));return}E(I.id);return}if(pr(I))for(let b of m)try{b(I)}catch{ye({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(b){o=!0;let A=jt(b);y(A.message,!0),ai(x,A),d(),t.destroy(A)}}),t.on("close",()=>{o=!0,y("Runtime daemon transport closed.",!0),ai(x,new Error("Runtime daemon transport closed.")),d()}),t.on("error",I=>{o=!0,y(I.message,!0),ai(x,I),d()}),{request(I,b,A,C){if(o)return Promise.reject(new Error("Runtime daemon transport is closed."));let M=`req_${lt().replace(/-/g,"").slice(0,12)}`,F=I==="initialize"||I==="runtime.initialize"?Mf(b,a,c):b,te=A??(s!==void 0&&ot(I)?{operationId:`op_${lt().replace(/-/g,"")}`,journalEpoch:s}:void 0),Z=_t(M,I,F,te),pe;try{pe=JSON.stringify(Z)}catch($e){return Promise.reject(new Bt(`Runtime daemon request params are not JSON-serializable: ${jt($e).message}`,"invalid_params"))}let ue,qe=!1,Ie=i(()=>{ue!==void 0&&C?.signal?.removeEventListener("abort",ue)},"cleanup"),fe=new Promise(($e,Ee)=>{let Ye={resolve:$e,reject:Ee,cleanup:Ie};x.set(M,Ye),C?.signal!==void 0&&(ue=i(()=>{if(x.get(M)===Ye){if(x.delete(M),Ie(),qe&&!t.destroyed&&h("request.cancel",M),C.onLateResult!==void 0){let u=setTimeout(()=>{g.delete(M)},Tf);u.unref?.(),g.set(M,{deliver:C.onLateResult,expiry:u})}Ee(qf(C.signal?.reason))}},"abort"),C.signal.addEventListener("abort",ue,{once:!0}),C.signal.aborted&&ue())});return C?.signal?.aborted?fe:(t.write(`${pe}
19
+ `),qe=!0,fe.then($e=>{if(I==="initialize"||I==="runtime.initialize"){let Ee=mt($e);typeof Ee?.journalEpoch=="string"&&(s=Ee.journalEpoch)}return $e}))},subscribe(I){return m.add(I),{close(){m.delete(I)}}},subscribeLifecycle(I){return R.add(I),I(S),{close(){R.delete(I)}}},async close(){let I;if(!o){o=!0,y("Runtime daemon transport closed by client.",!1);try{P.flush()}catch(b){I=jt(b)}t.end(),t.destroy(),ai(x,new Error("Runtime daemon transport closed.")),d()}if(await r,R.clear(),I!==void 0)throw I}}}i(qn,"createRuntimeDaemonSocketClientTransport");function Mf(e,n,t){let r=mt(e)??{},o=mt(r.capabilities)??{},s=mt(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(Mf,"withDurableOperationCapability");function mt(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}i(mt,"asRecord");function _f(e){let n=mt(e),t=mt(n?.capabilities),r=mt(t?.runLifecycleControl);return Number.isSafeInteger(r?.version)&&Number(r?.version)>=1&&r.structuredStopReceipt===!0&&r.protocolCancellation===!0&&r.responseAcknowledgement===!0}i(_f,"runtimeDaemonSupportsRequestLifecycle");async function cu(e){await Hf(e.endpoint);let n=yr.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(S=>{if(s.destroyed)return;let y;try{y=JSON.stringify(S)}catch(x){let g=Vn({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${jt(x).message}`},S.kind==="response"||S.kind==="error"?S.id:void 0);y=JSON.stringify(g)}s.write(`${y}
20
+ `)},"send"),l=e.createDispatcher(S=>c(S));r.add(l);let m=uu(S=>{if(So(S)){l.handle(S).then(c,y=>{c(Vn({code:"internal_error",message:jt(y).message}))});return}if(Nt(S)){c(S);return}c(Vn({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),R=i(S=>{if(a)return;a=!0;let y=jt(S);c(Vn({code:"invalid_frame",message:y.message,...Mo(y)&&y.data!==void 0?{data:y.data}:{}})),s.end()},"rejectInvalidFrame");s.on("data",S=>{if(!a)try{m.push(S)}catch(y){R(y)}}),s.on("end",()=>{try{m.flush()}catch(S){R(S)}}),s.on("close",()=>{t.delete(s),r.delete(l),l.close()}),s.on("error",()=>{s.destroy()})}),await Lf(n,e.endpoint.path),e.endpoint.kind==="unix")try{await Kt.chmod(e.endpoint.path,384)}catch(s){throw await du(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 du(n)}}}}i(cu,"createRuntimeDaemonSocketServer");function Of(e,n){lu(Buffer.byteLength(e,"utf8"),n)}i(Of,"assertFrameSize");function lu(e,n){if(!(e<=n))throw new Bt(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}i(lu,"assertFrameByteSize");function Nf(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(Nf,"waitForConnect");function Lf(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(Lf,"waitForListen");async function Hf(e){if(e.kind!=="unix")return;let n;try{n=await Kt.stat(e.path)}catch(t){if(Do(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 Ff(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await Kt.unlink(e.path)}catch(t){if(!Do(t)||t.code!=="ENOENT")throw t}}i(Hf,"prepareUnixSocketEndpoint");function Ff(e){return new Promise((n,t)=>{let r=yr.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(),Do(l)&&(l.code==="ECONNREFUSED"||l.code==="ENOENT")){n(!1);return}t(l)},"onError");r.once("connect",a),r.once("error",c)})}i(Ff,"unixSocketAcceptsConnections");function du(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}i(du,"closeNetServer");function ai(e,n){for(let t of e.values())t.cleanup(),t.reject(n);e.clear()}i(ai,"rejectPending");function qf(e){return e instanceof Error?e:new Error("Runtime daemon request cancelled.")}i(qf,"normalizeTransportAbortReason");function jt(e){return e instanceof Error?e:new Error(String(e))}i(jt,"normalizeTransportError");function Do(e){return e instanceof Error&&"code"in e}i(Do,"isNodeFileError");async function Rr(e,n={}){let t=nu(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=Ue(e.lockFile),o=(n.isPidAlive??fu)(t.pid),s=ft(t),a=gr(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 $f(l,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:o,endpointReachable:!0,identityMatches:jf(m,t)&&Bf(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(l){return Mo(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(Rr,"observeRuntimeDaemonHealth");async function _o(e,n,t={}){let r=await Rr(e,t),o=r.state?void 0:Ue(e.lockFile),s=o?{...r,observedLockOwner:o,lockOwnerPidAlive:(t.isPidAlive??fu)(o.pid)}:r;return ou(e,n,s)}i(_o,"resolveRuntimeDaemonOwnership");function ft(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}i(ft,"runtimeDaemonEndpointFromState");function fu(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Kf(n)&&n.code==="EPERM"}}i(fu,"isRuntimeDaemonPidAlive");async function $f(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($f,"withTimeout");function jf(e,n){let t=mu(e),r=mu(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}i(jf,"daemonIdentityMatchesState");function Bf(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}i(Bf,"runtimeDaemonLockMatchesState");function mu(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}i(mu,"asRecord");function Kf(e){return e instanceof Error&&"code"in e}i(Kf,"isNodeProcessError");import lc from"node:path";import{randomUUID as Wt}from"node:crypto";var w={type:"string"},Ae={type:"boolean"},ae={type:"integer"},W={type:"object",additionalProperties:!0},pu={},kn={type:"array",items:W},Dn={oneOf:[{type:"null"},W]},Be=_({ok:Ae},["ok"]),Ve=_({}),di={initialize:{params:_({profile:w,token:w,autoStart:Ae,endpoint:w,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:W,capabilities:W},[],!0),result:_({identity:W,capabilities:W},["identity","capabilities"],!0)},"runtime.initialize":{params:_({profile:w,token:w,autoStart:Ae,endpoint:w,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:W,capabilities:W},[],!0),result:_({identity:W,capabilities:W},["identity","capabilities"],!0)},ping:{params:Ve,result:_({ok:Ae,runtimeId:w},["ok","runtimeId"])},"runtime.identity":{params:Ve,result:W},"runtime.status":{params:Ve,result:W},"runtime.shutdown":{params:Ve,result:Be},"runtime.capabilities":{params:Ve,result:W},"daemon.status":{params:Ve,result:W},"daemon.stop":{params:Ve,result:Be},"daemon.logs":{params:Ve,result:W},"daemon.preflight":{params:Ve,result:W},"daemon.management.get":{params:Ve,result:_({runtimeId:w,revision:ae,ownerPolicy:Ru(),owner:dp(),preflight:W,integrations:Wf()},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:_({expectedRuntimeId:w,expectedRevision:ae,expectedOwnerPolicyRevision:ae},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:_({accepted:{type:"boolean",enum:[!0]},runtimeId:w,revision:ae,ownerPolicy:Ru("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:_({operationId:w,journalEpoch:w},["operationId","journalEpoch"]),result:W},"session.create":{params:Yf(),result:gt()},"session.load":{params:_({sessionId:w,timeoutMs:ae},["sessionId"]),result:gt()},"session.list":{params:Qf(),result:nn(gt())},"session.status":{params:_({sessionId:w},["sessionId"]),result:W},"session.transcript":{params:_({sessionId:w,timeoutMs:ae},["sessionId"]),result:Dn},"session.transcript.page":{params:_({sessionId:w,cursor:w,limit:ae,timeoutMs:ae},["sessionId"]),result:Dn},"session.transcript.entryChunk":{params:_({sessionId:w,revision:w,entryIndex:ae,cursor:w,timeoutMs:ae},["sessionId","revision","entryIndex"]),result:Dn},"session.transcript.search":{params:Vf(),result:dn(Jf())},"session.observe":{params:_({sessionId:w,timeoutMs:ae},["sessionId"]),result:W},"session.conversation":{params:_({sessionId:w,timeoutMs:ae},["sessionId"]),result:Dn},"session.conversation.page":{params:_({sessionId:w,cursor:w,limit:ae,timeoutMs:ae},["sessionId"]),result:Dn},"session.conversation.entryChunk":{params:_({sessionId:w,revision:w,entryIndex:ae,cursor:w,timeoutMs:ae},["sessionId","revision","entryIndex"]),result:Dn},"session.diagnostics":{params:_({sessionId:w,runId:w,timeoutMs:ae},["sessionId"]),result:fp()},"session.fork":{params:up(),result:dn(gt())},"session.notice.append":{params:_({sessionId:w,content:w,source:w},["sessionId","content"]),result:Dn},"session.rewind":{params:_({sessionId:w,selector:w,historyBoundary:Cu()},["sessionId"]),result:dn(gt())},"session.active_entry.set":{params:hu(),result:dn(gt())},"session.activeEntry.set":{params:hu(),result:dn(gt())},"session.compact":{params:cp(),result:W},"session.archive":{params:_({sessionId:w},["sessionId"]),result:Be},"session.unarchive":{params:_({sessionId:w},["sessionId"]),result:Be},"session.delete":{params:_({sessionId:w},["sessionId"]),result:Be},"session.settings.get":{params:_({sessionId:w},["sessionId"]),result:W},"session.settings.getVersioned":{params:_({sessionId:w},["sessionId"]),result:W},"session.autoMode.getStats":{params:_({sessionId:w},["sessionId"]),result:dn(W)},"session.settings.update":{params:_({sessionId:w,patch:W},["sessionId","patch"]),result:W},"session.settings.updateVersioned":{params:_({sessionId:w,patch:W,expectedRevision:ae},["sessionId","patch","expectedRevision"]),result:W},"run.start":{params:lp(),result:Gf()},"run.input.submit":{params:_({sessionId:w,afterRunId:w,delivery:{type:"string",enum:["after_turn","interrupt"]},input:pu,credential:W,hostTools:W},["sessionId","afterRunId","delivery","input"]),result:W},"run.get":{params:pt(),result:wu()},"run.list":{params:mp(),result:nn(wu())},"run.await":{params:pt(),result:gp()},"run.abort":{params:pt(),result:pp()},"run.model.set":{params:_({runId:w,model:w},["runId"],!0),result:Be},"run.provider.set":{params:_({runId:w,provider:w},["runId","provider"]),result:Be},"run.reasoning.set":{params:_({runId:w,reasoning:w},["runId"],!0),result:Be},"run.setModel":{params:_({runId:w,model:w},["runId"],!0),result:Be},"run.setProvider":{params:_({runId:w,provider:w},["runId","provider"]),result:Be},"run.setReasoning":{params:_({runId:w,reasoning:w},["runId"],!0),result:Be},"request.cancel":{params:_({requestId:w},["requestId"]),result:Be},"request.ack":{params:_({requestId:w},["requestId"]),result:Be},"event.subscribe":{params:gu(Mu()),result:yu()},"event.unsubscribe":{params:_({subscriptionId:w},["subscriptionId"]),result:Be},"event.replay":{params:yp(),result:nn(Rp())},"permission.list":{params:No(),result:nn(vu())},"permission.listPending":{params:No(),result:nn(vu())},"permission.request":{params:_u(),result:Su()},"permission.respond":{params:_({requestId:w,runId:w,decision:Su()},["requestId","decision"]),result:Ae},"permission.grants.list":{params:Ve,result:W},"permission.grants.revoke":{params:_({grantId:w,expectedRevision:ae},["grantId","expectedRevision"]),result:Ae},"user_input.listPending":{params:No(),result:nn(W)},"user_input.respond":{params:_({requestId:w,answer:pu,runId:w,expectedRevision:ae},["requestId","answer"],!0),result:W},"user_input.dismiss":{params:_({requestId:w,runId:w,expectedRevision:ae},["requestId"],!0),result:W},"credential.register":{params:_({leaseId:w,providers:{type:"array",items:w},expiresAt:w},["leaseId","providers"],!0),result:W},"credential.get":{params:_({leaseId:w},["leaseId"]),result:{oneOf:[W,{type:"null"}]}},"credential.revoke":{params:_({leaseId:w},["leaseId"]),result:Ae},"credential.supply":{params:_({requestId:w,credential:w,error:w},["requestId"],!0),result:Be},"host_tool.register":{params:_({leaseId:w,tools:{type:"array",items:W}},["leaseId","tools"]),result:W},"host_tool.get":{params:_({leaseId:w},["leaseId"]),result:{oneOf:[W,{type:"null"}]}},"host_tool.invocation.get":{params:_({invocationId:w},["invocationId"]),result:{oneOf:[W,{type:"null"}]}},"host_tool.revoke":{params:_({leaseId:w},["leaseId"]),result:Ae},"host_tool.complete":{params:_({invocationId:w,result:W,error:w},["invocationId"],!0),result:Be},"workflow.list":{params:Iu(),result:kn},"workflow.get":{params:pt(),result:{oneOf:[W,{type:"null"}]}},"workflow.subscribe":{params:gu(Iu()),result:yu()},"workflow.unsubscribe":{params:_({subscriptionId:w},["subscriptionId"]),result:Be},"workflow.pause":{params:pt(),result:Ae},"workflow.resume":{params:pt(),result:Ae},"workflow.stop":{params:pt(),result:Ae},"learning.list":{params:Zf(),result:ap()},"learning.get":{params:_({nameOrSlug:w},["nameOrSlug"]),result:xu()},"learning.snapshot":{params:Ve,result:sp()},"learning.events":{params:_({afterRevision:ae},[],!0),result:nn(op())},"learning.acknowledge":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Be},"learning.snooze":{params:_({nameOrSlug:w,until:w},["nameOrSlug","until"]),result:Be},"learning.reject":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Be},"learning.disable":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Be},"learning.rollback":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Be},"learning.promote":{params:_({nameOrSlug:w,scope:{type:"string",enum:["user"]}},["nameOrSlug","scope"]),result:Be},"learning.review":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Be},"learning.trust":{params:_({nameOrSlug:w},["nameOrSlug"]),result:Be},"config.read":{params:Ve,result:W},"config.patch":{params:_({patch:W},["patch"]),result:W},"config.reload":{params:Ve,result:_({ok:Ae,config:W},["ok","config"])},"model.list":{params:_({provider:w},[],!0),result:{oneOf:[W,kn]}},"provider.list":{params:Ve,result:kn},"provider.custom.list":{params:Ve,result:kn},"provider.custom.upsert":{params:_({config:W},["config"]),result:W},"provider.custom.remove":{params:_({name:w},["name"]),result:Ae},"mcp.server.list":{params:Ve,result:W},"mcp.server.get":{params:_({name:w},["name"]),result:{oneOf:[W,{type:"null"}]}},"mcp.server.validate":{params:_({name:w,config:W},["name","config"]),result:{oneOf:[_({ok:Ae,config:W},["ok","config"],!0),_({ok:Ae,error:w},["ok","error"],!0)]}},"mcp.server.upsert":{params:_({name:w,config:W},["name","config"]),result:W},"mcp.server.delete":{params:_({name:w},["name"]),result:Ae},"mcp.server.remove":{params:_({name:w},["name"]),result:Ae},"mcp.server.reload":{params:Ve,result:_({ok:Ae,servers:kn},["ok","servers"])},"mcp.tool.list":{params:_({server:w,forceRefresh:Ae},[],!0),result:kn},"extension.list":{params:Ve,result:_({active:Ae,extensions:kn,diagnostics:W},["active","extensions"],!0)},"extension.reload":{params:Ve,result:_({ok:Ae,active:Ae},["ok","active"],!0)},"command.list":{params:_({projectRoot:w},[],!0),result:kn},"command.resolve":{params:_({name:w,projectRoot:w},["name"],!0),result:Dn},"skill.list":{params:_({projectRoot:w,userInvocableOnly:Ae},[],!0),result:kn},"skill.describe":{params:_({name:w,projectRoot:w},["name"],!0),result:Dn},"skill.read":{params:_({name:w,projectRoot:w},["name"],!0),result:Dn},"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:ku()},"artifact.get":{params:_({artifactId:w},["artifactId"]),result:dn(ku())},"artifact.delete":{params:_({artifactId:w},["artifactId"]),result:Ae},"agentRegistrations.list":{params:Ve,result:kn},"agentRegistrations.upsert":{params:_({registration:W,expectedConfigurationRevision:dn(w),expectedManagementOwner:dn(w)},["registration"]),result:W},"agentRegistrations.setEnabled":{params:_({agentId:w,enabled:Ae,expectedConfigurationRevision:dn(w),expectedManagementOwner:dn(w),claimOwner:w},["agentId","enabled"]),result:dn(W)},"agentRegistrations.remove":{params:_({agentId:w,expectedConfigurationRevision:dn(w),expectedManagementOwner:dn(w)},["agentId"]),result:Ae},"agents.listDispatchable":{params:W,result:kn},"agents.describe":{params:_({agentId:w,query:W},["agentId","query"]),result:dn(W)},"agents.preflight":{params:W,result:W},"agents.tree":{params:_({sessionId:w},["sessionId"]),result:W},"agents.detail":{params:_({sessionId:w,actorPath:w},["sessionId","actorPath"]),result:W},"agents.spawn":{params:_({sessionId:w,input:W},["sessionId","input"]),result:W},"agents.send":{params:_({sessionId:w,actorPath:w,content:w,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:Be},"agents.followup":{params:_({sessionId:w,actorPath:w,objective:w,expectedRevision:ae},["sessionId","actorPath","objective"],!0),result:W},"agents.interrupt":{params:_({sessionId:w,actorPath:w,reason:w},["sessionId","actorPath"],!0),result:Be},"agents.output":{params:_({sessionId:w,actorPath:w,turnId:w},["sessionId","actorPath"],!0),result:W},"agents.events":{params:_({sessionId:w,afterSequence:ae},["sessionId"],!0),result:kn},"agents.wait":{params:_({sessionId:w,afterSequence:ae,timeoutMs:ae},["sessionId"],!0),result:dn(W)},"context.budget.get":{params:Oo(),result:{oneOf:[W,{type:"null"}]}},"tool.exposure.preview":{params:Oo(),result:{oneOf:[W,{type:"null"}]}},"provider.cache.diagnostics.get":{params:Oo(),result:{oneOf:[W,{type:"null"}]}}},bu={event:_({subscriptionId:w,event:W},["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":W,"host_tool.invoke":W,"runtime.warning":W},Eu={protocol:Gn,version:1,methods:di,notifications:bu},Xf=JSON.stringify(Eu,null,2);function Uf(){return Mt}i(Uf,"listRuntimeDaemonSchemaMethods");function Ut(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(a=>Ut(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=>zf(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)=>Ut(s,a,`${t}[${c}]`))}if(!Pu(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(...Ut(c,a,`${t}.${s}`));continue}e.additionalProperties===!1?o.push(`${t}.${s} is not allowed.`):typeof e.additionalProperties=="object"&&o.push(...Ut(e.additionalProperties,a,`${t}.${s}`))}return o}i(Ut,"validateRuntimeDaemonJsonSchema");function zf(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 Pu(n);case"string":return typeof n=="string"}}i(zf,"matchesJsonSchemaType");function Pu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Pu,"isJsonObject");function Wf(){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:Ae},["domain","path","watching"]);return _({state:{type:"string",enum:["healthy","degraded"]},domains:{type:"array",items:n}},["state","domains"])}i(Wf,"integrationHealthSchema");function _(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}i(_,"objectSchema");function pt(){return _({runId:w},["runId"])}i(pt,"runIdParamsSchema");function gu(e){return _({filter:e})}i(gu,"filterParamsSchema");function Oo(){return _({sessionId:w,runId:w,contextKind:{type:"string",enum:["root","child"]},agentId:w},[],!0)}i(Oo,"diagnosticParamsSchema");function yu(){return _({subscriptionId:w},["subscriptionId"])}i(yu,"subscriptionSchema");function Gf(){return _({runId:w,sessionId:w,turnId:w},["runId","sessionId"],!0)}i(Gf,"runStartedSchema");function nn(e){return{type:"array",items:e}}i(nn,"arraySchema");function dn(e){return{oneOf:[{type:"null"},e]}}i(dn,"nullableSchema");function Vf(){return _({sessionId:w,query:w,limit:ae,role:{type:"string",enum:["user","assistant"]},scope:{type:"string",enum:["compacted","all"]},timeoutMs:ae},["sessionId","query"])}i(Vf,"transcriptSearchParamsSchema");function Jf(){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:Ae,score:{type:"number"},snippet:w,citation:w,entryIndex:ae},["entryId","timestamp","role","source","active","score","snippet","citation","entryIndex"]);return _({revision:w,hits:nn(e)},["revision","hits"])}i(Jf,"transcriptSearchResultSchema");function Yf(){return _({sessionId:w,title:w,projectPath:w,gitRoot:w,surface:w,profileId:w,tag:w})}i(Yf,"createSessionParamsSchema");function gt(){return _({id:w,cursor:w,title:w,gitRoot:w,workspaceRoot:w,surface:w,profileId:w,createdAt:w,msgCount:ae,tag:w,projectKey:w,archived:Ae},["id","title"],!0)}i(gt,"sessionSchema");function Qf(){return _({projectRoot:w,scope:{enum:["user","managed-task-worker","all"]},includeArchived:Ae,limit:ae,before:w,tag:w,surface:w,cursor:w})}i(Qf,"sessionFilterSchema");function Zf(){return _({search:w,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:ae,cursor:w})}i(Zf,"learningQuerySchema");function ep(){return{capabilityId:w,displayName:w,slug:w,lifecycle:Lo(),revision:ae,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:ae,previousLifecycle:Lo(),diagnostics:nn(w)}}i(ep,"learnedCapabilityCommonProperties");function np(){return["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"]}i(np,"learnedCapabilityRequired");function tp(){return _({kind:{type:"string",enum:["skill_markdown"]},relativePath:w,fingerprint:w,contentRevision:ae},["kind","relativePath","fingerprint","contentRevision"])}i(tp,"learnedCapabilityArtifactSchema");function rp(){return _({maxInvocations:{type:"integer",enum:[3]},invocationCount:ae,verifiedSuccesses:ae,credibleNegatives:ae,binding:_({bindingId:w,ownerSessionRef:w,expiresAt:w},["bindingId","ownerSessionRef","expiresAt"]),invocations:nn(ip())},["maxInvocations","invocationCount","verifiedSuccesses","credibleNegatives","invocations"])}i(rp,"learnedCapabilityCanarySchema");function ip(){return _({invocationId:w,bindingId:w,usageSessionHash:w,artifactRevision:ae,artifactFingerprint:w,status:{type:"string",enum:["pending","verified_success","credible_negative","inconclusive"]},evidenceRefs:nn(w),invokedAt:w,completedAt:w},["invocationId","bindingId","status","evidenceRefs","invokedAt"])}i(ip,"learnedCapabilityInvocationSchema");function xu(){let e=ep(),n=tp(),t=np(),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(xu,"learnedCapabilitySchema");function Lo(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}i(Lo,"learningLifecycleSchema");function op(){return _({schemaVersion:{type:"integer",enum:[1]},sequence:ae,eventId:w,capabilityId:w,capabilityRevision:ae,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Lo(),displayName:w,slug:w,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:w},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}i(op,"learningEventSchema");function sp(){return _({ready:ae,newlyActive:ae,attention:ae,active:ae,revision:ae},["ready","newlyActive","attention","active","revision"])}i(sp,"learningSnapshotSchema");function ap(){return _({items:nn(xu()),nextCursor:w,revision:ae},["items","revision"])}i(ap,"learningPageSchema");function Ru(e){return _({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:ae,updatedAt:w},["mode","revision","updatedAt"])}i(Ru,"ownerPolicySchema");function dp(){return _({runtimeId:w,pid:ae,createdAt:w,kind:{type:"string",enum:["daemon","inline"]}},["runtimeId","pid","createdAt"])}i(dp,"ownerIdentitySchema");function up(){return _({sessionId:w,selector:w,newSessionId:w,title:w,historyBoundary:Cu()},["sessionId"])}i(up,"forkSessionParamsSchema");function Cu(){return _({entryId:w,sourceRevision:w},["entryId","sourceRevision"])}i(Cu,"conversationHistoryBoundarySchema");function hu(){return _({sessionId:w,entryId:w},["sessionId","entryId"])}i(hu,"activeEntryParamsSchema");function cp(){return _({sessionId:w,provider:w,model:w,customInstructions:w,contextWindow:ae},["sessionId"])}i(cp,"compactSessionParamsSchema");function lp(){return _({sessionId:w,prompt:w,input:{oneOf:[W,nn(W)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:W},["sessionId"],!0)}i(lp,"startRunParamsSchema");function mp(){return _({sessionId:w,phase:{oneOf:[zt(),nn(zt())]}})}i(mp,"runFilterSchema");function wu(){return _({runId:w,sessionId:w,turnId:w,phase:zt(),stage:Du(),stageChangedAt:w,activeSubtaskCount:ae,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:Ae},["code","message","retryable"]),terminal:Au(),stop:Tu()},["runId","sessionId","phase","startedAt","provider"],!0)}i(wu,"runStatusSchema");function fp(){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:zt(),stage:Du(),stageChangedAt:w,terminalAt:w,terminalTimeKnown:Ae,terminal:Au(),activeSubtaskCount:{oneOf:[ae,{type:"null"}]},activeSubtaskCountSource:{enum:["run_status","unknown"]},stop:Tu(),interruptInputs:nn(W),errors:nn(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:ae,transcriptRevision:w},["cursor","transcriptRevision"]),run:n},["schemaVersion","captureStartedAt","capturedAt","sdkVersion","runtimeVersion","daemonVersion","runtimeId","runtimeMode","sessionId","observation","run"])}i(fp,"sessionDiagnosticsSchema");function Au(){return _({revision:ae,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(Au,"runtimeTerminalFactSchema");function Tu(){return _({requestedAt:w,state:{enum:["unknown","confirmed"]},outcome:{enum:["unknown","cancelled","interrupted","completed","failed"]},reason:w,resolvedAt:w},["requestedAt","state","outcome","reason"])}i(Tu,"runStopStatusSchema");function pp(){return _({runId:w,sessionId:w,accepted:Ae,state:{type:"string",enum:["unknown","confirmed"]},outcome:{type:"string",enum:["unknown","cancelled","interrupted","completed","failed"]},phase:zt(),revision:ae},["runId","sessionId","accepted","state","outcome","phase","revision"])}i(pp,"runStopReceiptSchema");function gp(){return _({runId:w,sessionId:w,phase:zt(),result:W,error:{oneOf:[w,W]}},["runId","sessionId","phase"],!0)}i(gp,"runResultSchema");function zt(){return{enum:["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input","unknown","completed","failed","cancelled","interrupted"]}}i(zt,"runPhaseSchema");function Du(){return{enum:["queued","executing","waiting_agent","recovering","finalizing","terminal","unknown","starting","routing","preflight","round","worker","upgrade","verifying"]}}i(Du,"runStageSchema");function Mu(){return _({sessionId:w,runId:w,type:{oneOf:[w,nn(w)]}})}i(Mu,"eventFilterSchema");function yp(){return _({...Mu().properties??{},sinceSeq:ae,limit:ae})}i(yp,"eventReplayFilterSchema");function Rp(){return _({id:w,seq:ae,time:w,sessionId:w,runId:w,turnId:w,type:w,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}i(Rp,"runtimeEventSchema");function No(){return _({sessionId:w,runId:w,toolName:w})}i(No,"permissionFilterSchema");function _u(){return _({sessionId:w,runId:w,turnId:w,toolCallId:w,toolName:w,reason:w,risk:{enum:["low","medium","high"]},inputPreview:w,toolInput:W,executionCwd:{type:"string",maxLength:4096},autoModeDiagnostics:W,expiresAt:w,timeoutMs:ae},["sessionId","runId","toolName"])}i(_u,"permissionRequestInputSchema");function vu(){let{toolInput:e,...n}=_u().properties??{};return _({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:nn(_({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(vu,"permissionRequestSchema");function Su(){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:hp()})},["type","scope"]),_({type:{enum:["reject"]},reason:w,cause:{enum:["approval_timeout"]}},["type"])]}}i(Su,"permissionDecisionSchema");function hp(){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:Ae},["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(hp,"runtimePermissionMatcherSchema");function Iu(){return _({runId:w,activeOnly:Ae,limit:ae})}i(Iu,"workflowFilterSchema");function ku(){return _({id:w,kind:{enum:["image","file","video"]},path:w,sizeBytes:ae,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(ku,"artifactSchema");import{createHash as wp,randomUUID as hr}from"node:crypto";import*as en from"node:fs";import vp from"node:path";var Sp=6e4,Ip=1048576,kp=64,bp=4096,Ou=1e3;function Fo(){return{callTimeoutMs:Hu("KODAX_REVERSE_CALL_TIMEOUT_MS",Sp),maxResultBytes:Hu("KODAX_HOST_TOOL_MAX_RESULT_BYTES",Ip)}}i(Fo,"runtimeDaemonReverseBridgeLimits");function qo(e,n={}){let t=Fo(),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,S,y=!1,x=i(()=>{if(y)throw _e("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),g=i(()=>{let I=Date.now();for(let[b,A]of r)A.expiresAt!==void 0&&Date.parse(A.expiresAt)<=I&&r.delete(b)},"pruneExpiredCredentials"),E=i(I=>{for(let b of s.values())clearTimeout(b.timer),b.reject(_e("credential_unavailable",I));s.clear()},"rejectPendingCredentialRequests"),d=i(()=>{for(let[I,b]of a)b.dispatched&&(a.delete(I),clearTimeout(b.timer),p(I,"unknown"),b.reject(_e("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),p=i((I,b)=>{let A=c.get(I);if(A===void 0)return;let C={...A,state:b,updatedAt:new Date().toISOString()},M=new Map(c);for(M.delete(I),M.set(I,C);M.size>Ou;){let F=M.keys().next().value;if(F===void 0)break;M.delete(F)}n.onInvocationsChanged?.([...M.values()]),c.clear();for(let[F,te]of M)c.set(F,te)},"updateHostToolInvocation"),h=i((I,b)=>{let A=S;if(!(b.dispatched||A===void 0||!l.has(b.leaseId)))try{p(I,"dispatched"),b.dispatched=!0,A.notify(b.notification)}catch{a.delete(I),clearTimeout(b.timer),p(I,"unknown"),b.reject(_e("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 _e("host_tool_unavailable","Host tool lease was revoked.");let b=`hostcall_${hr().replace(/-/g,"")}`,A=Ot("host_tool.invoke",{invocationId:b,leaseId:I.lease.id,toolName:I.descriptor.name,sessionId:I.sessionId,runId:I.runId,input:I.toolInput,sideEffect:I.descriptor.sideEffect}),C={invocationId:b,leaseId:I.lease.id,toolName:I.descriptor.name,sessionId:I.sessionId,runId:I.runId,state:"prepared",updatedAt:new Date().toISOString()},M=new Map(c);for(M.set(b,C);M.size>Ou;){let Z=M.keys().next().value;if(Z===void 0)break;M.delete(Z)}n.onInvocationsChanged?.([...M.values()]),c.clear();for(let[Z,pe]of M)c.set(Z,pe);let F=new Promise((Z,pe)=>{let ue=setTimeout(()=>{let qe=a.get(b);qe&&(a.delete(b),p(b,qe.dispatched?"unknown":"not_dispatched"),pe(_e(qe.dispatched?"host_tool_unknown":"host_tool_unavailable",qe.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);ue.unref?.(),a.set(b,{invocationId:b,resolve:Z,reject:pe,timer:ue,notification:A,leaseId:I.lease.id,dispatched:!1})}),te=a.get(b);return te&&h(b,te),F},"invokeHostTool");return e!==void 0&&(S={id:`bridge_${hr().replace(/-/g,"")}`,notify:e}),{attachTransport(I){x(),S!==void 0&&(E("Credential client connection was replaced."),d());let b=`bridge_${hr().replace(/-/g,"")}`;return S={id:b,notify:I},l.clear(),{close(){S?.id===b&&(S=void 0,l.clear(),E("Credential client disconnected."),d())}}},registerCredential(I){if(x(),g(),I.providers.length===0||I.providers.some(A=>A.trim().length===0)||new Set(I.providers).size!==I.providers.length)throw _e("invalid_params","Credential lease providers must be non-empty and unique.");if(I.expiresAt!==void 0&&!Number.isFinite(Date.parse(I.expiresAt)))throw _e("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(I.leaseId))throw _e("conflict","Credential lease ID is already registered on this connection.");let b={id:I.leaseId,providers:[...I.providers],...I.expiresAt!==void 0?{expiresAt:I.expiresAt}:{},providerSet:new Set(I.providers)};return r.set(I.leaseId,b),Lu(b)},getCredential(I){g();let b=r.get(I);return b===void 0?void 0:Lu(b)},revokeCredential(I){return r.delete(I)},supplyCredential(I){let b=s.get(I.requestId);return b?(s.delete(I.requestId),clearTimeout(b.timer),I.credential!==void 0&&I.credential.length>0?b.resolve(I.credential):b.reject(_e("credential_unavailable",I.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(I){x();let b=r.get(I.leaseId);if(!b||!b.providerSet.has(I.provider))throw _e("credential_unavailable","Credential lease is missing or does not allow this provider.");if(b.expiresAt!==void 0&&Date.parse(b.expiresAt)<=Date.now())throw r.delete(b.id),_e("credential_unavailable","Credential lease expired.");let A=S;if(!A)throw _e("credential_unavailable","Credential broker transport is unavailable.");let C=`credreq_${hr().replace(/-/g,"")}`,M=b.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(b.expiresAt)-Date.now())),F=new Promise((te,Z)=>{let pe=setTimeout(()=>{s.delete(C),Z(_e("credential_unavailable","Credential lease expired or broker timed out."))},M);pe.unref?.(),s.set(C,{resolve:te,reject:Z,timer:pe})});try{A.notify(Ot("credential.request",{requestId:C,leaseId:b.id,provider:I.provider,sessionId:I.sessionId,runId:I.runId}))}catch{let te=s.get(C);te&&(s.delete(C),clearTimeout(te.timer),te.reject(_e("credential_unavailable","Credential request was not dispatched.")))}return F.then(te=>(m.set(I.runId,{leaseId:I.leaseId,provider:I.provider}),te))},registerHostTools(I){x();let b=I.tools.map(C=>C.name);if(b.length===0||b.length>kp||new Set(b).size!==b.length)throw _e("invalid_params","Host tool names must be non-empty and unique.");if(o.has(I.leaseId))throw _e("conflict","Host tool lease ID is already registered on this connection.");for(let C of I.tools)Ap(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 b=o.get(I);if(b!==void 0){l.add(I);for(let[A,C]of a)C.leaseId===I&&h(A,C)}return b===void 0?void 0:{id:b.id,tools:b.tools}},revokeHostTools(I){return o.delete(I)},completeHostTool(I){let b=a.get(I.invocationId);if(!b)return!1;if(I.result!==void 0){if(typeof I.result.content!="string")throw _e("invalid_params","Host tool result content must be a string.");Tp(I.result,t.maxResultBytes,"Host tool result")}return a.delete(I.invocationId),clearTimeout(b.timer),I.result!==void 0?(p(I.invocationId,"completed"),b.resolve(I.result)):(p(I.invocationId,"unknown"),b.reject(_e("host_tool_unknown",I.error??"Host tool result is unknown."))),!0},getHostToolInvocation(I){return c.get(I)},createHostToolRuntime(I){x();let b=o.get(I.leaseId);if(!b)throw _e("host_tool_unavailable","Host tool lease is missing.");R.set(I.runId,I.leaseId);let A=i(async(C,M,F)=>{if(C!=="mcp"||F?.kind!==void 0&&F.kind!=="tool")return[];if(F?.server!==void 0&&F.server!=="host")return[];let te=M.toLowerCase();return b.tools.filter(Z=>Z.name.toLowerCase().includes(te)||Z.description.toLowerCase().includes(te)).slice(0,F?.limit??b.tools.length).map(Z=>({id:Dp(b.id,Z.name),name:Z.name,description:Z.description,kind:"tool",server:"host",inputSchema:Z.inputSchema}))},"searchCapabilities");return{hasCapabilityProvider(C){return C==="mcp"},searchCapabilities:A,async searchCapabilitySnapshot(C,M,F){return{items:await A(C,M,F),revision:`host:${b.id}`,complete:!0,freshness:"live"}},async describeCapability(C,M){if(C!=="mcp")return;let F=Fu(b,M);return F?{...F,id:M,kind:"tool",server:"host"}:void 0},async executeCapability(C,M,F){if(C!=="mcp")throw _e("host_tool_unavailable","Unsupported host capability provider.");let te=Fu(b,M);if(!te)throw _e("host_tool_unavailable","Host tool is not bound to this run.");return await P({lease:b,descriptor:te,sessionId:I.sessionId,runId:I.runId,toolInput:F})},async readCapability(){throw _e("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(I){let b=m.get(I),A=R.get(I);if(!(b===void 0&&A===void 0))return{...b!==void 0?{credential:{...b,state:"ready"}}:{},...A!==void 0?{hostTools:{leaseId:A,state:o.has(A)?l.has(A)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!y){y=!0,S=void 0,l.clear(),r.clear(),o.clear(),E("Credential client disconnected.");for(let I of a.values())clearTimeout(I.timer),p(I.invocationId,I.dispatched?"unknown":"not_dispatched"),I.reject(_e(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(qo,"createRuntimeDaemonReverseBridge");function qu(e={}){let n=new Map,t=Pp(e.invocationStateFile),r=!1;return{attach(o){if(r)throw _e("host_tool_unavailable","Host bridge hub is closed.");if(o.instanceSecret!==void 0&&(o.instanceSecret.length<32||o.instanceSecret.length>512))throw _e("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let s=o.instanceSecret===void 0?`ephemeral:${o.connectionId}`:`stable:${o.principalId}:${wp("sha256").update(o.instanceSecret).digest("hex")}`,a=s.startsWith("stable:")?Ep(t.get(s)??[]):[],c=n.get(s)??qo(void 0,{initialInvocations:a,...s.startsWith("stable:")?{onInvocationsChanged(m){t.set(s,m),Nu(e.invocationStateFile,t)}}:{}});!n.has(s)&&a.length>0&&(t.set(s,a),Nu(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(qu,"createRuntimeDaemonReverseBridgeHub");function Ep(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(Ep,"recoverHostToolInvocationStates");function Pp(e){if(e===void 0||!en.existsSync(e))return new Map;let n;try{n=JSON.parse(en.readFileSync(e,"utf8"))}catch(r){throw new Error(`Host Tool invocation recovery store is untrusted: ${Mp(r).message}`)}if(!Ho(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(!Ho(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(xp);t.set(r.key,o)}return t}i(Pp,"loadHostToolInvocationStore");function Nu(e,n){if(e===void 0)return;en.mkdirSync(vp.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${hr()}.tmp`,r;try{r=en.openSync(t,"wx",384),en.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([o,s])=>({key:o,invocations:s}))},null,2)}
21
+ `,"utf8"),en.fsyncSync(r),en.closeSync(r),r=void 0,en.renameSync(t,e)}finally{r!==void 0&&en.closeSync(r),en.rmSync(t,{force:!0})}}i(Nu,"saveHostToolInvocationStore");function xp(e){if(!Ho(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!Cp(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(xp,"parseHostToolInvocationStatus");function Cp(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}i(Cp,"isHostToolInvocationState");function Lu(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}i(Lu,"publicCredentialLease");function Ap(e){if(!e.name||!e.description||!e.inputSchema)throw _e("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw _e("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw _e("invalid_params","Host tool name is invalid.");if(e.description.length>bp)throw _e("invalid_params",`Host tool description is too long: ${e.name}.`)}i(Ap,"validateHostToolDescriptor");function Tp(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw _e("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw _e("invalid_params",`${t} exceeds the ${n}-byte limit.`)}i(Tp,"assertJsonByteLimit");function Hu(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(Hu,"positiveIntegerEnvironment");function Dp(e,n){return`host:${e}:${n}`}i(Dp,"hostToolCapabilityId");function Fu(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}i(Fu,"descriptorFromCapabilityId");function _e(e,n){return Object.assign(new Error(n),{code:e})}i(_e,"bridgeError");function Ho(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ho,"isRecord");function Mp(e){return e instanceof Error?e:new Error(String(e))}i(Mp,"normalizeError");var $u=512*1024,ju=1e3,_p=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],Op=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),Qu=["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"],Zu=new Map([...un("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"]),...un("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"]),...un("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"]),...un("permission:respond",["permission.respond"]),...un("permission:grant-admin",["permission.grants.revoke"]),...un("interaction:respond",["user_input.respond","user_input.dismiss"]),...un("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...un("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...un("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"]),...un("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...un("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...un("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...un("artifact:write",["artifact.create","artifact.delete"]),...un("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"]),...un("owner:admin",["daemon.rollbackToInline"]),...un("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),Bu=Mt.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!Zu.has(e));if(Bu.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${Bu.join(", ")}`);function un(e,n){return n.map(t=>[t,e])}i(un,"scopeEntries");function Wo(){let e=new Map,n=i(()=>{if(!(e.size<=ju))for(let[r,o]of e){if(e.size<=ju)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(Wo,"createRuntimeDaemonRunResultStore");function wr(e){return e==="initialize"||e==="runtime.initialize"}i(wr,"isInitializeMethod");function ec(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??Wo(),a=`connection_${Wt().replace(/-/g,"")}`,c=qo(e.notify),l=c,m,R=!1,S=!1,y="client",x={},g=`client_${Wt().replace(/-/g,"")}`,E,d,p=new Set(e.grantedScopes??Qu),h=i(A=>{let C=n.get(A);if(!C)return!1;n.delete(A);let M=o.get(A);if(o.delete(A),M!==void 0){let F=t.get(M.requestId);F===M.inFlight&&F.subscriptionIds.delete(A),F===M.inFlight&&F.completed&&F.subscriptionIds.size===0&&r(M.requestId,F)}return C.close(),!0},"closeSubscription"),P=i((A,C)=>{n.set(A,C)},"rememberSubscription"),I=i((A,C)=>{tc(C)&&x.contextDiagnostics!==!0||e.notify?.(Ot("event",{subscriptionId:A,event:C}))},"notify");return{handle:i(async A=>{let C;try{if(Od(A.method))throw we("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 M=A;Yu(M.method,"params",M.params===void 0?{}:M.params,"invalid_params");let F;if(!R&&!wr(M.method))throw we("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(R&&wr(M.method))throw we("conflict","Runtime daemon connection is already initialized.");if(R&&y==="probe"&&!Op.has(M.method))throw we("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(wr(M.method)){F=He(M.params),y=F?.connectionPurpose==="probe"?"probe":"client";let Ie=typeof F?.token=="string"?F.token:void 0;if(e.authToken!==void 0&&Ie!==e.authToken)throw we("unauthorized","Runtime daemon initialize token is invalid.");let fe=typeof F?.profile=="string"?F.profile:void 0;if(fe!==void 0&&fe!==e.runtime.identity.profile)throw we("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${fe}.`);g=$p(F?.clientInfo,g),E=rg(F?.clientInfo),d=ig(F?.clientInfo)}if(wr(M.method)||(Fp(M.method,p),qp(M,p)),t.has(M.id))throw we("invalid_request",`Runtime daemon request id is already in flight: ${M.id}.`);if(M.method==="request.cancel"){let Ie=xe(M.params,"requestId"),fe=t.get(Ie);if(fe?.cancellable===!0){fe.controller.abort(Object.assign(new Error("Runtime daemon request cancelled."),{code:"read_cancelled"}));for(let $e of fe.subscriptionIds)h($e)}return Jr(M.id,{ok:fe?.cancellable===!0})}if(M.method==="request.ack"){let Ie=xe(M.params,"requestId"),fe=t.get(Ie);if(fe?.completed===!0){for(let $e of fe.subscriptionIds)o.get($e)?.inFlight===fe&&o.delete($e);r(Ie,fe)}return Jr(M.id,{ok:fe?.completed===!0})}let te=new AbortController,Z={controller:te,subscriptionIds:new Set,cancellable:!Vr(M.method),completed:!1};t.set(M.id,Z),C={id:M.id,subscriptionIds:Z.subscriptionIds,inFlight:Z};let pe=i(()=>jp(M,e,s,(Ie,fe)=>{if(te.signal.aborted||t.get(M.id)!==Z){fe.close();return}P(Ie,fe),Z.subscriptionIds.add(Ie),o.set(Ie,{requestId:M.id,inFlight:Z})},h,I,()=>x,g,E,d,l,te.signal),"dispatch"),ue;try{let Ie=Lp(M,e,x,g,pe);ue=Vr(M.method)?await Ie:await Np(Ie,te.signal)}catch(Ie){for(let fe of[...Z.subscriptionIds])h(fe);throw r(M.id,Z),Ie}let qe=lg(M.method,ue);if(Yu(M.method,"result",qe,"internal_error"),wr(M.method)){if(x=Kp(F?.capabilities),y==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(m=e.reverseBridgeHub.attach({principalId:g,connectionId:a,...Xu(F?.clientInfo)!==void 0?{instanceSecret:Xu(F?.clientInfo)}:{},notify:e.notify}),l=m.bridge,c.close()),y==="client"&&e.management!==void 0)try{e.management.attachClient(a),S=!0}catch(Ie){throw m?.close(),m=void 0,Ie}R=!0}return Z.completed=!0,Z.subscriptionIds.size===0&&r(M.id,Z),C=void 0,Jr(M.id,qe)}catch(M){if(C!==void 0){for(let F of[...C.subscriptionIds])h(F);r(C.id,C.inFlight)}return Vn(mg(M),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(),S&&(e.management?.detachClient(a),S=!1)}}}i(ec,"createRuntimeDaemonDispatcher");function Np(e,n){return n.aborted?Promise.reject(n.reason??we("read_cancelled","Runtime daemon request cancelled.")):new Promise((t,r)=>{let o=i(()=>{r(n.reason??we("read_cancelled","Runtime daemon request cancelled."))},"onAbort");n.addEventListener("abort",o,{once:!0}),e.then(t,r).finally(()=>{n.removeEventListener("abort",o)})})}i(Np,"raceRuntimeDaemonRequestCancellation");async function Lp(e,n,t,r,o){let s=i(()=>n.management!==void 0&&Hp(e.method)?n.management.runMutation(e.method,o):o(),"execute");if(!ot(e.method)||n.requireOperationEnvelope!==!0)return s();if(t.operationDeduplication!==!0)throw we("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw we("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw we("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,...Ku(e.params)!==void 0?{resourceId:Ku(e.params)}:{},params:e.params??{}},{externalEffect:!0},s)}i(Lp,"dispatchWithOperation");function Hp(e){return Vr(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}i(Hp,"isManagedRuntimeMutation");function Fp(e,n){let t=Zu.get(e);if(t===void 0)throw we("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw we("unauthorized",`Runtime daemon method requires scope ${t}.`)}i(Fp,"requireRuntimeMethodScope");function qp(e,n){if(e.method!=="permission.respond")return;let t=on(e.params)?e.params:void 0;if(!((t&&on(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw we("unauthorized","Persistent permission grants require scope permission:grant-admin.")}i(qp,"requirePersistentGrantScope");function Ku(e){if(on(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}i(Ku,"operationResourceId");function $p(e,n){if(!on(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}i($p,"parseRuntimeClientPrincipal");function Xu(e){if(!on(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}i(Xu,"parseRuntimeClientInstanceSecret");async function jp(e,n,t,r,o,s,a,c,l,m,R,S){let y=n.runtime,x=n.reverseBridgeHub??R;switch(e.method){case"initialize":case"runtime.initialize":return{identity:y.identity,capabilities:zu(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,Wu(y)),principalId:c,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??Qu]};case"ping":return{ok:!0,runtimeId:y.identity.runtimeId};case"runtime.identity":return y.identity;case"daemon.status":case"runtime.status":return Wp(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 Gp(await(n.management?n.management.preflight():n.preflight?n.preflight():y.status.preflight()),x);case"daemon.management.get":if(!n.management)throw we("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw we("client_upgrade_required","Runtime daemon rollback management is unavailable.");let g=ne(e.params),E={expectedRuntimeId:ce(g,"expectedRuntimeId"),expectedRevision:li(g,"expectedRevision"),expectedOwnerPolicyRevision:li(g,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(E)}case"runtime.capabilities":return zu(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,Wu(y));case"operation.get":{let g=ne(e.params),E=ce(g,"operationId"),d=ce(g,"journalEpoch");if(!n.controlJournal)return y.operations.get({operationId:E,journalEpoch:d});if(d!==n.controlJournal.journalEpoch)throw we("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let p=n.controlJournal.get(E);if(!p||p.principalId!==c)throw we("not_found","Runtime operation was not found.");return Xp(p)}case"config.read":return n.config?zo(await n.config()):y.config.read();case"config.patch":{let g=rc(ne(e.params),"patch");return y.config.patch(g)}case"config.reload":return y.config.reload();case"provider.list":return n.providerList?n.providerList():y.catalog.providers();case"model.list":return n.providerList?Jp(await n.providerList(),He(e.params)):y.catalog.models(Qp(e.params));case"provider.custom.list":return y.catalog.customProviders();case"provider.custom.upsert":{let g=ne(e.params);return y.catalog.upsertCustomProvider(ne(g.config))}case"provider.custom.remove":return y.catalog.deleteCustomProvider(xe(e.params,"name"));case"mcp.server.list":return y.mcp.listServers();case"mcp.server.get":return y.mcp.getServer(xe(e.params,"name"));case"mcp.server.validate":{let g=ne(e.params);return y.mcp.validateServer(ce(g,"name"),g.config)}case"mcp.server.upsert":{let g=ne(e.params);return y.mcp.upsertServer(ce(g,"name"),ne(g.config))}case"mcp.server.delete":case"mcp.server.remove":return y.mcp.deleteServer(xe(e.params,"name"));case"mcp.server.reload":return y.mcp.reloadServers();case"mcp.tool.list":return y.mcp.listTools(Zp(e.params));case"extension.list":return y.catalog.extensions();case"extension.reload":return y.catalog.reloadExtensions();case"command.list":{let g=He(e.params),E=typeof g?.projectRoot=="string"?g.projectRoot:void 0;return y.catalog.commands(E)}case"command.resolve":{let g=ne(e.params);return y.catalog.resolveCommand({name:ce(g,"name"),...typeof g.projectRoot=="string"?{projectRoot:g.projectRoot}:{}})}case"skill.list":return y.catalog.skills(eg(e.params));case"skill.describe":case"skill.read":{let g=ne(e.params);return y.catalog.describeSkill({name:ce(g,"name"),...typeof g.projectRoot=="string"?{projectRoot:g.projectRoot}:{}})}case"artifact.create":return y.artifacts.create(ng(e.params));case"artifact.get":return y.artifacts.get(xe(e.params,"artifactId"));case"artifact.delete":return y.artifacts.delete(xe(e.params,"artifactId"));case"agentRegistrations.list":return ci(n),ui(y),y.admin.agentRegistrations.list();case"agentRegistrations.upsert":{ci(n),ui(y);let g=ne(e.params);return y.admin.agentRegistrations.upsert(ne(g.registration),{expectedConfigurationRevision:Ko(g),expectedManagementOwner:Xo(g)})}case"agentRegistrations.setEnabled":{ci(n),ui(y);let g=ne(e.params),E=Qe(g,"claimOwner");if(E!==void 0&&E.length===0)throw we("invalid_request","Expected non-empty optional string param: claimOwner");return y.admin.agentRegistrations.setEnabled(ce(g,"agentId"),cg(g,"enabled"),{expectedConfigurationRevision:Ko(g),expectedManagementOwner:Xo(g),...E?{claimOwner:E}:{}})}case"agentRegistrations.remove":ci(n),ui(y);{let g=ne(e.params);return y.admin.agentRegistrations.remove(ce(g,"agentId"),{expectedConfigurationRevision:Ko(g),expectedManagementOwner:Xo(g)})}case"agents.listDispatchable":return y.agents.listDispatchable(ne(e.params));case"agents.describe":{let g=ne(e.params);return y.agents.describe(ce(g,"agentId"),ne(g.query))}case"agents.preflight":return y.agents.preflight(ne(e.params));case"agents.tree":return y.agents.tree(xe(e.params,"sessionId"));case"agents.detail":{let g=ne(e.params);return y.agents.detail(ce(g,"sessionId"),ce(g,"actorPath"))}case"agents.spawn":{let g=ne(e.params);return y.agents.spawn(ce(g,"sessionId"),ne(g.input))}case"agents.send":{let g=ne(e.params),E=Qe(g,"classification");if(E!==void 0&&E!=="public"&&E!=="internal"&&E!=="sensitive")throw we("invalid_params","Invalid Agent message classification.");return await y.agents.send(ce(g,"sessionId"),ce(g,"actorPath"),ce(g,"content"),E),{ok:!0}}case"agents.followup":{let g=ne(e.params),E=jn(g,"expectedRevision");return y.agents.followup(ce(g,"sessionId"),ce(g,"actorPath"),ce(g,"objective"),E===void 0?void 0:{expectedRevision:E})}case"agents.interrupt":{let g=ne(e.params);return await y.agents.interrupt(ce(g,"sessionId"),ce(g,"actorPath"),Qe(g,"reason")),{ok:!0}}case"agents.output":{let g=ne(e.params);return y.agents.output(ce(g,"sessionId"),ce(g,"actorPath"),Qe(g,"turnId"))}case"agents.events":{let g=ne(e.params);return y.agents.events(ce(g,"sessionId"),jn(g,"afterSequence"))}case"agents.wait":{let g=ne(e.params);return y.agents.wait(ce(g,"sessionId"),jn(g,"afterSequence"),jn(g,"timeoutMs"),{signal:S})}case"session.create":return y.sessions.create(He(e.params));case"session.load":return y.sessions.load(xe(e.params,"sessionId"),$n(e.params,S));case"session.list":return y.sessions.list(He(e.params));case"session.status":return y.sessions.status(xe(e.params,"sessionId"));case"session.transcript":{let g=await y.sessions.transcript(xe(e.params,"sessionId"),$n(e.params,S));if(g!==null&&Buffer.byteLength(JSON.stringify(g),"utf8")>$u)throw we("invalid_request","Transcript is too large for the legacy endpoint; use session.transcript.page and session.transcript.entryChunk.");return g}case"session.transcript.page":return y.sessions.transcriptPage(ne(e.params),$n(e.params,S));case"session.transcript.entryChunk":return y.sessions.transcriptEntryChunk(ne(e.params),$n(e.params,S));case"session.transcript.search":return y.sessions.transcriptSearch(ne(e.params),$n(e.params,S));case"session.conversation":{let g=await y.sessions.conversation(xe(e.params,"sessionId"),$n(e.params,S));if(g!==null&&Buffer.byteLength(JSON.stringify(g),"utf8")>$u)throw we("invalid_request","Conversation history is too large for the direct endpoint; use session.conversation.page and session.conversation.entryChunk.");return g}case"session.conversation.page":return y.sessions.conversationPage(ne(e.params),$n(e.params,S));case"session.conversation.entryChunk":return y.sessions.conversationEntryChunk(ne(e.params),$n(e.params,S));case"session.observe":{let g=Uo(),E=xe(e.params,"sessionId"),d=await y.sessions.observe(E,p=>s(g,$o(p,x)),$n(e.params,S));if(S.aborted)throw d.close(),we("read_cancelled","Runtime Session observation was cancelled.");return r(g,d),d.invalidated.then(p=>{try{n.notify?.(Ot("observation.invalidated",{subscriptionId:g,sessionId:E,invalidation:p}))}finally{o(g)}}).catch(p=>{ye({source:"runtime.daemon.server",level:"error",message:`Failed to deliver Session observation invalidation for ${E}.`,detail:p})}),{subscriptionId:g,snapshot:zp(d.snapshot,x)}}case"session.diagnostics":return y.sessions.diagnostics(ne(e.params));case"session.fork":return y.sessions.fork(ne(e.params));case"session.notice.append":return y.sessions.appendNotice(ne(e.params));case"session.rewind":return y.sessions.rewind(ne(e.params));case"session.active_entry.set":case"session.activeEntry.set":return y.sessions.setActiveEntry(ne(e.params));case"session.compact":return y.sessions.compact(ne(e.params));case"session.archive":return await y.sessions.archive(xe(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await y.sessions.unarchive(xe(e.params,"sessionId")),{ok:!0};case"session.delete":return await y.sessions.delete(xe(e.params,"sessionId")),{ok:!0};case"session.settings.get":return y.sessions.getSettings(xe(e.params,"sessionId"));case"session.settings.getVersioned":return y.sessions.getSettingsVersioned(xe(e.params,"sessionId"));case"session.autoMode.getStats":return y.sessions.getAutoModeStats(xe(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw we("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let g=ne(e.params);return y.sessions.updateSettings(ce(g,"sessionId"),ne(g.patch))}case"session.settings.updateVersioned":{let g=ne(e.params);return y.sessions.updateSettingsVersioned(ce(g,"sessionId"),ne(g.patch),{expectedRevision:li(g,"expectedRevision")})}case"run.start":{let g=ne(e.params),E=ce(g,"sessionId"),d=`run_${Date.now().toString(36)}_${Wt().replace(/-/g,"").slice(0,8)}`,p=await Uu({params:g,sessionId:E,trustedRunId:d,principalId:c,clientName:l,clientVersion:m,operationId:e.operation?.operationId,reverseBridge:R}),h=await y.runs.start(p);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 g=ne(e.params),E=ce(g,"sessionId"),d=ce(g,"afterRunId"),p=ce(g,"delivery"),h=await y.runs.get(d);if(h.sessionId!==E)throw we("conflict",`Runtime continuation target ${d} does not belong to session ${E}.`);if(!Bp(h.phase))return{accepted:!1,delivery:p,sessionId:E,afterRunId:d,reason:"stale_run"};if(p==="interrupt"){if(h.phase==="queued")return{accepted:!1,delivery:p,sessionId:E,afterRunId:d,reason:"stale_run"};if(g.credential!==void 0||g.hostTools!==void 0)throw we("invalid_params","Interrupt input cannot replace active-run credential or host-tool bindings.");let A=`input_${Date.now().toString(36)}_${Wt().replace(/-/g,"").slice(0,8)}`;return y.runs.submitInput({...g,sessionId:E,afterRunId:d,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)}_${Wt().replace(/-/g,"").slice(0,8)}`,I=await Uu({params:g,sessionId:E,trustedRunId:P,principalId:c,clientName:l,clientVersion:m,operationId:e.operation?.operationId,reverseBridge:R}),b=await y.runs.submitInput(I);if(b.accepted&&b.delivery==="after_turn"){let A=y.runs.await(b.runId);t.remember(b.runId,A)}return b}case"run.get":return yt(await y.runs.get(xe(e.params,"runId")),x);case"run.list":return(await y.runs.list(He(e.params))).map(g=>yt(g,x));case"run.await":{let g=xe(e.params,"runId"),E=t.get(g);return E||y.runs.await(g)}case"run.abort":return y.runs.abort(xe(e.params,"runId"));case"run.model.set":return Gu(y,e.params);case"run.setModel":return Gu(y,e.params);case"run.provider.set":{let g=ne(e.params);return await y.runs.setProvider(ce(g,"runId"),ce(g,"provider")),{ok:!0}}case"run.setProvider":{let g=ne(e.params);return await y.runs.setProvider(ce(g,"runId"),ce(g,"provider")),{ok:!0}}case"run.reasoning.set":return Vu(y,e.params);case"run.setReasoning":return Vu(y,e.params);case"event.subscribe":{let g=He(e.params)??{},E=He(g.filter);await Yn(y,E?.sessionId);let d=Uo(),p=y.events.subscribe(E??{},h=>{s(d,$o(h,x))});return r(d,p),{subscriptionId:d}}case"event.unsubscribe":return{ok:o(xe(e.params,"subscriptionId"))};case"event.replay":{let g=He(e.params);return await Yn(y,g?.sessionId),Up(await y.events.replay(g),a()).map(E=>$o(E,x))}case"permission.list":case"permission.listPending":{let g=He(e.params);return await Yn(y,g?.sessionId),y.permissions.listPending(g)}case"permission.request":{let g=ne(e.params);return await Yn(y,g.sessionId),y.permissions.request(g)}case"permission.respond":{let g=ne(e.params),E=Qe(g,"runId");return y.permissions.respond(ce(g,"requestId"),ne(g.decision),E!==void 0?{runId:E}:void 0)}case"permission.grants.list":return y.permissions.listGrants();case"permission.grants.revoke":{let g=ne(e.params);return y.permissions.revokeGrant(ce(g,"grantId"),li(g,"expectedRevision"))}case"user_input.listPending":{let g=He(e.params);return await Yn(y,g?.sessionId),y.userInputs.listPending(g)}case"user_input.respond":{let g=ne(e.params),E=jn(g,"expectedRevision"),d=Qe(g,"runId");return y.userInputs.respond(ce(g,"requestId"),g.answer,E!==void 0||d!==void 0?{...E!==void 0?{expectedRevision:E}:{},...d!==void 0?{runId:d}:{}}:void 0)}case"user_input.dismiss":{let g=ne(e.params),E=jn(g,"expectedRevision"),d=Qe(g,"runId");return y.userInputs.dismiss(ce(g,"requestId"),E!==void 0||d!==void 0?{...E!==void 0?{expectedRevision:E}:{},...d!==void 0?{runId:d}:{}}:void 0)}case"credential.register":{let g=ne(e.params);return R.registerCredential({leaseId:ce(g,"leaseId"),providers:og(g,"providers"),...Qe(g,"expiresAt")!==void 0?{expiresAt:Qe(g,"expiresAt")}:{}})}case"credential.get":return R.getCredential(xe(e.params,"leaseId"));case"credential.revoke":return R.revokeCredential(xe(e.params,"leaseId"));case"credential.supply":{let g=ne(e.params);return{ok:R.supplyCredential({requestId:ce(g,"requestId"),...Qe(g,"credential")!==void 0?{credential:Qe(g,"credential")}:{},...Qe(g,"error")!==void 0?{error:Qe(g,"error")}:{}})}}case"host_tool.register":{let g=ne(e.params);return R.registerHostTools({leaseId:ce(g,"leaseId"),tools:sg(g.tools)})}case"host_tool.get":return R.getHostTools(xe(e.params,"leaseId"));case"host_tool.invocation.get":return R.getHostToolInvocation(xe(e.params,"invocationId"));case"host_tool.revoke":return R.revokeHostTools(xe(e.params,"leaseId"));case"host_tool.complete":{let g=ne(e.params);return{ok:R.completeHostTool({invocationId:ce(g,"invocationId"),...g.result!==void 0?{result:ne(g.result)}:{},...Qe(g,"error")!==void 0?{error:Qe(g,"error")}:{}})}}case"workflow.list":return y.workflows.list(He(e.params));case"workflow.get":return y.workflows.get(xe(e.params,"runId"));case"workflow.subscribe":{let g=He(e.params)??{},E=He(g.filter),d=Uo(),p=y.workflows.subscribe(E??{},h=>{s(d,h)});return r(d,p),{subscriptionId:d}}case"workflow.unsubscribe":return{ok:o(xe(e.params,"subscriptionId"))};case"workflow.pause":return y.workflows.pause(xe(e.params,"runId"));case"workflow.resume":return y.workflows.resume(xe(e.params,"runId"));case"workflow.stop":return y.workflows.stop(xe(e.params,"runId"));case"learning.list":return Fn(y.learning,c).list(He(e.params));case"learning.get":return Fn(y.learning,c).get(xe(e.params,"nameOrSlug"));case"learning.snapshot":return Fn(y.learning,c).getSnapshot();case"learning.events":return Fn(y.learning,c).events(jn(He(e.params)??{},"afterRevision"));case"learning.acknowledge":return await Fn(y.learning,c).acknowledge(xe(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let g=ne(e.params);return await Fn(y.learning,c).snooze(ce(g,"nameOrSlug"),ce(g,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let g=Fn(y.learning,c),E=xe(e.params,"nameOrSlug");return e.method==="learning.reject"?await g.reject(E):e.method==="learning.disable"?await g.disable(E):e.method==="learning.rollback"?await g.rollback(E):e.method==="learning.review"?await g.review(E):await g.trust(E),{ok:!0}}case"learning.promote":{let g=ne(e.params),E=ce(g,"scope");if(E!=="user")throw we("invalid_params","Learning promotion scope must be user.");return await Fn(y.learning,c).promote(ce(g,"nameOrSlug"),E),{ok:!0}}case"context.budget.get":return jo(a()),await Yn(y,Qe(He(e.params)??{},"sessionId")),Bo(y,"context.budget.snapshot",He(e.params));case"tool.exposure.preview":return jo(a()),await Yn(y,Qe(He(e.params)??{},"sessionId")),Bo(y,"tool.exposure.planned",He(e.params));case"provider.cache.diagnostics.get":return jo(a()),await Yn(y,Qe(He(e.params)??{},"sessionId")),Bo(y,"provider.cache.diagnostics",He(e.params));default:throw we("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}i(jp,"dispatchRuntimeDaemonRequest");async function Uu(e){let n=He(e.params.credential),t=He(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:ce(n,"leaseId"),provider:ce(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),o=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:ce(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),s=xt(),a=o===void 0?void 0:s===null?o:ug(o,s),c=He(e.params.options)??{},l=He(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:ce(n,"provider")}:{},...e.params.options!==void 0||a!==void 0?{options:{...m,...a===void 0?{}:{extensionRuntime:a}}}:{}}}i(Uu,"bindTrustedRunInput");function Bp(e){return e==="queued"||e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(Bp,"isActiveRuntimeRunPhase");function Kp(e){return on(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(Kp,"parseRuntimeClientCapabilities");function zu(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.runtimeEventCoalescing,delete R.runtimeAutoModeGuardrail,delete R.sandboxRuntime,delete R.runLifecycleControl;let S=Fo();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:jr(),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:Fr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...l?{daemonOrphanExit:{version:1,idleOnly:!0,bootstrapGrace:!0}}:{},...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:_p,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:S.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!s,stableClientResume:s,invocationStatusQuery:s,invocationReplay:!1,invocationTimeoutMs:S.callTimeoutMs,maxResultBytes:S.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(zu,"runtimeDaemonCapabilities");function Wu(e){let n=e.capabilities?.runtimeEventCoalescing;return on(n)&&typeof n.version=="number"&&n.version>=1}i(Wu,"runtimeImplementsEventCoalescing");function Xp(e){return e?{...e}:{}}i(Xp,"publicOperationReceipt");function ui(e){if(!e.agents.enabled)throw we("method_not_found","Runtime external agent executor plane is not enabled.")}i(ui,"requireExternalAgentsEnabled");function ci(e){if(e.allowAgentRegistrationAdmin!==!0)throw we("permission_denied","Runtime daemon host denied Agent registration administration.")}i(ci,"requireAgentRegistrationAdmin");function Up(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!tc(t))}i(Up,"filterReplayForClientCapabilities");async function Yn(e,n){n!==void 0&&await e.sessions.transcript(n)}i(Yn,"assertAdmittedSessionId");function zp(e,n){return{...e,runs:e.runs.map(t=>yt(t,n))}}i(zp,"augmentObservationRunRequirements");function Wp(e,n){return!on(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>nc(t)?yt(t,n):t)}}i(Wp,"augmentStatusRunRequirements");function Gp(e,n){return{...e,activeRuns:e.activeRuns.map(t=>yt(t,n)),queuedRuns:e.queuedRuns.map(t=>yt(t,n))}}i(Gp,"augmentPreflightRunRequirements");function $o(e,n){return nc(e.payload)?{...e,payload:yt(e.payload,n)}:e}i($o,"augmentRuntimeEventRequirements");function yt(e,n){let t=n?.getRunRequirements(e.runId);return t===void 0?e:Vp(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(yt,"augmentRunRequirements");function nc(e){return on(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}i(nc,"isRuntimeRunStatus");function Vp(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(Vp,"isTerminalRuntimeRunPhase");function jo(e){if(e.contextDiagnostics!==!0)throw we("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}i(jo,"requireContextDiagnosticsCapability");function tc(e){return on(e)?e.type==="context.budget.snapshot"||e.type==="provider.cache.diagnostics"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}i(tc,"isContextDiagnosticRuntimeEvent");async function Bo(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 S=R.payload;if(S===null||typeof S!="object"||Array.isArray(S))return o===void 0&&s===void 0;let y=S,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 g=`${r.sessionId}/agent/`;return typeof y.contextId!="string"?!1:s===void 0?y.contextId.startsWith(g):y.contextId===`${g}${encodeURIComponent(s)}`})?.payload??null}i(Bo,"latestRuntimeDiagnosticPayload");async function Gu(e,n){let t=ne(n);return await e.runs.setModel(ce(t,"runId"),Qe(t,"model")),{ok:!0}}i(Gu,"setRunModel");async function Vu(e,n){let t=ne(n);return await e.runs.setReasoning(ce(t,"runId"),Qe(t,"reasoning")),{ok:!0}}i(Vu,"setRunReasoning");function Jp(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=>on(s)&&s.name===r);return on(o)?{provider:r,models:Array.isArray(o.models)?o.models:[]}:{provider:r,models:[]}}return t.flatMap(o=>!on(o)||typeof o.name!="string"?[]:[{provider:o.name,models:Array.isArray(o.models)?o.models:[]}])}i(Jp,"listRuntimeModels");function zo(e){return Array.isArray(e)?e.map(n=>zo(n)):on(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Yp(n)?"[redacted]":zo(t)])):e}i(zo,"redactRuntimeConfig");function Yp(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(Yp,"isSensitiveConfigKey");function He(e){if(e!==void 0)return ne(e)}i(He,"optionalRecord");function rc(e,n){return ne(e[n])}i(rc,"requireRecordField");function Qp(e){let n=He(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}i(Qp,"parseModelListFilter");function Zp(e){let n=He(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}i(Zp,"parseMcpToolListFilter");function eg(e){let n=He(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}i(eg,"parseSkillListFilter");function ng(e){let n=ne(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw we("invalid_request","Expected artifact kind: image | file | video");let r=ce(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}:{},...tg(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}i(ng,"parseArtifactCreateInput");function tg(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}i(tg,"isRuntimeArtifactSource");function rg(e){return on(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}i(rg,"parseRuntimeClientName");function ig(e){return on(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}i(ig,"parseRuntimeClientVersion");function og(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw we("invalid_request",`Expected string array param: ${n}`);return t}i(og,"requireStringArrayField");function sg(e){if(!Array.isArray(e))throw we("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=ne(n),r=ce(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw we("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:ce(t,"name"),description:ce(t,"description"),inputSchema:rc(t,"inputSchema"),sideEffect:r}})}i(sg,"parseRuntimeHostToolDescriptors");function Ju(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(Ju,"selectCapabilityRuntimes");async function ag(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(ag,"searchCapabilityRuntimeSnapshot");function dg(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(dg,"mergeCapabilitySearchSnapshots");function ug(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,o){let s=Ju(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=Ju(e,n,t,o?.server),a=await Promise.all(s.map(c=>ag(c,t,r,o)));return dg(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(ug,"mergeExtensionRuntimeContracts");function on(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(on,"isRecord");function ne(e){if(!e||typeof e!="object"||Array.isArray(e))throw we("invalid_request","Expected params to be an object.");return e}i(ne,"requireRecord");function xe(e,n){return ce(ne(e),n)}i(xe,"requireStringParam");function ce(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw we("invalid_request",`Expected string param: ${n}`);return t}i(ce,"requireStringField");function cg(e,n){let t=e[n];if(typeof t!="boolean")throw we("invalid_request",`Expected boolean param: ${n}`);return t}i(cg,"requireBooleanField");function Qe(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw we("invalid_request",`Expected optional string param: ${n}`);return t}}i(Qe,"optionalStringField");function Ko(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw we("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}i(Ko,"optionalExpectedConfigurationRevision");function Xo(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw we("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}i(Xo,"optionalExpectedManagementOwner");function jn(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw we("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}i(jn,"optionalIntegerField");function $n(e,n){let t=jn(ne(e),"timeoutMs");return{signal:n,...t===void 0?{}:{timeoutMs:t}}}i($n,"runtimeReadOptions");function li(e,n){let t=jn(e,n);if(t===void 0)throw we("invalid_request",`Expected non-negative integer param: ${n}`);return t}i(li,"requireIntegerField");function we(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(we,"daemonError");function Uo(){return`sub_${Wt().replace(/-/g,"").slice(0,12)}`}i(Uo,"createSubscriptionId");function Yu(e,n,t,r){let o=Ut(di[e][n],t,n);if(o.length!==0)throw we(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:o})}i(Yu,"validateDaemonMethodValue");function lg(e,n){return n===void 0?null:e!=="run.await"||!on(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(lg,"serializeRuntimeDaemonMethodResult");function mg(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 pa)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"&&fg(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}i(mg,"normalizeRuntimeDaemonError");function fg(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(fg,"isRuntimeDaemonErrorCode");import{createHash as pg,randomUUID as sc}from"node:crypto";import*as ze from"node:fs";import ic from"node:path";var bn=class extends Error{static{i(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function ac(e){ze.mkdirSync(e.rootDir,{recursive:!0});let n=ic.join(e.rootDir,"journal-meta.json"),t=ic.join(e.rootDir,"control.jsonl"),r=Ig(n),o=r.meta,s=Sg(t),a=s.records,c=new Map,l=s.trusted&&r.trusted?"healthy":"control_history_untrusted";return l==="healthy"&&vg(a,t),{journalEpoch:o.journalEpoch,get health(){return l},execute(m,R,S){if(l!=="healthy")return Promise.reject(new bn("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{wg(m,o.journalEpoch);let y=bg(m.params),x=a.get(m.operationId);if(x){hg(x,m,y);let E=c.get(m.operationId);return E||Rg(x)}let g=gg(t,a,m,y,R.externalEffect===!0,S,()=>{l="control_history_untrusted"});return c.set(m.operationId,g),g.finally(()=>c.delete(m.operationId)).catch(()=>{}),g}catch(y){return Promise.reject(y)}},get(m){return a.get(m)}}}i(ac,"createRuntimeControlJournal");async function gg(e,n,t,r,o,s,a){let c=yg(t,r,"accepted");dc(e,c),n.set(t.operationId,c),o&&mi(e,n,c,"dispatched");let l;try{l=await s()}catch(m){let R=Eg(m);try{mi(e,n,c,"rejected",{error:R})}catch{a()}throw m}try{return mi(e,n,c,"applied",{result:l}).result}catch{throw a(),n.set(t.operationId,{...c,state:"unknown",updatedAt:new Date().toISOString()}),new bn("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}i(gg,"executeNewOperation");function mi(e,n,t,r,o={}){let s={type:"operation",...t,state:r,...o,updatedAt:new Date().toISOString()};return dc(e,s),n.set(s.operationId,s),s}i(mi,"updateOperation");function yg(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(yg,"operationRecord");function Rg(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new bn(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 bn(n,`Runtime operation is ${e.state}; it will not be replayed.`))}i(Rg,"replayOperation");function hg(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 bn("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}i(hg,"assertMatchingOperation");function wg(e,n){if(e.journalEpoch!==n)throw new bn("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new bn("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new bn("invalid_operation","Runtime operation identity is incomplete.")}i(wg,"validateOperationInput");function vg(e,n){for(let t of[...e.values()])t.state!=="accepted"&&t.state!=="dispatched"||mi(n,e,t,t.state==="dispatched"?"unknown":"interrupted")}i(vg,"recoverUnfinished");function Sg(e){let n=new Map;if(!ze.existsSync(e))return{trusted:!0,records:n};let t=ze.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let o=JSON.parse(r);if(!xg(o))return{trusted:!1,records:n};n.set(o.operationId,o)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}i(Sg,"loadOperationRecords");function Ig(e){if(ze.existsSync(e)){try{let t=JSON.parse(ze.readFileSync(e,"utf8"));if(Pg(t))return{meta:t,trusted:!0}}catch{}return{meta:oc(),trusted:!1}}let n=oc();return kg(e,n),{meta:n,trusted:!0}}i(Ig,"loadOrCreateMeta");function oc(){return{version:1,journalEpoch:`je_${sc().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}i(oc,"createJournalMeta");function dc(e,n){let t=`${JSON.stringify(n)}
22
+ `,r=ze.openSync(e,"a",384);try{ze.writeFileSync(r,t,"utf8"),ze.fsyncSync(r)}finally{ze.closeSync(r)}}i(dc,"appendRecord");function kg(e,n){let t=`${e}.${process.pid}.${sc()}.tmp`,r=ze.openSync(t,"wx",384);try{ze.writeFileSync(r,`${JSON.stringify(n,null,2)}
23
+ `,"utf8"),ze.fsyncSync(r)}finally{ze.closeSync(r)}ze.renameSync(t,e)}i(kg,"writeJsonAtomic");function bg(e){return pg("sha256").update(Go(e)).digest("hex")}i(bg,"digestCanonical");function Go(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new bn("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(Go).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)}:${Go(n[r])}`).join(",")}}`}throw new bn("invalid_operation","Operation contains a non-JSON value.")}i(Go,"canonicalJson");function Eg(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(Eg,"normalizeOperationError");function Pg(e){return uc(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}i(Pg,"isJournalMeta");function xg(e){return uc(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&Cg(e.state)&&typeof e.updatedAt=="string":!1}i(xg,"isOperationRecord");function Cg(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}i(Cg,"isOperationState");function uc(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(uc,"isRecord");function cc(e){return new Vo(e)}i(cc,"createRuntimeDaemonManagementController");var Vo=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 yn("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 yn("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 Tg(r,this.clients.size)}throw yn("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=Ue(this.input.paths.lockFile);if(o===void 0||o.runtimeId!==this.input.runtime.identity.runtimeId||o.kind!=="daemon")throw yn("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:In(this.input.paths),owner:o,preflight:r,...this.input.integrationStatuses?{integrations:Ag(this.input.integrationStatuses())}:{}}}throw yn("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 yn("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=Jd(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw yn("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 yn("conflict","Runtime daemon management is closed.");if(this.draining)throw yn("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw yn("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw yn("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 yn("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw yn("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{gn(this.input.paths,n,t,r)}catch{}}};function Ag(e){let n=structuredClone(e);return{state:n.some(t=>t.diagnostic!==void 0)?"degraded":"healthy",domains:n}}i(Ag,"integrationHealth");function Tg(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(Tg,"withLogicalClients");function yn(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(yn,"managementError");async function fc(e){pn(e.paths);let n=Qd();Zd(e.paths,n);let t=fi(e,"starting");qt(e.paths,t),gn(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Bs(A=>{Dg(e.paths,A)}),o,s,a=!1,c=i(()=>{if(s===void 0){a=!0;return}s()},"requestStop"),l=Wo(),m=ac({rootDir:lc.join(e.paths.rootDir,"control")}),R=qu({invocationStateFile:lc.join(e.paths.rootDir,"host-tool-invocations.json")}),S=cc({runtime:e.runtime,paths:e.paths,requestStop:c,...e.orphanExitMs!==void 0?{orphanExitMs:e.orphanExitMs}:{},...e.integrationStatuses?{integrationStatuses:e.integrationStatuses}:{}}),y;try{o=await cu({endpoint:e.endpoint,createDispatcher:i(C=>ec({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:S,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:i(()=>({logFile:e.paths.logFile,entries:eu(e.paths)}),"logs")}),"createDispatcher")});let A=process.env.KODAX_INTERNAL_DAEMON_TEST_READY_DELAY_MS;A!==void 0&&await Mg(A),y=fi(e,"ready"),qt(e.paths,y),S.armOrphanExitAfterReady(),gn(e.paths,"info","Runtime daemon ready.",{runtimeId:y.runtimeId,endpoint:y.endpoint})}catch(A){gn(e.paths,"error","Runtime daemon failed to start.",{error:En(A).message});let C=!0;try{await o?.close()}catch(M){C=!1,gn(e.paths,"error","Runtime daemon transport cleanup failed.",{error:En(M).message})}throw S.close(),l.clear(),R.close(),r(),C?await mc(e.paths,e.lock):qt(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),A}let x=!1,g,E=!1,d=!1,p=!1,h=!1,P,I=new Promise(A=>{P=A}),b=i(()=>{if(x)return Promise.resolve();if(g)return g;let A=(async()=>{let C=[];if(!h)try{qt(e.paths,fi(e,"stopping")),gn(e.paths,"info","Runtime daemon stopping.")}catch(M){C.push(`state transition: ${En(M).message}`)}if(!E)try{await o?.close(),E=!0}catch(M){C.push(`transport close: ${En(M).message}`)}if(d||(S.close(),R.close(),l.clear(),d=!0),!p)try{await e.runtime.close(),p=!0}catch(M){C.push(`Runtime close: ${En(M).message}`)}try{gn(e.paths,"info","Runtime daemon host stopped.")}catch(M){C.push(`stop log: ${En(M).message}`)}if(r(),E&&p&&!h){let M=await mc(e.paths,e.lock),F=Ue(e.lock.file),te=F?.runtimeId===e.lock.owner.runtimeId&&F.pid===e.lock.owner.pid&&F.createdAt===e.lock.owner.createdAt;!M&&te?C.push("owner release: the daemon still owns its profile lock"):h=!0}else if(!E||!p)try{qt(e.paths,{...fi(e,"unhealthy"),lastError:C.join("; ")})}catch(M){C.push(`unhealthy state: ${En(M).message}`)}if(C.length>0){try{gn(e.paths,"error","Runtime daemon host stopped with cleanup failures.",{failures:C})}catch(M){C.push(`failure log: ${En(M).message}`)}throw new Error(`Runtime daemon cleanup failed: ${C.join("; ")}`)}x=!0,P?.()})();return g=A,A.finally(()=>{g===A&&(g=void 0),r()}).catch(()=>{}),A},"closeHost");return s=i(()=>{try{gn(e.paths,"info","Runtime daemon stop requested.")}catch(C){ye({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:En(C)})}setTimeout(()=>{b().catch(C=>{ye({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:En(C)})})},0).unref?.()},"scheduleStop"),a&&s(),{endpoint:e.endpoint,state:y,closed:I,unref(){o?.unref()},close:b}}i(fc,"startRuntimeDaemonHost");async function mc(e,n){for(let t=0;t<50;t+=1){try{if(ru(e,n))return!0}catch(o){ye({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:En(o)})}let r=Ue(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{gn(e,"error","Runtime daemon ownership release timed out.")}catch(t){ye({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:En(t)})}return!1}i(mc,"releaseHostOwnership");function Dg(e,n){try{gn(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(Dg,"appendRuntimeDiagnostic");function fi(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(fi,"createHostState");async function Mg(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(Mg,"delayInternalDaemonReadyForTest");function En(e){return e instanceof Error?e:new Error(String(e))}i(En,"normalizeHostError");async function pc(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=Ng(e.homeDir),r=Jo.resolve(e.configHome??Jo.join(t,".kodax")),o=ut(r,n);oi(o);let s=e.endpoint??Xt(n,Ft(t,r)),a={runtimeId:`rt_${_g().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon"},c=await _o(o,a,e.healthCheck);if(c.kind==="attach"){let l=ft(c.state);return yc(o,l,e.connectTimeoutMs)}if(c.kind==="wait")return Lg(o,s,a,{...e,profile:n});if(c.kind==="unhealthy")throw new Error(`Runtime daemon is ${c.health}; refusing to take ownership.`);return gc(o,s,a,c.lock,e)}i(pc,"acquireRuntimeDaemonLease");function Ng(e){return Jo.resolve(e??Og.homedir())}i(Ng,"resolveRuntimeDaemonHomeDir");async function Lg(e,n,t,r){let o=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=o;){let s=await _o(e,t,r.healthCheck);if(s.kind==="attach")return yc(e,ft(s.state),r.connectTimeoutMs);if(s.kind==="claim")return gc(e,n,t,s.lock,r);if(s.kind==="unhealthy")throw new Error(`Runtime daemon is ${s.health}; refusing to take ownership.`);await Fg(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}i(Lg,"waitForDaemonLease");async function gc(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 fc({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 Hg(e,n,l,c)}catch(l){throw await c.close(),l}}catch(c){throw a||si(r),await s?.close(),c}}i(gc,"createClaimedDaemonLease");async function yc(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(yc,"createAttachedLease");function Hg(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(Hg,"createOwnedLease");function Fg(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}i(Fg,"delay");import{spawn as qg}from"node:child_process";import{appendFileSync as iS,closeSync as Sc,existsSync as pi,ftruncateSync as $g,openSync as Ic,readSync as jg,renameSync as Bg,statSync as kc,unlinkSync as Kg,writeSync as Xg}from"node:fs";import{fileURLToPath as Ug}from"node:url";import zg from"node:os";import Rn from"node:path";var gi=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"},Rc=1e3,bc=256*1024;function Ri(e){return Rn.join(e.rootDir,"bootstrap.log")}i(Ri,"runtimeDaemonBootstrapLogPath");function Wg(e,n=bc){pn(e);let t=Ri(e),r=Math.max(1,n),o=`${t}.1`;return Yo(o,r),pi(t)&&kc(t).size>=r&&(Yo(t,r),pi(o)&&Kg(o),Bg(t,o)),Ic(t,"a",384)}i(Wg,"openRuntimeDaemonBootstrapLog");function Gg(e,n=bc){Yo(Ri(e),Math.max(1,n))}i(Gg,"capRuntimeDaemonBootstrapLog");function Yo(e,n){if(!pi(e))return;let t=kc(e).size;if(t<=n)return;let r=Ic(e,"r+");try{let o=Buffer.allocUnsafe(n),s=0;for(;s<o.length;){let a=jg(r,o,s,o.length-s,t-n+s);if(a===0)break;s+=a}$g(r,0),s>0&&Xg(r,o,0,s,0)}finally{Sc(r)}}i(Yo,"capFileToTail");var Bn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function Ec(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=Rn.resolve(e.homeDir??zg.homedir()),r=Rn.resolve(e.configHome??Rn.join(t,".kodax")),o=ut(r,n);oi(o);let s=Xt(o.profile,Ft(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 Rr(o,e.healthCheck),c=$t(a);if(c==="healthy"&&a.state){let S=a.state.status==="ready"?{...a,state:a.state}:await Jg(o,e,a);return hc(o,ft(S.state),!1,e)}if(c==="unhealthy"||c==="mismatch")throw new Error(`Runtime daemon is ${c}; refusing to start a competing owner.`);let l=await ey({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.orphanExitMs}),m=await Vg(o,e,l),R=ft(m.state);return hc(o,R,m.state.pid===l.pid,e)}i(Ec,"acquireRuntimeDaemonProcessLease");async function hc(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(hc,"connectProcessLease");async function Vg(e,n,t,r=Rr){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let s=await Yg(e,n,t,r),a=$t(s);if(a==="healthy"&&s.state?.status==="ready")return s.state.pid===t.pid?t.unref():await ny(t),{...s,state:s.state};if(a==="mismatch")throw new Bn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let c=o-Date.now();if(c<=0)throw xc(e);await Qg(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{Gg(e)}catch{}throw s}}i(Vg,"waitForHealthyDaemonStartup");async function Jg(e,n,t,r=Rr){let o=Date.now()+(n.startupTimeoutMs??6e4),s=t.state;if(s===void 0)throw new Bn("Runtime daemon owner state disappeared before it reached ready.","identity_mismatch");let a=t;for(;;){let c=$t(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 Bn("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 Bn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let l=o-Date.now();if(l<=0)throw xc(e);await Rt(yi(Math.min(Math.max(1,n.pollIntervalMs??100),l)),n.startupSignal),a=await Rt(r(e,n.healthCheck),n.startupSignal)}}i(Jg,"waitForReadyRuntimeDaemonOwner");async function Yg(e,n,t,r){let o=await Rt(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(Qo(e,t))return r(e,n.healthCheck);if(o.exit.code===0&&o.exit.signal===null){let s=Math.min(Rc,n.startupTimeoutMs??Rc),a=Date.now()+s;for(;Date.now()<=a;){let c=await Rt(r(e,n.healthCheck),n.startupSignal);if($t(c)!=="missing"||Qo(e,t))return c;await Rt(yi(Math.min(n.pollIntervalMs??100,Math.max(1,a-Date.now()))),n.startupSignal)}}throw Pc(e,o.exit)}return o.observation}i(Yg,"observeStartupHealth");async function Qg(e,n,t,r){let o=await Rt(Promise.race([yi(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(Qo(n,t)){await Rt(yi(e),r);return}throw Pc(n,o)}}i(Qg,"waitForStartupPoll");function Qo(e,n){let t=Ue(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(Qo,"hasCompetingStartupOwner");function Pc(e,n){let t=n.signal!==null?`signal ${n.signal}`:`code ${n.code??"unknown"}`;return new Bn(`Runtime daemon child exited before becoming healthy (${t}). See daemon bootstrap log: ${Ri(e)}`,"child_exit")}i(Pc,"runtimeDaemonExitedEarly");function xc(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Bn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n} See daemon bootstrap log: ${Ri(e)}`,"timeout")}i(xc,"runtimeDaemonStartupTimeout");function Zg(e,n,t=process.execArgv){let r=[...n!==void 0?sy(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(Zg,"buildRuntimeDaemonServeArgs");async function ey(e){let n=oy();ry(n);let t=Zg(e,n),r=zs({args:t,env:iy({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=ut(e.configHome,e.profile),s=Wg(o),a;try{a=qg(process.execPath,r.args,{detached:!0,stdio:["ignore",s,s],windowsHide:!0,env:r.env})}finally{Sc(s)}let c=new Promise(l=>{a.once("exit",(m,R)=>l({code:m,signal:R}))});return await new Promise((l,m)=>{a.once("spawn",l),a.once("error",m)}),Ws(a),ty(a,c)}i(ey,"spawnRuntimeDaemonServeProcess");async function ny(e){if(e.hasExited?.()!==!0)try{await e.terminate()}catch(n){if(!(n instanceof gi)||!await Cc(e.exit,1e3))throw n}}i(ny,"terminateCompetingStartupChild");function ty(e,n){return{pid:e.pid,exit:n,hasExited(){return $i(e)},unref(){e.unref()},async terminate(){let t=$i(e);if((await Gs(e)).status==="unknown"&&!t)throw new gi(e.pid);if(!await Cc(n,1e3))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}i(ty,"createRuntimeDaemonStartupProcess");async function Cc(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(Cc,"didExitWithin");function ry(e){if(e!==void 0&&!pi(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(ry,"assertRuntimeDaemonCliEntryAvailable");function iy(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Rn.join(e.homeDir,".kodax")};return delete n[Us],n}i(iy,"createRuntimeDaemonServeEnvironment");function oy(){if(process.env.KODAX_BUNDLED==="true")return;let e=Ug(import.meta.url);if(e.endsWith(".ts"))return Rn.resolve(Rn.dirname(e),"..","kodax_cli.ts");let n=Rn.dirname(e),t=Rn.basename(n)==="chunks"?Rn.dirname(n):n;return Rn.join(t,"kodax_cli.js")}i(oy,"resolveDaemonCliEntry");function sy(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&&(wc(a)&&t.push(o,a),r+=1)}else if(s.startsWith("--require=")){let a=o.slice(10);wc(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(sy,"daemonServeExecArgv");function wc(e){return Rn.resolve(e)===Rn.resolve("scripts","production-env.cjs")}i(wc,"isKodaXProductionEnvPreload");function yi(e){return new Promise(n=>setTimeout(n,e))}i(yi,"delay");async function Rt(e,n){if(!n)return e;if(n.aborted)throw vc();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(vc()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(Rt,"raceRuntimeDaemonStartupStep");function vc(){return new Bn("Runtime daemon startup cancelled.","cancelled")}i(vc,"runtimeDaemonStartupCancelled");import{Worker as ay}from"node:worker_threads";import{existsSync as dy}from"node:fs";import{basename as uy,dirname as Zo,join as Ac}from"node:path";import{fileURLToPath as Tc,pathToFileURL as Dc}from"node:url";var cy=3e4;function Mc(e,n={}){let t=fy(),r=new ay(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 d of o.values())d.cleanup(),d.reject(E);o.clear()},"rejectPending"),R=i(()=>{for(let E of s.values())clearTimeout(E.expiry);s.clear()},"clearLateResults"),S=i(E=>{let d=s.get(E);if(d!==void 0)return s.delete(E),clearTimeout(d.expiry),d.deliver},"removeLateResult"),y=i(E=>{l||(l=!0,m(E),R(),a.clear())},"markClosed"),x=i((E,d)=>{if(l)return;let p=E==="request.ack"?"ack":"cancel";try{r.postMessage(_t(`worker_${p}_${++c}`,E,{requestId:d}))}catch(h){ye({source:"runtime.worker.transport",level:"warn",message:`Failed to send Worker ${E} lifecycle frame.`,detail:h})}},"sendRequestLifecycleFrame");return r.on("message",E=>{if(pr(E)){for(let h of a)h(E);return}if(!st(E)&&!Nt(E)||!E.id)return;let d=o.get(E.id);if(!d){if(st(E)){let h=S(E.id);if(h!==void 0)try{h(E.result)}catch(P){ye({source:"runtime.worker.transport",level:"warn",message:"Runtime Worker late-result handler failed.",detail:P})}}else S(E.id);return}if(o.delete(E.id),d.cleanup(),st(E)){x("request.ack",E.id),d.resolve(E.result);return}let p=new Error(E.error.message);p.code=E.error.code,E.error.data!==void 0&&(p.data=E.error.data),d.reject(p)}),r.on("error",E=>y(E)),r.on("exit",E=>y(new Error(`Runtime Worker exited with code ${E}.`))),{transport:{request(E,d,p,h){if(l)return Promise.reject(new Error("Runtime Worker transport is closed."));let P=`worker_${++c}`,I,b=!1,A=i(()=>{I!==void 0&&h?.signal?.removeEventListener("abort",I)},"cleanup"),C=new Promise((M,F)=>{let te={resolve:M,reject:F,cleanup:A};o.set(P,te),I=ly(h,()=>{if(o.get(P)===te){if(o.delete(P),A(),b&&x("request.cancel",P),h?.onLateResult!==void 0){let Z=setTimeout(()=>{s.delete(P)},cy);Z.unref?.(),s.set(P,{deliver:h.onLateResult,expiry:Z})}F(my(h?.signal?.reason))}})});if(h?.signal?.aborted)return C;try{r.postMessage(_t(P,E,d,p)),b=!0}catch(M){let F=o.get(P);F!==void 0&&(o.delete(P),F.cleanup(),F.reject(M instanceof Error?M:new Error(String(M))))}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(Mc,"createRuntimeWorkerTransport");function ly(e,n){let t=e?.signal;if(t!==void 0)return t.addEventListener("abort",n,{once:!0}),t.aborted&&n(),n}i(ly,"attachWorkerRequestAbort");function my(e){return e instanceof Error?e:new Error("Runtime Worker request cancelled.")}i(my,"normalizeWorkerAbortReason");function fy(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return dy(Tc(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return Dc(Ac(Zo(process.execPath),"runtime-worker.js"));let e=Zo(Tc(import.meta.url)),n=uy(e)==="chunks"?Zo(e):e;return Dc(Ac(n,"runtime-worker.js"))}i(fy,"resolveRuntimeWorkerUrl");var _n=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},vt=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function ks(e){let n=J.resolve(e??Pi.homedir());return{homeDir:n,configHome:e===void 0?J.resolve(eo):J.join(n,".kodax")}}i(ks,"resolveRuntimeDaemonClientLocation");function ir(e,n="default"){let t=ks(e);return{...t,paths:ut(t.configHome,n)}}i(ir,"resolveRuntimeDaemonClientPaths");function XS(e={}){let{paths:n}=ir(e.homeDir,e.profile),t=`inline_${Je().replace(/-/g,"")}`,r=Yd(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),o=!1;return{profile:n.profile,ownerId:t,ownerPolicy:In(n),close(){o||(o=!0,si(r))}}}i(XS,"acquireKodaXInlineOwner");function US(e={}){return In(ir(e.homeDir,e.profile).paths)}i(US,"getKodaXRuntimeOwnerPolicy");function zS(e={}){let{paths:n}=ir(e.homeDir,e.profile),t=Ue(n.lockFile);return{profile:n.profile,policy:In(n),ownerStatus:t!==void 0?"owned":q.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}i(zS,"getKodaXRuntimeOwnerState");function WS(e={}){return ri(ir(e.homeDir,e.profile).paths)}i(WS,"enableKodaXDaemonOwner");function GS(e){let{paths:n}=ir(e.homeDir,e.profile);if(Ue(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Vd(n,e.mode,e.expectedRevision)}i(GS,"setKodaXRuntimeOwnerMode");var py=["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"],gy=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),VS=Object.freeze({daemonOrphanExit:1,managedRunDurability:1,runtimeEventCoalescing:1});async function JS(e,n){return e.sessions.diagnostics(n)}i(JS,"captureRuntimeSessionDiagnostics");function yy(e,n,t,r){let o=t.runs.flatMap(R=>{let S=_i(R);return S===void 0?[]:[S]}),s=n.runId===void 0?Wl(o):o.find(R=>R.runId===n.runId),a=s?.activeSubtaskCount??null,c=[],l=i((R,S)=>{c.some(y=>y.code===R)||c.push({code:R,message:S})},"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&&Te(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:$r,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":Te(s.phase)?"terminal":"active",phase:s.phase,stage:s.stage??(Te(s.phase)?"terminal":"unknown"),...s.stageChangedAt!==void 0?{stageChangedAt:s.stageChangedAt}:{},...s.endedAt!==void 0?{terminalAt:s.endedAt}:{},terminalTimeKnown:Te(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(yy,"createRuntimeSessionDiagnosticsRecord");var Er=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},Ar=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")})}},It=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")}},xi=class extends Error{constructor(t){super(`Runtime status lock timed out: ${t}`);this.lockFile=t;this.name="RuntimeStatusLockTimeoutError"}lockFile;static{i(this,"RuntimeStatusLockTimeoutError")}},Oc=5*6e4,Ci=1e4,Ry=1024,Nc=1024*1024,On=1e3,hi=200,es=1e3,hy=2*1024*1024,ns=512,Lc=256*1024*1024,wy=50,ps=8*1024,Sl=16*1024*1024,vy=Sl/2,Hc=128*1024,Fc=8,Sy=256,kt=512*1024,Ai=128*1024,Pr=256*1024,Il=50,kl=200,Iy=8,xr=64*1024*1024,Ti=16,ts=4*1024,ky=256,by=1024*1024,Ey=250,rs=5*6e4,qc="kodax-transcript-snapshots-",Py=5e3,xy=3e4,$c=[5,15],Cy="1970-01-01T00:00:00.000Z";function Ay(e,n,t){let r=null,o=t.map((s,a)=>{let l=`entry_${St("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??Cy,message:structuredClone(s)};return r=l,m});return{version:2,activeEntryId:r,entries:o}}i(Ay,"createDeterministicRuntimeLegacyLineage");var jc=1024,bl=new Set(["tool_call","tool_describe"]),Ty=new Set(["image","file","video"]);function Dy(e,n){let t=J.relative(Ks(),e);return J.isAbsolute(t)||t.startsWith("..")?e:J.join(n,t)}i(Dy,"rebaseAgentConfigPath");async function My(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 _y(e);let k=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return El({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:k,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:k?{...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 Oy(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:jr(),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:Fr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};bs(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Je().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.82",isolation:"inline"},r=e.homeDir?J.join(J.resolve(e.homeDir),".kodax"):eo,o=IR(e),s=za(o?{sessionsDir:o,configHome:r}:{configHome:r}),a=zR(t.profile,s,e.sharedDaemonHost===!0),c=jy(),l=ph(e);Kl(l);let m=await Pd({onError(k){ye({source:"runtime.owner",level:"error",message:`Runtime owner liveness endpoint failed for ${t.runtimeId}.`,detail:Ne(k)})}}),R={ownerId:`runtime_${Je().replace(/-/g,"")}`,runtimeId:t.runtimeId,pid:process.pid,startedAt:t.startedAt,livenessId:m.id,livenessPort:m.port},S=lR(e,R),y;try{y=e.externalAgents?await ga({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:nd(J.join(S.runtimeDir,"agents"))}):void 0}catch(k){throw await m.close(),k}let x=oR(S),g=$y(S,x),E=OR(x,e.permissionTimeoutMs??Oc,S),d=DR(x,e.permissionTimeoutMs??Oc),p=Gy(),h=Xy(),P=new Map,I=new Map,b=new Map,A=new Map,C=i((k,D)=>{let H=I.get(k)??D;return H.state!=="recovering"?Promise.resolve(H):new Promise(O=>{let K=b.get(k)??new Set;K.add(O),b.set(k,K)})},"waitForActorHealthResolution"),M=i(k=>{let D,H=new Promise(K=>{D=K}),O=A.get(k)??new Set;return O.add(D),A.set(k,O),{promise:H,close(){D!==void 0&&(O.delete(D),O.size===0&&A.delete(k),D=void 0)}}},"waitForActorHealthChange"),F=i((k,D)=>{I.set(k,D);let H=A.get(k);A.delete(k);for(let O of H??[])O(D);for(let O of P.values()){if(O.sessionId!==k||!O.ownedByRuntime||Te(O.phase))continue;if(O.stop?.state==="unknown"){if(delete O.actorHealthBaseState,D.state==="unknown"){O.lifecycleError={code:D.code??"actor_settlement_not_persisted",message:D.message??"Actor executor settlement persistence is not confirmed.",retryable:!1},O.stageChangedAt=new Date().toISOString();let ie=sn(O),G=zn(x,S,O,ie);G===ie?x.emit("run.updated",ie,{sessionId:O.sessionId,runId:O.runId,...O.turnId!==void 0?{turnId:O.turnId}:{}}):G!==void 0&&wt(O,G)}continue}if(D.state==="healthy"){let ie=O.actorHealthBaseState;if(ie===void 0)continue;O.phase=ie.phase,O.stage=ie.stage,O.error=ie.error,O.lifecycleError=ie.lifecycleError,delete O.actorHealthBaseState}else O.actorHealthBaseState===void 0&&(O.actorHealthBaseState={phase:O.phase,stage:O.stage,error:O.error,lifecycleError:O.lifecycleError}),(O.phase!=="queued"||D.state==="unknown")&&(O.phase=D.state),O.stage=D.state,O.error=D.message,O.lifecycleError={code:D.code??"actor_settlement_retrying",message:D.message??"Actor executor settlement persistence is not confirmed.",retryable:D.state==="recovering"};O.stageChangedAt=new Date().toISOString();let K=sn(O),Q=zn(x,S,O,K);Q===K?x.emit("run.updated",K,{sessionId:O.sessionId,runId:O.runId,...O.turnId!==void 0?{turnId:O.turnId}:{}}):Q!==void 0&&wt(O,Q)}if(D.state!=="recovering"){let O=b.get(k);b.delete(k);for(let K of O??[])K(D)}},"onActorHealthChanged"),te=Yy(s,t,m,y,e.externalAgents?.defaultContext,F),Z=new Map,pe=[...Hh(S.loadRunStatuses())].sort((k,D)=>Un(k.status,D.status)),ue=[];for(let k of pe){let D=k.status,H=D.sessionOrder??(Z.get(D.sessionId)??0)+1;Z.set(D.sessionId,Math.max(Z.get(D.sessionId)??0,H));let O={...D,acceptedAt:D.acceptedAt??D.startedAt,sessionOrder:H};if(!Te(D.phase)){let K=Ml(O,x,S);if(K!==void 0){P.set(K.runId,Ei(K,!1,k.owner));continue}O=As(O,S.replay({runId:D.runId}))}ue.push({persisted:k,normalizedStatus:O})}let qe=ue.flatMap(({persisted:k})=>!Te(k.status.phase)&&k.owner!==void 0?[k.owner]:[]),Ie=await xd(qe),fe=0;for(let{persisted:k,normalizedStatus:D}of ue){let H=k.status,O=Te(H.phase)?"dead":k.owner===void 0?"unknown":Ie[fe++]??"unknown";if(!Te(H.phase)&&O!=="dead"){P.set(H.runId,Ei(D,!1,k.owner));continue}let K=Dl(D,x,S);P.set(K.runId,Ei(K,!1,k.owner))}let $e=!1,Ee,Ye=!1,u=!1,v=y===void 0,T=!1,$=!1,j=i(()=>{if($e)throw new Error("KodaX runtime is closed")},"ensureOpen"),B=Ky({bus:x,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,defaultConfigHome:r,ensureOpen:j,isClosed:i(()=>$e,"isClosed"),artifacts:p,permissions:E,userInputs:d,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:S,runOwner:R,runs:P,sessionManager:s,sessionAdmission:a,sessionOperations:c,agentPlane:y,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:te,waitForActorHealthResolution:C,waitForActorHealthChange:M,settingsOwner:g}),me,le,Se=By(t,r,s,x,S,j,k=>qh(k,P,S),g,k=>B.list({sessionId:k}),k=>B.inspect({sessionId:k}),k=>B.inspectOne(k),k=>E.service.listPending({sessionId:k}),k=>B.getAutoModeStats(k),c,(k,D,H)=>te.mutateSessionFile(k,D,H),k=>{B.releaseSession(k),E.releaseSession(k)},a,(k,D)=>{me=k,le=D}),U=J.join(e.homeDir?J.resolve(e.homeDir):Pi.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),se=Id({configHome:r,managedWorkspaceRoot:U,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:B,sessions:Se,createSkillScriptRunner:i(k=>Va({...k,snapshotRoot:J.join(U,"bindings")}),"createSkillScriptRunner")}),Re=Td({rootDir:J.join(r,"learned"),userSkillsRoot:J.join(r,"skills"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[Dy(ea(process.cwd()),r)]}),Le=i(()=>{if(Ee)return Ee;$e=!0;let k=(async()=>{Ye||(B.closeAll("runtime closed"),E.rejectAll("runtime closed"),E.releaseAllSessionGrants(),d.rejectAll("runtime closed"),Ye=!0),me?.(),await c.close(),await le?.(),me=void 0,le=void 0,u||(await te.close("runtime closed"),u=!0),v||(await y.close(),v=!0),T||(await m.close(),T=!0),$||(x.close(),$=!0)})();return Ee=k,k.then(()=>{Ee===k&&(Ee=void 0)},()=>{Ee===k&&(Ee=void 0)}),k},"closeRuntime");return{identity:t,capabilities:n,sessions:Se,runs:B,events:x.service,permissions:E.service,userInputs:d.service,credentials:cw(),hostTools:lw(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:h,learning:Re,config:Uy(j,l),catalog:zy(j,l),mcp:Wy(j,l),artifacts:p.service,status:eR({identity:t,permissions:E,userInputs:d,listRuns:i(()=>B.list(),"listRuns"),sessionManager:s,sessionAdmission:a,workflows:h,actors:te}),diagnostics:nR(x.service),admin:Zy(y),agents:Qy(y,se,te,a,c,j),close:Le}}i(My,"createKodaXRuntime");async function _y(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?Cl(e.daemonEndpoint):void 0,r=ks(e.homeDir),o=await pc({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(s=>My({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 El({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??gr(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(_y,"createInProcessExternalAgentDaemon");async function Oy(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=Mc({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=rr(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=Xl(r.identity);bs(r.capabilities,{...e.requirements,hardDispose:!0});let s=ei({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:rr(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 Ny(t.transport.request("runtime.shutdown"),n)}catch(S){R=S}try{await t.terminate(),a=!0}catch(S){throw R!==void 0?new AggregateError([R,S],"Runtime Worker shutdown and forced termination both failed."):S}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(Oy,"createWorkerHostedKodaXRuntime");function bs(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?.runtimeEventCoalescing===void 0&&n?.integrationConfigResilience===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=rr(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&&Bc(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],["runtimeEventCoalescing",n.runtimeEventCoalescing],["integrationConfigResilience",n.integrationConfigResilience],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,s]of r)s!==void 0&&Bc(t,o,s)}i(bs,"assertRuntimeCapabilities");function Bc(e,n,t){let r=e[n];if(!re(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}i(Bc,"assertVersionedRuntimeCapability");async function Ny(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(Ny,"settleWithin");async function El(e={}){return xl(e,!0)}i(El,"connectKodaXRuntime");function Pl(e,n,t){let r=e[n];return re(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i(Pl,"hasVersionedRuntimeCapability");async function Ly(e){if(!Pl(e.capabilities,"daemonManagement",1))throw new _n("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=ei({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 _n(`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 _n?o:new _n("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=>{ye({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:Ne(s)})}),o||await e.lease.close().catch(s=>{ye({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:Ne(s)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;Ue(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new _n("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{ri(e.lease.paths)}catch(s){throw new _n("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{ri(e.lease.paths)}catch(o){throw new _n("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(Ly,"replaceRuntimeDaemonForCapabilityUpgrade");async function xl(e,n){is("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),is("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs),is("daemonOrphanExitMs",e.daemonOrphanExitMs);let t=e.endpoint!==void 0?Cl(e.endpoint):void 0,r=ks(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await Ec({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",Ft(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=qy(e),l,m={},R,S,y=!1;try{let g={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Je().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=rr(await a.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...c!==void 0?{token:c}:{},clientInfo:g,capabilities:{...e.capabilities,operationDeduplication:!0},...s!==void 0?{endpoint:s.path}:{}}));l=Xl(E.identity),m=E.capabilities===void 0?{}:rr(E.capabilities),R=typeof E.journalEpoch=="string"?E.journalEpoch:void 0,S=Hy(E.grantedScopes);let d=e.autoStart===!0?{...e.requirements,managedRunDurability:1,runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:e.requirements,p=[{name:"managedRunDurability",version:d?.managedRunDurability},{name:"runtimeAutoModeGuardrail",version:d?.runtimeAutoModeGuardrail},{name:"runtimeEventCoalescing",version:d?.runtimeEventCoalescing},{name:"daemonOrphanExit",version:d?.daemonOrphanExit}].find(P=>P.version!==void 0&&!Pl(m,P.name,P.version));if(p!==void 0){if(!n||e.autoStart!==!0||o===void 0)throw new _n(`Runtime daemon does not support ${p.name} v${p.version}. Stop all daemon work and restart it with a compatible KodaX installation.`,void 0,void 0,p.name);try{await Ly({identity:l,capabilities:m,transport:a,lease:o,...R!==void 0?{journalEpoch:R}:{},...S!==void 0?{grantedScopes:S}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredCapability:p.name,requiredVersion:p.version})}finally{y=!0}return xl(e,!1)}bs(m,d);let h=e.profile??"default";if(l.profile!==h)throw new Error(`Runtime daemon profile mismatch: expected ${h}, got ${l.profile}`)}catch(g){throw y||(o!==void 0?await o.close():await a.close?.()),g}let x=ei({identity:{...l,mode:"daemon",isolation:"process"},transport:a,capabilities:m,...R!==void 0?{journalEpoch:R}:{},...S!==void 0?{grantedScopes:S}:{}});return o?{...x,async close(){await x.close()}}:x}i(xl,"connectKodaXRuntimeInternal");function is(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(is,"assertPositiveRuntimeTimeout");function Hy(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&Fy(t));return n.length===e.length?n:void 0}i(Hy,"parseRuntimeGrantedScopes");function Fy(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(Fy,"isRuntimeGrantedScope");function qy(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return gr(ir(e.homeDir,e.profile).paths)}i(qy,"resolveConnectDaemonToken");function Cl(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(Cl,"normalizeRuntimeDaemonEndpoint");function $y(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),S=R.then(()=>{},()=>{});return r.set(c,S),S.then(()=>{r.get(c)===S&&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 S=e.loadSessionSettingsVersioned(c);if(m!==void 0&&S.revision!==m)throw Xn(`Session settings revision ${m} is stale; current revision is ${S.revision}`,S.revision);let y=oh(S.value,l);R(y);let x={revision:S.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 S={revision:R.revision+1,value:{...R.value,autoModeEngine:l}};e.saveSessionSettingsVersioned(c,S),a(c,S,{autoModeEngine:l})})},subscribe(c){return o.add(c),{close:i(()=>{o.delete(c)},"close")}},release(c){t.delete(c),r.delete(c)}}}i($y,"createRuntimeSessionSettingsOwner");function jy(){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(jy,"createRuntimeSessionOperationGate");function By(e,n,t,r,o,s,a,c,l,m,R,S,y,x,g,E,d,p){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:Oi({kind:"conversation_cache_page",view:"conversation",revision:f.revision,end:f.nextEnd})}:{}}),"toRuntimeConversationPage"),b=new Map,A=new Map,C=new Map,M=new Map,F=new Map,te=new Map,Z=0,pe=new Map,ue=new Set,qe=new Set,Ie=0,fe,$e=0,Ee=!1,Ye=!1,u=new Set,v=new Map,T,$=i(()=>{T!==void 0&&(clearInterval(T),T=void 0)},"clearTranscriptSnapshotLease"),j=i(()=>{if(fe!==void 0)try{O(),H();let f=new Date;q.utimesSync(fe,f,f)}catch(f){process.emitWarning(`Unable to refresh transcript snapshot lease: ${Ne(f).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_LEASE_FAILED"})}},"refreshTranscriptSnapshotLease"),B=i(()=>{let f=Pi.tmpdir(),L=Date.now()-rs;try{for(let N of q.readdirSync(f,{withFileTypes:!0})){if(!N.isDirectory()||!N.name.startsWith(qc))continue;let X=J.join(f,N.name);q.statSync(X).mtimeMs>L||q.rmSync(X,{recursive:!0,force:!0})}}catch(N){process.emitWarning(`Unable to prune expired transcript snapshots: ${Ne(N).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"pruneStaleTranscriptSnapshotDirs"),me=i(f=>{let L=pe.get(f);L!==void 0&&(pe.delete(f),Z-=L)},"releaseTranscriptSnapshotBytes"),le=i(f=>(qe.add(f),f.then(()=>qe.delete(f),()=>qe.delete(f)),f),"trackTranscriptSnapshotOperation"),Se=i(()=>{if(Ee)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(Ie>=Ti)throw aw();Ie+=1;let f=!1;return()=>{f||(f=!0,Ie-=1)}},"acquireTranscriptSnapshotIo"),U=i(()=>{if(Ee)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let f=fe===void 0;if(fe!==void 0)try{f=q.statSync(fe).isDirectory()}catch(L){(!re(L)||L.code!=="ENOENT"&&L.code!=="ENOTDIR")&&process.emitWarning(`Unable to inspect transcript snapshot directory: ${Ne(L).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_DIRECTORY_FAILED"}),f=!1}if(!f){$(),b.clear(),A.clear();for(let L of[...pe.keys()])if(!ue.has(L)){if((v.get(L)??0)>0){u.add(L);continue}me(L),u.delete(L)}fe=void 0}return fe===void 0&&(B(),fe=q.mkdtempSync(J.join(Pi.tmpdir(),qc)),$e+=1,T=setInterval(j,Math.floor(rs/2)),T.unref?.()),fe},"ensureTranscriptSnapshotDir"),se=i((f,L,N)=>`${N}\0${f}\0${L}`,"transcriptSnapshotKey"),Re=i((f,L,N)=>`${N}\0${f}\0${L}`,"transcriptSourceKey"),Le=i(f=>{if((v.get(f)??0)>0){u.add(f);return}try{q.rmSync(f,{force:!0}),u.delete(f),me(f)}catch(L){u.add(f),process.emitWarning(`Unable to remove transcript snapshot: ${Ne(L).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"removeTranscriptSnapshotFile"),We=i((f,L)=>{if(Ee)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let N=pe.get(f)??0;if(N+L>xr)throw ki();for(;Z+L>xr;){let X=b.keys().next().value;if(X===void 0)throw ki();D(X)}pe.set(f,N+L),Z+=L},"reserveTranscriptSnapshotBytes"),k=i(f=>{for(;pe.size>=Ti;){let L=b.keys().next().value;if(L===void 0)throw ki();D(L)}pe.set(f,0);try{We(f,ts)}catch(L){throw me(f),L}},"reserveTranscriptSnapshotFile"),D=i(f=>{let L=b.get(f);if(L===void 0)return;b.delete(f);let N=Re(L.sessionId,L.sourceRevision,L.view);A.get(N)===L.revision&&A.delete(N),Le(L.filePath)},"removeTranscriptSnapshot"),H=i(()=>{let f=Date.now();for(let[L,N]of b)N.expiresAt<=f&&D(L)},"pruneExpiredTranscriptSnapshots"),O=i(()=>{for(let f of u)Le(f)},"retryDeferredTranscriptSnapshotCleanup"),K=i(f=>{v.set(f,(v.get(f)??0)+1);let L=!1;return()=>{if(L)return;L=!0;let N=(v.get(f)??1)-1;if(N>0){v.set(f,N);return}v.delete(f),u.has(f)&&Le(f)}},"acquireTranscriptSnapshotReader"),Q=i(async(f,L,N)=>{let X=K(f.filePath),z;try{z=Se()}catch(ve){throw X(),ve}let Y=le(Promise.resolve().then(N)),de=i(()=>{X(),z?.()},"releaseResources");Y.then(de,de);try{return await Cn(()=>Y,L)}catch(ve){if(sw(ve)){let ke=[...b.entries()].find(([,De])=>De.filePath===f.filePath);ke!==void 0&&D(ke[0])}throw ve}},"readTranscriptSnapshot"),ie=i(async(f,L,N)=>{if(L.conversation===void 0)throw be("Conversation snapshot metadata is unavailable");let X;try{X=await t.storage.readConversationPageBoundary(f,Ce(N))}catch(z){throw z instanceof rn&&z.code==="data_changed"?be(z.message):z}if(X===null)throw be("Session moved or was removed; request a fresh boundary");if(d.assertCachedIdentity(f,X.admission),X.boundaryRevision!==L.conversation.boundaryRevision)throw D(se(f,L.revision,"conversation")),be("Conversation history changed; request a fresh boundary")},"assertConversationSnapshotCurrent"),G=i(async(f,L)=>{Ce(L);let N=C.get(f);if(N===void 0){let X=new AbortController,z=le(d.captureRequired(f,{signal:X.signal}));N={controller:X,promise:z,waiters:0,settled:!1},C.set(f,N);let Y=N,de=i(()=>{Y.settled=!0,C.get(f)===Y&&C.delete(f)},"settle");z.then(de,de)}N.waiters+=1;try{return await Cn(()=>N.promise,L)}finally{N.waiters-=1,N.waiters===0&&!N.settled&&(C.get(f)===N&&C.delete(f),N.controller.abort())}},"readSessionCaptureOnce"),ee=i(async(f,L)=>{for(let N=0;N<=$c.length;N+=1)try{return await G(f,L)}catch(X){if(!(X instanceof rn)||X.code!=="data_changed")throw X;let z=$c[N];if(z===void 0)throw be(X.message);await Cn(()=>new Promise(Y=>setTimeout(Y,z)),L)}throw new Error("unreachable session capture retry state")},"readSessionCapture"),V=i(async(f,L,N,X,z,Y="",de)=>{if(Ee)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");H();let ve=de===void 0?0:Buffer.byteLength(JSON.stringify(de),"utf8"),ke=U(),De=$e,Pe=J.join(ke,`${Je()}.entries`),je=Se(),he=ts+ve;try{for(let Ke=0;Ke<L.length;Ke+=1)if(Ke>0&&Ke%256===0&&await Vt(X),Ce(X),he+=Buffer.byteLength(JSON.stringify(L[Ke]),"utf8"),he>xr)throw ki()}catch(Ke){throw je(),Ke}try{k(Pe);let Ke=he-ts;Ke>0&&We(Pe,Ke)}catch(Ke){throw me(Pe),je(),Ke}ue.add(Pe);let tn=le((async()=>{let Ke=[],wn=St("sha256");wn.update(z==="transcript"?"kodax-transcript-entries-v1\0":"kodax-conversation-history-v1\0"),Y.length>0&&(wn.update(`${Buffer.byteLength(Y,"utf8")}:`),wn.update(Y));let Ns=await q.promises.open(Pe,"wx"),Ls=0,Pt=[],or=0,Hs=i(async()=>{if(or===0)return;let et=Pt.length===1?Pt[0]:Buffer.concat(Pt,or);Pt=[],or=0,await ih(Ns,et),Ce(X)},"flushPendingWrites");try{for(let et=0;et<L.length;et+=1){et>0&&et%256===0&&await Vt(X),Ce(X);let Fs=L[et],Hn=Buffer.from(JSON.stringify(Fs),"utf8");wn.update(`${Hn.length}:`),wn.update(Hn);let qs=[];for(let Nr=0;Nr<Hn.length;Nr+=Pr)qs.push(St("sha256").update(Hn.subarray(Nr,Math.min(Hn.length,Nr+Pr))).digest("hex"));Ke.push({offset:Ls,byteLength:Hn.length,chunkDigests:qs,...eh(Fs)}),Ls+=Hn.length,Pt.push(Hn),or+=Hn.length,(Pt.length>=ky||or>=by)&&await Hs()}await Hs()}finally{await Ns.close()}Ce(X);let Ql=z==="conversation"&&de!==void 0?ro({sourceRevision:de.sourceRevision,status:de.status,issues:de.issues,entries:L}):`sha256:${wn.digest("hex")}`;return{entries:Ke,revision:Ql}})());tn.then(()=>{ue.delete(Pe),je()},()=>{ue.delete(Pe),je()});let Ze;try{Ze=await Cn(()=>tn,X),Ce(X)}catch(Ke){throw tn.then(()=>Le(Pe),wn=>{wn!==Ke&&!Ni(Ke)&&!Ni(wn)&&process.emitWarning(`Transcript snapshot materialization failed after its caller stopped waiting: ${Ne(wn).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_BACKGROUND_FAILED"}),Le(Pe)}),dw(Ke,Ee)}let{entries:Ge,revision:An}=Ze;if(Ee)throw Le(Pe),new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(De!==$e||!q.existsSync(Pe))throw Le(Pe),be("Transcript snapshot directory changed; request a fresh boundary");let Or=se(f,An,z);for(D(Or),b.set(Or,{sessionId:f,view:z,revision:An,sourceRevision:N,filePath:Pe,entries:Ge,...de!==void 0?{conversation:de}:{},expiresAt:Date.now()+rs}),A.set(Re(f,N,z),An),j();b.size>Iy;){let Ke=b.keys().next().value;if(Ke===void 0)break;D(Ke)}return An},"materializeTranscriptSnapshot"),ge=i((f,L,N="transcript")=>{let X=se(f,L,N),z=b.get(X);if(z!==void 0){if(z.expiresAt<=Date.now()){D(X);return}if(!q.existsSync(z.filePath)){D(X);return}return b.delete(X),b.set(X,z),{revision:z.revision,view:z.view,sourceRevision:z.sourceRevision,filePath:z.filePath,entries:z.entries,...z.conversation!==void 0?{conversation:z.conversation}:{}}}},"getTranscriptSnapshot"),fn=i(async(f,L,N,X,z="transcript",Y="",de)=>{Ce(X),H();let ve=Re(f,N,z),ke=A.get(ve);if(ke!==void 0&&ge(f,ke,z)!==void 0)return ke;let De=M.get(ve);if(De===void 0){let Pe=new AbortController,je=Pn({signal:Pe.signal}),he=V(f,L,N,je,z,Y,de);De={controller:Pe,promise:he,waiters:0,settled:!1},M.set(ve,De);let tn=De,Ze=i(()=>{tn.settled=!0,M.get(ve)===tn&&M.delete(ve)},"settle");he.then(Ze,Ze)}De.waiters+=1;try{return await Cn(()=>De.promise,X)}finally{De.waiters-=1,De.waiters===0&&!De.settled&&(M.get(ve)===De&&M.delete(ve),De.controller.abort())}},"rememberTranscriptSnapshot"),Oe=i(async(f,L)=>{Ce(L);let N=r.currentSessionSeq(f),X=te.get(f)??0,z=F.get(f);if(z!==void 0&&(z.sessionSeq!==N||z.sourceGeneration!==X)&&(F.delete(f),z=void 0),z===void 0){let Y=new AbortController,de=Pn({signal:Y.signal}),ve=le((async()=>{let Pe=await ee(f,de),je=Pe.transcript.lineage??Ay(f,Pe.sourceRevision,Pe.transcript.messages),he=Pe.transcript.lineage===void 0?je.entries.flatMap(Ze=>Ze.type==="message"?[{entryId:Ze.id,parentId:Ze.parentId,logicalId:Ze.logicalId??Ze.id,...Ze.sourceEntryId===void 0?{}:{sourceEntryId:Ze.sourceEntryId},timestamp:Ze.timestamp,type:"message",message:Ze.message,active:!0}]:[]):Pe.transcript.transcriptEntries,tn=await fn(f,he,Pe.sourceRevision,de);return{capture:Pe,revision:tn,lineage:je,transcriptEntries:he}})());z={controller:Y,sessionSeq:N,sourceGeneration:X,promise:ve,waiters:0,settled:!1},F.set(f,z);let ke=z,De=i(()=>{ke.settled=!0,F.get(f)===ke&&F.delete(f)},"settle");ve.then(De,De)}z.waiters+=1;try{return await Cn(()=>z.promise,L)}finally{z.waiters-=1,z.waiters===0&&!z.settled&&(F.get(f)===z&&F.delete(f),z.controller.abort())}},"readMaterializedSessionCapture"),Wn=i(f=>{te.set(f,(te.get(f)??0)+1),F.delete(f)},"invalidateMaterializedSessionCapture"),Ms=i(()=>{if(!Ye){for(let f of[...b.keys()])D(f);fe!==void 0&&(q.rmSync(fe,{recursive:!0,force:!0}),fe=void 0),Z=0,pe.clear(),A.clear(),ue.clear(),Ie=0,v.clear(),u.clear(),Ye=!0}},"finalizeTranscriptSnapshots"),_s=i((f=1)=>{try{Ms()}catch(L){if(process.emitWarning(`Deferred transcript snapshot cleanup failed: ${Ne(L).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"}),f>=3)return;setTimeout(()=>_s(f+1),f*100).unref?.()}},"retryDeferredTranscriptSnapshotFinalization"),Os=i(()=>{Ee=!0,$();for(let f of C.values())f.controller.abort();C.clear();for(let f of M.values())f.controller.abort();M.clear();for(let f of F.values())f.controller.abort();F.clear(),te.clear()},"beginCloseTranscriptSnapshots");p(Os,i(async()=>{Os();let f=Promise.allSettled([...qe]),L=!1;if(await Promise.race([f.then(()=>{L=!0}),new Promise(N=>{setTimeout(N,Ey).unref?.()})]),L){Ms();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(()=>_s())},"disposeTranscriptSnapshots"));let Jl=i(async(f,L)=>{let N=Pn(L);for(let X=0;X<Fc;X+=1){let z=r.currentSessionSeq(f),[Y,de,ve]=await Promise.all([Oe(f,N),Cn(()=>l(f),N),Cn(()=>S(f),N)]),ke=await Cn(()=>c.read(f),N),{capture:De,revision:Pe}=Y;Ce(N);let je=r.currentSessionSeq(f);if(z!==je)continue;let he=ge(f,Pe);if(he===void 0)throw be("Transcript snapshot is no longer retained; request a fresh boundary");let tn=await Q(he,N,()=>ls(he,N));return{runtimeId:e.runtimeId,cursor:je,transcriptRevision:Pe,session:P(f,De.data),transcript:tn,settings:ke,runs:de,pendingPermissions:ve,live:r.projectSession(f)}}throw be(`Session ${f} changed continuously while taking a snapshot`)},"captureObservationSnapshot"),Yl=i(async f=>{let L=Pn(f);for(let N=0;N<Fc;N+=1){let X=r.currentSessionSeq(f.sessionId),[z,Y]=await Promise.all([ee(f.sessionId,L),Cn(()=>f.runId===void 0?m(f.sessionId):R(f.runId).then(ve=>ve===void 0?[]:[ve]),L)]);Ce(L);let de=r.currentSessionSeq(f.sessionId);if(X===de)return{runtimeId:e.runtimeId,cursor:de,transcriptRevision:GR(z.transcript),runs:Y.filter(ve=>ve.sessionId===f.sessionId)}}throw be(`Session ${f.sessionId} changed continuously while taking a diagnostic snapshot`)},"captureDiagnosticBoundary"),Et=i((f,L)=>x.run(f,async()=>{s();let N=await d.loadExecutable(f);try{return await g(f,"mutate",()=>L(N))}finally{Wn(f)}}),"mutateActiveSession");return{async create(f={}){s(),d.assertCreate(f);let L=f.sessionId??await Gi();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?J.resolve(f.projectPath):void 0,X=f.gitRoot?J.resolve(f.gitRoot):N,z=$R(f,N,X),Y={messages:[],title:f.title??"",gitRoot:X??"",...f.tag!==void 0?{tag:f.tag}:{},...z!==void 0?{runtimeInfo:z}:{},scope:"user"};f.sessionId===void 0?await t.storage.createGenerated(L,Y):await t.storage.save(L,Y);let de=P(L,Y,new Date().toISOString());return r.emit("session.created",de,{sessionId:L,runId:L}),de}finally{h.delete(L)}},async load(f,L){s();let N=Pn(L),X=await d.loadRequired(f,Ce(N));return P(f,X)},async list(f){return s(),d.assertFilter(f),(await t.listSessions(f)).filter(d.admitsSummary).map(Ol)},async status(f){s(),await d.loadRequired(f);let L=await l(f),N=Wl(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=Pn(L);return structuredClone((await ee(f,N)).transcript)},async transcriptPage(f,L){s();let N=Pn(L);Ce(N);let X=f.cursor===void 0?void 0:Cr(f.cursor).revision;if(X!==void 0){let De=ge(f.sessionId,X);if(De===void 0)throw be("Transcript snapshot is no longer retained; request a fresh boundary");return Q(De,N,()=>ls(De,N,f.cursor,f.limit))}let z=await Oe(f.sessionId,N),de=z.capture.transcript,ve=z.revision,ke=ge(f.sessionId,ve);if(ke===void 0)throw be("Transcript snapshot is no longer retained; request a fresh boundary");return Q(ke,N,()=>ls(ke,N,void 0,f.limit))},async transcriptEntryChunk(f,L){s();let N=Pn(L);Ce(N);let X=ge(f.sessionId,f.revision);if(X===void 0)throw be("Transcript snapshot is no longer retained; request a fresh boundary");return Q(X,N,()=>nh(f,X,N))},async transcriptSearch(f,L){s(),la(f.query);let N=Pn(L),X=await Oe(f.sessionId,N),Y=X.capture.transcript,de=X.revision;await Vt(N);let ve=X.lineage,ke=await ma(ve,{query:f.query,limit:f.limit,role:f.role,scope:f.scope},{revision:de,checkpoint(){Ce(N)},yieldControl(){return Vt(N)}});Ce(N);let De=new Map;for(let je=0;je<X.transcriptEntries.length;je+=1){je%256===0&&await Vt(N);let he=X.transcriptEntries[je]?.entryId;he!==void 0&&De.set(he,je)}Ce(N);let Pe=ke.hits.flatMap(je=>{let he=De.get(je.entryId);return he===void 0?[]:[{...je,entryIndex:he}]});return Ce(N),{revision:de,hits:Pe}},async conversation(f,L){s();let N=Pn(L),X=await ee(f,N);Ce(N);let z=oo(X,()=>Ce(N));await Vt(N);let Y=QR(z);Ce(N);let de=structuredClone({...z,revision:Y});return Ce(N),de},async conversationPage(f,L){s();let N=Pn(L);Ce(N);let X=f.limit??Il;if(!Number.isSafeInteger(X)||X<=0)throw new Error("transcript page limit must be a positive safe integer");let z=Math.min(X,kl),Y=f.cursor===void 0?void 0:Cr(f.cursor);if(Y===void 0||Y.kind==="conversation_cache_page")try{let he=await t.storage.readConversationPageCache(f.sessionId,{...Y?.kind==="conversation_cache_page"?{expectedRevision:Y.revision,end:Y.end}:{},limit:z,maxPageBytes:kt,maxInlineEntryBytes:Ai,reservedBytes:0,authorize:i(tn=>d.assertCachedIdentity(f.sessionId,tn),"authorize")},Ce(N));if(he!==null)return I(he)}catch(he){throw he instanceof io?Li():he instanceof rn&&he.code==="data_changed"?be(he.message):he}let de=Y===void 0?void 0:Y.revision;if(de!==void 0){let he=ge(f.sessionId,de,"conversation");if(he===void 0)throw be("Conversation snapshot is no longer retained; request a fresh boundary");return await ie(f.sessionId,he,N),Q(he,N,()=>al(he,N,f.cursor,f.limit))}let ve=await ee(f.sessionId,N);Ce(N);let ke=oo(ve,()=>Ce(N));if(ve.transcript.lineage!==void 0)try{await t.storage.prepareConversationPageCache(f.sessionId,ke,ve.transcript.lineage,ve.data.runtimeInfo,ve.boundaryRevision,ve.sourceRevisionState,Ce(N));let he=await t.storage.readConversationPageCache(f.sessionId,{limit:z,maxPageBytes:kt,maxInlineEntryBytes:Ai,reservedBytes:0,authorize:i(tn=>d.assertCachedIdentity(f.sessionId,tn),"authorize")},Ce(N));if(he!==null)return I(he)}catch(he){if(he instanceof io)throw Li();if(he instanceof rn&&he.code==="data_changed")throw be(he.message);process.emitWarning(`Unable to prepare bounded Conversation pages: ${Ne(he).message}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_FAILED"})}let De={sourceRevision:ke.sourceRevision,status:ke.status,issues:ke.issues,boundaryRevision:ve.boundaryRevision},Pe=await fn(f.sessionId,ke.entries,ke.sourceRevision,N,"conversation",YR(ke),De),je=ge(f.sessionId,Pe,"conversation");if(je===void 0)throw be("Conversation snapshot is no longer retained; request a fresh boundary");return Q(je,N,()=>al(je,N,void 0,f.limit))},async conversationEntryChunk(f,L){s();let N=Pn(L);if(Ce(N),!Number.isSafeInteger(f.entryIndex)||f.entryIndex<0)throw new Error(`Transcript entry index is out of range: ${f.entryIndex}`);let X=ge(f.sessionId,f.revision,"conversation");if(X!==void 0)return await ie(f.sessionId,X,N),Q(X,N,()=>th(f,X,N));let z=0;if(f.cursor!==void 0){let Y=Cr(f.cursor);if(Y.kind!=="entry"||Y.view!=="conversation"||Y.revision!==f.revision||Y.entryIndex!==f.entryIndex)throw be("Conversation entry cursor is stale");z=Y.offset}try{let Y=await t.storage.readConversationPageCacheChunk(f.sessionId,{revision:f.revision,entryIndex:f.entryIndex,offset:z,authorize:i(de=>d.assertCachedIdentity(f.sessionId,de),"authorize")},Ce(N));if(Y!==null){let de=Y.nextOffset!==void 0;return{revision:Y.revision,entryIndex:Y.entryIndex,...Y.boundaryId!==void 0?{boundaryId:Y.boundaryId}:{},encoding:"base64-json",data:Y.data.toString("base64"),hasMore:de,...Y.nextOffset!==void 0?{nextCursor:Oi({kind:"entry",view:"conversation",revision:Y.revision,entryIndex:Y.entryIndex,offset:Y.nextOffset})}:{}}}}catch(Y){throw Y instanceof rn&&Y.code==="data_changed"?be(Y.message):Y}throw be("Conversation snapshot is no longer retained; request a fresh boundary")},async observe(f,L,N){s();let X=[],z,Y=!1,de=!1,ve=!1,ke=!1,De,Pe,je=new Promise(Ge=>{De=Ge}),he=i((Ge,An)=>{Y||ke||(ke=!0,Ze.close(),Pe?.close(),De?.({code:"observation_invalidated",reason:Ge,runtimeId:e.runtimeId,message:An}))},"invalidate"),tn=i(Ge=>{if(!(Y||ke)){if(z!==void 0&&Ge.seq<z){if(!de)return;he("event_order",`Session observation event order regressed from ${z} to ${Ge.seq}.`);return}if(!(z!==void 0&&Ge.seq===z)){z=Ge.seq;try{L(Ge)}catch(An){ye({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${Ge.type}`,detail:Ne(An)}),he("delivery_failed",`Session observation listener failed while delivering ${Ge.type}; discard local state and resync.`)}}}},"deliver"),Ze=r.service.subscribe({sessionId:f},Ge=>{if(de)tn(Ge);else{if(X.length>=Sy){ve=!0,he("event_overflow","Session observation handoff overflowed; acquire a fresh snapshot.");return}X.push(Ge)}});Pe=r.subscribeClose(()=>{he("runtime_changed","Runtime closed; discard the observation and resync after reconnecting.")});try{let Ge=await Jl(f,N);if(ve)throw be("Session observation handoff overflowed; acquire a fresh snapshot");z=Ge.cursor;let An={snapshot:Ge,invalidated:je,close(){Y||(Y=!0,X.length=0,Ze.close(),Pe?.close())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(Y||ke)){for(;X.length>0;){let Or=X.splice(0).sort((Ke,wn)=>Ke.seq-wn.seq);for(let Ke of Or)tn(Ke)}de=!0}})),An}catch(Ge){throw Y=!0,Ze.close(),Pe?.close(),Ge}},async diagnostics(f){s();let L=new Date().toISOString(),N=await Yl(f);return yy(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 d.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(z){throw wl(z)}if(!N&&f.historyBoundary!==void 0)return null;if(!N){let z=f.newSessionId??await Gi(),Y={...L,title:f.title??L.title,messages:L.messages.map(mw),actorSnapshot:void 0};await t.storage.save(z,Y);let de=P(z,Y);return r.emit("session.created",de,{sessionId:z,runId:z}),de}let X=P(N.sessionId,N.data);return r.emit("session.created",X,{sessionId:N.sessionId,runId:N.sessionId}),X},async getSettingsVersioned(f){return s(),await d.loadRequired(f),c.read(f)},async getSettings(f){return(await this.getSettingsVersioned(f)).value},async getAutoModeStats(f){s(),await d.loadRequired(f);let L=(await c.read(f)).value;if(mn(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??Qi(),breaker:N?.breaker??Zi()}},async updateSettings(f,L){return Et(f,async N=>(await c.update(f,L,void 0,X=>hs(N,X))).value)},async updateSettingsVersioned(f,L,N){return Et(f,X=>c.update(f,L,N.expectedRevision,z=>hs(X,z)))},async appendNotice(f){return Et(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 Et(f.sessionId,async()=>{if(Jt(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(X){throw wl(X)}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 Et(f.sessionId,async()=>{Jt(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 Et(f.sessionId,async L=>{Jt(f.sessionId,a);let N=Date.now(),X=L.lineage?.entries.filter(Y=>Y.type==="compaction").length??0;r.emit("context.compaction.started",{meta:{contextId:f.sessionId,contextKind:"root",contextRevision:X}},{sessionId:f.sessionId,runId:f.sessionId});let z=X;try{let Y=(await c.read(f.sessionId)).value,de=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??Y.compactionTriggerPercent)!==void 0?{triggerPercent:f.triggerPercent??Y.compactionTriggerPercent}:{},...(f.triggerTokens??Y.compactionTriggerTokens)!==void 0?{triggerTokens:f.triggerTokens??Y.compactionTriggerTokens}:{}}),ve=await t.loadSession(f.sessionId),ke=ve?P(f.sessionId,ve):void 0;return z=ve?.lineage?.entries.filter(De=>De.type==="compaction").length??X,r.emit("context.compaction.finished",{contextId:f.sessionId,contextKind:"root",contextRevision:z,source:"manual",tokensBefore:de.tokensBefore,tokensAfter:de.tokensAfter,committed:de.compacted,elapsedMs:Date.now()-N,beforeRevision:X,afterRevision:z,...de.report??{},...de.reason!==void 0?{reason:de.reason}:{}},{sessionId:f.sessionId,runId:f.sessionId}),de.compacted&&r.emit("session.compacted",{sessionId:f.sessionId,result:{compacted:de.compacted,tokensBefore:de.tokensBefore,tokensAfter:de.tokensAfter},...ke!==void 0?{session:ke}:{}},{sessionId:f.sessionId,runId:f.sessionId}),{...de,...ke!==void 0?{session:ke}:{}}}finally{r.emit("context.compaction.ended",{meta:{contextId:f.sessionId,contextKind:"root",contextRevision:z}},{sessionId:f.sessionId,runId:f.sessionId})}})},async archive(f){await x.run(f,async()=>{s(),await d.loadRequired(f),Jt(f,a),await g(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}`)}),Wn(f)})},async unarchive(f){await x.run(f,async()=>{s(),await d.loadRequired(f),Jt(f,a),await g(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}`)}),Wn(f)})},async delete(f){await x.run(f,async()=>{s(),await d.loadRequired(f),Jt(f,a),await g(f,"delete",async L=>{if(!L)throw new Error(`Actor owner is unavailable for Session deletion: ${f}`);let N=(await t.listRunningSessions()).find(X=>X.sessionId===f);N&&vl(f,{error:{code:"session_running",runningProcess:{pid:N.pid,startedAt:N.startedAt}}});try{await t.storage.deleteOwned(f,L)}catch(X){if(re(X)&&(X.code==="actor_owner_conflict"||X.code==="actor_owner_unknown"))throw X;ye({source:"runtime.sessions",level:"error",message:"Owned Session deletion failed.",detail:{sessionId:f,error:X}}),vl(f,{error:{code:"delete_failed"}})}}),Wn(f),c.release(f),E(f)})}}}i(By,"createRuntimeSessionService");function Ky(e){let n=new Map,t=new Map,r=new Map,o=new Map,s=new Map,a=i(u=>{let v=e.runs.get(u);if(!v)throw new Error(`Runtime run not found: ${u}`);return v},"getRecord"),c=i(async(u,v)=>{if(Te(u.status.phase)||v?.ownedByRuntime===!0)return u.status;let T=u.owner??v?.observedOwner,$=v===void 0?u.status:sn(v);if(T===void 0)return{...$,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let j=await mr(T);if(j==="alive")return u.status;if(j==="unknown")return{...$,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let B=Dl(u.status,e.bus,e.persistence);return e.runs.set(B.runId,Ei(B,!1,T)),B},"observePersistedRun"),l=i(async(u,v)=>{if(v?.ownedByRuntime===!0)return sn(v);if(Te(u.status.phase))return u.status;let T=u.owner??v?.observedOwner,$=v===void 0?u.status:sn(v);if(T===void 0)return{...$,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let j=await mr(T);return j==="alive"?u.status:{...$,phase:"unknown",stage:"unknown",error:j==="dead"?"owner_recovery_required":"owner_liveness_unconfirmed"}},"inspectPersistedRun"),m=i(u=>{n.get(u.sessionId)===u.runId&&n.delete(u.sessionId)},"releaseActiveRun"),R=i(u=>{t.get(u.runId)?.(),t.delete(u.runId)},"releaseActiveQueueRoute"),S=i(u=>{u.releaseAbortSignalSubscription?.(),u.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),y=i(u=>{u.actorSession===void 0||t.has(u.runId)||t.set(u.runId,Js(ji(u.sessionId,"/root")))},"registerActiveQueueRoute"),x=i((u,v)=>{u.start?.resolve(v),u.start=void 0,delete u.providerCredential},"resolveRunStart"),g=i((u,v)=>(u.settlementFinished===!0||(u.settlementFinished=!0,S(u),e.permissions.rejectForRun(u.runId,"runtime run ended"),e.userInputs.rejectForRun(u.runId,"runtime run ended"),u.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),x(u,v),R(u),m(u),Fh(e.runs),Z(u.sessionId)),v),"finishRun"),E=i((u,v)=>(u.settlementFinished===!0||(u.settlementFinished=!0,v.phase==="unknown"&&u.phase!=="unknown"&&(u.phase="unknown",u.stage="unknown",u.stageChangedAt=new Date().toISOString(),u.error=v.error?.message??"Actor settlement persistence is unknown.",ue(u)),S(u),e.permissions.rejectForRun(u.runId,"runtime run state is unknown"),e.userInputs.rejectForRun(u.runId,"runtime run state is unknown"),u.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),x(u,v),R(u)),v),"finishUnconfirmedRun"),d=i(u=>{let v=u.actorSession,T=u.actorTurnBaseline;return v===void 0||T===void 0?[]:v.rootControl().list().actors.flatMap($=>$.path!=="/root"&&$.currentTurnId!==void 0&&!T.has($.currentTurnId)?[$.currentTurnId]:[])},"activeManagedActorTurnIds"),p=i((u,v)=>{let T=u.actorSession,$=u.actorTurnBaseline;if(u.mode!=="managed_task"||u.stop===void 0||T===void 0||$===void 0)return Promise.resolve();let B=(u.actorCancellation??Promise.resolve()).then(()=>T.quiesce(v,$)).catch(me=>{ye({source:"runtime.run.actor-cancellation",level:"error",message:`Failed to cooperatively cancel Actor descendants for Runtime run ${u.runId}.`,detail:me})});return u.actorCancellation=B,B},"requestManagedActorCancellation"),h=i(async u=>{let v=u.actorFinalizationAbortController??=new AbortController,T=i(()=>({state:"unknown",code:"actor_settlement_not_persisted",message:"Actor finalization could not be confirmed within the bounded grace period."}),"finalizationTimedOut"),$=new AbortController,j,B=Number.POSITIVE_INFINITY,me,le=new Promise(Re=>{me=Re}),Se=i(Re=>{let Le=Date.now()+Re;Le>=B||(j!==void 0&&clearTimeout(j),B=Le,j=setTimeout(()=>{$.abort(new Error("Actor finalization grace expired")),me?.(T())},Re),j.unref?.())},"scheduleFinalizationTimer"),U=i(()=>{Se(Py)},"startCancellationTimer");Se(xy),v.signal.addEventListener("abort",U,{once:!0}),(v.signal.aborted||u.stop!==void 0||e.isClosed()||u.running?.aborted===!0||u.abortController?.signal.aborted===!0||u.start?.options.abortSignal?.aborted===!0)&&U();let se=i(async()=>{for(;;){if($.signal.aborted)return T();let Re=u.actorSession;if(Re===void 0)return{state:"healthy"};if(u.stop!==void 0&&u.actorTurnBaseline!==void 0&&(await p(u,u.stop.reason),$.signal.aborted))return T();let Le=Re.health();if(Le.state==="recovering"){let ie=e.waitForActorHealthChange(u.sessionId),G,ee=new Promise(ge=>{G=ge}),V=i(()=>G?.(),"handleFinalizationAbort");$.signal.addEventListener("abort",V,{once:!0});try{await Promise.race([ie.promise,ee])}finally{$.signal.removeEventListener("abort",V),G=void 0,ie.close()}continue}if(Le.state==="unknown")return Le;let We=Re.rootControl(),k=We.list(),D=u.stop!==void 0&&u.actorTurnBaseline!==void 0?d(u).length:k.activeNonRootTurns;if(D>0){if(u.stop?.state!=="unknown"){let fn=u.phase!=="waiting_agent",Oe=u.activeSubtaskCount!==D;fn&&(u.phase="waiting_agent",u.stage="waiting_agent",u.stageChangedAt=new Date().toISOString()),u.activeSubtaskCount=D,(fn||Oe)&&ue(u)}let ie=We.eventSnapshot().at(-1)?.sequence??0;if(u.stop!==void 0&&u.actorTurnBaseline!==void 0?d(u).length===0:We.list().activeNonRootTurns===0)continue;let G=e.waitForActorHealthChange(u.sessionId),ee,V=new Promise(fn=>{ee=fn}),ge=i(()=>ee?.(),"handleCancellation");v.signal.aborted?ge():v.signal.addEventListener("abort",ge,{once:!0});try{await Promise.race([We.wait(ie,void 0,$.signal),G.promise,V])}finally{v.signal.removeEventListener("abort",ge),ee=void 0,G.close()}continue}let H=k.admissionRevision;await Promise.resolve();let O=Re.health();if(O.state==="recovering")continue;let K=We.list();if(!((u.stop!==void 0&&u.actorTurnBaseline!==void 0?d(u).length:K.activeNonRootTurns)>0)&&!(H!==void 0&&K.admissionRevision!==H))return O}},"finalize");try{return await Promise.race([se(),le])}finally{v.signal.removeEventListener("abort",U),j!==void 0&&clearTimeout(j),$.abort()}},"awaitActorFinalization"),P=i((u,v)=>({runId:u.runId,sessionId:u.sessionId,phase:"unknown",...v!==void 0?{result:v}:{},error:new Error(u.lifecycleError?.message??u.error??"Actor settlement persistence is unknown."),...u.stop!==void 0?{stop:u.stop}:{}}),"unknownActorSettlementResult"),I=i((u,v)=>u.terminalEmitted?g(u,v):E(u,v),"finishAccordingToTerminalFact"),b=i((u,v,T)=>{u.terminalEmitted||u.executorTerminalSignal!==void 0||(u.interruptInputOpen=!1,u.executorTerminalSignal={signal:v,...T!==void 0?{error:T}:{},interruptedAtSignal:u.running?.aborted===!0||u.start?.options.abortSignal?.aborted===!0||u.abortController?.signal.aborted===!0},setImmediate(()=>{(async()=>{if(u.settlementFinished===!0)return;let $=u.executorTerminalSignal;if($===void 0)return;if((await h(u)).state==="unknown"){E(u,P(u));return}if($.signal==="failed"){g(u,A(u,$.error??new Error("Runtime executor reported failure")));return}u.terminalEmitted||ht(e.bus,e.persistence,u,$.interruptedAtSignal?"interrupted":"completed"),g(u,{runId:u.runId,sessionId:u.sessionId,phase:u.phase,...u.terminal!==void 0?{terminal:u.terminal}:{},...u.stop!==void 0?{stop:u.stop}:{}})})().catch($=>{ye({source:"runtime.run.finalization",level:"error",message:`Failed to settle Runtime run ${u.runId} after its executor terminal signal.`,detail:$})})}))},"settleFromExecutorSignal"),A=i((u,v)=>{if(u.mode==="managed_task"&&u.stop!==void 0&&u.abortController?.signal.aborted===!0&&v instanceof Error&&v.name==="AbortError")return u.terminalEmitted||(delete u.error,ht(e.bus,e.persistence,u,"interrupted",{code:"interrupted",effectOutcome:"unknown",message:u.stop?.reason})),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,...u.terminal!==void 0?{terminal:u.terminal}:{},...u.stop!==void 0?{stop:u.stop}:{}};let $=Gl(v,u),j=Kh(v),B=u.terminalEmitted?u.phase:j.phase;return u.terminalEmitted||(u.error=$.message),ht(e.bus,e.persistence,u,B,j.terminal),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,error:$,...u.terminal!==void 0?{terminal:u.terminal}:{},...u.stop!==void 0?{stop:u.stop}:{}}},"failedRunResult"),C=i(u=>{let v=u.actorSession;return v===void 0||v.health().state==="healthy"&&(u.stop!==void 0&&u.actorTurnBaseline!==void 0?d(u).length===0:v.rootControl().list().activeNonRootTurns===0)},"canApplyExecutorTerminalSignal"),M=i((u,v,T)=>{let $=u.executorTerminalSignal;if($!==void 0&&!u.terminalEmitted&&C(u))return $.signal==="failed"?A(u,$.error??new Error("Runtime executor reported failure")):(ht(e.bus,e.persistence,u,$.interruptedAtSignal?"interrupted":"completed"),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,...u.terminal!==void 0?{terminal:u.terminal}:{},...u.stop!==void 0?{stop:u.stop}:{}});if($!==void 0&&u.terminalEmitted)return{runId:u.runId,sessionId:u.sessionId,phase:u.phase,...u.terminal!==void 0?{terminal:u.terminal}:{},...u.stop!==void 0?{stop:u.stop}:{}};let j=u.phase==="queued";j&&Kc(s,u),delete u.actorHealthBaseState;let B=new Date().toISOString();if(u.stop??={requestedAt:B,state:j?"confirmed":"unknown",outcome:j?"cancelled":"unknown",reason:v,...j?{resolvedAt:B}:{}},S(u),u.running?.abort(new Error(v)),u.abortController?.abort(new Error(v)),p(u,v),u.actorFinalizationAbortController?.abort(new Error(v)),e.permissions.rejectForRun(u.runId,v),e.userInputs.rejectForRun(u.runId,v),u.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),!j){u.interruptInputOpen=!1,ws(u),u.phase="unknown",u.stage="unknown",u.stageChangedAt=B,u.error="stop_outcome_unconfirmed",u.lifecycleError?.retryable!==!1&&delete u.lifecycleError,ue(u);let le={runId:u.runId,sessionId:u.sessionId,phase:u.phase,...u.stop!==void 0?{stop:u.stop}:{}};return T||(x(u,le),R(u),m(u)),le}ht(e.bus,e.persistence,u,"cancelled",{code:"cancelled",effectOutcome:"none",message:v});let me={runId:u.runId,sessionId:u.sessionId,phase:u.phase,...u.stop!==void 0?{stop:u.stop}:{}};return x(u,me),R(u),m(u),T&&!e.isClosed()&&Z(u.sessionId),me},"cancelRun"),F=i(u=>{if(!u.start||e.isClosed()){M(u,"runtime closed",!1);return}u.phase="running",u.stage="executing",u.stageChangedAt=new Date().toISOString(),delete u.activeSubtaskCount,u.interruptInputOpen=u.actorSession!==void 0,u.queuedAt=void 0,u.runningAt=new Date().toISOString(),u.mode==="managed_task"&&u.actorSession!==void 0&&(u.actorTurnBaseline=new Set(u.actorSession.rootControl().list().actors.flatMap(U=>U.currentTurnId===void 0?[]:[U.currentTurnId]))),n.set(u.sessionId,u.runId);let v=sn(u),T=zn(e.bus,e.persistence,u,v);if(T===void 0)throw m(u),new Error(`Failed to persist running Runtime run: ${u.runId}`);if(T!==v)throw wt(u,T),m(u),Xn(`Runtime run already exists: ${u.runId}`,u.sessionOrder);e.bus.emit("run.started",v,{sessionId:u.sessionId,runId:u.runId});let $=qR({bus:e.bus,original:u.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:u,onExecutorTerminal:i((U,se)=>b(u,U,se),"onExecutorTerminal"),onPhase:i(U=>{if(u.terminalEmitted||u.executorTerminalSignal!==void 0||u.phase==="unknown"||u.stop?.state==="unknown")return;let se=U==="running"?"executing":U==="waiting_agent"?"waiting_agent":U==="recovering"?"recovering":void 0,Re=u.actorHealthBaseState;if(Re!==void 0){Re.phase=U,se!==void 0&&(Re.stage=se);return}u.phase===U&&(se===void 0||u.stage===se)||(u.phase=U,se!==void 0&&u.stage!==se&&(u.stage=se,u.stageChangedAt=new Date().toISOString()),ue(u))},"onPhase"),onStage:i((U,se)=>{if(u.terminalEmitted||u.executorTerminalSignal!==void 0||u.phase==="unknown"||u.stop?.state==="unknown")return;let Re=u.actorHealthBaseState;if(Re!==void 0){Re.stage=U,se===void 0?delete u.activeSubtaskCount:u.activeSubtaskCount=se;return}let Le=u.activeSubtaskCount!==se;u.stage===U&&!Le||(u.stage!==U&&(u.stage=U,u.stageChangedAt=new Date().toISOString()),se===void 0?delete u.activeSubtaskCount:u.activeSubtaskCount=se,ue(u))},"onStage"),onMidTurnUserMessages:i((U,se)=>qe(u,U,se),"onMidTurnUserMessages")}),j=Vy({agentPlane:e.agentPlane,defaultConfigHome:e.defaultConfigHome,events:$,model:u.model,options:u.start.options,provider:u.provider,record:u,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:u.sessionId,runId:u.runId,provider:u.provider,...u.model!==void 0?{model:u.model}:{},...j.effort!==void 0?{effort:j.effort}:{},...j.thinking!==void 0?{thinking:j.thinking}:{},...j.reasoningMode!==void 0?{reasoningMode:j.reasoningMode}:{},...j.agentMode!==void 0?{agentMode:j.agentMode}:{},...u.permissionMode!==void 0?{permissionMode:u.permissionMode}:{},...u.autoModeEngine!==void 0?{autoModeEngine:u.autoModeEngine}:{},...u.autoModeClassifierModel!==void 0?{autoModeClassifierModel:u.autoModeClassifierModel}:{},...u.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:u.autoModeTimeoutMs}:{},...u.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:u.autoModeSpeculativeWindowMs}:{},...j.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:j.compaction.triggerPercent}:{},...j.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:j.compaction.triggerTokens}:{},...j.context?.executionCwd!==void 0?{executionCwd:j.context.executionCwd}:{},...j.context?.shellExecution!==void 0?{shellKind:j.context.shellExecution.shell.kind,shellExecutionFingerprint:Vi(j.context.shellExecution)}:{}},{sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}}),u.mode==="managed_task"){let U=new AbortController;u.abortController=U;let se=j.abortSignal,Re=i(()=>{u.releaseAbortSignalSubscription=void 0,u.interruptInputOpen=!1;let k=se?.reason;M(u,k instanceof Error?k.message:typeof k=="string"&&k.trim().length>0?k:"external abort requested",!0)},"handleUpstreamAbort");se?.aborted&&Re();let Le=i(()=>Sa({...j,abortSignal:U.signal},u.start.prompt),"managedOperation"),We=u.providerCredential!==void 0?qi(u.provider,u.providerCredential,Le):Le();se!==void 0&&!se.aborted?(se.addEventListener("abort",Re,{once:!0}),u.releaseAbortSignalSubscription=()=>{se.removeEventListener("abort",Re)}):se?.aborted&&!U.signal.aborted&&Re(),y(u),We.then(async k=>{let D=u.terminalEmitted?u.phase:k.interrupted?"interrupted":k.success?"completed":"failed",H=!k.success&&!k.interrupted&&k.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...k.signalReason!==void 0?{message:k.signalReason}:{}}:void 0;return(await h(u)).state==="unknown"?P(u,k):(ht(e.bus,e.persistence,u,D,H),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,result:k,...u.terminal!==void 0?{terminal:u.terminal}:{},...u.stop!==void 0?{stop:u.stop}:{}})}).catch(async k=>(await h(u)).state==="unknown"?P(u):A(u,k)).then(k=>I(u,k));return}let B=i(()=>va(j,u.start.prompt),"codingOperation"),me=u.providerCredential!==void 0?qi(u.provider,u.providerCredential,B):B();u.running=me;let le=j.abortSignal,Se=i(()=>{u.releaseAbortSignalSubscription=void 0,u.interruptInputOpen=!1;let U=le?.reason;M(u,U instanceof Error?U.message:typeof U=="string"&&U.trim().length>0?U:"external abort requested",!0)},"handleUpstreamAbort");le?.aborted?Se():le!==void 0&&(le.addEventListener("abort",Se,{once:!0}),u.releaseAbortSignalSubscription=()=>{le.removeEventListener("abort",Se)}),y(u),me.result.then(async U=>{let se=u.terminalEmitted?u.phase:U.interrupted?"interrupted":U.success?"completed":"failed";return(await h(u)).state==="unknown"?P(u,U):(ht(e.bus,e.persistence,u,se),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,result:U,...u.stop!==void 0?{stop:u.stop}:{}})}).catch(async U=>(await h(u)).state==="unknown"?P(u):A(u,U)).then(U=>I(u,U))},"launchRecord"),te=i(u=>{try{F(u);return}catch(v){return h(u).then(T=>{if(T.state==="unknown"){E(u,P(u));return}g(u,A(u,v))}),{error:v}}},"startRecord"),Z=i(u=>{let v=s.get(u);if(!v||v.length===0||n.has(u))return;let T=v.shift();if(v.length===0&&s.delete(u),!T)return;let $=e.runs.get(T);if(!$||$.phase!=="queued"){Z(u);return}te($)},"drainNext"),pe=i(u=>{let v=sn(u),T=zn(e.bus,e.persistence,u,v);if(T===void 0)throw new Error(`Failed to persist queued Runtime run: ${u.runId}`);if(T!==v)throw wt(u,T),Xn(`Runtime run already exists: ${u.runId}`,u.sessionOrder);let $=s.get(u.sessionId)??[];$.push(u.runId),s.set(u.sessionId,$),e.bus.emit("run.queued",v,{sessionId:u.sessionId,runId:u.runId})},"enqueue"),ue=i(u=>{let v=sn(u),T=zn(e.bus,e.persistence,u,v);if(T!==void 0){if(T!==v){wt(u,T);return}e.bus.emit("run.updated",v,{sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}})}},"publishRunUpdate"),qe=i((u,v,T)=>{let $=new Map;for(let U of u.interruptInputs)U.state==="queued"&&U.queueMessageId!==void 0&&$.set(U.queueMessageId,U);let j=[],B=new Set;for(let U of v){if(B.has(U))continue;B.add(U);let se=$.get(U);se!==void 0&&j.push(se)}if(j.length===0)return;let me=new Date().toISOString(),le=j.map(U=>{if(U.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${U.inputId}`);let se=U.queueMessageId===void 0?void 0:T?.[U.queueMessageId];if(typeof se!="string"||se.length===0)throw new Error(`Runtime interrupt input is missing its canonical entry reference: ${U.inputId}`);let Re={inputId:U.inputId,afterRunId:U.afterRunId,input:U.input,queuedAt:U.queuedAt,deliveredAt:me,entryId:se,...U.origin!==void 0?{origin:U.origin}:{}};return{record:U,entryId:se,eventInput:Re}}),Se={sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:le.map(U=>U.eventInput)},Se,()=>{for(let U of le)U.record.state="delivered",U.record.deliveredAt=me,U.record.entryId=U.entryId,delete U.record.queueMessageId})}catch(U){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${Ne(U).message}`,inputIds:j.map(se=>se.inputId)},Se),U}ue(u)},"deliverInterruptInputs"),Ie=e.settingsOwner.subscribe((u,v)=>{for(let T of e.runs.values())T.sessionId!==u||T.phase!=="queued"&&!hn(T.phase)||(T.permissionMode=v.value.permissionMode,T.autoModeEngine=mn(v.value.permissionMode)==="auto"?v.value.autoModeEngine??"llm":v.value.autoModeEngine,T.autoModeClassifierModel=v.value.autoModeClassifierModel,T.autoModeTimeoutMs=v.value.autoModeTimeoutMs,T.autoModeSpeculativeWindowMs=v.value.autoModeSpeculativeWindowMs,ue(T))}),fe=i(async(u,v=!1)=>{let T=u.admittedSessionContext;if(u.ownedByRuntime&&T!==void 0&&(v||!Te(u.phase))){e.sessionAdmission.assertCachedIdentity(u.sessionId,{surface:T.runtimeInfo?.surface,profileId:T.runtimeInfo?.profileId});return}await e.sessionAdmission.assertRunAccess(u.sessionId)},"assertRunRecordAccess"),$e=i((u,v)=>{if(u.sessionId!==v)throw new Error(`Runtime continuation target ${u.runId} does not belong to session ${v}`);if(!hn(u.phase)&&u.phase!=="queued")throw new Er(u.runId)},"assertContinuationTarget"),Ee=i(async(u,v)=>{e.ensureOpen();let T=u,$=T.requiredAfterRunId,j=$===void 0?void 0:a($);j!==void 0&&($e(j,u.sessionId),await fe(j));let B=ol(u,e.artifacts,v),me=j?.admittedSessionContext;if(j!==void 0&&me===void 0)throw new Er(j.runId);if(me===void 0){let V=await e.sessionAdmission.loadExecutable(u.sessionId);me={gitRoot:V.gitRoot,...V.runtimeInfo!==void 0?{runtimeInfo:structuredClone(V.runtimeInfo)}:{}}}let le=(await e.settingsOwner.read(u.sessionId)).value;hs(me,le);let Se=XR(u.options??{},le,B.inputArtifacts,me),U=await e.actorRegistry.forSession(u.sessionId,Se.maxConcurrentThreadsPerSession),se=Se.agentMode==="sa"?void 0:U;if(se!==void 0){let V=se.health(),ge=V.state==="recovering"?await e.waitForActorHealthResolution(u.sessionId,V):V;if(ge.state==="unknown")throw Object.assign(new Error(ge.message??"Actor settlement persistence is unknown; the Session cannot start another Run."),{code:ge.code??"actor_settlement_not_persisted",retryable:!1})}let Re=Se.provider??e.defaultProvider;if(!Re)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");if(T.providerCredential!==void 0&&T.providerCredentialProvider!==void 0&&T.providerCredentialProvider!==Re)throw uw(`Credential lease is bound to ${T.providerCredentialProvider}, not ${Re}.`);let Le=Se.modelOverride??Se.model??e.defaultModel??js(Re)[0]?.id,We=u.trustedRunId??Oh();if(e.runs.has(We))throw Xn(`Runtime run already exists: ${We}`,0);let k=e.enableSharedInteractions||mn(le.permissionMode)==="auto";if(ch(le,Le),k&&Se.guardrails?.some(V=>V.kind==="tool"&&V.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let D=k?Qh({sessionId:u.sessionId,provider:Re,model:Le,options:Se,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let V=n.get(u.sessionId);return V===void 0?void 0:e.runs.get(V)},"getRecord"),onPhase:i((V,ge)=>{V.terminalEmitted||V.executorTerminalSignal!==void 0||V.phase==="unknown"||V.stop?.state==="unknown"||V.phase===ge||(V.phase=ge,ue(V))},"onPhase"),onEngineChange:i(V=>{for(let ge of e.runs.values())ge.sessionId===u.sessionId&&(ge.phase==="queued"||hn(ge.phase))&&ge.autoModeEngine!==V&&(ge.autoModeEngine=V,ue(ge));e.settingsOwner.persistAutoModeEngine(u.sessionId,V).catch(ge=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${Ne(ge).message}`},{sessionId:u.sessionId,runId:u.sessionId})})},"onEngineChange")}):void 0;await D?.prepare?.();let H=D===void 0?Se:{...Se,guardrails:[...Se.guardrails??[],D]},O=new Date().toISOString(),K=i(()=>{},"resolveResult"),Q=new Promise(V=>{K=V});j!==void 0&&$e(j,u.sessionId);let ie=e.persistence.nextSessionOrder(u.sessionId),G=j!==void 0||n.has(u.sessionId),ee={runId:We,sessionId:u.sessionId,phase:G?"queued":"running",stage:G?"queued":"executing",stageChangedAt:O,startedAt:O,sessionOrder:ie,...G?{queuedAt:O}:{},provider:Re,...Le!==void 0?{model:Le}:{},...u.permissionBroker!==void 0?{permissionBroker:u.permissionBroker}:{},...le.permissionMode!==void 0?{permissionMode:le.permissionMode}:{},...le.autoModeClassifierModel!==void 0?{autoModeClassifierModel:le.autoModeClassifierModel}:{},...le.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:le.autoModeTimeoutMs}:{},...le.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:le.autoModeSpeculativeWindowMs}:{},...mn(le.permissionMode)==="auto"?{autoModeEngine:le.autoModeEngine??"llm"}:le.autoModeEngine!==void 0?{autoModeEngine:le.autoModeEngine}:{},...Se.reasoningMode!==void 0?{reasoning:Se.reasoningMode}:{},mode:u.mode??"coding",...u.providerCredential!==void 0?{providerCredential:u.providerCredential}:{},hadProviderCredential:u.providerCredential!==void 0,...u.origin!==void 0?{origin:u.origin}:{},...$!==void 0?{continuation:{inputId:We,afterRunId:$,delivery:"after_turn",contentPreview:dl(B.prompt)}}:{},interruptInputs:[],...u.agentContext??e.defaultAgentContext?{agentContext:u.agentContext??e.defaultAgentContext}:{},...se?{actorSession:se}:{},admittedSessionContext:me,interruptInputOpen:!1,result:Q,start:{prompt:B.prompt,inputArtifacts:B.inputArtifacts,options:H,resolve:K},terminalEmitted:!1,ownedByRuntime:!0};if(e.runs.set(We,ee),G)pe(ee);else{let V=te(ee);if(V!==void 0)throw V.error}return{runId:We,sessionId:u.sessionId,get turnId(){return ee.turnId},result:Q}},"startRun"),Ye=i((u,v="runtime.runs.start")=>e.sessionOperations.run(u.sessionId,()=>Ee(u,v)),"start");return{start:Ye,async submitInput(u){e.ensureOpen();let v=a(u.afterRunId);if(v.sessionId!==u.sessionId)throw new Error(`Runtime continuation target ${u.afterRunId} does not belong to session ${u.sessionId}`);if(await fe(v,!0),u.delivery==="interrupt"){if(v.actorSession===void 0&&hn(v.phase)&&n.get(u.sessionId)===v.runId)return{accepted:!1,delivery:u.delivery,sessionId:u.sessionId,afterRunId:u.afterRunId,reason:"unsupported_capability"};if(!v.interruptInputOpen)return{accepted:!1,delivery:u.delivery,sessionId:u.sessionId,afterRunId:u.afterRunId,reason:"interrupt_window_closed"};if(!hn(v.phase)||n.get(u.sessionId)!==v.runId)return{accepted:!1,delivery:u.delivery,sessionId:u.sessionId,afterRunId:u.afterRunId,reason:"stale_run"};if(u.credential!==void 0||u.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let B=ol({sessionId:u.sessionId,input:u.input},e.artifacts,"runtime.runs.submitInput"),me=structuredClone(u.input),le=u,Se=le.trustedInputId??Nh();if(v.interruptInputs.some(Le=>Le.inputId===Se))throw Xn(`Runtime interrupt input already exists: ${Se}`,0);let U=Ys({sessionId:u.sessionId,content:B.prompt,inputArtifacts:B.inputArtifacts,provider:v.provider,...v.model!==void 0?{model:v.model}:{}}),se=new Date().toISOString(),Re={inputId:Se,afterRunId:u.afterRunId,delivery:"interrupt",state:"queued",contentPreview:dl(B.prompt),queuedAt:se,...le.origin!==void 0?{origin:le.origin}:{},input:me,queueMessageId:U};return v.interruptInputs.push(Re),ue(v),e.bus.emit("run.input.queued",{input:Ul(Re)},{sessionId:v.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:Se,runId:v.runId,sessionId:u.sessionId,afterRunId:u.afterRunId,sessionOrder:v.sessionOrder}}if(!hn(v.phase)&&v.phase!=="queued")return{accepted:!1,delivery:u.delivery,sessionId:u.sessionId,afterRunId:u.afterRunId,reason:"stale_run"};let T=u,$;try{$=await Ye({sessionId:u.sessionId,input:u.input,...T.options!==void 0?{options:T.options}:{},...T.providerCredential!==void 0?{providerCredential:T.providerCredential}:{},...T.providerCredentialProvider!==void 0?{providerCredentialProvider:T.providerCredentialProvider}:{},...T.origin!==void 0?{origin:T.origin}:{},...T.trustedRunId!==void 0?{trustedRunId:T.trustedRunId}:{},requiredAfterRunId:u.afterRunId},"runtime.runs.submitInput")}catch(B){if(!(B instanceof Er))throw B;return{accepted:!1,delivery:u.delivery,sessionId:u.sessionId,afterRunId:u.afterRunId,reason:"stale_run"}}let j=a($.runId).sessionOrder;return{accepted:!0,delivery:u.delivery,runId:$.runId,sessionId:u.sessionId,afterRunId:u.afterRunId,sessionOrder:j}},async await(u){e.ensureOpen();let v=e.runs.get(u);if(v?.ownedByRuntime===!0)return await fe(v),v.result;let T=e.persistence.loadRunStatus(u);if(T)return await e.sessionAdmission.assertRunAccess(T.status.sessionId),zl(await c(T,e.runs.get(u)));if(v)return await e.sessionAdmission.assertRunAccess(v.sessionId),v.result;throw new Error(`Runtime run not found: ${u}`)},async get(u){e.ensureOpen();let v=e.runs.get(u),T=e.persistence.loadRunStatus(u);if(T&&(v!==void 0?await fe(v):await e.sessionAdmission.assertRunAccess(T.status.sessionId),v===void 0||!v.ownedByRuntime||Te(T.status.phase)))return c(T,v);if(v)return await fe(v),sn(v);throw new Error(`Runtime run not found: ${u}`)},async list(u){e.ensureOpen(),u?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(u.sessionId);let v=e.persistence.loadRunStatuses(),T=await Promise.all(v.map(B=>c(B,e.runs.get(B.status.runId)))),$=new Map(T.map(B=>[B.runId,B]));for(let B of e.runs.values()){let me=$.get(B.runId);!B.ownedByRuntime||me!==void 0&&Te(me.phase)||$.set(B.runId,sn(B))}let j=[...$.values()].filter(B=>fl(B,u));return sl(ml(ll(j)),e.sessionAdmission)},async inspect(u){e.ensureOpen(),u?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(u.sessionId);let v=e.persistence.loadRunStatuses(),T=await Promise.all(v.map(B=>l(B,e.runs.get(B.status.runId)))),$=new Map(T.map(B=>[B.runId,B]));for(let B of e.runs.values())!B.ownedByRuntime||Te(B.phase)||$.set(B.runId,sn(B));let j=[...$.values()].filter(B=>fl(B,u));return sl(ml(ll(j)),e.sessionAdmission)},async inspectOne(u){e.ensureOpen();let v=e.runs.get(u),T=e.persistence.loadRunStatus(u);if(T!==void 0)return await e.sessionAdmission.assertRunAccess(T.status.sessionId),l(T,v);if(v!==void 0)return await e.sessionAdmission.assertRunAccess(v.sessionId),sn(v)},async abort(u){e.ensureOpen();let v=e.runs.get(u),T=e.persistence.loadRunStatus(u),$=v?.sessionId??T?.status.sessionId;if($===void 0)throw new Error(`Runtime run not found: ${u}`);if(await e.sessionAdmission.assertRunAccess($),v!==void 0&&Ii(v,e.runOwner),v?.executorTerminalSignal!==void 0&&!v.terminalEmitted&&C(v)){M(v,"runtime run aborted",!1);let B=e.persistence.loadRunStatus(u);return fs({accepted:!1,status:B?.status??sn(v),revision:B?.revision??0})}let j=e.persistence.requestRunStop(u,"runtime run aborted");if(v===void 0)return fs(j);if(wt(v,j.status),j.status.stop!==void 0&&v.actorFinalizationAbortController?.abort(new Error("runtime run aborted")),j.status.stop?.state==="unknown"&&delete v.actorHealthBaseState,j.accepted){let B=j.status.phase==="cancelled";if(B&&Kc(s,v),S(v),v.running?.abort(new Error("runtime run aborted")),v.abortController?.abort(new Error("runtime run aborted")),p(v,"runtime run aborted"),e.permissions.rejectForRun(v.runId,"runtime run aborted"),e.userInputs.rejectForRun(v.runId,"runtime run aborted"),v.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),v.interruptInputOpen=!1,ws(v),B){e.bus.emit("run.cancelled",j.status,{sessionId:v.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{}});let me={runId:v.runId,sessionId:v.sessionId,phase:v.phase,...v.terminal!==void 0?{terminal:v.terminal}:{},...v.stop!==void 0?{stop:v.stop}:{}};x(v,me),R(v),m(v),e.isClosed()||Z(v.sessionId)}else e.bus.emit("run.updated",j.status,{sessionId:v.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{}})}return fs(j)},async setModel(u,v){e.ensureOpen();let T=a(u);await e.sessionAdmission.assertRunAccess(T.sessionId),Ii(T,e.runOwner),T.model=v,T.running?.setModel(v),ue(T)},async setProvider(u,v){e.ensureOpen();let T=a(u);await e.sessionAdmission.assertRunAccess(T.sessionId),Ii(T,e.runOwner),T.provider=v,T.running?.setProvider(v),ue(T)},async setReasoning(u,v){e.ensureOpen();let T=a(u);await e.sessionAdmission.assertRunAccess(T.sessionId),Ii(T,e.runOwner),T.reasoning=v,T.running?.setReasoning(v),ue(T)},closeAll(u){Ie.close();for(let v of e.runs.values())v.ownedByRuntime&&(v.phase==="queued"||hn(v.phase)||v.phase==="unknown")&&M(v,u,!1);n.clear(),r.clear(),o.clear(),s.clear()},releaseSession(u){for(let v of r.get(u)?.values()??[])v.guardrail.clearAllowedCalls();r.delete(u),o.delete(u)},getAutoModeStats(u){let v=o.get(u);return v===void 0?void 0:{engine:v.engine,classifierHealth:xa(v.breaker,Date.now())?"degraded":"healthy",denials:v.denials,breaker:v.breaker}}}}i(Ky,"createRuntimeRunService");function Xy(){let e=fa();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&&jh(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(Xy,"createRuntimeWorkflowService");function Uy(e,n){return{async read(){return e(),Yt(Zn(n))},async patch(t){return e(),mh(t,"runtime.config.patch"),gh(n,fh(t)),Yt(Zn(n))},async reload(){return e(),n!==void 0?(Kl(n),{ok:!0,config:Yt(Zn(n))}):{ok:!0,config:Yt(Oa())}}}}i(Uy,"createRuntimeConfigService");function zy(e,n){return{async providers(){return e(),no()},async models(t){return e(),Ph(no(),t)},async commands(t){return e(),cl(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return cl(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(Dh)},async describeSkill(t){e();let r=await zi(t.projectRoot);return r.has(t.name)?Mh(await r.loadFull(t.name)):null},async customProviders(){return e(),Rh(n)},async upsertCustomProvider(t){return e(),hh(n,t)},async deleteCustomProvider(t){return e(),wh(n,t)},async extensions(){e();let t=xt();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=xt();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(zy,"createRuntimeCatalogService");function Wy(e,n){return{async listServers(){return e(),ms(n)},async getServer(t){return e(),Sh(n,t)},async validateServer(t,r){e();try{return to(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(),Ih(n,t,r)},async deleteServer(t){return e(),kh(n,t)},async reloadServers(){e();let t=Wi(ms(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=ms(n),o=t?.server!==void 0?[t.server]:Object.keys(r),s=Wi(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(Wy,"createRuntimeMcpService");function Gy(){let e=new Map;return{service:{async create(r){if(!KR(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=J.resolve(r.path),s;try{s=await q.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>Lc)throw new Error(`Runtime artifact exceeds the ${Lc}-byte limit: ${o}`);let a=`art_${Je().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(Gy,"createRuntimeArtifactStore");function Vy(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:S,...y}=o.context??{},x=o.guardrails?.find(Qt),g=o.context?.gitRoot??o.context?.executionCwd,E=x!==void 0&&g!==void 0?Ga({workspaceRoot:g,shouldSandbox:i(P=>x.consumeWorkspaceSandboxCall(P),"shouldSandbox")}):void 0,d=E!==void 0&&S!==void 0?{async prepare(P){let I,b=await E.prepare({...P,reportObservation:i(F=>{I=F},"reportObservation")});if(b!==void 0)return b;let A,C=await S.prepare({...P,reportObservation:i(F=>{A=F},"reportObservation")});if(C!==void 0)return C;let M=[A,I].find(F=>F?.state==="fallback")??A??I;M!==void 0&&P.reportObservation?.(M)}}:E??S,p=o.skillDynamicContext?.execute,h=o.skillDynamicContext?.disable===!0||p===void 0?{disable:!0}:{async execute(P,I){if(mn(a.permissionMode)==="plan")throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in Plan mode.");return p(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,...d!==void 0?{shellSandbox:d}:{},...l?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...a.actorSession?{actorSession:a.actorSession,interruptInput:{closeInputWindow(){a.interruptInputOpen=!1},reopenInputWindow(){!a.terminalEmitted&&hn(a.phase)&&o.abortSignal?.aborted!==!0&&(a.interruptInputOpen=!0)}}}:{},...n&&a.agentContext?{agentExecutorPlane:{plane:n,context:a.agentContext}}:{}}}}i(Vy,"buildRunOptions");function bi(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i(bi,"assertRuntimeAgentContext");function Jy(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(Jy,"localAgentReasons");function os(e){return bi(e),ar(e).map(n=>{let t=Jy(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(os,"runtimeLocalListings");function Yy(e,n,t,r,o,s){let a=new Map,c=!1,l=i((R,S)=>{if(c)return Promise.reject(new Error("KodaX runtime is closed"));let y=a.get(R);if(y)return y.then(g=>{let E=g.rootControl().list().maxConcurrentThreads;if(S!==void 0&&S!==E)throw new Error(`Actor concurrency for ${R} is already ${E}; cannot change it to ${S}.`);return g});let x=(async()=>{let g=await e.storage.peek(R);if(!g)throw new Error(`Session not found: ${R}`);let E=g.actorSnapshot?.maxConcurrentThreads;if(E!==void 0&&S!==void 0&&E!==S)throw new Error(`Persisted Actor concurrency for ${R} is ${E}; requested ${S}.`);let d={async load(){return(await e.storage.peek(R))?.actorSnapshot},save(h,P){return e.storage.saveActorSnapshot(R,h,P)}},p=new ha({sessionId:R,store:d,maxConcurrentThreadsPerSession:S??E,owner:{ownerId:`actor_${Je().replace(/-/g,"")}`,runtimeId:n.runtimeId,pid:process.pid,startedAt:n.startedAt,livenessId:t.id,livenessPort:t.port},isOwnerAlive:ho,onHealthChanged:i(h=>s?.(R,h),"onHealthChanged"),...r?{executor:wa({plane:r,context:o??{actorId:`runtime:${R}`}})}:{}});try{return await p.initialize(),s?.(R,p.health()),p}catch(h){if(!p.ownsDurableFence())throw h;try{await p.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,S)=>{let y=l(R,S),x=a.get(R),g=await y;if(!await e.storage.isArchived(R))return g;throw await g.close("archived Session execution rejected"),a.get(R)===x&&a.delete(R),Is(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 g=await e.storage.peek(y);if(g?.actorSnapshot&&!(g.actorSnapshot.schemaVersion===2&&g.actorSnapshot.owner!==void 0&&!await ho(g.actorSnapshot.owner)))return{sessionId:y,snapshot:g.actorSnapshot}}))).flatMap(y=>{if(!y)return[];let{sessionId:x,snapshot:g}=y;return g.actors.flatMap(E=>E.currentTurnId&&E.path!=="/root"?[{sessionId:x,actorPath:E.path,turnId:E.currentTurnId,kind:E.kind}]:[])})},async mutateSessionFile(R,S,y){if(c)throw new Error("KodaX runtime is closed");let x=a.get(R)??l(R),g=await x,d=g.rootControl().list();if(S==="mutate"&&await e.storage.isArchived(R))throw await g.close("archived Session mutation rejected"),a.get(R)===x&&a.delete(R),Is(R);let p=d.actors.some(P=>P.currentTurnId!==void 0);if((S==="archive"||S==="unarchive")&&p)throw Xn(`Session has active Agent turns and cannot be moved: ${R}`,d.revision);S==="delete"&&p&&await g.quiesce("session deleted");let h=await y(g.ownerId());return S==="delete"?g.disposeAfterStoreRemoval("session deleted"):S!=="mutate"&&await g.close(`session ${S}d`),S!=="mutate"&&a.get(R)===x&&a.delete(R),h},async close(R){c=!0;let S=await Promise.allSettled([...a.values()]),x=(await Promise.allSettled(S.flatMap(g=>g.status==="fulfilled"?[g.value.close(R)]:[]))).flatMap(g=>g.status==="rejected"?[g.reason]:[]);if(x.length===1)throw x[0];if(x.length>1)throw new AggregateError(x,"Actor registry cleanup failed.");a.clear()}}}i(Yy,"createRuntimeAgentActorRegistry");function Qy(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(),bi(c);let l=ar(c);return e?e.listDispatchable(c,l):os(c)},async describe(c,l){bi(l);let m=ar(l);return e?e.describe(c,l,m):os(l).find(R=>R.descriptor.agentId===c)},async preflight(c){bi(c.query);let l=ar(c.query);if(e)return e.preflight(c,l);let m=os(c.query).find(S=>S.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,S=>S.send(l,m,R))},async followup(c,l,m,R){return a(c,S=>S.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(Qy,"createRuntimeAgentService");function ss(){return new Error("Runtime external agent executor plane is not enabled.")}i(ss,"externalAgentsDisabled");function Zy(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw ss()},async setEnabled(){throw ss()},async remove(){throw ss()}}}}i(Zy,"createRuntimeAdminService");function eR(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(Ol),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await e.listRuns(),t=n.filter(R=>hn(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(eR,"createRuntimeStatusService");function nR(e){return{latestContextBudget(n){return as(e,"context.budget.snapshot",n)},latestToolExposure(n){return as(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return as(e,"provider.cache.diagnostics",n)}}}i(nR,"createRuntimeDiagnosticsService");async function as(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,S=R.contextKind==="child"?"child":"root";if(r!==void 0&&S!==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(as,"latestRuntimeDiagnosticPayload");function hn(e){return e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(hn,"isActiveRunPhase");function Kc(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(Kc,"removeQueuedRun");function tR(e,n,t){let r=re(n)?n:void 0;if((e==="assistant.delta"||e==="thinking.delta")&&typeof r?.text=="string")return{key:vr(e,n,t),mode:"append_text",bytes:Buffer.byteLength(r.text,"utf-8")};if(e==="tool.progress"&&typeof r?.partialJson=="string"){let o=re(r.meta)?r.meta:void 0,s=typeof o?.toolId=="string"?o.toolId:"";return s.length===0?void 0:{key:vr(e,n,t,`tool:${s}`),mode:"append_tool_input",bytes:Buffer.byteLength(r.partialJson,"utf-8")}}if(e==="tool.progress"&&re(r?.update)){let o=typeof r.update.id=="string"?r.update.id:"";return o.length===0?void 0:{key:vr(e,n,t,`progress:${o}`),mode:"latest",bytes:ds(n),preserveFirst:!0}}if(e==="run.progress"&&r?.kind==="managed_task_status")return{key:vr(e,n,t),mode:"latest",bytes:ds(n)};if(e==="workflow.updated"){let o=re(r?.snapshot)?r.snapshot:void 0,s=typeof o?.runId=="string"?o.runId:"";return s.length===0?void 0:{key:vr(e,n,t,`workflow:${s}`),mode:"latest",bytes:ds(n)}}}i(tR,"runtimeEventMergePlan");function ds(e){try{return Buffer.byteLength(JSON.stringify(e)??"","utf-8")}catch{return ps}}i(ds,"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 rR(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(rR,"snapshotRuntimeEventPayload");function vr(e,n,t,r=""){let o=re(n)?n:void 0,s=re(o?.meta)?o.meta:void 0,a=re(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(vr,"runtimeEventMergeKey");function iR(e,n){let t=e.merge;if(t===void 0)return n;let r=t.mode,o=re(e.payload)?e.payload:{},s=re(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(iR,"mergeRuntimeEventEmissions");function oR(e){let n=!1,t=[],r=new Map,o=new Map,s=[],a=[],c=new Map,l=new Set,m=new Set,R=0,S,y=!1,x,g,E,d=!1,p=!1,h=0,P=0,I=i((v,T)=>T?!(T.sessionId!==void 0&&v.sessionId!==T.sessionId||T.runId!==void 0&&v.runId!==T.runId||T.type!==void 0&&!(Array.isArray(T.type)?T.type:[T.type]).includes(v.type)):!0,"matches"),b=i(v=>{t.push(v),t.length>Ci&&t.splice(0,t.length-Ci)},"remember"),A=i(v=>{for(let T of[...m])if(I(v,T.filter))try{T.listener(v)}catch($){ye({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${v.type}`,detail:{eventId:v.id,error:Ne($)}})}},"notifyOne"),C=i(v=>{if(a.push(...v),!p){p=!0;try{for(;h<a.length;){let T=a[h];h+=1,T!==void 0&&A(T)}}finally{a.splice(0,h),h=0,p=!1}}},"notify"),M=i((v,T)=>v.length===0?[]:v.map(($,j)=>{let B=T+j;return{id:`evt_${B}_${Je().replace(/-/g,"").slice(0,8)}`,seq:B,time:$.time,sessionId:$.scope.sessionId,runId:$.scope.runId,...$.scope.turnId!==void 0?{turnId:$.scope.turnId}:{},type:$.type,payload:$.payload}}),"createEvents"),F=i((v,T)=>{if(x!==void 0)throw x;try{return e.commitEvents(v,T)}catch($){throw $ instanceof Ar&&(x=$,g=void 0,Z(),s.splice(0,s.length),R=0,P=0,c.clear()),$}},"commitEvents"),te=i(v=>{for(let T of v){o.set(T.sessionId,T.seq);let $=r.get(T.sessionId)??Xc();r.set(T.sessionId,$),sR($,T),b(T),Es(T.type)&&c.delete(T.runId)}},"applyAndRemember"),Z=i(()=>{S!==void 0&&(clearTimeout(S),S=void 0)},"clearScheduledFlush"),pe=i(()=>{let v=s[0]?.scope.runId;if(v===void 0)return 0;let T=0;for(;s[T]?.scope.runId===v;)T+=1;return T},"nextRunEmissionCount"),ue=i(()=>{if(Z(),x!==void 0)throw x;for(;s.length>0;){let v=pe(),T=s.slice(0,v),$;try{$=F(v,j=>M(T,j))}catch(j){throw x===void 0&&(g=Ne(j),Z()),j}g=void 0,s.splice(0,v),R=Math.max(0,R-T.reduce((j,B)=>j+(B.merge?.bytes??0),0)),P=Math.max(0,P-T.reduce((j,B)=>j+Gt(B),0)),d=!1,te($),C($)}},"flushPending"),qe=i(()=>{n||x!==void 0||g!==void 0||S===void 0&&(S=setTimeout(()=>{if(S=void 0,!n)try{ue()}catch(v){d||(d=!0,ye({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:v}))}},wy),S.unref?.())},"scheduleFlush"),Ie=i(()=>{try{ue()}catch(v){d||(d=!0,ye({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:v}))}},"flushPendingSafely"),fe=i(v=>{let T=F(1,$=>M([v],$));te(T),C(T)},"commitEmissionDirectly"),$e=i(v=>{let T=v.merge;if(T?.mode==="latest"){for(let $=s.length-1;$>=0;$-=1){let j=s[$];if(j?.merge===void 0)break;if(j.merge.mode==="latest"&&j.merge.key===T.key){s.splice($,1),R=Math.max(0,R-j.merge.bytes),P=Math.max(0,P-Gt(j));break}}s.push(v),R+=T.bytes,P+=Gt(v)}},"replacePendingLatest"),Ee=i(v=>{let T=v.merge;if(T?.mode!=="latest"||T.preserveFirst!==!0)return!1;let $=c.get(v.scope.runId)??new Set;return $.has(T.key)?!1:($.add(T.key),c.set(v.scope.runId,$),!0)},"shouldPreserveFirstLatest"),Ye=i((v,T,$)=>{if(n)throw new Error("KodaX runtime event bus is closed");if(x!==void 0)throw x;if(g!==void 0)throw g;let j=rR(T),B=tR(v,j,$),me={type:v,payload:j,scope:$,time:new Date().toISOString(),...B!==void 0?{merge:B}:{}},le=Gt(me);if(le>Nc){ue(),fe(me);return}if((s.length>=Ry||P+le>Nc)&&ue(),B===void 0){s.push(me),P+=le,Ie();return}if(B.mode==="latest"){if(Ee(me)){s.push(me),R+=B.bytes,P+=le,Ie();return}$e(me)}else{let Se=s.at(-1),U=Se?.merge?.key===B.key&&Se.merge.mode===B.mode;if(U&&Se.merge.bytes+B.bytes>ps){if(Ie(),x!==void 0)throw x;if(g!==void 0)throw g;s.push(me),R+=B.bytes,P+=le}else if(U){let se=iR(Se,me);R+=(se.merge?.bytes??0)-Se.merge.bytes,P+=Gt(se)-Gt(Se),s[s.length-1]=se}else s.push(me),R+=B.bytes,P+=le}R>=ps?Ie():qe()},"enqueue");return{service:{subscribe(v,T){if(n)throw new Error("KodaX runtime event bus is closed");ue();let $={filter:v,listener:T};return m.add($),{close(){m.delete($),!y&&(y=!0,queueMicrotask(()=>{y=!1,n||Ie()}))}}},async replay(v){ue();let T=e.replay(v),$=new Map;for(let B of T)$.set(B.id,B);for(let B of t)$.set(B.id,B);let j=[...$.values()].filter(B=>I(B,v)&&(v?.sinceSeq===void 0||B.seq>v.sinceSeq)).sort((B,me)=>B.seq-me.seq||B.time.localeCompare(me.time));return v?.limit===void 0?j:j.slice(-v.limit)}},subscribeClose(v){return n?(v(),{close(){}}):(l.add(v),{close(){l.delete(v)}})},emit(v,T,$){Ye(v,T,$)},emitDurable(v,T,$,j){ue();let B={type:v,payload:T,scope:$,time:new Date().toISOString()},me=F(1,le=>M([B],le))[0];return j?.(),te([me]),C([me]),me},projectSession(v){ue();let T=r.get(v);return Uc(T===void 0?Xc():T)},currentSessionSeq(v){ue();let T=o.get(v);if(T!==void 0)return T;let $=cR(e.replay({sessionId:v}));return o.set(v,$),$},close(){if(n){if(E!==void 0)throw E;return}let v;try{ue()}catch(T){v=Ne(T)}finally{n=!0,Z(),s.splice(0,s.length),R=0,P=0;for(let T of[...l])try{T()}catch($){ye({source:"runtime.events",level:"error",message:"Runtime event close listener failed.",detail:Ne($)})}l.clear();try{e.close()}catch(T){let $=Ne(T);v??=$,ye({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:$})}m.clear(),r.clear(),o.clear()}if(E=v,v!==void 0)throw v}}}i(oR,"createRuntimeEventBus");function Xc(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(Xc,"createRuntimeSessionLiveProjectionState");function sR(e,n){let t=re(n.payload)?n.payload:void 0;if(!dR(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=wi(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=wi(n),o=e.activeTools.get(r)??zc(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.sandbox"){let r=wi(n),o=e.activeTools.get(r)??zc(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,sandbox:n.payload})}else if(n.type==="tool.finished"){let r=wi(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=uR(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(Es(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(sR,"applyRuntimeSessionEvent");var aR=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","todo.updated"]);function dR(e,n){if(!aR.has(e))return!1;let t=re(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=re(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}i(dR,"isChildOwnedPrimaryLiveEvent");function Uc(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(Uc,"snapshotRuntimeSessionLiveProjection");function uR(e){if(!(!re(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(uR,"parseRuntimeManagedTaskStatus");function cR(e){return e.at(-1)?.seq??0}i(cR,"latestRuntimeEventSeq");function wi(e){let n=re(e.payload)?e.payload:void 0,t=re(n?.meta)?n.meta:void 0,r=re(n?.tool)?n.tool:void 0,o=re(n?.update)?n.update:void 0,s=re(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(wi,"runtimeToolProjectionKey");function zc(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(zc,"latestActiveToolForRun");function Es(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(Es,"isTerminalRuntimeEvent");function lR(e,n){let t=e.homeDir?J.resolve(e.homeDir):e.sessionsDir?J.resolve(e.sessionsDir,".."):process.cwd(),r=e.sharedDaemonHost===!0?J.join(t,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):J.join(t,".kodax","runtime"),o=J.join(r,"runs"),s=J.join(r,"session-settings"),a=J.join(r,"session-orders"),c=J.join(r,"permission-grants.json"),l=J.join(r,"event-sequence"),m=J.join(r,"run-status-index.json"),R,S,y=i(k=>J.join(o,encodeURIComponent(k)),"runDir"),x=i(k=>J.join(y(k),"events.jsonl"),"eventFile"),g=i(k=>J.join(y(k),"events.watermark"),"eventWatermarkFile"),E=i(k=>J.join(y(k),"status.json"),"statusFile"),d=i(k=>J.join(s,`${encodeURIComponent(k)}.json`),"sessionSettingsFile"),p=i(k=>J.join(a,`${encodeURIComponent(k)}.json`),"sessionOrderFile"),h=[],P=new Set,I=i(()=>{if(q.existsSync(l))try{let k=Number.parseInt(q.readFileSync(l,"utf-8").trim(),10);if(Number.isSafeInteger(k)&&k>=0)return k}catch(k){ye({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:k})}},"readEventSequenceCursor"),b=i(()=>{let k=0;if(!q.existsSync(o))return k;for(let D of q.readdirSync(o,{withFileTypes:!0})){if(!D.isDirectory())continue;let H=J.join(o,D.name,"events.jsonl");if(!q.existsSync(H))continue;let O=q.statSync(H).size,K=Math.min(O,Hc);for(;K>0;){let Q=Buffer.allocUnsafe(K),ie=q.openSync(H,"r");try{q.readSync(ie,Q,0,K,O-K)}finally{q.closeSync(ie)}let G=Q.toString("utf-8").split(/\r?\n/);K<O&&G.shift();let ee=!1;for(let V of G)if(V.trim())try{let ge=JSON.parse(V);Sr(ge)&&Number.isSafeInteger(ge.seq)&&(k=Math.max(k,ge.seq),ee=!0)}catch{}if(ee||K===O)break;K=Math.min(O,K*2)}}return k},"findMaxPersistedEventSeq"),A=i(k=>{if(!Number.isSafeInteger(k)||k<=0)throw new Error("Runtime event sequence batch size must be positive");let D=I(),H=S===void 0||D===void 0?b():S;S=Math.max(D??0,H,S??0);let O=S+1,K=S+k;return xn(l,K),S=K,R=K+1,O},"reserveEventSeqsLocked"),C=i(k=>(q.mkdirSync(r,{recursive:!0}),Mn(l,()=>A(k))),"reserveEventSeqs"),M=i(k=>{if(!q.existsSync(o))return 0;let D=0;for(let H of q.readdirSync(o,{withFileTypes:!0}))if(H.isDirectory())try{let O=vi(J.join(o,H.name,"status.json"));if(O?.status.sessionId!==k)continue;D=Math.max(D,O.status.sessionOrder??0)}catch{}return D},"findMaxPersistedSessionOrder"),F=i((k,D,H)=>{if(P.has(k))return;P.add(k);let O=C(1),K={id:`evt_persist_warn_${O}_${Je().replace(/-/g,"").slice(0,8)}`,seq:O,time:new Date().toISOString(),sessionId:H.sessionId??"runtime",runId:H.runId??H.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:D,...H.file!==void 0?{file:H.file}:{}}};h.push(K),h.length>Ci&&h.splice(0,h.length-Ci)},"pushPersistenceWarning"),te=i((k,D)=>[...k,...h].filter(H=>kR(H,D)).sort((H,O)=>H.seq-O.seq||H.time.localeCompare(O.time)),"withPersistenceWarnings"),Z=i((k,D)=>{if(!q.existsSync(k))return[];let H=q.readFileSync(k,"utf-8"),O=[],K=H.split(/\r?\n/);for(let Q=0;Q<K.length;Q+=1){let ie=K[Q]??"";if(ie.trim())try{let G=JSON.parse(ie);Sr(G)?O.push(G):F(`${k}:${Q+1}:shape`,`Skipped malformed runtime event record at ${J.basename(k)}:${Q+1}`,{runId:D,file:k})}catch(G){F(`${k}:${Q+1}:parse`,`Skipped malformed runtime event record at ${J.basename(k)}:${Q+1}: ${Ne(G).message}`,{runId:D,file:k})}}return O},"readEventsFromFile"),pe=i((k,D)=>{if(q.statSync(k).size<=Sl)return;let H=q.readFileSync(k,"utf-8").trimEnd().split(/\r?\n/),O=[],K=0,Q=H.length;for(let V=H.length-1;V>=0;V-=1){let ge=H[V]??"";if(!ge)continue;let fn=Buffer.byteLength(ge,"utf-8")+1;if(O.length>0&&K+fn>vy)break;O.push(ge),K+=fn,Q=V}O.reverse();let ie=us(g(D)),G=ie.droppedThrough,ee=ie.sessionId;for(let V of H.slice(0,Q))try{let ge=JSON.parse(V);Sr(ge)&&(G=Math.max(G,ge.seq),ee??=ge.sessionId)}catch{}if(ee===void 0)for(let V of O)try{let ge=JSON.parse(V);if(Sr(ge)){ee=ge.sessionId;break}}catch{}xn(g(D),{droppedThrough:G,...ee!==void 0?{sessionId:ee}:{}}),Di(k,O.length>0?`${O.join(`
24
+ `)}
25
+ `:"")},"trimEventFile"),ue=i(k=>{if(!q.existsSync(k))return 0;let D=q.openSync(k,"r"),H=0,O;try{if(H=q.fstatSync(D).size,H===0)return 0;let Q=Buffer.allocUnsafe(1);if(q.readSync(D,Q,0,1,H-1),Q[0]===10)return H;let ie=Math.min(H,Hc);for(;O=Buffer.allocUnsafe(ie),q.readSync(D,O,0,ie,H-ie),!(O.lastIndexOf(10)>=0||ie===H);)ie=Math.min(H,ie*2)}finally{q.closeSync(D)}let K=H-O.length+O.lastIndexOf(10)+1;try{let Q=JSON.parse(O.subarray(O.lastIndexOf(10)+1).toString("utf-8"));if(Sr(Q))return q.appendFileSync(k,`
26
+ `,"utf-8"),H+1}catch{}return q.truncateSync(k,K),K},"repairIncompleteEventTail"),qe=i(k=>{let D=k[0];if(D===void 0)return;if(k.some(Q=>Q.runId!==D.runId))throw new Error("Runtime event persistence batches must contain one Run");let H=y(D.runId),O=x(D.runId);q.mkdirSync(H,{recursive:!0});let K;try{Mn(O,()=>{let Q=ue(O),ie=k.map(G=>`${JSON.stringify(G)}
27
+ `).join("");try{q.appendFileSync(O,ie,"utf-8")}catch(G){if(Nn(G)==="EISDIR")throw G;try{q.truncateSync(O,Q)}catch(ee){throw new Ar(G,ee)}throw G}try{pe(O,D.runId)}catch(G){K=G}})}catch(Q){if(!(Q instanceof It))throw Q;K=K===void 0?Q.cleanupError:new AggregateError([K,Q.cleanupError],"Runtime event trim and status-lock cleanup both failed")}return K},"appendEventBatch"),Ie=i((k,D)=>{q.mkdirSync(r,{recursive:!0});let H,O,K;try{K=Mn(l,()=>{let ie=A(k),G=D(ie);if(G.length!==k||G.some((ee,V)=>ee.seq!==ie+V))throw new Error("Runtime event batch must match its reserved sequence range");return H=qe(G),O=G,G})}catch(ie){if(!(ie instanceof It)||O===void 0)throw ie;K=O,H=H===void 0?ie.cleanupError:new AggregateError([H,ie.cleanupError],"Runtime event file and sequence-lock cleanup both failed")}let Q=K[0];if(H!==void 0&&Q!==void 0){let ie=x(Q.runId);try{F(`${ie}:trim`,`Failed to trim runtime event file: ${Ne(H).message}`,{runId:Q.runId,sessionId:Q.sessionId,file:ie})}catch(G){ye({source:"runtime.persistence",level:"warn",message:"Runtime events committed, but their trim warning could not be recorded",detail:G})}}return K},"commitEventBatch"),fe=i(k=>{if(k?.sinceSeq===void 0)return;let D=i(H=>{if(k.sinceSeq<H.droppedThrough)throw be(`Runtime event history before sequence ${H.droppedThrough} is no longer retained`)},"assertWatermark");if(k.runId!==void 0){D(us(g(k.runId)));return}if(q.existsSync(o))for(let H of q.readdirSync(o,{withFileTypes:!0})){if(!H.isDirectory())continue;let O=us(J.join(o,H.name,"events.watermark"));if(k.sessionId!==void 0)try{let K=vi(J.join(o,H.name,"status.json"));if(K!==void 0&&K.status.sessionId!==k.sessionId||K===void 0&&O.sessionId!==void 0&&O.sessionId!==k.sessionId)continue}catch{if(O.sessionId!==void 0&&O.sessionId!==k.sessionId)continue}D(O)}},"assertReplayCursorRetained"),$e=i(k=>{let D=E(k);if(q.existsSync(D))try{let H=Tl(JSON.parse(q.readFileSync(D,"utf-8")));if(H)return H;F(`${D}:shape`,`Skipped malformed runtime status record at ${J.basename(D)}`,{runId:k,file:D})}catch(H){F(`${D}:parse`,`Skipped malformed runtime status record at ${J.basename(D)}: ${Ne(H).message}`,{runId:k,file:D})}},"readIndexedRunStatus"),Ee=i(k=>{try{let D=q.statSync(k,{bigint:!0});return{dev:D.dev.toString(),ino:D.ino.toString(),size:D.size.toString(),mtimeNs:D.mtimeNs.toString(),ctimeNs:D.ctimeNs.toString()}}catch(D){if(Nn(D)==="ENOENT")return null;throw D}},"readRuntimePathIdentity"),Ye=i((k,D)=>k===null||D===null?k===D:k.dev===D.dev&&k.ino===D.ino&&k.size===D.size&&k.mtimeNs===D.mtimeNs&&k.ctimeNs===D.ctimeNs,"sameRuntimePathIdentity"),u=i(()=>{if(!q.existsSync(o))return{statuses:[],pendingRunStatuses:[],pendingOverflow:!1};let k=[],D=[],H=!1;for(let O of q.readdirSync(o,{withFileTypes:!0})){if(!O.isDirectory())continue;let K;try{K=decodeURIComponent(O.name)}catch{continue}let Q=$e(K);if(Q!==void 0){k.push(Q);continue}if(D.length>=es){H=!0;continue}D.push({runId:K,identity:Ee(E(K))})}return{statuses:k,pendingRunStatuses:D,pendingOverflow:H}},"scanAllRunStatuses"),v=i((k,D)=>[...new Set(k)].filter(H=>Buffer.byteLength(H,"utf-8")<=ns).slice(-D),"boundedRunIds"),T=i((k,D,H=k.pendingOverflow)=>{let O=[...k.statuses].sort((K,Q)=>Un(K.status,Q.status));return{version:2,activeRunIds:v(O.filter(K=>!Te(K.status.phase)).map(K=>K.status.runId),On),recentRunIds:v(O.map(K=>K.status.runId),hi),runsDirectory:D,pendingRunStatuses:k.pendingRunStatuses,requiresRescan:H}},"createRunStatusIndex"),$=i(k=>{if(!re(k)||k.version!==2||!Array.isArray(k.activeRunIds)||!Array.isArray(k.recentRunIds)||!Array.isArray(k.pendingRunStatuses)||typeof k.requiresRescan!="boolean")return;let D=i((G,ee)=>{if(G.length>ee||!G.every(ge=>typeof ge=="string"&&Buffer.byteLength(ge,"utf-8")<=ns))return;let V=G;return new Set(V).size===V.length?V:void 0},"parseIds"),H=D(k.activeRunIds,On),O=D(k.recentRunIds,hi),K=i(G=>{if(G===null)return null;if(!(!re(G)||![G.dev,G.ino,G.size,G.mtimeNs,G.ctimeNs].every(V=>typeof V=="string"&&/^\d{1,32}$/.test(V))))return{dev:G.dev,ino:G.ino,size:G.size,mtimeNs:G.mtimeNs,ctimeNs:G.ctimeNs}},"parseIdentity"),Q=K(k.runsDirectory);if(Q===void 0||k.pendingRunStatuses.length>es)return;let ie=[];for(let G of k.pendingRunStatuses){if(!re(G)||typeof G.runId!="string"||Buffer.byteLength(G.runId,"utf-8")>ns)return;let ee=K(G.identity);if(ee===void 0)return;ie.push({runId:G.runId,identity:ee})}if(new Set(ie.map(G=>G.runId)).size===ie.length)return H===void 0||O===void 0?void 0:{version:2,activeRunIds:H,recentRunIds:O,runsDirectory:Q,pendingRunStatuses:ie,requiresRescan:k.requiresRescan}},"parseRunStatusIndex"),j=i(()=>{if(!q.existsSync(m))return;let k;try{k=q.openSync(m,"r");let D=q.fstatSync(k).size;if(D>hy)return;let H=Buffer.allocUnsafe(D),O=0;for(;O<D;){let K=q.readSync(k,H,O,D-O,O);if(K===0)return;O+=K}return $(JSON.parse(H.toString("utf-8")))}catch(D){Nn(D)!=="ENOENT"&&ye({source:"runtime.persistence",level:"warn",message:"Runtime run-status index is invalid; rebuilding it once",detail:D});return}finally{k!==void 0&&q.closeSync(k)}},"readRunStatusIndex"),B=i(k=>k.every(D=>Ye(D.identity,Ee(E(D.runId)))),"pendingRunStatusesUnchanged"),me=i(k=>!k.requiresRescan&&Ye(k.runsDirectory,Ee(o))&&B(k.pendingRunStatuses),"runStatusIndexIsCurrent"),le=i(()=>{let k,D=!1;for(let H=0;H<3;H+=1){let O=Ee(o),K=u();D||=K.pendingOverflow;let Q=Ee(o),ie=Ye(O,Q)&&B(K.pendingRunStatuses);if(k=T(K,Q,!ie||K.pendingOverflow),ie)break}return k===void 0&&(k=T({statuses:[],pendingRunStatuses:[],pendingOverflow:!0},Ee(o),!0)),D&&ye({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:es}}),xn(m,k),k},"rebuildRunStatusIndexLocked"),Se=i(()=>{let k=j();return k!==void 0&&me(k)?k:le()},"ensureRunStatusIndexLocked"),U=new Map,se,Re=i(k=>{se=k.requiresRescan?Ee(m)??void 0:void 0},"rememberRunStatusIndexState"),Le=i((k,D)=>{q.mkdirSync(r,{recursive:!0}),Mn(m,()=>{let H=j()??le();Re(H);let O=[...U.values()].filter(Oe=>Oe.runId!==k.runId).sort(Un),K=new Set(O.map(Oe=>Oe.runId)),Q=v([...H.recentRunIds.filter(Oe=>Oe!==k.runId&&!K.has(Oe)),...O.map(Oe=>Oe.runId),k.runId],hi),ie=D?H.activeRunIds.filter(Oe=>Oe!==k.runId&&!K.has(Oe)):v([...H.activeRunIds.filter(Oe=>Oe!==k.runId&&!K.has(Oe)),k.runId],On),G=H.pendingRunStatuses.filter(Oe=>Oe.runId!==k.runId&&!K.has(Oe.runId)),ee=Ee(o),V=H.requiresRescan||!Ye(ee,H.runsDirectory);if(ie.length===H.activeRunIds.length&&Q.length===H.recentRunIds.length&&G.length===H.pendingRunStatuses.length&&Ye(ee,H.runsDirectory)&&ie.every((Oe,Wn)=>Oe===H.activeRunIds[Wn])&&Q.every((Oe,Wn)=>Oe===H.recentRunIds[Wn])){for(let Oe of O)U.delete(Oe.runId);return}let fn={version:2,activeRunIds:ie,recentRunIds:Q,runsDirectory:ee,pendingRunStatuses:G,requiresRescan:V};xn(m,fn),Re(fn);for(let Oe of O)U.delete(Oe.runId)})},"updateRunStatusIndex"),We=i(k=>{if(Te(k.phase)){U.delete(k.runId),U.set(k.runId,k),q.mkdirSync(r,{recursive:!0});try{Mn(m,()=>{if(se!==void 0&&Ye(se,Ee(m)))return;let D=j()??le();if(D.requiresRescan)Re(D);else{let H={...D,requiresRescan:!0};xn(m,H),Re(H)}})}catch(D){ye({source:"runtime.persistence",level:"warn",message:"Runtime terminal status committed, but its derived run-status index could not be marked dirty",detail:{runId:k.runId,error:D}})}}},"finalizeRunStatusIndex");return{runtimeDir:r,commitEvents(k,D){return Ie(k,D)},close(){q.mkdirSync(r,{recursive:!0}),Mn(m,()=>{Re(le())}),U.clear()},nextSessionOrder(k){q.mkdirSync(a,{recursive:!0});let D=p(k);return Mn(D,()=>{let H;if(q.existsSync(D))try{let K=JSON.parse(q.readFileSync(D,"utf-8"));typeof K=="number"&&Number.isSafeInteger(K)&&K>=0&&(H=K)}catch{H=void 0}let O=(H??M(k))+1;return xn(D,O),O})},currentEventSeq(){return S??=b(),Math.max(R===void 0?0:R-1,I()??0,S)},replay(k){if(fe(k),k?.runId)return te(Z(x(k.runId),k.runId),k);if(!q.existsSync(o))return te([],k);let D=[];for(let H of q.readdirSync(o,{withFileTypes:!0}))H.isDirectory()&&D.push(...Z(J.join(o,H.name,"events.jsonl"),H.name));return te(D,k)},saveRunStatus(k){let D=y(k.runId);q.mkdirSync(D,{recursive:!0});let H=E(k.runId);return Mn(H,()=>{let O=vi(H);return O&&Te(O.status.phase)||O?.owner!==void 0&&O.owner.ownerId!==n.ownerId&&!Te(k.phase)?O.status:(xn(H,{...k,_runtime:{revision:(O?.revision??0)+1,owner:n}}),Te(k.phase)?We(k):O===void 0&&Le(k,!1),k)})},requestRunStop(k,D){let H=E(k);return Mn(H,()=>{let O=vi(H);if(O===void 0)throw new Error(`Runtime run not found: ${k}`);if(O.owner!==void 0&&O.owner.ownerId!==n.ownerId&&!Te(O.status.phase))throw Xn(`Runtime ${n.runtimeId} does not own run ${k}`,O.revision);let K=O.status;if(K.stop!==void 0||K.phase==="unknown"||Te(K.phase)||K.phase!=="queued"&&!hn(K.phase))return{accepted:!1,status:K,revision:O.revision};let Q=new Date().toISOString(),{lifecycleError:ie,...G}=K,ee=K.phase==="queued"?{...G,phase:"cancelled",stage:"terminal",stageChangedAt:Q,activeSubtaskCount:0,endedAt:Q,stop:{requestedAt:Q,state:"confirmed",outcome:"cancelled",reason:D,resolvedAt:Q},terminal:{revision:1,kind:"cancelled",code:"cancelled",effectOutcome:"none",message:D}}:{...G,phase:"unknown",stage:"unknown",stageChangedAt:Q,error:"stop_outcome_unconfirmed",stop:{requestedAt:Q,state:"unknown",outcome:"unknown",reason:D}},V=O.revision+1;return xn(H,{...ee,_runtime:{revision:V,owner:n}}),We(ee),{accepted:!0,status:ee,revision:V}})},loadRunStatus(k){return $e(k)},loadRunStatuses(){return q.mkdirSync(r,{recursive:!0}),Mn(m,()=>{let k=Se(),H=[...new Set([...k.activeRunIds,...k.recentRunIds])].flatMap(ee=>{let V=$e(ee);return V===void 0?[]:[V]}),O=new Map(H.map(ee=>[ee.status.runId,ee])),K=k.activeRunIds.filter(ee=>{let V=O.get(ee);return V!==void 0&&!Te(V.status.phase)}),Q=k.activeRunIds.flatMap(ee=>{let V=O.get(ee);return V!==void 0&&Te(V.status.phase)?[V]:[]}).sort((ee,V)=>Un(ee.status,V.status)),ie=new Set(Q.map(ee=>ee.status.runId)),G=v([...k.recentRunIds.filter(ee=>O.has(ee)&&!ie.has(ee)),...Q.map(ee=>ee.status.runId)],hi);if(K.length!==k.activeRunIds.length||G.length!==k.recentRunIds.length||K.some((ee,V)=>ee!==k.activeRunIds[V])||G.some((ee,V)=>ee!==k.recentRunIds[V])){let ee={...k,activeRunIds:K,recentRunIds:G};xn(m,ee),Re(ee)}else Re(k);return H})},loadSessionSettingsVersioned(k){let D=d(k);if(!q.existsSync(D))return{revision:0,value:{}};try{let H=JSON.parse(q.readFileSync(D,"utf-8"));return re(H)&&Number.isSafeInteger(H.revision)&&typeof H.revision=="number"&&H.revision>=0&&re(H.value)?{revision:H.revision,value:ul(H.value)}:{revision:0,value:ul(H)}}catch(H){return F(`${D}:parse`,`Skipped malformed runtime session settings at ${J.basename(D)}: ${Ne(H).message}`,{sessionId:k,file:D}),{revision:0,value:{}}}},loadSessionSettings(k){return this.loadSessionSettingsVersioned(k).value},saveSessionSettingsVersioned(k,D){q.mkdirSync(s,{recursive:!0});let H=d(k);xn(H,{revision:D.revision,value:_h(D.value)})},saveSessionSettings(k,D){let H=this.loadSessionSettingsVersioned(k);this.saveSessionSettingsVersioned(k,{revision:H.revision+1,value:D})},loadPermissionGrants(){if(!q.existsSync(c))return{revision:0,value:[]};try{let k=JSON.parse(q.readFileSync(c,"utf-8"));if(!re(k)||!Number.isSafeInteger(k.revision)||!Array.isArray(k.value))throw new Error("invalid permission grant store shape");return{revision:k.revision,value:k.value.map(lh)}}catch(k){throw new Error(`Permission grant store is untrusted: ${Ne(k).message}`)}},savePermissionGrants(k){q.mkdirSync(r,{recursive:!0}),xn(c,k)}}}i(lR,"createRuntimePersistence");function xn(e,n){Di(e,`${JSON.stringify(n,null,2)}
28
+ `)}i(xn,"writeRuntimeJsonAtomic");function Di(e,n){let t=`${e}.${process.pid}.${Je()}.tmp`,r,o=!1,s;try{r=q.openSync(t,"wx",384),q.writeFileSync(r,n,"utf-8"),q.fsyncSync(r),q.closeSync(r),r=void 0,q.renameSync(t,e),o=!0}catch(c){s=c}let a=[];if(r!==void 0)try{q.closeSync(r)}catch(c){a.push(c)}try{q.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(Di,"writeRuntimeTextAtomic");function Mn(e,n){let t=`${e}.lock`,r=performance.now()+2e3,o=new Int32Array(new SharedArrayBuffer(4)),s=Je();RR(t),hR(t,r);let a=`${t}.reclaim`,c=!q.existsSync(a)&&!q.existsSync(`${a}.cleanup`)&&!gR(t)&&Wc(t,s);for(;!c;){try{c=fR(t,r,()=>{if(!yR(t,r))return!1;if(q.existsSync(t)){if(Ps(t,xs(r))!=="gone")return!1;let y=Ln(t);if(y===void 0||(Cs(t,y.token),q.existsSync(t)))return!1}return Wc(t,s)})}catch(y){if(Ln(t)?.token===s)try{Dr(t,s)}catch(x){throw tr(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 xi(t);Atomics.wait(o,0,0,10)}let l=!1,m,R;try{m=n(),l=!0}catch(y){R=y}let S;try{Dr(t,s)}catch(y){tr(t,t,s,"blocking"),S=y}if(!l)throw S!==void 0&&(R instanceof Ar?R.includeLockCleanupFailure(S):R=new AggregateError([R,S],"Runtime status operation and lock cleanup both failed")),R;if(S!==void 0)throw new It(S);return m}i(Mn,"withRuntimeStatusFileLock");var gs=Al(process.pid),Kn=new Map,Tr=new Set,Zt=new Set;function tr(e,n,t,r,o){Kn.set(e,{family:n,token:t,kind:r,...o===void 0?{}:{fileIdentity:o}}),r==="candidate"&&Tr.add(n)}i(tr,"rememberAbandonedRuntimeLockFile");function Mi(e,n){return{pid:process.pid,createdAt:Date.now(),token:e,...gs===void 0?{}:{processStartIdentity:gs},...n===void 0?{}:{ticket:n}}}i(Mi,"runtimeStatusLockRecord");function Ln(e){try{let n=JSON.parse(q.readFileSync(e,"utf-8"));return!re(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(Ln,"readRuntimeStatusLockRecord");function Ps(e,n=1e3){let t=Ln(e);if(t===void 0)return"unknown";try{try{process.kill(t.pid,0)}catch(o){return Nn(o)==="ESRCH"?"gone":"unknown"}if(typeof t.processStartIdentity!="string")return"alive";let r=t.pid===process.pid?gs:Al(t.pid,n);return r===void 0?"unknown":r===t.processStartIdentity?"alive":"gone"}catch{return"unknown"}}i(Ps,"runtimeStatusLockOwnerState");function Wc(e,n,t){if(Tr.has(e))return Gc(e,n,t);let r=`${e}.candidate.${process.pid}.${Je()}`,o,s=!1,a,c=!1,l=!1;try{o=q.openSync(r,"wx",384),q.writeFileSync(o,JSON.stringify(Mi(n,t)),"utf-8"),q.fsyncSync(o),q.closeSync(o),o=void 0;try{q.linkSync(r,e),c=!0,s=!0}catch(R){let S=Nn(R);if(S==="EEXIST")s=!0;else if(mR(S))s=!0,l=!0;else throw R}}catch(R){a=R}let m=[];if(o!==void 0)try{q.closeSync(o)}catch(R){m.push(R)}try{q.rmSync(r,{force:!0})}catch(R){tr(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&&(Zt.has(e)||(Zt.add(e),ye({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?Gc(e,n,t):c}i(Wc,"createRuntimeStatusLockFile");function mR(e){return e==="EACCES"||e==="EPERM"||e==="ENOTSUP"||e==="EOPNOTSUPP"||e==="ENOSYS"||e==="EXDEV"}i(mR,"runtimeStatusHardLinkUnavailable");function Gc(e,n,t){let r,o=!1,s,a;try{return r=q.openSync(e,"wx",384),o=!0,s=wR(r),q.writeFileSync(r,JSON.stringify(Mi(n,t)),"utf-8"),q.fsyncSync(r),q.closeSync(r),r=void 0,!0}catch(l){if(!o&&Nn(l)==="EEXIST")return!1;a=l}let c=[];if(r!==void 0)try{q.closeSync(r)}catch(l){c.push(l)}if(o)try{q.rmSync(e,{force:!0})}catch(l){tr(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(Gc,"createRuntimeStatusLockFileByExclusiveWrite");function fR(e,n,t){let r=Je(),o=`${e}.choosing.${r}`,s=`${e}.claim.${r}`,a=!1,c,l;try{Di(o,JSON.stringify(Mi(r)));let R=ys(e,"claim").map(y=>Ln(y)?.ticket).filter(y=>y!==void 0),S=Math.max(0,...R)+1;if(!Number.isSafeInteger(S))throw new Error(`Runtime status lock ticket overflow: ${e}`);Di(s,JSON.stringify(Mi(r,S))),Dr(o,r),pR(e,s,S,r,n),c=t(),a=!0}catch(R){l=R}let m=[];for(let R of[s,o])if(q.existsSync(R))try{Dr(R,r)}catch(S){tr(R,e,r,"blocking"),m.push(S)}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(fR,"withRuntimeStatusAcquisitionGate");function pR(e,n,t,r,o){let s=new Int32Array(new SharedArrayBuffer(4));for(;;){let a=!1;for(let c of ys(e,"choosing"))c!==`${e}.choosing.${r}`&&(Rs(c,o)||(a=!0));for(let c of ys(e,"claim")){if(c===n)continue;let l=Ln(c);if(l?.ticket===void 0){a=!0;continue}l.ticket>t||l.ticket===t&&l.token.localeCompare(r)>0||Rs(c,o)||(a=!0)}if(!a)return;if(performance.now()>=o)throw new xi(e);Atomics.wait(s,0,0,10)}}i(pR,"waitForRuntimeStatusGateTurn");function ys(e,n){let t=J.dirname(e),r=`${J.basename(e)}.${n}.`;try{return q.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=>J.join(t,o))}catch(o){if(Nn(o)==="ENOENT")return[];throw o}}i(ys,"runtimeStatusGateFiles");function gR(e){let n=J.dirname(e),t=J.basename(e),r=[`${t}.choosing.`,`${t}.claim.`];try{return q.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(Nn(o)==="ENOENT")return!1;throw o}}i(gR,"hasRuntimeStatusAcquisitionGateFiles");function Rs(e,n){if(!q.existsSync(e))return!0;if(Ps(e,xs(n))!=="gone")return!1;let t=Ln(e);return t===void 0?!1:(Cs(e,t.token),!q.existsSync(e))}i(Rs,"removeGoneRuntimeStatusGateFile");function yR(e,n){let t=`${e}.reclaim`;for(let r of[`${t}.cleanup`,t])if(q.existsSync(r)&&!Rs(r,n))return!1;return!0}i(yR,"clearLegacyRuntimeReclaimGates");function RR(e){for(let[t,r]of[...Kn]){if(r.family!==e)continue;if(!q.existsSync(t)){Kn.delete(t);continue}if(r.kind==="unpublished"){if(r.fileIdentity===void 0)throw new It(new Error(`Runtime unpublished lock identity is unavailable: ${t}`));let s=vR(t);if(!SR(s,r.fileIdentity)){Kn.delete(t);continue}try{q.rmSync(t,{force:!0}),Kn.delete(t)}catch(a){throw new It(a)}continue}if(Ln(t)?.token!==r.token){Kn.delete(t);continue}try{Dr(t,r.token),Kn.delete(t)}catch(s){if(r.kind==="blocking")throw s}}[...Kn.values()].some(t=>t.family===e&&t.kind==="candidate")||(Tr.delete(e),Zt.delete(e))}i(RR,"retryAbandonedRuntimeLockCleanup");function hR(e,n){let t=Vc(e);for(let o of t){let s=Ln(o);if(!(s===void 0||Ps(o,xs(n))!=="gone"))try{Cs(o,s.token)}catch(a){tr(o,e,s.token,"candidate"),Zt.has(e)||(Zt.add(e),ye({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}}))}}Vc(e).length>0?Tr.add(e):[...Kn.values()].some(o=>o.family===e&&o.kind==="candidate")||(Tr.delete(e),Zt.delete(e))}i(hR,"reconcileRuntimeStatusLockCandidates");function Vc(e){let n=J.dirname(e),t=`${J.basename(e)}.candidate.`;try{return q.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=>J.join(n,r))}catch(r){if(Nn(r)==="ENOENT")return[];throw r}}i(Vc,"runtimeStatusLockCandidateFiles");function wR(e){let n=q.fstatSync(e,{bigint:!0});return{device:n.dev,inode:n.ino}}i(wR,"runtimeStatusLockDescriptorIdentity");function vR(e){try{let n=q.statSync(e,{bigint:!0});return{device:n.dev,inode:n.ino}}catch(n){if(Nn(n)==="ENOENT")return;throw n}}i(vR,"runtimeStatusLockPathIdentity");function SR(e,n){return e!==void 0&&e.device===n.device&&e.inode===n.inode}i(SR,"runtimeStatusLockFileIdentityEquals");function xs(e){return Math.max(0,Math.min(1e3,Math.floor(e-performance.now())))}i(xs,"runtimeLockProbeBudget");function Cs(e,n){return!q.existsSync(e)||Ln(e)?.token!==n?!1:(q.rmSync(e,{force:!0}),!0)}i(Cs,"tryRemoveRuntimeStatusLockOwnedBy");function Dr(e,n){if(!q.existsSync(e))throw new Error(`Runtime status lock ownership disappeared: ${e}`);if(Ln(e)?.token!==n)throw new Error(`Runtime status lock ownership changed: ${e}`);q.rmSync(e,{force:!0})}i(Dr,"removeRuntimeStatusLockOwnedBy");function Al(e,n=1e3){if(n<=0)return;if(process.platform==="linux")try{let o=q.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=_c("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=_c("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(Al,"readRuntimeProcessStartIdentity");function Nn(e){return re(e)&&typeof e.code=="string"?e.code:void 0}i(Nn,"runtimeErrorCode");function vi(e){if(!q.existsSync(e))return;let n=JSON.parse(q.readFileSync(e,"utf-8")),t=Tl(n);if(!t)throw new Error(`Runtime status record is malformed: ${e}`);return t}i(vi,"readPersistedRuntimeRunStatus");function us(e){if(!q.existsSync(e))return{droppedThrough:0};try{let n=q.readFileSync(e,"utf-8").trim(),t=JSON.parse(n);return re(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(us,"readRuntimeEventWatermark");function IR(e){if(e.sessionsDir!==void 0)return J.resolve(e.sessionsDir);if(e.homeDir!==void 0)return J.join(J.resolve(e.homeDir),".kodax","sessions")}i(IR,"resolveRuntimeSessionsDir");function kR(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(kR,"eventMatchesReplayFilter");function Sr(e){return re(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(Sr,"isRuntimeEvent");function _i(e){if(re(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!PR(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,...xR(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}:{},...re(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}:{},...Zc(e.lifecycleError)!==void 0?{lifecycleError:Zc(e.lifecycleError)}:{},...el(e.terminal)!==void 0?{terminal:el(e.terminal)}:{},...Jc(e.continuation)!==void 0?{continuation:Jc(e.continuation)}:{},...Yc(e.interruptInputs)!==void 0?{interruptInputs:Yc(e.interruptInputs)}:{},...Qc(e.stop)!==void 0?{stop:Qc(e.stop)}:{}}}i(_i,"parseRuntimeRunStatus");function Tl(e){let n=_i(e);if(!n)return;let t=re(e)&&re(e._runtime)?e._runtime:void 0,r=bR(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(Tl,"parsePersistedRuntimeRunStatus");function bR(e){if(!(!re(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(bR,"parseRuntimeRunOwner");function Jc(e){if(!(!re(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(Jc,"parseRuntimeContinuationStatus");function Yc(e){if(e===void 0||!Array.isArray(e))return;let n=e.map(ER);return n.every(t=>t!==void 0)?n:void 0}i(Yc,"parseRuntimeInterruptInputStatuses");function Qc(e){if(!(!re(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(Qc,"parseRuntimeRunStopStatus");function Zc(e){if(!(!re(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(Zc,"parseRuntimeRunLifecycleError");function ER(e){if(!re(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=re(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(ER,"parseRuntimeInterruptInputStatus");function PR(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(PR,"isRuntimeRunPhase");function xR(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(xR,"isRuntimeRunStage");function el(e){if(re(e)&&!(!Number.isSafeInteger(e.revision)||typeof e.revision!="number"||!CR(e.kind)||!AR(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(el,"parseRuntimeTerminalFact");function CR(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(CR,"isRuntimeTerminalKind");function AR(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(AR,"isRuntimeTerminalCode");function Ei(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(zl(e)),terminalEmitted:Te(e.phase),ownedByRuntime:n,...t!==void 0?{observedOwner:t}:{}}}i(Ei,"recordFromPersistedStatus");function Dl(e,n,t){let r=Ml(e,n,t);if(r!==void 0)return r;let o=[...t.replay({runId:e.runId})],s=As(e,o);if(Te(s.phase))return s!==e&&zn(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=zn(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(Dl,"interruptPersistedNonTerminalRun");function Ml(e,n,t){let r=[...t.replay({runId:e.runId})],o=[...r].reverse().find(c=>{if(!Es(c.type))return!1;let l=_i(c.payload);return l?.runId===e.runId&&l.sessionId===e.sessionId&&l.phase===TR(c.type)});if(o===void 0)return;let s=_i(o.payload);if(s===void 0)return;let a=As(s,r);return zn(n,t,void 0,a),a}i(Ml,"recoverPersistedDurableTerminal");function As(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||!re(s.payload))continue;let a=s.payload.inputs;if(Array.isArray(a))for(let c of a)re(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(As,"reconcilePersistedInterruptDeliveries");function TR(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(TR,"terminalPhaseFromEvent");function nl(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(nl,"resolvePermissionTimeoutMs");function DR(e,n){let t=new Map,r=i((c,l,m,R)=>{let S=t.get(c);return!S||m?.runId!==void 0&&S.request.runId!==m.runId||m?.expectedRevision!==void 0&&S.request.revision!==m.expectedRevision?{requestId:c,accepted:!1,status:"already_resolved"}:(l.status==="answered"&&MR(S.request.kind,l.answer),t.delete(c),clearTimeout(S.timer),S.resolve(l),e.emit("user_input.resolved",{requestId:c,kind:S.request.kind,status:l.status,...R!==void 0?{reason:R}:{}},{sessionId:S.request.sessionId,runId:S.request.runId,...S.request.turnId!==void 0?{turnId:S.request.turnId}:{}}),{requestId:c,accepted:!0,status:l.status})},"resolvePending"),o=i((c,l=n)=>{let m=`input_${Je().replace(/-/g,"").slice(0,12)}`,R=new Date,S={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}),g=setTimeout(()=>{r(m,{status:"dismissed"},void 0,"timeout")},Math.max(1,l));return g.unref?.(),t.set(m,{request:S,resolve:y,timer:g}),e.emit("user_input.requested",S,{sessionId:S.sessionId,runId:S.runId,...S.turnId!==void 0?{turnId:S.turnId}:{}}),{request:S,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(DR,"createRuntimeUserInputRegistry");function MR(e,n){if(!(e==="askUser"?_l(n):e==="askUserMulti"?_R(n):typeof n=="string"))throw Vl(`Invalid answer for ${e}`)}i(MR,"assertRuntimeUserInputAnswer");function _l(e){return Array.isArray(e)?e.every(tl):tl(e)}i(_l,"isAskUserAnswer");function tl(e){return typeof e=="string"||re(e)&&e.kind==="customInput"&&typeof e.value=="string"}i(tl,"isAskUserSelectionAnswer");function _R(e){return re(e)&&Object.values(e).every(_l)}i(_R,"isAskUserMultiAnswer");function OR(e,n,t){let r=new Map,o=new Map,s=0,a=i((h,P=n,I)=>{let b=i(()=>{},"resolveResponse"),A=new Promise(M=>{b=M});return{request:p(h,[b],nl(h.expiresAt,P),I),response:A}},"trackAndWait"),c=i((h,P,I)=>{let b=r.get(h);if(!b||I!==void 0&&b.request.runId!==I)return!1;if(P.type==="allow_session"||P.type==="allow_always"){let A=g(b,P);E(A,b.request)}r.delete(h),b.timer&&clearTimeout(b.timer);for(let A of b.waiters)A(P);return e.emit("permission.resolved",{requestId:h,decision:P},{sessionId:b.request.sessionId,runId:b.request.runId,...b.request.turnId!==void 0?{turnId:b.request.turnId}:{}}),!0},"resolvePending"),l=i((h,P)=>{let I=[...r.values()].filter(b=>h(b.request)).map(b=>b.request.id);for(let b of I)c(b,P)},"resolveMatching"),m={request(h){return R(h)},async listPending(h){return[...r.values()].map(P=>P.request).filter(P=>Xh(P,h))},async respond(h,P,I){return c(h,P,I?.runId)},async listGrants(){let h=S();return{revision:s,value:[...h.value,...o.values()]}},async revokeGrant(h,P){let I=S();if(s!==P)throw Xn(`Permission grant revision ${P} is stale; current revision is ${s}`,s);let b=o.get(h);if(b!==void 0)return o.delete(h),s+=1,t.savePermissionGrants({revision:s,value:I.value}),d("revoked",b,s),!0;let A=I.value.find(M=>M.id===h),C=I.value.filter(M=>M.id!==h);return C.length===I.value.length?!1:(s+=1,t.savePermissionGrants({revision:s,value:C}),A!==void 0&&d("revoked",A,s),!0)}};function R(h,P){let I=P??(h.toolInput!==void 0?{toolInput:h.toolInput}:void 0),b=y(h.sessionId,h.toolName,I?.toolInput,h.executionCwd,I?.shell,I?.shellContractFingerprint);if(b!==void 0)return b.persistence==="session"?Promise.resolve({type:"allow_session",suggestionId:b.id}):Promise.resolve({type:"allow_always",suggestionId:b.id});let{toolInput:A,...C}=h,M=I===void 0?C.inputPreview:nr(I.toolInput),F={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}:{},...M!==void 0?{inputPreview:M}:{},...C.executionCwd!==void 0?{executionCwd:C.executionCwd}:{},...C.autoModeDiagnostics!==void 0?{autoModeDiagnostics:C.autoModeDiagnostics}:{},...C.expiresAt!==void 0?{expiresAt:C.expiresAt}:{}},te=I===void 0?void 0:x(F,I);return te!==void 0?te:a(F,C.timeoutMs??n,I).response}i(R,"requestPermission");function S(){let h=t.loadPermissionGrants();return s=Math.max(s,h.revision),h}i(S,"loadPersistentPermissionGrants");function y(h,P,I,b,A,C){let M=S().value;return[...o.values(),...M].find(F=>F.scope.sessionId!==void 0&&F.scope.sessionId!==h||F.scope.toolName!==void 0&&F.scope.toolName!==P||F.scope.matcher===void 0||I===void 0||F.persistence!=="session"&&F.scope.matcher.kind==="exact-command"&&typeof I.command=="string"&&co(I.command,A??(Kr()==="win32"?"cmd":"posix"))?!1:Ja(F.scope.matcher,{toolName:P,toolInput:I,executionCwd:b??process.cwd(),...A!==void 0?{shell:A}:{},...C!==void 0?{shellContractFingerprint:C}:{}}))}i(y,"findPermissionGrant");function x(h,P){let I=rl(h,P);if(I.length===0)return;let b=[...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(M=>M.persistence===C.persistence&&cs(M.scope,C.scope))));if(b)return new Promise(A=>{b.waiters.push(A)})}i(x,"joinMatchingPendingPermission");function g(h,P){let I=P.type==="allow_session"?"session":"persistent",b="suggestionId"in P?h.grantCandidates.find(A=>A.suggestion.id===P.suggestionId&&A.persistence===I):NR(h,P.scope,I);if(!b)throw Vl("Permission decision does not select a Runtime-issued grant suggestion.");return b}i(g,"resolveRuntimePermissionGrantCandidate");function E(h,P){let I={id:`grant_${Je().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=>cs(C.scope,I.scope)))return;let A=S();s+=1,o.set(I.id,I),t.savePermissionGrants({revision:s,value:A.value}),d("created",I,s,P);return}let b=S();b.value.some(A=>cs(A.scope,I.scope))||(s+=1,t.savePermissionGrants({revision:s,value:[...b.value,I]}),d("created",I,s,P))}i(E,"saveRuntimePermissionCandidate");function d(h,P,I,b){e.emit("permission.grant.changed",{action:h,grant:P,revision:I},{sessionId:b?.sessionId??P.scope.sessionId??"runtime",runId:b?.runId??"permission-grants",...b?.turnId!==void 0?{turnId:b.turnId}:{}})}return i(d,"emitPermissionGrantChanged"),{service:m,requestOwned(h,P){return R(h,P)},track(h){return p(h,[],nl(h.expiresAt,n))},trackAndWait(h,P=n,I){return a(h,P,I)},resolve(h,P){c(h,P)},isGranted(h,P,I,b,A,C){return y(h,P,I,b,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=S(),I=[...o.values()].filter(b=>b.scope.sessionId===h);if(I.length!==0){for(let b of I)o.delete(b.id);s+=1,t.savePermissionGrants({revision:s,value:P.value});for(let b of I)d("expired",b,s)}},releaseAllSessionGrants(){if(o.size===0)return;let h=S(),P=[...o.values()];o.clear(),s+=1,t.savePermissionGrants({revision:s,value:h.value});for(let I of P)d("expired",I,s)}};function p(h,P,I=n,b){let A=h.inputPreview===void 0?void 0:ow(h.inputPreview),C=b===void 0?[]:rl(h,b),M=new Date,F={...h,...A!==void 0?{inputPreview:A}:{},executionCwd:J.resolve(h.executionCwd??process.cwd()),id:`perm_${Je().replace(/-/g,"").slice(0,12)}`,createdAt:M.toISOString(),...h.expiresAt===void 0&&I>0?{expiresAt:new Date(M.getTime()+I).toISOString()}:{},...C.length>0?{grantSuggestions:C.map(Z=>Z.suggestion)}:{}},te=I>0?setTimeout(()=>{let Z=r.get(F.id);if(!Z)return;r.delete(F.id);let pe={type:"reject",reason:"permission request timed out",cause:"approval_timeout"};for(let ue of Z.waiters)ue(pe);e.emit("permission.resolved",{requestId:F.id,decision:pe},{sessionId:F.sessionId,runId:F.runId,...F.turnId!==void 0?{turnId:F.turnId}:{}})},I):void 0;return te?.unref?.(),r.set(F.id,{request:F,waiters:P,grantCandidates:C,...te!==void 0?{timer:te}:{}}),e.emit("permission.requested",F,{sessionId:F.sessionId,runId:F.runId,...F.turnId!==void 0?{turnId:F.turnId}:{}}),F}i(p,"createPendingPermission")}i(OR,"createRuntimePermissionRegistry");function NR(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(NR,"resolveLegacyRuntimePermissionGrantCandidate");function rl(e,n){let t=J.resolve(e.executionCwd??process.cwd()),r=uo({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=HR(r,n.toolInput),s=[{suggestion:{id:`scope_${Je().replace(/-/g,"").slice(0,16)}`,kind:"session",label:il(r,o,e.toolName,"session")},scope:{toolName:e.toolName,sessionId:e.sessionId,matcher:r},persistence:"session"}];return r.kind!=="exact-call"&&LR(e,n,t)&&s.push({suggestion:{id:`scope_${Je().replace(/-/g,"").slice(0,16)}`,kind:"persistent",label:il(r,o,e.toolName,"persistent")},scope:{toolName:e.toolName,matcher:r},persistence:"persistent"}),s}i(rl,"createRuntimePermissionGrantCandidates");function LR(e,n,t){if(e.risk==="high")return!1;let r={id:e.toolCallId??"permission-scope",name:e.toolName,input:n.toolInput},o=J.resolve(n.projectRoot??t);if(Aa(r,o,t).denied||[...n.signals??[],...Ta.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(co(a,n.shell??(Kr()==="win32"?"cmd":"posix")))return!1}return!0}i(LR,"isPersistentRuntimePermissionSafe");function HR(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=Ss(t.slice(0,Mr)).replace(/\s+/g," ").trim();return r.length<=120?r:`${r.slice(0,117)}...`}i(HR,"runtimePermissionGrantLabel");function il(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(il,"runtimePermissionGrantSuggestionLabel");function FR(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(FR,"childParentContextId");function Si(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?FR(n,e.agentId):void 0);return{...e,contextId:r,contextKind:t,...o!==void 0?{parentContextId:o}:{}}}i(Si,"withRuntimeDiagnosticIdentity");function cs(e,n){return e.toolName===n.toolName&&e.sessionId===n.sessionId&&e.matcher?.kind===n.matcher?.kind&&e.matcher?.fingerprint===n.matcher?.fingerprint}i(cs,"permissionScopesEqual");function qR(e){let{bus:n,original:t,permissions:r,userInputs:o,enableSharedInteractions:s,record:a,onExecutorTerminal:c,onPhase:l,onStage:m,onMidTurnUserMessages:R}=e,S=i(d=>({sessionId:d?.sessionId??a.sessionId,runId:a.runId,turnId:d?.turnId??a.turnId}),"scopeFromMeta"),y=i((d,p,h)=>{n.emit(d,nt(p),S(h))},"emit"),x=i(()=>{(a.phase==="waiting_agent"||a.phase==="recovering")&&l("running")},"resumeFromTransientPhase"),g=i(()=>a.mode==="managed_task"&&a.stop!==void 0&&a.abortController?.signal.aborted===!0?a.stop.reason:void 0,"managedStopDecision"),E=i(async(d,p,h,P,I)=>{let b=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:d,options:p});try{let M=P===void 0?await C.response:await Promise.race([C.response,P().then(F=>({status:F===void 0?"dismissed":"answered",...F!==void 0?{answer:F}:{}})).then(F=>(o.resolve(C.request.id,F),F))]);return M.status==="answered"?M.answer:I}finally{a.phase==="waiting_user_input"&&l(b)}}let A=`input_${Je().replace(/-/g,"").slice(0,12)}`;y("user_input.requested",{requestId:A,kind:d,options:p},h);try{if(P===void 0)return I;let C=await P();return y("user_input.resolved",{requestId:A,kind:d,status:C===void 0?"dismissed":"answered"},h),C}catch(C){throw y("user_input.resolved",{requestId:A,kind:d,status:"failed",error:Ne(C).message},h),C}finally{a.phase==="waiting_user_input"&&l(b)}},"runWithUserInputPhase");return{...t,onTextDelta(d,p){x(),y("assistant.delta",{text:d,meta:p},p),t?.onTextDelta?.(d,p)},onThinkingDelta(d,p){x(),y("thinking.delta",{text:d,meta:p},p),t?.onThinkingDelta?.(d,p)},onThinkingEnd(d,p){y("thinking.finished",{thinking:d,meta:p},p),t?.onThinkingEnd?.(d,p)},onToolUseStart(d,p){l(d.name==="wait_agent"?"waiting_agent":"running"),y("tool.started",{tool:d,meta:p},p),t?.onToolUseStart?.(d,p)},onToolProgress(d,p){y("tool.progress",{update:d,meta:p},p),t?.onToolProgress?.(d,p)},onToolSandboxObservation(d,p){y("tool.sandbox",{update:d,meta:p},p),t?.onToolSandboxObservation?.(d,p)},onToolInputDelta(d,p,h){y("tool.progress",{toolName:d,partialJson:p,meta:h},h),t?.onToolInputDelta?.(d,p,h)},onToolResult(d,p){d.name==="wait_agent"&&l("running"),y("tool.finished",{result:d,meta:p},p),t?.onToolResult?.(d,p)},onStreamEnd(d){y("run.progress",{kind:"stream_end",meta:d},d),t?.onStreamEnd?.(d)},onChildActivityEnd(d){y("child_activity.finished",{meta:d},d),t?.onChildActivityEnd?.(d)},onSessionStart(d){a.provider=d.provider,n.emit("session.loaded",nt(d),{sessionId:d.sessionId,runId:a.runId,turnId:d.turnId??a.turnId}),t?.onSessionStart?.(d)},onTurnStarted(d){a.turnId=d.turnId,n.emit("turn.started",nt(d),{sessionId:d.sessionId,runId:a.runId,turnId:d.turnId}),t?.onTurnStarted?.(d)},onTurnCompleted(d){n.emit("turn.completed",nt(d),{sessionId:d.sessionId,runId:a.runId,turnId:d.turnId}),t?.onTurnCompleted?.(d)},onTurnFailed(d){n.emit("turn.failed",nt(d),{sessionId:d.sessionId,runId:a.runId,turnId:d.turnId}),t?.onTurnFailed?.(d)},onIterationStart(d,p,h){y("run.progress",{kind:"iteration_start",iter:d,maxIter:p,meta:h},h),t?.onIterationStart?.(d,p,h)},onIterationEnd(d){y("run.progress",{kind:"iteration_end",info:d},d),t?.onIterationEnd?.(d)},onCompactStart(d){y("context.compaction.started",{meta:d},d),t?.onCompactStart?.(d)},onCompact(d,p){t?.onCompact?.(d,p)},onCompactStats(d){y("context.compaction.stats",d,d),t?.onCompactStats?.(d)},async onCompactedMessages(d,p,h){let P=p===void 0?void 0:{hasAnchor:p.anchor!==void 0,...p.anchor?.tokensBefore!==void 0?{tokensBefore:p.anchor.tokensBefore}:{},...p.anchor?.tokensAfter!==void 0?{tokensAfter:p.anchor.tokensAfter}:{},...p.anchor?.entriesRemoved!==void 0?{entriesRemoved:p.anchor.entriesRemoved}:{},...p.anchor?.reason!==void 0?{reason:p.anchor.reason}:{},artifactLedgerEntryCount:p.artifactLedger?.length??0,postCompactAttachmentCount:p.postCompactAttachments?.length??0,exactSnapshotAvailable:p.preCompactionMessages!==void 0};y("context.compaction.messages",{messageCount:d.length,update:P,meta:h},h),await t?.onCompactedMessages?.(d,p,h)},onContextCompactionFinished(d){let p=d.contextRevision??0;y("context.compaction.finished",{...d,contextId:d.contextId??a.sessionId,contextKind:d.contextKind??"root",contextRevision:p,beforeRevision:Math.max(0,p-1),afterRevision:p},d),t?.onContextCompactionFinished?.(d)},onCompactEnd(d){y("context.compaction.ended",{meta:d},d),t?.onCompactEnd?.(d)},onMidTurnUserMessages(d,p){R(p?.queuedMessageIds??[],p?.queuedMessageEntryIds),y("run.progress",{kind:"mid_turn_user_messages",contents:d,meta:p},p),t?.onMidTurnUserMessages?.(d,p)},onRetry(d,p,h,P){y("provider.retry",{reason:d,attempt:p,maxAttempts:h,meta:P},P),t?.onRetry?.(d,p,h,P)},onProviderRateLimit(d,p,h,P){y("provider.retry",{reason:"rate_limit",attempt:d,maxAttempts:p,delayMs:h,meta:P},P),t?.onProviderRateLimit?.(d,p,h,P)},onRetryAfter(d,p){y("provider.retry",{retryAfter:d,meta:p},p),t?.onRetryAfter?.(d,p)},onReasoningEffortRejected(d){y("provider.recovery",{kind:"reasoning_effort_rejected",event:d},d),t?.onReasoningEffortRejected?.(d)},onRepoIntelligenceTrace(d){y("repo_intelligence.trace",d,d),t?.onRepoIntelligenceTrace?.(d)},onContextBudgetSnapshot(d){let p=Si(d,a.sessionId);y("context.budget.snapshot",p,p),t?.onContextBudgetSnapshot?.(p)},onPromptCacheDiagnostics(d){let p=Si(d,a.sessionId);y("provider.cache.diagnostics",p,p),t?.onPromptCacheDiagnostics?.(p)},onToolExposurePlanned(d){let p=Si(d,a.sessionId);y("tool.exposure.planned",p,p),t?.onToolExposurePlanned?.(p)},onContextCompactionSkipped(d){let p=Si(d,a.sessionId);y("context.compaction.skipped",p,p),t?.onContextCompactionSkipped?.(p)},onSidecarMessage(d){y("sidecar.message",d,d),t?.onSidecarMessage?.(d)},onTodoUpdate(d,p){y("todo.updated",{items:d,meta:p},p),t?.onTodoUpdate?.(d,p)},onTodoDriftWarning(d){y("todo.warning",d,d),t?.onTodoDriftWarning?.(d)},onProviderRecovery(d,p){l("recovering"),y("provider.recovery",{event:d,meta:p},p),t?.onProviderRecovery?.(d,p)},onEffectiveConfig(d){y("config.effective",d,d),t?.onEffectiveConfig?.(d)},onWorkflowProcessEvent(d){let p=$h(d);n.emit(p,nt(d),{sessionId:d.snapshot.hostMetadata?.sessionId??a.sessionId,runId:a.runId,turnId:a.turnId}),t?.onWorkflowProcessEvent?.(d)},onComplete(d){a.interruptInputOpen=!1,c("completed"),y("run.progress",{kind:"complete",meta:d},d),t?.onComplete?.(d)},onError(d,p){a.interruptInputOpen=!1,c("failed",d);let h=a.mode==="managed_task"&&a.stop!==void 0&&a.abortController?.signal.aborted===!0&&d.name==="AbortError";y("runtime.warning",{source:"coding",severity:"error",message:h?"Managed provider observed Runtime Stop.":Gl(d,a).message},p),t?.onError?.(d,p)},onManagedTaskStatus(d){if(a.mode==="managed_task"&&d.phase==="completed")a.interruptInputOpen=!1,l("running"),m("finalizing",0);else if(a.mode==="managed_task"){l(d.idleWaiting===!0?"waiting_agent":"running");let p=d.idleWaitingPendingCount??(d.phase==="verifying"?0:void 0);m(d.phase??(d.idleWaiting===!0?"waiting_agent":"executing"),p)}y("run.progress",{kind:"managed_task_status",status:d},d),t?.onManagedTaskStatus?.(d)},beforeToolExecute:i(async(d,p,h)=>{let P=g();if(P!==void 0)return P;let I=Vh(a),b=a.autoModeEngine;if(I!==void 0&&mn(a.permissionMode)==="auto"&&(b==="llm"||b==="rules")){if(bl.has(d))return!0;let pe=await t?.beforeToolExecute?.(d,p,h),ue=g();return ue!==void 0?ue:pe!==void 0&&pe!==!0?pe:h?.toolId!==void 0&&I.consumeAllowedCall({id:h.toolId,name:d,input:p})?!0:"[Blocked] Runtime auto mode did not classify this concrete tool call."}if(mn(a.permissionMode)==="plan"){let pe=yl(a,d,p);if(pe!==!0&&pe!==void 0)return pe}let C=Gh(a);if(r.isGranted(h?.sessionId??a.sessionId,d,p,vs(a),C?.shell,C?.shellContractFingerprint))return!0;let M=t?.beforeToolExecute===void 0?yl(a,d,p):void 0;if(M!==void 0)return M;let F=g();if(F!==void 0)return F;let te=a.phase;a.phase==="running"&&l("waiting_permission");let Z=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:d,inputPreview:nr(p),executionCwd:vs(a)},void 0,{toolInput:p,...C??{},...typeof a.start?.options.context?.gitRoot=="string"?{projectRoot:a.start.options.context.gitRoot}:{}});try{if(!t?.beforeToolExecute){let fe=await Z.response;return Rl(fe)}let pe=Promise.resolve(t.beforeToolExecute(d,p,h)).then(fe=>({source:"hook",decision:fe})),ue=Z.response.then(fe=>({source:"runtime",decision:Rl(fe)})),qe=await Promise.race([pe,ue]),Ie=g();return Ie!==void 0?Ie:(qe.source==="hook"&&r.resolve(Z.request.id,Uh(qe.decision)),qe.decision)}catch(pe){r.resolve(Z.request.id,{type:"reject",reason:Ne(pe).message});let ue=g();if(ue!==void 0)return ue;throw pe}finally{a.phase==="waiting_permission"&&l(te==="queued"?"running":te)}},"beforeToolExecute"),...t?.askUser||s?{askUser:i((d,p)=>E("askUser",d,p,t?.askUser?()=>t.askUser(d,p):void 0,""),"askUser")}:{},...t?.askUserMulti||s?{askUserMulti:i((d,p)=>E("askUserMulti",d,p,t?.askUserMulti?()=>t.askUserMulti(d,p):void 0,void 0),"askUserMulti")}:{},...t?.askUserInput||s?{askUserInput:i((d,p)=>E("askUserInput",d,p,t?.askUserInput?()=>t.askUserInput(d,p):void 0,void 0),"askUserInput")}:{}}}i(qR,"wrapKodaXEvents");function $R(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($R,"buildSessionRuntimeInfo");function Ol(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(Ol,"toRuntimeSessionSummary");function ol(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=>jR(a,n))}}i(ol,"normalizeRuntimeRunInput");function jR(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return BR(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(jR,"runtimeInputToArtifacts");function BR(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(BR,"runtimeArtifactToInputArtifacts");function KR(e){return typeof e=="string"&&Ty.has(e)}i(KR,"isRuntimeArtifactKind");function XR(e,n,t,r){let o=r.runtimeInfo?.canonicalRepoRoot??(r.gitRoot?r.gitRoot:void 0),s=o===void 0?void 0:J.resolve(o),a=r.runtimeInfo?.executionCwd??r.runtimeInfo?.workspaceRoot??s,c={...s!==void 0?{gitRoot:s}:{},...n.executionCwd!==void 0?{executionCwd:J.resolve(n.executionCwd)}:a!==void 0?{executionCwd:J.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:sr(l.shellExecution),S=typeof l?.gitRoot=="string"?J.resolve(l.gitRoot):void 0;if(s!==void 0&&S!==void 0&&!(Hr(s,S)&&Hr(S,s)))throw new Error("gitRoot must match the session repository safety boundary");let y=l?.executionCwd===void 0?void 0:J.resolve(l.executionCwd),x=y??c.executionCwd,g=r.runtimeInfo?.workspaceRoot??s;y!==void 0&&g!==void 0&&ql(y,g,"executionCwd");let E=[...l?.inputArtifacts??[],...t],d={...c,...m,...s!==void 0?{gitRoot:s}:S!==void 0?{gitRoot:S}:{},...x!==void 0?{executionCwd:x}:{},...R!==void 0?{shellExecution:R}:{},...E.length>0?{inputArtifacts:E}:{}},p=e.provider??n.provider,h=e.model??n.model,P=e.effort??n.effort,I=e.thinking??n.thinking,b=e.reasoningMode??n.reasoningMode,A=e.agentMode??n.agentMode,C=A==="amaw"?"ama":A,M=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,...p!==void 0?{provider:p}:{},...h!==void 0?{model:h}:{},...P!==void 0?{effort:P}:{},...I!==void 0?{thinking:I}:{},...b!==void 0?{reasoningMode:b}:{},...C!==void 0?{agentMode:C}:{},...M!==void 0?{compaction:M}:{},...Object.keys(d).length>0?{context:d}:{}}}i(XR,"buildEffectiveRuntimeOptions");async function UR(e,n,t){let r=await e.storage.read(n,t);if(!r)throw new Error(`Session not found: ${n}`);return r}i(UR,"loadRequiredSession");function Pn(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(Pn,"createRuntimeReadBudget");function Ce(e){if(e.signal?.aborted)throw new rn("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 rn("read_timeout","Runtime history read timed out");return{timeoutMs:n,...e.signal!==void 0?{signal:e.signal}:{}}}i(Ce,"sessionReadOptionsFromBudget");function Cn(e,n){let t=Ce(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 rn("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 rn("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(Cn,"awaitRuntimeReadOperation");async function Vt(e){await Cn(()=>new Promise(n=>setImmediate(n)),e),Ce(e)}i(Vt,"yieldToRuntimeReadBudget");function zR(e,n,t){let r=i((a,c)=>t?WR(a,c)?!1:a===void 0||gy.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 UR(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 Is(a);return c}}}i(zR,"createRuntimeSessionAdmission");async function sl(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(sl,"filterAdmittedRunStatuses");function WR(e,n){let t=i(r=>r?.toLowerCase().split(/[^a-z0-9]+/).includes("partner")===!0,"hasPartnerToken");return t(e)||t(n)}i(WR,"isPartnerSessionIdentity");function GR(e){return e===null?ZR("null"):VR(e.transcriptEntries)}i(GR,"createRuntimeTranscriptRevision");function VR(e,n){return JR(e,"kodax-transcript-entries-v1\0","",n)}i(VR,"createRuntimeTranscriptEntriesRevision");function JR(e,n,t,r){let o=St("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(JR,"createRuntimeHistoryEntriesRevision");function YR(e){return JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})}i(YR,"runtimeConversationRevisionContext");function QR(e){return ro(e)}i(QR,"createRuntimeConversationHistoryRevision");function ZR(e){return`sha256:${St("sha256").update(e).digest("hex")}`}i(ZR,"createRuntimeTranscriptRevisionFromSerialized");function eh(e){return"entryId"in e&&typeof e.entryId=="string"?{entryId:e.entryId}:"boundaryId"in e&&typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}i(eh,"runtimeHistoryEntryDescriptorIdentity");function Oi(e){return Buffer.from(JSON.stringify(e),"utf8").toString("base64url")}i(Oi,"encodeRuntimeTranscriptCursor");function Cr(e){let n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch(r){throw be(`Invalid transcript cursor: ${Ne(r).message}`)}if(!re(n)||typeof n.revision!="string")throw be("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 be("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 be("Invalid transcript cursor payload")}i(Cr,"decodeRuntimeTranscriptCursor");async function ls(e,n,t,r){if(e.view!=="transcript")throw be("Transcript snapshot view does not match the request");let o=await Nl(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(ls,"createRuntimeTranscriptSlice");async function Nl(e,n,t,r,o=0){let s=r??Il;if(!Number.isSafeInteger(s)||s<=0)throw new Error("transcript page limit must be a positive safe integer");let a=Math.min(s,kl);if(o>kt)throw Li();let c=e.entries.length;if(t!==void 0){let y=Cr(t);if(y.kind!=="page"||y.revision!==e.revision||y.view!==e.view)throw be("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&&(Ce(n),!(l.length>=a));y-=1){let x=e.entries[y],g=x.byteLength,E=g<=Ai?await rh(e,x,n):void 0,d={index:y,...x.entryId!==void 0?{entryId:x.entryId}:{},...x.boundaryId!==void 0?{boundaryId:x.boundaryId}:{},byteLength:g,oversized:g>Ai,...E!==void 0?{entry:E}:{}},p=Buffer.byteLength(JSON.stringify(d),"utf8");if(m+p>kt){if(l.length===0)throw Li();break}l.unshift(d),m+=p,R=y}Ce(n);let S=R>0;return{entries:l,hasMore:S,...S?{nextCursor:Oi({kind:"page",view:e.view,revision:e.revision,end:R})}:{}}}i(Nl,"createRuntimeHistorySlice");async function al(e,n,t,r){if(e.view!=="conversation"||e.conversation===void 0)throw be("Conversation snapshot view does not match the request");let o=await Nl(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(al,"createRuntimeConversationHistorySlice");async function nh(e,n,t){if(n.view!=="transcript")throw be("Transcript snapshot view does not match the request");let r=await Ll(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(nh,"createRuntimeTranscriptEntryChunkFromSnapshot");async function Ll(e,n,t){if(e.revision!==n.revision)throw be("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=Cr(e.cursor);if(l.kind!=="entry"||l.revision!==n.revision||l.view!==n.view||l.entryIndex!==e.entryIndex)throw be("Transcript entry cursor is stale; restart entry retrieval");o=l.offset}if(o>r.byteLength||o%Pr!==0)throw be("Transcript entry cursor offset is invalid");let s=Math.min(r.byteLength,o+Pr),a=await Hl(n.filePath,r.offset+o,s-o,t);Fl(a,r.chunkDigests[o/Pr]),Ce(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:Oi({kind:"entry",view:n.view,revision:n.revision,entryIndex:e.entryIndex,offset:s})}:{}}}i(Ll,"createRuntimeHistoryEntryChunkFromSnapshot");async function th(e,n,t){if(n.view!=="conversation")throw be("Conversation snapshot view does not match the request");let r=await Ll(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(th,"createRuntimeConversationEntryChunkFromSnapshot");async function rh(e,n,t){let r=await Hl(e.filePath,n.offset,n.byteLength,t);Fl(r,n.chunkDigests[0]);try{return JSON.parse(r.toString("utf8"))}catch(o){throw Ds(`Transcript snapshot entry is corrupt: ${Ne(o).message}`)}}i(rh,"parseRuntimeTranscriptSnapshotEntry");async function Hl(e,n,t,r){let o=Buffer.allocUnsafe(t),s;try{s=await q.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,Ce(r)}return o}catch(a){throw Ni(a)?a:Ds(`Transcript snapshot is unavailable: ${Ne(a).message}`)}finally{s!==void 0&&await s.close()}}i(Hl,"readRuntimeTranscriptSnapshotBytes");async function ih(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(ih,"writeFileHandleFully");function Ni(e){return re(e)?e.code==="read_timeout"||e.code==="read_cancelled":!1}i(Ni,"isExpectedRuntimeReadTermination");function Fl(e,n){let t=St("sha256").update(e).digest("hex");if(n===void 0||t!==n)throw Ds("Transcript snapshot integrity check failed; request a fresh boundary")}i(Fl,"assertRuntimeTranscriptSnapshotDigest");function dl(e){return e.length<=jc?e:`${e.slice(0,jc-1)}\u2026`}i(dl,"previewQueuedInput");function hs(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&ql(n.executionCwd,t,"executionCwd")}i(hs,"assertSessionSettingsAllowed");function ql(e,n,t){if(!Hr(e,n))throw new Error(`${t} must stay within the session workspace root`)}i(ql,"assertPathWithinRoot");function oh(e,n){let t={...e};return Ir(t,"provider",n.provider),Ir(t,"model",n.model),Ir(t,"permissionMode",n.permissionMode),Ir(t,"executionCwd",n.executionCwd,!0),sh(t,n.shellExecution),Ir(t,"autoModeClassifierModel",n.autoModeClassifierModel),kr(t,"effort",n.effort),kr(t,"thinking",n.thinking),kr(t,"reasoningMode",n.reasoningMode),kr(t,"agentMode",n.agentMode),kr(t,"autoModeEngine",n.autoModeEngine),dh(t,"autoModeTimeoutMs",n.autoModeTimeoutMs),uh(t,"autoModeSpeculativeWindowMs",n.autoModeSpeculativeWindowMs),$l(t,n.compactionTriggerPercent),ah(t,n.compactionTriggerTokens),t}i(oh,"applySessionSettingsPatch");function $l(e,n){if(n!==void 0){if(n===null){bt(e,"compactionTriggerPercent");return}if(!Number.isFinite(n))throw new Error("compactionTriggerPercent must be a finite number");Fe(e,"compactionTriggerPercent",ca({triggerPercent:n}).triggerPercent)}}i($l,"applyNullableCompactionPercentPatch");function sh(e,n){if(n!==void 0){if(n===null){bt(e,"shellExecution");return}Fe(e,"shellExecution",sr(n))}}i(sh,"applyNullableShellExecutionPatch");function ah(e,n){if(n!==void 0){if(n===null||n===0){bt(e,"compactionTriggerTokens");return}if(!Number.isSafeInteger(n)||n<0)throw new Error("compactionTriggerTokens must be a positive safe integer or zero");Fe(e,"compactionTriggerTokens",n)}}i(ah,"applyNullableCompactionTokensPatch");function dh(e,n,t){if(t!==void 0){if(t===null){bt(e,n);return}if(!Number.isSafeInteger(t)||t<=0)throw new Error(`${n} must be a positive safe integer`);Fe(e,n,t)}}i(dh,"applyNullablePositiveIntegerPatch");function uh(e,n,t){if(t!==void 0){if(t===null){bt(e,n);return}if(!Number.isSafeInteger(t)||t<0)throw new Error(`${n} must be a non-negative safe integer`);Fe(e,n,t)}}i(uh,"applyNullableNonNegativeIntegerPatch");function Ir(e,n,t,r=!1){if(t===void 0)return;if(t===null){bt(e,n);return}if(r&&!J.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);let o=n==="autoModeClassifierModel"?jl(t):t;Fe(e,n,o)}i(Ir,"applyNullableStringPatch");function jl(e){let n=e.trim();if(n.length===0)throw new vt("autoModeClassifierModel must be a non-empty classifier model spec.");try{Ca(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw new vt(`autoModeClassifierModel must be a valid classifier model spec: ${r}`)}return n}i(jl,"validateRuntimeAutoModeClassifierModel");function Bl(e,n){if(!(mn(e.permissionMode)!=="auto"||(e.autoModeEngine??"llm")!=="llm")){if(e.autoModeClassifierModel!==void 0){try{jl(e.autoModeClassifierModel)}catch(t){return t instanceof vt?t:new vt("Auto LLM classifier model configuration is invalid.")}return}if(!n?.trim().length)return new vt("Auto LLM requires a classifier model. Set autoModeClassifierModel, the Session/run model, or runtime defaultModel.")}}i(Bl,"runtimeAutoModeClassifierModelError");function ch(e,n){let t=Bl(e,n);if(t)throw t}i(ch,"assertRuntimeAutoModeClassifierModelConfigured");function kr(e,n,t){if(t!==void 0){if(t===null){bt(e,n);return}Fe(e,n,t)}}i(kr,"applyNullablePatch");function Fe(e,n,t){e[n]=t}i(Fe,"setMutableSetting");function bt(e,n){delete e[n]}i(bt,"deleteMutableSetting");function ul(e){if(!re(e))return{};let n={};return Qn(n,"provider",e.provider),Qn(n,"model",e.model),Qn(n,"permissionMode",e.permissionMode),Qn(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Fe(n,"shellExecution",sr(e.shellExecution)),Qn(n,"autoModeClassifierModel",e.autoModeClassifierModel),Qn(n,"effort",e.effort),typeof e.thinking=="boolean"&&Fe(n,"thinking",e.thinking),Qn(n,"reasoningMode",e.reasoningMode),Qn(n,"agentMode",e.agentMode),(e.autoModeEngine==="llm"||e.autoModeEngine==="rules")&&Fe(n,"autoModeEngine",e.autoModeEngine),Number.isSafeInteger(e.autoModeTimeoutMs)&&Number(e.autoModeTimeoutMs)>0&&Fe(n,"autoModeTimeoutMs",Number(e.autoModeTimeoutMs)),Number.isSafeInteger(e.autoModeSpeculativeWindowMs)&&Number(e.autoModeSpeculativeWindowMs)>=0&&Fe(n,"autoModeSpeculativeWindowMs",Number(e.autoModeSpeculativeWindowMs)),typeof e.compactionTriggerPercent=="number"&&$l(n,e.compactionTriggerPercent),Number.isSafeInteger(e.compactionTriggerTokens)&&Number(e.compactionTriggerTokens)>0&&Fe(n,"compactionTriggerTokens",Number(e.compactionTriggerTokens)),n}i(ul,"parseRuntimeSessionSettings");function lh(e){if(!re(e)||!re(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:Ya(r)}:{}}}}i(lh,"parseRuntimePermissionGrant");function Qn(e,n,t){typeof t=="string"&&t.length>0&&Fe(e,n,t)}i(Qn,"setStringIfPresent");function re(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(re,"isRecord");function mh(e,n){if(!re(e))throw new Error(`${n} requires a plain object`)}i(mh,"assertPlainObject");function fh(e){let n=new Set(py);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(fh,"sanitizeRuntimeConfigPatch");function ph(e){if(e.homeDir!==void 0)return J.join(J.resolve(e.homeDir),".kodax","config.json")}i(ph,"resolveRuntimeConfigFile");function Zn(e){if(e===void 0)return _a();if(!q.existsSync(e))return{};try{let n=JSON.parse(q.readFileSync(e,"utf8"));return re(n)?n:{}}catch{return{}}}i(Zn,"readRuntimeConfig");function gh(e,n){if(e===void 0){Na(n);return}_r(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(gh,"patchRuntimeConfig");function yh(e,n){q.mkdirSync(J.dirname(e),{recursive:!0}),q.writeFileSync(e,`${JSON.stringify(n,null,2)}
29
+ `,"utf8")}i(yh,"writeRuntimeConfigUnlocked");function _r(e,n){return Ma(e,()=>{let t=n(Zn(e));return t.config&&yh(e,t.config),t.result})}i(_r,"mutateRuntimeConfig");function Rh(e){return e===void 0?qa():vh(Hi(Zn(e)))}i(Rh,"listRuntimeCustomProviders");function hh(e,n){if(e===void 0)return $a(n);$s(n);let t=_r(e,r=>{let o=Eh(Hi(r),n,s=>s.name===n.name);return{config:{...r,customProviders:o},result:o}});return Lr(t),structuredClone(n)}i(hh,"upsertRuntimeCustomProvider");function wh(e,n){if(e===void 0)return ja(n);if(typeof n!="string"||n.length===0)return!1;let t=_r(e,r=>{let o=Hi(r),s=o.filter(a=>a.name!==n);return s.length===o.length?{result:void 0}:{config:{...r,customProviders:s},result:s}});return t?(Lr(t),!0):!1}i(wh,"removeRuntimeCustomProvider");function Kl(e){e!==void 0&&Lr(Hi(Zn(e)))}i(Kl,"registerRuntimeConfiguredCustomProviders");function Hi(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}i(Hi,"extractRuntimeCustomProviders");function vh(e){return structuredClone(e)}i(vh,"cloneCustomProviders");function ms(e){return e===void 0?Ba():bh(Fi(Zn(e)))}i(ms,"listRuntimeMcpServers");function Sh(e,n){if(e===void 0)return Ka(n);let t=Fi(Zn(e))[n];return t===void 0?void 0:structuredClone(t)}i(Sh,"getRuntimeMcpServer");function Ih(e,n,t){return e===void 0?Xa(n,t):(to(n,t),_r(e,r=>{let o={...Fi(r),[n]:structuredClone(t)};return{config:{...r,mcpServers:o},result:void 0}}),structuredClone(t))}i(Ih,"upsertRuntimeMcpServer");function kh(e,n){return e===void 0?Ua(n):_r(e,t=>{let r=Fi(t);if(!(n in r))return{result:!1};let o={...r};return delete o[n],{config:{...t,mcpServers:o},result:!0}})}i(kh,"removeRuntimeMcpServer");function Fi(e){return re(e.mcpServers)?structuredClone(e.mcpServers):{}}i(Fi,"extractRuntimeMcpServers");function bh(e){return structuredClone(e)}i(bh,"cloneMcpServers");function Eh(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(Eh,"upsertConfigEntry");function Ph(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(o=>re(o)&&o.name===n.provider);return re(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!re(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}i(Ph,"listRuntimeModels");function cl(e){let n=xh(e).map(Ch),t=xt()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(Ah)??[];return[...n,...t].sort((r,o)=>r.name.localeCompare(o.name))}i(cl,"listRuntimeCommands");function xh(e){let n=Wa;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):Ha().getAll()}i(xh,"listReplCommands");function Ch(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(Ch,"replCommandToRuntimeCommandInfo");function Ah(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(Ah,"extensionCommandToRuntimeCommandInfo");function Yt(e){return Array.isArray(e)?e.map(n=>Yt(n)):re(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Th(n)?"[redacted]":Yt(t)])):e}i(Yt,"redactRuntimeConfig");function Th(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(Th,"isSensitiveConfigKey");function Dh(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(Dh,"toRuntimeSkillSummary");function Mh(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(br)}:{},...e.references!==void 0?{references:e.references.map(br)}:{},...e.assets!==void 0?{assets:e.assets.map(br)}:{},...e.templates!==void 0?{templates:e.templates.map(br)}:{},...e.resources!==void 0?{resources:e.resources.map(br)}:{}}}i(Mh,"toRuntimeSkillDescription");function br(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}i(br,"toRuntimeSkillFileSummary");function rr(e){if(!re(e))throw new Error("Invalid runtime daemon response: expected object");return e}i(rr,"requireRuntimeRecord");function Xl(e){let n=rr(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(Xl,"parseRuntimeIdentity");function _h(e){let n={};return e.provider!==void 0&&Fe(n,"provider",e.provider),e.model!==void 0&&Fe(n,"model",e.model),e.effort!==void 0&&Fe(n,"effort",e.effort),e.thinking!==void 0&&Fe(n,"thinking",e.thinking),e.reasoningMode!==void 0&&Fe(n,"reasoningMode",e.reasoningMode),e.permissionMode!==void 0&&Fe(n,"permissionMode",e.permissionMode),e.executionCwd!==void 0&&Fe(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Fe(n,"shellExecution",sr(e.shellExecution)),e.agentMode!==void 0&&Fe(n,"agentMode",e.agentMode),e.autoModeEngine!==void 0&&Fe(n,"autoModeEngine",e.autoModeEngine),e.autoModeClassifierModel!==void 0&&Fe(n,"autoModeClassifierModel",e.autoModeClassifierModel),e.autoModeTimeoutMs!==void 0&&Fe(n,"autoModeTimeoutMs",e.autoModeTimeoutMs),e.autoModeSpeculativeWindowMs!==void 0&&Fe(n,"autoModeSpeculativeWindowMs",e.autoModeSpeculativeWindowMs),e.compactionTriggerPercent!==void 0&&Fe(n,"compactionTriggerPercent",e.compactionTriggerPercent),e.compactionTriggerTokens!==void 0&&Fe(n,"compactionTriggerTokens",e.compactionTriggerTokens),n}i(_h,"serializeSessionSettings");function Oh(){return`run_${Date.now().toString(36)}_${Je().replace(/-/g,"").slice(0,8)}`}i(Oh,"createRunId");function Nh(){return`input_${Date.now().toString(36)}_${Je().replace(/-/g,"").slice(0,8)}`}i(Nh,"createInputId");function Ul(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(Ul,"runtimeInterruptInputStatus");function sn(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:Lh(e.phase)}}:{},...e.interruptInputs.length>0?{interruptInputs:e.interruptInputs.map(Ul)}:{}}}i(sn,"statusFromRecord");function Lh(e){return e==="queued"?"queued":Te(e)?"terminal":"delivered"}i(Lh,"runtimeContinuationState");function zl(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(zl,"resultFromStatus");function fs(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??(Te(e.status.phase)?"confirmed":"unknown"),outcome:t,phase:e.status.phase,revision:e.revision}}i(fs,"runtimeRunStopReceipt");function Hh(e){if(e.length<=On)return e;let n=e.filter(o=>!Te(o.status.phase)).sort((o,s)=>Un(o.status,s.status)).slice(-On),t=On-n.length,r=t===0?[]:e.filter(o=>Te(o.status.phase)).sort((o,s)=>Un(o.status,s.status)).slice(-t);return[...n,...r]}i(Hh,"recentRunStatuses");function ll(e){if(e.length<=On)return e;let n=e.filter(o=>!Te(o.phase)),t=Math.max(0,On-n.length),r=t===0?[]:e.filter(o=>Te(o.phase)).sort(Un).slice(-t);return[...n,...r]}i(ll,"boundedRuntimeRunStatuses");function ml(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(ml,"canonicalRuntimeRunStatuses");function Fh(e){if(e.size<=On)return;let n=[...e.values()].filter(t=>Te(t.phase)).sort((t,r)=>Un(sn(t),sn(r)));for(let t of n){if(e.size<=On)return;e.delete(t.runId)}}i(Fh,"pruneTerminalRuns");function Un(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(Un,"compareRunStatusRecency");function fl(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(fl,"runStatusMatchesFilter");function Wl(e){return[...e].sort((n,t)=>{let r=pl(n.phase),o=pl(t.phase);if(r!==o)return o-r;let s=n.sessionOrder??0,a=t.sessionOrder??0;return s!==a?a-s:Un(t,n)})[0]}i(Wl,"authoritativeSessionRun");function pl(e){return e==="unknown"?4:hn(e)?3:e==="queued"?2:1}i(pl,"runtimeSessionRunPriority");function Ii(e,n){if(!(e.ownedByRuntime||Te(e.phase)))throw Xn(`Run ${e.runId} is owned by another live Runtime; ${n.runtimeId} may observe but not mutate it.`,e.sessionOrder)}i(Ii,"assertRuntimeOwnsRun");function qh(e,n,t){return[...n.values()].some(s=>s.sessionId===e&&s.ownedByRuntime&&(s.phase==="queued"||hn(s.phase)||s.phase==="unknown"||s.start!==void 0&&s.settlementFinished!==!0))?"local":t.loadRunStatuses().some(({status:s})=>s.sessionId===e&&(s.phase==="queued"||hn(s.phase)||s.phase==="unknown"))?"foreign":void 0}i(qh,"runtimeSessionActiveRunOwner");function ht(e,n,t,r,o){if(t.terminalEmitted)return;delete t.actorHealthBaseState,t.error==="stop_outcome_unconfirmed"&&delete t.error,t.interruptInputOpen=!1,ws(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??Bh(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=sn(t),m=zn(e,n,t,l);if(m!==void 0&&m!==l){wt(t,m);return}e.emit(c,sn(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}})}i(ht,"markRunTerminal");function ws(e){for(let n of e.interruptInputs)n.state==="queued"&&(n.queueMessageId!==void 0&&(Vs().dequeue({agentId:ji(e.sessionId,"/root"),maxPriority:"user",mode:"prompt",id:n.queueMessageId}),delete n.queueMessageId),n.state="terminal")}i(ws,"terminalizeQueuedInterruptInputs");function zn(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}: ${Ne(o).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...s!==void 0?{turnId:s}:{}});return}}i(zn,"saveRunStatusSafely");function wt(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=Te(n.phase),e.interruptInputOpen=!1}i(wt,"applyAuthoritativeRunStatus");function Te(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(Te,"isTerminalRunPhase");function $h(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}i($h,"workflowEventType");function jh(e){return e==="completed"||e==="failed"||e==="cancelled"}i(jh,"isFinalWorkflowStatus");function Bh(e){return e==="completed"?"completed":e==="failed"?"run_failed":e==="cancelled"?"cancelled":"interrupted"}i(Bh,"defaultRuntimeTerminalCode");function Kh(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(Kh,"classifyRuntimeRunFailure");function Gl(e,n){if(!n.hadProviderCredential)return Ne(e);let t=new Error("Provider run failed while using a run-scoped credential.");return t.name="KodaXProviderRunError",t}i(Gl,"normalizeRuntimeRunError");function Xh(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(Xh,"permissionMatchesFilter");function Uh(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}i(Uh,"decisionToPermissionDecision");function zh(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(zh,"autoModeEscalationRisk");var Wh=8;function vs(e){return J.resolve(e.start?.options.context?.executionCwd??e.start?.options.context?.gitRoot??process.cwd())}i(vs,"resolveRuntimeExecutionCwd");function Gh(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:Vi(n)}}i(Gh,"runtimeShellPermissionIdentity");function Qt(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(Qt,"isRuntimeAutoModeGuardrail");function Vh(e){if(mn(e.permissionMode)==="auto")return e.start?.options.guardrails?.find(Qt)}i(Vh,"getRuntimeAutoModeGuardrail");function Ts(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}:${gl(e,a,n)}`).join("")}]`}return`object:{${r.filter(s=>typeof s=="string").sort().map(s=>`${Ts(s,n)}${gl(e,s,n)}`).join("")}}`}finally{n.delete(e)}}i(Ts,"serializeRuntimeToolInput");function gl(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 Ts(r.value,t)}i(gl,"serializeRuntimeDataProperty");function er(e){try{let n=Ts(e.input);return St("sha256").update(`${e.id}\0${e.name}\0${n}`).digest("hex")}catch{return}}i(er,"runtimeAutoModeDecisionKey");function Jh(e){if(process.platform!=="win32")return!1;let n=J.resolve(process.env.SystemRoot??"C:\\Windows","Temp"),t=i(r=>{if(!J.isAbsolute(r))return!1;let o=J.relative(n,J.resolve(r));return o===""||!o.startsWith("..")&&!J.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(Jh,"reviewTouchesProtectedWindowsSystemTemp");function Yh(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=Ji(r),c=a?.ok?a.call:r,l=er(c);l!==void 0&&t.add(l)}return s},"beforeTool"),consumeAllowedCall(r){let o=er(r);return o===void 0||!t.has(o)?!1:(t.delete(o),!0)},consumeWorkspaceSandboxCall(r){let o=er(r);return o===void 0||!n.has(o)?!1:(n.delete(o),!0)},clearAllowedCalls(){t.clear(),n.clear()}}}i(Yh,"createRuntimeOwnedAutoModeGuardrail");function Qh(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=mn(s.permissionMode)==="auto"?s.autoModeEngine??"llm":s.autoModeEngine,a.autoModeClassifierModel=s.autoModeClassifierModel,a.autoModeTimeoutMs=s.autoModeTimeoutMs,a.autoModeSpeculativeWindowMs=s.autoModeSpeculativeWindowMs),r=Bl(s,a?.model??e.model),r){t=void 0;return}let c=await ew({...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=Ji(s),R=m?.ok?m.call:s;c.consumeAllowedCall(R);let S=er(R);S!==void 0&&n.add(S)}return l},getEngine(){if(t)return t.getEngine();let s=e.settingsOwner.peek(e.sessionId)?.value;return mn(s?.permissionMode)==="auto"?s?.autoModeEngine??"llm":"rules"},consumeAllowedCall(s){let a=er(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(Qh,"createRuntimeSessionAutoModeGuardrail");function Zh(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(Zh,"runtimeShellUsesProcessEnvironmentPathAliases");async function ew(e){if(mn(e.settings.permissionMode)!=="auto")return;let n=e.settings.autoModeEngine??"llm",t=e.states.get(e.sessionId);t===void 0?(t={engine:n,denials:Qi(),breaker:Zi()},e.states.set(e.sessionId,t)):t.engine=n;let r=J.resolve(e.options.context?.executionCwd??e.settings.executionCwd??e.options.context?.gitRoot??process.cwd()),o=J.resolve(e.options.context?.gitRoot??r),s=Zh(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,S=await Fa({askUser:i(async(x,g,E,d)=>{let p=e.getRecord();if(!p)return"block";let h=p.phase;p.phase==="running"&&e.onPhase(p,"waiting_permission");try{let P=await e.permissions.requestOwned({sessionId:e.sessionId,runId:p.runId,...p.turnId!==void 0?{turnId:p.turnId}:{},toolCallId:x.id,toolName:x.name,reason:g.slice(0,512),risk:zh(E),inputPreview:nr(x.input),executionCwd:r,...d!==void 0?{autoModeDiagnostics:d}:{}},{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{p.phase==="waiting_permission"&&e.onPhase(p,h==="queued"?"running":h)}},"askUser"),projectRoot:o,executionCwd:r,trustProcessEnvironmentPathExpansion:s,admitWorkspaceSandboxCall:i((x,g)=>{if(Jh(g))return;let E=er(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:[La],onEngineChange:i(x=>{m&&(m.engine=x),e.onEngineChange(x)},"onEngineChange")}),y=Yh(S.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>Wh;){let x=c.keys().next().value;if(x===void 0||x===a)break;c.get(x)?.guardrail.clearAllowedCalls(),c.delete(x)}return y}i(ew,"createRuntimeAutoModeGuardrail");function yl(e,n,t){if(bl.has(n))return!0;let r=mn(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:J.resolve(o),a=vs(e);if(r==="plan"){let c=Pa(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(ka(c))return!0;if(s&&Ea(c,s,a))return}if(s&&Ia.has(n)){let c=typeof t.path=="string"?t.path:void 0;if(c&&ba(Xs(c,a),s))return}return Da(r).has(n)?void 0:!0}i(yl,"resolveRuntimePermissionPolicy");function Rl(e){return e?e.type==="allow_once"||e.type==="allow_session"||e.type==="allow_always"?!0:e.reason??!1:!1}i(Rl,"decisionToToolDecision");var nw=8192,Mr=16384,hl=16,tw={command:2048,description:1024,file_path:1024,path:1024,paths:1024,cwd:1024,url:1024,preview:2048},rw=/(?:api[_-]?key|authorization|cookie|credential|password|secret|token)/i;function Ss(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]
30
+ `).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(Ss,"redactPermissionPreviewString");function nr(e){try{return iw(e)}catch{return'{"__truncated":true}'}}i(nr,"previewInput");function iw(e){let n={},t=!0;for(let[o,s]of Object.entries(tw)){let a=Object.getOwnPropertyDescriptor(e,o);if(!a||!a.enumerable||!("value"in a))continue;if(rw.test(o)){n[o]="[REDACTED]";continue}let c=a.value;if(typeof c=="string"){let l=c.slice(0,Mr),m=Ss(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,hl)){if(typeof m!="string"){t=!0;continue}let R=m.slice(0,Mr),S=Ss(R);l.push(S.slice(0,s)),t||=m.length>R.length||S.length>s}t||=c.length>hl,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<=nw?r:'{"__truncated":true}'}i(iw,"buildPermissionInputPreview");function ow(e){if(e.length>Mr)return nr({preview:e.slice(0,Mr)});try{let n=JSON.parse(e);return nr(re(n)?n:{value:n})}catch{return nr({preview:e})}}i(ow,"normalizePermissionInputPreview");function Ne(e){return e instanceof Error?e:new Error(String(e))}i(Ne,"normalizeError");function Xn(e,n){return Object.assign(new Error(e),{code:"conflict",currentRevision:n})}i(Xn,"createRuntimeConflictError");function Is(e){return Object.assign(new Error(`Session is archived and cannot execute until it is unarchived: ${e}`),{code:"session_archived"})}i(Is,"createSessionArchivedError");function be(e){return Object.assign(new Error(e),{code:"resync_required"})}i(be,"createRuntimeResyncError");function wl(e){return e instanceof rn&&e.code==="data_changed"?be("Conversation history changed; acquire a fresh history boundary"):Ne(e)}i(wl,"normalizeConversationBoundaryMutationError");function Ds(e){return Object.assign(be(e),{snapshotInvalid:!0})}i(Ds,"createRuntimeTranscriptSnapshotInvalidError");function sw(e){return re(e)&&e.snapshotInvalid===!0}i(sw,"isRuntimeTranscriptSnapshotInvalidError");function ki(){return Object.assign(new Error(`Transcript snapshot storage limit exceeded (${xr} bytes)`),{code:"overloaded",data:{limitBytes:xr}})}i(ki,"createRuntimeSnapshotCapacityError");function Li(){return Object.assign(new Error(`Runtime history page limit exceeded (${kt} bytes)`),{code:"overloaded",data:{limitBytes:kt}})}i(Li,"createRuntimeHistoryPageCapacityError");function aw(){return Object.assign(new Error(`Transcript snapshot I/O limit exceeded (${Ti} operations)`),{code:"overloaded",data:{resource:"transcript_snapshot_io",limit:Ti}})}i(aw,"createRuntimeSnapshotIoCapacityError");function dw(e,n){return Ni(e)?e:re(e)&&(e.code==="overloaded"||e.code==="resync_required")?e instanceof Error?e:Object.assign(new Error("Transcript snapshot operation failed"),e):n?new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing"):re(e)&&(e.code==="ENOENT"||e.code==="ENOTDIR")?be("Transcript snapshot storage changed; request a fresh boundary"):Object.assign(new Error("Unable to materialize the transcript snapshot",{cause:e}),{code:"internal_error"})}i(dw,"normalizeRuntimeSnapshotMaterializationError");function Vl(e){return Object.assign(new Error(e),{code:"invalid_input"})}i(Vl,"createRuntimeInvalidInputError");function uw(e){return Object.assign(new Error(e),{code:"credential_unavailable"})}i(uw,"createRuntimeCredentialUnavailableError");function cw(){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(cw,"createUnsupportedCredentialService");function lw(){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(lw,"createUnsupportedHostToolService");function Jt(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(Jt,"assertSessionMutationAllowed");function vl(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(vl,"assertDeleteSucceeded");function mw(e){return structuredClone(e)}i(mw,"cloneMessage");export{wo as a,Gn as b,vo as c,Mt as d,dt as e,Zr as f,di as g,bu as h,Eu as i,Xf as j,Uf as k,_n as l,vt as m,XS as n,US as o,zS as p,WS as q,GS as r,VS as s,JS as t,My as u,El as v};