@kodax-ai/kodax 0.7.72 → 0.7.73
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.
- package/CHANGELOG.md +92 -0
- package/README.md +48 -14
- package/README_CN.md +33 -10
- package/dist/chunks/{agent-YKGU4USA.js → agent-T6PGT6AU.js} +1 -1
- package/dist/chunks/argument-completer-QGMWA2C3.js +2 -0
- package/dist/chunks/{chunk-SQODXBLX.js → chunk-64M5HOCA.js} +1 -1
- package/dist/chunks/{chunk-PKQOEDHJ.js → chunk-6JTWXGVU.js} +217 -223
- package/dist/chunks/{chunk-IR5KIK7E.js → chunk-6RI2RBTF.js} +1 -1
- package/dist/chunks/chunk-AGDDM5AW.js +329 -0
- package/dist/chunks/chunk-BUPJGG3C.js +5 -0
- package/dist/chunks/chunk-EAD4SF3Z.js +413 -0
- package/dist/chunks/chunk-F7AIEHSS.js +46 -0
- package/dist/chunks/{chunk-E27LHEIP.js → chunk-GAFFYJU3.js} +1 -1
- package/dist/chunks/chunk-HVCNAZ52.js +365 -0
- package/dist/chunks/{chunk-MVARIMQV.js → chunk-M7FXNPWV.js} +2 -2
- package/dist/chunks/{chunk-44QXPEEE.js → chunk-MBAPT2R5.js} +1 -1
- package/dist/chunks/{chunk-WIBLZK4G.js → chunk-MLEAQTCD.js} +2 -2
- package/dist/chunks/{chunk-JSDLBXME.js → chunk-OG6DRNKV.js} +63 -63
- package/dist/chunks/{chunk-2RI252RN.js → chunk-PFH53O4M.js} +1 -1
- package/dist/chunks/chunk-V4F6IYNK.js +73 -0
- package/dist/chunks/chunk-WQ6PWGK5.js +320 -0
- package/dist/chunks/chunk-XXQLPTAN.js +78 -0
- package/dist/chunks/compaction-config-IHJBP4GO.js +2 -0
- package/dist/chunks/{construction-bootstrap-ZJPXUPXQ.js → construction-bootstrap-EGRUHKLP.js} +1 -1
- package/dist/chunks/dist-5N3I2RTW.js +2 -0
- package/dist/chunks/{dist-GOUP4YVE.js → dist-EVEJAII2.js} +1 -1
- package/dist/chunks/host-MECITNE3.js +2 -0
- package/dist/chunks/run-manager-AY7RQOWM.js +2 -0
- package/dist/chunks/{utils-OTT5CG5J.js → utils-2GAE4XIM.js} +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +1341 -1320
- package/dist/provider-capabilities.json +184 -5
- package/dist/runtime-worker.js +1227 -1216
- package/dist/sdk-a2a.d.ts +10 -10
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +13 -13
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +96 -30
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +8 -49
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +138 -16
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +99 -17
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-session.d.ts +6 -6
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +10 -10
- package/dist/types-chunks/{base.d-Cz_rwpOi.d.ts → base.d-ChvpaKjZ.d.ts} +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-CHJO5y94.d.ts → bash-prefix-extractor.d-bApf5nGw.d.ts} +3 -3
- package/dist/types-chunks/{capability-learning.d-_lR0J4iR.d.ts → capability-learning.d-DPrYxRjF.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-DxtdE-GD.d.ts → capsule.d-CGWltwno.d.ts} +2 -2
- package/dist/types-chunks/{commands.d-DZxHzH5-.d.ts → commands.d-CEHGwRok.d.ts} +62 -6
- package/dist/types-chunks/{guardrail.d-DlpMnd-Y.d.ts → guardrail.d-CC4vAQl7.d.ts} +2 -1
- package/dist/types-chunks/{guardrail.d-auV61_h5.d.ts → guardrail.d-CXIPlWP3.d.ts} +10 -10
- package/dist/types-chunks/{public-api.d--IDNJsu1.d.ts → public-api.d-FBmX0kxo.d.ts} +4 -3
- package/dist/types-chunks/{run-manager.d-Bh50OdVl.d.ts → run-manager.d-DUNnJcpE.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-Cfw6NFu-.d.ts → sdk-session-XqacVOs8.d.ts} +3 -3
- package/dist/types-chunks/{resolver.d-ssgNSlrh.d.ts → side-query.d-DWTMsndP.d.ts} +68 -5
- package/dist/types-chunks/{types.d-DH1mvdcl.d.ts → types.d-BnPhGmar.d.ts} +3 -1
- package/dist/types-chunks/{types.d-Cqaw71Ax.d.ts → types.d-CSmF0t0n.d.ts} +6 -5
- package/dist/types-chunks/{types.d-EqQmHztg.d.ts → types.d-DKr6TCXL.d.ts} +16 -9
- package/dist/types-chunks/{types.d-CNZgY52F.d.ts → types.d-DgciGHoG.d.ts} +2 -2
- package/dist/types-chunks/{utils.d-gmn3c5U4.d.ts → utils.d-BPYX7-KN.d.ts} +94 -10
- package/docs/SDK_EMBEDDER_GUIDE.md +128 -21
- package/package.json +2 -2
- package/dist/chunks/argument-completer-QZETLNAB.js +0 -2
- package/dist/chunks/chunk-23X6REO4.js +0 -46
- package/dist/chunks/chunk-CLFP6UGU.js +0 -71
- package/dist/chunks/chunk-EDZ5KJFT.js +0 -5
- package/dist/chunks/chunk-GIK4SGAT.js +0 -364
- package/dist/chunks/chunk-GVWPHE23.js +0 -310
- package/dist/chunks/chunk-VDGCGOQH.js +0 -328
- package/dist/chunks/chunk-VVE3UM4F.js +0 -410
- package/dist/chunks/chunk-ZJIMT5I3.js +0 -78
- package/dist/chunks/compaction-config-TWCDFLX6.js +0 -2
- package/dist/chunks/dist-JT4ATXVM.js +0 -2
- package/dist/chunks/host-SVEDZUC5.js +0 -2
- package/dist/chunks/run-manager-RX42UNEM.js +0 -2
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{Bb as Vi,Db as Qi,Eb as Yi,Mb as Zi,Nb as eo,Ob as no,Pb as to,Qb as nr,Wa as Ji,ec as ro,fc as io}from"./chunk-WQ6PWGK5.js";import{Aa as Gi,j as Fi,k as $i,m as fe,n as Xi,s as Ui,t as Bi,x as Wi,y as zi}from"./chunk-6JTWXGVU.js";import{K as er,M as Hi,T as qi,U as Ki,m as Zt}from"./chunk-MLEAQTCD.js";import{Z as rt,e as _i,ga as Qt,ma as Yt,pa as Li,ra as Ni,sa as ji,va as it,w as Oi}from"./chunk-EAD4SF3Z.js";import{Hd as Ti,Jd as Ci,Pc as Vt,cb as Tn,mc as Ai,rb as Jt,xc as sn}from"./chunk-HVCNAZ52.js";import{a as Ut,c as Ke,wa as Ri,ya as et}from"./chunk-XXQLPTAN.js";import{Ec as Gt,La as tt,Ma as ki,Oa as An,Ua as Ii,_b as Wt,ae as xi,ee as Di,fe as Mi,wc as zt}from"./chunk-OG6DRNKV.js";import{F as bi,V as Pi,X as Bt,a as hi,b as re,e as vi,ea as Ei,g as nt,h as Si}from"./chunk-GAFFYJU3.js";import{y as yi,z as wi}from"./chunk-BUPJGG3C.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as ad,randomUUID as pe}from"node:crypto";import*as L from"node:fs";import dd from"node:os";import F from"node:path";import{createHash as Pd}from"node:crypto";import Cn from"node:path";var Ed=["path","file_path"],xd=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function or(e){let n=e.platform??ot();if(e.toolName==="bash")return Dd(e,n);let t=xd.has(e.toolName)?Ed.map(a=>e.toolInput[a]).find(a=>typeof a=="string"&&a.length>0):void 0;if(t!==void 0)return Ad(e.toolName,t,e.executionCwd,n);let r=ar(e.executionCwd,e.executionCwd,n),o=Xe(_d(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:Xe({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(or,"createRuntimePermissionMatcher");function oo(e,n){if(e.toolName!==n.toolName)return!1;let t=or(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(oo,"runtimePermissionMatcherMatches");function so(e){if(!Od(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"||!rr(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!rr(e.argvFingerprint))throw new Error("invalid Runtime command permission matcher");let n={version:1,kind:"exact-command",toolName:e.toolName,fingerprint:e.fingerprint,shell:e.shell,commandFingerprint:e.commandFingerprint,cwd:e.cwd,background:e.background,...e.executable!==void 0?{executable:e.executable}:{},...e.argvFingerprint!==void 0?{argvFingerprint:e.argvFingerprint}:{}};return tr(n,{version:1,kind:"exact-command",toolName:n.toolName,shell:n.shell,commandFingerprint:n.commandFingerprint,cwd:n.cwd,...n.executable!==void 0?{executable:n.executable}:{},...n.argvFingerprint!==void 0?{argvFingerprint:n.argvFingerprint}:{},background:n.background}),n}if(e.kind==="exact-path"&&typeof e.path=="string"){let n={version:1,kind:"exact-path",toolName:e.toolName,fingerprint:e.fingerprint,path:e.path};return tr(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&rr(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return tr(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(so,"parseRuntimePermissionMatcher");function tr(e,n){if(Xe(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(tr,"assertMatcherFingerprint");function sr(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(sr,"hasDynamicShellExpansion");function ot(){return process.platform==="win32"?"win32":"posix"}i(ot,"runtimePermissionHostPlatform");function Dd(e,n){let t=e.toolInput.command,r=typeof t=="string"?Td(t):"",o=ar(e.executionCwd,e.executionCwd,n),a=e.toolInput.run_in_background===!0,d=Cd(r,n),u=Md(d?.[0],n),p=d&&d.length>1?Xe(d.slice(1)):void 0,w=n==="win32"?"cmd":"posix",l=Xe(r),s={version:1,kind:"exact-command",toolName:e.toolName,shell:w,commandFingerprint:l,cwd:o,...u!==void 0?{executable:u}:{},...p!==void 0?{argvFingerprint:p}:{},background:a};return{...s,fingerprint:Xe(s)}}i(Dd,"createExactCommandMatcher");function Md(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?Cn.win32.basename(e.replaceAll("/","\\")):Cn.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(Md,"safeExecutableMetadata");function Ad(e,n,t,r){let o=ar(n,t,r),a={version:1,kind:"exact-path",toolName:e,path:o};return{...a,fingerprint:Xe(a)}}i(Ad,"createExactPathMatcher");function Td(e){return e.replace(/\r\n?/g,`
|
|
3
|
+
`).trim()}i(Td,"normalizeCommand");function ar(e,n,t){if(t==="win32"){let r=Cn.win32.resolve(n.replaceAll("/","\\"));return Cn.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return Cn.posix.resolve(n,e)}i(ar,"normalizePermissionPath");function Cd(e,n){if(e.length===0||e.includes("\0")||e.includes(`
|
|
4
|
+
`))return;let t=[],r="",o;for(let a=0;a<e.length;a+=1){let d=e[a]??"";if(n==="posix"&&d==="'"&&o!=="double"){o=o==="single"?void 0:"single";continue}if(d==='"'&&o!=="single"){o=o==="double"?void 0:"double";continue}if(d===(n==="win32"?"^":"\\")&&o!=="single"&&a+1<e.length){r+=e[a+1]??"",a+=1;continue}if(/\s/.test(d)&&o===void 0){r.length>0&&t.push(r),r="";continue}r+=d}if(o===void 0)return r.length>0&&t.push(r),t.length>0?t:void 0}i(Cd,"tokenizeShellCommand");function _d(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}i(_d,"normalizeGenericInput");function Xe(e){return Pd("sha256").update(ir(e)).digest("hex")}i(Xe,"stableFingerprint");function ir(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(ir).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${ir(n[t])}`).join(",")}}`}i(ir,"stableSerialize");function rr(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}i(rr,"isSha256");function Od(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Od,"isRecord");import{createHash as Ld}from"node:crypto";import ve from"node:fs";import he from"node:path";function an(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(an,"isRecord");function ao(e){return an(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"&&an(e.capabilities)&&an(e.effects):!1}i(ao,"isRegistration");function Nd(e){return an(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"&&an(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}i(Nd,"isTask");function jd(e){return an(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}i(jd,"isEvent");function co(e){try{return JSON.parse(ve.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(co,"parseJson");function uo(e,n){if(!ve.existsSync(e))return[];let t=co(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(uo,"readList");function dr(e,n){ve.mkdirSync(he.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;ve.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
5
|
+
`,{encoding:"utf8",mode:384}),ve.renameSync(t,e)}i(dr,"writeJsonAtomic");function st(e,n){let t=Ld("sha256").update(n).digest("hex");return he.join(e,t)}i(st,"taskDirectory");function Fd(e,n){if(!ve.existsSync(e))return[];let t=ve.readFileSync(e,"utf8").trim();if(!t)return[];let r=0;return t.split(/\r?\n/).map((o,a)=>{let d;try{d=JSON.parse(o)}catch(u){let p=u instanceof Error?u.message:String(u);throw new Error(`Invalid Runtime agent event at ${e}:${a+1}: ${p}`)}if(!jd(d))throw new Error(`Invalid Runtime agent event shape at ${e}:${a+1}`);if(d.taskId!==n)throw new Error(`Runtime agent event taskId does not match its ledger at ${e}:${a+1}`);if(d.seq<=r)throw new Error(`Runtime agent events require a strictly increasing positive sequence at ${e}:${a+1}`);return r=d.seq,d})}i(Fd,"readEvents");function lo(e){let n=he.resolve(e),t=he.join(n,"registrations.json"),r=he.join(n,"task-registration-snapshots.json"),o=he.join(n,"tasks");return{async loadRegistrations(){return uo(t,ao)},async saveRegistrations(a){dr(t,a)},async loadTaskRegistrationSnapshots(){return uo(r,ao)},async saveTaskRegistrationSnapshots(a){dr(r,a)},async loadTasks(){if(!ve.existsSync(o))return[];let a=[];for(let u of ve.readdirSync(o,{withFileTypes:!0})){if(!u.isDirectory())continue;let p=he.join(o,u.name,"snapshot.json");if(!ve.existsSync(p))continue;let w=co(p);if(!Nd(w))throw new Error(`Invalid Runtime agent task shape: ${p}`);a.push({directoryName:u.name,file:p,task:w})}let d=new Set;for(let{task:u}of a){if(d.has(u.taskId))throw new Error(`Duplicate Runtime agent taskId: ${u.taskId}`);d.add(u.taskId)}for(let{directoryName:u,file:p,task:w}of a){let l=he.basename(st(o,w.taskId));if(u!==l)throw new Error(`Runtime agent task directory does not match taskId hash: ${p}`)}return a.map(({task:u})=>u)},async saveTask(a){dr(he.join(st(o,a.taskId),"snapshot.json"),a)},async loadEvents(a){return Fd(he.join(st(o,a),"events.jsonl"),a)},async appendEvent(a){let d=he.join(st(o,a.taskId),"events.jsonl");ve.mkdirSync(he.dirname(d),{recursive:!0}),ve.appendFileSync(d,`${JSON.stringify(a)}
|
|
6
|
+
`,{encoding:"utf8",mode:384})}}}i(lo,"createRuntimeAgentExecutorPlaneStore");import{createHash as Io,randomUUID as at}from"node:crypto";import dn from"node:fs";import{mkdir as bo,readFile as Po}from"node:fs/promises";import Q from"node:path";var Eo=["read","grep","glob"],xo=["write","edit","multi_edit","insert_after_anchor"],Do=["mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt"],$d=["list_dispatchable_agents","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output"],Hd=new Set([...Eo,...xo]),qd=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),Kd=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]);function cr(e){return Array.isArray(e)?e.map(cr):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,cr(t)]))}i(cr,"canonicalValue");function Ue(e){return Io("sha256").update(JSON.stringify(cr(e))).digest("hex")}i(Ue,"stableHash");function Mo(e){let n=Io("sha256");for(let t of e)n.update(t);return n.digest("hex")}i(Mo,"hashParts");function dt(e,n){let t=Q.relative(Q.resolve(e),Q.resolve(n));return t===""||!t.startsWith("..")&&!Q.isAbsolute(t)}i(dt,"isInside");function lr(e){if(!dn.existsSync(e))return 0;let n=0;for(let t of dn.readdirSync(e,{withFileTypes:!0})){let r=Q.join(e,t.name);t.isSymbolicLink()||(t.isDirectory()?n+=lr(r):t.isFile()&&(n+=dn.statSync(r).size))}return n}i(lr,"directoryBytes");function mo(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<=0)throw new Error("Runtime workspace byte limit must be positive.");return e}}i(mo,"validateWorkspaceByteLimit");function ur(e){if(e.mode==="managed")return{mode:"managed"};if(!Q.isAbsolute(e.root))throw new Error("Fixed Runtime workspace root must be absolute.");return{mode:"fixed",root:Q.resolve(e.root)}}i(ur,"normalizedWorkspace");function mr(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(mr,"exactList");function po(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,mr(r,`${n}.${t}`,!1)]}))}i(po,"exactMap");function fo(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:mr(n.origins,"Runtime toolPolicy.network.origins").map(a=>{let d=new URL(a);if(!["http:","https:"].includes(d.protocol)||d.origin!==a)throw new Error("Runtime network authority must be an exact HTTP(S) origin.");return d.origin})},r=po(e.skillScripts,"Runtime toolPolicy.skillScripts"),o=Object.values(r).reduce((a,d)=>a+d.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:mr(e.tools,"Runtime toolPolicy.tools"),mcp:po(e.mcp,"Runtime toolPolicy.mcp"),skillScripts:r,subagents:e.subagents}}i(fo,"validatedToolPolicy");function Xd(e){return e==="project"?"workspace":e}i(Xd,"skillSource");function Ud(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(Ud,"skillFiles");async function Bd(e){let n=[e.name,e.rawContent];for(let t of Ud(e))n.push(t.relativePath,await Po(t.path));return Mo(n)}i(Bd,"skillRevision");var pr=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.")}};async function Ao(e){let n=e.workspace.mode==="fixed"?e.workspace.root:void 0,t=bi(n),r=t.userPaths.filter(w=>Q.basename(Q.dirname(w))===".agents"),o=new Pi(n,{projectPaths:e.workspace.mode==="managed"?[]:t.projectPaths,userPaths:[Q.join(e.configHome,"skills"),...r],pluginPaths:t.pluginPaths,builtinPath:t.builtinPath});await o.discover();let a=o.list(),u=e.selection===void 0||e.selection.includes("*")?a.filter(w=>w.source!=="project"&&!w.disableModelInvocation):e.selection.map(w=>{let l=o.get(w);if(!l)throw new Error(`Markdown Agent requires unknown Skill "${w}".`);if(l.disableModelInvocation)throw new Error(`Skill "${w}" disables model invocation.`);return l}),p=[];for(let w of u.sort((l,s)=>l.name.localeCompare(s.name))){let l=await Bd(await o.loadFull(w.name));p.push({name:w.name,source:Xd(w.source),revision:l})}return{registry:new pr(o,u),refs:p,revision:Ue(p)}}i(Ao,"resolveSkills");function Wd(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(a=>!o.has(new URL(a).origin)))throw new Error(`Remote tool "${e}" requires a network origin outside toolPolicy.`)}i(Wd,"validateRemoteContract");function go(e){let n=new Set;e.policy.workspace!=="none"&&Eo.forEach(a=>n.add(a)),e.policy.workspace==="write"&&xo.forEach(a=>n.add(a)),e.hasSkills&&n.add("skill"),e.hasSkillScripts&&n.add("run_skill_script"),Object.keys(e.policy.mcp).length>0&&Do.forEach(a=>n.add(a)),e.policy.subagents==="inherit"&&$d.forEach(a=>n.add(a));let t=new Map(Vt().map(a=>[a.name,a])),r=new Map;for(let a of e.policy.tools){let d=t.get(a)?.remoteContract;if(!d)throw new Error(`Tool "${a}" has no Runtime remote contract.`);Wd(a,d,e.policy),r.set(a,d),n.add(a)}let o=new Map;for(let a of n){let d=t.get(a);if(!d)throw new Error(`Runtime tool is unavailable: ${a}.`);if(!r.has(a)&&d.source.kind!=="builtin")throw new Error(`Native Runtime tool "${a}" is shadowed by a non-builtin registration.`);o.set(a,d.registrationId)}if(e.declared!==void 0){let a=e.declared.filter(u=>!n.has(u));if(a.length>0)throw new Error(`Markdown Agent tools are denied by remote policy: ${a.join(", ")}.`);let d=[...new Set(e.declared)].sort();return{tools:d,contracts:r,registrations:new Map(d.map(u=>[u,o.get(u)]))}}return{tools:[...n].sort(),contracts:r,registrations:o}}i(go,"resolveToolSurface");function Ro(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(Ro,"skillsPrompt");function yo(e,n){let r=Q.relative(n,e).split(Q.sep).map(o=>o.toLowerCase());return r.some(o=>qd.has(o))||r.some(o=>Kd.has(o)||o.startsWith(".env."))}i(yo,"sensitivePath");function zd(e){let n=e;for(;!dn.existsSync(n);){let t=Q.dirname(n);if(t===n)throw new Error("Tool path has no existing parent.");n=t}return n}i(zd,"nearestExistingPath");function Gd(e,n){let t=dn.realpathSync(e),r=zd(n),o=dn.realpathSync(r);if(!dt(t,o))throw new Error("Tool path escapes the bound workspace through a link.");let a=Q.resolve(o,Q.relative(r,n));if(!dt(t,a))throw new Error("Tool path escapes the bound workspace through a link.");return{root:t,candidate:a}}i(Gd,"resolveRealToolPath");function _n(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=Q.resolve(e,n);if(!dt(e,t))throw new Error("Tool path escapes the bound workspace.");let r=Gd(e,t);if(yo(t,e)||yo(r.candidate,r.root))throw new Error("Secret-bearing paths are unavailable to remote Agents.");return t}i(_n,"resolveToolPath");function wo(){return{beforeToolExecute:i(async()=>!0,"beforeToolExecute")}}i(wo,"remoteRunEvents");function Jd(e,n,t){if(!Do.includes(e))return;if(e==="mcp_search"){let w=n.server;if(typeof w!="string"||t.mcp[w]===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[,a,d,u]=o,p=t.mcp[a??""]??[];if(d==="tool"&&!p.includes(u??""))throw new Error("MCP tool is not admitted by the remote policy.");if(d!=="tool"&&!p.includes(u??""))throw new Error("MCP capability is not admitted by the remote policy.")}i(Jd,"authorizeMcp");function Vd(e){return{async resolveReadablePath(n){return _n(e,n)??e},async stageOutput(n){let t=at(),r=Q.basename(n).replace(/[^A-Za-z0-9._-]/g,"_")||"output",o=Q.join(e,".kodax-a2a-staging",`${t}-${r}`);return await bo(Q.dirname(o),{recursive:!0}),{stagingId:t,path:_n(e,o)??o}}}}i(Vd,"workspaceBroker");function ho(e,n){return{kind:"tool",name:`runtime-remote-policy:${e.bindingId}`,async beforeTool(t,r){try{if(e.workspaceByteLimit!==void 0&&lr(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(Vt().find(d=>d.name===t.name)?.registrationId!==e.toolRegistrations.get(t.name))throw new Error("Tool registration changed after the Runtime binding was prepared.");if(Hd.has(t.name)){let d=(t.name==="grep"||t.name==="glob","path");_n(n,t.input[d])}Jd(t.name,t.input,e.toolPolicy);let a=e.remoteContracts.get(t.name);if(a){let d=await a.authorizeCall(t.input,{workspaceAccess:e.toolPolicy.workspace,allowedNetworkOrigins:e.toolPolicy.network.mode==="allowlist"?e.toolPolicy.network.origins:[],workspace:Vd(n),signal:r.abortSignal??new AbortController().signal});if(!d.allowed)throw new Error(d.reason);return{action:"rewrite",payload:{...t,input:d.input}}}return{action:"allow"}}catch(o){return{action:"block",reason:o instanceof Error?o.message:String(o)}}},async afterTool(){return e.workspaceByteLimit!==void 0&&lr(n)>e.workspaceByteLimit?{action:"block",reason:"Remote workspace byte quota exceeded."}:{action:"allow"}}}}i(ho,"createToolGuardrail");async function vo(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"&&Q.resolve(o)!==n.workspace.root)throw new Error("Runtime session workspace does not match the fixed binding.");if(n.workspace.mode==="managed"&&!dt(e.managedWorkspaceRoot,o))throw new Error("Runtime session workspace is outside the managed A2A root.");return Q.resolve(o)}i(vo,"requiredWorkspaceRoot");async function So(e,n,t){let r=t.mode==="fixed"?t.root:e.managedWorkspaceRoot,o=await Ai({cwd:r,configHome:e.configHome,userOnly:!0}),a=o.loaded.find(p=>p.name===n.name&&p.source==="markdown:user"),d=o.scope.resolve(n.name);if(!a||!d||d.source!=="markdown:user"){await o.dispose();let p=o.failed.find(w=>Q.basename(w.path,".md")===n.name);throw new Error(p?.reason??`User Markdown Agent not found: ${n.name}`)}let u=Mo([await Po(a.path)]);try{let p=await Ao({configHome:e.configHome,workspace:t,selection:a.requestedSkills});return{scope:o.scope,loaded:a,configurationRevision:u,skills:p}}catch(p){throw await o.dispose(),p}}i(So,"localAgentResources");function ko(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(ko,"resolvedLocal");function To(e){let n=new Map,t=new Map,r=i(d=>{let u=n.get(d);if(!u)throw new Error("Runtime Agent owner session is not active.");return u},"requireOwner"),o=i((d,u)=>{let p=t.get(u);if(!p||p.ownerSessionId!==d)throw new Error("Runtime Agent binding not found.");return p},"requireBinding"),a=i(async d=>{t.delete(d.bindingId),n.get(d.ownerSessionId)?.delete(d.bindingId),d.scope?.dispose(),await d.skillScriptRunner?.dispose()},"release");return{async resolveLocal(d){let u=ur(d.workspace),p=await So(e,d.ref,u);try{return ko(d.ref,p)}finally{p.scope.dispose()}},async openOwnerSession(){let d=at();return n.set(d,new Set),{ownerSessionId:d}},async bindDefault(d){let u=r(d.ownerSessionId),p=ur(d.workspace),w=fo(d.toolPolicy),l=mo(d.workspaceByteLimit),s=await Ao({configHome:e.configHome,workspace:p}),g=Object.keys(w.skillScripts).length>0,c=go({policy:w,hasSkills:s.refs.length>0,hasSkillScripts:g}),v=g?await e.createSkillScriptRunner?.({registry:s.registry,admissions:w.skillScripts,workspaceAccess:w.workspace,network:w.network,workspaceByteLimit:l}):void 0;if(g&&!v)throw new Error("Runtime isolated Skill script backend is unavailable.");let f=at(),k=Ue(w),b=Ue(p),I=Ue({kind:"runtime-default",profileId:d.profileId,toolPolicyRevision:k,workspaceBindingRevision:b,skillSetRevision:s.revision,provider:e.defaultProvider,model:e.defaultModel,tools:c.tools,workspaceByteLimit:l});if(d.expectedExecutionPolicyRevision&&d.expectedExecutionPolicyRevision!==I)throw await v?.dispose(),new Error("Runtime default execution policy revision changed.");let x={ownerSessionId:d.ownerSessionId,bindingId:f,kind:"runtime-default",executionPolicyRevision:I,toolPolicyRevision:k,workspaceBindingRevision:b,workspace:p,toolPolicy:w,effectiveTools:c.tools,effectiveSkills:s.refs,skillSetRevision:s.revision,skillRegistry:s.registry,skillScriptRunner:v,remoteContracts:c.contracts,toolRegistrations:c.registrations,workspaceByteLimit:l};return t.set(f,x),u.add(f),{ownerSessionId:d.ownerSessionId,bindingId:f,executionPolicyRevision:I,toolPolicyRevision:k,workspaceBindingRevision:b,skillSetRevision:s.revision,effectiveSkills:s.refs,effectiveTools:c.tools}},async startDefault(d){let u=o(d.ownerSessionId,d.bindingId);if(u.kind!=="runtime-default")throw new Error("Runtime Agent binding kind mismatch.");if(u.executionPolicyRevision!==d.expectedExecutionPolicyRevision)throw new Error("Runtime default execution policy revision changed.");let p=await vo(e,u,d.sessionId);return e.runs.start({sessionId:d.sessionId,input:d.input,permissionBroker:d.permissionBroker,agentContext:d.agentContext,options:{context:{executionCwd:p,gitRoot:p,managedTaskWorkspaceDir:p,toolVisibilityPolicy:i(w=>u.effectiveTools.includes(w.name),"toolVisibilityPolicy"),skillRegistry:u.skillRegistry,skillScriptRunner:u.skillScriptRunner,assertReadablePath:i(w=>{_n(p,w)},"assertReadablePath"),skillsPrompt:Ro(u.effectiveSkills,u.skillRegistry)},skillDynamicContext:{disable:!0},guardrails:[ho(u,p)],events:wo()}})},async bindLocal(d){let u=r(d.ownerSessionId),p=ur(d.workspace),w=fo(d.toolPolicy),l=mo(d.workspaceByteLimit),s=await So(e,d.ref,p),g=ko(d.ref,s);if(d.expectedConfigurationRevision&&d.expectedConfigurationRevision!==g.configurationRevision)throw s.scope.dispose(),new Error("User Markdown Agent configuration revision changed.");let c=go({declared:s.loaded.effectiveTools,policy:w,hasSkills:s.skills.refs.length>0,hasSkillScripts:Object.keys(w.skillScripts).length>0}),v=Object.keys(w.skillScripts).length>0,f=v?await e.createSkillScriptRunner?.({registry:s.skills.registry,admissions:w.skillScripts,workspaceAccess:w.workspace,network:w.network,workspaceByteLimit:l}):void 0;if(v&&!f)throw s.scope.dispose(),new Error("Runtime isolated Skill script backend is unavailable.");let k=at(),b=Ue(w),I=Ue(p),x=Ue({kind:"local-agent",profileId:d.profileId,configurationRevision:g.configurationRevision,toolPolicyRevision:b,workspaceBindingRevision:I,skillSetRevision:s.skills.revision,tools:c.tools,workspaceByteLimit:l});if(d.expectedExecutionPolicyRevision&&d.expectedExecutionPolicyRevision!==x)throw await f?.dispose(),s.scope.dispose(),new Error("Local Agent execution policy revision changed.");let R=s.scope.resolve(d.ref.name)?.agent;if(!R)throw await f?.dispose(),s.scope.dispose(),new Error(`User Markdown Agent not found: ${d.ref.name}`);let h={ownerSessionId:d.ownerSessionId,bindingId:k,kind:"local-agent",executionPolicyRevision:x,toolPolicyRevision:b,workspaceBindingRevision:I,workspace:p,toolPolicy:w,effectiveTools:c.tools,effectiveSkills:s.skills.refs,skillSetRevision:s.skills.revision,skillRegistry:s.skills.registry,skillScriptRunner:f,remoteContracts:c.contracts,toolRegistrations:c.registrations,workspaceByteLimit:l,scope:s.scope,loadedAgent:s.loaded,agent:R,configurationRevision:s.configurationRevision};return t.set(k,h),u.add(k),{...g,ownerSessionId:d.ownerSessionId,bindingId:k,executionPolicyRevision:x,toolPolicyRevision:b,workspaceBindingRevision:I,effectiveTools:c.tools}},async startLocal(d){let u=o(d.ownerSessionId,d.bindingId);if(u.kind!=="local-agent"||!u.agent||!u.scope)throw new Error("Runtime Agent binding kind mismatch.");if(u.configurationRevision!==d.expectedConfigurationRevision)throw new Error("User Markdown Agent configuration revision changed.");if(u.executionPolicyRevision!==d.expectedExecutionPolicyRevision)throw new Error("Local Agent execution policy revision changed.");let p=await vo(e,u,d.sessionId),w=typeof u.agent.instructions=="string"?u.agent.instructions:u.agent.instructions({});return e.runs.start({sessionId:d.sessionId,input:d.input,permissionBroker:d.permissionBroker,agentContext:d.agentContext,options:{...u.agent.provider?{provider:u.agent.provider}:{},...u.agent.model?{modelOverride:u.agent.model}:{},...u.agent.effort?{effort:u.agent.effort}:{},context:{executionCwd:p,gitRoot:p,managedTaskWorkspaceDir:p,systemPromptOverride:w,agentScope:u.scope,toolVisibilityPolicy:i(l=>u.effectiveTools.includes(l.name),"toolVisibilityPolicy"),skillRegistry:u.skillRegistry,skillScriptRunner:u.skillScriptRunner,assertReadablePath:i(l=>{_n(p,l)},"assertReadablePath"),skillsPrompt:Ro(u.effectiveSkills,u.skillRegistry)},skillDynamicContext:{disable:!0},guardrails:[ho(u,p)],events:wo()}})},async prepareWorkspace(d){let u=o(d.ownerSessionId,d.bindingId);if(u.workspace.mode==="fixed")return u.workspace.root;if(!/^[a-f0-9]{32,64}$/.test(d.contextKey))throw new Error("Managed Runtime workspace context key is invalid.");let p=Q.join(e.managedWorkspaceRoot,"contexts",d.contextKey);return await bo(p,{recursive:!0}),p},async releaseBinding(d){r(d.ownerSessionId),await a(o(d.ownerSessionId,d.bindingId))},async closeOwnerSession(d){let u=r(d);for(let p of[...u])await a(o(d,p));n.delete(d)}}}i(To,"createRuntimeAgentBindingService");import{spawn as Qd,spawnSync as Yd}from"node:child_process";import{randomUUID as Rr}from"node:crypto";import{constants as Zd,readdirSync as eu,statSync as nu}from"node:fs";import{copyFile as Lo,lstat as tu,mkdir as Be,readFile as yr,realpath as On,rm as ut,stat as lt,writeFile as wr}from"node:fs/promises";import{createRequire as ru}from"node:module";import No from"node:os";import K from"node:path";import{pathToFileURL as iu}from"node:url";import{SandboxManager as fr,getWindowsSandboxUserStatus as ou,installWindowsSandbox as dg,verifyWindowsWfpEgress as su}from"@anthropic-ai/sandbox-runtime";var ct="0.0.65",Co=1048576,au=12e4,jo=ru(import.meta.url),du=process.env.KODAX_BUNDLED==="true"?void 0:iu(jo.resolve("@anthropic-ai/sandbox-runtime")).href,uu=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),cu=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]),lu=JSON.stringify(ki),_o=JSON.stringify(tt),mu=String.raw`
|
|
10
|
+
import { spawn } from 'node:child_process';
|
|
11
|
+
import { readFile } from 'node:fs/promises';
|
|
12
|
+
const { SandboxManager } = await import(process.argv[1]);
|
|
13
|
+
const request = JSON.parse(await readFile(process.argv[2], 'utf8'));
|
|
14
|
+
const endpoints = new Set(request.endpoints.map((item) => item.host.toLowerCase() + ':' + item.port));
|
|
15
|
+
const callback = request.endpoints.length === 0 ? undefined : async ({ host, port }) => endpoints.has(host.toLowerCase() + ':' + port);
|
|
16
|
+
let child;
|
|
17
|
+
try {
|
|
18
|
+
await SandboxManager.initialize(request.config, callback);
|
|
19
|
+
const quote = (value) => process.platform === 'win32'
|
|
20
|
+
? '"' + value.replaceAll('"', '""') + '"'
|
|
21
|
+
: "'" + value.replaceAll("'", "'\"'\"'") + "'";
|
|
22
|
+
const internalElectronNode = request.command === process.execPath && process.versions.electron !== undefined;
|
|
23
|
+
const childArgs = internalElectronNode
|
|
24
|
+
? ['--import', ${lu}, ...request.args]
|
|
25
|
+
: request.args;
|
|
26
|
+
const command = [request.command, ...childArgs].map(quote).join(' ');
|
|
27
|
+
if (process.platform === 'win32') {
|
|
28
|
+
const wrapped = await SandboxManager.wrapWithSandboxArgv(command, 'cmd', undefined, undefined, request.cwd);
|
|
29
|
+
const childEnv = internalElectronNode
|
|
30
|
+
? { ...wrapped.env, [${_o}]: '1' }
|
|
31
|
+
: wrapped.env;
|
|
32
|
+
child = spawn(wrapped.argv[0], wrapped.argv.slice(1), { cwd: request.cwd, env: childEnv, shell: false, stdio: 'inherit' });
|
|
33
|
+
} else {
|
|
34
|
+
const wrapped = await SandboxManager.wrapWithSandbox(command);
|
|
35
|
+
const childEnv = internalElectronNode
|
|
36
|
+
? { ...process.env, [${_o}]: '1' }
|
|
37
|
+
: process.env;
|
|
38
|
+
child = spawn(wrapped, { cwd: request.cwd, env: childEnv, shell: true, stdio: 'inherit' });
|
|
39
|
+
}
|
|
40
|
+
const stop = () => child?.kill('SIGTERM');
|
|
41
|
+
process.once('SIGINT', stop);
|
|
42
|
+
process.once('SIGTERM', stop);
|
|
43
|
+
const code = await new Promise((resolve, reject) => {
|
|
44
|
+
child.once('error', reject);
|
|
45
|
+
child.once('exit', (exitCode, signal) => resolve(signal ? 1 : exitCode ?? 1));
|
|
46
|
+
});
|
|
47
|
+
SandboxManager.cleanupAfterCommand();
|
|
48
|
+
await SandboxManager.reset();
|
|
49
|
+
process.exitCode = code;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
process.stderr.write((error instanceof Error ? error.message : String(error)) + '\n');
|
|
52
|
+
await SandboxManager.reset().catch(() => undefined);
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
}
|
|
55
|
+
`,gr;function Oo(e){return e instanceof Error?e.message:String(e)}i(Oo,"errorText");async function pu(e={}){return e.refresh&&(gr=void 0),gr??=fu(),gr}i(pu,"doctorSandboxRuntime");async function fu(){let e=[];fr.isSupportedPlatform()||e.push(`Unsupported platform: ${process.platform}.`);let n=fr.checkDependencies();e.push(...n.warnings,...n.errors);let t=n.errors.length>0;if(process.env.KODAX_BUNDLED!=="true")try{let d=JSON.parse(await yr(jo.resolve("@anthropic-ai/sandbox-runtime/package.json"),"utf8"));d.version!==ct&&(t=!0,e.push(`ASRT package version mismatch: expected ${ct}, found ${String(d.version)}.`))}catch(d){t=!0,e.push(`ASRT package provenance check failed: ${Oo(d)}`)}let r=process.env.KODAX_A2A_NODE??(process.env.KODAX_BUNDLED==="true"?"node":process.execPath),o=An({args:["--version"],env:$o(),isElectron:r===process.execPath&&process.versions.electron!==void 0}),a=Yd(r,o.args,{env:o.env,shell:!1,encoding:"utf8",windowsHide:!0,timeout:5e3});if(a.status!==0){t=!0;let d=a.error?.message??(a.stderr.trim()||r);e.push(`JavaScript Skill interpreter is unavailable: ${d}.`)}if(process.platform==="win32")try{let d=ou();!d.provisioned||!d.credPresent||!d.inSandboxGroup?(t=!0,e.push("Windows sandbox account is not fully provisioned.")):await su()}catch(d){t=!0,e.push(Oo(d))}return{ready:fr.isSupportedPlatform()&&!t,platform:process.platform,version:ct,diagnostics:e,setupRequired:t}}i(fu,"inspectSandboxRuntime");function Ne(e,n){let t=e.replaceAll("\\","/").replace(/^\.\//,"");if(!t||K.posix.isAbsolute(t)||t.split("/").includes(".."))throw new Error(`${n} must be a safe relative path.`);return t}i(Ne,"canonicalRelative");function Ln(e,n){let t=K.relative(e,n);return t===""||!t.startsWith("..")&&!K.isAbsolute(t)}i(Ln,"isInside");function Fo(e){let n=e.split(K.sep).map(t=>t.toLowerCase());return n.some(t=>uu.has(t))||n.some(t=>cu.has(t)||t.startsWith(".env."))}i(Fo,"isSensitiveRelative");async function gu(e,n){await Be(n,{recursive:!0,mode:448});let t=[...(e.scripts??[]).map(r=>({folder:"scripts",file:r})),...(e.references??[]).map(r=>({folder:"references",file:r})),...(e.assets??[]).map(r=>({folder:"assets",file:r})),...(e.templates??[]).map(r=>({folder:"templates",file:r})),...(e.resources??[]).map(r=>({folder:"resources",file:r}))];await wr(K.join(n,"SKILL.md"),await yr(e.skillFilePath),{mode:384});for(let{folder:r,file:o}of t){let a=Ne(o.relativePath,`Skill ${e.name} support file`),d=K.join(n,r,...a.split("/"));await Be(K.dirname(d),{recursive:!0,mode:448}),await wr(d,await yr(o.path),{mode:384})}}i(gu,"copySkillSnapshot");async function Ru(e,n){let t=new Map;for(let[r,o]of Object.entries(e.admissions)){let a=await e.registry.loadFull(r),d=new Map((a.scripts??[]).map(p=>[`scripts/${Ne(p.relativePath,`Skill ${r} script`)}`,p])),u=K.join(n,r.replace(/[^A-Za-z0-9._-]/g,"_"));await gu(a,u);for(let p of o){let w=Ne(p,`toolPolicy.skillScripts.${r}`);if(!d.has(w))throw new Error(`Skill "${r}" has no script "${w}".`);t.set(`${r}\0${w}`,{skill:r,relativePath:w,snapshotPath:K.join(u,...w.split("/"))})}}return t}i(Ru,"snapshotAdmissions");function yu(e){return e.mode==="deny"?[]:e.origins.map(n=>{let t=new URL(n);return{host:t.hostname.toLowerCase(),port:t.port?Number(t.port):t.protocol==="https:"?443:80}})}i(yu,"networkEndpoints");function $o(){let e=["PATH","Path","PATHEXT","SystemRoot","COMSPEC","TEMP","TMP","HOME","USERPROFILE","LANG"],n={NO_COLOR:"1"};for(let t of e)process.env[t]!==void 0&&(n[t]=process.env[t]);for(let[t,r]of Object.entries(process.env))t.startsWith("LC_")&&r!==void 0&&(n[t]=r);return n}i($o,"sanitizedEnvironment");function wu(e){let n=K.extname(e).toLowerCase();if([".js",".mjs",".cjs"].includes(n))return{command:process.env.KODAX_A2A_NODE??(process.env.KODAX_BUNDLED==="true"?"node":process.execPath),args:[e]};if(n===".py")return{command:process.env.KODAX_A2A_PYTHON??(process.platform==="win32"?"python.exe":"python3"),args:[e]};if(n===".ps1")return{command:process.env.KODAX_A2A_POWERSHELL??(process.platform==="win32"?K.join(process.env.SystemRoot??"C:\\Windows","System32","WindowsPowerShell","v1.0","powershell.exe"):"pwsh"),args:["-NoProfile","-NonInteractive","-File",e]};if(n===".sh"&&process.platform!=="win32")return{command:"/bin/sh",args:[e]};if([".cmd",".bat"].includes(n)&&process.platform==="win32")return{command:process.env.COMSPEC??K.join(process.env.SystemRoot??"C:\\Windows","System32","cmd.exe"),args:["/d","/s","/c",e]};throw new Error(`Unsupported admitted Skill script type: ${n||"<none>"}.`)}i(wu,"interpreterFor");async function hu(e,n){let t=[],r=0,o=i(u=>{r+=u.byteLength,r>Co?e.kill("SIGTERM"):t.push(u)},"append");e.stdout?.on("data",o),e.stderr?.on("data",o);let a=setTimeout(()=>{e.kill("SIGTERM")},au),d=i(()=>{e.kill("SIGTERM")},"abort");n?.addEventListener("abort",d,{once:!0});try{let u=await new Promise((p,w)=>{e.once("error",w),e.once("close",l=>p({code:l??1,stdout:Buffer.concat(t).toString("utf8"),stderr:""}))});if(r>Co)throw new Error("Sandboxed Skill script output exceeded 1 MiB.");if(n?.aborted)throw n.reason??new Error("Sandboxed Skill script was cancelled.");if(u.code!==0)throw new Error(`Sandboxed Skill script failed (${u.code}): ${u.stdout.trim()}`);return{stdout:u.stdout,stderr:u.stderr}}finally{clearTimeout(a),n?.removeEventListener("abort",d)}}i(hu,"collectProcess");async function vu(e,n){let t=K.join(No.tmpdir(),`kodax-asrt-${process.pid}-${Rr()}.json`),r={...e,config:{...e.config,filesystem:{...e.config.filesystem,denyRead:[...e.config.filesystem.denyRead,t]}}};await wr(t,JSON.stringify(r),{mode:384});try{let o=process.env.KODAX_BUNDLED==="true"?["__asrt-broker",t]:["--input-type=module","-e",mu,du,t],a=An({args:o,env:$o(),isElectron:process.versions.electron!==void 0}),d=Qd(process.execPath,a.args,{env:a.env,shell:!1,stdio:["ignore","pipe","pipe"],windowsHide:!0});return(await hu(d,n)).stdout}finally{await ut(t,{force:!0})}}i(vu,"runBroker");async function Su(e,n){let t=await On(e),r=K.resolve(e,Ne(n,"Skill script input")),o=await On(r);if(!Ln(t,o)||Fo(K.relative(t,o)))throw new Error("Skill script input is outside the permitted workspace surface.");if(!(await lt(o)).isFile())throw new Error("Skill script inputs must be files.");return o}i(Su,"workspaceSource");async function ku(e,n){let t=await On(e),r=K.resolve(e,Ne(n,"Skill script output target"));if(!Ln(K.resolve(e),r)||Fo(K.relative(K.resolve(e),r)))throw new Error("Skill script output target is outside the permitted workspace surface.");if(await Be(K.dirname(r),{recursive:!0}),!Ln(t,await On(K.dirname(r))))throw new Error("Skill script output target escapes through a symlink.");try{throw await lt(r),new Error("Skill script output target already exists.")}catch(o){if(o.code!=="ENOENT")throw o}return r}i(ku,"workspaceTarget");async function Iu(e,n,t,r){if(t.inputs.length>0&&r==="none")throw new Error("Skill script inputs require workspace read access.");for(let o of t.inputs){let a=await Su(e,o.path),d=Ne(o.as??K.basename(a),"Skill script staged input"),u=K.resolve(n,"inputs",...d.split("/"));if(!Ln(K.join(n,"inputs"),u))throw new Error("Skill script staged input escapes staging.");await Be(K.dirname(u),{recursive:!0,mode:448}),await Lo(a,u)}}i(Iu,"stageInputFiles");async function bu(e,n,t,r,o){if(t.outputs.length>0&&r!=="write")throw new Error("Skill script outputs require workspace write access.");let a=[];for(let d of t.outputs){let u=Ne(d.path,"Skill script staged output"),p=K.resolve(n,"outputs",...u.split("/")),w=await On(p);if(!Ln(K.join(n,"outputs"),w)||(await tu(p)).isSymbolicLink()||!(await lt(p)).isFile())throw new Error(`Skill script did not produce output "${u}".`);let l=await ku(e,d.target);if(o!==void 0&&Ho(e,!0)+(await lt(p)).size>o)throw new Error("Skill script outputs would exceed the remote workspace byte quota.");await Lo(p,l,Zd.COPYFILE_EXCL),a.push(K.relative(e,l))}return a}i(bu,"promoteOutputs");function Ho(e,n=!1){let t=0;for(let r of eu(e,{withFileTypes:!0})){if(n&&r.name===".kodax-a2a-script"||r.isSymbolicLink())continue;let o=K.join(e,r.name);r.isDirectory()?t+=Ho(o):r.isFile()&&(t+=nu(o).size)}return t}i(Ho,"directorySize");function Pu(e,n,t,r){let o=No.homedir(),a=K.isAbsolute(r)?[r]:[];return{network:{allowedDomains:[],deniedDomains:[],strictAllowlist:t.length===0,allowUnixSockets:[],allowAllUnixSockets:!1,allowLocalBinding:!1},filesystem:{denyRead:[o],allowRead:[e,n,process.execPath,...a],allowWrite:[e],denyWrite:[o]}}}i(Pu,"sandboxConfig");async function qo(e){let n=await pu();if(!n.ready)throw new Error(`ASRT ${ct} is not ready: ${n.diagnostics.join(" ")||"run kodax sandbox setup"}`);let t=K.join(e.snapshotRoot,Rr()),r=K.join(t,"skills");await Be(r,{recursive:!0,mode:448});try{let o=await Ru(e,r),a=yu(e.network),d=Promise.resolve();return{async run(u,p){let w=d,l;if(d=new Promise(s=>{l=s}),await w,p.signal?.aborted)throw l?.(),p.signal.reason??new Error("Sandboxed Skill script was cancelled.");try{if(u.args.length>64||u.args.some(v=>v.length>8192))throw new Error("Skill script arguments exceed the bounded remote contract.");if(u.inputs.length>32||u.outputs.length>32)throw new Error("Skill script file mappings exceed the bounded remote contract.");let s=Ne(u.script,"Skill script"),g=o.get(`${u.skill}\0${s}`);if(!g)throw new Error("Skill script is not admitted by this Runtime binding.");if([".cmd",".bat"].includes(K.extname(g.snapshotPath).toLowerCase())&&u.args.some(v=>/[&|<>^]/.test(v)))throw new Error("Batch Skill script arguments cannot contain command operators.");let c=K.join(p.workspaceRoot,".kodax-a2a-script",Rr());try{await Be(K.join(c,"inputs"),{recursive:!0,mode:448}),await Be(K.join(c,"outputs"),{recursive:!0,mode:448}),await Iu(p.workspaceRoot,c,u,e.workspaceAccess);let v=wu(g.snapshotPath),f=await vu({config:Pu(c,t,a,v.command),command:v.command,args:[...v.args,...u.args],cwd:c,endpoints:a},p.signal),k=await bu(p.workspaceRoot,c,u,e.workspaceAccess,e.workspaceByteLimit);return JSON.stringify({stdout:f.trim(),outputs:k})}finally{await ut(c,{recursive:!0,force:!0})}}finally{l?.()}},async dispose(){await d,await ut(t,{recursive:!0,force:!0})}}}catch(o){throw await ut(t,{recursive:!0,force:!0}),o}}i(qo,"createAsrtSkillScriptRunner");import{createHash as Eu}from"node:crypto";function Uo(e){let n=Wt({rootDir:e.rootDir,clientIdentity:Ko(e.defaultClientIdentity),proposalStores:e.proposalStores}),t,r=i(()=>(t??=n.initialize(),t),"ensureReady"),o=i(d=>{let u=Ko(d),p=Wt({rootDir:e.rootDir,clientIdentity:u,proposalStores:e.proposalStores});return Xo(p,r)},"forClient"),a=Xo(n,r);return Object.assign(a,{forClient:o})}i(Uo,"createRuntimeLearningOwner");function _e(e,n){let t=e;return typeof t.forClient=="function"?t.forClient(n):e}i(_e,"bindRuntimeLearningClient");function Ko(e){return`client_${Eu("sha256").update(e).digest("hex").slice(0,32)}`}i(Ko,"learningClientFileKey");function Xo(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=>xu(r(),e,o),"subscribe"),acknowledge:i(async o=>{await r(),await e.acknowledge(o)},"acknowledge"),snooze:i(async(o,a)=>{await r(),await e.snooze(o,a)},"snooze"),reject:i(async o=>{await r(),await e.reject(o)},"reject"),disable:i(async o=>{await r(),await e.disable(o)},"disable"),rollback:i(async o=>{await r(),await e.rollback(o)},"rollback"),promote:i(async(o,a)=>{await r(),await e.promote(o,a)},"promote"),review:i(async o=>{await r(),await e.review(o)},"review"),trust:i(async o=>{await r(),await e.trust(o)},"trust")}}i(Xo,"createInitializedFacade");function xu(e,n,t){return{[Symbol.asyncIterator](){let r=!1,o,a=e.then(()=>{if(!r)return o=n.subscribe(t)[Symbol.asyncIterator](),o});return{async next(){let d=await a;return r||!d?{done:!0,value:void 0}:d.next()},async return(){return r=!0,o?.return?.()??{done:!0,value:void 0}}}}}}i(xu,"subscribeWhenReady");import{randomUUID as ft}from"node:crypto";var Du=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","turn.started","turn.completed","turn.failed","assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","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","repo_intelligence.trace","todo.updated","todo.warning","sidecar.message","run.completed","run.failed","run.cancelled","run.interrupted","artifact.created","config.effective","runtime.warning"]),Mu=new Set(["run.queued","run.started","run.updated","run.completed","run.failed","run.cancelled","run.interrupted"]);function hr(e){if(!Y(e))return Nn("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"||!Du.has(e.type))return Nn("Runtime event envelope is malformed or has an unknown type.");if((e.type==="assistant.delta"||e.type==="thinking.delta")&&(!Y(e.payload)||typeof e.payload.text!="string"))return Nn(`${e.type} requires a string text payload.`);if(Mu.has(e.type)&&!Cu(e.payload))return Nn(`${e.type} requires a RuntimeRunStatus payload.`);let n=Au(e.type,e.payload);return n!==void 0?Nn(`${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(hr,"parseRuntimeEvent");function Au(e,n){if(e==="session.created")return Te(n,["id","title"])?void 0:"requires a RuntimeSession payload.";if(e==="session.loaded")return Te(n,["id","title"])||Te(n,["provider","sessionId"])?void 0:"requires a RuntimeSession or provider session payload.";if(e==="session.settings.updated")return Y(n)&&typeof n.sessionId=="string"&&Number.isSafeInteger(n.revision)&&Y(n.settings)&&Y(n.patch)?void 0:"requires a session settings update payload.";if(e==="thinking.finished")return Y(n)&&typeof n.thinking=="string"?void 0:"requires a string thinking payload.";if(e==="tool.started")return Y(n)&&Te(n.tool,["id","name"])?void 0:"requires a tool descriptor payload.";if(e==="tool.progress")return Y(n)&&(Te(n.update,["id","message"])||typeof n.toolName=="string"&&typeof n.partialJson=="string")?void 0:"requires a tool progress payload.";if(e==="tool.finished")return Y(n)&&Te(n.result,["id","name","content"])?void 0:"requires a tool result payload.";if(e==="run.progress")return Tu(n);if(e==="todo.updated")return Y(n)&&Array.isArray(n.items)?void 0:"requires an items array payload.";if(e==="user_input.requested"){let t=Y(n)&&Te(n,["id","sessionId","runId","kind","createdAt","expiresAt"])&&Number.isSafeInteger(n.revision),r=Y(n)&&Te(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 Y(n)&&typeof n.requestId=="string"?void 0:"requires a requestId payload.";if(e==="permission.requested")return Te(n,["id","sessionId","runId","toolName","createdAt"])?void 0:"requires a RuntimePermissionRequest payload.";if(e==="permission.grant.changed")return Y(n)&&(n.action==="created"||n.action==="revoked"||n.action==="expired")&&Y(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 Te(n,["sessionId","turnId"])?void 0:"requires a turn payload.";if(e==="workflow.started"||e==="workflow.updated"||e==="workflow.finished")return Y(n)?void 0:"requires a workflow event payload.";if(e==="context.budget.snapshot"||e==="tool.exposure.planned")return Y(n)?void 0:"requires an object payload.";if(e==="runtime.warning")return Y(n)&&typeof n.message=="string"?void 0:"requires a warning message payload."}i(Au,"validateKnownRuntimeEventPayload");function Tu(e){return!Y(e)||typeof e.kind!="string"?"requires a discriminated progress payload.":e.kind==="managed_task_status"?Y(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"?Y(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(Tu,"validateRunProgressPayload");function Cu(e){return Y(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"&&typeof e.phase=="string"}i(Cu,"isRuntimeRunStatusPayload");function Te(e,n){return Y(e)&&n.every(t=>typeof e[t]=="string")}i(Te,"hasStrings");function Nn(e){return{ok:!1,error:e}}i(Nn,"invalid");function Y(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Y,"isRecord");var je="kodax-runtime-daemon",vr=1,un=["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.transcript","session.observe","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","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"],_u=["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"],Wo=["agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile"],Ou=new Set([...un,...Wo]),Lu=new Set(_u),Nu=new Set(["credential.register","credential.revoke","credential.supply","host_tool.register","host_tool.revoke","host_tool.complete"]),ju=new Set(["event","credential.request","host_tool.invoke","runtime.warning"]),Fu=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","credential_unavailable","host_tool_unavailable","host_tool_unknown","internal_error"]);function mt(e,n,t,r){return{protocol:je,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{},...r!==void 0?{operation:r}:{}}}i(mt,"createRuntimeDaemonRequest");function We(e){return Lu.has(e)}i(We,"isRuntimeDaemonMutationMethod");function zo(e){return We(e)||Nu.has(e)}i(zo,"isRuntimeDaemonDrainingSensitiveMethod");function Go(e){return Wo.includes(e)}i(Go,"isRuntimeDaemonRetiredMethod");function Jo(e,n){return{protocol:je,version:1,kind:"response",id:e,result:n===void 0?null:n}}i(Jo,"createRuntimeDaemonSuccessResponse");function Fe(e,n){return{protocol:je,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}i(Fe,"createRuntimeDaemonErrorResponse");function jn(e,n){return{protocol:je,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}i(jn,"createRuntimeDaemonNotification");function Sr(e){if(!pt(e))return!1;let n=e;return n.kind==="request"&&typeof n.id=="string"&&n.id.length>0&&typeof n.method=="string"&&Ou.has(n.method)&&(n.operation===void 0||qu(n.operation))}i(Sr,"isRuntimeDaemonRequest");function cn(e){if(!pt(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(cn,"isRuntimeDaemonSuccessResponse");function ln(e){if(!pt(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&Hu(n.error)}i(ln,"isRuntimeDaemonErrorResponse");function Fn(e){if(!pt(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&ju.has(n.method)}i(Fn,"isRuntimeDaemonNotification");function $u(e){return Sr(e)||cn(e)||ln(e)||Fn(e)}i($u,"isRuntimeDaemonFrame");function Vo(e){let n;try{n=JSON.parse(e)}catch{return Bo("Frame is not valid JSON.")}return $u(n)?n:Bo("Frame does not match the runtime daemon protocol.")}i(Vo,"parseRuntimeDaemonFrame");function Bo(e){return Fe({code:"invalid_frame",message:e})}i(Bo,"invalidFrame");function pt(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===je&&n.version===1}i(pt,"isFrameBase");function Hu(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&Fu.has(n.code)&&typeof n.message=="string"}i(Hu,"isRuntimeDaemonError");function qu(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(qu,"isRuntimeDaemonOperationEnvelope");var is=256,Qo=1e3,Ge=class extends Error{constructor(t,r){super(r);this.path=t;this.name="RuntimeTransportBoundaryError"}path;static{i(this,"RuntimeTransportBoundaryError")}code="invalid_transport_value"},kr=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"}},gt=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"}};function Yo(e){let n=e.activeAgentTurns??e.activeAgentTasks??[];return{...e,activeAgentTurns:n,activeAgentTasks:n}}i(Yo,"normalizeRuntimeDaemonPreflight");function Rt(e){let n=i((s,g,c)=>e.transport.request(s,g,We(s)?Bu(e.journalEpoch,c):void 0),"request"),t=i(()=>{let s=e.capabilities?.actorControlPlane;if(typeof s!="object"||s===null||!("version"in s)||s.version!==1||!("methodNamespace"in s)||s.methodNamespace!=="agents")return new kr},"actorControlPlaneError"),r=i(()=>{let s=e.capabilities?.runtimeAutoModeGuardrail;if(typeof s!="object"||s===null||!("version"in s)||typeof s.version!="number"||s.version<3||!("concretePermissionMatchers"in s)||s.concretePermissionMatchers!==!0||!("permissionGrantSuggestions"in s)||s.permissionGrantSuggestions!==!0)return new gt},"concretePermissionScopeError"),o=new Map,a=new Map,d=new Map,u=new Set,p={state:"connected",connectionId:`connection_${ft().replace(/-/g,"")}`,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},reconnectable:!1},w=e.transport.subscribeLifecycle?.(s=>{p={...s,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{}};for(let g of u)try{g(p)}catch(c){re({source:"runtime.daemon.client",level:"warn",message:"Runtime connection lifecycle listener failed.",detail:{errorType:c instanceof Error?c.name:typeof c}})}}),l=e.transport.subscribe(s=>{s.method==="credential.request"?Xu(s.params,o,n).catch(()=>Zo("credential request")):s.method==="host_tool.invoke"&&Uu(s.params,a,d,n).catch(()=>Zo("host tool invocation"))});return{identity:e.identity,capabilities:e.capabilities,...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{},sessions:{create(s={}){let{operation:g,...c}=s;return n("session.create",c,g)},load(s){return n("session.load",{sessionId:s})},list(s){return n("session.list",s)},transcript(s){return n("session.transcript",{sessionId:s})},observe(s,g){return zu(e.transport,n,s,g)},fork(s){return n("session.fork",s)},getSettings(s){return n("session.settings.get",{sessionId:s})},getSettingsVersioned(s){return n("session.settings.getVersioned",{sessionId:s})},getAutoModeStats(s){return n("session.autoMode.getStats",{sessionId:s})},async updateSettings(s,g){let c=await this.getSettingsVersioned(s);return(await this.updateSettingsVersioned(s,g,{expectedRevision:c.revision})).value},updateSettingsVersioned(s,g,c){return n("session.settings.updateVersioned",{sessionId:s,patch:g,expectedRevision:c.expectedRevision},c)},appendNotice(s){return n("session.notice.append",s)},rewind(s){return n("session.rewind",s)},setActiveEntry(s){return n("session.active_entry.set",s)},compact(s){return n("session.compact",s)},async archive(s){await n("session.archive",{sessionId:s})},async unarchive(s){await n("session.unarchive",{sessionId:s})},async delete(s){await n("session.delete",{sessionId:s})}},runs:{async start(s){let{operation:g,...c}=s;mn(c,"run.start");let v=ge(await n("run.start",c,g)),f=me(v,"runId"),k=me(v,"sessionId"),b=Yu(v,"turnId");return{runId:f,sessionId:k,...b!==void 0?{turnId:b}:{},result:ts(n,f)}},async submitInput(s){let{operation:g,...c}=s;return mn(c,"run.input.submit"),n("run.input.submit",c,g)},await(s){return ts(n,s)},get(s){return n("run.get",{runId:s})},list(s){return n("run.list",s)},async abort(s){await n("run.abort",{runId:s})},async setModel(s,g){await n("run.model.set",{runId:s,model:g})},async setProvider(s,g){await n("run.provider.set",{runId:s,provider:g})},async setReasoning(s,g){await n("run.reasoning.set",{runId:s,reasoning:g})}},events:{subscribe(s,g){return Wu(e.transport,n,s,g)},replay(s){return n("event.replay",s).then(g=>{if(!Array.isArray(g))throw new Error("Expected daemon event replay array.");return g.flatMap(c=>{let v=os(c);return v===void 0?[]:[v]})})}},permissions:{request(s){if(s.toolInput!==void 0){let g=r();if(g)return Promise.reject(g)}return n("permission.request",s)},listPending(s){return n("permission.list",s)},respond(s,g,c){return n("permission.respond",{requestId:s,decision:g,...c?.runId!==void 0?{runId:c.runId}:{}})},listGrants(){return n("permission.grants.list")},revokeGrant(s,g){return n("permission.grants.revoke",{grantId:s,expectedRevision:g})}},userInputs:{listPending(s){return n("user_input.listPending",s)},respond(s,g,c){return n("user_input.respond",{requestId:s,answer:g,...c?.expectedRevision!==void 0?{expectedRevision:c.expectedRevision}:{},...c?.runId!==void 0?{runId:c.runId}:{}})},dismiss(s,g){return n("user_input.dismiss",{requestId:s,...g?.expectedRevision!==void 0?{expectedRevision:g.expectedRevision}:{},...g?.runId!==void 0?{runId:g.runId}:{}})}},credentials:{async register(s,g){let c=`credlease_${ft().replace(/-/g,"")}`;o.set(c,g);try{return await n("credential.register",{leaseId:c,providers:s.providers,...s.expiresAt!==void 0?{expiresAt:s.expiresAt}:{}})}catch(v){throw o.delete(c),v}},async resume(s,g){o.set(s,g);try{let c=await n("credential.get",{leaseId:s});if(c==null)throw Object.assign(new Error(`Credential lease is unavailable after Runtime reconnect: ${s}`),{code:"credential_unavailable"});return ge(c)}catch(c){throw o.delete(s),c}},async revoke(s){let g=await n("credential.revoke",{leaseId:s});return g&&o.delete(s),g}},hostTools:{async register(s,g){es(s,g);let c=`hostlease_${ft().replace(/-/g,"")}`;a.set(c,g);try{return await n("host_tool.register",{leaseId:c,tools:s})}catch(v){throw a.delete(c),v}},async resume(s,g){a.set(s,g);try{let c=await n("host_tool.get",{leaseId:s});if(c==null)throw Object.assign(new Error(`Host tool lease is unavailable after Runtime reconnect: ${s}`),{code:"host_tool_unavailable"});let v=ge(c);return es(v.tools,g),v}catch(c){throw a.delete(s),c}},async getInvocation(s){return ze(await n("host_tool.invocation.get",{invocationId:s}))},async revoke(s){let g=await n("host_tool.revoke",{leaseId:s});return g&&a.delete(s),g}},operations:{get(s){return n("operation.get",s)}},workflows:{list(s){return n("workflow.list",s)},get(s){return n("workflow.get",{runId:s}).then(ze)},subscribe(s,g){return Ju(e.transport,n,s,g)},pause(s){return n("workflow.pause",{runId:s})},resume(s){return n("workflow.resume",{runId:s})},stop(s){return n("workflow.stop",{runId:s})}},learning:{list(s){return n("learning.list",s??{})},get(s){return n("learning.get",{nameOrSlug:s})},getSnapshot(){return n("learning.snapshot")},events(s){return n("learning.events",{...s!==void 0?{afterRevision:s}:{}})},subscribe(s){return Ku(n,s?.afterRevision??0)},async acknowledge(s){await n("learning.acknowledge",{nameOrSlug:s})},async snooze(s,g){await n("learning.snooze",{nameOrSlug:s,until:g})},async reject(s){await n("learning.reject",{nameOrSlug:s})},async disable(s){await n("learning.disable",{nameOrSlug:s})},async rollback(s){await n("learning.rollback",{nameOrSlug:s})},async promote(s,g){await n("learning.promote",{nameOrSlug:s,scope:g})},async review(s){await n("learning.review",{nameOrSlug:s})},async trust(s){await n("learning.trust",{nameOrSlug:s})}},config:{read(){return n("config.read")},patch(s){return n("config.patch",{patch:s})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(s){return n("model.list",s)},commands(s){return n("command.list",s!==void 0?{projectRoot:s}:void 0)},resolveCommand(s){return n("command.resolve",s)},skills(s){return n("skill.list",s)},describeSkill(s){return n("skill.describe",s)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(s){return n("provider.custom.upsert",{config:s})},deleteCustomProvider(s){return n("provider.custom.remove",{name:s})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(s){return n("mcp.server.get",{name:s}).then(ze)},validateServer(s,g){return n("mcp.server.validate",{name:s,config:g})},upsertServer(s,g){return n("mcp.server.upsert",{name:s,config:g})},deleteServer(s){return n("mcp.server.delete",{name:s})},reloadServers(){return n("mcp.server.reload")},listTools(s){return n("mcp.tool.list",s)}},artifacts:{create(s){return n("artifact.create",s)},get(s){return n("artifact.get",{artifactId:s}).then(ze)},delete(s){return n("artifact.delete",{artifactId:s})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(s,g){return mn(s,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:s,...g?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:g.expectedConfigurationRevision}:{},...g?.expectedManagementOwner!==void 0?{expectedManagementOwner:g.expectedManagementOwner}:{}})},setEnabled(s,g,c){return n("agentRegistrations.setEnabled",{agentId:s,enabled:g,...c?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:c.expectedConfigurationRevision}:{},...c?.expectedManagementOwner!==void 0?{expectedManagementOwner:c.expectedManagementOwner}:{},...c?.claimOwner!==void 0?{claimOwner:c.claimOwner}:{}}).then(ze)},remove(s,g){return n("agentRegistrations.remove",{agentId:s,...g?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:g.expectedConfigurationRevision}:{},...g?.expectedManagementOwner!==void 0?{expectedManagementOwner:g.expectedManagementOwner}:{}})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(s){return n("agents.listDispatchable",s)},describe(s,g){return n("agents.describe",{agentId:s,query:g}).then(ze)},preflight(s){return n("agents.preflight",s)},tree(s){let g=t();return g?Promise.reject(g):n("agents.tree",{sessionId:s})},detail(s,g){let c=t();return c?Promise.reject(c):n("agents.detail",{sessionId:s,actorPath:g})},spawn(s,g){let c=t();return c?Promise.reject(c):(mn(g,"agents.spawn"),n("agents.spawn",{sessionId:s,input:g}))},async send(s,g,c,v){let f=t();if(f)throw f;await n("agents.send",{sessionId:s,actorPath:g,content:c,...v!==void 0?{classification:v}:{}})},followup(s,g,c,v){let f=t();return f?Promise.reject(f):n("agents.followup",{sessionId:s,actorPath:g,objective:c,...v?.expectedRevision!==void 0?{expectedRevision:v.expectedRevision}:{}})},async interrupt(s,g,c){let v=t();if(v)throw v;await n("agents.interrupt",{sessionId:s,actorPath:g,...c!==void 0?{reason:c}:{}})},output(s,g,c){let v=t();return v?Promise.reject(v):n("agents.output",{sessionId:s,actorPath:g,...c!==void 0?{turnId:c}:{}})},events(s,g){let c=t();return c?Promise.reject(c):n("agents.events",{sessionId:s,...g!==void 0?{afterSequence:g}:{}})},wait(s,g,c){let v=t();return v?Promise.reject(v):n("agents.wait",{sessionId:s,...g!==void 0?{afterSequence:g}:{},...c!==void 0?{timeoutMs:c}:{}}).then(ze)}},status:{snapshot(){return n("daemon.status")},preflight(){return n("daemon.preflight").then(s=>Yo(s))}},daemon:{inspect(){return n("daemon.management.get").then(s=>{let g=s;return{...g,preflight:Yo(g.preflight)}})},stopForInline(s){let{operation:g,...c}=s;return n("daemon.rollbackToInline",c,g)}},diagnostics:{latestContextBudget(s){return n("context.budget.get",s)},latestToolExposure(s){return n("tool.exposure.preview",s)}},connection:{current(){return p},subscribe(s){return u.add(s),s(p),{close(){u.delete(s)}}}},async close(){w?.close(),l.close(),u.clear(),o.clear(),a.clear(),d.clear(),await e.transport.close?.()}}}i(Rt,"createRuntimeDaemonClient");async function*Ku(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(Ku,"pollRuntimeLearningEvents");function Zo(e){re({source:"runtime.daemon.client",level:"warn",message:`Failed to deliver ${e} result to the Runtime daemon.`})}i(Zo,"reportReverseBridgeFailure");async function Xu(e,n,t){let r=ge(e),o=me(r,"requestId"),a=me(r,"leaseId"),d=n.get(a);if(!d){await t("credential.supply",{requestId:o,error:"credential_lease_unavailable"});return}try{let u=await d({leaseId:a,provider:me(r,"provider"),sessionId:me(r,"sessionId"),runId:me(r,"runId")});await t("credential.supply",{requestId:o,...u!==void 0?{credential:u}:{error:"credential_unavailable"}})}catch{await t("credential.supply",{requestId:o,error:"credential_broker_failed"})}}i(Xu,"answerCredentialRequest");async function Uu(e,n,t,r){let o=ge(e),a=me(o,"invocationId"),d=me(o,"leaseId"),u=me(o,"toolName"),p=n.get(d)?.[u];if(!p){await r("host_tool.complete",{invocationId:a,error:"host_tool_unavailable"});return}let w=t.get(a);if(!w){let l=Promise.resolve().then(()=>p({invocationId:a,leaseId:d,toolName:u,sessionId:me(o,"sessionId"),runId:me(o,"runId"),input:ge(o.input)}));w={promise:l,settled:!1},t.set(a,w);let s=w;l.finally(()=>{s.settled=!0,ns(t)}).catch(()=>{}),ns(t)}try{await r("host_tool.complete",{invocationId:a,result:await w.promise})}catch{try{await r("host_tool.complete",{invocationId:a,error:"host_tool_failed"})}catch(l){throw new Error("Failed to report the Host Tool outcome to the Runtime daemon.",{cause:l})}}}i(Uu,"answerHostToolInvocation");function es(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(es,"validateHostToolHandlers");function ns(e){if(!(e.size<=Qo))for(let[n,t]of e){if(e.size<=Qo)return;t.settled&&e.delete(n)}}i(ns,"pruneHostToolResults");function Bu(e,n){let t=n?.journalEpoch??e;if(t!==void 0)return{operationId:n?.operationId??`op_${ft().replace(/-/g,"")}`,journalEpoch:t}}i(Bu,"createOperationEnvelope");function Wu(e,n,t,r){return ss(e,n,"event.subscribe",{filter:t},o=>{Ir(o,r)})}i(Wu,"subscribeToDaemonEvents");async function zu(e,n,t,r){let o=!1,a,d=!1,u=[],p=e.subscribe(w=>{if(o||w.method!=="event")return;let l=ge(w.params);if(a===void 0){if(!Gu(l.event,t))return;u.length>=is?d=!0:u.push(l);return}l.subscriptionId===a&&Ir(l.event,r)});try{let w=ge(await n("session.observe",{sessionId:t}));if(a=me(w,"subscriptionId"),d)throw Object.assign(new Error("Runtime session observation handshake exceeded its event buffer; full resync is required."),{code:"resync_required"});let l=ge(w.snapshot);for(let s of u.splice(0))s.subscriptionId===a&&Ir(s.event,r);return{snapshot:l,close(){o||(o=!0,u.length=0,p.close(),a!==void 0&&n("event.unsubscribe",{subscriptionId:a}).catch(()=>{}))}}}catch(w){throw o=!0,u.length=0,p.close(),a!==void 0&&n("event.unsubscribe",{subscriptionId:a}).catch(()=>{}),w}}i(zu,"observeDaemonSession");function Gu(e,n){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&e.sessionId===n}i(Gu,"isRuntimeEventForSession");function Ir(e,n){let t=os(e);t!==void 0&&n(t)}i(Ir,"deliverRuntimeEvent");function os(e){let n=hr(e);if(!n.ok){re({source:"runtime.daemon.client",level:"warn",message:`Ignored malformed Runtime event: ${n.error}`});return}return n.event}i(os,"parseRuntimeEventForClient");function Ju(e,n,t,r){return ss(e,n,"workflow.subscribe",{filter:t},o=>{r(o)})}i(Ju,"subscribeToDaemonWorkflowEvents");function ss(e,n,t,r,o){let a=!1,d,u=[],p=e.subscribe(l=>{if(a||l.method!=="event")return;let s=ge(l.params);if(d===void 0){u.length>=is&&u.shift(),u.push(s);return}s.subscriptionId===d&&o(s.event)}),w=n(t,r).then(l=>{if(d=me(ge(l),"subscriptionId"),a){rs(n,t,d),u.length=0;return}for(let s of u.splice(0))s.subscriptionId===d&&o(s.event)}).catch(l=>{throw u.length=0,p.close(),l});return w.catch(()=>{}),{ready:w,close(){a=!0,p.close(),d!==void 0&&rs(n,t,d)}}}i(ss,"subscribeToDaemonNotification");function ts(e,n){return e("run.await",{runId:n}).then(Vu)}i(ts,"requestRuntimeRunResult");function Vu(e){let n=ge(e),t=Object.prototype.hasOwnProperty.call(n,"error")?Qu(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}i(Vu,"deserializeRuntimeRunResult");function Qu(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=ge(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(Qu,"deserializeRuntimeError");function rs(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}i(rs,"unsubscribeRemote");function ze(e){return e??void 0}i(ze,"nullToUndefined");function ge(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}i(ge,"requireRecord");function me(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(me,"requireStringField");function Yu(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(Yu,"optionalStringField");function mn(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 Ge(n,`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new Ge(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 Ge(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 Ge(n,`${n} is not transport-safe: ${o} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((o,a)=>mn(o,`${n}[${a}]`,t));else for(let[o,a]of Object.entries(e))mn(a,`${n}.${o}`,t);t.delete(e)}i(mn,"assertRuntimeTransportSafe");import{randomUUID as Zl}from"node:crypto";import em from"node:os";import zr from"node:path";import{randomUUID as Pr}from"node:crypto";import*as _ from"node:fs";import ae from"node:path";function pn(e,n="default"){let t=Er(n),r=ae.resolve(e),o=ae.join(r,"runtime","daemon",t);return{profile:t,configHome:r,rootDir:o,stateFile:ae.join(o,"daemon.json"),lockFile:ae.join(o,"daemon.lock"),tokenFile:ae.join(o,"daemon.token"),logFile:ae.join(o,"daemon.log"),runsDir:ae.join(o,"runs"),eventsDir:ae.join(o,"events"),ownerPolicyFile:ae.join(o,"owner-policy.json"),ownerPolicyLockFile:ae.join(o,"owner-policy.lock")}}i(pn,"resolveRuntimeDaemonPathsFromConfigHome");function Zu(e,n){let t=i(r=>{let o=ae.resolve(r);return process.platform==="win32"?o.toLowerCase():o},"resolveIdentity");return t(e)===t(n)}i(Zu,"isSameRuntimeDaemonPath");function fn(e,n){let t=ae.resolve(e);return Zu(n,ae.join(t,".kodax"))?t:ae.resolve(n)}i(fn,"resolveRuntimeDaemonEndpointScope");function Se(e){if(!_.existsSync(e.ownerPolicyFile))return{mode:"daemon",revision:0,updatedAt:new Date(0).toISOString()};try{let n=JSON.parse(_.readFileSync(e.ownerPolicyFile,"utf8"));if(Mr(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(Se,"readRuntimeOwnerPolicy");function us(e,n,t){Me(e);let r=$e(e);if(!r)throw new Error("Runtime owner policy update is already in progress.");try{if(_.existsSync(e.lockFile))throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return vt(e,n,t,r.nonce)}finally{Je(e,r)}}i(us,"updateRuntimeOwnerPolicy");function cs(e,n,t){Me(e);let r=$e(e);if(!r)throw wt("Runtime owner rollback is already in progress.");try{let o=Z(e.lockFile);if(o?.kind!=="daemon"||o.runtimeId!==n)throw wt("Runtime daemon owner changed before rollback commit.");if(Se(e).mode!=="daemon")throw wt("Runtime owner policy changed before rollback commit.");return vt(e,"inline",t,r.nonce)}finally{Je(e,r)}}i(cs,"commitRuntimeDaemonRollbackPolicy");function ht(e){Me(e);let n=$e(e);if(!n)throw new Error("Runtime owner transition is already in progress.");try{if(_.existsSync(e.lockFile))throw new Error("Cannot enable Runtime daemon ownership while an owner lock exists.");let t=Se(e);return t.mode==="daemon"?t:vt(e,"daemon",t.revision,n.nonce)}finally{Je(e,n)}}i(ht,"enableRuntimeDaemonOwner");function ls(e,n,t=!1){Me(e);let r=$e(e);if(!r)throw new Error("Runtime owner transition is already in progress.");try{let o=Se(e);if(o.mode!=="inline"){if(!t)throw new Error("Coder inline ownership requires explicit enableRollback: true.");if(_.existsSync(e.lockFile))throw new Error("Cannot enable inline rollback while a Coder owner lock exists.");vt(e,"inline",o.revision,r.nonce)}if(_.existsSync(e.lockFile))throw new Error(`Coder profile "${e.profile}" already has an owner.`);let a=Rs(e,n);if(!a)throw new Error(`Coder profile "${e.profile}" already has an owner.`);return a}finally{Je(e,r)}}i(ls,"acquireRuntimeInlineOwner");function vt(e,n,t,r){let o=Se(e);if(o.revision!==t)throw wt(`Runtime owner policy conflict: expected ${t}, current ${o.revision}.`);let a={mode:n,revision:o.revision+1,updatedAt:new Date().toISOString()},d=`${e.ownerPolicyFile}.${process.pid}.${r}.tmp`;try{let u=_.openSync(d,"wx",384);try{_.writeFileSync(u,`${JSON.stringify(a,null,2)}
|
|
56
|
+
`,"utf8"),_.fsyncSync(u)}finally{_.closeSync(u)}return _.renameSync(d,e.ownerPolicyFile),a}finally{_.rmSync(d,{force:!0})}}i(vt,"writeRuntimeOwnerPolicy");function wt(e){let n=new Error(e);return n.code="conflict",n}i(wt,"runtimeOwnerPolicyConflict");function $e(e,n=!0){let t=Pr(),r={runtimeId:`owner-transition-${t}`,pid:process.pid,createdAt:new Date().toISOString()},o;try{return o=_.openSync(e.ownerPolicyLockFile,"wx",384),_.writeFileSync(o,`${JSON.stringify({...r,nonce:t})}
|
|
57
|
+
`,"utf8"),_.fsyncSync(o),{nonce:t,owner:r}}catch(a){if(Dr(a)&&a.code==="EEXIST")return n&&ec(e)?$e(e,!1):void 0;throw a}finally{o!==void 0&&_.closeSync(o)}}i($e,"tryAcquireRuntimeOwnerCoordination");function ec(e){let n=as(e);if(!n||nc(n.owner.pid))return!1;try{let t=as(e);return!t||t.nonce!==n.nonce?!1:(_.unlinkSync(e.ownerPolicyLockFile),!0)}catch{return!1}}i(ec,"removeAbandonedRuntimeOwnerCoordination");function as(e){try{let n=JSON.parse(_.readFileSync(e.ownerPolicyLockFile,"utf8"));return!Mr(n)||typeof n.nonce!="string"||!vs(n)||!n.runtimeId.startsWith("owner-transition-")?void 0:{nonce:n.nonce,owner:n}}catch{return}}i(as,"readRuntimeOwnerCoordinationHandle");function nc(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Dr(n)&&n.code==="EPERM"}}i(nc,"isRuntimeOwnerProcessAlive");function tc(e){return Z(e.ownerPolicyLockFile)}i(tc,"readRuntimeOwnerCoordinator");function Je(e,n){try{let t=JSON.parse(_.readFileSync(e.ownerPolicyLockFile,"utf8"));Mr(t)&&t.nonce===n.nonce&&_.unlinkSync(e.ownerPolicyLockFile)}catch{}}i(Je,"releaseRuntimeOwnerCoordination");function St(e){if(Se(e).mode!=="daemon")throw new Error(`Runtime daemon auto-start is disabled for profile "${e.profile}" by inline rollback policy.`)}i(St,"assertRuntimeDaemonOwnerAllowed");function Er(e){let n=e.trim()||"default";if(!/^[A-Za-z0-9_.-]+$/.test(n))throw new Error(`Invalid runtime daemon profile: ${e}`);return n}i(Er,"normalizeRuntimeDaemonProfile");function Me(e){_.mkdirSync(e.rootDir,{recursive:!0}),_.mkdirSync(e.runsDir,{recursive:!0}),_.mkdirSync(e.eventsDir,{recursive:!0})}i(Me,"ensureRuntimeDaemonDirectories");function ms(){return`dt_${Pr().replace(/-/g,"")}`}i(ms,"createRuntimeDaemonToken");function ps(e,n){Me(e),_.writeFileSync(e.tokenFile,`${n}
|
|
58
|
+
`,{encoding:"utf8",mode:384}),process.platform!=="win32"&&_.chmodSync(e.tokenFile,384)}i(ps,"writeRuntimeDaemonToken");function $n(e){try{let n=_.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}i($n,"readRuntimeDaemonToken");function gn(e,n){Me(e);let t=`${e.stateFile}.${process.pid}.${Pr()}.tmp`;try{let r=_.openSync(t,"wx",384);try{_.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
59
|
+
`,"utf8"),_.fsyncSync(r)}finally{_.closeSync(r)}_.renameSync(t,e.stateFile)}finally{_.rmSync(t,{force:!0})}}i(gn,"writeRuntimeDaemonState");function Ae(e,n,t,r){Me(e);let o={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};_.appendFileSync(e.logFile,`${JSON.stringify(o)}
|
|
60
|
+
`,"utf8")}i(Ae,"appendRuntimeDaemonLog");function fs(e,n=200){if(!_.existsSync(e.logFile))return[];let t=[],r=_.readFileSync(e.logFile,"utf8").split(/\r?\n/).filter(o=>o.trim().length>0);for(let o of r.slice(-n))try{let a=JSON.parse(o);sc(a)&&t.push(a)}catch(a){t.push({time:new Date().toISOString(),level:"warn",message:`Skipped malformed daemon log line: ${a instanceof Error?a.message:String(a)}`})}return t}i(fs,"readRuntimeDaemonLog");function gs(e){if(_.existsSync(e.stateFile))try{let n=JSON.parse(_.readFileSync(e.stateFile,"utf8"));return oc(n)?n:void 0}catch{return}}i(gs,"readRuntimeDaemonState");function Rs(e,n){Me(e);let t;try{return t=_.openSync(e.lockFile,"wx",384),_.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
61
|
+
`,"utf8"),_.fsyncSync(t),{file:e.lockFile,owner:n}}catch(r){if(Dr(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&_.closeSync(t)}}i(Rs,"tryAcquireRuntimeDaemonLock");function kt(e){let n={ownerPolicyLockFile:ae.join(ae.dirname(e.file),"owner-policy.lock")},t=$e(n);if(!t)return!1;try{return ws(e)}finally{Je(n,t)}}i(kt,"releaseRuntimeDaemonLock");function ys(e,n){let t=$e(e);if(!t)return!1;try{let r=Z(n.file);return xr(r,n.owner)?(ic(e),ws(n)):!1}finally{Je(e,t)}}i(ys,"releaseRuntimeDaemonOwnership");function ws(e){let n=Z(e.file);return xr(n,e.owner)?(_.unlinkSync(e.file),!0):!1}i(ws,"unlinkRuntimeDaemonLockIfOwned");function Z(e){if(_.existsSync(e))try{let n=JSON.parse(_.readFileSync(e,"utf8"));return vs(n)?n:void 0}catch{return}}i(Z,"readRuntimeDaemonLockOwner");function hs(e,n,t){Me(e);let r=Hn(t),o=Z(e.lockFile);if(r==="healthy")return t.state&&o!==void 0&&br(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&&cc(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 a=r==="stale"?"stale":"missing",d=$e(e);if(!d){let u=Z(e.lockFile)??tc(e);return u?{kind:"wait",lockOwner:u,...t.state!==void 0?{state:t.state}:{},health:a}:{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}try{return Se(e).mode!=="daemon"?{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}:rc(e,n,t,a)}finally{Je(e,d)}}i(hs,"claimRuntimeDaemonOwnership");function rc(e,n,t,r){let o=Z(e.lockFile);if(r==="stale"){if(o!==void 0&&(t.observedLockOwner!==void 0&&!xr(o,t.observedLockOwner)||t.state!==void 0&&!br(o,t.state)))return yt(o,t,r);ds(e)}else if(o!==void 0){if(t.observedLockOwner!==void 0&&!br(o,t.observedLockOwner))return yt(o,t,r);if(t.lockOwnerPidAlive===!1)ds(e);else return yt(o,t,r)}if(r==="missing"){let u=Z(e.lockFile);if(u!==void 0)return{kind:"wait",lockOwner:u,...t.state!==void 0?{state:t.state}:{},health:r}}let a=Rs(e,n);if(a)return{kind:"claim",lock:a,health:r};let d=Z(e.lockFile);return d?yt(d,t,r):{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}i(rc,"claimAvailableRuntimeDaemonOwnership");function yt(e,n,t){return{kind:"wait",lockOwner:e,...n.state!==void 0?{state:n.state}:{},health:t}}i(yt,"waitForRuntimeOwner");function br(e,n){return e.runtimeId===n.runtimeId&&e.pid===n.pid}i(br,"sameRuntimeOwner");function xr(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(xr,"sameRuntimeLockOwner");function ds(e){_.rmSync(e.lockFile,{force:!0}),_.rmSync(e.stateFile,{force:!0}),_.rmSync(e.tokenFile,{force:!0})}i(ds,"removeRuntimeDaemonOwnershipFiles");function ic(e){_.rmSync(e.stateFile,{force:!0}),_.rmSync(e.tokenFile,{force:!0})}i(ic,"removeRuntimeDaemonStateFiles");function Hn(e){return e.state?e.endpointReachable&&!e.identityMatches?"mismatch":e.pidAlive&&e.endpointReachable&&e.identityMatches?"healthy":!e.pidAlive&&!e.endpointReachable?"stale":"unhealthy":"missing"}i(Hn,"classifyRuntimeDaemonHealth");function oc(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"&&uc(n.status)&&(n.configHome===void 0||typeof n.configHome=="string")&&(n.lastError===void 0||typeof n.lastError=="string")}i(oc,"isRuntimeDaemonState");function sc(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&ac(n.level)&&typeof n.message=="string"&&(n.data===void 0||dc(n.data))}i(sc,"isRuntimeDaemonLogEntry");function ac(e){return e==="info"||e==="warn"||e==="error"}i(ac,"isRuntimeDaemonLogLevel");function dc(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(dc,"isPlainRecord");function vs(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(vs,"isRuntimeDaemonLockOwner");function uc(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}i(uc,"isRuntimeDaemonStatus");function cc(e){return e==="starting"||e==="draining"||e==="stopping"}i(cc,"isRuntimeDaemonTransitionStatus");function Dr(e){return e instanceof Error&&"code"in e}i(Dr,"isNodeFileError");function Mr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Mr,"isRecord");import{createHash as lc,randomUUID as Rn}from"node:crypto";import*as hn from"node:fs/promises";import*as qn from"node:net";import mc from"node:os";import Ss from"node:path";import{StringDecoder as Ar}from"node:string_decoder";var pc=8*1024*1024,wn=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 Cr(e){return e instanceof wn}i(Cr,"isRuntimeDaemonTransportError");function vn(e="default",n){let t=Er(e),r=n===void 0?t:`${t}-${fc(Ss.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:Ss.join(mc.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}i(vn,"defaultRuntimeDaemonEndpoint");function fc(e){return lc("sha256").update(e).digest("hex").slice(0,12)}i(fc,"shortPathHash");function Is(e,n={}){let t="",r=0,o=new Ar("utf8"),a=n.maxFrameBytes??pc;if(!Number.isSafeInteger(a)||a<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let d=i(p=>{Rc(p,a),p.trim()&&e(Vo(p))},"consumeLine"),u=i(p=>{t+=p,r+=Buffer.byteLength(p,"utf8")},"append");return{push(p){for(typeof p=="string"?(u(o.end()),o=new Ar("utf8"),u(p)):u(o.write(p));;){let w=t.indexOf(`
|
|
62
|
+
`);if(w<0)break;let l=t.slice(0,w).replace(/\r$/,""),s=t.slice(0,w+1);t=t.slice(w+1),r-=Buffer.byteLength(s,"utf8"),d(l)}Ps(r,a)},flush(){u(o.end()),o=new Ar("utf8");let p=t.trim();t="",r=0,p.length>0&&d(p)}}}i(Is,"createRuntimeDaemonFrameParser");async function Oe(e,n={}){let t=qn.createConnection(e.path);t.setEncoding("utf8");let r=new Promise(f=>{t.once("close",()=>f())});await yc(t,n.connectTimeoutMs);let o=!1,a,d=`transport_${Rn().replace(/-/g,"")}`,u=Rn().replace(/-/g,"")+Rn().replace(/-/g,""),p=`connection_${Rn().replace(/-/g,"")}`,w=new Set,l=new Set,s={state:"connected",connectionId:p,reconnectable:!1},g=i((f,k)=>{if(s.state!=="disconnected"){s={state:"disconnected",connectionId:p,reason:f,reconnectable:k};for(let b of l)try{b(s)}catch{re({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport lifecycle listener failed."})}}},"disconnect"),c=new Map,v=Is(f=>{if(cn(f)){let k=c.get(f.id);if(!k)return;c.delete(f.id),k.resolve(f.result);return}if(ln(f)){if(!f.id)return;let k=c.get(f.id);if(!k)return;c.delete(f.id),k.reject(new wn(f.error.message,f.error.code,f.error.data));return}if(Fn(f))for(let k of w)try{k(f)}catch{re({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport notification listener failed."})}},{maxFrameBytes:n.maxFrameBytes});return t.on("data",f=>{try{v.push(f)}catch(k){o=!0;let b=yn(k);g(b.message,!0),It(c,b),t.destroy(b)}}),t.on("close",()=>{o=!0,g("Runtime daemon transport closed.",!0),It(c,new Error("Runtime daemon transport closed."))}),t.on("error",f=>{o=!0,g(f.message,!0),It(c,f)}),{request(f,k,b){if(o)return Promise.reject(new Error("Runtime daemon transport is closed."));let I=`req_${Rn().replace(/-/g,"").slice(0,12)}`,x=f==="initialize"||f==="runtime.initialize"?gc(k,d,u):k,R=b??(a!==void 0&&We(f)?{operationId:`op_${Rn().replace(/-/g,"")}`,journalEpoch:a}:void 0),h=mt(I,f,x,R),m;try{m=JSON.stringify(h)}catch(P){return Promise.reject(new wn(`Runtime daemon request params are not JSON-serializable: ${yn(P).message}`,"invalid_params"))}let S=new Promise((P,C)=>{c.set(I,{resolve:P,reject:C})});return t.write(`${m}
|
|
63
|
+
`),S.then(P=>{if(f==="initialize"||f==="runtime.initialize"){let C=bt(P);typeof C?.journalEpoch=="string"&&(a=C.journalEpoch)}return P})},subscribe(f){return w.add(f),{close(){w.delete(f)}}},subscribeLifecycle(f){return l.add(f),f(s),{close(){l.delete(f)}}},async close(){let f;if(!o){o=!0,g("Runtime daemon transport closed by client.",!1);try{v.flush()}catch(k){f=yn(k)}t.end(),t.destroy(),It(c,new Error("Runtime daemon transport closed."))}if(await r,l.clear(),f!==void 0)throw f}}}i(Oe,"createRuntimeDaemonSocketClientTransport");function gc(e,n,t){let r=bt(e)??{},o=bt(r.capabilities)??{},a=bt(r.clientInfo)??{name:"kodax-transport"};return{...r,capabilities:{...o,operationDeduplication:!0},clientInfo:{...a,instanceId:typeof a.instanceId=="string"?a.instanceId:n,instanceSecret:typeof a.instanceSecret=="string"?a.instanceSecret:t}}}i(gc,"withDurableOperationCapability");function bt(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}i(bt,"asRecord");async function bs(e){await hc(e.endpoint);let n=qn.createServer(),t=new Set,r=new Set,o=!1;if(n.on("connection",a=>{if(o){a.destroy();return}t.add(a);let d=!1,u=i(s=>{if(a.destroyed)return;let g;try{g=JSON.stringify(s)}catch(c){let v=Fe({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${yn(c).message}`},s.kind==="response"||s.kind==="error"?s.id:void 0);g=JSON.stringify(v)}a.write(`${g}
|
|
64
|
+
`)},"send"),p=e.createDispatcher(s=>u(s));r.add(p);let w=Is(s=>{if(Sr(s)){p.handle(s).then(u,g=>{u(Fe({code:"internal_error",message:yn(g).message}))});return}if(ln(s)){u(s);return}u(Fe({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),l=i(s=>{if(d)return;d=!0;let g=yn(s);u(Fe({code:"invalid_frame",message:g.message,...Cr(g)&&g.data!==void 0?{data:g.data}:{}})),a.end()},"rejectInvalidFrame");a.on("data",s=>{if(!d)try{w.push(s)}catch(g){l(g)}}),a.on("end",()=>{try{w.flush()}catch(s){l(s)}}),a.on("close",()=>{t.delete(a),r.delete(p),p.close()}),a.on("error",()=>{a.destroy()})}),await wc(n,e.endpoint.path),e.endpoint.kind==="unix")try{await hn.chmod(e.endpoint.path,384)}catch(a){throw await ks(n),a}return{endpoint:e.endpoint,connectionCount(){return t.size},unref(){n.unref()},async close(){if(!o){o=!0;for(let a of r)a.close();r.clear();for(let a of t)a.destroy();t.clear(),await ks(n)}}}}i(bs,"createRuntimeDaemonSocketServer");function Rc(e,n){Ps(Buffer.byteLength(e,"utf8"),n)}i(Rc,"assertFrameSize");function Ps(e,n){if(!(e<=n))throw new wn(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}i(Ps,"assertFrameByteSize");function yc(e,n=2e3){return new Promise((t,r)=>{let o=setTimeout(()=>{a(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);o.unref?.();let a=i(()=>{clearTimeout(o),e.off("connect",d),e.off("error",u)},"cleanup"),d=i(()=>{a(),t()},"onConnect"),u=i(p=>{a(),r(p)},"onError");e.once("connect",d),e.once("error",u)})}i(yc,"waitForConnect");function wc(e,n){return new Promise((t,r)=>{let o=i(()=>{e.off("listening",a),e.off("error",d)},"cleanup"),a=i(()=>{o(),t()},"onListening"),d=i(u=>{o(),r(u)},"onError");e.once("listening",a),e.once("error",d),e.listen(n)})}i(wc,"waitForListen");async function hc(e){if(e.kind!=="unix")return;let n;try{n=await hn.stat(e.path)}catch(t){if(Tr(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 vc(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await hn.unlink(e.path)}catch(t){if(!Tr(t)||t.code!=="ENOENT")throw t}}i(hc,"prepareUnixSocketEndpoint");function vc(e){return new Promise((n,t)=>{let r=qn.createConnection(e),o=setTimeout(()=>{a(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);o.unref?.();let a=i(()=>{clearTimeout(o),r.off("connect",d),r.off("error",u)},"cleanup"),d=i(()=>{a(),r.end(),r.destroy(),n(!0)},"onConnect"),u=i(p=>{if(a(),r.destroy(),Tr(p)&&(p.code==="ECONNREFUSED"||p.code==="ENOENT")){n(!1);return}t(p)},"onError");r.once("connect",d),r.once("error",u)})}i(vc,"unixSocketAcceptsConnections");function ks(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}i(ks,"closeNetServer");function It(e,n){for(let t of e.values())t.reject(n);e.clear()}i(It,"rejectPending");function yn(e){return e instanceof Error?e:new Error(String(e))}i(yn,"normalizeTransportError");function Tr(e){return e instanceof Error&&"code"in e}i(Tr,"isNodeFileError");async function Pt(e,n={}){let t=gs(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=Z(e.lockFile),o=(n.isPidAlive??xs)(t.pid),a=Ve(t),d=$n(e),u;try{u=await(n.createTransport?n.createTransport(a):Oe(a,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let p=u.request("initialize",{profile:t.profile,connectionPurpose:"probe",...d!==void 0?{token:d}:{}});p.catch(()=>{});let w=await Sc(p,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:o,endpointReachable:!0,identityMatches:kc(w,t)&&Ic(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(p){return Cr(p)&&p.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 u?.close?.()}}i(Pt,"observeRuntimeDaemonHealth");async function _r(e,n,t={}){let r=await Pt(e,t),o=r.state?void 0:Z(e.lockFile),a=o?{...r,observedLockOwner:o,lockOwnerPidAlive:(t.isPidAlive??xs)(o.pid)}:r;return hs(e,n,a)}i(_r,"resolveRuntimeDaemonOwnership");function Ve(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}i(Ve,"runtimeDaemonEndpointFromState");function xs(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return bc(n)&&n.code==="EPERM"}}i(xs,"isRuntimeDaemonPidAlive");async function Sc(e,n,t){let r;try{return await Promise.race([e,new Promise((o,a)=>{r=setTimeout(()=>a(new Error(t)),n),r.unref?.()})])}finally{r!==void 0&&clearTimeout(r)}}i(Sc,"withTimeout");function kc(e,n){let t=Es(e),r=Es(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}i(kc,"daemonIdentityMatchesState");function Ic(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}i(Ic,"runtimeDaemonLockMatchesState");function Es(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}i(Es,"asRecord");function bc(e){return e instanceof Error&&"code"in e}i(bc,"isNodeProcessError");import Sa from"node:path";import{randomUUID as Bn}from"node:crypto";var y={type:"string"},z={type:"boolean"},X={type:"integer"},T={type:"object",additionalProperties:!0},Ds={},ke={type:"array",items:T},Kn={oneOf:[{type:"null"},T]},G=E({ok:z},["ok"]),ne=E({}),xt={initialize:{params:E({profile:y,token:y,autoStart:z,endpoint:y,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:T,capabilities:T},[],!0),result:E({identity:T,capabilities:T},["identity","capabilities"],!0)},"runtime.initialize":{params:E({profile:y,token:y,autoStart:z,endpoint:y,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:T,capabilities:T},[],!0),result:E({identity:T,capabilities:T},["identity","capabilities"],!0)},ping:{params:ne,result:E({ok:z,runtimeId:y},["ok","runtimeId"])},"runtime.identity":{params:ne,result:T},"runtime.status":{params:ne,result:T},"runtime.shutdown":{params:ne,result:G},"runtime.capabilities":{params:ne,result:T},"daemon.status":{params:ne,result:T},"daemon.stop":{params:ne,result:G},"daemon.logs":{params:ne,result:T},"daemon.preflight":{params:ne,result:T},"daemon.management.get":{params:ne,result:E({runtimeId:y,revision:X,ownerPolicy:Cs(),owner:Lc(),preflight:T},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:E({expectedRuntimeId:y,expectedRevision:X,expectedOwnerPolicyRevision:X},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:E({accepted:{type:"boolean",enum:[!0]},runtimeId:y,revision:X,ownerPolicy:Cs("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:E({operationId:y,journalEpoch:y},["operationId","journalEpoch"]),result:T},"session.create":{params:Mc(),result:Ye()},"session.load":{params:E({sessionId:y},["sessionId"]),result:Ye()},"session.list":{params:Ac(),result:Re(Ye())},"session.transcript":{params:E({sessionId:y},["sessionId"]),result:Kn},"session.observe":{params:E({sessionId:y},["sessionId"]),result:T},"session.fork":{params:Nc(),result:le(Ye())},"session.notice.append":{params:E({sessionId:y,content:y,source:y},["sessionId","content"]),result:Kn},"session.rewind":{params:E({sessionId:y,selector:y},["sessionId"]),result:le(Ye())},"session.active_entry.set":{params:_s(),result:le(Ye())},"session.activeEntry.set":{params:_s(),result:le(Ye())},"session.compact":{params:jc(),result:T},"session.archive":{params:E({sessionId:y},["sessionId"]),result:G},"session.unarchive":{params:E({sessionId:y},["sessionId"]),result:G},"session.delete":{params:E({sessionId:y},["sessionId"]),result:G},"session.settings.get":{params:E({sessionId:y},["sessionId"]),result:T},"session.settings.getVersioned":{params:E({sessionId:y},["sessionId"]),result:T},"session.autoMode.getStats":{params:E({sessionId:y},["sessionId"]),result:le(T)},"session.settings.update":{params:E({sessionId:y,patch:T},["sessionId","patch"]),result:T},"session.settings.updateVersioned":{params:E({sessionId:y,patch:T,expectedRevision:X},["sessionId","patch","expectedRevision"]),result:T},"run.start":{params:Fc(),result:Dc()},"run.input.submit":{params:E({sessionId:y,afterRunId:y,delivery:{type:"string",enum:["after_turn","interrupt"]},input:Ds,credential:T,hostTools:T},["sessionId","afterRunId","delivery","input"]),result:T},"run.get":{params:Qe(),result:Os()},"run.list":{params:$c(),result:Re(Os())},"run.await":{params:Qe(),result:Hc()},"run.abort":{params:Qe(),result:G},"run.model.set":{params:E({runId:y,model:y},["runId"],!0),result:G},"run.provider.set":{params:E({runId:y,provider:y},["runId","provider"]),result:G},"run.reasoning.set":{params:E({runId:y,reasoning:y},["runId"],!0),result:G},"run.setModel":{params:E({runId:y,model:y},["runId"],!0),result:G},"run.setProvider":{params:E({runId:y,provider:y},["runId","provider"]),result:G},"run.setReasoning":{params:E({runId:y,reasoning:y},["runId"],!0),result:G},"event.subscribe":{params:Ms(Xs()),result:Ts()},"event.unsubscribe":{params:E({subscriptionId:y},["subscriptionId"]),result:G},"event.replay":{params:qc(),result:Re(Kc())},"permission.list":{params:Or(),result:Re(Ls())},"permission.listPending":{params:Or(),result:Re(Ls())},"permission.request":{params:Us(),result:Ns()},"permission.respond":{params:E({requestId:y,runId:y,decision:Ns()},["requestId","decision"]),result:z},"permission.grants.list":{params:ne,result:T},"permission.grants.revoke":{params:E({grantId:y,expectedRevision:X},["grantId","expectedRevision"]),result:z},"user_input.listPending":{params:Or(),result:Re(T)},"user_input.respond":{params:E({requestId:y,answer:Ds,runId:y,expectedRevision:X},["requestId","answer"],!0),result:T},"user_input.dismiss":{params:E({requestId:y,runId:y,expectedRevision:X},["requestId"],!0),result:T},"credential.register":{params:E({leaseId:y,providers:{type:"array",items:y},expiresAt:y},["leaseId","providers"],!0),result:T},"credential.get":{params:E({leaseId:y},["leaseId"]),result:{oneOf:[T,{type:"null"}]}},"credential.revoke":{params:E({leaseId:y},["leaseId"]),result:z},"credential.supply":{params:E({requestId:y,credential:y,error:y},["requestId"],!0),result:G},"host_tool.register":{params:E({leaseId:y,tools:{type:"array",items:T}},["leaseId","tools"]),result:T},"host_tool.get":{params:E({leaseId:y},["leaseId"]),result:{oneOf:[T,{type:"null"}]}},"host_tool.invocation.get":{params:E({invocationId:y},["invocationId"]),result:{oneOf:[T,{type:"null"}]}},"host_tool.revoke":{params:E({leaseId:y},["leaseId"]),result:z},"host_tool.complete":{params:E({invocationId:y,result:T,error:y},["invocationId"],!0),result:G},"workflow.list":{params:js(),result:ke},"workflow.get":{params:Qe(),result:{oneOf:[T,{type:"null"}]}},"workflow.subscribe":{params:Ms(js()),result:Ts()},"workflow.unsubscribe":{params:E({subscriptionId:y},["subscriptionId"]),result:G},"workflow.pause":{params:Qe(),result:z},"workflow.resume":{params:Qe(),result:z},"workflow.stop":{params:Qe(),result:z},"learning.list":{params:Tc(),result:Oc()},"learning.get":{params:E({nameOrSlug:y},["nameOrSlug"]),result:Ks()},"learning.snapshot":{params:ne,result:_c()},"learning.events":{params:E({afterRevision:X},[],!0),result:Re(Cc())},"learning.acknowledge":{params:E({nameOrSlug:y},["nameOrSlug"]),result:G},"learning.snooze":{params:E({nameOrSlug:y,until:y},["nameOrSlug","until"]),result:G},"learning.reject":{params:E({nameOrSlug:y},["nameOrSlug"]),result:G},"learning.disable":{params:E({nameOrSlug:y},["nameOrSlug"]),result:G},"learning.rollback":{params:E({nameOrSlug:y},["nameOrSlug"]),result:G},"learning.promote":{params:E({nameOrSlug:y,scope:y},["nameOrSlug","scope"]),result:G},"learning.review":{params:E({nameOrSlug:y},["nameOrSlug"]),result:G},"learning.trust":{params:E({nameOrSlug:y},["nameOrSlug"]),result:G},"config.read":{params:ne,result:T},"config.patch":{params:E({patch:T},["patch"]),result:T},"config.reload":{params:ne,result:E({ok:z,config:T},["ok","config"])},"model.list":{params:E({provider:y},[],!0),result:{oneOf:[T,ke]}},"provider.list":{params:ne,result:ke},"provider.custom.list":{params:ne,result:ke},"provider.custom.upsert":{params:E({config:T},["config"]),result:T},"provider.custom.remove":{params:E({name:y},["name"]),result:z},"mcp.server.list":{params:ne,result:T},"mcp.server.get":{params:E({name:y},["name"]),result:{oneOf:[T,{type:"null"}]}},"mcp.server.validate":{params:E({name:y,config:T},["name","config"]),result:{oneOf:[E({ok:z,config:T},["ok","config"],!0),E({ok:z,error:y},["ok","error"],!0)]}},"mcp.server.upsert":{params:E({name:y,config:T},["name","config"]),result:T},"mcp.server.delete":{params:E({name:y},["name"]),result:z},"mcp.server.remove":{params:E({name:y},["name"]),result:z},"mcp.server.reload":{params:ne,result:E({ok:z,servers:ke},["ok","servers"])},"mcp.tool.list":{params:E({server:y,forceRefresh:z},[],!0),result:ke},"extension.list":{params:ne,result:E({active:z,extensions:ke,diagnostics:T},["active","extensions"],!0)},"extension.reload":{params:ne,result:E({ok:z,active:z},["ok","active"],!0)},"command.list":{params:E({projectRoot:y},[],!0),result:ke},"command.resolve":{params:E({name:y,projectRoot:y},["name"],!0),result:Kn},"skill.list":{params:E({projectRoot:y,userInvocableOnly:z},[],!0),result:ke},"skill.describe":{params:E({name:y,projectRoot:y},["name"],!0),result:Kn},"skill.read":{params:E({name:y,projectRoot:y},["name"],!0),result:Kn},"artifact.create":{params:E({kind:{enum:["image","file","video"]},path:y,mediaType:y,mimeType:y,name:y,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:y},["kind","path"]),result:Fs()},"artifact.get":{params:E({artifactId:y},["artifactId"]),result:le(Fs())},"artifact.delete":{params:E({artifactId:y},["artifactId"]),result:z},"agentRegistrations.list":{params:ne,result:ke},"agentRegistrations.upsert":{params:E({registration:T,expectedConfigurationRevision:le(y),expectedManagementOwner:le(y)},["registration"]),result:T},"agentRegistrations.setEnabled":{params:E({agentId:y,enabled:z,expectedConfigurationRevision:le(y),expectedManagementOwner:le(y),claimOwner:y},["agentId","enabled"]),result:le(T)},"agentRegistrations.remove":{params:E({agentId:y,expectedConfigurationRevision:le(y),expectedManagementOwner:le(y)},["agentId"]),result:z},"agents.listDispatchable":{params:T,result:ke},"agents.describe":{params:E({agentId:y,query:T},["agentId","query"]),result:le(T)},"agents.preflight":{params:T,result:T},"agents.tree":{params:E({sessionId:y},["sessionId"]),result:T},"agents.detail":{params:E({sessionId:y,actorPath:y},["sessionId","actorPath"]),result:T},"agents.spawn":{params:E({sessionId:y,input:T},["sessionId","input"]),result:T},"agents.send":{params:E({sessionId:y,actorPath:y,content:y,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:G},"agents.followup":{params:E({sessionId:y,actorPath:y,objective:y,expectedRevision:X},["sessionId","actorPath","objective"],!0),result:T},"agents.interrupt":{params:E({sessionId:y,actorPath:y,reason:y},["sessionId","actorPath"],!0),result:G},"agents.output":{params:E({sessionId:y,actorPath:y,turnId:y},["sessionId","actorPath"],!0),result:T},"agents.events":{params:E({sessionId:y,afterSequence:X},["sessionId"],!0),result:ke},"agents.wait":{params:E({sessionId:y,afterSequence:X,timeoutMs:X},["sessionId"],!0),result:le(T)},"context.budget.get":{params:As(),result:{oneOf:[T,{type:"null"}]}},"tool.exposure.preview":{params:As(),result:{oneOf:[T,{type:"null"}]}}},$s={event:E({subscriptionId:y,event:T},["subscriptionId","event"]),"credential.request":T,"host_tool.invoke":T,"runtime.warning":T},Hs={protocol:je,version:1,methods:xt,notifications:$s},Pc=JSON.stringify(Hs,null,2);function Ec(){return un}i(Ec,"listRuntimeDaemonSchemaMethods");function Sn(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(d=>Sn(d,n,t).length===0).length===1?[]:[`${t} must match exactly one allowed schema.`];if(e.enum!==void 0&&!e.enum.some(a=>Object.is(a,n)))return[`${t} must be one of: ${e.enum.map(String).join(", ")}.`];let r=e.type===void 0?[]:Array.isArray(e.type)?e.type:[e.type];if(r.length>0&&!r.some(a=>xc(a,n)))return[`${t} must be ${r.join(" or ")}.`];if(typeof n=="string"&&e.maxLength!==void 0&&n.length>e.maxLength)return[`${t} must have at most ${e.maxLength} characters.`];if(Array.isArray(n)){let a=e.items;return a===void 0?[]:n.flatMap((d,u)=>Sn(a,d,`${t}[${u}]`))}if(!qs(n))return[];let o=[];for(let a of e.required??[])(!Object.prototype.hasOwnProperty.call(n,a)||n[a]===void 0)&&o.push(`${t}.${a} is required.`);for(let[a,d]of Object.entries(n)){if(d===void 0)continue;let u=e.properties?.[a];if(u!==void 0){o.push(...Sn(u,d,`${t}.${a}`));continue}e.additionalProperties===!1?o.push(`${t}.${a} is not allowed.`):typeof e.additionalProperties=="object"&&o.push(...Sn(e.additionalProperties,d,`${t}.${a}`))}return o}i(Sn,"validateRuntimeDaemonJsonSchema");function xc(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 qs(n);case"string":return typeof n=="string"}}i(xc,"matchesJsonSchemaType");function qs(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(qs,"isJsonObject");function E(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}i(E,"objectSchema");function Qe(){return E({runId:y},["runId"])}i(Qe,"runIdParamsSchema");function Ms(e){return E({filter:e})}i(Ms,"filterParamsSchema");function As(){return E({sessionId:y,runId:y},[],!0)}i(As,"diagnosticParamsSchema");function Ts(){return E({subscriptionId:y},["subscriptionId"])}i(Ts,"subscriptionSchema");function Dc(){return E({runId:y,sessionId:y,turnId:y},["runId","sessionId"],!0)}i(Dc,"runStartedSchema");function Re(e){return{type:"array",items:e}}i(Re,"arraySchema");function le(e){return{oneOf:[{type:"null"},e]}}i(le,"nullableSchema");function Mc(){return E({sessionId:y,title:y,projectPath:y,gitRoot:y,surface:y,profileId:y,tag:y})}i(Mc,"createSessionParamsSchema");function Ye(){return E({id:y,cursor:y,title:y,gitRoot:y,workspaceRoot:y,surface:y,profileId:y,createdAt:y,msgCount:X,tag:y,projectKey:y,archived:z},["id","title"],!0)}i(Ye,"sessionSchema");function Ac(){return E({projectRoot:y,scope:{enum:["user","managed-task-worker","all"]},includeArchived:z,limit:X,before:y,tag:y,surface:y,cursor:y})}i(Ac,"sessionFilterSchema");function Tc(){return E({search:y,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:X,cursor:y})}i(Tc,"learningQuerySchema");function Ks(){return E({schemaVersion:{type:"integer",enum:[1]},capabilityId:y,displayName:y,slug:y,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:Lr(),revision:X,createdAt:y,updatedAt:y,source:E({kind:{enum:["learning_controller","f224_proposal"]},proposalId:y},["kind"]),lastAction:{enum:["review","trust","reject","disable","rollback","archive","restore","promote"]},artifactPath:y,previousGoodRevision:X,previousLifecycle:Lr(),diagnostics:Re(y)},["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"])}i(Ks,"learnedCapabilitySchema");function Lr(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}i(Lr,"learningLifecycleSchema");function Cc(){return E({schemaVersion:{type:"integer",enum:[1]},sequence:X,eventId:y,capabilityId:y,capabilityRevision:X,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Lr(),displayName:y,slug:y,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:y},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}i(Cc,"learningEventSchema");function _c(){return E({ready:X,newlyActive:X,attention:X,active:X,revision:X},["ready","newlyActive","attention","active","revision"])}i(_c,"learningSnapshotSchema");function Oc(){return E({items:Re(Ks()),nextCursor:y,revision:X},["items","revision"])}i(Oc,"learningPageSchema");function Cs(e){return E({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:X,updatedAt:y},["mode","revision","updatedAt"])}i(Cs,"ownerPolicySchema");function Lc(){return E({runtimeId:y,pid:X,createdAt:y,kind:{type:"string",enum:["daemon","inline"]}},["runtimeId","pid","createdAt"])}i(Lc,"ownerIdentitySchema");function Nc(){return E({sessionId:y,selector:y,newSessionId:y,title:y},["sessionId"])}i(Nc,"forkSessionParamsSchema");function _s(){return E({sessionId:y,entryId:y},["sessionId","entryId"])}i(_s,"activeEntryParamsSchema");function jc(){return E({sessionId:y,provider:y,model:y,customInstructions:y,contextWindow:X},["sessionId"])}i(jc,"compactSessionParamsSchema");function Fc(){return E({sessionId:y,prompt:y,input:{oneOf:[T,Re(T)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:T},["sessionId"],!0)}i(Fc,"startRunParamsSchema");function $c(){return E({sessionId:y,phase:{oneOf:[Et(),Re(Et())]}})}i($c,"runFilterSchema");function Os(){return E({runId:y,sessionId:y,turnId:y,phase:Et(),startedAt:y,endedAt:y,provider:y,model:y,reasoning:y,error:y},["runId","sessionId","phase","startedAt","provider"],!0)}i(Os,"runStatusSchema");function Hc(){return E({runId:y,sessionId:y,phase:Et(),result:T,error:{oneOf:[y,T]}},["runId","sessionId","phase"],!0)}i(Hc,"runResultSchema");function Et(){return{enum:["queued","running","waiting_permission","waiting_user_input","completed","failed","cancelled","interrupted"]}}i(Et,"runPhaseSchema");function Xs(){return E({sessionId:y,runId:y,type:{oneOf:[y,Re(y)]}})}i(Xs,"eventFilterSchema");function qc(){return E({...Xs().properties??{},sinceSeq:X,limit:X})}i(qc,"eventReplayFilterSchema");function Kc(){return E({id:y,seq:X,time:y,sessionId:y,runId:y,turnId:y,type:y,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}i(Kc,"runtimeEventSchema");function Or(){return E({sessionId:y,runId:y,toolName:y})}i(Or,"permissionFilterSchema");function Us(){return E({sessionId:y,runId:y,turnId:y,toolCallId:y,toolName:y,reason:y,risk:{enum:["low","medium","high"]},inputPreview:y,toolInput:T,executionCwd:{type:"string",maxLength:4096},expiresAt:y,timeoutMs:X},["sessionId","runId","toolName"])}i(Us,"permissionRequestInputSchema");function Ls(){let{toolInput:e,...n}=Us().properties??{};return E({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:Re(E({id:y,kind:{enum:["session","persistent"]},label:{type:"string",maxLength:512}},["id","kind","label"])),id:y,createdAt:y},["id","sessionId","runId","toolName","createdAt"],!0)}i(Ls,"permissionRequestSchema");function Ns(){return{oneOf:[E({type:{enum:["allow_once"]}},["type"]),E({type:{enum:["allow_session"]},suggestionId:y},["type","suggestionId"]),E({type:{enum:["allow_always"]},suggestionId:y},["type","suggestionId"]),E({type:{enum:["allow_always"]},scope:E({toolName:y,sessionId:y,matcher:Xc()})},["type","scope"]),E({type:{enum:["reject"]},reason:y},["type"])]}}i(Ns,"permissionDecisionSchema");function Xc(){let e={version:{type:"integer",enum:[1]},toolName:y,fingerprint:y};return{oneOf:[E({...e,kind:{enum:["exact-command"]},shell:{enum:["cmd","posix"]},commandFingerprint:y,cwd:y,executable:y,argvFingerprint:y,background:z},["version","kind","toolName","fingerprint","shell","commandFingerprint","cwd","background"]),E({...e,kind:{enum:["exact-path"]},path:y},["version","kind","toolName","fingerprint","path"]),E({...e,kind:{enum:["exact-call"]},cwd:y,inputFingerprint:y},["version","kind","toolName","fingerprint","cwd","inputFingerprint"])]}}i(Xc,"runtimePermissionMatcherSchema");function js(){return E({runId:y,activeOnly:z,limit:X})}i(js,"workflowFilterSchema");function Fs(){return E({id:y,kind:{enum:["image","file","video"]},path:y,sizeBytes:X,mediaType:y,mimeType:y,name:y,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:y,createdAt:y},["id","kind","path","sizeBytes","createdAt"],!0)}i(Fs,"artifactSchema");import{createHash as Uc,randomUUID as Xn}from"node:crypto";import*as ie from"node:fs";import Bc from"node:path";var Wc=6e4,zc=1048576,Gc=64,Jc=4096,Bs=1e3;function jr(){return{callTimeoutMs:Gs("KODAX_REVERSE_CALL_TIMEOUT_MS",Wc),maxResultBytes:Gs("KODAX_HOST_TOOL_MAX_RESULT_BYTES",zc)}}i(jr,"runtimeDaemonReverseBridgeLimits");function Fr(e,n={}){let t=jr(),r=new Map,o=new Map,a=new Map,d=new Map,u=new Map((n.initialInvocations??[]).map(R=>[R.invocationId,R])),p=new Set,w=new Map,l=new Map,s,g=!1,c=i(()=>{if(g)throw U("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),v=i(()=>{let R=Date.now();for(let[h,m]of r)m.expiresAt!==void 0&&Date.parse(m.expiresAt)<=R&&r.delete(h)},"pruneExpiredCredentials"),f=i(R=>{for(let h of a.values())clearTimeout(h.timer),h.reject(U("credential_unavailable",R));a.clear()},"rejectPendingCredentialRequests"),k=i(()=>{for(let[R,h]of d)h.dispatched&&(d.delete(R),clearTimeout(h.timer),b(R,"unknown"),h.reject(U("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),b=i((R,h)=>{let m=u.get(R);if(m===void 0)return;let S={...m,state:h,updatedAt:new Date().toISOString()},P=new Map(u);for(P.delete(R),P.set(R,S);P.size>Bs;){let C=P.keys().next().value;if(C===void 0)break;P.delete(C)}n.onInvocationsChanged?.([...P.values()]),u.clear();for(let[C,N]of P)u.set(C,N)},"updateHostToolInvocation"),I=i((R,h)=>{let m=s;if(!(h.dispatched||m===void 0||!p.has(h.leaseId)))try{b(R,"dispatched"),h.dispatched=!0,m.notify(h.notification)}catch{d.delete(R),clearTimeout(h.timer),b(R,"unknown"),h.reject(U("host_tool_unknown","Host tool transport failed after durable dispatch; the side-effect outcome is unknown."))}},"dispatchPendingHostCall"),x=i(async R=>{if(c(),o.get(R.lease.id)!==R.lease)throw U("host_tool_unavailable","Host tool lease was revoked.");let h=`hostcall_${Xn().replace(/-/g,"")}`,m=jn("host_tool.invoke",{invocationId:h,leaseId:R.lease.id,toolName:R.descriptor.name,sessionId:R.sessionId,runId:R.runId,input:R.toolInput,sideEffect:R.descriptor.sideEffect}),S={invocationId:h,leaseId:R.lease.id,toolName:R.descriptor.name,sessionId:R.sessionId,runId:R.runId,state:"prepared",updatedAt:new Date().toISOString()},P=new Map(u);for(P.set(h,S);P.size>Bs;){let D=P.keys().next().value;if(D===void 0)break;P.delete(D)}n.onInvocationsChanged?.([...P.values()]),u.clear();for(let[D,M]of P)u.set(D,M);let C=new Promise((D,M)=>{let A=setTimeout(()=>{let $=d.get(h);$&&(d.delete(h),b(h,$.dispatched?"unknown":"not_dispatched"),M(U($.dispatched?"host_tool_unknown":"host_tool_unavailable",$.dispatched?`Host tool ${R.descriptor.name} did not return a certain result before timeout.`:`Host tool ${R.descriptor.name} had no connected host before timeout.`)))},t.callTimeoutMs);A.unref?.(),d.set(h,{invocationId:h,resolve:D,reject:M,timer:A,notification:m,leaseId:R.lease.id,dispatched:!1})}),N=d.get(h);return N&&I(h,N),C},"invokeHostTool");return e!==void 0&&(s={id:`bridge_${Xn().replace(/-/g,"")}`,notify:e}),{attachTransport(R){c(),s!==void 0&&(f("Credential client connection was replaced."),k());let h=`bridge_${Xn().replace(/-/g,"")}`;return s={id:h,notify:R},p.clear(),{close(){s?.id===h&&(s=void 0,p.clear(),f("Credential client disconnected."),k())}}},registerCredential(R){if(c(),v(),R.providers.length===0||R.providers.some(m=>m.trim().length===0)||new Set(R.providers).size!==R.providers.length)throw U("invalid_params","Credential lease providers must be non-empty and unique.");if(R.expiresAt!==void 0&&!Number.isFinite(Date.parse(R.expiresAt)))throw U("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(R.leaseId))throw U("conflict","Credential lease ID is already registered on this connection.");let h={id:R.leaseId,providers:[...R.providers],...R.expiresAt!==void 0?{expiresAt:R.expiresAt}:{},providerSet:new Set(R.providers)};return r.set(R.leaseId,h),zs(h)},getCredential(R){v();let h=r.get(R);return h===void 0?void 0:zs(h)},revokeCredential(R){return r.delete(R)},supplyCredential(R){let h=a.get(R.requestId);return h?(a.delete(R.requestId),clearTimeout(h.timer),R.credential!==void 0&&R.credential.length>0?h.resolve(R.credential):h.reject(U("credential_unavailable",R.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(R){c();let h=r.get(R.leaseId);if(!h||!h.providerSet.has(R.provider))throw U("credential_unavailable","Credential lease is missing or does not allow this provider.");if(h.expiresAt!==void 0&&Date.parse(h.expiresAt)<=Date.now())throw r.delete(h.id),U("credential_unavailable","Credential lease expired.");let m=s;if(!m)throw U("credential_unavailable","Credential broker transport is unavailable.");let S=`credreq_${Xn().replace(/-/g,"")}`,P=h.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(h.expiresAt)-Date.now())),C=new Promise((N,D)=>{let M=setTimeout(()=>{a.delete(S),D(U("credential_unavailable","Credential lease expired or broker timed out."))},P);M.unref?.(),a.set(S,{resolve:N,reject:D,timer:M})});try{m.notify(jn("credential.request",{requestId:S,leaseId:h.id,provider:R.provider,sessionId:R.sessionId,runId:R.runId}))}catch{let N=a.get(S);N&&(a.delete(S),clearTimeout(N.timer),N.reject(U("credential_unavailable","Credential request was not dispatched.")))}return C.then(N=>(w.set(R.runId,{leaseId:R.leaseId,provider:R.provider}),N))},registerHostTools(R){c();let h=R.tools.map(S=>S.name);if(h.length===0||h.length>Gc||new Set(h).size!==h.length)throw U("invalid_params","Host tool names must be non-empty and unique.");if(o.has(R.leaseId))throw U("conflict","Host tool lease ID is already registered on this connection.");for(let S of R.tools)el(S);let m={id:R.leaseId,tools:R.tools.map(S=>({...S,inputSchema:{...S.inputSchema}})),byName:new Map(R.tools.map(S=>[S.name,S]))};return o.set(R.leaseId,m),p.add(R.leaseId),{id:m.id,tools:m.tools}},getHostTools(R){let h=o.get(R);if(h!==void 0){p.add(R);for(let[m,S]of d)S.leaseId===R&&I(m,S)}return h===void 0?void 0:{id:h.id,tools:h.tools}},revokeHostTools(R){return o.delete(R)},completeHostTool(R){let h=d.get(R.invocationId);if(!h)return!1;if(R.result!==void 0){if(typeof R.result.content!="string")throw U("invalid_params","Host tool result content must be a string.");nl(R.result,t.maxResultBytes,"Host tool result")}return d.delete(R.invocationId),clearTimeout(h.timer),R.result!==void 0?(b(R.invocationId,"completed"),h.resolve(R.result)):(b(R.invocationId,"unknown"),h.reject(U("host_tool_unknown",R.error??"Host tool result is unknown."))),!0},getHostToolInvocation(R){return u.get(R)},createHostToolRuntime(R){c();let h=o.get(R.leaseId);if(!h)throw U("host_tool_unavailable","Host tool lease is missing.");return l.set(R.runId,R.leaseId),{hasCapabilityProvider(m){return m==="mcp"},async searchCapabilities(m,S,P){if(m!=="mcp"||P?.kind!==void 0&&P.kind!=="tool")return[];let C=S.toLowerCase();return h.tools.filter(N=>N.name.toLowerCase().includes(C)||N.description.toLowerCase().includes(C)).slice(0,P?.limit??h.tools.length).map(N=>({id:tl(h.id,N.name),name:N.name,description:N.description,kind:"tool",server:"host",inputSchema:N.inputSchema}))},async describeCapability(m,S){if(m!=="mcp")return;let P=Js(h,S);return P?{...P,id:S,kind:"tool",server:"host"}:void 0},async executeCapability(m,S,P){if(m!=="mcp")throw U("host_tool_unavailable","Unsupported host capability provider.");let C=Js(h,S);if(!C)throw U("host_tool_unavailable","Host tool is not bound to this run.");return await x({lease:h,descriptor:C,sessionId:R.sessionId,runId:R.runId,toolInput:P})},async readCapability(){throw U("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(R){let h=w.get(R),m=l.get(R);if(!(h===void 0&&m===void 0))return{...h!==void 0?{credential:{...h,state:"ready"}}:{},...m!==void 0?{hostTools:{leaseId:m,state:o.has(m)?p.has(m)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!g){g=!0,s=void 0,p.clear(),r.clear(),o.clear(),f("Credential client disconnected.");for(let R of d.values())clearTimeout(R.timer),b(R.invocationId,R.dispatched?"unknown":"not_dispatched"),R.reject(U(R.dispatched?"host_tool_unknown":"host_tool_unavailable",R.dispatched?"Host tool client disconnected; the side-effect outcome is unknown.":"Host tool client disconnected before dispatch."));d.clear(),u.clear()}}}}i(Fr,"createRuntimeDaemonReverseBridge");function Vs(e={}){let n=new Map,t=Qc(e.invocationStateFile),r=!1;return{attach(o){if(r)throw U("host_tool_unavailable","Host bridge hub is closed.");if(o.instanceSecret!==void 0&&(o.instanceSecret.length<32||o.instanceSecret.length>512))throw U("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let a=o.instanceSecret===void 0?`ephemeral:${o.connectionId}`:`stable:${o.principalId}:${Uc("sha256").update(o.instanceSecret).digest("hex")}`,d=a.startsWith("stable:")?Vc(t.get(a)??[]):[],u=n.get(a)??Fr(void 0,{initialInvocations:d,...a.startsWith("stable:")?{onInvocationsChanged(w){t.set(a,w),Ws(e.invocationStateFile,t)}}:{}});!n.has(a)&&d.length>0&&(t.set(a,d),Ws(e.invocationStateFile,t)),n.set(a,u);let p=u.attachTransport(o.notify);return{bridge:u,close(){p.close()}}},getRunRequirements(o){for(let a of n.values()){let d=a.getRunRequirements(o);if(d!==void 0)return d}},close(){if(!r){r=!0;for(let o of n.values())o.close();n.clear()}}}}i(Vs,"createRuntimeDaemonReverseBridgeHub");function Vc(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(Vc,"recoverHostToolInvocationStates");function Qc(e){if(e===void 0||!ie.existsSync(e))return new Map;let n;try{n=JSON.parse(ie.readFileSync(e,"utf8"))}catch(r){throw new Error(`Host Tool invocation recovery store is untrusted: ${rl(r).message}`)}if(!Nr(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(!Nr(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(Yc);t.set(r.key,o)}return t}i(Qc,"loadHostToolInvocationStore");function Ws(e,n){if(e===void 0)return;ie.mkdirSync(Bc.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${Xn()}.tmp`,r;try{r=ie.openSync(t,"wx",384),ie.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([o,a])=>({key:o,invocations:a}))},null,2)}
|
|
65
|
+
`,"utf8"),ie.fsyncSync(r),ie.closeSync(r),r=void 0,ie.renameSync(t,e)}finally{r!==void 0&&ie.closeSync(r),ie.rmSync(t,{force:!0})}}i(Ws,"saveHostToolInvocationStore");function Yc(e){if(!Nr(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!Zc(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(Yc,"parseHostToolInvocationStatus");function Zc(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}i(Zc,"isHostToolInvocationState");function zs(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}i(zs,"publicCredentialLease");function el(e){if(!e.name||!e.description||!e.inputSchema)throw U("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw U("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw U("invalid_params","Host tool name is invalid.");if(e.description.length>Jc)throw U("invalid_params",`Host tool description is too long: ${e.name}.`)}i(el,"validateHostToolDescriptor");function nl(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw U("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw U("invalid_params",`${t} exceeds the ${n}-byte limit.`)}i(nl,"assertJsonByteLimit");function Gs(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(Gs,"positiveIntegerEnvironment");function tl(e,n){return`host:${e}:${n}`}i(tl,"hostToolCapabilityId");function Js(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}i(Js,"descriptorFromCapabilityId");function U(e,n){return Object.assign(new Error(n),{code:e})}i(U,"bridgeError");function Nr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Nr,"isRecord");function rl(e){return e instanceof Error?e:new Error(String(e))}i(rl,"normalizeError");var Qs=1e3,il=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],ol=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),da=["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"],ua=new Map([...de("session:observe",["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status","daemon.logs","operation.get","session.load","session.list","session.transcript","session.observe","session.settings.get","session.settings.getVersioned","session.autoMode.getStats","run.get","run.list","run.await","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.grants.list","user_input.listPending","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","context.budget.get","tool.exposure.preview","config.read","model.list","provider.list","provider.custom.list","mcp.server.list","mcp.server.get","mcp.tool.list","extension.list","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.get"]),...de("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"]),...de("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"]),...de("permission:respond",["permission.respond"]),...de("permission:grant-admin",["permission.grants.revoke"]),...de("interaction:respond",["user_input.respond","user_input.dismiss"]),...de("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...de("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...de("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"]),...de("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...de("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...de("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...de("artifact:write",["artifact.create","artifact.delete"]),...de("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"]),...de("owner:admin",["daemon.rollbackToInline"]),...de("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),Ys=un.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!ua.has(e));if(Ys.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${Ys.join(", ")}`);function de(e,n){return n.map(t=>[t,e])}i(de,"scopeEntries");function Ur(){let e=new Map,n=i(()=>{if(!(e.size<=Qs))for(let[r,o]of e){if(e.size<=Qs)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 a,d=o.finally(()=>{a&&t(r,a)});d.catch(()=>{}),a={promise:d,settled:!1},e.set(r,a),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}i(Ur,"createRuntimeDaemonRunResultStore");function Un(e){return e==="initialize"||e==="runtime.initialize"}i(Un,"isInitializeMethod");function ca(e){let n=new Map,t=e.runResults??Ur(),r=`connection_${Bn().replace(/-/g,"")}`,o=Fr(e.notify),a=o,d,u=!1,p=!1,w="client",l={},s=`client_${Bn().replace(/-/g,"")}`,g,c,v=new Set(e.grantedScopes??da),f=i(x=>{let R=n.get(x);return R?(n.delete(x),R.close(),!0):!1},"closeSubscription"),k=i((x,R)=>{n.set(x,R)},"rememberSubscription"),b=i((x,R)=>{ma(R)&&l.contextDiagnostics!==!0||e.notify?.(jn("event",{subscriptionId:x,event:R}))},"notify");return{handle:i(async x=>{try{if(Go(x.method))throw H("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 R=x;aa(R.method,"params",R.params===void 0?{}:R.params,"invalid_params");let h;if(!u&&!Un(R.method))throw H("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(u&&Un(R.method))throw H("conflict","Runtime daemon connection is already initialized.");if(u&&w==="probe"&&!ol.has(R.method))throw H("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(Un(R.method)){h=J(R.params),w=h?.connectionPurpose==="probe"?"probe":"client";let C=typeof h?.token=="string"?h.token:void 0;if(e.authToken!==void 0&&C!==e.authToken)throw H("unauthorized","Runtime daemon initialize token is invalid.");let N=typeof h?.profile=="string"?h.profile:void 0;if(N!==void 0&&N!==e.runtime.identity.profile)throw H("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${N}.`);s=cl(h?.clientInfo,s),g=xl(h?.clientInfo),c=Dl(h?.clientInfo)}Un(R.method)||(dl(R.method,v),ul(R,v));let S=await sl(R,e,l,s,i(()=>ll(R,e,t,k,f,b,()=>l,s,g,c,a),"dispatch")),P=_l(R.method,S);if(aa(R.method,"result",P,"internal_error"),Un(R.method)){if(l=pl(h?.capabilities),w==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(d=e.reverseBridgeHub.attach({principalId:s,connectionId:r,...ea(h?.clientInfo)!==void 0?{instanceSecret:ea(h?.clientInfo)}:{},notify:e.notify}),a=d.bridge,o.close()),w==="client"&&e.management!==void 0)try{e.management.attachClient(r),p=!0}catch(C){throw d?.close(),d=void 0,C}u=!0}return Jo(R.id,P)}catch(R){return Fe(Ol(R),x.id)}},"handle"),close(){for(let x of[...n.keys()])f(x);d!==void 0?d.close():a.close(),p&&(e.management?.detachClient(r),p=!1)}}}i(ca,"createRuntimeDaemonDispatcher");async function sl(e,n,t,r,o){let a=i(()=>n.management!==void 0&&al(e.method)?n.management.runMutation(e.method,o):o(),"execute");if(!We(e.method)||n.requireOperationEnvelope!==!0)return a();if(t.operationDeduplication!==!0)throw H("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw H("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw H("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,...Zs(e.params)!==void 0?{resourceId:Zs(e.params)}:{},params:e.params??{}},{externalEffect:!0},a)}i(sl,"dispatchWithOperation");function al(e){return zo(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}i(al,"isManagedRuntimeMutation");function dl(e,n){let t=ua.get(e);if(t===void 0)throw H("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw H("unauthorized",`Runtime daemon method requires scope ${t}.`)}i(dl,"requireRuntimeMethodScope");function ul(e,n){if(e.method!=="permission.respond")return;let t=ue(e.params)?e.params:void 0;if(!((t&&ue(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw H("unauthorized","Persistent permission grants require scope permission:grant-admin.")}i(ul,"requirePersistentGrantScope");function Zs(e){if(ue(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}i(Zs,"operationResourceId");function cl(e,n){if(!ue(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}i(cl,"parseRuntimeClientPrincipal");function ea(e){if(!ue(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}i(ea,"parseRuntimeClientInstanceSecret");async function ll(e,n,t,r,o,a,d,u,p,w,l){let s=n.runtime,g=n.reverseBridgeHub??l;switch(e.method){case"initialize":case"runtime.initialize":return{identity:s.identity,capabilities:ta(n.capabilities,s.agents.enabled,s.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0),principalId:u,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??da]};case"ping":return{ok:!0,runtimeId:s.identity.runtimeId};case"runtime.identity":return s.identity;case"daemon.status":case"runtime.status":return yl(await(n.status?n.status():s.status.snapshot()),g);case"daemon.stop":case"runtime.shutdown":return n.management?n.management.stop():n.stop?n.stop():s.close().then(()=>({ok:!0}));case"daemon.logs":return n.logs?n.logs():{entries:[]};case"daemon.preflight":return wl(await(n.management?n.management.preflight():n.preflight?n.preflight():s.status.preflight()),g);case"daemon.management.get":if(!n.management)throw H("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw H("client_upgrade_required","Runtime daemon rollback management is unavailable.");let c=O(e.params),v={expectedRuntimeId:j(c,"expectedRuntimeId"),expectedRevision:At(c,"expectedRevision"),expectedOwnerPolicyRevision:At(c,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(v)}case"runtime.capabilities":return ta(n.capabilities,s.agents.enabled,s.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0);case"operation.get":{let c=O(e.params),v=j(c,"operationId"),f=j(c,"journalEpoch");if(!n.controlJournal)return s.operations.get({operationId:v,journalEpoch:f});if(f!==n.controlJournal.journalEpoch)throw H("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let k=n.controlJournal.get(v);if(!k||k.principalId!==u)throw H("not_found","Runtime operation was not found.");return fl(k)}case"config.read":return n.config?Xr(await n.config()):s.config.read();case"config.patch":{let c=pa(O(e.params),"patch");return s.config.patch(c)}case"config.reload":return s.config.reload();case"provider.list":return n.providerList?n.providerList():s.catalog.providers();case"model.list":return n.providerList?vl(await n.providerList(),J(e.params)):s.catalog.models(kl(e.params));case"provider.custom.list":return s.catalog.customProviders();case"provider.custom.upsert":{let c=O(e.params);return s.catalog.upsertCustomProvider(O(c.config))}case"provider.custom.remove":return s.catalog.deleteCustomProvider(B(e.params,"name"));case"mcp.server.list":return s.mcp.listServers();case"mcp.server.get":return s.mcp.getServer(B(e.params,"name"));case"mcp.server.validate":{let c=O(e.params);return s.mcp.validateServer(j(c,"name"),c.config)}case"mcp.server.upsert":{let c=O(e.params);return s.mcp.upsertServer(j(c,"name"),O(c.config))}case"mcp.server.delete":case"mcp.server.remove":return s.mcp.deleteServer(B(e.params,"name"));case"mcp.server.reload":return s.mcp.reloadServers();case"mcp.tool.list":return s.mcp.listTools(Il(e.params));case"extension.list":return s.catalog.extensions();case"extension.reload":return s.catalog.reloadExtensions();case"command.list":{let c=J(e.params),v=typeof c?.projectRoot=="string"?c.projectRoot:void 0;return s.catalog.commands(v)}case"command.resolve":{let c=O(e.params);return s.catalog.resolveCommand({name:j(c,"name"),...typeof c.projectRoot=="string"?{projectRoot:c.projectRoot}:{}})}case"skill.list":return s.catalog.skills(bl(e.params));case"skill.describe":case"skill.read":{let c=O(e.params);return s.catalog.describeSkill({name:j(c,"name"),...typeof c.projectRoot=="string"?{projectRoot:c.projectRoot}:{}})}case"artifact.create":return s.artifacts.create(Pl(e.params));case"artifact.get":return s.artifacts.get(B(e.params,"artifactId"));case"artifact.delete":return s.artifacts.delete(B(e.params,"artifactId"));case"agentRegistrations.list":return Mt(n),Dt(s),s.admin.agentRegistrations.list();case"agentRegistrations.upsert":{Mt(n),Dt(s);let c=O(e.params);return s.admin.agentRegistrations.upsert(O(c.registration),{expectedConfigurationRevision:Hr(c),expectedManagementOwner:qr(c)})}case"agentRegistrations.setEnabled":{Mt(n),Dt(s);let c=O(e.params),v=oe(c,"claimOwner");if(v!==void 0&&v.length===0)throw H("invalid_request","Expected non-empty optional string param: claimOwner");return s.admin.agentRegistrations.setEnabled(j(c,"agentId"),Cl(c,"enabled"),{expectedConfigurationRevision:Hr(c),expectedManagementOwner:qr(c),...v?{claimOwner:v}:{}})}case"agentRegistrations.remove":Mt(n),Dt(s);{let c=O(e.params);return s.admin.agentRegistrations.remove(j(c,"agentId"),{expectedConfigurationRevision:Hr(c),expectedManagementOwner:qr(c)})}case"agents.listDispatchable":return s.agents.listDispatchable(O(e.params));case"agents.describe":{let c=O(e.params);return s.agents.describe(j(c,"agentId"),O(c.query))}case"agents.preflight":return s.agents.preflight(O(e.params));case"agents.tree":return s.agents.tree(B(e.params,"sessionId"));case"agents.detail":{let c=O(e.params);return s.agents.detail(j(c,"sessionId"),j(c,"actorPath"))}case"agents.spawn":{let c=O(e.params);return s.agents.spawn(j(c,"sessionId"),O(c.input))}case"agents.send":{let c=O(e.params),v=oe(c,"classification");if(v!==void 0&&v!=="public"&&v!=="internal"&&v!=="sensitive")throw H("invalid_params","Invalid Agent message classification.");return await s.agents.send(j(c,"sessionId"),j(c,"actorPath"),j(c,"content"),v),{ok:!0}}case"agents.followup":{let c=O(e.params),v=He(c,"expectedRevision");return s.agents.followup(j(c,"sessionId"),j(c,"actorPath"),j(c,"objective"),v===void 0?void 0:{expectedRevision:v})}case"agents.interrupt":{let c=O(e.params);return await s.agents.interrupt(j(c,"sessionId"),j(c,"actorPath"),oe(c,"reason")),{ok:!0}}case"agents.output":{let c=O(e.params);return s.agents.output(j(c,"sessionId"),j(c,"actorPath"),oe(c,"turnId"))}case"agents.events":{let c=O(e.params);return s.agents.events(j(c,"sessionId"),He(c,"afterSequence"))}case"agents.wait":{let c=O(e.params);return s.agents.wait(j(c,"sessionId"),He(c,"afterSequence"),He(c,"timeoutMs"))}case"session.create":return s.sessions.create(J(e.params));case"session.load":return s.sessions.load(B(e.params,"sessionId"));case"session.list":return s.sessions.list(J(e.params));case"session.transcript":return s.sessions.transcript(B(e.params,"sessionId"));case"session.observe":{let c=Kr(),v=await s.sessions.observe(B(e.params,"sessionId"),f=>a(c,$r(f,g)));return r(c,v),{subscriptionId:c,snapshot:Rl(v.snapshot,g)}}case"session.fork":return s.sessions.fork(O(e.params));case"session.notice.append":return s.sessions.appendNotice(O(e.params));case"session.rewind":return s.sessions.rewind(O(e.params));case"session.active_entry.set":case"session.activeEntry.set":return s.sessions.setActiveEntry(O(e.params));case"session.compact":return s.sessions.compact(O(e.params));case"session.archive":return await s.sessions.archive(B(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await s.sessions.unarchive(B(e.params,"sessionId")),{ok:!0};case"session.delete":return await s.sessions.delete(B(e.params,"sessionId")),{ok:!0};case"session.settings.get":return s.sessions.getSettings(B(e.params,"sessionId"));case"session.settings.getVersioned":return s.sessions.getSettingsVersioned(B(e.params,"sessionId"));case"session.autoMode.getStats":return s.sessions.getAutoModeStats(B(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw H("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let c=O(e.params);return s.sessions.updateSettings(j(c,"sessionId"),O(c.patch))}case"session.settings.updateVersioned":{let c=O(e.params);return s.sessions.updateSettingsVersioned(j(c,"sessionId"),O(c.patch),{expectedRevision:At(c,"expectedRevision")})}case"run.start":{let c=O(e.params),v=j(c,"sessionId"),f=`run_${Date.now().toString(36)}_${Bn().replace(/-/g,"").slice(0,8)}`,k=await na({params:c,sessionId:v,trustedRunId:f,principalId:u,clientName:p,clientVersion:w,operationId:e.operation?.operationId,reverseBridge:l}),b=await s.runs.start(k);return t.remember(b.runId,b.result),{runId:b.runId,sessionId:b.sessionId,...b.turnId!==void 0?{turnId:b.turnId}:{}}}case"run.input.submit":{let c=O(e.params),v=j(c,"sessionId"),f=j(c,"afterRunId"),k=j(c,"delivery"),b=await s.runs.get(f);if(b.sessionId!==v)throw H("conflict",`Runtime continuation target ${f} does not belong to session ${v}.`);if(!ml(b.phase))return{accepted:!1,delivery:k,sessionId:v,afterRunId:f,reason:"stale_run"};if(k==="interrupt")return{accepted:!1,delivery:k,sessionId:v,afterRunId:f,reason:"unsupported_capability"};let I=`run_${Date.now().toString(36)}_${Bn().replace(/-/g,"").slice(0,8)}`,x=await na({params:c,sessionId:v,trustedRunId:I,principalId:u,clientName:p,clientVersion:w,operationId:e.operation?.operationId,reverseBridge:l}),R=await s.runs.submitInput(x);if(R.accepted){let h=s.runs.await(R.runId);t.remember(R.runId,h)}return R}case"run.get":return en(await s.runs.get(B(e.params,"runId")),g);case"run.list":return(await s.runs.list(J(e.params))).map(c=>en(c,g));case"run.await":{let c=B(e.params,"runId"),v=t.get(c);return v||s.runs.await(c)}case"run.abort":return await s.runs.abort(B(e.params,"runId")),{ok:!0};case"run.model.set":return oa(s,e.params);case"run.setModel":return oa(s,e.params);case"run.provider.set":{let c=O(e.params);return await s.runs.setProvider(j(c,"runId"),j(c,"provider")),{ok:!0}}case"run.setProvider":{let c=O(e.params);return await s.runs.setProvider(j(c,"runId"),j(c,"provider")),{ok:!0}}case"run.reasoning.set":return sa(s,e.params);case"run.setReasoning":return sa(s,e.params);case"event.subscribe":{let c=J(e.params)??{},v=J(c.filter);await Ze(s,v?.sessionId);let f=Kr(),k=s.events.subscribe(v??{},b=>{a(f,$r(b,g))});return r(f,k),{subscriptionId:f}}case"event.unsubscribe":return{ok:o(B(e.params,"subscriptionId"))};case"event.replay":{let c=J(e.params);return await Ze(s,c?.sessionId),gl(await s.events.replay(c),d()).map(v=>$r(v,g))}case"permission.list":case"permission.listPending":{let c=J(e.params);return await Ze(s,c?.sessionId),s.permissions.listPending(c)}case"permission.request":{let c=O(e.params);return await Ze(s,c.sessionId),s.permissions.request(c)}case"permission.respond":{let c=O(e.params),v=oe(c,"runId");return s.permissions.respond(j(c,"requestId"),O(c.decision),v!==void 0?{runId:v}:void 0)}case"permission.grants.list":return s.permissions.listGrants();case"permission.grants.revoke":{let c=O(e.params);return s.permissions.revokeGrant(j(c,"grantId"),At(c,"expectedRevision"))}case"user_input.listPending":{let c=J(e.params);return await Ze(s,c?.sessionId),s.userInputs.listPending(c)}case"user_input.respond":{let c=O(e.params),v=He(c,"expectedRevision"),f=oe(c,"runId");return s.userInputs.respond(j(c,"requestId"),c.answer,v!==void 0||f!==void 0?{...v!==void 0?{expectedRevision:v}:{},...f!==void 0?{runId:f}:{}}:void 0)}case"user_input.dismiss":{let c=O(e.params),v=He(c,"expectedRevision"),f=oe(c,"runId");return s.userInputs.dismiss(j(c,"requestId"),v!==void 0||f!==void 0?{...v!==void 0?{expectedRevision:v}:{},...f!==void 0?{runId:f}:{}}:void 0)}case"credential.register":{let c=O(e.params);return l.registerCredential({leaseId:j(c,"leaseId"),providers:Ml(c,"providers"),...oe(c,"expiresAt")!==void 0?{expiresAt:oe(c,"expiresAt")}:{}})}case"credential.get":return l.getCredential(B(e.params,"leaseId"));case"credential.revoke":return l.revokeCredential(B(e.params,"leaseId"));case"credential.supply":{let c=O(e.params);return{ok:l.supplyCredential({requestId:j(c,"requestId"),...oe(c,"credential")!==void 0?{credential:oe(c,"credential")}:{},...oe(c,"error")!==void 0?{error:oe(c,"error")}:{}})}}case"host_tool.register":{let c=O(e.params);return l.registerHostTools({leaseId:j(c,"leaseId"),tools:Al(c.tools)})}case"host_tool.get":return l.getHostTools(B(e.params,"leaseId"));case"host_tool.invocation.get":return l.getHostToolInvocation(B(e.params,"invocationId"));case"host_tool.revoke":return l.revokeHostTools(B(e.params,"leaseId"));case"host_tool.complete":{let c=O(e.params);return{ok:l.completeHostTool({invocationId:j(c,"invocationId"),...c.result!==void 0?{result:O(c.result)}:{},...oe(c,"error")!==void 0?{error:oe(c,"error")}:{}})}}case"workflow.list":return s.workflows.list(J(e.params));case"workflow.get":return s.workflows.get(B(e.params,"runId"));case"workflow.subscribe":{let c=J(e.params)??{},v=J(c.filter),f=Kr(),k=s.workflows.subscribe(v??{},b=>{a(f,b)});return r(f,k),{subscriptionId:f}}case"workflow.unsubscribe":return{ok:o(B(e.params,"subscriptionId"))};case"workflow.pause":return s.workflows.pause(B(e.params,"runId"));case"workflow.resume":return s.workflows.resume(B(e.params,"runId"));case"workflow.stop":return s.workflows.stop(B(e.params,"runId"));case"learning.list":return _e(s.learning,u).list(J(e.params));case"learning.get":return _e(s.learning,u).get(B(e.params,"nameOrSlug"));case"learning.snapshot":return _e(s.learning,u).getSnapshot();case"learning.events":return _e(s.learning,u).events(He(J(e.params)??{},"afterRevision"));case"learning.acknowledge":return await _e(s.learning,u).acknowledge(B(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let c=O(e.params);return await _e(s.learning,u).snooze(j(c,"nameOrSlug"),j(c,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let c=_e(s.learning,u),v=B(e.params,"nameOrSlug");return e.method==="learning.reject"?await c.reject(v):e.method==="learning.disable"?await c.disable(v):e.method==="learning.rollback"?await c.rollback(v):e.method==="learning.review"?await c.review(v):await c.trust(v),{ok:!0}}case"learning.promote":{let c=O(e.params),v=j(c,"scope");if(v!=="user")throw H("invalid_params","Learning promotion scope must be user.");return await _e(s.learning,u).promote(j(c,"nameOrSlug"),v),{ok:!0}}case"context.budget.get":return ra(d()),await Ze(s,oe(J(e.params)??{},"sessionId")),ia(s,"context.budget.snapshot",J(e.params));case"tool.exposure.preview":return ra(d()),await Ze(s,oe(J(e.params)??{},"sessionId")),ia(s,"tool.exposure.planned",J(e.params));default:throw H("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}i(ll,"dispatchRuntimeDaemonRequest");async function na(e){let n=J(e.params.credential),t=J(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:j(n,"leaseId"),provider:j(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),o=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:j(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),a=sn(),d=o===void 0?void 0:a===null?o:Tl(o,a),u=J(e.params.options)??{};return{...e.params,sessionId:e.sessionId,trustedRunId:e.trustedRunId,origin:{principalId:e.principalId,...e.clientName!==void 0?{clientName:e.clientName}:{},...e.clientVersion!==void 0?{clientVersion:e.clientVersion}:{},...e.operationId!==void 0?{operationId:e.operationId}:{}},...r!==void 0?{providerCredential:r}:{},...n!==void 0?{providerCredentialProvider:j(n,"provider")}:{},...d!==void 0?{options:{...u,extensionRuntime:d}}:{}}}i(na,"bindTrustedRunInput");function ml(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"}i(ml,"isActiveRuntimeRunPhase");function pl(e){return ue(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(pl,"parseRuntimeClientCapabilities");function ta(e={},n=!1,t=!1,r=!1,o,a=!1,d=!1,u=!1){let p={...e};delete p.externalAgents,delete p.externalAgentAdmin,delete p.a2aConfigReconciler,delete p.actorControlPlane,delete p.runtimeAutoModeGuardrail;let w=jr();return{events:!0,permissions:!0,workflows:!0,configAdmin:!0,commandCatalog:!0,skillCatalog:!0,artifactUpload:!0,contextDiagnostics:!0,hardDispose:!1,externalAgents:n,actorControlPlane:{version:1,methodNamespace:"agents"},runtimeAutoModeGuardrail:{version:3,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!0,defaultClassifierTimeoutMs:rt,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...t?{externalAgentAdmin:{version:1,activation:!0,conditionalMutations:!0,managementOwner:!0}}:{},...r?{a2aConfigReconciler:{version:1}}:{},...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:il,legacySurface:!0,partnerDenied:!0},completeObservationSnapshot:{version:1,transcriptRevision:!0,managedTasks:!0,queuedInputs:!0},connectionLifecycle:{version:1},typedRuntimeEvents:{version:1},daemonSafeRunInput:{version:1},...u?{daemonManagement:{version:1,logicalClientCount:!0,revisionedStop:!0,ownerPolicy:!0,ownerFenceState:!0,reverseBridgeDrainingFence:!0,backgroundWorkPreflight:!0}}:{},sharedSessionSettings:{version:1,keys:["provider","model","effort","thinking","reasoningMode","permissionMode","executionCwd","agentMode","autoModeEngine","autoModeClassifierModel","autoModeTimeoutMs","autoModeSpeculativeWindowMs"]},...o!==void 0?{durableRecoveryQueries:{version:1,operationResult:!0,hostToolInvocation:d,permissionGrants:!0,daemonPreflight:!0,terminalAcknowledgement:!1,terminalAcknowledgementOwner:"client"}}:{},afterTurnInput:{version:1},learningCenter:{version:1},askUserTransport:{version:1},permissionCas:{version:1},providerCredentialBroker:{version:1,registrationConnectionBound:!a,stableClientResume:a,runtimeRestartExpiresLease:!0,acquiredCredentialSurvivesDisconnect:!0,requestTimeoutMs:w.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!a,stableClientResume:a,invocationStatusQuery:a,invocationReplay:!1,invocationTimeoutMs:w.callTimeoutMs,maxResultBytes:w.maxResultBytes},coderOwnerFencing:{version:1},crashOutcomeModel:{version:1},coderFeatureMatrix:{version:1,managedRun:!0,transcriptSessions:!0,todoProjection:!0,managedTasks:!0,workflow:!0,mcp:!0,referenceExternalAgent:n,memory:!0,runtimeArtifacts:!0},...p}}i(ta,"runtimeDaemonCapabilities");function fl(e){return e?{...e}:{}}i(fl,"publicOperationReceipt");function Dt(e){if(!e.agents.enabled)throw H("method_not_found","Runtime external agent executor plane is not enabled.")}i(Dt,"requireExternalAgentsEnabled");function Mt(e){if(e.allowAgentRegistrationAdmin!==!0)throw H("permission_denied","Runtime daemon host denied Agent registration administration.")}i(Mt,"requireAgentRegistrationAdmin");function gl(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!ma(t))}i(gl,"filterReplayForClientCapabilities");async function Ze(e,n){n!==void 0&&await e.sessions.transcript(n)}i(Ze,"assertAdmittedSessionId");function Rl(e,n){return{...e,runs:e.runs.map(t=>en(t,n))}}i(Rl,"augmentObservationRunRequirements");function yl(e,n){return!ue(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>la(t)?en(t,n):t)}}i(yl,"augmentStatusRunRequirements");function wl(e,n){return{...e,activeRuns:e.activeRuns.map(t=>en(t,n)),queuedRuns:e.queuedRuns.map(t=>en(t,n))}}i(wl,"augmentPreflightRunRequirements");function $r(e,n){return la(e.payload)?{...e,payload:en(e.payload,n)}:e}i($r,"augmentRuntimeEventRequirements");function en(e,n){let t=n?.getRunRequirements(e.runId);return t===void 0?e:hl(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(en,"augmentRunRequirements");function la(e){return ue(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}i(la,"isRuntimeRunStatus");function hl(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(hl,"isTerminalRuntimeRunPhase");function ra(e){if(e.contextDiagnostics!==!0)throw H("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}i(ra,"requireContextDiagnosticsCapability");function ma(e){return ue(e)?e.type==="context.budget.snapshot"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}i(ma,"isContextDiagnosticRuntimeEvent");async function ia(e,n,t){let r=t??{},o={type:n,limit:100,...typeof r.sessionId=="string"?{sessionId:r.sessionId}:{},...typeof r.runId=="string"?{runId:r.runId}:{}};return(await e.events.replay(o)).at(-1)?.payload??null}i(ia,"latestRuntimeDiagnosticPayload");async function oa(e,n){let t=O(n);return await e.runs.setModel(j(t,"runId"),oe(t,"model")),{ok:!0}}i(oa,"setRunModel");async function sa(e,n){let t=O(n);return await e.runs.setReasoning(j(t,"runId"),oe(t,"reasoning")),{ok:!0}}i(sa,"setRunReasoning");function vl(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(a=>ue(a)&&a.name===r);return ue(o)?{provider:r,models:Array.isArray(o.models)?o.models:[]}:{provider:r,models:[]}}return t.flatMap(o=>!ue(o)||typeof o.name!="string"?[]:[{provider:o.name,models:Array.isArray(o.models)?o.models:[]}])}i(vl,"listRuntimeModels");function Xr(e){return Array.isArray(e)?e.map(n=>Xr(n)):ue(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Sl(n)?"[redacted]":Xr(t)])):e}i(Xr,"redactRuntimeConfig");function Sl(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(Sl,"isSensitiveConfigKey");function J(e){if(e!==void 0)return O(e)}i(J,"optionalRecord");function pa(e,n){return O(e[n])}i(pa,"requireRecordField");function kl(e){let n=J(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}i(kl,"parseModelListFilter");function Il(e){let n=J(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}i(Il,"parseMcpToolListFilter");function bl(e){let n=J(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}i(bl,"parseSkillListFilter");function Pl(e){let n=O(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw H("invalid_request","Expected artifact kind: image | file | video");let r=j(n,"path");return{kind:t,path:r,...typeof n.mediaType=="string"?{mediaType:n.mediaType}:{},...typeof n.mimeType=="string"?{mimeType:n.mimeType}:{},...typeof n.name=="string"?{name:n.name}:{},...El(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}i(Pl,"parseArtifactCreateInput");function El(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}i(El,"isRuntimeArtifactSource");function xl(e){return ue(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}i(xl,"parseRuntimeClientName");function Dl(e){return ue(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}i(Dl,"parseRuntimeClientVersion");function Ml(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw H("invalid_request",`Expected string array param: ${n}`);return t}i(Ml,"requireStringArrayField");function Al(e){if(!Array.isArray(e))throw H("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=O(n),r=j(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw H("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:j(t,"name"),description:j(t,"description"),inputSchema:pa(t,"inputSchema"),sideEffect:r}})}i(Al,"parseRuntimeHostToolDescriptors");function Tl(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,o){let[a,d]=await Promise.all([e.searchCapabilities(t,r,o),n.searchCapabilities(t,r,o)]),u=[...a,...d];return u.slice(0,o?.limit??u.length)},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(Tl,"mergeExtensionRuntimeContracts");function ue(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(ue,"isRecord");function O(e){if(!e||typeof e!="object"||Array.isArray(e))throw H("invalid_request","Expected params to be an object.");return e}i(O,"requireRecord");function B(e,n){return j(O(e),n)}i(B,"requireStringParam");function j(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw H("invalid_request",`Expected string param: ${n}`);return t}i(j,"requireStringField");function Cl(e,n){let t=e[n];if(typeof t!="boolean")throw H("invalid_request",`Expected boolean param: ${n}`);return t}i(Cl,"requireBooleanField");function oe(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw H("invalid_request",`Expected optional string param: ${n}`);return t}}i(oe,"optionalStringField");function Hr(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw H("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}i(Hr,"optionalExpectedConfigurationRevision");function qr(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw H("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}i(qr,"optionalExpectedManagementOwner");function He(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw H("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}i(He,"optionalIntegerField");function At(e,n){let t=He(e,n);if(t===void 0)throw H("invalid_request",`Expected non-negative integer param: ${n}`);return t}i(At,"requireIntegerField");function H(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(H,"daemonError");function Kr(){return`sub_${Bn().replace(/-/g,"").slice(0,12)}`}i(Kr,"createSubscriptionId");function aa(e,n,t,r){let o=Sn(xt[e][n],t,n);if(o.length!==0)throw H(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:o})}i(aa,"validateDaemonMethodValue");function _l(e,n){return n===void 0?null:e!=="run.await"||!ue(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(_l,"serializeRuntimeDaemonMethodResult");function Ol(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 Di)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"&&Ll(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}i(Ol,"normalizeRuntimeDaemonError");function Ll(e){return e==="invalid_frame"||e==="invalid_request"||e==="invalid_params"||e==="not_initialized"||e==="method_not_found"||e==="unauthorized"||e==="permission_denied"||e==="conflict"||e==="not_found"||e==="session_not_admitted"||e==="cancelled"||e==="overloaded"||e==="client_upgrade_required"||e==="operation_required"||e==="operation_epoch_mismatch"||e==="operation_id_reuse"||e==="operation_interrupted"||e==="operation_unknown"||e==="control_history_untrusted"||e==="credential_unavailable"||e==="host_tool_unavailable"||e==="host_tool_unknown"||e==="internal_error"}i(Ll,"isRuntimeDaemonErrorCode");import{createHash as Nl,randomUUID as Ra}from"node:crypto";import*as ee from"node:fs";import fa from"node:path";var Ie=class extends Error{static{i(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function ya(e){ee.mkdirSync(e.rootDir,{recursive:!0});let n=fa.join(e.rootDir,"journal-meta.json"),t=fa.join(e.rootDir,"control.jsonl"),r=Ul(n),o=r.meta,a=Xl(t),d=a.records,u=new Map,p=a.trusted&&r.trusted?"healthy":"control_history_untrusted";return p==="healthy"&&Kl(d,t),{journalEpoch:o.journalEpoch,get health(){return p},execute(w,l,s){if(p!=="healthy")return Promise.reject(new Ie("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{ql(w,o.journalEpoch);let g=Wl(w.params),c=d.get(w.operationId);if(c){Hl(c,w,g);let f=u.get(w.operationId);return f||$l(c)}let v=jl(t,d,w,g,l.externalEffect===!0,s,()=>{p="control_history_untrusted"});return u.set(w.operationId,v),v.finally(()=>u.delete(w.operationId)).catch(()=>{}),v}catch(g){return Promise.reject(g)}},get(w){return d.get(w)}}}i(ya,"createRuntimeControlJournal");async function jl(e,n,t,r,o,a,d){let u=Fl(t,r,"accepted");wa(e,u),n.set(t.operationId,u),o&&Tt(e,n,u,"dispatched");let p;try{p=await a()}catch(w){let l=zl(w);try{Tt(e,n,u,"rejected",{error:l})}catch{d()}throw w}try{return Tt(e,n,u,"applied",{result:p}).result}catch{throw d(),n.set(t.operationId,{...u,state:"unknown",updatedAt:new Date().toISOString()}),new Ie("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}i(jl,"executeNewOperation");function Tt(e,n,t,r,o={}){let a={type:"operation",...t,state:r,...o,updatedAt:new Date().toISOString()};return wa(e,a),n.set(a.operationId,a),a}i(Tt,"updateOperation");function Fl(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(Fl,"operationRecord");function $l(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new Ie(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 Ie(n,`Runtime operation is ${e.state}; it will not be replayed.`))}i($l,"replayOperation");function Hl(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 Ie("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}i(Hl,"assertMatchingOperation");function ql(e,n){if(e.journalEpoch!==n)throw new Ie("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new Ie("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new Ie("invalid_operation","Runtime operation identity is incomplete.")}i(ql,"validateOperationInput");function Kl(e,n){for(let t of[...e.values()])t.state!=="accepted"&&t.state!=="dispatched"||Tt(n,e,t,t.state==="dispatched"?"unknown":"interrupted")}i(Kl,"recoverUnfinished");function Xl(e){let n=new Map;if(!ee.existsSync(e))return{trusted:!0,records:n};let t=ee.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let o=JSON.parse(r);if(!Jl(o))return{trusted:!1,records:n};n.set(o.operationId,o)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}i(Xl,"loadOperationRecords");function Ul(e){if(ee.existsSync(e)){try{let t=JSON.parse(ee.readFileSync(e,"utf8"));if(Gl(t))return{meta:t,trusted:!0}}catch{}return{meta:ga(),trusted:!1}}let n=ga();return Bl(e,n),{meta:n,trusted:!0}}i(Ul,"loadOrCreateMeta");function ga(){return{version:1,journalEpoch:`je_${Ra().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}i(ga,"createJournalMeta");function wa(e,n){let t=`${JSON.stringify(n)}
|
|
66
|
+
`,r=ee.openSync(e,"a",384);try{ee.writeFileSync(r,t,"utf8"),ee.fsyncSync(r)}finally{ee.closeSync(r)}}i(wa,"appendRecord");function Bl(e,n){let t=`${e}.${process.pid}.${Ra()}.tmp`,r=ee.openSync(t,"wx",384);try{ee.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
67
|
+
`,"utf8"),ee.fsyncSync(r)}finally{ee.closeSync(r)}ee.renameSync(t,e)}i(Bl,"writeJsonAtomic");function Wl(e){return Nl("sha256").update(Br(e)).digest("hex")}i(Wl,"digestCanonical");function Br(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new Ie("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(Br).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)}:${Br(n[r])}`).join(",")}}`}throw new Ie("invalid_operation","Operation contains a non-JSON value.")}i(Br,"canonicalJson");function zl(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(zl,"normalizeOperationError");function Gl(e){return ha(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}i(Gl,"isJournalMeta");function Jl(e){return ha(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&Vl(e.state)&&typeof e.updatedAt=="string":!1}i(Jl,"isOperationRecord");function Vl(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}i(Vl,"isOperationState");function ha(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(ha,"isRecord");function va(e){return new Wr(e)}i(va,"createRuntimeDaemonManagementController");var Wr=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;attachClient(n){if(this.draining||this.closed)throw ye("conflict","Runtime daemon is draining and cannot attach another client.");this.clients.has(n)||(this.clients.add(n),this.revision+=1)}detachClient(n){this.clients.delete(n)&&(this.revision+=1)}async runMutation(n,t){if(this.draining||this.closed)throw ye("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 Ql(r,this.clients.size)}throw ye("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=Z(this.input.paths.lockFile);if(o===void 0||o.runtimeId!==this.input.runtime.identity.runtimeId||o.kind!=="daemon")throw ye("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:Se(this.input.paths),owner:o,preflight:r}}throw ye("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 ye("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=cs(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw ye("internal_error","Runtime owner rollback did not commit inline mode.");return this.revision+=1,this.input.requestStop(),{accepted:!0,runtimeId:this.input.runtime.identity.runtimeId,revision:this.revision,ownerPolicy:{...t,mode:"inline"}}}catch(t){throw this.draining=!1,t}}close(){this.closed||(this.closed=!0,this.runtimeEvents.close(),this.clients.clear())}beginDraining(n){if(this.closed)throw ye("conflict","Runtime daemon management is closed.");if(this.draining)throw ye("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw ye("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw ye("conflict",`Runtime daemon has in-flight mutations: ${[...this.activeMutationMethods].map(([t,r])=>`${t} (${r})`).join(", ")}.`);this.draining=!0}async assertStoppable(n){let t=await this.preflight();if(n!==void 0&&this.revision!==n)throw ye("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw ye("conflict",`Runtime daemon cannot stop safely: ${t.blockers.join(", ")}.`,{preflight:t})}observePreflight(n){let t=JSON.stringify(n);if(this.preflightFingerprint===void 0){this.preflightFingerprint=t;return}t!==this.preflightFingerprint&&(this.preflightFingerprint=t,this.revision+=1)}};function Ql(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(Ql,"withLogicalClients");function ye(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(ye,"managementError");async function Ia(e){Me(e.paths);let n=ms();ps(e.paths,n);let t=Ct(e,"starting");gn(e.paths,t),Ae(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=hi(b=>{Yl(e.paths,b)}),o,a,d=!1,u=i(()=>{if(a===void 0){d=!0;return}a()},"requestStop"),p=Ur(),w=ya({rootDir:Sa.join(e.paths.rootDir,"control")}),l=Vs({invocationStateFile:Sa.join(e.paths.rootDir,"host-tool-invocations.json")}),s=va({runtime:e.runtime,paths:e.paths,requestStop:u}),g;try{o=await bs({endpoint:e.endpoint,createDispatcher:i(b=>ca({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},allowAgentRegistrationAdmin:!0,notify:b,runResults:p,controlJournal:w,reverseBridgeHub:l,management:s,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:i(()=>({logFile:e.paths.logFile,entries:fs(e.paths)}),"logs")}),"createDispatcher")}),g=Ct(e,"ready"),gn(e.paths,g),Ae(e.paths,"info","Runtime daemon ready.",{runtimeId:g.runtimeId,endpoint:g.endpoint})}catch(b){Ae(e.paths,"error","Runtime daemon failed to start.",{error:be(b).message});let I=!0;try{await o?.close()}catch(x){I=!1,Ae(e.paths,"error","Runtime daemon transport cleanup failed.",{error:be(x).message})}throw s.close(),p.clear(),l.close(),r(),I?await ka(e.paths,e.lock):gn(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),b}let c=!1,v,f=new Promise(b=>{v=b}),k=i(async()=>{if(c)return;c=!0;let b=[],I=!1,x=!1;try{try{gn(e.paths,Ct(e,"stopping")),Ae(e.paths,"info","Runtime daemon stopping.")}catch(R){b.push(`state transition: ${be(R).message}`)}try{await o?.close(),I=!0}catch(R){b.push(`transport close: ${be(R).message}`)}s.close(),l.close(),p.clear();try{await e.runtime.close(),x=!0}catch(R){b.push(`Runtime close: ${be(R).message}`)}try{Ae(e.paths,"info","Runtime daemon stopped.")}catch(R){b.push(`stop log: ${be(R).message}`)}if(r(),I&&x){let R=await ka(e.paths,e.lock),h=Z(e.lock.file);!R&&h?.runtimeId===e.lock.owner.runtimeId&&h.pid===e.lock.owner.pid&&h.createdAt===e.lock.owner.createdAt&&b.push("owner release: the daemon still owns its profile lock")}else try{gn(e.paths,{...Ct(e,"unhealthy"),lastError:b.join("; ")})}catch(R){b.push(`unhealthy state: ${be(R).message}`)}if(b.length>0){try{Ae(e.paths,"error","Runtime daemon stopped with cleanup failures.",{failures:b})}catch(R){b.push(`failure log: ${be(R).message}`)}throw new Error(`Runtime daemon cleanup failed: ${b.join("; ")}`)}}finally{r(),v?.()}},"closeHost");return a=i(()=>{try{Ae(e.paths,"info","Runtime daemon stop requested.")}catch(I){re({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:be(I)})}setTimeout(()=>{k().catch(I=>{re({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:be(I)})})},0).unref?.()},"scheduleStop"),d&&a(),{endpoint:e.endpoint,state:g,closed:f,unref(){o?.unref()},close:k}}i(Ia,"startRuntimeDaemonHost");async function ka(e,n){for(let t=0;t<50;t+=1){try{if(ys(e,n))return!0}catch(o){re({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:be(o)})}let r=Z(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{Ae(e,"error","Runtime daemon ownership release timed out.")}catch(t){re({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:be(t)})}return!1}i(ka,"releaseHostOwnership");function Yl(e,n){try{Ae(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(Yl,"appendRuntimeDiagnostic");function Ct(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(Ct,"createHostState");function be(e){return e instanceof Error?e:new Error(String(e))}i(be,"normalizeHostError");async function ba(e){let n=e.profile??"default",t=nm(e.homeDir),r=zr.resolve(e.configHome??zr.join(t,".kodax")),o=pn(r,n);St(o);let a=e.endpoint??vn(n,fn(t,r)),d={runtimeId:`rt_${Zl().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon"},u=await _r(o,d,e.healthCheck);if(u.kind==="attach"){let p=Ve(u.state);return Ea(o,p,e.connectTimeoutMs)}if(u.kind==="wait")return tm(o,a,d,{...e,profile:n});if(u.kind==="unhealthy")throw new Error(`Runtime daemon is ${u.health}; refusing to take ownership.`);return Pa(o,a,d,u.lock,e)}i(ba,"acquireRuntimeDaemonLease");function nm(e){return zr.resolve(e??em.homedir())}i(nm,"resolveRuntimeDaemonHomeDir");async function tm(e,n,t,r){let o=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=o;){let a=await _r(e,t,r.healthCheck);if(a.kind==="attach")return Ea(e,Ve(a.state),r.connectTimeoutMs);if(a.kind==="claim")return Pa(e,n,t,a.lock,r);if(a.kind==="unhealthy")throw new Error(`Runtime daemon is ${a.health}; refusing to take ownership.`);await im(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}i(tm,"waitForDaemonLease");async function Pa(e,n,t,r,o){let a,d=!1;try{if(a=await o.createRuntime(t.runtimeId),a.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");d=!0;let u=await Ia({runtime:a,paths:e,endpoint:n,lock:r,...o.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{}});try{let p=await Oe(n,{connectTimeoutMs:o.connectTimeoutMs});return rm(e,n,p,u)}catch(p){throw await u.close(),p}}catch(u){throw d||kt(r),await a?.close(),u}}i(Pa,"createClaimedDaemonLease");async function Ea(e,n,t){let r=await Oe(n,{connectTimeoutMs:t});return{transport:r,endpoint:n,paths:e,ownsHost:!1,async close(){await r.close?.()},async shutdown(){try{await r.request("runtime.shutdown")}finally{await r.close?.()}}}}i(Ea,"createAttachedLease");function rm(e,n,t,r){r.unref();let o=!1,a=!1;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,async close(){o||(o=!0,await t.close?.())},async shutdown(){a||(a=!0,await r.close())}}}i(rm,"createOwnedLease");function im(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}i(im,"delay");import{spawn as om}from"node:child_process";import{existsSync as sm}from"node:fs";import{fileURLToPath as am}from"node:url";import dm from"node:os";import Pe from"node:path";var xa=1e3,kn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function Ta(e){let n=e.profile??"default",t=Pe.resolve(e.homeDir??dm.homedir()),r=Pe.resolve(e.configHome??Pe.join(t,".kodax")),o=pn(r,n);St(o);let a=vn(o.profile,fn(t,r));if(e.endpoint&&e.endpoint.path!==a.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let d=await Pt(o,e.healthCheck),u=Hn(d);if(u==="healthy"&&d.state)return Da(o,Ve(d.state),!1,e);if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let p=await pm({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs}),w=await um(o,e,p),l=Ve(w.state);return Da(o,l,w.state.pid===p.pid,e)}i(Ta,"acquireRuntimeDaemonProcessLease");async function Da(e,n,t,r){let o=await Oe(n,{connectTimeoutMs:r.connectTimeoutMs});return{transport:o,endpoint:n,paths:e,ownsHost:t,async close(){await o.close?.()},async shutdown(){try{await o.request("runtime.shutdown")}finally{await o.close?.()}}}}i(Da,"connectProcessLease");async function um(e,n,t,r=Pt){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let a=await cm(e,n,t,r),d=Hn(a);if(d==="healthy"&&a.state)return a.state.pid===t.pid?t.unref():await t.terminate(),{...a,state:a.state};if(d==="mismatch")throw new kn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=o-Date.now();if(u<=0)throw mm(e);await lm(Math.min(Math.max(1,n.pollIntervalMs??100),u),e,t,n.startupSignal)}}catch(a){try{await t.terminate()}catch(d){throw new AggregateError([a,d],"Runtime daemon startup failed and its child process could not be reclaimed.")}throw a}}i(um,"waitForHealthyDaemonStartup");async function cm(e,n,t,r){let o=await Wn(Promise.race([r(e,n.healthCheck).then(a=>({kind:"health",observation:a})),t.exit.then(a=>({kind:"exit",exit:a}))]),n.startupSignal);if(o.kind==="exit"){if(Gr(e,t))return r(e,n.healthCheck);if(o.exit.code===0&&o.exit.signal===null){let a=Math.min(xa,n.startupTimeoutMs??xa),d=Date.now()+a;for(;Date.now()<=d;){let u=await Wn(r(e,n.healthCheck),n.startupSignal);if(Hn(u)!=="missing"||Gr(e,t))return u;await Wn(Jr(Math.min(n.pollIntervalMs??100,Math.max(1,d-Date.now()))),n.startupSignal)}}throw Ca(o.exit)}return o.observation}i(cm,"observeStartupHealth");async function lm(e,n,t,r){let o=await Wn(Promise.race([Jr(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(Gr(n,t)){await Wn(Jr(e),r);return}throw Ca(o)}}i(lm,"waitForStartupPoll");function Gr(e,n){let t=Z(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(Gr,"hasCompetingStartupOwner");function Ca(e){let n=e.signal!==null?`signal ${e.signal}`:`code ${e.code??"unknown"}`;return new kn(`Runtime daemon child exited before becoming healthy (${n}).`,"child_exit")}i(Ca,"runtimeDaemonExitedEarly");function mm(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new kn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n}`,"timeout")}i(mm,"runtimeDaemonStartupTimeout");async function pm(e){let n=wm();Rm(n);let t=[...n!==void 0?hm(process.execArgv,n.endsWith(".ts")):[],...n!==void 0?[n]:[],"daemon","serve","--profile",e.profile,"--home",e.homeDir,"--config-home",e.configHome];e.defaultProvider!==void 0&&t.push("--provider",e.defaultProvider),e.defaultModel!==void 0&&t.push("--model",e.defaultModel),e.sessionsDir!==void 0&&t.push("--sessions-dir",e.sessionsDir),e.permissionTimeoutMs!==void 0&&t.push("--permission-timeout-ms",String(e.permissionTimeoutMs));let r=An({args:t,env:ym({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=om(process.execPath,r.args,{detached:!0,stdio:"ignore",windowsHide:!0,env:r.env}),a=new Promise(d=>{o.once("exit",(u,p)=>d({code:u,signal:p}))});return await new Promise((d,u)=>{o.once("spawn",d),o.once("error",u)}),fm(o,a)}i(pm,"spawnRuntimeDaemonServeProcess");function fm(e,n){return{pid:e.pid,exit:n,unref(){e.unref()},async terminate(){if(!(e.exitCode!==null||e.signalCode!==null)&&(await Ii(e),!await gm(n,1e3)))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}i(fm,"createRuntimeDaemonStartupProcess");async function gm(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(gm,"didExitWithin");function Rm(e){if(e!==void 0&&!sm(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(Rm,"assertRuntimeDaemonCliEntryAvailable");function ym(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Pe.join(e.homeDir,".kodax")};return delete n[tt],n}i(ym,"createRuntimeDaemonServeEnvironment");function wm(){if(process.env.KODAX_BUNDLED==="true")return;let e=am(import.meta.url);if(e.endsWith(".ts"))return Pe.resolve(Pe.dirname(e),"..","kodax_cli.ts");let n=Pe.dirname(e),t=Pe.basename(n)==="chunks"?Pe.dirname(n):n;return Pe.join(t,"kodax_cli.js")}i(wm,"resolveDaemonCliEntry");function hm(e,n){let t=[];for(let r=0;r<e.length;r+=1){let o=e[r]??"",a=o.toLowerCase();if(a==="--require"||a==="-r"){let d=e[r+1];d!==void 0&&(Ma(d)&&t.push(o,d),r+=1)}else if(a.startsWith("--require=")){let d=o.slice(10);Ma(d)&&t.push(o)}else(a.startsWith("--max-old-space-size")||a==="--enable-source-maps")&&t.push(o)}return n&&t.push("--import","tsx"),t}i(hm,"daemonServeExecArgv");function Ma(e){return Pe.resolve(e)===Pe.resolve("scripts","production-env.cjs")}i(Ma,"isKodaXProductionEnvPreload");function Jr(e){return new Promise(n=>setTimeout(n,e))}i(Jr,"delay");async function Wn(e,n){if(!n)return e;if(n.aborted)throw Aa();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(Aa()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(Wn,"raceRuntimeDaemonStartupStep");function Aa(){return new kn("Runtime daemon startup cancelled.","cancelled")}i(Aa,"runtimeDaemonStartupCancelled");import{Worker as vm}from"node:worker_threads";import{existsSync as Sm}from"node:fs";import{basename as km,dirname as Vr,join as _a}from"node:path";import{fileURLToPath as Oa,pathToFileURL as La}from"node:url";function Na(e,n={}){let t=Im(),r=new vm(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),o=new Map,a=new Set,d=0,u=!1,p=i(s=>{for(let g of o.values())g.reject(s);o.clear()},"rejectPending"),w=i(s=>{u||(u=!0,p(s),a.clear())},"markClosed");return r.on("message",s=>{if(Fn(s)){for(let v of a)v(s);return}if(!cn(s)&&!ln(s)||!s.id)return;let g=o.get(s.id);if(!g)return;if(o.delete(s.id),cn(s)){g.resolve(s.result);return}let c=new Error(s.error.message);c.code=s.error.code,s.error.data!==void 0&&(c.data=s.error.data),g.reject(c)}),r.on("error",s=>w(s)),r.on("exit",s=>w(new Error(`Runtime Worker exited with code ${s}.`))),{transport:{request(s,g,c){if(u)return Promise.reject(new Error("Runtime Worker transport is closed."));let v=`worker_${++d}`;return new Promise((f,k)=>{o.set(v,{resolve:f,reject:k});try{r.postMessage(mt(v,s,g,c))}catch(b){o.delete(v),k(b instanceof Error?b:new Error(String(b)))}})},subscribe(s){return u?{close(){}}:(a.add(s),{close:i(()=>a.delete(s),"close")})},async close(){u||(w(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){u||w(new Error("Runtime Worker terminated.")),await r.terminate()}}}i(Na,"createRuntimeWorkerTransport");function Im(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return Sm(Oa(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return La(_a(Vr(process.execPath),"runtime-worker.js"));let e=Vr(Oa(import.meta.url)),n=km(e)==="chunks"?Vr(e):e;return La(_a(n,"runtime-worker.js"))}i(Im,"resolveRuntimeWorkerUrl");var Ce=class extends Error{constructor(t,r,o){super(t,o);this.preflight=r;this.name="RuntimeDaemonCapabilityUpgradeError"}preflight;static{i(this,"RuntimeDaemonCapabilityUpgradeError")}code="daemon_capability_upgrade_required";capability="runtimeAutoModeGuardrail";recoverable=!0;restartRequired=!0},tn=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function ui(e){let n=F.resolve(e??dd.homedir());return{homeDir:n,configHome:e===void 0?F.resolve(Zt):F.join(n,".kodax")}}i(ui,"resolveRuntimeDaemonClientLocation");function xn(e,n="default"){let t=ui(e);return{...t,paths:pn(t.configHome,n)}}i(xn,"resolveRuntimeDaemonClientPaths");function fy(e={}){let{paths:n}=xn(e.homeDir,e.profile),t=`inline_${pe().replace(/-/g,"")}`,r=ls(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),o=!1;return{profile:n.profile,ownerId:t,ownerPolicy:Se(n),close(){o||(o=!0,kt(r))}}}i(fy,"acquireKodaXInlineOwner");function gy(e={}){return Se(xn(e.homeDir,e.profile).paths)}i(gy,"getKodaXRuntimeOwnerPolicy");function Ry(e={}){let{paths:n}=xn(e.homeDir,e.profile),t=Z(n.lockFile);return{profile:n.profile,policy:Se(n),ownerStatus:t!==void 0?"owned":L.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}i(Ry,"getKodaXRuntimeOwnerState");function yy(e={}){return ht(xn(e.homeDir,e.profile).paths)}i(yy,"enableKodaXDaemonOwner");function wy(e){let{paths:n}=xn(e.homeDir,e.profile);if(Z(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return us(n,e.mode,e.expectedRevision)}i(wy,"setKodaXRuntimeOwnerMode");var bm=["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"],Pm=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),Ot=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},ja=5*6e4,Lt=1e4,Nt=1e3,Fa=256*1024*1024,Em=64*1024,xm=10,ud=16*1024*1024,Dm=ud/2,Mm=128*1024,Am=8,$a=1024,Tm=new Set(["assistant.delta","thinking.delta","tool.progress","run.progress"]),cd=new Set(["tool_call","tool_describe"]),Cm=new Set(["image","file","video"]);function _m(e,n){let t=F.relative(vi(),e);return F.isAbsolute(t)||t.startsWith("..")?e:F.join(n,t)}i(_m,"rebaseAgentConfigPath");async function Om(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 Lm(e);let M=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return ld({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:M,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:M?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return Nm(e);let n={hardDispose:!1,externalAgents:e.externalAgents!==void 0,afterTurnInput:{version:1},learningCenter:{version:1},actorControlPlane:{version:1,methodNamespace:"agents"},runtimeAutoModeGuardrail:{version:3,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!0,defaultClassifierTimeoutMs:rt,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};ci(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${pe().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.73",isolation:"inline"},r=cp(e),o=ro(r?{sessionsDir:r}:void 0),a=Cp(t.profile,o,e.sharedDaemonHost===!0),d=Xp(e);Sd(d);let u=up(e),p=e.externalAgents?await Mi({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:lo(F.join(u.runtimeDir,"agents"))}):void 0,w=ip(u),l=Km(u,w),s=Sp(w,e.permissionTimeoutMs??ja,u),g=wp(w,e.permissionTimeoutMs??ja),c=Jm(),v=Bm(),f=Ym(o,p,e.externalAgents?.defaultContext),k=new Map,b=new Map,I=[...lf(u.loadRunStatuses())].sort(li);for(let M of I){let A=M.sessionOrder??(b.get(M.sessionId)??0)+1;b.set(M.sessionId,Math.max(b.get(M.sessionId)??0,A));let $=Rp({...M,acceptedAt:M.acceptedAt??M.startedAt,sessionOrder:A},w,u);k.set($.runId,gp($))}let x=!1,R=i(()=>{if(x)throw new Error("KodaX runtime is closed")},"ensureOpen"),h=Um({bus:w,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,ensureOpen:R,isClosed:i(()=>x,"isClosed"),artifacts:c,permissions:s,userInputs:g,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:u,runs:k,sessionManager:o,sessionAdmission:a,agentPlane:p,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:f,settingsOwner:l}),m=Xm(t,o,w,u,R,M=>[...k.values()].some(A=>A.sessionId===M&&nn(A.phase)),l,M=>h.list({sessionId:M}),M=>s.service.listPending({sessionId:M}),M=>h.getAutoModeStats(M),M=>{h.releaseSession(M),s.releaseSession(M)},a),S=e.homeDir?F.join(F.resolve(e.homeDir),".kodax"):Zt,P=F.join(e.homeDir?F.resolve(e.homeDir):dd.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),C=To({configHome:S,managedWorkspaceRoot:P,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:h,sessions:m,createSkillScriptRunner:i(M=>qo({...M,snapshotRoot:F.join(P,"bindings")}),"createSkillScriptRunner")}),N=Uo({rootDir:F.join(S,"learned"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[_m(Ei(process.cwd()),S)]});return{identity:t,capabilities:n,sessions:m,runs:h,events:w.service,permissions:s.service,userInputs:g.service,credentials:Cf(),hostTools:_f(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:v,learning:N,config:Wm(R,d),catalog:zm(R,d),mcp:Gm(R,d),artifacts:c.service,status:np({identity:t,permissions:s,userInputs:g,runs:k,sessionManager:o,sessionAdmission:a,workflows:v,actors:f}),diagnostics:tp(w.service),admin:ep(p),agents:Zm(p,C,f,a),async close(){x||(x=!0,h.closeAll("runtime closed"),s.rejectAll("runtime closed"),s.releaseAllSessionGrants(),g.rejectAll("runtime closed"),await f.close("runtime closed"),await p?.close(),w.close())}}}i(Om,"createKodaXRuntime");async function Lm(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?fd(e.daemonEndpoint):void 0,r=ui(e.homeDir),o=await ba({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(a=>Om({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,sharedDaemonHost:!0,daemonHostRuntimeId:a,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!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 a=await ld({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??$n(o.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),d=!1;return{...a,identity:{...a.identity,isolation:"inline"},async close(){d||(d=!0,await a.close(),o.ownsHost?await o.shutdown():await o.close())}}}catch(a){throw await o.close(),o.ownsHost&&await o.shutdown(),a}}i(Lm,"createInProcessExternalAgentDaemon");async function Nm(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=Na({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs},e.worker);try{let r=En(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=kd(r.identity);ci(r.capabilities,{...e.requirements,hardDispose:!0});let a=Rt({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:En(r.capabilities)}),d=!1;return{...a,async close(){if(!d){d=!0;try{await jm(t.transport.request("runtime.shutdown"),n)}finally{await t.terminate()}}}}}catch(r){throw await t.terminate(),r}}i(Nm,"createWorkerHostedKodaXRuntime");function ci(e,n){if(!n?.hardDispose&&!n?.externalAgents&&n?.externalAgentAdmin===void 0&&n?.a2aConfigReconciler===void 0&&n?.operationDeduplication===void 0&&n?.sessionObservation===void 0&&n?.afterTurnInput===void 0&&n?.learningCenter===void 0&&n?.interruptInput===void 0&&n?.askUserTransport===void 0&&n?.permissionCas===void 0&&n?.providerCredentialBroker===void 0&&n?.runBoundHostTools===void 0&&n?.coderOwnerFencing===void 0&&n?.crashOutcomeModel===void 0&&n?.coderFeatureMatrix===void 0&&n?.sessionAdmission===void 0&&n?.completeObservationSnapshot===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.daemonManagement===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=En(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&&Ha(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["interruptInput",n.interruptInput],["askUserTransport",n.askUserTransport],["permissionCas",n.permissionCas],["providerCredentialBroker",n.providerCredentialBroker],["runBoundHostTools",n.runBoundHostTools],["coderOwnerFencing",n.coderOwnerFencing],["crashOutcomeModel",n.crashOutcomeModel],["coderFeatureMatrix",n.coderFeatureMatrix],["sessionAdmission",n.sessionAdmission],["completeObservationSnapshot",n.completeObservationSnapshot],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["daemonManagement",n.daemonManagement],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,a]of r)a!==void 0&&Ha(t,o,a)}i(ci,"assertRuntimeCapabilities");function Ha(e,n,t){let r=e[n];if(!W(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}i(Ha,"assertVersionedRuntimeCapability");async function jm(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(jm,"settleWithin");async function ld(e={}){return pd(e,!0)}i(ld,"connectKodaXRuntime");function md(e,n,t){let r=e[n];return W(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i(md,"hasVersionedRuntimeCapability");async function Fm(e){if(!md(e.capabilities,"daemonManagement",1))throw new Ce("The running daemon is too old to perform a fenced in-place upgrade. Stop it manually after all runs and pending interactions finish, then retry.");let n=Rt({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 Ce(`The running daemon needs runtimeAutoModeGuardrail v${e.requiredVersion} but cannot be replaced safely yet: ${t.preflight.blockers.join(", ")}. Finish or cancel that work and retry.`,t.preflight);await n.daemon.stopForInline({expectedRuntimeId:t.runtimeId,expectedRevision:t.revision,expectedOwnerPolicyRevision:t.ownerPolicy.revision})}catch(o){throw o instanceof Ce?o:new Ce("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:o})}finally{let o=!1;await n.close().then(()=>{o=!0}).catch(a=>{re({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:se(a)})}),o||await e.lease.close().catch(a=>{re({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:se(a)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;Z(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Ce("The legacy daemon accepted the upgrade stop but did not release its owner fence before timeout. Retry after the daemon exits.");await new Promise(o=>setTimeout(o,50))}}catch(o){try{ht(e.lease.paths)}catch(a){throw new Ce("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,a])})}throw o}try{ht(e.lease.paths)}catch(o){throw new Ce("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:o})}}i(Fm,"replaceLegacyRuntimeDaemonForGuardrailUpgrade");async function pd(e,n){qa("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),qa("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs);let t=e.endpoint!==void 0?fd(e.endpoint):void 0,r=ui(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await Ta({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,a=t??o?.endpoint??(e.transport===void 0?vn(e.profile??"default",fn(r.homeDir,r.configHome)):void 0),d=e.transport??o?.transport??(a!==void 0?await Oe(a,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!d)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=qm(e),p,w={},l,s,g=!1;try{let v={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${pe().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}:{}},f=En(await d.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:v,capabilities:{...e.capabilities,operationDeduplication:!0},...a!==void 0?{endpoint:a.path}:{}}));p=kd(f.identity),w=f.capabilities===void 0?{}:En(f.capabilities),l=typeof f.journalEpoch=="string"?f.journalEpoch:void 0,s=$m(f.grantedScopes);let k=e.autoStart===!0?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements,b=k?.runtimeAutoModeGuardrail;if(b!==void 0&&!md(w,"runtimeAutoModeGuardrail",b)){if(!n||e.autoStart!==!0||o===void 0)throw new Ce(`Runtime daemon does not support runtimeAutoModeGuardrail v${b}. Stop all daemon work and restart it with the upgraded KodaX installation.`);try{await Fm({identity:p,capabilities:w,transport:d,lease:o,...l!==void 0?{journalEpoch:l}:{},...s!==void 0?{grantedScopes:s}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredVersion:b})}finally{g=!0}return pd(e,!1)}ci(w,k);let I=e.profile??"default";if(p.profile!==I)throw new Error(`Runtime daemon profile mismatch: expected ${I}, got ${p.profile}`)}catch(v){throw g||(o!==void 0?await o.close():await d.close?.()),v}let c=Rt({identity:{...p,mode:"daemon",isolation:"process"},transport:d,capabilities:w,...l!==void 0?{journalEpoch:l}:{},...s!==void 0?{grantedScopes:s}:{}});return o?{...c,async close(){await c.close()}}:c}i(pd,"connectKodaXRuntimeInternal");function qa(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(qa,"assertPositiveRuntimeTimeout");function $m(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&Hm(t));return n.length===e.length?n:void 0}i($m,"parseRuntimeGrantedScopes");function Hm(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(Hm,"isRuntimeGrantedScope");function qm(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return $n(xn(e.homeDir,e.profile).paths)}i(qm,"resolveConnectDaemonToken");function fd(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(fd,"normalizeRuntimeDaemonEndpoint");function Km(e,n){let t=new Map,r=new Map,o=new Set,a=i((u,p)=>{let l=(r.get(u)??Promise.resolve()).then(p),s=l.then(()=>{},()=>{});return r.set(u,s),s.then(()=>{r.get(u)===s&&r.delete(u)}),l},"enqueue"),d=i((u,p,w)=>{t.set(u,p);for(let l of o)l(u,p,w);n.emit("session.settings.updated",{sessionId:u,revision:p.revision,settings:p.value,patch:w},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let p=e.loadSessionSettingsVersioned(u);return t.set(u,p),p},peek(u){return t.get(u)},update(u,p,w,l){return a(u,()=>{let s=e.loadSessionSettingsVersioned(u);if(w!==void 0&&s.revision!==w)throw pi(`Session settings revision ${w} is stale; current revision is ${s.revision}`,s.revision);let g=Np(s.value,p);l(g);let c={revision:s.revision+1,value:g};return e.saveSessionSettingsVersioned(u,c),d(u,c,p),c})},async persistAutoModeEngine(u,p){let w=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:w.revision,value:{...w.value,autoModeEngine:p}}),await a(u,()=>{let l=e.loadSessionSettingsVersioned(u);if(l.value.autoModeEngine===p){t.set(u,l);return}let s={revision:l.revision+1,value:{...l.value,autoModeEngine:p}};e.saveSessionSettingsVersioned(u,s),d(u,s,{autoModeEngine:p})})},subscribe(u){return o.add(u),{close:i(()=>{o.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}i(Km,"createRuntimeSessionSettingsOwner");function Xm(e,n,t,r,o,a,d,u,p,w,l,s){let g=new Set,c=i((f,k,b)=>({id:f,title:k.title,...k.gitRoot?{gitRoot:k.gitRoot}:{},...k.runtimeInfo?.workspaceRoot?{workspaceRoot:k.runtimeInfo.workspaceRoot}:{},...k.runtimeInfo?.surface?{surface:k.runtimeInfo.surface}:{},...k.runtimeInfo?.profileId?{profileId:k.runtimeInfo.profileId}:{},...b?{createdAt:b}:{}}),"toRuntimeSession"),v=i(async f=>{for(let k=0;k<Am;k+=1){let b=t.currentSessionSeq(f),I=await s.loadRequired(f),[x,R,h]=await Promise.all([n.loadFullTranscript(f),u(f),p(f)]),m=await d.read(f),S=t.currentSessionSeq(f);if(b===S)return{runtimeId:e.runtimeId,cursor:S,transcriptRevision:Op(x),session:c(f,I),transcript:x,settings:m,runs:R,pendingPermissions:h,live:t.projectSession(f)}}throw Af(`Session ${f} changed continuously while taking a snapshot`)},"captureObservationSnapshot");return{async create(f={}){o(),s.assertCreate(f);let k=f.sessionId??await Gt();if(g.has(k))throw Object.assign(new Error(`Session already exists: ${k}`),{code:"conflict"});g.add(k);try{if(await n.loadSession(k)!==null)throw Object.assign(new Error(`Session already exists: ${k}`),{code:"conflict"});let b=f.projectPath?F.resolve(f.projectPath):void 0,I=f.gitRoot?F.resolve(f.gitRoot):b,x=Ep(f,b,I),R={messages:[],title:f.title??"",gitRoot:I??"",...f.tag!==void 0?{tag:f.tag}:{},...x!==void 0?{runtimeInfo:x}:{},scope:"user"};await n.storage.save(k,R);let h=c(k,R,new Date().toISOString());return t.emit("session.created",h,{sessionId:k,runId:k}),h}finally{g.delete(k)}},async load(f){o();let k=await s.loadRequired(f),b=c(f,k);return t.emit("session.loaded",b,{sessionId:f,runId:f}),b},async list(f){return o(),s.assertFilter(f),(await n.listSessions(f)).filter(s.admitsSummary).map(yd)},async transcript(f){return o(),await s.loadRequired(f),n.loadFullTranscript(f)},async observe(f,k){o();let b=[],I,x=!1,R=i(m=>{if(!(x||I!==void 0&&m.seq<=I))try{k(m)}catch(S){re({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${m.type}`,detail:se(S)})}},"deliver"),h=t.service.subscribe({sessionId:f},m=>{I===void 0?b.push(m):R(m)});try{let m=await v(f);I=m.cursor;for(let S of b.splice(0).sort((P,C)=>P.seq-C.seq))R(S);return{snapshot:m,close(){x||(x=!0,b.length=0,h.close())}}}catch(m){throw x=!0,h.close(),m}},async fork(f){o();let k=await s.loadRequired(f.sessionId),b=await n.forkSession(f.sessionId,{...f.selector!==void 0?{selector:f.selector}:{},...f.newSessionId!==void 0?{sessionId:f.newSessionId}:{},...f.title!==void 0?{title:f.title}:{}});if(!b){let x=f.newSessionId??await Gt(),R={...k,title:f.title??k.title,messages:k.messages.map(Lf),actorSnapshot:void 0};await n.storage.save(x,R);let h=c(x,R);return t.emit("session.created",h,{sessionId:x,runId:x}),h}let I=c(b.sessionId,b.data);return t.emit("session.created",I,{sessionId:b.sessionId,runId:b.sessionId}),I},async getSettingsVersioned(f){return o(),await s.loadRequired(f),d.read(f)},async getSettings(f){return(await this.getSettingsVersioned(f)).value},async getAutoModeStats(f){o(),await s.loadRequired(f);let k=(await d.read(f)).value;if(fe(k.permissionMode)!=="auto")return;let b=w(f);return{engine:k.autoModeEngine??b?.engine??"llm",...k.autoModeClassifierModel!==void 0?{classifierModel:k.autoModeClassifierModel}:{},denials:b?.denials??Qt(),breaker:b?.breaker??Yt()}},async updateSettings(f,k){o();let b=await s.loadRequired(f);return(await d.update(f,k,void 0,I=>oi(b,I))).value},async updateSettingsVersioned(f,k,b){o();let I=await s.loadRequired(f);return d.update(f,k,b.expectedRevision,x=>oi(I,x))},async appendNotice(f){o(),await s.loadRequired(f.sessionId);let k=await n.appendClientNotice(f.sessionId,{content:f.content,...f.source!==void 0?{source:f.source}:{}});return k&&t.emit("session.notice.appended",{sessionId:f.sessionId,entry:k},{sessionId:f.sessionId,runId:f.sessionId}),k},async rewind(f){o(),await s.loadRequired(f.sessionId),ri(f.sessionId,a);let k=await n.rewindSession(f.sessionId,{...f.selector!==void 0?{selector:f.selector}:{}});if(!k)return null;let b=c(f.sessionId,k);return t.emit("session.rewound",{sessionId:f.sessionId,selector:f.selector,session:b},{sessionId:f.sessionId,runId:f.sessionId}),b},async setActiveEntry(f){o(),await s.loadRequired(f.sessionId),ri(f.sessionId,a);let k=await n.setActiveEntry(f.sessionId,f.entryId);if(!k)return null;let b=c(f.sessionId,k);return t.emit("session.active_entry.updated",{sessionId:f.sessionId,entryId:f.entryId,session:b},{sessionId:f.sessionId,runId:f.sessionId}),b},async compact(f){o(),await s.loadRequired(f.sessionId),ri(f.sessionId,a);let k=await n.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}:{}}),b=await n.loadSession(f.sessionId),I=b?c(f.sessionId,b):void 0;return t.emit("context.compaction.finished",{sessionId:f.sessionId,compacted:k.compacted,tokensBefore:k.tokensBefore,tokensAfter:k.tokensAfter,...k.reason!==void 0?{reason:k.reason}:{}},{sessionId:f.sessionId,runId:f.sessionId}),k.compacted&&t.emit("session.compacted",{sessionId:f.sessionId,result:{compacted:k.compacted,tokensBefore:k.tokensBefore,tokensAfter:k.tokensAfter},...I!==void 0?{session:I}:{}},{sessionId:f.sessionId,runId:f.sessionId}),{...k,...I!==void 0?{session:I}:{}}},async archive(f){if(o(),await s.loadRequired(f),!await n.archiveSession(f))throw new Error(`Session not found or not archived: ${f}`)},async unarchive(f){if(o(),await s.loadRequired(f),!await n.unarchiveSession(f))throw new Error(`Session not found or not unarchived: ${f}`)},async delete(f){o(),await s.loadRequired(f);let k=await n.deleteSession(f);Of(f,k),d.release(f),l(f)}}}i(Xm,"createRuntimeSessionService");function Um(e){let n=new Map,t=new Map,r=new Map,o=new Map,a=new Map,d=new Map,u=new Map;for(let m of e.runs.values())d.set(m.sessionId,Math.max(d.get(m.sessionId)??0,m.sessionOrder));let p=i(m=>{let S=e.runs.get(m);if(!S)throw new Error(`Runtime run not found: ${m}`);return S},"getRecord"),w=i(m=>{n.get(m.sessionId)===m.runId&&n.delete(m.sessionId)},"releaseActiveRun"),l=i(m=>{t.get(m.runId)?.(),t.delete(m.runId)},"releaseActiveQueueRoute"),s=i(m=>{m.actorSession===void 0||t.has(m.runId)||t.set(m.runId,wi(yi(m.sessionId,"/root")))},"registerActiveQueueRoute"),g=i((m,S)=>{m.start?.resolve(S),m.start=void 0,delete m.providerCredential},"resolveRunStart"),c=i((m,S)=>(e.permissions.rejectForRun(m.runId,"runtime run ended"),e.userInputs.rejectForRun(m.runId,"runtime run ended"),m.start?.options.guardrails?.find(ai)?.clearAllowedCalls(),g(m,S),l(m),w(m),mf(e.runs),k(m.sessionId),S),"finishRun"),v=i((m,S,P)=>{let C=m.phase==="queued";m.phase==="queued"&&rp(a,m),m.running?.abort(new Error(S)),m.abortController?.abort(new Error(S)),e.permissions.rejectForRun(m.runId,S),e.userInputs.rejectForRun(m.runId,S),m.start?.options.guardrails?.find(ai)?.clearAllowedCalls(),Vn(e.bus,e.persistence,m,"cancelled",{code:"cancelled",effectOutcome:C?"none":"unknown",message:S});let N={runId:m.runId,sessionId:m.sessionId,phase:m.phase};return g(m,N),l(m),w(m),P&&!e.isClosed()&&k(m.sessionId),N},"cancelRun"),f=i(m=>{if(!m.start||e.isClosed()){v(m,"runtime closed",!1);return}m.phase="running",m.queuedAt=void 0,m.runningAt=new Date().toISOString(),n.set(m.sessionId,m.runId),bn(e.bus,e.persistence,m,we(m)),e.bus.emit("run.started",we(m),{sessionId:m.sessionId,runId:m.runId});let S=Pp({bus:e.bus,original:m.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:m}),P=Vm({agentPlane:e.agentPlane,events:S,model:m.model,options:m.start.options,provider:m.provider,record:m,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:m.sessionId,runId:m.runId,provider:m.provider,...m.model!==void 0?{model:m.model}:{},...P.effort!==void 0?{effort:P.effort}:{},...P.thinking!==void 0?{thinking:P.thinking}:{},...P.reasoningMode!==void 0?{reasoningMode:P.reasoningMode}:{},...P.agentMode!==void 0?{agentMode:P.agentMode}:{},...m.permissionMode!==void 0?{permissionMode:m.permissionMode}:{},...m.autoModeEngine!==void 0?{autoModeEngine:m.autoModeEngine}:{},...m.autoModeClassifierModel!==void 0?{autoModeClassifierModel:m.autoModeClassifierModel}:{},...m.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:m.autoModeTimeoutMs}:{},...m.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:m.autoModeSpeculativeWindowMs}:{},...P.context?.executionCwd!==void 0?{executionCwd:P.context.executionCwd}:{}},{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}}),m.mode==="managed_task"){let D=new AbortController;m.abortController=D;let M=P.abortSignal;M?.aborted?D.abort(M.reason):M?.addEventListener("abort",()=>{D.abort(M.reason)},{once:!0});let A=i(()=>Oi({...P,abortSignal:D.signal},m.start.prompt),"managedOperation"),$=m.providerCredential!==void 0?Ut(m.provider,m.providerCredential,A):A();s(m),$.then(q=>{let V=m.terminalEmitted?m.phase:q.interrupted?"interrupted":q.success?"completed":"failed";return Vn(e.bus,e.persistence,m,V),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:q}}).catch(q=>{let V=td(q,m),ce=nd(q),xe=m.terminalEmitted?m.phase:ce.phase;return m.terminalEmitted||(m.error=V.message),Vn(e.bus,e.persistence,m,xe,ce.terminal),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,error:V}}).then(q=>c(m,q));return}let C=i(()=>_i(P,m.start.prompt),"codingOperation"),N=m.providerCredential!==void 0?Ut(m.provider,m.providerCredential,C):C();m.running=N,s(m),N.result.then(D=>{let M=m.terminalEmitted?m.phase:D.interrupted?"interrupted":D.success?"completed":"failed";return Vn(e.bus,e.persistence,m,M),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:D}}).catch(D=>{let M=td(D,m),A=nd(D),$=m.terminalEmitted?m.phase:A.phase;return m.terminalEmitted||(m.error=M.message),Vn(e.bus,e.persistence,m,$,A.terminal),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,error:M}}).then(D=>c(m,D))},"startRecord"),k=i(m=>{let S=a.get(m);if(!S||S.length===0||n.has(m))return;let P=S.shift();if(S.length===0&&a.delete(m),!P)return;let C=e.runs.get(P);if(!C||C.phase!=="queued"){k(m);return}f(C)},"drainNext"),b=i(m=>{let S=a.get(m.sessionId)??[];S.push(m.runId),a.set(m.sessionId,S),bn(e.bus,e.persistence,m,we(m)),e.bus.emit("run.queued",we(m),{sessionId:m.sessionId,runId:m.runId})},"enqueue"),I=i(m=>{let S=we(m);bn(e.bus,e.persistence,m,S),e.bus.emit("run.updated",S,{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}})},"publishRunUpdate"),x=e.settingsOwner.subscribe((m,S)=>{for(let P of e.runs.values())P.sessionId!==m||P.phase!=="queued"&&!nn(P.phase)||(P.permissionMode=S.value.permissionMode,P.autoModeEngine=fe(S.value.permissionMode)==="auto"?S.value.autoModeEngine??"llm":S.value.autoModeEngine,P.autoModeClassifierModel=S.value.autoModeClassifierModel,P.autoModeTimeoutMs=S.value.autoModeTimeoutMs,P.autoModeSpeculativeWindowMs=S.value.autoModeSpeculativeWindowMs,I(P))}),R=i(async m=>{e.ensureOpen();let S=xp(m,e.artifacts),P=await e.sessionAdmission.loadRequired(m.sessionId),C=(await e.settingsOwner.read(m.sessionId)).value;oi(P,C);let N=Tp(m.options??{},C,S.inputArtifacts,P),D=N.agentMode==="sa"?void 0:await e.actorRegistry.forSession(m.sessionId,N.maxConcurrentThreadsPerSession),M=N.provider??e.defaultProvider;if(!M)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let A=m;if(A.providerCredential!==void 0&&A.providerCredentialProvider!==void 0&&A.providerCredentialProvider!==M)throw Tf(`Credential lease is bound to ${A.providerCredentialProvider}, not ${M}.`);let $=N.modelOverride??N.model??e.defaultModel,q=m.trustedRunId??uf();if(e.runs.has(q))throw pi(`Runtime run already exists: ${q}`,0);let V=e.enableSharedInteractions||fe(C.permissionMode)==="auto";if($p(C,$),V&&N.guardrails?.some(De=>De.kind==="tool"&&De.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let ce=V?If({sessionId:m.sessionId,provider:M,model:$,options:N,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let De=n.get(m.sessionId);return De===void 0?void 0:e.runs.get(De)},"getRecord"),onEngineChange:i(De=>{for(let Le of e.runs.values())Le.sessionId===m.sessionId&&(Le.phase==="queued"||nn(Le.phase))&&Le.autoModeEngine!==De&&(Le.autoModeEngine=De,I(Le));e.settingsOwner.persistAutoModeEngine(m.sessionId,De).catch(Le=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${se(Le).message}`},{sessionId:m.sessionId,runId:m.sessionId})})},"onEngineChange")}):void 0;await ce?.prepare?.();let xe=ce===void 0?N:{...N,guardrails:[...N.guardrails??[],ce]},Dn=new Date().toISOString(),rn=i(()=>{},"resolveResult"),fi=new Promise(De=>{rn=De}),Mn=m.requiredAfterRunId,on=Mn===void 0?void 0:p(Mn);if(on!==void 0){if(on.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${Mn} does not belong to session ${m.sessionId}`);if(!nn(on.phase)&&on.phase!=="queued")throw new Ot(on.runId)}let gi=(d.get(m.sessionId)??0)+1;d.set(m.sessionId,gi);let Xt=on!==void 0||n.has(m.sessionId),Zn={runId:q,sessionId:m.sessionId,phase:Xt?"queued":"running",startedAt:Dn,sessionOrder:gi,...Xt?{queuedAt:Dn}:{},provider:M,...$!==void 0?{model:$}:{},...m.permissionBroker!==void 0?{permissionBroker:m.permissionBroker}:{},...C.permissionMode!==void 0?{permissionMode:C.permissionMode}:{},...C.autoModeClassifierModel!==void 0?{autoModeClassifierModel:C.autoModeClassifierModel}:{},...C.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:C.autoModeTimeoutMs}:{},...C.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:C.autoModeSpeculativeWindowMs}:{},...fe(C.permissionMode)==="auto"?{autoModeEngine:C.autoModeEngine??"llm"}:C.autoModeEngine!==void 0?{autoModeEngine:C.autoModeEngine}:{},...N.reasoningMode!==void 0?{reasoning:N.reasoningMode}:{},mode:m.mode??"coding",...m.providerCredential!==void 0?{providerCredential:m.providerCredential}:{},hadProviderCredential:m.providerCredential!==void 0,...m.origin!==void 0?{origin:m.origin}:{},...Mn!==void 0?{continuation:{inputId:q,afterRunId:Mn,delivery:"after_turn",contentPreview:Lp(S.prompt)}}:{},...m.agentContext??e.defaultAgentContext?{agentContext:m.agentContext??e.defaultAgentContext}:{},...D?{actorSession:D}:{},result:fi,start:{prompt:S.prompt,inputArtifacts:S.inputArtifacts,options:xe,resolve:rn},terminalEmitted:!1};return e.runs.set(q,Zn),Xt?b(Zn):f(Zn),{runId:q,sessionId:m.sessionId,get turnId(){return Zn.turnId},result:fi}},"startRun"),h=i(m=>{let P=(u.get(m.sessionId)??Promise.resolve()).then(()=>R(m)),C=P.then(()=>{},()=>{});return u.set(m.sessionId,C),C.then(()=>{u.get(m.sessionId)===C&&u.delete(m.sessionId)}),P},"start");return{start:h,async submitInput(m){e.ensureOpen(),await e.sessionAdmission.loadRequired(m.sessionId);let S=p(m.afterRunId);if(S.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${m.afterRunId} does not belong to session ${m.sessionId}`);if(!nn(S.phase)&&S.phase!=="queued")return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(m.delivery==="interrupt")return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"unsupported_capability"};let P=m,C;try{C=await h({sessionId:m.sessionId,input:m.input,...P.options!==void 0?{options:P.options}:{},...P.providerCredential!==void 0?{providerCredential:P.providerCredential}:{},...P.providerCredentialProvider!==void 0?{providerCredentialProvider:P.providerCredentialProvider}:{},...P.origin!==void 0?{origin:P.origin}:{},...P.trustedRunId!==void 0?{trustedRunId:P.trustedRunId}:{},requiredAfterRunId:m.afterRunId})}catch(D){if(!(D instanceof Ot))throw D;return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"}}let N=p(C.runId).sessionOrder;return{accepted:!0,delivery:m.delivery,runId:C.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:N}},async await(m){e.ensureOpen();let S=e.runs.get(m);if(S)return await e.sessionAdmission.assertRunAccess(S.sessionId),S.result;let P=e.persistence.loadRunStatus(m);if(P)return await e.sessionAdmission.assertRunAccess(P.sessionId),Id(P);throw new Error(`Runtime run not found: ${m}`)},async get(m){e.ensureOpen();let S=e.runs.get(m);if(S)return await e.sessionAdmission.assertRunAccess(S.sessionId),we(S);let P=e.persistence.loadRunStatus(m);if(P)return await e.sessionAdmission.assertRunAccess(P.sessionId),P;throw new Error(`Runtime run not found: ${m}`)},async list(m){e.ensureOpen(),m?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(m.sessionId);let S=[...e.runs.values()].filter(P=>pf(P,m)).map(we);return ii(S,e.sessionAdmission)},async abort(m){e.ensureOpen();let S=p(m);await e.sessionAdmission.assertRunAccess(S.sessionId),(S.phase==="queued"||nn(S.phase))&&v(S,"runtime run aborted",!0)},async setModel(m,S){e.ensureOpen();let P=p(m);await e.sessionAdmission.assertRunAccess(P.sessionId),P.model=S,P.running?.setModel(S),I(P)},async setProvider(m,S){e.ensureOpen();let P=p(m);await e.sessionAdmission.assertRunAccess(P.sessionId),P.provider=S,P.running?.setProvider(S),I(P)},async setReasoning(m,S){e.ensureOpen();let P=p(m);await e.sessionAdmission.assertRunAccess(P.sessionId),P.reasoning=S,P.running?.setReasoning(S),I(P)},closeAll(m){x.close();for(let S of e.runs.values())(S.phase==="queued"||nn(S.phase))&&v(S,m,!1);n.clear(),r.clear(),o.clear(),a.clear()},releaseSession(m){for(let S of r.get(m)?.values()??[])S.guardrail.clearAllowedCalls();r.delete(m),o.delete(m)},getAutoModeStats(m){let S=o.get(m);return S===void 0?void 0:{engine:S.engine,denials:S.denials,breaker:S.breaker}}}}i(Um,"createRuntimeRunService");function Bm(){let e=xi();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&&gf(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(Bm,"createRuntimeWorkflowService");function Wm(e,n){return{async read(){return e(),In(Ee(n))},async patch(t){return e(),qp(t,"runtime.config.patch"),Up(n,Kp(t)),In(Ee(n))},async reload(){return e(),n!==void 0?(Sd(n),{ok:!0,config:In(Ee(n))}):{ok:!0,config:In(qi())}}}}i(Wm,"createRuntimeConfigService");function zm(e,n){return{async providers(){return e(),er()},async models(t){return e(),ef(er(),t)},async commands(t){return e(),ed(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return ed(t.projectRoot).find(o=>o.name.trim().toLowerCase()===r||(o.aliases??[]).some(a=>a.trim().toLowerCase()===r))??null},async skills(t){e();let r=await Bt(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(sf)},async describeSkill(t){e();let r=await Bt(t.projectRoot);return r.has(t.name)?af(await r.loadFull(t.name)):null},async customProviders(){return e(),Bp(n)},async upsertCustomProvider(t){return e(),Wp(n,t)},async deleteCustomProvider(t){return e(),zp(n,t)},async extensions(){e();let t=sn();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=sn();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(zm,"createRuntimeCatalogService");function Gm(e,n){return{async listServers(){return e(),ti(n)},async getServer(t){return e(),Jp(n,t)},async validateServer(t,r){e();try{return nr(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(),Vp(n,t,r)},async deleteServer(t){return e(),Qp(n,t)},async reloadServers(){e();let t=zt(ti(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=ti(n),o=t?.server!==void 0?[t.server]:Object.keys(r),a=zt(r);try{let d=[];for(let u of o)d.push(await a.listTools(u,{forceRefresh:t?.forceRefresh===!0}));return d}finally{await a.dispose()}}}}i(Gm,"createRuntimeMcpService");function Jm(){let e=new Map;return{service:{async create(r){if(!Ap(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=F.resolve(r.path),a;try{a=await L.promises.stat(o)}catch(p){throw new Error(`Runtime artifact path is not readable: ${o}`,{cause:p})}if(!a.isFile())throw new Error(`Runtime artifact path must be a regular file: ${o}`);if(a.size>Fa)throw new Error(`Runtime artifact exceeds the ${Fa}-byte limit: ${o}`);let d=`art_${pe().replace(/-/g,"").slice(0,12)}`,u={id:d,kind:r.kind,path:o,sizeBytes:a.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(d,u),u},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:i(r=>{let o=e.get(r);if(!o)throw new Error(`Runtime artifact not found: ${r}`);return o},"resolve")}}i(Jm,"createRuntimeArtifactStore");function Vm(e){let{agentPlane:n,events:t,model:r,options:o,provider:a,record:d,sessionManager:u}=e,p=o.events?.exitPlanMode===void 0,w=p||d.actorSession!==void 0||!!(n&&d.agentContext);return{...o,provider:a,...r!==void 0?{modelOverride:r}:{},session:{...o.session??{},id:d.sessionId,storage:u.storage},events:t,...w?{context:{...o.context??{},...p?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...d.actorSession?{actorSession:d.actorSession}:{},...n&&d.agentContext?{agentExecutorPlane:{plane:n,context:d.agentContext}}:{}}}:{}}}i(Vm,"buildRunOptions");function _t(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i(_t,"assertRuntimeAgentContext");function Qm(e,n){let t=[],r=new Set(e.skills);for(let a of n.requiredSkills??[])r.has(a)||t.push(`required skill is unavailable: ${a}`);let o=n.requiredCapabilities;if(o)for(let a of["streaming","durableTasks","inputRequired","cancellation","artifacts"])o[a]===!0&&e.capabilities[a]!=="supported"&&t.push(`required capability ${a} is ${e.capabilities[a]}`);return t}i(Qm,"localAgentReasons");function Qr(e){return _t(e),Tn(e).map(n=>{let t=Qm(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(Qr,"runtimeLocalListings");function Ym(e,n,t){let r=new Map,o=i((a,d)=>{let u=r.get(a);if(u)return u.then(w=>{let l=w.rootControl().list().maxConcurrentThreads;if(d!==void 0&&d!==l)throw new Error(`Actor concurrency for ${a} is already ${l}; cannot change it to ${d}.`);return w});let p=(async()=>{let w=await e.storage.load(a);if(!w)throw new Error(`Session not found: ${a}`);let l=w.actorSnapshot?.maxConcurrentThreads;if(l!==void 0&&d!==void 0&&l!==d)throw new Error(`Persisted Actor concurrency for ${a} is ${l}; requested ${d}.`);let s={async load(){return(await e.storage.load(a))?.actorSnapshot},save(c,v){return e.storage.saveActorSnapshot(a,c,v)}},g=new Ti({sessionId:a,store:s,maxConcurrentThreadsPerSession:d??l,...n?{executor:Ci({plane:n,context:t??{actorId:`runtime:${a}`}})}:{}});return await g.initialize(),g})();return r.set(a,p),p.catch(()=>r.delete(a)),p},"forSession");return{forSession:o,async root(a){return(await o(a)).rootControl()},async activeTurns(a){return(await Promise.all(a.map(async u=>({sessionId:u,root:(await o(u)).rootControl()})))).flatMap(({sessionId:u,root:p})=>p.list().actors.flatMap(w=>w.currentTurnId&&w.path!=="/root"?[{sessionId:u,actorPath:w.path,turnId:w.currentTurnId,kind:w.kind}]:[]))},async close(a){let d=await Promise.allSettled([...r.values()]);await Promise.all(d.flatMap(u=>u.status==="fulfilled"?[u.value.close(a)]:[])),r.clear()}}}i(Ym,"createRuntimeAgentActorRegistry");function Zm(e,n,t,r){return{execution:n,enabled:e!==void 0,async listDispatchable(o){_t(o);let a=Tn(o);return e?e.listDispatchable(o,a):Qr(o)},async describe(o,a){_t(a);let d=Tn(a);return e?e.describe(o,a,d):Qr(a).find(u=>u.descriptor.agentId===o)},async preflight(o){_t(o.query);let a=Tn(o.query);if(e)return e.preflight(o,a);let d=Qr(o.query).find(p=>p.descriptor.agentId===o.agentId),u=d?[]:["agent is not dispatchable"];return d&&o.expectedConfigurationRevision!==void 0&&d.descriptor.configurationRevision!==o.expectedConfigurationRevision&&u.push("configuration revision changed"),{ok:d!==void 0&&u.length===0,...d?{descriptor:d.descriptor}:{},dispatchability:d?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:u},reasons:u}},async tree(o){return await r.loadRequired(o),(await t.root(o)).list()},async detail(o,a){return await r.loadRequired(o),(await t.root(o)).get(a)},async spawn(o,a){return await r.loadRequired(o),(await t.root(o)).spawn(a)},async send(o,a,d,u){await r.loadRequired(o),await(await t.root(o)).send(a,d,u)},async followup(o,a,d,u){return await r.loadRequired(o),(await t.root(o)).followup(a,d,void 0,u)},async interrupt(o,a,d){await r.loadRequired(o),await(await t.root(o)).interrupt(a,d)},async output(o,a,d){return await r.loadRequired(o),(await t.root(o)).output(a,d)},async events(o,a){return await r.loadRequired(o),(await t.root(o)).eventSnapshot(a)},async wait(o,a,d){return await r.loadRequired(o),(await t.root(o)).wait(a,d)}}}i(Zm,"createRuntimeAgentService");function Yr(){return new Error("Runtime external agent executor plane is not enabled.")}i(Yr,"externalAgentsDisabled");function ep(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw Yr()},async setEnabled(){throw Yr()},async remove(){throw Yr()}}}}i(ep,"createRuntimeAdminService");function np(e){return{async snapshot(){let n=await ii([...e.runs.values()].map(we),e.sessionAdmission);return{runtimeId:e.identity.runtimeId,mode:e.identity.mode,profile:e.identity.profile,startedAt:e.identity.startedAt,sessions:(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(yd),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await ii([...e.runs.values()].map(we),e.sessionAdmission),t=n.filter(l=>l.phase==="running"||l.phase==="waiting_permission"||l.phase==="waiting_user_input"),r=n.filter(l=>l.phase==="queued"),o=(await e.workflows.list({})).filter(l=>l.status!=="completed"&&l.status!=="failed"&&l.status!=="denied"&&l.status!=="stopped"),a=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(l=>l.id),d=await e.actors.activeTurns(a),u=await e.permissions.service.listPending(),p=await e.userInputs.service.listPending(),w=[];return t.length>0&&w.push("active_runs"),r.length>0&&w.push("queued_runs"),o.length>0&&w.push("active_workflows"),d.length>0&&w.push("active_agent_turns"),d.length>0&&w.push("active_agent_tasks"),(u.length>0||p.length>0)&&w.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:o,activeAgentTurns:d,activeAgentTasks:d,pendingPermissions:u,pendingUserInputs:p,blockers:w,canStop:w.length===0}}}}i(np,"createRuntimeStatusService");function tp(e){return{latestContextBudget(n){return Ka(e,"context.budget.snapshot",n)},latestToolExposure(n){return Ka(e,"tool.exposure.planned",n)}}}i(tp,"createRuntimeDiagnosticsService");async function Ka(e,n,t){let r={type:n,limit:100,...t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return(await e.replay(r)).at(-1)?.payload??null}i(Ka,"latestRuntimeDiagnosticPayload");function nn(e){return e==="running"||e==="waiting_permission"||e==="waiting_user_input"}i(nn,"isActiveRunPhase");function rp(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(rp,"removeQueuedRun");function ip(e){let n=!1,t=[],r=new Map,o=new Map,a=new Set,d=i((s,g)=>g?!(g.sessionId!==void 0&&s.sessionId!==g.sessionId||g.runId!==void 0&&s.runId!==g.runId||g.type!==void 0&&!(Array.isArray(g.type)?g.type:[g.type]).includes(s.type)):!0,"matches"),u=i(s=>{t.push(s),t.length>Lt&&t.splice(0,t.length-Lt)},"remember"),p=i((s,g,c)=>{let v=e.nextEventSeq();return{id:`evt_${v}_${pe().replace(/-/g,"").slice(0,8)}`,seq:v,time:new Date().toISOString(),sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{},type:s,payload:g}},"createEvent"),w=i(s=>{for(let g of[...a])if(d(s,g.filter))try{g.listener(s)}catch(c){re({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${s.type}`,detail:{eventId:s.id,error:se(c)}})}},"notify");return{service:{subscribe(s,g){if(n)throw new Error("KodaX runtime event bus is closed");let c={filter:s,listener:g};return a.add(c),{close(){a.delete(c)}}},async replay(s){let g=e.replay(s),c=new Map;for(let f of g)c.set(f.id,f);for(let f of t)c.set(f.id,f);let v=[...c.values()].filter(f=>d(f,s)&&(s?.sinceSeq===void 0||f.seq>s.sinceSeq)).sort((f,k)=>f.seq-k.seq||f.time.localeCompare(k.time));return s?.limit===void 0?v:v.slice(-s.limit)}},emit(s,g,c){let v=p(s,g,c);o.set(v.sessionId,v.seq);let f=r.get(v.sessionId)??Xa();r.set(v.sessionId,f),op(f,v),u(v);let k=[v];try{e.appendEvent(v)}catch(b){let I=p("runtime.warning",{message:se(b).message,sourceEventId:v.id},c);u(I),k.push(I)}for(let b of k)w(b);return v},projectSession(s){let g=r.get(s);return Ua(g===void 0?Xa():g)},currentSessionSeq(s){let g=o.get(s);if(g!==void 0)return g;let c=ap(e.replay({sessionId:s}));return o.set(s,c),c},close(){n=!0;try{e.close()}catch(s){re({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:s})}a.clear(),r.clear(),o.clear()}}}i(ip,"createRuntimeEventBus");function Xa(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(Xa,"createRuntimeSessionLiveProjectionState");function op(e,n){let t=W(n.payload)?n.payload:void 0;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=Zr(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=Zr(n),o=e.activeTools.get(r)??dp(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.finished"){let r=Zr(n);if(!e.activeTools.delete(r))for(let[o,a]of e.activeTools)a.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=sp(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(gd(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(op,"applyRuntimeSessionEvent");function Ua(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(Ua,"snapshotRuntimeSessionLiveProjection");function sp(e){if(!(!W(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(sp,"parseRuntimeManagedTaskStatus");function ap(e){return e.at(-1)?.seq??0}i(ap,"latestRuntimeEventSeq");function Zr(e){let n=W(e.payload)?e.payload:void 0,t=W(n?.meta)?n.meta:void 0,r=W(n?.tool)?n.tool:void 0,o=W(n?.update)?n.update:void 0,a=W(n?.result)?n.result:void 0,d=t?.toolCallId??t?.toolUseId??r?.id??o?.id??a?.id??a?.toolCallId;return typeof d=="string"&&d.length>0?`${e.runId}:${d}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}i(Zr,"runtimeToolProjectionKey");function dp(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(dp,"latestActiveToolForRun");function gd(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(gd,"isTerminalRuntimeEvent");function up(e){let n=e.homeDir?F.resolve(e.homeDir):e.sessionsDir?F.resolve(e.sessionsDir,".."):process.cwd(),t=e.sharedDaemonHost===!0?F.join(n,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):F.join(n,".kodax","runtime"),r=F.join(t,"runs"),o=F.join(t,"session-settings"),a=F.join(t,"permission-grants.json"),d=F.join(t,"event-sequence"),u=new Map,p=0,w,l,s,g=!1,c=i(D=>F.join(r,encodeURIComponent(D)),"runDir"),v=i(D=>F.join(c(D),"events.jsonl"),"eventFile"),f=i(D=>F.join(c(D),"status.json"),"statusFile"),k=i(D=>F.join(o,`${encodeURIComponent(D)}.json`),"sessionSettingsFile"),b=[],I=new Set,x=i(()=>{let D=0;if(L.existsSync(d))try{let M=Number.parseInt(L.readFileSync(d,"utf-8").trim(),10);Number.isSafeInteger(M)&&M>0&&(D=M)}catch(M){re({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:M})}if(!L.existsSync(r))return D;for(let M of L.readdirSync(r,{withFileTypes:!0})){if(!M.isDirectory())continue;let A=F.join(r,M.name,"events.jsonl");if(!L.existsSync(A))continue;let $=L.statSync(A).size,q=Math.min($,Mm),V=Buffer.allocUnsafe(q),ce=L.openSync(A,"r");try{L.readSync(ce,V,0,q,$-q)}finally{L.closeSync(ce)}let xe=V.toString("utf-8").split(/\r?\n/);q<$&&xe.shift();for(let Dn of xe)if(Dn.trim())try{let rn=JSON.parse(Dn);Ba(rn)&&Number.isSafeInteger(rn.seq)&&(D=Math.max(D,rn.seq))}catch{}}return D},"findMaxPersistedEventSeq"),R=i(()=>{s===void 0&&(s=x()+1);let D=s;return s+=1,g=!0,D},"allocateEventSeq"),h=i((D,M,A)=>{if(I.has(D))return;I.add(D);let $=R(),q={id:`evt_persist_warn_${$}_${pe().replace(/-/g,"").slice(0,8)}`,seq:$,time:new Date().toISOString(),sessionId:A.sessionId??"runtime",runId:A.runId??A.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:M,...A.file!==void 0?{file:A.file}:{}}};b.push(q),b.length>Lt&&b.splice(0,b.length-Lt)},"pushPersistenceWarning"),m=i((D,M)=>[...D,...b].filter(A=>lp(A,M)).sort((A,$)=>A.seq-$.seq||A.time.localeCompare($.time)),"withPersistenceWarnings"),S=i((D,M)=>{if(!L.existsSync(D))return[];let A=L.readFileSync(D,"utf-8"),$=[],q=A.split(/\r?\n/);for(let V=0;V<q.length;V+=1){let ce=q[V]??"";if(ce.trim())try{let xe=JSON.parse(ce);Ba(xe)?$.push(xe):h(`${D}:${V+1}:shape`,`Skipped malformed runtime event record at ${F.basename(D)}:${V+1}`,{runId:M,file:D})}catch(xe){h(`${D}:${V+1}:parse`,`Skipped malformed runtime event record at ${F.basename(D)}:${V+1}: ${se(xe).message}`,{runId:M,file:D})}}return $},"readEventsFromFile"),P=i(D=>{if(L.statSync(D).size<=ud)return;let M=L.readFileSync(D,"utf-8").trimEnd().split(/\r?\n/),A=[],$=0;for(let q=M.length-1;q>=0;q-=1){let V=M[q]??"";if(!V)continue;let ce=Buffer.byteLength(V,"utf-8")+1;if(A.length>0&&$+ce>Dm)break;A.push(V),$+=ce}A.reverse(),L.writeFileSync(D,A.length>0?`${A.join(`
|
|
68
|
+
`)}
|
|
69
|
+
`:"","utf-8")},"trimEventFile"),C=i(()=>{w!==void 0&&(clearTimeout(w),w=void 0);for(let[D,M]of u){let A=M.join(""),$=Buffer.byteLength(A,"utf-8"),q=c(D),V=v(D);L.mkdirSync(q,{recursive:!0}),L.appendFileSync(V,A,"utf-8"),u.delete(D),p=Math.max(0,p-$),P(V)}g&&s!==void 0&&(L.mkdirSync(t,{recursive:!0}),L.writeFileSync(d,String(s-1),"utf-8"),g=!1),l=void 0},"flushBufferedEvents"),N=i(()=>{w===void 0&&(w=setTimeout(()=>{w=void 0;try{C()}catch(D){l=se(D),re({source:"runtime.persistence",level:"error",message:"Failed to flush buffered runtime events",detail:D})}},xm),w.unref?.())},"scheduleEventFlush");return{runtimeDir:t,appendEvent(D){let M=`${JSON.stringify(D)}
|
|
70
|
+
`,A=u.get(D.runId)??[];A.push(M),u.set(D.runId,A),p+=Buffer.byteLength(M,"utf-8");let $=l;l=void 0;try{$!==void 0||!Tm.has(D.type)||p>=Em?C():N()}catch(q){throw N(),q}if($!==void 0)throw $},close(){C()},nextEventSeq(){return R()},currentEventSeq(){return s===void 0&&(s=x()+1),s-1},replay(D){try{C()}catch(A){h(`${t}:event-flush`,`Failed to flush buffered runtime events: ${se(A).message}`,{runId:D?.runId})}if(D?.runId)return m(S(v(D.runId),D.runId),D);if(!L.existsSync(r))return m([],D);let M=[];for(let A of L.readdirSync(r,{withFileTypes:!0}))A.isDirectory()&&M.push(...S(F.join(r,A.name,"events.jsonl"),A.name));return m(M,D)},saveRunStatus(D){let M=c(D.runId);L.mkdirSync(M,{recursive:!0}),ei(f(D.runId),D)},loadRunStatus(D){let M=f(D);if(L.existsSync(M))try{let A=jt(JSON.parse(L.readFileSync(M,"utf-8")));if(A)return A;h(`${M}:shape`,`Skipped malformed runtime status record at ${F.basename(M)}`,{runId:D,file:M});return}catch(A){h(`${M}:parse`,`Skipped malformed runtime status record at ${F.basename(M)}: ${se(A).message}`,{runId:D,file:M});return}},loadRunStatuses(){if(!L.existsSync(r))return[];let D=[];for(let M of L.readdirSync(r,{withFileTypes:!0})){if(!M.isDirectory())continue;let A=F.join(r,M.name,"status.json");if(L.existsSync(A))try{let $=JSON.parse(L.readFileSync(A,"utf-8")),q=jt($);q?D.push(q):h(`${A}:shape`,`Skipped malformed runtime status record at ${F.basename(A)}`,{runId:M.name,file:A})}catch($){h(`${A}:parse`,`Skipped malformed runtime status record at ${F.basename(A)}: ${se($).message}`,{runId:M.name,file:A})}}return D},loadSessionSettingsVersioned(D){let M=k(D);if(!L.existsSync(M))return{revision:0,value:{}};try{let A=JSON.parse(L.readFileSync(M,"utf-8"));return W(A)&&Number.isSafeInteger(A.revision)&&typeof A.revision=="number"&&A.revision>=0&&W(A.value)?{revision:A.revision,value:Za(A.value)}:{revision:0,value:Za(A)}}catch(A){return h(`${M}:parse`,`Skipped malformed runtime session settings at ${F.basename(M)}: ${se(A).message}`,{sessionId:D,file:M}),{revision:0,value:{}}}},loadSessionSettings(D){return this.loadSessionSettingsVersioned(D).value},saveSessionSettingsVersioned(D,M){L.mkdirSync(o,{recursive:!0});let A=k(D);ei(A,{revision:M.revision,value:df(M.value)})},saveSessionSettings(D,M){let A=this.loadSessionSettingsVersioned(D);this.saveSessionSettingsVersioned(D,{revision:A.revision+1,value:M})},loadPermissionGrants(){if(!L.existsSync(a))return{revision:0,value:[]};try{let D=JSON.parse(L.readFileSync(a,"utf-8"));if(!W(D)||!Number.isSafeInteger(D.revision)||!Array.isArray(D.value))throw new Error("invalid permission grant store shape");return{revision:D.revision,value:D.value.map(Hp)}}catch(D){throw new Error(`Permission grant store is untrusted: ${se(D).message}`)}},savePermissionGrants(D){L.mkdirSync(t,{recursive:!0}),ei(a,D)}}}i(up,"createRuntimePersistence");function ei(e,n){let t=`${e}.${process.pid}.${pe()}.tmp`,r;try{r=L.openSync(t,"wx",384),L.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
71
|
+
`,"utf-8"),L.fsyncSync(r),L.closeSync(r),r=void 0,L.renameSync(t,e)}finally{r!==void 0&&L.closeSync(r),L.rmSync(t,{force:!0})}}i(ei,"writeRuntimeJsonAtomic");function cp(e){if(e.sessionsDir!==void 0)return F.resolve(e.sessionsDir);if(e.homeDir!==void 0)return F.join(F.resolve(e.homeDir),".kodax","sessions")}i(cp,"resolveRuntimeSessionsDir");function lp(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(lp,"eventMatchesReplayFilter");function Ba(e){return W(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(Ba,"isRuntimeEvent");function jt(e){if(W(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!mp(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,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}:{},...W(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}:{},...za(e.terminal)!==void 0?{terminal:za(e.terminal)}:{},...Wa(e.continuation)!==void 0?{continuation:Wa(e.continuation)}:{}}}i(jt,"parseRuntimeRunStatus");function Wa(e){if(!(!W(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(Wa,"parseRuntimeContinuationStatus");function mp(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"||e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(mp,"isRuntimeRunPhase");function za(e){if(W(e)&&!(!Number.isSafeInteger(e.revision)||typeof e.revision!="number"||!pp(e.kind)||!fp(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(za,"parseRuntimeTerminalFact");function pp(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(pp,"isRuntimeTerminalKind");function fp(e){return e==="completed"||e==="run_failed"||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(fp,"isRuntimeTerminalCode");function gp(e){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,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.terminal!==void 0?{terminal:e.terminal}:{},...e.continuation!==void 0?{continuation:{inputId:e.continuation.inputId,afterRunId:e.continuation.afterRunId,delivery:e.continuation.delivery,contentPreview:e.continuation.contentPreview}}:{},mode:e.mode??"coding",hadProviderCredential:!1,result:Promise.resolve(Id(e)),terminalEmitted:Kt(e.phase)}}i(gp,"recordFromPersistedStatus");function Rp(e,n,t){if(Kt(e.phase))return e;let r=[...t.replay({runId:e.runId})].reverse().find(d=>{if(!gd(d.type))return!1;let u=jt(d.payload);return u?.runId===e.runId&&u.sessionId===e.sessionId&&u.phase===yp(d.type)});if(r!==void 0){let d=jt(r.payload);if(d!==void 0)return bn(n,t,void 0,d),d}let o=e.phase==="queued"?"runtime_restarted":"daemon_crashed",a={...e,phase:"interrupted",endedAt:new Date().toISOString(),error:o,terminal:{revision:1,kind:"interrupted",code:o,effectOutcome:e.phase==="queued"?"none":"unknown",message:"Runtime process restarted before this run reached a durable terminal state."}};return n.emit("run.interrupted",a,{sessionId:a.sessionId,runId:a.runId,...a.turnId!==void 0?{turnId:a.turnId}:{}}),bn(n,t,void 0,a),a}i(Rp,"interruptPersistedNonTerminalRun");function yp(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(yp,"terminalPhaseFromEvent");function Ga(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(Ga,"resolvePermissionTimeoutMs");function wp(e,n){let t=new Map,r=i((u,p,w,l)=>{let s=t.get(u);return!s||w?.runId!==void 0&&s.request.runId!==w.runId||w?.expectedRevision!==void 0&&s.request.revision!==w.expectedRevision?{requestId:u,accepted:!1,status:"already_resolved"}:(p.status==="answered"&&hp(s.request.kind,p.answer),t.delete(u),clearTimeout(s.timer),s.resolve(p),e.emit("user_input.resolved",{requestId:u,kind:s.request.kind,status:p.status,...l!==void 0?{reason:l}:{}},{sessionId:s.request.sessionId,runId:s.request.runId,...s.request.turnId!==void 0?{turnId:s.request.turnId}:{}}),{requestId:u,accepted:!0,status:p.status})},"resolvePending"),o=i((u,p=n)=>{let w=`input_${pe().replace(/-/g,"").slice(0,12)}`,l=new Date,s={id:w,revision:0,sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{},kind:u.kind,options:u.options,createdAt:l.toISOString(),expiresAt:new Date(l.getTime()+p).toISOString()},g=i(()=>{},"resolveResponse"),c=new Promise(f=>{g=f}),v=setTimeout(()=>{r(w,{status:"dismissed"},void 0,"timeout")},Math.max(1,p));return v.unref?.(),t.set(w,{request:s,resolve:g,timer:v}),e.emit("user_input.requested",s,{sessionId:s.sessionId,runId:s.runId,...s.turnId!==void 0?{turnId:s.turnId}:{}}),{request:s,response:c}},"trackAndWait"),a=i((u,p)=>{for(let w of[...t.values()])u(w.request)&&r(w.request.id,{status:"dismissed"},void 0,p)},"dismissMatching");return{service:{async listPending(u){return[...t.values()].map(p=>p.request).filter(p=>(u?.sessionId===void 0||p.sessionId===u.sessionId)&&(u?.runId===void 0||p.runId===u.runId))},async respond(u,p,w){return r(u,{status:"answered",answer:p},w)},async dismiss(u,p){return r(u,{status:"dismissed"},p,"client_dismissed")}},trackAndWait:o,resolve:r,rejectForRun(u,p){a(w=>w.runId===u,p)},rejectAll(u){a(()=>!0,u)}}}i(wp,"createRuntimeUserInputRegistry");function hp(e,n){if(!(e==="askUser"?Rd(n):e==="askUserMulti"?vp(n):typeof n=="string"))throw bd(`Invalid answer for ${e}`)}i(hp,"assertRuntimeUserInputAnswer");function Rd(e){return Array.isArray(e)?e.every(Ja):Ja(e)}i(Rd,"isAskUserAnswer");function Ja(e){return typeof e=="string"||W(e)&&e.kind==="customInput"&&typeof e.value=="string"}i(Ja,"isAskUserSelectionAnswer");function vp(e){return W(e)&&Object.values(e).every(Rd)}i(vp,"isAskUserMultiAnswer");function Sp(e,n,t){let r=new Map,o=new Map,a=0,d=i((I,x=n,R)=>{let h=i(()=>{},"resolveResponse"),m=new Promise(P=>{h=P});return{request:b(I,[h],Ga(I.expiresAt,x),R),response:m}},"trackAndWait"),u=i((I,x,R)=>{let h=r.get(I);if(!h||R!==void 0&&h.request.runId!==R)return!1;if(x.type==="allow_session"||x.type==="allow_always"){let m=v(h,x);f(m,h.request)}r.delete(I),h.timer&&clearTimeout(h.timer);for(let m of h.waiters)m(x);return e.emit("permission.resolved",{requestId:I,decision:x},{sessionId:h.request.sessionId,runId:h.request.runId,...h.request.turnId!==void 0?{turnId:h.request.turnId}:{}}),!0},"resolvePending"),p=i((I,x)=>{let R=[...r.values()].filter(h=>I(h.request)).map(h=>h.request.id);for(let h of R)u(h,x)},"resolveMatching"),w={request(I){return l(I)},async listPending(I){return[...r.values()].map(x=>x.request).filter(x=>yf(x,I))},async respond(I,x,R){return u(I,x,R?.runId)},async listGrants(){let I=s();return{revision:a,value:[...I.value,...o.values()]}},async revokeGrant(I,x){let R=s();if(a!==x)throw pi(`Permission grant revision ${x} is stale; current revision is ${a}`,a);let h=o.get(I);if(h!==void 0)return o.delete(I),a+=1,t.savePermissionGrants({revision:a,value:R.value}),k("revoked",h,a),!0;let m=R.value.find(P=>P.id===I),S=R.value.filter(P=>P.id!==I);return S.length===R.value.length?!1:(a+=1,t.savePermissionGrants({revision:a,value:S}),m!==void 0&&k("revoked",m,a),!0)}};function l(I,x){let R=x??(I.toolInput!==void 0?{toolInput:I.toolInput}:void 0),h=g(I.sessionId,I.toolName,R?.toolInput,I.executionCwd);if(h!==void 0)return h.persistence==="session"?Promise.resolve({type:"allow_session",suggestionId:h.id}):Promise.resolve({type:"allow_always",suggestionId:h.id});let{toolInput:m,...S}=I,P=R===void 0?S.inputPreview:Pn(R.toolInput),C={sessionId:S.sessionId,runId:S.runId,...S.turnId!==void 0?{turnId:S.turnId}:{},...S.toolCallId!==void 0?{toolCallId:S.toolCallId}:{},toolName:S.toolName,...S.reason!==void 0?{reason:S.reason}:{},...S.risk!==void 0?{risk:S.risk}:{},...P!==void 0?{inputPreview:P}:{},...S.executionCwd!==void 0?{executionCwd:S.executionCwd}:{},...S.expiresAt!==void 0?{expiresAt:S.expiresAt}:{}},N=R===void 0?void 0:c(C,R);return N!==void 0?N:d(C,S.timeoutMs??n,R).response}i(l,"requestPermission");function s(){let I=t.loadPermissionGrants();return a=Math.max(a,I.revision),I}i(s,"loadPersistentPermissionGrants");function g(I,x,R,h){let m=s().value;return[...o.values(),...m].find(S=>S.scope.sessionId!==void 0&&S.scope.sessionId!==I||S.scope.toolName!==void 0&&S.scope.toolName!==x||S.scope.matcher===void 0||R===void 0||S.persistence!=="session"&&S.scope.matcher.kind==="exact-command"&&typeof R.command=="string"&&sr(R.command,ot())?!1:oo(S.scope.matcher,{toolName:x,toolInput:R,executionCwd:h??process.cwd()}))}i(g,"findPermissionGrant");function c(I,x){let R=Va(I,x);if(R.length===0)return;let h=[...r.values()].find(m=>m.request.sessionId===I.sessionId&&m.request.runId===I.runId&&m.grantCandidates.length===R.length&&R.every(S=>m.grantCandidates.some(P=>P.persistence===S.persistence&&ni(P.scope,S.scope))));if(h)return new Promise(m=>{h.waiters.push(m)})}i(c,"joinMatchingPendingPermission");function v(I,x){let R=x.type==="allow_session"?"session":"persistent",h="suggestionId"in x?I.grantCandidates.find(m=>m.suggestion.id===x.suggestionId&&m.persistence===R):kp(I,x.scope,R);if(!h)throw bd("Permission decision does not select a Runtime-issued grant suggestion.");return h}i(v,"resolveRuntimePermissionGrantCandidate");function f(I,x){let R={id:`grant_${pe().replace(/-/g,"").slice(0,12)}`,scope:I.scope,createdAt:new Date().toISOString(),persistence:I.persistence,label:I.suggestion.label,sourcePermissionId:x.id};if(I.persistence==="session"){if([...o.values()].some(S=>ni(S.scope,R.scope)))return;let m=s();a+=1,o.set(R.id,R),t.savePermissionGrants({revision:a,value:m.value}),k("created",R,a,x);return}let h=s();h.value.some(m=>ni(m.scope,R.scope))||(a+=1,t.savePermissionGrants({revision:a,value:[...h.value,R]}),k("created",R,a,x))}i(f,"saveRuntimePermissionCandidate");function k(I,x,R,h){e.emit("permission.grant.changed",{action:I,grant:x,revision:R},{sessionId:h?.sessionId??x.scope.sessionId??"runtime",runId:h?.runId??"permission-grants",...h?.turnId!==void 0?{turnId:h.turnId}:{}})}return i(k,"emitPermissionGrantChanged"),{service:w,requestOwned(I,x){return l(I,x)},track(I){return b(I,[],Ga(I.expiresAt,n))},trackAndWait(I,x=n,R){return d(I,x,R)},resolve(I,x){u(I,x)},isGranted(I,x,R,h){return g(I,x,R,h)!==void 0},rejectForRun(I,x){p(R=>R.runId===I,{type:"reject",reason:x})},rejectAll(I){p(()=>!0,{type:"reject",reason:I})},releaseSession(I){let x=s(),R=[...o.values()].filter(h=>h.scope.sessionId===I);if(R.length!==0){for(let h of R)o.delete(h.id);a+=1,t.savePermissionGrants({revision:a,value:x.value});for(let h of R)k("expired",h,a)}},releaseAllSessionGrants(){if(o.size===0)return;let I=s(),x=[...o.values()];o.clear(),a+=1,t.savePermissionGrants({revision:a,value:I.value});for(let R of x)k("expired",R,a)}};function b(I,x,R=n,h){let m=I.inputPreview===void 0?void 0:Mf(I.inputPreview),S=h===void 0?[]:Va(I,h),P={...I,...m!==void 0?{inputPreview:m}:{},executionCwd:F.resolve(I.executionCwd??process.cwd()),id:`perm_${pe().replace(/-/g,"").slice(0,12)}`,createdAt:new Date().toISOString(),...S.length>0?{grantSuggestions:S.map(N=>N.suggestion)}:{}},C=R>0?setTimeout(()=>{let N=r.get(P.id);if(!N)return;r.delete(P.id);let D={type:"reject",reason:"permission request timed out"};for(let M of N.waiters)M(D);e.emit("permission.resolved",{requestId:P.id,decision:D},{sessionId:P.sessionId,runId:P.runId,...P.turnId!==void 0?{turnId:P.turnId}:{}})},R):void 0;return C?.unref?.(),r.set(P.id,{request:P,waiters:x,grantCandidates:S,...C!==void 0?{timer:C}:{}}),e.emit("permission.requested",P,{sessionId:P.sessionId,runId:P.runId,...P.turnId!==void 0?{turnId:P.turnId}:{}}),P}i(b,"createPendingPermission")}i(Sp,"createRuntimePermissionRegistry");function kp(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(kp,"resolveLegacyRuntimePermissionGrantCandidate");function Va(e,n){let t=F.resolve(e.executionCwd??process.cwd()),r=or({toolName:e.toolName,toolInput:n.toolInput,executionCwd:t});if(r.kind==="exact-command"&&(typeof n.toolInput.command!="string"||n.toolInput.command.trim().length===0))return[];let o=bp(r,n.toolInput),a=[{suggestion:{id:`scope_${pe().replace(/-/g,"").slice(0,16)}`,kind:"session",label:Qa(r,o,e.toolName,"session")},scope:{toolName:e.toolName,sessionId:e.sessionId,matcher:r},persistence:"session"}];return r.kind!=="exact-call"&&Ip(e,n,t)&&a.push({suggestion:{id:`scope_${pe().replace(/-/g,"").slice(0,16)}`,kind:"persistent",label:Qa(r,o,e.toolName,"persistent")},scope:{toolName:e.toolName,matcher:r},persistence:"persistent"}),a}i(Va,"createRuntimePermissionGrantCandidates");function Ip(e,n,t){if(e.risk==="high")return!1;let r={id:e.toolCallId??"permission-scope",name:e.toolName,input:n.toolInput},o=F.resolve(n.projectRoot??t);if(Ni(r,o,t).denied||[...n.signals??[],...ji.collect(r,o,t)].some(d=>d.kind==="dangerous_pattern"))return!1;if(e.toolName==="bash"){let d=typeof n.toolInput.command=="string"?n.toolInput.command:"";if(sr(d,ot()))return!1}return!0}i(Ip,"isPersistentRuntimePermissionSafe");function bp(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=di(t.slice(0,Qn)).replace(/\s+/g," ").trim();return r.length<=120?r:`${r.slice(0,117)}...`}i(bp,"runtimePermissionGrantLabel");function Qa(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(Qa,"runtimePermissionGrantSuggestionLabel");function ni(e,n){return e.toolName===n.toolName&&e.sessionId===n.sessionId&&e.matcher?.kind===n.matcher?.kind&&e.matcher?.fingerprint===n.matcher?.fingerprint}i(ni,"permissionScopesEqual");function Pp(e){let{bus:n,original:t,permissions:r,userInputs:o,enableSharedInteractions:a,record:d}=e,u=i(l=>({sessionId:l?.sessionId??d.sessionId,runId:d.runId,turnId:l?.turnId??d.turnId}),"scopeFromMeta"),p=i((l,s,g)=>{n.emit(l,Ke(s),u(g))},"emit"),w=i(async(l,s,g,c,v)=>{let f=d.phase;if(d.phase==="running"&&(d.phase="waiting_user_input"),a){let b=o.trackAndWait({sessionId:g?.sessionId??d.sessionId,runId:d.runId,...g?.turnId??d.turnId?{turnId:g?.turnId??d.turnId}:{},kind:l,options:s});try{let I=c===void 0?await b.response:await Promise.race([b.response,c().then(x=>({status:x===void 0?"dismissed":"answered",...x!==void 0?{answer:x}:{}})).then(x=>(o.resolve(b.request.id,x),x))]);return I.status==="answered"?I.answer:v}finally{d.phase==="waiting_user_input"&&(d.phase=f)}}let k=`input_${pe().replace(/-/g,"").slice(0,12)}`;p("user_input.requested",{requestId:k,kind:l,options:s},g);try{if(c===void 0)return v;let b=await c();return p("user_input.resolved",{requestId:k,kind:l,status:b===void 0?"dismissed":"answered"},g),b}catch(b){throw p("user_input.resolved",{requestId:k,kind:l,status:"failed",error:se(b).message},g),b}finally{d.phase==="waiting_user_input"&&(d.phase=f)}},"runWithUserInputPhase");return{...t,onTextDelta(l,s){p("assistant.delta",{text:l,meta:s},s),t?.onTextDelta?.(l,s)},onThinkingDelta(l,s){p("thinking.delta",{text:l,meta:s},s),t?.onThinkingDelta?.(l,s)},onThinkingEnd(l,s){p("thinking.finished",{thinking:l,meta:s},s),t?.onThinkingEnd?.(l,s)},onToolUseStart(l,s){p("tool.started",{tool:l,meta:s},s),t?.onToolUseStart?.(l,s)},onToolProgress(l,s){p("tool.progress",{update:l,meta:s},s),t?.onToolProgress?.(l,s)},onToolInputDelta(l,s,g){p("tool.progress",{toolName:l,partialJson:s,meta:g},g),t?.onToolInputDelta?.(l,s,g)},onToolResult(l,s){p("tool.finished",{result:l,meta:s},s),t?.onToolResult?.(l,s)},onStreamEnd(l){p("run.progress",{kind:"stream_end",meta:l},l),t?.onStreamEnd?.(l)},onChildActivityEnd(l){p("child_activity.finished",{meta:l},l),t?.onChildActivityEnd?.(l)},onSessionStart(l){d.provider=l.provider,n.emit("session.loaded",Ke(l),{sessionId:l.sessionId,runId:d.runId,turnId:l.turnId??d.turnId}),t?.onSessionStart?.(l)},onTurnStarted(l){d.turnId=l.turnId,n.emit("turn.started",Ke(l),{sessionId:l.sessionId,runId:d.runId,turnId:l.turnId}),t?.onTurnStarted?.(l)},onTurnCompleted(l){n.emit("turn.completed",Ke(l),{sessionId:l.sessionId,runId:d.runId,turnId:l.turnId}),t?.onTurnCompleted?.(l)},onTurnFailed(l){n.emit("turn.failed",Ke(l),{sessionId:l.sessionId,runId:d.runId,turnId:l.turnId}),t?.onTurnFailed?.(l)},onIterationStart(l,s,g){p("run.progress",{kind:"iteration_start",iter:l,maxIter:s,meta:g},g),t?.onIterationStart?.(l,s,g)},onIterationEnd(l){p("run.progress",{kind:"iteration_end",info:l},l),t?.onIterationEnd?.(l)},onCompactStart(l){p("context.compaction.started",{meta:l},l),t?.onCompactStart?.(l)},onCompact(l,s){p("context.compaction.finished",{estimatedTokens:l,meta:s},s),t?.onCompact?.(l,s)},onCompactStats(l){p("context.compaction.stats",l,l),t?.onCompactStats?.(l)},onCompactedMessages(l,s,g){p("context.compaction.messages",{messageCount:l.length,update:s,meta:g},g),t?.onCompactedMessages?.(l,s,g)},onCompactEnd(l){p("context.compaction.ended",{meta:l},l),t?.onCompactEnd?.(l)},onMidTurnUserMessages(l,s){p("run.progress",{kind:"mid_turn_user_messages",contents:l,meta:s},s),t?.onMidTurnUserMessages?.(l,s)},onRetry(l,s,g,c){p("provider.retry",{reason:l,attempt:s,maxAttempts:g,meta:c},c),t?.onRetry?.(l,s,g,c)},onProviderRateLimit(l,s,g,c){p("provider.retry",{reason:"rate_limit",attempt:l,maxAttempts:s,delayMs:g,meta:c},c),t?.onProviderRateLimit?.(l,s,g,c)},onRetryAfter(l,s){p("provider.retry",{retryAfter:l,meta:s},s),t?.onRetryAfter?.(l,s)},onReasoningEffortRejected(l){p("provider.recovery",{kind:"reasoning_effort_rejected",event:l},l),t?.onReasoningEffortRejected?.(l)},onRepoIntelligenceTrace(l){p("repo_intelligence.trace",l,l),t?.onRepoIntelligenceTrace?.(l)},onContextBudgetSnapshot(l){p("context.budget.snapshot",l,l),t?.onContextBudgetSnapshot?.(l)},onToolExposurePlanned(l){p("tool.exposure.planned",l,l),t?.onToolExposurePlanned?.(l)},onContextCompactionSkipped(l){p("context.compaction.skipped",l,l),t?.onContextCompactionSkipped?.(l)},onSidecarMessage(l){p("sidecar.message",l,l),t?.onSidecarMessage?.(l)},onTodoUpdate(l,s){p("todo.updated",{items:l,meta:s},s),t?.onTodoUpdate?.(l,s)},onTodoDriftWarning(l){p("todo.warning",l,l),t?.onTodoDriftWarning?.(l)},onProviderRecovery(l,s){p("provider.recovery",{event:l,meta:s},s),t?.onProviderRecovery?.(l,s)},onEffectiveConfig(l){p("config.effective",l,l),t?.onEffectiveConfig?.(l)},onWorkflowProcessEvent(l){let s=ff(l);n.emit(s,Ke(l),{sessionId:l.snapshot.hostMetadata?.sessionId??d.sessionId,runId:d.runId,turnId:d.turnId}),t?.onWorkflowProcessEvent?.(l)},onComplete(l){p("run.progress",{kind:"complete",meta:l},l),t?.onComplete?.(l)},onError(l,s){p("runtime.warning",{source:"coding",severity:"error",message:l.message},s),t?.onError?.(l,s)},onManagedTaskStatus(l){p("run.progress",{kind:"managed_task_status",status:l},l),t?.onManagedTaskStatus?.(l)},beforeToolExecute:i(async(l,s,g)=>{let c=Sf(d),v=d.autoModeEngine;if(c!==void 0&&fe(d.permissionMode)==="auto"&&(v==="llm"||v==="rules"))return cd.has(l)?!0:g?.toolId!==void 0&&c.consumeAllowedCall({id:g.toolId,name:l,input:s})?t?.beforeToolExecute?.(l,s,g)??!0:"[Blocked] Runtime auto mode did not classify this concrete tool call.";if(fe(d.permissionMode)==="plan"){let x=id(d,l,s);if(x!==!0&&x!==void 0)return x}if(r.isGranted(g?.sessionId??d.sessionId,l,s,si(d)))return!0;let k=t?.beforeToolExecute===void 0?id(d,l,s):void 0;if(k!==void 0)return k;let b=d.phase;d.phase==="running"&&(d.phase="waiting_permission");let I=r.trackAndWait({sessionId:g?.sessionId??d.sessionId,runId:d.runId,...g?.turnId??d.turnId?{turnId:g?.turnId??d.turnId}:{},...g?.toolId?{toolCallId:g.toolId}:{},toolName:l,inputPreview:Pn(s),executionCwd:si(d)},void 0,{toolInput:s,...typeof d.start?.options.context?.gitRoot=="string"?{projectRoot:d.start.options.context.gitRoot}:{}});try{if(!t?.beforeToolExecute){let m=await I.response;return od(m)}let x=Promise.resolve(t.beforeToolExecute(l,s,g)).then(m=>({source:"hook",decision:m})),R=I.response.then(m=>({source:"runtime",decision:od(m)})),h=await Promise.race([x,R]);return h.source==="hook"&&r.resolve(I.request.id,wf(h.decision)),h.decision}catch(x){throw r.resolve(I.request.id,{type:"reject",reason:se(x).message}),x}finally{d.phase==="waiting_permission"&&(d.phase=b==="queued"?"running":b)}},"beforeToolExecute"),...t?.askUser||a?{askUser:i((l,s)=>w("askUser",l,s,t?.askUser?()=>t.askUser(l,s):void 0,""),"askUser")}:{},...t?.askUserMulti||a?{askUserMulti:i((l,s)=>w("askUserMulti",l,s,t?.askUserMulti?()=>t.askUserMulti(l,s):void 0,void 0),"askUserMulti")}:{},...t?.askUserInput||a?{askUserInput:i((l,s)=>w("askUserInput",l,s,t?.askUserInput?()=>t.askUserInput(l,s):void 0,void 0),"askUserInput")}:{}}}i(Pp,"wrapKodaXEvents");function Ep(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(Ep,"buildSessionRuntimeInfo");function yd(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(yd,"toRuntimeSessionSummary");function xp(e,n){let t=e.input===void 0?[]:Array.isArray(e.input)?[...e.input]:[e.input],r=t.filter(a=>a.type==="text");if(e.prompt!==void 0&&r.length>0)throw new Error("runtime.runs.start accepts either prompt or text input, not both");if(r.length>1)throw new Error("runtime.runs.start accepts at most one text input item");let o=e.prompt??r[0]?.text;if(o===void 0)throw new Error("runtime.runs.start requires prompt or text input");return{prompt:o,inputArtifacts:t.flatMap(a=>Dp(a,n))}}i(xp,"normalizeRuntimeRunInput");function Dp(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return Mp(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(Dp,"runtimeInputToArtifacts");function Mp(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(Mp,"runtimeArtifactToInputArtifacts");function Ap(e){return typeof e=="string"&&Cm.has(e)}i(Ap,"isRuntimeArtifactKind");function Tp(e,n,t,r){let o=r.runtimeInfo?.canonicalRepoRoot??(r.gitRoot?r.gitRoot:void 0),a=o===void 0?void 0:F.resolve(o),d=r.runtimeInfo?.executionCwd??r.runtimeInfo?.workspaceRoot??a,u={...a!==void 0?{gitRoot:a}:{},...n.executionCwd!==void 0?{executionCwd:F.resolve(n.executionCwd)}:d!==void 0?{executionCwd:F.resolve(d)}:{}},p=e.context,w=typeof p?.gitRoot=="string"?F.resolve(p.gitRoot):void 0;if(a!==void 0&&w!==void 0&&!(nt(a,w)&&nt(w,a)))throw new Error("gitRoot must match the session repository safety boundary");let l=p?.executionCwd===void 0?void 0:F.resolve(p.executionCwd),s=l??u.executionCwd,g=r.runtimeInfo?.workspaceRoot??a;l!==void 0&&g!==void 0&&wd(l,g,"executionCwd");let c=[...p?.inputArtifacts??[],...t],v={...u,...p??{},...a!==void 0?{gitRoot:a}:w!==void 0?{gitRoot:w}:{},...s!==void 0?{executionCwd:s}:{},...c.length>0?{inputArtifacts:c}:{}},f=e.provider??n.provider,k=e.model??n.model,b=e.effort??n.effort,I=e.thinking??n.thinking,x=e.reasoningMode??n.reasoningMode,R=e.agentMode??n.agentMode,h=R==="amaw"?"ama":R;return{...e,...f!==void 0?{provider:f}:{},...k!==void 0?{model:k}:{},...b!==void 0?{effort:b}:{},...I!==void 0?{thinking:I}:{},...x!==void 0?{reasoningMode:x}:{},...h!==void 0?{agentMode:h}:{},...Object.keys(v).length>0?{context:v}:{}}}i(Tp,"buildEffectiveRuntimeOptions");async function Ya(e,n){let t=await e.loadSession(n);if(!t)throw new Error(`Session not found: ${n}`);return t}i(Ya,"loadRequiredSession");function Cp(e,n,t){let r=i((a,d)=>t?_p(a,d)?!1:a===void 0||Pm.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");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)},async admitsSession(a){if(!t)return!0;let d=await n.loadSession(a);return d!==null&&r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)},async assertRunAccess(a){if(!t)return;let d=await Ya(n,a);r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)||o(a)},async loadRequired(a){let d=await Ya(n,a);return r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)||o(a),d}}}i(Cp,"createRuntimeSessionAdmission");async function ii(e,n){let t=new Map,r=[];for(let o of e){let a=t.get(o.sessionId);a===void 0&&(a=await n.admitsSession(o.sessionId),t.set(o.sessionId,a)),a&&r.push(o)}return r}i(ii,"filterAdmittedRunStatuses");function _p(e,n){let t=i(r=>r?.toLowerCase().split(/[^a-z0-9]+/).includes("partner")===!0,"hasPartnerToken");return t(e)||t(n)}i(_p,"isPartnerSessionIdentity");function Op(e){return`sha256:${ad("sha256").update(JSON.stringify(e)).digest("hex")}`}i(Op,"createRuntimeTranscriptRevision");function Lp(e){return e.length<=$a?e:`${e.slice(0,$a-1)}\u2026`}i(Lp,"previewQueuedInput");function oi(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&wd(n.executionCwd,t,"executionCwd")}i(oi,"assertSessionSettingsAllowed");function wd(e,n,t){if(!nt(e,n))throw new Error(`${t} must stay within the session workspace root`)}i(wd,"assertPathWithinRoot");function Np(e,n){let t={...e};return zn(t,"provider",n.provider),zn(t,"model",n.model),zn(t,"permissionMode",n.permissionMode),zn(t,"executionCwd",n.executionCwd,!0),zn(t,"autoModeClassifierModel",n.autoModeClassifierModel),Gn(t,"effort",n.effort),Gn(t,"thinking",n.thinking),Gn(t,"reasoningMode",n.reasoningMode),Gn(t,"agentMode",n.agentMode),Gn(t,"autoModeEngine",n.autoModeEngine),jp(t,"autoModeTimeoutMs",n.autoModeTimeoutMs),Fp(t,"autoModeSpeculativeWindowMs",n.autoModeSpeculativeWindowMs),t}i(Np,"applySessionSettingsPatch");function jp(e,n,t){if(t!==void 0){if(t===null){$t(e,n);return}if(!Number.isSafeInteger(t)||t<=0)throw new Error(`${n} must be a positive safe integer`);te(e,n,t)}}i(jp,"applyNullablePositiveIntegerPatch");function Fp(e,n,t){if(t!==void 0){if(t===null){$t(e,n);return}if(!Number.isSafeInteger(t)||t<0)throw new Error(`${n} must be a non-negative safe integer`);te(e,n,t)}}i(Fp,"applyNullableNonNegativeIntegerPatch");function zn(e,n,t,r=!1){if(t===void 0)return;if(t===null){$t(e,n);return}if(r&&!F.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);let o=n==="autoModeClassifierModel"?hd(t):t;te(e,n,o)}i(zn,"applyNullableStringPatch");function hd(e){let n=e.trim();if(n.length===0)throw new tn("autoModeClassifierModel must be a non-empty classifier model spec.");try{Li(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw new tn(`autoModeClassifierModel must be a valid classifier model spec: ${r}`)}return n}i(hd,"validateRuntimeAutoModeClassifierModel");function vd(e,n){if(!(fe(e.permissionMode)!=="auto"||(e.autoModeEngine??"llm")!=="llm")){if(e.autoModeClassifierModel!==void 0){try{hd(e.autoModeClassifierModel)}catch(t){return t instanceof tn?t:new tn("Auto LLM classifier model configuration is invalid.")}return}if(!n?.trim().length)return new tn("Auto LLM requires a classifier model. Set autoModeClassifierModel, the Session/run model, or runtime defaultModel.")}}i(vd,"runtimeAutoModeClassifierModelError");function $p(e,n){let t=vd(e,n);if(t)throw t}i($p,"assertRuntimeAutoModeClassifierModelConfigured");function Gn(e,n,t){if(t!==void 0){if(t===null){$t(e,n);return}te(e,n,t)}}i(Gn,"applyNullablePatch");function te(e,n,t){e[n]=t}i(te,"setMutableSetting");function $t(e,n){delete e[n]}i($t,"deleteMutableSetting");function Za(e){if(!W(e))return{};let n={};return qe(n,"provider",e.provider),qe(n,"model",e.model),qe(n,"permissionMode",e.permissionMode),qe(n,"executionCwd",e.executionCwd),qe(n,"autoModeClassifierModel",e.autoModeClassifierModel),qe(n,"effort",e.effort),typeof e.thinking=="boolean"&&te(n,"thinking",e.thinking),qe(n,"reasoningMode",e.reasoningMode),qe(n,"agentMode",e.agentMode),(e.autoModeEngine==="llm"||e.autoModeEngine==="rules")&&te(n,"autoModeEngine",e.autoModeEngine),Number.isSafeInteger(e.autoModeTimeoutMs)&&Number(e.autoModeTimeoutMs)>0&&te(n,"autoModeTimeoutMs",Number(e.autoModeTimeoutMs)),Number.isSafeInteger(e.autoModeSpeculativeWindowMs)&&Number(e.autoModeSpeculativeWindowMs)>=0&&te(n,"autoModeSpeculativeWindowMs",Number(e.autoModeSpeculativeWindowMs)),n}i(Za,"parseRuntimeSessionSettings");function Hp(e){if(!W(e)||!W(e.scope))throw new Error("invalid permission grant");let n=e.scope.toolName,t=e.scope.sessionId,r=e.scope.matcher,o=e.persistence,a=e.label,d=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"||a!==void 0&&typeof a!="string"||d!==void 0&&typeof d!="string")throw new Error("invalid permission grant");return{id:e.id,createdAt:e.createdAt,persistence:o??"persistent",...a!==void 0?{label:a}:{},...d!==void 0?{sourcePermissionId:d}:{},scope:{...n!==void 0?{toolName:n}:{},...t!==void 0?{sessionId:t}:{},...r!==void 0?{matcher:so(r)}:{}}}}i(Hp,"parseRuntimePermissionGrant");function qe(e,n,t){typeof t=="string"&&t.length>0&&te(e,n,t)}i(qe,"setStringIfPresent");function W(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(W,"isRecord");function qp(e,n){if(!W(e))throw new Error(`${n} requires a plain object`)}i(qp,"assertPlainObject");function Kp(e){let n=new Set(bm);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(Kp,"sanitizeRuntimeConfigPatch");function Xp(e){if(e.homeDir!==void 0)return F.join(F.resolve(e.homeDir),".kodax","config.json")}i(Xp,"resolveRuntimeConfigFile");function Ee(e){if(e===void 0)return Hi();if(!L.existsSync(e))return{};try{let n=JSON.parse(L.readFileSync(e,"utf8"));return W(n)?n:{}}catch{return{}}}i(Ee,"readRuntimeConfig");function Up(e,n){if(e===void 0){Ki(n);return}let r={...Ee(e),...n};for(let o of Object.keys(n))n[o]===void 0&&delete r[o];Yn(e,r)}i(Up,"patchRuntimeConfig");function Yn(e,n){L.mkdirSync(F.dirname(e),{recursive:!0}),L.writeFileSync(e,`${JSON.stringify(n,null,2)}
|
|
72
|
+
`,"utf8")}i(Yn,"writeRuntimeConfig");function Bp(e){return e===void 0?Vi():Gp(Ht(Ee(e)))}i(Bp,"listRuntimeCustomProviders");function Wp(e,n){if(e===void 0)return Qi(n);Ri(n);let t=Ee(e),r=Ht(t),o=Zp(r,n,a=>a.name===n.name);return Yn(e,{...t,customProviders:o}),et(o),structuredClone(n)}i(Wp,"upsertRuntimeCustomProvider");function zp(e,n){if(e===void 0)return Yi(n);if(typeof n!="string"||n.length===0)return!1;let t=Ee(e),r=Ht(t),o=r.filter(a=>a.name!==n);return o.length===r.length?!1:(Yn(e,{...t,customProviders:o}),et(o),!0)}i(zp,"removeRuntimeCustomProvider");function Sd(e){e!==void 0&&et(Ht(Ee(e)))}i(Sd,"registerRuntimeConfiguredCustomProviders");function Ht(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}i(Ht,"extractRuntimeCustomProviders");function Gp(e){return structuredClone(e)}i(Gp,"cloneCustomProviders");function ti(e){return e===void 0?Zi():Yp(qt(Ee(e)))}i(ti,"listRuntimeMcpServers");function Jp(e,n){if(e===void 0)return eo(n);let t=qt(Ee(e))[n];return t===void 0?void 0:structuredClone(t)}i(Jp,"getRuntimeMcpServer");function Vp(e,n,t){if(e===void 0)return no(n,t);nr(n,t);let r=Ee(e),o={...qt(r),[n]:structuredClone(t)};return Yn(e,{...r,mcpServers:o}),structuredClone(t)}i(Vp,"upsertRuntimeMcpServer");function Qp(e,n){if(e===void 0)return to(n);let t=Ee(e),r=qt(t);if(!(n in r))return!1;let o={...r};return delete o[n],Yn(e,{...t,mcpServers:o}),!0}i(Qp,"removeRuntimeMcpServer");function qt(e){return W(e.mcpServers)?structuredClone(e.mcpServers):{}}i(qt,"extractRuntimeMcpServers");function Yp(e){return structuredClone(e)}i(Yp,"cloneMcpServers");function Zp(e,n,t){let r=e.findIndex(t);return r<0?[...e,structuredClone(n)]:e.map((o,a)=>a===r?structuredClone(n):structuredClone(o))}i(Zp,"upsertConfigEntry");function ef(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(o=>W(o)&&o.name===n.provider);return W(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!W(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}i(ef,"listRuntimeModels");function ed(e){let n=nf(e).map(tf),t=sn()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(rf)??[];return[...n,...t].sort((r,o)=>r.name.localeCompare(o.name))}i(ed,"listRuntimeCommands");function nf(e){let n=io;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):Gi().getAll()}i(nf,"listReplCommands");function tf(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(tf,"replCommandToRuntimeCommandInfo");function rf(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(rf,"extensionCommandToRuntimeCommandInfo");function In(e){return Array.isArray(e)?e.map(n=>In(n)):W(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,of(n)?"[redacted]":In(t)])):e}i(In,"redactRuntimeConfig");function of(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(of,"isSensitiveConfigKey");function sf(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(sf,"toRuntimeSkillSummary");function af(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(Jn)}:{},...e.references!==void 0?{references:e.references.map(Jn)}:{},...e.assets!==void 0?{assets:e.assets.map(Jn)}:{},...e.templates!==void 0?{templates:e.templates.map(Jn)}:{},...e.resources!==void 0?{resources:e.resources.map(Jn)}:{}}}i(af,"toRuntimeSkillDescription");function Jn(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}i(Jn,"toRuntimeSkillFileSummary");function En(e){if(!W(e))throw new Error("Invalid runtime daemon response: expected object");return e}i(En,"requireRuntimeRecord");function kd(e){let n=En(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(kd,"parseRuntimeIdentity");function df(e){let n={};return e.provider!==void 0&&te(n,"provider",e.provider),e.model!==void 0&&te(n,"model",e.model),e.effort!==void 0&&te(n,"effort",e.effort),e.thinking!==void 0&&te(n,"thinking",e.thinking),e.reasoningMode!==void 0&&te(n,"reasoningMode",e.reasoningMode),e.permissionMode!==void 0&&te(n,"permissionMode",e.permissionMode),e.executionCwd!==void 0&&te(n,"executionCwd",e.executionCwd),e.agentMode!==void 0&&te(n,"agentMode",e.agentMode),e.autoModeEngine!==void 0&&te(n,"autoModeEngine",e.autoModeEngine),e.autoModeClassifierModel!==void 0&&te(n,"autoModeClassifierModel",e.autoModeClassifierModel),e.autoModeTimeoutMs!==void 0&&te(n,"autoModeTimeoutMs",e.autoModeTimeoutMs),e.autoModeSpeculativeWindowMs!==void 0&&te(n,"autoModeSpeculativeWindowMs",e.autoModeSpeculativeWindowMs),n}i(df,"serializeSessionSettings");function uf(){return`run_${Date.now().toString(36)}_${pe().replace(/-/g,"").slice(0,8)}`}i(uf,"createRunId");function we(e){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,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.terminal!==void 0?{terminal:e.terminal}:{},...e.continuation!==void 0?{continuation:{...e.continuation,state:cf(e.phase)}}:{}}}i(we,"statusFromRecord");function cf(e){return e==="queued"?"queued":Kt(e)?"terminal":"delivered"}i(cf,"runtimeContinuationState");function Id(e){return{runId:e.runId,sessionId:e.sessionId,phase:e.phase,...e.error!==void 0?{error:new Error(e.error)}:{}}}i(Id,"resultFromStatus");function lf(e){return e.length<=Nt?e:[...e].sort(li).slice(-Nt)}i(lf,"recentRunStatuses");function mf(e){if(e.size<=Nt)return;let n=[...e.values()].filter(t=>Kt(t.phase)).sort((t,r)=>li(we(t),we(r)));for(let t of n){if(e.size<=Nt)return;e.delete(t.runId)}}i(mf,"pruneTerminalRuns");function li(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(li,"compareRunStatusRecency");function pf(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.phase!==void 0&&!(Array.isArray(n.phase)?n.phase:[n.phase]).includes(e.phase)):!0}i(pf,"runMatchesFilter");function Vn(e,n,t,r,o){if(t.terminalEmitted)return;t.phase=r,t.endedAt=new Date().toISOString(),t.terminalEmitted=!0;let a=r==="completed"?"completed":r==="cancelled"?"cancelled":r==="interrupted"?"interrupted":"failed";t.terminal={revision:1,kind:a,code:o?.code??Rf(a),effectOutcome:o?.effectOutcome??(a==="interrupted"?"unknown":"known"),...o?.message!==void 0?{message:o.message}:{}};let d=r==="completed"?"run.completed":r==="cancelled"?"run.cancelled":r==="interrupted"?"run.interrupted":"run.failed";bn(e,n,t,we(t)),e.emit(d,we(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}})}i(Vn,"markRunTerminal");function bn(e,n,t,r){try{n.saveRunStatus(r)}catch(o){let a=t?.turnId??r.turnId;e.emit("runtime.warning",{message:`Failed to save runtime run status for ${r.runId}: ${se(o).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...a!==void 0?{turnId:a}:{}})}}i(bn,"saveRunStatusSafely");function Kt(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(Kt,"isTerminalRunPhase");function ff(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}i(ff,"workflowEventType");function gf(e){return e==="completed"||e==="failed"||e==="cancelled"}i(gf,"isFinalWorkflowStatus");function Rf(e){return e==="completed"?"completed":e==="failed"?"run_failed":e==="cancelled"?"cancelled":"interrupted"}i(Rf,"defaultRuntimeTerminalCode");function nd(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(nd,"classifyRuntimeRunFailure");function td(e,n){if(!n.hadProviderCredential)return se(e);let t=new Error("Provider run failed while using a run-scoped credential.");return t.name="KodaXProviderRunError",t}i(td,"normalizeRuntimeRunError");function yf(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(yf,"permissionMatchesFilter");function wf(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}i(wf,"decisionToPermissionDecision");function hf(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(hf,"autoModeEscalationRisk");var vf=8;function si(e){return F.resolve(e.start?.options.context?.executionCwd??e.start?.options.context?.gitRoot??process.cwd())}i(si,"resolveRuntimeExecutionCwd");function ai(e){return e.kind==="tool"&&e.name==="auto-mode"&&"getEngine"in e&&typeof e.getEngine=="function"&&"consumeAllowedCall"in e&&typeof e.consumeAllowedCall=="function"}i(ai,"isRuntimeAutoModeGuardrail");function Sf(e){if(fe(e.permissionMode)==="auto")return e.start?.options.guardrails?.find(ai)}i(Sf,"getRuntimeAutoModeGuardrail");function mi(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(a=>typeof a=="symbol"))throw new Error("Tool input must not contain symbol properties.");if(Array.isArray(e)){let a=r.filter(d=>d!=="length"&&typeof d=="string").map(d=>{let u=Number(d);if(!Number.isInteger(u)||u<0||u>=e.length||String(u)!==d)throw new Error("Tool input arrays must not contain named properties.");return{index:u,key:d}}).sort((d,u)=>d.index-u.index);return`array:${e.length}:[${a.map(({key:d})=>`${d}:${rd(e,d,n)}`).join("")}]`}return`object:{${r.filter(a=>typeof a=="string").sort().map(a=>`${mi(a,n)}${rd(e,a,n)}`).join("")}}`}finally{n.delete(e)}}i(mi,"serializeRuntimeToolInput");function rd(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 mi(r.value,t)}i(rd,"serializeRuntimeDataProperty");function Ft(e){try{let n=mi(e.input);return ad("sha256").update(`${e.id}\0${e.name}\0${n}`).digest("hex")}catch{return}}i(Ft,"runtimeAutoModeDecisionKey");function kf(e){let n=new Set;return{...e,beforeTool:i(async(t,r)=>{if(!e.beforeTool)return{action:"block",reason:"Runtime auto-mode guardrail has no beforeTool hook."};let o=await e.beforeTool(t,r);if(o.action==="allow"){let a=Jt(t),d=a?.ok?a.call:t,u=Ft(d);u!==void 0&&n.add(u)}return o},"beforeTool"),consumeAllowedCall(t){let r=Ft(t);return r===void 0||!n.has(r)?!1:(n.delete(r),!0)},clearAllowedCalls(){n.clear()}}}i(kf,"createRuntimeOwnedAutoModeGuardrail");function If(e){let n=new Set,t,r,o=i(async()=>{let a=(await e.settingsOwner.read(e.sessionId)).value,d=e.getRecord();if(d&&(d.permissionMode=a.permissionMode,d.autoModeEngine=fe(a.permissionMode)==="auto"?a.autoModeEngine??"llm":a.autoModeEngine,d.autoModeClassifierModel=a.autoModeClassifierModel,d.autoModeTimeoutMs=a.autoModeTimeoutMs,d.autoModeSpeculativeWindowMs=a.autoModeSpeculativeWindowMs),r=vd(a,d?.model??e.model),r){t=void 0;return}let u=await bf({...e,settings:a});return t=u,u},"resolveGuardrail");return{kind:"tool",name:"auto-mode",async prepare(){if(await o(),r)throw r},async beforeTool(a,d){let u=await o();if(!u?.beforeTool)return r?{action:"block",reason:r.message}:{action:"allow"};t=u;let p=await u.beforeTool(a,d);if(p.action==="allow"){let w=Jt(a),l=w?.ok?w.call:a;u.consumeAllowedCall(l);let s=Ft(l);s!==void 0&&n.add(s)}return p},getEngine(){if(t)return t.getEngine();let a=e.settingsOwner.peek(e.sessionId)?.value;return fe(a?.permissionMode)==="auto"?a?.autoModeEngine??"llm":"rules"},consumeAllowedCall(a){let d=Ft(a);return d===void 0||!n.has(d)?!1:(n.delete(d),!0)},clearAllowedCalls(){n.clear(),t?.clearAllowedCalls()}}}i(If,"createRuntimeSessionAutoModeGuardrail");async function bf(e){if(fe(e.settings.permissionMode)!=="auto")return;let n=e.settings.autoModeEngine??"llm",t=e.states.get(e.sessionId);t===void 0?(t={engine:n,denials:Qt(),breaker:Yt()},e.states.set(e.sessionId,t)):t.engine=n;let r=F.resolve(e.options.context?.executionCwd??e.settings.executionCwd??e.options.context?.gitRoot??process.cwd()),o=F.resolve(e.options.context?.gitRoot??r),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]),d=e.cache.get(e.sessionId)??new Map;e.cache.set(e.sessionId,d);let u=d.get(a);if(u?.engine===n)return u.guardrail;u&&d.delete(a);let p,w=await Ji({askUser:i(async(s,g,c)=>{let v=e.getRecord();if(!v)return"block";let f=v.phase;v.phase==="running"&&(v.phase="waiting_permission");try{let k=await e.permissions.requestOwned({sessionId:e.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{},toolCallId:s.id,toolName:s.name,reason:g.slice(0,512),risk:hf(c),inputPreview:Pn(s.input),executionCwd:r},{toolInput:s.input,projectRoot:o,...c!==void 0?{signals:c}:{}});return k.type==="allow_once"||k.type==="allow_session"||k.type==="allow_always"?"allow":"block"}finally{v.phase==="waiting_permission"&&(v.phase=f==="queued"?"running":f)}},"askUser"),projectRoot:o,executionCwd:r,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:[zi],onEngineChange:i(s=>{p&&(p.engine=s),e.onEngineChange(s)},"onEngineChange")}),l=kf(w.getGuardrail());for(p={projectRoot:o,executionCwd:r,engine:l.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:l},d.set(a,p);d.size>vf;){let s=d.keys().next().value;if(s===void 0||s===a)break;d.get(s)?.guardrail.clearAllowedCalls(),d.delete(s)}return l}i(bf,"createRuntimeAutoModeGuardrail");function id(e,n,t){if(cd.has(n))return!0;let r=fe(e.permissionMode);if(r===void 0)return;let o=e.start?.options.context?.gitRoot??e.start?.options.context?.executionCwd,a=o===void 0?void 0:F.resolve(o),d=si(e);if(r==="plan"){let u=Wi(n,t,a,d);return u===null?!0:`${u} Finish the plan before switching to a writable permission mode.`}if(e.permissionBroker!=="client"){if(n==="bash"){let u=typeof t.command=="string"?t.command:"";if(Xi(u))return!0;if(a&&Bi(u,a,d))return}if(a&&Fi.has(n)){let u=typeof t.path=="string"?t.path:void 0;if(u&&Ui(Si(u,d),a))return}return $i(r).has(n)?void 0:!0}}i(id,"resolveRuntimePermissionPolicy");function od(e){return e?e.type==="allow_once"||e.type==="allow_session"||e.type==="allow_always"?!0:e.reason??!1:!1}i(od,"decisionToToolDecision");var Pf=8192,Qn=16384,sd=16,Ef={command:2048,description:1024,file_path:1024,path:1024,paths:1024,cwd:1024,url:1024,preview:2048},xf=/(?:api[_-]?key|authorization|cookie|credential|password|secret|token)/i;function di(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]
|
|
73
|
+
`).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(di,"redactPermissionPreviewString");function Pn(e){try{return Df(e)}catch{return'{"__truncated":true}'}}i(Pn,"previewInput");function Df(e){let n={},t=!0;for(let[o,a]of Object.entries(Ef)){let d=Object.getOwnPropertyDescriptor(e,o);if(!d||!d.enumerable||!("value"in d))continue;if(xf.test(o)){n[o]="[REDACTED]";continue}let u=d.value;if(typeof u=="string"){let p=u.slice(0,Qn),w=di(p);n[o]=w.length<=a?w:`${w.slice(0,Math.max(0,a-1))}\u2026`,t||=u.length>p.length||w.length>a;continue}if(o==="paths"&&Array.isArray(u)){let p=[];for(let w of u.slice(0,sd)){if(typeof w!="string"){t=!0;continue}let l=w.slice(0,Qn),s=di(l);p.push(s.slice(0,a)),t||=w.length>l.length||s.length>a}t||=u.length>sd,n[o]=p;continue}if(typeof u=="boolean"||typeof u=="number"||typeof u=="bigint"){n[o]=typeof u=="bigint"?u.toString():u;continue}t=!0}t&&(n.__truncated=!0);let r=JSON.stringify(n);return r.length<=Pf?r:'{"__truncated":true}'}i(Df,"buildPermissionInputPreview");function Mf(e){if(e.length>Qn)return Pn({preview:e.slice(0,Qn)});try{let n=JSON.parse(e);return Pn(W(n)?n:{value:n})}catch{return Pn({preview:e})}}i(Mf,"normalizePermissionInputPreview");function se(e){return e instanceof Error?e:new Error(String(e))}i(se,"normalizeError");function pi(e,n){return Object.assign(new Error(e),{code:"conflict",currentRevision:n})}i(pi,"createRuntimeConflictError");function Af(e){return Object.assign(new Error(e),{code:"resync_required"})}i(Af,"createRuntimeResyncError");function bd(e){return Object.assign(new Error(e),{code:"invalid_input"})}i(bd,"createRuntimeInvalidInputError");function Tf(e){return Object.assign(new Error(e),{code:"credential_unavailable"})}i(Tf,"createRuntimeCredentialUnavailableError");function Cf(){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(Cf,"createUnsupportedCredentialService");function _f(){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(_f,"createUnsupportedHostToolService");function ri(e,n){if(!n(e))return;let t=new Error(`Session has an active run and cannot be mutated: ${e}`);throw Object.defineProperty(t,"code",{configurable:!0,enumerable:!0,value:"conflict"}),t}i(ri,"assertSessionMutationAllowed");function Of(e,n){if(!("ok"in n))throw new Error(`Session is running and cannot be deleted: ${e}`)}i(Of,"assertDeleteSucceeded");function Lf(e){return structuredClone(e)}i(Lf,"cloneMessage");export{hr as a,je as b,vr as c,un as d,Ge as e,gt as f,xt as g,$s as h,Hs as i,Pc as j,Ec as k,Ce as l,tn as m,fy as n,gy as o,Ry as p,yy as q,wy as r,Om as s,ld as t};
|