@kodax-ai/kodax 0.7.77 → 0.7.78
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 +176 -4
- package/README.md +200 -64
- package/README_CN.md +153 -49
- package/config-templates/config.example.jsonc +114 -32
- package/dist/chunks/agent-ASP4MS3X.js +2 -0
- package/dist/chunks/argument-completer-JYQ7FX3W.js +2 -0
- package/dist/chunks/{chunk-XSA37BVM.js → chunk-2CFHBKRE.js} +1 -1
- package/dist/chunks/chunk-35PPHOQ2.js +292 -0
- package/dist/chunks/chunk-43QNNDHR.js +29 -0
- package/dist/chunks/chunk-5BNQXXGY.js +1 -0
- package/dist/chunks/chunk-5GO6FH7L.js +458 -0
- package/dist/chunks/{chunk-FSXI4MAV.js → chunk-5NDCSFOP.js} +14 -14
- package/dist/chunks/{chunk-3DD4QEBH.js → chunk-6FOJVETH.js} +10 -10
- package/dist/chunks/chunk-6XM4B6K2.js +48 -0
- package/dist/chunks/chunk-6YZUE6NC.js +240 -0
- package/dist/chunks/{chunk-HORNWBYR.js → chunk-7OEBJGHK.js} +1 -1
- package/dist/chunks/{chunk-OAMKECRG.js → chunk-KQLQYHWU.js} +205 -200
- package/dist/chunks/{chunk-IQT4RPCE.js → chunk-NXO6GWSY.js} +2 -2
- package/dist/chunks/chunk-T2XZTLYE.js +316 -0
- package/dist/chunks/chunk-TQDBTTIM.js +348 -0
- package/dist/chunks/{chunk-FNW2XUL5.js → chunk-UID7BLAB.js} +1 -1
- package/dist/chunks/chunk-VAT2QYXM.js +765 -0
- package/dist/chunks/chunk-YAZQTC2L.js +5 -0
- package/dist/chunks/chunk-YVRYHC4C.js +655 -0
- package/dist/chunks/{chunk-EH7AOMJ7.js → chunk-Z3KFRTSB.js} +1 -1
- package/dist/chunks/compaction-config-BQSSIWK5.js +2 -0
- package/dist/chunks/{construction-bootstrap-RPRL3L7R.js → construction-bootstrap-VQLQGWPY.js} +1 -1
- package/dist/chunks/{dist-FDSOIR35.js → dist-BFT5YIGU.js} +1 -1
- package/dist/chunks/dist-PCFE24YP.js +2 -0
- package/dist/chunks/host-UTFXCYYM.js +2 -0
- package/dist/chunks/run-manager-PJU3WIFJ.js +2 -0
- package/dist/chunks/utils-SID4HW2Q.js +2 -0
- package/dist/index.d.ts +18 -17
- package/dist/index.js +6 -6
- package/dist/kodax_cli.js +1751 -1352
- package/dist/kodax_resume.js +17 -17
- package/dist/runtime-worker.js +1680 -1299
- package/dist/sandbox-workspace-session.js +563 -0
- package/dist/sdk-a2a.d.ts +16 -16
- package/dist/sdk-a2a.js +8 -8
- package/dist/sdk-agent.d.ts +275 -60
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +33 -165
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +2 -2
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +2 -1
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +67 -25
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +194 -147
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.d.ts +93 -0
- package/dist/sdk-sandbox.js +2 -0
- package/dist/sdk-session.d.ts +6 -7
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.d.ts +2 -2
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +15 -15
- package/dist/types-chunks/{bash-prefix-extractor.d-pZdu6qt7.d.ts → bash-prefix-extractor.d-uAe2Oqda.d.ts} +126 -8
- package/dist/types-chunks/{capsule.d-CxCm1KZz.d.ts → capsule.d-BlSv9l3V.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-CJx9RRd3.d.ts → guardrail.d-BRE_ErEj.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-B0PwAZVR.d.ts → guardrail.d-CXDYRgZ3.d.ts} +200 -34
- package/dist/types-chunks/{history-retrieval.d-B__aEN62.d.ts → history-retrieval.d-DtCy7x64.d.ts} +1 -1
- package/dist/types-chunks/{integration-config.d-ojG4swOP.d.ts → integration-config.d-BNowXE8k.d.ts} +23 -8
- package/dist/types-chunks/{public-api.d--fF88JrC.d.ts → public-api.d-B3AohsxN.d.ts} +36 -7
- package/dist/types-chunks/{commands.d-BccESAMV.d.ts → repl.d-Ie_ZXb_U.d.ts} +89 -78
- package/dist/types-chunks/{side-query.d-5JvXhuOZ.d.ts → resolver.d-iAQ9ocLB.d.ts} +3 -66
- package/dist/types-chunks/{run-manager.d-B47hIqnI.d.ts → run-manager.d-D1twIhF9.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-CLWf8Adb.d.ts → sdk-session-DB9KksIx.d.ts} +2 -2
- package/dist/types-chunks/side-query.d-DTuLPcC5.d.ts +77 -0
- package/dist/types-chunks/{types-LanCEDj8.d.ts → types-D3g6XUQr.d.ts} +41 -2
- package/dist/types-chunks/{types.d-RdWRfUEs.d.ts → types.d-BA-Jwpfs.d.ts} +459 -7
- package/dist/types-chunks/{types.d-CODuyyqy.d.ts → types.d-BH0ZkTGf.d.ts} +1 -1
- package/dist/types-chunks/{types.d-DCQVBqVn.d.ts → types.d-BbtGlKZu.d.ts} +25 -3
- package/dist/types-chunks/{types.d-DCsKM8aT.d.ts → types.d-DVDTIfB_.d.ts} +2 -2
- package/dist/types-chunks/{utils.d-CDduqbFw.d.ts → utils.d-CVp6bFl9.d.ts} +22 -6
- package/docs/SDK_EMBEDDER_GUIDE.md +399 -55
- package/package.json +8 -1
- package/dist/chunks/agent-NGSWFE73.js +0 -2
- package/dist/chunks/argument-completer-WGGZPEEO.js +0 -2
- package/dist/chunks/chunk-27QLRH3D.js +0 -5
- package/dist/chunks/chunk-2MQPVY6P.js +0 -770
- package/dist/chunks/chunk-6WAPVAGQ.js +0 -74
- package/dist/chunks/chunk-AOENDSVN.js +0 -448
- package/dist/chunks/chunk-HV2GMZUZ.js +0 -343
- package/dist/chunks/chunk-JS2BHGJP.js +0 -158
- package/dist/chunks/chunk-ON2WG2LG.js +0 -622
- package/dist/chunks/chunk-RUGAAHTF.js +0 -321
- package/dist/chunks/chunk-TGCG7U2W.js +0 -37
- package/dist/chunks/compaction-config-BE7VYWH6.js +0 -2
- package/dist/chunks/dist-ZZBNVTKU.js +0 -2
- package/dist/chunks/host-QAKQVC4A.js +0 -2
- package/dist/chunks/run-manager-N4UFWA2D.js +0 -2
- package/dist/chunks/utils-AUHCI4D5.js +0 -2
- package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +0 -91
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{Cb as ho,Eb as wo,Fb as vo,Nb as So,Ob as Io,Pb as ko,Qb as bo,Rb as fr,Wa as yo,fc as Po,gc as Eo}from"./chunk-RUGAAHTF.js";import{C as fo,D as go,Fa as Ro,j as oo,k as so,m as ve,q as lo,v as mo,x as po}from"./chunk-ON2WG2LG.js";import{K as pr,M as ao,T as uo,U as co,m as mr}from"./chunk-JS2BHGJP.js";import{aa as ut,e as eo,ja as cr,pa as lr,sa as to,ua as ro,va as io,w as no,ya as ct}from"./chunk-AOENDSVN.js";import{Dc as Yi,Ib as dr,Oc as gn,Vd as Qi,Xd as Zi,a as jn,b as tr,cd as ur,qb as $n}from"./chunk-OAMKECRG.js";import{Aa as st,Ta as _i,a as nr,c as Ve,ya as Ci}from"./chunk-FSXI4MAV.js";import{Cc as ar,Ja as dt,Ka as Fi,Ma as qn,Sa as ji,Sc as Ui,Yb as or,id as Wi,oe as Gi,se as Ji,te as Vi,uc as sr,xd as zi}from"./chunk-2MQPVY6P.js";import{H as Ki,X as Xi,Z as ir,c as Oi,d as oe,g as Ni,ga as Bi,i as at,j as Li}from"./chunk-TGCG7U2W.js";import{F as Hi,b as qi,d as rr,e as $i}from"./chunk-XSA37BVM.js";import{a as o}from"./chunk-ONUPGMER.js";import{createHash as Md,randomUUID as Re}from"node:crypto";import*as N from"node:fs";import Cd from"node:os";import j from"node:path";import{createHash as eu}from"node:crypto";import Hn from"node:path";var nu=["path","file_path"],tu=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function yr(e){let n=e.platform??mt();if(e.toolName==="bash")return iu(e,n);let t=tu.has(e.toolName)?nu.map(a=>e.toolInput[a]).find(a=>typeof a=="string"&&a.length>0):void 0;if(t!==void 0)return su(e.toolName,t,e.executionCwd,n);let r=wr(e.executionCwd,e.executionCwd,n),s=Ye(uu(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:s,fingerprint:Ye({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:s})}}o(yr,"createRuntimePermissionMatcher");function xo(e,n){if(e.toolName!==n.toolName)return!1;let t=yr(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}o(xo,"runtimePermissionMatcherMatches");function Do(e){if(!cu(e)||e.version!==1||typeof e.toolName!="string"||typeof e.fingerprint!="string")throw new Error("invalid Runtime permission matcher");if(e.kind==="exact-command"){if(e.shell!=="cmd"&&e.shell!=="posix"&&e.shell!=="powershell"||!lt(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!lt(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!lt(e.argvFingerprint))throw new Error("invalid Runtime command permission matcher");let n={version:1,kind:"exact-command",toolName:e.toolName,fingerprint:e.fingerprint,shell:e.shell,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:e.commandFingerprint,cwd:e.cwd,background:e.background,...e.executable!==void 0?{executable:e.executable}:{},...e.argvFingerprint!==void 0?{argvFingerprint:e.argvFingerprint}:{}};return gr(n,{version:1,kind:"exact-command",toolName:n.toolName,shell:n.shell,...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{},commandFingerprint:n.commandFingerprint,cwd:n.cwd,...n.executable!==void 0?{executable:n.executable}:{},...n.argvFingerprint!==void 0?{argvFingerprint:n.argvFingerprint}:{},background:n.background}),n}if(e.kind==="exact-path"&&typeof e.path=="string"){let n={version:1,kind:"exact-path",toolName:e.toolName,fingerprint:e.fingerprint,path:e.path};return gr(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&<(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return gr(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}o(Do,"parseRuntimePermissionMatcher");function gr(e,n){if(Ye(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}o(gr,"assertMatcherFingerprint");function ru(e,n){return n==="win32"?/%[^%\r\n]+%|![^!\r\n]+!|\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[?^$])|%(?:\*|[0-9]|~[A-Za-z]*[0-9])|%%[A-Za-z]/i.test(e):/\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[0-9@*#?$!_-])|`/.test(e)}o(ru,"hasDynamicShellExpansion");function hr(e,n){return ru(e,n==="posix"?"posix":"win32")}o(hr,"hasDynamicExpansionForPermissionShell");function mt(){return process.platform==="win32"?"win32":"posix"}o(mt,"runtimePermissionHostPlatform");function iu(e,n){let t=e.toolInput.command,r=typeof t=="string"?au(t):"",s=wr(e.executionCwd,e.executionCwd,n),a=e.toolInput.run_in_background===!0,d=e.shell??(n==="win32"?"cmd":"posix"),u=du(r,d),p=ou(u?.[0],n),f=u&&u.length>1?Ye(u.slice(1)):void 0,S=Ye(r),i={version:1,kind:"exact-command",toolName:e.toolName,shell:d,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:S,cwd:s,...p!==void 0?{executable:p}:{},...f!==void 0?{argvFingerprint:f}:{},background:a};return{...i,fingerprint:Ye(i)}}o(iu,"createExactCommandMatcher");function ou(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?Hn.win32.basename(e.replaceAll("/","\\")):Hn.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}o(ou,"safeExecutableMetadata");function su(e,n,t,r){let s=wr(n,t,r),a={version:1,kind:"exact-path",toolName:e,path:s};return{...a,fingerprint:Ye(a)}}o(su,"createExactPathMatcher");function au(e){return e.replace(/\r\n?/g,`
|
|
3
|
-
`).trim()}o(au,"normalizeCommand");function wr(e,n,t){if(t==="win32"){let r=Hn.win32.resolve(n.replaceAll("/","\\"));return Hn.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return Hn.posix.resolve(n,e)}o(wr,"normalizePermissionPath");function du(e,n){if(e.length===0||e.includes("\0")||e.includes(`
|
|
4
|
-
`))return;let t=[],r="",s;for(let a=0;a<e.length;a+=1){let d=e[a]??"";if(n!=="cmd"&&d==="'"&&s!=="double"){s=s==="single"?void 0:"single";continue}if(d==='"'&&s!=="single"){s=s==="double"?void 0:"double";continue}if(d===(n==="cmd"?"^":n==="powershell"?"`":"\\")&&s!=="single"&&a+1<e.length){r+=e[a+1]??"",a+=1;continue}if(/\s/.test(d)&&s===void 0){r.length>0&&t.push(r),r="";continue}r+=d}if(s===void 0)return r.length>0&&t.push(r),t.length>0?t:void 0}o(du,"tokenizeShellCommand");function uu(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}o(uu,"normalizeGenericInput");function Ye(e){return eu("sha256").update(Rr(e)).digest("hex")}o(Ye,"stableFingerprint");function Rr(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(Rr).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${Rr(n[t])}`).join(",")}}`}o(Rr,"stableSerialize");function lt(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}o(lt,"isSha256");function cu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(cu,"isRecord");import{createHash as lu}from"node:crypto";import Pe from"node:fs";import be from"node:path";function Rn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Rn,"isRecord");function To(e){return Rn(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"&&Rn(e.capabilities)&&Rn(e.effects):!1}o(To,"isRegistration");function mu(e){return Rn(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"&&Rn(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}o(mu,"isTask");function pu(e){return Rn(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}o(pu,"isEvent");function Mo(e){try{return JSON.parse(Pe.readFileSync(e,"utf8"))}catch(n){let t=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse Runtime agent store file ${e}: ${t}`)}}o(Mo,"parseJson");function Ao(e,n){if(!Pe.existsSync(e))return[];let t=Mo(e);if(!Array.isArray(t)||!t.every(n))throw new Error(`Runtime agent store file has an invalid array shape: ${e}`);return structuredClone(t)}o(Ao,"readList");function vr(e,n){Pe.mkdirSync(be.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;Pe.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
5
|
-
`,{encoding:"utf8",mode:384}),Pe.renameSync(t,e)}o(vr,"writeJsonAtomic");function pt(e,n){let t=lu("sha256").update(n).digest("hex");return be.join(e,t)}o(pt,"taskDirectory");function fu(e,n){if(!Pe.existsSync(e))return[];let t=Pe.readFileSync(e,"utf8").trim();if(!t)return[];let r=0;return t.split(/\r?\n/).map((s,a)=>{let d;try{d=JSON.parse(s)}catch(u){let p=u instanceof Error?u.message:String(u);throw new Error(`Invalid Runtime agent event at ${e}:${a+1}: ${p}`)}if(!pu(d))throw new Error(`Invalid Runtime agent event shape at ${e}:${a+1}`);if(d.taskId!==n)throw new Error(`Runtime agent event taskId does not match its ledger at ${e}:${a+1}`);if(d.seq<=r)throw new Error(`Runtime agent events require a strictly increasing positive sequence at ${e}:${a+1}`);return r=d.seq,d})}o(fu,"readEvents");function Co(e){let n=be.resolve(e),t=be.join(n,"registrations.json"),r=be.join(n,"task-registration-snapshots.json"),s=be.join(n,"tasks");return{async loadRegistrations(){return Ao(t,To)},async saveRegistrations(a){vr(t,a)},async loadTaskRegistrationSnapshots(){return Ao(r,To)},async saveTaskRegistrationSnapshots(a){vr(r,a)},async loadTasks(){if(!Pe.existsSync(s))return[];let a=[];for(let u of Pe.readdirSync(s,{withFileTypes:!0})){if(!u.isDirectory())continue;let p=be.join(s,u.name,"snapshot.json");if(!Pe.existsSync(p))continue;let f=Mo(p);if(!mu(f))throw new Error(`Invalid Runtime agent task shape: ${p}`);a.push({directoryName:u.name,file:p,task:f})}let d=new Set;for(let{task:u}of a){if(d.has(u.taskId))throw new Error(`Duplicate Runtime agent taskId: ${u.taskId}`);d.add(u.taskId)}for(let{directoryName:u,file:p,task:f}of a){let S=be.basename(pt(s,f.taskId));if(u!==S)throw new Error(`Runtime agent task directory does not match taskId hash: ${p}`)}return a.map(({task:u})=>u)},async saveTask(a){vr(be.join(pt(s,a.taskId),"snapshot.json"),a)},async loadEvents(a){return fu(be.join(pt(s,a),"events.jsonl"),a)},async appendEvent(a){let d=be.join(pt(s,a.taskId),"events.jsonl");Pe.mkdirSync(be.dirname(d),{recursive:!0}),Pe.appendFileSync(d,`${JSON.stringify(a)}
|
|
6
|
-
`,{encoding:"utf8",mode:384})}}}o(Co,"createRuntimeAgentExecutorPlaneStore");import{createHash as Bo,randomUUID as ft}from"node:crypto";import yn from"node:fs";import{mkdir as Uo,readFile as Wo}from"node:fs/promises";import ne from"node:path";var zo=["read","grep","glob"],Go=["write","edit","multi_edit","insert_after_anchor"],Jo=["mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt"],gu=["list_dispatchable_agents","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output"],Ru=new Set([...zo,...Go]),yu=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),hu=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]);function Ir(e){return Array.isArray(e)?e.map(Ir):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,Ir(t)]))}o(Ir,"canonicalValue");function Qe(e){return Bo("sha256").update(JSON.stringify(Ir(e))).digest("hex")}o(Qe,"stableHash");function Vo(e){let n=Bo("sha256");for(let t of e)n.update(t);return n.digest("hex")}o(Vo,"hashParts");function gt(e,n){let t=ne.relative(ne.resolve(e),ne.resolve(n));return t===""||!t.startsWith("..")&&!ne.isAbsolute(t)}o(gt,"isInside");function kr(e){if(!yn.existsSync(e))return 0;let n=0;for(let t of yn.readdirSync(e,{withFileTypes:!0})){let r=ne.join(e,t.name);t.isSymbolicLink()||(t.isDirectory()?n+=kr(r):t.isFile()&&(n+=yn.statSync(r).size))}return n}o(kr,"directoryBytes");function _o(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<=0)throw new Error("Runtime workspace byte limit must be positive.");return e}}o(_o,"validateWorkspaceByteLimit");function Sr(e){if(e.mode==="managed")return{mode:"managed"};if(!ne.isAbsolute(e.root))throw new Error("Fixed Runtime workspace root must be absolute.");return{mode:"fixed",root:ne.resolve(e.root)}}o(Sr,"normalizedWorkspace");function br(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(s=>{if(typeof s!="string"||s.trim().length===0||s.includes("*"))throw new Error(`${n} must contain exact names without wildcards.`);return s.trim()});if(new Set(r).size!==r.length)throw new Error(`${n} contains duplicates.`);return r.sort()}o(br,"exactList");function Oo(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,br(r,`${n}.${t}`,!1)]}))}o(Oo,"exactMap");function No(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:br(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=Oo(e.skillScripts,"Runtime toolPolicy.skillScripts"),s=Object.values(r).reduce((a,d)=>a+d.length,0);if(e.process==="deny"!=(s===0))throw new Error("Runtime isolated process authority and skillScripts must be enabled together.");return{workspace:e.workspace,process:e.process,network:t,tools:br(e.tools,"Runtime toolPolicy.tools"),mcp:Oo(e.mcp,"Runtime toolPolicy.mcp"),skillScripts:r,subagents:e.subagents}}o(No,"validatedToolPolicy");function wu(e){return e==="project"?"workspace":e}o(wu,"skillSource");function vu(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))}o(vu,"skillFiles");async function Su(e){let n=[e.name,e.rawContent];for(let t of vu(e))n.push(t.relativePath,await Wo(t.path));return Vo(n)}o(Su,"skillRevision");var Pr=class{static{o(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 Yo(e){let n=e.workspace.mode==="fixed"?e.workspace.root:void 0,t=Ki(n),r=t.userPaths.filter(f=>ne.basename(ne.dirname(f))===".agents"),s=new Xi(n,{projectPaths:e.workspace.mode==="managed"?[]:t.projectPaths,userPaths:[ne.join(e.configHome,"skills"),...r],pluginPaths:t.pluginPaths,builtinPath:t.builtinPath});await s.discover();let a=s.list(),u=e.selection===void 0||e.selection.includes("*")?a.filter(f=>f.source!=="project"&&!f.disableModelInvocation):e.selection.map(f=>{let S=s.get(f);if(!S)throw new Error(`Markdown Agent requires unknown Skill "${f}".`);if(S.disableModelInvocation)throw new Error(`Skill "${f}" disables model invocation.`);return S}),p=[];for(let f of u.sort((S,i)=>S.name.localeCompare(i.name))){let S=await Su(await s.loadFull(f.name));p.push({name:f.name,source:wu(f.source),revision:S})}return{registry:new Pr(s,u),refs:p,revision:Qe(p)}}o(Yo,"resolveSkills");function Iu(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 s=new Set(t.network.mode==="allowlist"?t.network.origins:[]);if(n.networkOrigins.some(a=>!s.has(new URL(a).origin)))throw new Error(`Remote tool "${e}" requires a network origin outside toolPolicy.`)}o(Iu,"validateRemoteContract");function Lo(e){let n=new Set;e.policy.workspace!=="none"&&zo.forEach(a=>n.add(a)),e.policy.workspace==="write"&&Go.forEach(a=>n.add(a)),e.hasSkills&&n.add("skill"),e.hasSkillScripts&&n.add("run_skill_script"),Object.keys(e.policy.mcp).length>0&&Jo.forEach(a=>n.add(a)),e.policy.subagents==="inherit"&&gu.forEach(a=>n.add(a));let t=new Map(ur().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.`);Iu(a,d,e.policy),r.set(a,d),n.add(a)}let s=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.`);s.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,s.get(u)]))}}return{tools:[...n].sort(),contracts:r,registrations:s}}o(Lo,"resolveToolSurface");function Fo(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
|
-
`)}o(Fo,"skillsPrompt");function jo(e,n){let r=ne.relative(n,e).split(ne.sep).map(s=>s.toLowerCase());return r.some(s=>yu.has(s))||r.some(s=>hu.has(s)||s.startsWith(".env."))}o(jo,"sensitivePath");function ku(e){let n=e;for(;!yn.existsSync(n);){let t=ne.dirname(n);if(t===n)throw new Error("Tool path has no existing parent.");n=t}return n}o(ku,"nearestExistingPath");function bu(e,n){let t=yn.realpathSync(e),r=ku(n),s=yn.realpathSync(r);if(!gt(t,s))throw new Error("Tool path escapes the bound workspace through a link.");let a=ne.resolve(s,ne.relative(r,n));if(!gt(t,a))throw new Error("Tool path escapes the bound workspace through a link.");return{root:t,candidate:a}}o(bu,"resolveRealToolPath");function Kn(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=ne.resolve(e,n);if(!gt(e,t))throw new Error("Tool path escapes the bound workspace.");let r=bu(e,t);if(jo(t,e)||jo(r.candidate,r.root))throw new Error("Secret-bearing paths are unavailable to remote Agents.");return t}o(Kn,"resolveToolPath");function qo(){return{beforeToolExecute:o(async()=>!0,"beforeToolExecute")}}o(qo,"remoteRunEvents");function Pu(e,n,t){if(!Jo.includes(e))return;if(e==="mcp_search"){let f=n.server;if(typeof f!="string"||t.mcp[f]===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 s=/^mcp:([^:]+):(tool|resource|prompt):(.+)$/.exec(r);if(!s)throw new Error("MCP capability id is invalid.");let[,a,d,u]=s,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.")}o(Pu,"authorizeMcp");function Eu(e){return{async resolveReadablePath(n){return Kn(e,n)??e},async stageOutput(n){let t=ft(),r=ne.basename(n).replace(/[^A-Za-z0-9._-]/g,"_")||"output",s=ne.join(e,".kodax-a2a-staging",`${t}-${r}`);return await Uo(ne.dirname(s),{recursive:!0}),{stagingId:t,path:Kn(e,s)??s}}}}o(Eu,"workspaceBroker");function $o(e,n){return{kind:"tool",name:`runtime-remote-policy:${e.bindingId}`,async beforeTool(t,r){try{if(e.workspaceByteLimit!==void 0&&kr(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(ur().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(Ru.has(t.name)){let d=(t.name==="grep"||t.name==="glob","path");Kn(n,t.input[d])}Pu(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:Eu(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(s){return{action:"block",reason:s instanceof Error?s.message:String(s)}}},async afterTool(){return e.workspaceByteLimit!==void 0&&kr(n)>e.workspaceByteLimit?{action:"block",reason:"Remote workspace byte quota exceeded."}:{action:"allow"}}}}o($o,"createToolGuardrail");async function Ho(e,n,t){let r=await e.sessions.load(t),s=r.workspaceRoot??r.gitRoot;if(!s)throw new Error("Remote Runtime session has no bound workspace.");if(n.workspace.mode==="fixed"&&ne.resolve(s)!==n.workspace.root)throw new Error("Runtime session workspace does not match the fixed binding.");if(n.workspace.mode==="managed"&&!gt(e.managedWorkspaceRoot,s))throw new Error("Runtime session workspace is outside the managed A2A root.");return ne.resolve(s)}o(Ho,"requiredWorkspaceRoot");async function Ko(e,n,t){let r=t.mode==="fixed"?t.root:e.managedWorkspaceRoot,s=await Yi({cwd:r,configHome:e.configHome,userOnly:!0}),a=s.loaded.find(p=>p.name===n.name&&p.source==="markdown:user"),d=s.scope.resolve(n.name);if(!a||!d||d.source!=="markdown:user"){await s.dispose();let p=s.failed.find(f=>ne.basename(f.path,".md")===n.name);throw new Error(p?.reason??`User Markdown Agent not found: ${n.name}`)}let u=Vo([await Wo(a.path)]);try{let p=await Yo({configHome:e.configHome,workspace:t,selection:a.requestedSkills});return{scope:s.scope,loaded:a,configurationRevision:u,skills:p}}catch(p){throw await s.dispose(),p}}o(Ko,"localAgentResources");function Xo(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}}o(Xo,"resolvedLocal");function Qo(e){let n=new Map,t=new Map,r=o(d=>{let u=n.get(d);if(!u)throw new Error("Runtime Agent owner session is not active.");return u},"requireOwner"),s=o((d,u)=>{let p=t.get(u);if(!p||p.ownerSessionId!==d)throw new Error("Runtime Agent binding not found.");return p},"requireBinding"),a=o(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=Sr(d.workspace),p=await Ko(e,d.ref,u);try{return Xo(d.ref,p)}finally{p.scope.dispose()}},async openOwnerSession(){let d=ft();return n.set(d,new Set),{ownerSessionId:d}},async bindDefault(d){let u=r(d.ownerSessionId),p=Sr(d.workspace),f=No(d.toolPolicy),S=_o(d.workspaceByteLimit),i=await Yo({configHome:e.configHome,workspace:p}),l=Object.keys(f.skillScripts).length>0,c=Lo({policy:f,hasSkills:i.refs.length>0,hasSkillScripts:l}),h=l?await e.createSkillScriptRunner?.({registry:i.registry,admissions:f.skillScripts,workspaceAccess:f.workspace,network:f.network,workspaceByteLimit:S}):void 0;if(l&&!h)throw new Error("Runtime isolated Skill script backend is unavailable.");let P=ft(),R=Qe(f),I=Qe(p),k=Qe({kind:"runtime-default",profileId:d.profileId,toolPolicyRevision:R,workspaceBindingRevision:I,skillSetRevision:i.revision,provider:e.defaultProvider,model:e.defaultModel,tools:c.tools,workspaceByteLimit:S});if(d.expectedExecutionPolicyRevision&&d.expectedExecutionPolicyRevision!==k)throw await h?.dispose(),new Error("Runtime default execution policy revision changed.");let x={ownerSessionId:d.ownerSessionId,bindingId:P,kind:"runtime-default",executionPolicyRevision:k,toolPolicyRevision:R,workspaceBindingRevision:I,workspace:p,toolPolicy:f,effectiveTools:c.tools,effectiveSkills:i.refs,skillSetRevision:i.revision,skillRegistry:i.registry,skillScriptRunner:h,remoteContracts:c.contracts,toolRegistrations:c.registrations,workspaceByteLimit:S};return t.set(P,x),u.add(P),{ownerSessionId:d.ownerSessionId,bindingId:P,executionPolicyRevision:k,toolPolicyRevision:R,workspaceBindingRevision:I,skillSetRevision:i.revision,effectiveSkills:i.refs,effectiveTools:c.tools}},async startDefault(d){let u=s(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 Ho(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:o(f=>u.effectiveTools.includes(f.name),"toolVisibilityPolicy"),skillRegistry:u.skillRegistry,skillScriptRunner:u.skillScriptRunner,assertReadablePath:o(f=>{Kn(p,f)},"assertReadablePath"),skillsPrompt:Fo(u.effectiveSkills,u.skillRegistry)},skillDynamicContext:{disable:!0},guardrails:[$o(u,p)],events:qo()}})},async bindLocal(d){let u=r(d.ownerSessionId),p=Sr(d.workspace),f=No(d.toolPolicy),S=_o(d.workspaceByteLimit),i=await Ko(e,d.ref,p),l=Xo(d.ref,i);if(d.expectedConfigurationRevision&&d.expectedConfigurationRevision!==l.configurationRevision)throw i.scope.dispose(),new Error("User Markdown Agent configuration revision changed.");let c=Lo({declared:i.loaded.effectiveTools,policy:f,hasSkills:i.skills.refs.length>0,hasSkillScripts:Object.keys(f.skillScripts).length>0}),h=Object.keys(f.skillScripts).length>0,P=h?await e.createSkillScriptRunner?.({registry:i.skills.registry,admissions:f.skillScripts,workspaceAccess:f.workspace,network:f.network,workspaceByteLimit:S}):void 0;if(h&&!P)throw i.scope.dispose(),new Error("Runtime isolated Skill script backend is unavailable.");let R=ft(),I=Qe(f),k=Qe(p),x=Qe({kind:"local-agent",profileId:d.profileId,configurationRevision:l.configurationRevision,toolPolicyRevision:I,workspaceBindingRevision:k,skillSetRevision:i.skills.revision,tools:c.tools,workspaceByteLimit:S});if(d.expectedExecutionPolicyRevision&&d.expectedExecutionPolicyRevision!==x)throw await P?.dispose(),i.scope.dispose(),new Error("Local Agent execution policy revision changed.");let g=i.scope.resolve(d.ref.name)?.agent;if(!g)throw await P?.dispose(),i.scope.dispose(),new Error(`User Markdown Agent not found: ${d.ref.name}`);let w={ownerSessionId:d.ownerSessionId,bindingId:R,kind:"local-agent",executionPolicyRevision:x,toolPolicyRevision:I,workspaceBindingRevision:k,workspace:p,toolPolicy:f,effectiveTools:c.tools,effectiveSkills:i.skills.refs,skillSetRevision:i.skills.revision,skillRegistry:i.skills.registry,skillScriptRunner:P,remoteContracts:c.contracts,toolRegistrations:c.registrations,workspaceByteLimit:S,scope:i.scope,loadedAgent:i.loaded,agent:g,configurationRevision:i.configurationRevision};return t.set(R,w),u.add(R),{...l,ownerSessionId:d.ownerSessionId,bindingId:R,executionPolicyRevision:x,toolPolicyRevision:I,workspaceBindingRevision:k,effectiveTools:c.tools}},async startLocal(d){let u=s(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 Ho(e,u,d.sessionId),f=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:f,agentScope:u.scope,toolVisibilityPolicy:o(S=>u.effectiveTools.includes(S.name),"toolVisibilityPolicy"),skillRegistry:u.skillRegistry,skillScriptRunner:u.skillScriptRunner,assertReadablePath:o(S=>{Kn(p,S)},"assertReadablePath"),skillsPrompt:Fo(u.effectiveSkills,u.skillRegistry)},skillDynamicContext:{disable:!0},guardrails:[$o(u,p)],events:qo()}})},async prepareWorkspace(d){let u=s(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=ne.join(e.managedWorkspaceRoot,"contexts",d.contextKey);return await Uo(p,{recursive:!0}),p},async releaseBinding(d){r(d.ownerSessionId),await a(s(d.ownerSessionId,d.bindingId))},async closeOwnerSession(d){let u=r(d);for(let p of[...u])await a(s(d,p));n.delete(d)}}}o(Qo,"createRuntimeAgentBindingService");import{spawn as xu,spawnSync as Du}from"node:child_process";import{randomUUID as Dr}from"node:crypto";import{constants as Tu,readdirSync as Au,statSync as Mu}from"node:fs";import{copyFile as ts,lstat as Cu,mkdir as Ze,readFile as Tr,realpath as Xn,rm as Rt,stat as ht,writeFile as Ar}from"node:fs/promises";import{createRequire as _u}from"node:module";import rs from"node:os";import W from"node:path";import{pathToFileURL as Ou}from"node:url";import{SandboxManager as Er,getWindowsSandboxUserStatus as Nu,installWindowsSandbox as Zg,verifyWindowsWfpEgress as Lu}from"@anthropic-ai/sandbox-runtime";var yt="0.0.65",Zo=1048576,Fu=12e4,is=_u(import.meta.url),ju=process.env.KODAX_BUNDLED==="true"?void 0:Ou(is.resolve("@anthropic-ai/sandbox-runtime")).href,qu=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),$u=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]),Hu=JSON.stringify(Fi),es=JSON.stringify(dt),Ku=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', ${Hu}, ...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, [${es}]: '1' }
|
|
31
|
-
: wrapped.env;
|
|
32
|
-
child = spawn(wrapped.argv[0], wrapped.argv.slice(1), { cwd: request.cwd, env: childEnv, shell: false, stdio: 'inherit', windowsHide: true });
|
|
33
|
-
} else {
|
|
34
|
-
const wrapped = await SandboxManager.wrapWithSandbox(command);
|
|
35
|
-
const childEnv = internalElectronNode
|
|
36
|
-
? { ...process.env, [${es}]: '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
|
-
`,xr;function ns(e){return e instanceof Error?e.message:String(e)}o(ns,"errorText");async function Xu(e={}){return e.refresh&&(xr=void 0),xr??=Bu(),xr}o(Xu,"doctorSandboxRuntime");async function Bu(){let e=[];Er.isSupportedPlatform()||e.push(`Unsupported platform: ${process.platform}.`);let n=Er.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 Tr(is.resolve("@anthropic-ai/sandbox-runtime/package.json"),"utf8"));d.version!==yt&&(t=!0,e.push(`ASRT package version mismatch: expected ${yt}, found ${String(d.version)}.`))}catch(d){t=!0,e.push(`ASRT package provenance check failed: ${ns(d)}`)}let r=process.env.KODAX_A2A_NODE??(process.env.KODAX_BUNDLED==="true"?"node":process.execPath),s=qn({args:["--version"],env:ss(),isElectron:r===process.execPath&&process.versions.electron!==void 0}),a=Du(r,s.args,{env:s.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=Nu();!d.provisioned||!d.credPresent||!d.inSandboxGroup?(t=!0,e.push("Windows sandbox account is not fully provisioned.")):await Lu()}catch(d){t=!0,e.push(ns(d))}return{ready:Er.isSupportedPlatform()&&!t,platform:process.platform,version:yt,diagnostics:e,setupRequired:t}}o(Bu,"inspectSandboxRuntime");function Ke(e,n){let t=e.replaceAll("\\","/").replace(/^\.\//,"");if(!t||W.posix.isAbsolute(t)||t.split("/").includes(".."))throw new Error(`${n} must be a safe relative path.`);return t}o(Ke,"canonicalRelative");function Bn(e,n){let t=W.relative(e,n);return t===""||!t.startsWith("..")&&!W.isAbsolute(t)}o(Bn,"isInside");function os(e){let n=e.split(W.sep).map(t=>t.toLowerCase());return n.some(t=>qu.has(t))||n.some(t=>$u.has(t)||t.startsWith(".env."))}o(os,"isSensitiveRelative");async function Uu(e,n){await Ze(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 Ar(W.join(n,"SKILL.md"),await Tr(e.skillFilePath),{mode:384});for(let{folder:r,file:s}of t){let a=Ke(s.relativePath,`Skill ${e.name} support file`),d=W.join(n,r,...a.split("/"));await Ze(W.dirname(d),{recursive:!0,mode:448}),await Ar(d,await Tr(s.path),{mode:384})}}o(Uu,"copySkillSnapshot");async function Wu(e,n){let t=new Map;for(let[r,s]of Object.entries(e.admissions)){let a=await e.registry.loadFull(r),d=new Map((a.scripts??[]).map(p=>[`scripts/${Ke(p.relativePath,`Skill ${r} script`)}`,p])),u=W.join(n,r.replace(/[^A-Za-z0-9._-]/g,"_"));await Uu(a,u);for(let p of s){let f=Ke(p,`toolPolicy.skillScripts.${r}`);if(!d.has(f))throw new Error(`Skill "${r}" has no script "${f}".`);t.set(`${r}\0${f}`,{skill:r,relativePath:f,snapshotPath:W.join(u,...f.split("/"))})}}return t}o(Wu,"snapshotAdmissions");function zu(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}})}o(zu,"networkEndpoints");function ss(){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}o(ss,"sanitizedEnvironment");function Gu(e){let n=W.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"?W.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??W.join(process.env.SystemRoot??"C:\\Windows","System32","cmd.exe"),args:["/d","/s","/c",e]};throw new Error(`Unsupported admitted Skill script type: ${n||"<none>"}.`)}o(Gu,"interpreterFor");async function Ju(e,n){let t=[],r=0,s=o(u=>{r+=u.byteLength,r>Zo?e.kill("SIGTERM"):t.push(u)},"append");e.stdout?.on("data",s),e.stderr?.on("data",s);let a=setTimeout(()=>{e.kill("SIGTERM")},Fu),d=o(()=>{e.kill("SIGTERM")},"abort");n?.addEventListener("abort",d,{once:!0});try{let u=await new Promise((p,f)=>{e.once("error",f),e.once("close",S=>p({code:S??1,stdout:Buffer.concat(t).toString("utf8"),stderr:""}))});if(r>Zo)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)}}o(Ju,"collectProcess");async function Vu(e,n){let t=W.join(rs.tmpdir(),`kodax-asrt-${process.pid}-${Dr()}.json`),r={...e,config:{...e.config,filesystem:{...e.config.filesystem,denyRead:[...e.config.filesystem.denyRead,t]}}};await Ar(t,JSON.stringify(r),{mode:384});try{let s=process.env.KODAX_BUNDLED==="true"?["__asrt-broker",t]:["--input-type=module","-e",Ku,ju,t],a=qn({args:s,env:ss(),isElectron:process.versions.electron!==void 0}),d=xu(process.execPath,a.args,{env:a.env,shell:!1,stdio:["ignore","pipe","pipe"],windowsHide:!0});return(await Ju(d,n)).stdout}finally{await Rt(t,{force:!0})}}o(Vu,"runBroker");async function Yu(e,n){let t=await Xn(e),r=W.resolve(e,Ke(n,"Skill script input")),s=await Xn(r);if(!Bn(t,s)||os(W.relative(t,s)))throw new Error("Skill script input is outside the permitted workspace surface.");if(!(await ht(s)).isFile())throw new Error("Skill script inputs must be files.");return s}o(Yu,"workspaceSource");async function Qu(e,n){let t=await Xn(e),r=W.resolve(e,Ke(n,"Skill script output target"));if(!Bn(W.resolve(e),r)||os(W.relative(W.resolve(e),r)))throw new Error("Skill script output target is outside the permitted workspace surface.");if(await Ze(W.dirname(r),{recursive:!0}),!Bn(t,await Xn(W.dirname(r))))throw new Error("Skill script output target escapes through a symlink.");try{throw await ht(r),new Error("Skill script output target already exists.")}catch(s){if(s.code!=="ENOENT")throw s}return r}o(Qu,"workspaceTarget");async function Zu(e,n,t,r){if(t.inputs.length>0&&r==="none")throw new Error("Skill script inputs require workspace read access.");for(let s of t.inputs){let a=await Yu(e,s.path),d=Ke(s.as??W.basename(a),"Skill script staged input"),u=W.resolve(n,"inputs",...d.split("/"));if(!Bn(W.join(n,"inputs"),u))throw new Error("Skill script staged input escapes staging.");await Ze(W.dirname(u),{recursive:!0,mode:448}),await ts(a,u)}}o(Zu,"stageInputFiles");async function ec(e,n,t,r,s){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=Ke(d.path,"Skill script staged output"),p=W.resolve(n,"outputs",...u.split("/")),f=await Xn(p);if(!Bn(W.join(n,"outputs"),f)||(await Cu(p)).isSymbolicLink()||!(await ht(p)).isFile())throw new Error(`Skill script did not produce output "${u}".`);let S=await Qu(e,d.target);if(s!==void 0&&as(e,!0)+(await ht(p)).size>s)throw new Error("Skill script outputs would exceed the remote workspace byte quota.");await ts(p,S,Tu.COPYFILE_EXCL),a.push(W.relative(e,S))}return a}o(ec,"promoteOutputs");function as(e,n=!1){let t=0;for(let r of Au(e,{withFileTypes:!0})){if(n&&r.name===".kodax-a2a-script"||r.isSymbolicLink())continue;let s=W.join(e,r.name);r.isDirectory()?t+=as(s):r.isFile()&&(t+=Mu(s).size)}return t}o(as,"directorySize");function nc(e,n,t,r){let s=rs.homedir(),a=W.isAbsolute(r)?[r]:[];return{network:{allowedDomains:[],deniedDomains:[],strictAllowlist:t.length===0,allowUnixSockets:[],allowAllUnixSockets:!1,allowLocalBinding:!1},filesystem:{denyRead:[s],allowRead:[e,n,process.execPath,...a],allowWrite:[e],denyWrite:[s]}}}o(nc,"sandboxConfig");async function ds(e){let n=await Xu();if(!n.ready)throw new Error(`ASRT ${yt} is not ready: ${n.diagnostics.join(" ")||"run kodax sandbox setup"}`);let t=W.join(e.snapshotRoot,Dr()),r=W.join(t,"skills");await Ze(r,{recursive:!0,mode:448});try{let s=await Wu(e,r),a=zu(e.network),d=Promise.resolve();return{async run(u,p){let f=d,S;if(d=new Promise(i=>{S=i}),await f,p.signal?.aborted)throw S?.(),p.signal.reason??new Error("Sandboxed Skill script was cancelled.");try{if(u.args.length>64||u.args.some(h=>h.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 i=Ke(u.script,"Skill script"),l=s.get(`${u.skill}\0${i}`);if(!l)throw new Error("Skill script is not admitted by this Runtime binding.");if([".cmd",".bat"].includes(W.extname(l.snapshotPath).toLowerCase())&&u.args.some(h=>/[&|<>^]/.test(h)))throw new Error("Batch Skill script arguments cannot contain command operators.");let c=W.join(p.workspaceRoot,".kodax-a2a-script",Dr());try{await Ze(W.join(c,"inputs"),{recursive:!0,mode:448}),await Ze(W.join(c,"outputs"),{recursive:!0,mode:448}),await Zu(p.workspaceRoot,c,u,e.workspaceAccess);let h=Gu(l.snapshotPath),P=await Vu({config:nc(c,t,a,h.command),command:h.command,args:[...h.args,...u.args],cwd:c,endpoints:a},p.signal),R=await ec(p.workspaceRoot,c,u,e.workspaceAccess,e.workspaceByteLimit);return JSON.stringify({stdout:P.trim(),outputs:R})}finally{await Rt(c,{recursive:!0,force:!0})}}finally{S?.()}},async dispose(){await d,await Rt(t,{recursive:!0,force:!0})}}}catch(s){throw await Rt(t,{recursive:!0,force:!0}),s}}o(ds,"createAsrtSkillScriptRunner");import{createHash as tc}from"node:crypto";function ls(e){let n=or({rootDir:e.rootDir,clientIdentity:us(e.defaultClientIdentity),proposalStores:e.proposalStores}),t,r=o(()=>(t??=n.initialize(),t),"ensureReady"),s=o(d=>{let u=us(d),p=or({rootDir:e.rootDir,clientIdentity:u,proposalStores:e.proposalStores});return cs(p,r)},"forClient"),a=cs(n,r);return Object.assign(a,{forClient:s})}o(ls,"createRuntimeLearningOwner");function Le(e,n){let t=e;return typeof t.forClient=="function"?t.forClient(n):e}o(Le,"bindRuntimeLearningClient");function us(e){return`client_${tc("sha256").update(e).digest("hex").slice(0,32)}`}o(us,"learningClientFileKey");function cs(e,n){let t,r=o(()=>(t??=n?.()??e.initialize(),t),"ensureReady");return{list:o(async s=>(await r(),e.list(s)),"list"),get:o(async s=>(await r(),e.get(s)),"get"),getSnapshot:o(async()=>(await r(),e.getSnapshot()),"getSnapshot"),events:o(async s=>(await r(),e.events(s)),"events"),subscribe:o(s=>rc(r(),e,s),"subscribe"),acknowledge:o(async s=>{await r(),await e.acknowledge(s)},"acknowledge"),snooze:o(async(s,a)=>{await r(),await e.snooze(s,a)},"snooze"),reject:o(async s=>{await r(),await e.reject(s)},"reject"),disable:o(async s=>{await r(),await e.disable(s)},"disable"),rollback:o(async s=>{await r(),await e.rollback(s)},"rollback"),promote:o(async(s,a)=>{await r(),await e.promote(s,a)},"promote"),review:o(async s=>{await r(),await e.review(s)},"review"),trust:o(async s=>{await r(),await e.trust(s)},"trust")}}o(cs,"createInitializedFacade");function rc(e,n,t){return{[Symbol.asyncIterator](){let r=!1,s,a=e.then(()=>{if(!r)return s=n.subscribe(t)[Symbol.asyncIterator](),s});return{async next(){let d=await a;return r||!d?{done:!0,value:void 0}:d.next()},async return(){return r=!0,s?.return?.()??{done:!0,value:void 0}}}}}}o(rc,"subscribeWhenReady");import{randomUUID as St}from"node:crypto";var ic=new Set(["session.created","session.loaded","session.settings.updated","session.notice.appended","session.rewound","session.active_entry.updated","session.compacted","run.queued","run.started","run.updated","run.progress","run.input.queued","run.input.delivered","turn.started","turn.completed","turn.failed","assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.finished","user_input.requested","user_input.resolved","permission.requested","permission.resolved","permission.grant.changed","workflow.started","workflow.updated","workflow.finished","context.compaction.started","context.compaction.stats","context.compaction.finished","context.compaction.messages","context.compaction.ended","context.compaction.skipped","context.budget.snapshot","tool.exposure.planned","child_activity.finished","provider.retry","provider.recovery","provider.cache.diagnostics","repo_intelligence.trace","todo.updated","todo.warning","sidecar.message","run.completed","run.failed","run.cancelled","run.interrupted","artifact.created","config.effective","runtime.warning"]),oc=new Set(["run.queued","run.started","run.updated","run.completed","run.failed","run.cancelled","run.interrupted"]);function Mr(e){if(!V(e))return Un("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"||!ic.has(e.type))return Un("Runtime event envelope is malformed or has an unknown type.");if((e.type==="assistant.delta"||e.type==="thinking.delta")&&(!V(e.payload)||typeof e.payload.text!="string"))return Un(`${e.type} requires a string text payload.`);if(oc.has(e.type)&&!dc(e.payload))return Un(`${e.type} requires a RuntimeRunStatus payload.`);let n=sc(e.type,e.payload);return n!==void 0?Un(`${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}}}o(Mr,"parseRuntimeEvent");function sc(e,n){if(e==="session.created")return Oe(n,["id","title"])?void 0:"requires a RuntimeSession payload.";if(e==="session.loaded")return Oe(n,["id","title"])||Oe(n,["provider","sessionId"])?void 0:"requires a RuntimeSession or provider session payload.";if(e==="session.settings.updated")return V(n)&&typeof n.sessionId=="string"&&Number.isSafeInteger(n.revision)&&V(n.settings)&&V(n.patch)?void 0:"requires a session settings update payload.";if(e==="thinking.finished")return V(n)&&typeof n.thinking=="string"?void 0:"requires a string thinking payload.";if(e==="tool.started")return V(n)&&Oe(n.tool,["id","name"])?void 0:"requires a tool descriptor payload.";if(e==="tool.progress")return V(n)&&(Oe(n.update,["id","message"])||typeof n.toolName=="string"&&typeof n.partialJson=="string")?void 0:"requires a tool progress payload.";if(e==="tool.finished")return V(n)&&Oe(n.result,["id","name","content"])?void 0:"requires a tool result payload.";if(e==="run.progress")return ac(n);if(e==="run.input.queued")return V(n)&&uc(n.input,"queued")?void 0:"requires a queued interrupt input payload.";if(e==="run.input.delivered")return V(n)&&Array.isArray(n.inputs)&&n.inputs.length>0&&n.inputs.every(cc)?void 0:"requires an ordered interrupt input batch.";if(e==="context.compaction.finished")return V(n)&&typeof n.contextId=="string"&&(n.contextKind==="root"||n.contextKind==="child")&&Number.isSafeInteger(n.contextRevision)&&Number.isSafeInteger(n.beforeRevision)&&Number.isSafeInteger(n.afterRevision)&&(n.source==="manual"||n.source==="automatic_threshold"||n.source==="physical_capacity")&&typeof n.tokensBefore=="number"&&typeof n.tokensAfter=="number"&&typeof n.committed=="boolean"&&typeof n.elapsedMs=="number"?void 0:"requires a canonical compaction payload.";if(e==="todo.updated")return V(n)&&Array.isArray(n.items)?void 0:"requires an items array payload.";if(e==="user_input.requested"){let t=V(n)&&Oe(n,["id","sessionId","runId","kind","createdAt","expiresAt"])&&Number.isSafeInteger(n.revision),r=V(n)&&Oe(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 V(n)&&typeof n.requestId=="string"?void 0:"requires a requestId payload.";if(e==="permission.requested")return Oe(n,["id","sessionId","runId","toolName","createdAt"])?void 0:"requires a RuntimePermissionRequest payload.";if(e==="permission.grant.changed")return V(n)&&(n.action==="created"||n.action==="revoked"||n.action==="expired")&&V(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 Oe(n,["sessionId","turnId"])?void 0:"requires a turn payload.";if(e==="workflow.started"||e==="workflow.updated"||e==="workflow.finished")return V(n)?void 0:"requires a workflow event payload.";if(e==="context.budget.snapshot"||e==="tool.exposure.planned"||e==="provider.cache.diagnostics")return V(n)?void 0:"requires an object payload.";if(e==="runtime.warning")return V(n)&&typeof n.message=="string"?void 0:"requires a warning message payload."}o(sc,"validateKnownRuntimeEventPayload");function ac(e){return!V(e)||typeof e.kind!="string"?"requires a discriminated progress payload.":e.kind==="managed_task_status"?V(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"?V(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."}o(ac,"validateRunProgressPayload");function dc(e){return V(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"&&typeof e.phase=="string"}o(dc,"isRuntimeRunStatusPayload");function uc(e,n){return V(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&e.delivery==="interrupt"&&(e.state==="queued"||e.state==="delivered"||e.state==="terminal")&&(n===void 0||e.state===n)&&typeof e.contentPreview=="string"&&typeof e.queuedAt=="string"&&(e.deliveredAt===void 0||typeof e.deliveredAt=="string")}o(uc,"isRuntimeInterruptInputStatus");function cc(e){return V(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&typeof e.queuedAt=="string"&&typeof e.deliveredAt=="string"&&ms(e.input)}o(cc,"isDeliveredInterruptInput");function ms(e){return Array.isArray(e)?e.length>0&&e.every(ms):!V(e)||typeof e.type!="string"?!1:e.type==="text"?typeof e.text=="string":e.type==="artifact_ref"?typeof e.artifactId=="string":e.type==="image"||e.type==="file"?typeof e.path=="string":e.type==="video"&&typeof e.path=="string"&&typeof e.mediaType=="string"}o(ms,"isRuntimeInput");function Oe(e,n){return V(e)&&n.every(t=>typeof e[t]=="string")}o(Oe,"hasStrings");function Un(e){return{ok:!1,error:e}}o(Un,"invalid");function V(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(V,"isRecord");var Xe="kodax-runtime-daemon",Cr=1,hn=["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.transcript.page","session.transcript.entryChunk","session.transcript.search","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","provider.cache.diagnostics.get"],lc=["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"],fs=["agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile"],mc=new Set([...hn,...fs]),pc=new Set(lc),fc=new Set(["credential.register","credential.revoke","credential.supply","host_tool.register","host_tool.revoke","host_tool.complete"]),gc=new Set(["event","credential.request","host_tool.invoke","runtime.warning"]),Rc=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 wt(e,n,t,r){return{protocol:Xe,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{},...r!==void 0?{operation:r}:{}}}o(wt,"createRuntimeDaemonRequest");function en(e){return pc.has(e)}o(en,"isRuntimeDaemonMutationMethod");function gs(e){return en(e)||fc.has(e)}o(gs,"isRuntimeDaemonDrainingSensitiveMethod");function Rs(e){return fs.includes(e)}o(Rs,"isRuntimeDaemonRetiredMethod");function ys(e,n){return{protocol:Xe,version:1,kind:"response",id:e,result:n===void 0?null:n}}o(ys,"createRuntimeDaemonSuccessResponse");function Be(e,n){return{protocol:Xe,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}o(Be,"createRuntimeDaemonErrorResponse");function Wn(e,n){return{protocol:Xe,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}o(Wn,"createRuntimeDaemonNotification");function _r(e){if(!vt(e))return!1;let n=e;return n.kind==="request"&&typeof n.id=="string"&&n.id.length>0&&typeof n.method=="string"&&mc.has(n.method)&&(n.operation===void 0||wc(n.operation))}o(_r,"isRuntimeDaemonRequest");function wn(e){if(!vt(e))return!1;let n=e;return n.kind==="response"&&typeof n.id=="string"&&n.id.length>0&&Object.prototype.hasOwnProperty.call(n,"result")}o(wn,"isRuntimeDaemonSuccessResponse");function vn(e){if(!vt(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&hc(n.error)}o(vn,"isRuntimeDaemonErrorResponse");function zn(e){if(!vt(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&gc.has(n.method)}o(zn,"isRuntimeDaemonNotification");function yc(e){return _r(e)||wn(e)||vn(e)||zn(e)}o(yc,"isRuntimeDaemonFrame");function hs(e){let n;try{n=JSON.parse(e)}catch{return ps("Frame is not valid JSON.")}return yc(n)?n:ps("Frame does not match the runtime daemon protocol.")}o(hs,"parseRuntimeDaemonFrame");function ps(e){return Be({code:"invalid_frame",message:e})}o(ps,"invalidFrame");function vt(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===Xe&&n.version===1}o(vt,"isFrameBase");function hc(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&Rc.has(n.code)&&typeof n.message=="string"}o(hc,"isRuntimeDaemonError");function wc(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}o(wc,"isRuntimeDaemonOperationEnvelope");var Es=256,ws=1e3,tn=class extends Error{constructor(t,r){super(r);this.path=t;this.name="RuntimeTransportBoundaryError"}path;static{o(this,"RuntimeTransportBoundaryError")}code="invalid_transport_value"},Or=class extends Error{static{o(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"}},It=class extends Error{static{o(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 vs(e){let n=e.activeAgentTurns??e.activeAgentTasks??[];return{...e,activeAgentTurns:n,activeAgentTasks:n}}o(vs,"normalizeRuntimeDaemonPreflight");function kt(e){let n=o((i,l,c)=>e.transport.request(i,l,en(i)?kc(e.journalEpoch,c):void 0),"request"),t=o(()=>{let i=e.capabilities?.actorControlPlane;if(typeof i!="object"||i===null||!("version"in i)||i.version!==1||!("methodNamespace"in i)||i.methodNamespace!=="agents")return new Or},"actorControlPlaneError"),r=o(()=>{let i=e.capabilities?.runtimeAutoModeGuardrail;if(typeof i!="object"||i===null||!("version"in i)||typeof i.version!="number"||i.version<3||!("concretePermissionMatchers"in i)||i.concretePermissionMatchers!==!0||!("permissionGrantSuggestions"in i)||i.permissionGrantSuggestions!==!0)return new It},"concretePermissionScopeError"),s=new Map,a=new Map,d=new Map,u=new Set,p={state:"connected",connectionId:`connection_${St().replace(/-/g,"")}`,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},reconnectable:!1},f=e.transport.subscribeLifecycle?.(i=>{p={...i,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{}};for(let l of u)try{l(p)}catch(c){oe({source:"runtime.daemon.client",level:"warn",message:"Runtime connection lifecycle listener failed.",detail:{errorType:c instanceof Error?c.name:typeof c}})}}),S=e.transport.subscribe(i=>{i.method==="credential.request"?Sc(i.params,s,n).catch(()=>Ss("credential request")):i.method==="host_tool.invoke"&&Ic(i.params,a,d,n).catch(()=>Ss("host tool invocation"))});return{identity:e.identity,capabilities:e.capabilities,...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{},sessions:{create(i={}){let{operation:l,...c}=i;return n("session.create",c,l)},load(i){return n("session.load",{sessionId:i})},list(i){return n("session.list",i)},transcript(i){return n("session.transcript",{sessionId:i})},transcriptPage(i){return n("session.transcript.page",i)},transcriptEntryChunk(i){return n("session.transcript.entryChunk",i)},transcriptSearch(i){return n("session.transcript.search",i)},observe(i,l){return Pc(e.transport,n,i,l)},fork(i){return n("session.fork",i)},getSettings(i){return n("session.settings.get",{sessionId:i})},getSettingsVersioned(i){return n("session.settings.getVersioned",{sessionId:i})},getAutoModeStats(i){return n("session.autoMode.getStats",{sessionId:i})},async updateSettings(i,l){let c=await this.getSettingsVersioned(i);return(await this.updateSettingsVersioned(i,l,{expectedRevision:c.revision})).value},updateSettingsVersioned(i,l,c){return n("session.settings.updateVersioned",{sessionId:i,patch:l,expectedRevision:c.expectedRevision},c)},appendNotice(i){return n("session.notice.append",i)},rewind(i){return n("session.rewind",i)},setActiveEntry(i){return n("session.active_entry.set",i)},compact(i){return n("session.compact",i)},async archive(i){await n("session.archive",{sessionId:i})},async unarchive(i){await n("session.unarchive",{sessionId:i})},async delete(i){await n("session.delete",{sessionId:i})}},runs:{async start(i){let{operation:l,...c}=i;Sn(c,"run.start");let h=Se(await n("run.start",c,l)),P=he(h,"runId"),R=he(h,"sessionId"),I=Ac(h,"turnId");return{runId:P,sessionId:R,...I!==void 0?{turnId:I}:{},result:bs(n,P)}},async submitInput(i){let{operation:l,...c}=i;return Sn(c,"run.input.submit"),n("run.input.submit",c,l)},await(i){return bs(n,i)},get(i){return n("run.get",{runId:i})},list(i){return n("run.list",i)},async abort(i){await n("run.abort",{runId:i})},async setModel(i,l){await n("run.model.set",{runId:i,model:l})},async setProvider(i,l){await n("run.provider.set",{runId:i,provider:l})},async setReasoning(i,l){await n("run.reasoning.set",{runId:i,reasoning:l})}},events:{subscribe(i,l){return bc(e.transport,n,i,l)},replay(i){return n("event.replay",i).then(l=>{if(!Array.isArray(l))throw new Error("Expected daemon event replay array.");return l.flatMap(c=>{let h=xs(c);return h===void 0?[]:[h]})})}},permissions:{request(i){if(i.toolInput!==void 0){let l=r();if(l)return Promise.reject(l)}return n("permission.request",i)},listPending(i){return n("permission.list",i)},respond(i,l,c){return n("permission.respond",{requestId:i,decision:l,...c?.runId!==void 0?{runId:c.runId}:{}})},listGrants(){return n("permission.grants.list")},revokeGrant(i,l){return n("permission.grants.revoke",{grantId:i,expectedRevision:l})}},userInputs:{listPending(i){return n("user_input.listPending",i)},respond(i,l,c){return n("user_input.respond",{requestId:i,answer:l,...c?.expectedRevision!==void 0?{expectedRevision:c.expectedRevision}:{},...c?.runId!==void 0?{runId:c.runId}:{}})},dismiss(i,l){return n("user_input.dismiss",{requestId:i,...l?.expectedRevision!==void 0?{expectedRevision:l.expectedRevision}:{},...l?.runId!==void 0?{runId:l.runId}:{}})}},credentials:{async register(i,l){let c=`credlease_${St().replace(/-/g,"")}`;s.set(c,l);try{return await n("credential.register",{leaseId:c,providers:i.providers,...i.expiresAt!==void 0?{expiresAt:i.expiresAt}:{}})}catch(h){throw s.delete(c),h}},async resume(i,l){s.set(i,l);try{let c=await n("credential.get",{leaseId:i});if(c==null)throw Object.assign(new Error(`Credential lease is unavailable after Runtime reconnect: ${i}`),{code:"credential_unavailable"});return Se(c)}catch(c){throw s.delete(i),c}},async revoke(i){let l=await n("credential.revoke",{leaseId:i});return l&&s.delete(i),l}},hostTools:{async register(i,l){Is(i,l);let c=`hostlease_${St().replace(/-/g,"")}`;a.set(c,l);try{return await n("host_tool.register",{leaseId:c,tools:i})}catch(h){throw a.delete(c),h}},async resume(i,l){a.set(i,l);try{let c=await n("host_tool.get",{leaseId:i});if(c==null)throw Object.assign(new Error(`Host tool lease is unavailable after Runtime reconnect: ${i}`),{code:"host_tool_unavailable"});let h=Se(c);return Is(h.tools,l),h}catch(c){throw a.delete(i),c}},async getInvocation(i){return nn(await n("host_tool.invocation.get",{invocationId:i}))},async revoke(i){let l=await n("host_tool.revoke",{leaseId:i});return l&&a.delete(i),l}},operations:{get(i){return n("operation.get",i)}},workflows:{list(i){return n("workflow.list",i)},get(i){return n("workflow.get",{runId:i}).then(nn)},subscribe(i,l){return xc(e.transport,n,i,l)},pause(i){return n("workflow.pause",{runId:i})},resume(i){return n("workflow.resume",{runId:i})},stop(i){return n("workflow.stop",{runId:i})}},learning:{list(i){return n("learning.list",i??{})},get(i){return n("learning.get",{nameOrSlug:i})},getSnapshot(){return n("learning.snapshot")},events(i){return n("learning.events",{...i!==void 0?{afterRevision:i}:{}})},subscribe(i){return vc(n,i?.afterRevision??0)},async acknowledge(i){await n("learning.acknowledge",{nameOrSlug:i})},async snooze(i,l){await n("learning.snooze",{nameOrSlug:i,until:l})},async reject(i){await n("learning.reject",{nameOrSlug:i})},async disable(i){await n("learning.disable",{nameOrSlug:i})},async rollback(i){await n("learning.rollback",{nameOrSlug:i})},async promote(i,l){await n("learning.promote",{nameOrSlug:i,scope:l})},async review(i){await n("learning.review",{nameOrSlug:i})},async trust(i){await n("learning.trust",{nameOrSlug:i})}},config:{read(){return n("config.read")},patch(i){return n("config.patch",{patch:i})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(i){return n("model.list",i)},commands(i){return n("command.list",i!==void 0?{projectRoot:i}:void 0)},resolveCommand(i){return n("command.resolve",i)},skills(i){return n("skill.list",i)},describeSkill(i){return n("skill.describe",i)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(i){return n("provider.custom.upsert",{config:i})},deleteCustomProvider(i){return n("provider.custom.remove",{name:i})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(i){return n("mcp.server.get",{name:i}).then(nn)},validateServer(i,l){return n("mcp.server.validate",{name:i,config:l})},upsertServer(i,l){return n("mcp.server.upsert",{name:i,config:l})},deleteServer(i){return n("mcp.server.delete",{name:i})},reloadServers(){return n("mcp.server.reload")},listTools(i){return n("mcp.tool.list",i)}},artifacts:{create(i){return n("artifact.create",i)},get(i){return n("artifact.get",{artifactId:i}).then(nn)},delete(i){return n("artifact.delete",{artifactId:i})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(i,l){return Sn(i,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:i,...l?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:l.expectedConfigurationRevision}:{},...l?.expectedManagementOwner!==void 0?{expectedManagementOwner:l.expectedManagementOwner}:{}})},setEnabled(i,l,c){return n("agentRegistrations.setEnabled",{agentId:i,enabled:l,...c?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:c.expectedConfigurationRevision}:{},...c?.expectedManagementOwner!==void 0?{expectedManagementOwner:c.expectedManagementOwner}:{},...c?.claimOwner!==void 0?{claimOwner:c.claimOwner}:{}}).then(nn)},remove(i,l){return n("agentRegistrations.remove",{agentId:i,...l?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:l.expectedConfigurationRevision}:{},...l?.expectedManagementOwner!==void 0?{expectedManagementOwner:l.expectedManagementOwner}:{}})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(i){return n("agents.listDispatchable",i)},describe(i,l){return n("agents.describe",{agentId:i,query:l}).then(nn)},preflight(i){return n("agents.preflight",i)},tree(i){let l=t();return l?Promise.reject(l):n("agents.tree",{sessionId:i})},detail(i,l){let c=t();return c?Promise.reject(c):n("agents.detail",{sessionId:i,actorPath:l})},spawn(i,l){let c=t();return c?Promise.reject(c):(Sn(l,"agents.spawn"),n("agents.spawn",{sessionId:i,input:l}))},async send(i,l,c,h){let P=t();if(P)throw P;await n("agents.send",{sessionId:i,actorPath:l,content:c,...h!==void 0?{classification:h}:{}})},followup(i,l,c,h){let P=t();return P?Promise.reject(P):n("agents.followup",{sessionId:i,actorPath:l,objective:c,...h?.expectedRevision!==void 0?{expectedRevision:h.expectedRevision}:{}})},async interrupt(i,l,c){let h=t();if(h)throw h;await n("agents.interrupt",{sessionId:i,actorPath:l,...c!==void 0?{reason:c}:{}})},output(i,l,c){let h=t();return h?Promise.reject(h):n("agents.output",{sessionId:i,actorPath:l,...c!==void 0?{turnId:c}:{}})},events(i,l){let c=t();return c?Promise.reject(c):n("agents.events",{sessionId:i,...l!==void 0?{afterSequence:l}:{}})},wait(i,l,c){let h=t();return h?Promise.reject(h):n("agents.wait",{sessionId:i,...l!==void 0?{afterSequence:l}:{},...c!==void 0?{timeoutMs:c}:{}}).then(nn)}},status:{snapshot(){return n("daemon.status")},preflight(){return n("daemon.preflight").then(i=>vs(i))}},daemon:{inspect(){return n("daemon.management.get").then(i=>{let l=i;return{...l,preflight:vs(l.preflight)}})},stopForInline(i){let{operation:l,...c}=i;return n("daemon.rollbackToInline",c,l)}},diagnostics:{latestContextBudget(i){return n("context.budget.get",i)},latestToolExposure(i){return n("tool.exposure.preview",i)},latestProviderCacheDiagnostic(i){return n("provider.cache.diagnostics.get",i)}},connection:{current(){return p},subscribe(i){return u.add(i),i(p),{close(){u.delete(i)}}}},async close(){f?.close(),S.close(),u.clear(),s.clear(),a.clear(),d.clear(),await e.transport.close?.()}}}o(kt,"createRuntimeDaemonClient");async function*vc(e,n){let t=n;for(;;){let r=await e("learning.events",{afterRevision:t});if(r.length===0){await new Promise(s=>setTimeout(s,100));continue}for(let s of r)t=s.sequence,yield s}}o(vc,"pollRuntimeLearningEvents");function Ss(e){oe({source:"runtime.daemon.client",level:"warn",message:`Failed to deliver ${e} result to the Runtime daemon.`})}o(Ss,"reportReverseBridgeFailure");async function Sc(e,n,t){let r=Se(e),s=he(r,"requestId"),a=he(r,"leaseId"),d=n.get(a);if(!d){await t("credential.supply",{requestId:s,error:"credential_lease_unavailable"});return}try{let u=await d({leaseId:a,provider:he(r,"provider"),sessionId:he(r,"sessionId"),runId:he(r,"runId")});await t("credential.supply",{requestId:s,...u!==void 0?{credential:u}:{error:"credential_unavailable"}})}catch{await t("credential.supply",{requestId:s,error:"credential_broker_failed"})}}o(Sc,"answerCredentialRequest");async function Ic(e,n,t,r){let s=Se(e),a=he(s,"invocationId"),d=he(s,"leaseId"),u=he(s,"toolName"),p=n.get(d)?.[u];if(!p){await r("host_tool.complete",{invocationId:a,error:"host_tool_unavailable"});return}let f=t.get(a);if(!f){let S=Promise.resolve().then(()=>p({invocationId:a,leaseId:d,toolName:u,sessionId:he(s,"sessionId"),runId:he(s,"runId"),input:Se(s.input)}));f={promise:S,settled:!1},t.set(a,f);let i=f;S.finally(()=>{i.settled=!0,ks(t)}).catch(()=>{}),ks(t)}try{await r("host_tool.complete",{invocationId:a,result:await f.promise})}catch{try{await r("host_tool.complete",{invocationId:a,error:"host_tool_failed"})}catch(S){throw new Error("Failed to report the Host Tool outcome to the Runtime daemon.",{cause:S})}}}o(Ic,"answerHostToolInvocation");function Is(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}`)}o(Is,"validateHostToolHandlers");function ks(e){if(!(e.size<=ws))for(let[n,t]of e){if(e.size<=ws)return;t.settled&&e.delete(n)}}o(ks,"pruneHostToolResults");function kc(e,n){let t=n?.journalEpoch??e;if(t!==void 0)return{operationId:n?.operationId??`op_${St().replace(/-/g,"")}`,journalEpoch:t}}o(kc,"createOperationEnvelope");function bc(e,n,t,r){return Ds(e,n,"event.subscribe",{filter:t},s=>{Nr(s,r)})}o(bc,"subscribeToDaemonEvents");async function Pc(e,n,t,r){let s=!1,a,d=!1,u=[],p=e.subscribe(f=>{if(s||f.method!=="event")return;let S=Se(f.params);if(a===void 0){if(!Ec(S.event,t))return;u.length>=Es?d=!0:u.push(S);return}S.subscriptionId===a&&Nr(S.event,r)});try{let f=Se(await n("session.observe",{sessionId:t}));if(a=he(f,"subscriptionId"),d)throw Object.assign(new Error("Runtime session observation handshake exceeded its event buffer; full resync is required."),{code:"resync_required"});let S=Se(f.snapshot);for(let i of u.splice(0))i.subscriptionId===a&&Nr(i.event,r);return{snapshot:S,close(){s||(s=!0,u.length=0,p.close(),a!==void 0&&n("event.unsubscribe",{subscriptionId:a}).catch(()=>{}))}}}catch(f){throw s=!0,u.length=0,p.close(),a!==void 0&&n("event.unsubscribe",{subscriptionId:a}).catch(()=>{}),f}}o(Pc,"observeDaemonSession");function Ec(e,n){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&e.sessionId===n}o(Ec,"isRuntimeEventForSession");function Nr(e,n){let t=xs(e);t!==void 0&&n(t)}o(Nr,"deliverRuntimeEvent");function xs(e){let n=Mr(e);if(!n.ok){oe({source:"runtime.daemon.client",level:"warn",message:`Ignored malformed Runtime event: ${n.error}`});return}return n.event}o(xs,"parseRuntimeEventForClient");function xc(e,n,t,r){return Ds(e,n,"workflow.subscribe",{filter:t},s=>{r(s)})}o(xc,"subscribeToDaemonWorkflowEvents");function Ds(e,n,t,r,s){let a=!1,d,u=[],p=e.subscribe(S=>{if(a||S.method!=="event")return;let i=Se(S.params);if(d===void 0){u.length>=Es&&u.shift(),u.push(i);return}i.subscriptionId===d&&s(i.event)}),f=n(t,r).then(S=>{if(d=he(Se(S),"subscriptionId"),a){Ps(n,t,d),u.length=0;return}for(let i of u.splice(0))i.subscriptionId===d&&s(i.event)}).catch(S=>{throw u.length=0,p.close(),S});return f.catch(()=>{}),{ready:f,close(){a=!0,p.close(),d!==void 0&&Ps(n,t,d)}}}o(Ds,"subscribeToDaemonNotification");function bs(e,n){return e("run.await",{runId:n}).then(Dc)}o(bs,"requestRuntimeRunResult");function Dc(e){let n=Se(e),t=Object.prototype.hasOwnProperty.call(n,"error")?Tc(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}o(Dc,"deserializeRuntimeRunResult");function Tc(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=Se(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}o(Tc,"deserializeRuntimeError");function Ps(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}o(Ps,"unsubscribeRemote");function nn(e){return e??void 0}o(nn,"nullToUndefined");function Se(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}o(Se,"requireRecord");function he(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw new Error(`Expected daemon response string field: ${n}`);return t}o(he,"requireStringField");function Ac(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}}o(Ac,"optionalStringField");function Sn(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 tn(n,`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new tn(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 tn(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 s=r?.constructor?.name??"object";throw new tn(n,`${n} is not transport-safe: ${s} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((s,a)=>Sn(s,`${n}[${a}]`,t));else for(let[s,a]of Object.entries(e))Sn(a,`${n}.${s}`,t);t.delete(e)}o(Sn,"assertRuntimeTransportSafe");import{randomUUID as Nm}from"node:crypto";import Lm from"node:os";import di from"node:path";import{randomUUID as Fr}from"node:crypto";import*as L from"node:fs";import le from"node:path";function In(e,n="default"){let t=jr(n),r=le.resolve(e),s=le.join(r,"runtime","daemon",t);return{profile:t,configHome:r,rootDir:s,stateFile:le.join(s,"daemon.json"),lockFile:le.join(s,"daemon.lock"),tokenFile:le.join(s,"daemon.token"),logFile:le.join(s,"daemon.log"),runsDir:le.join(s,"runs"),eventsDir:le.join(s,"events"),ownerPolicyFile:le.join(s,"owner-policy.json"),ownerPolicyLockFile:le.join(s,"owner-policy.lock")}}o(In,"resolveRuntimeDaemonPathsFromConfigHome");function Mc(e,n){let t=o(r=>{let s=le.resolve(r);return process.platform==="win32"?s.toLowerCase():s},"resolveIdentity");return t(e)===t(n)}o(Mc,"isSameRuntimeDaemonPath");function kn(e,n){let t=le.resolve(e);return Mc(n,le.join(t,".kodax"))?t:le.resolve(n)}o(kn,"resolveRuntimeDaemonEndpointScope");function Ee(e){if(!L.existsSync(e.ownerPolicyFile))return{mode:"daemon",revision:0,updatedAt:new Date(0).toISOString()};try{let n=JSON.parse(L.readFileSync(e.ownerPolicyFile,"utf8"));if(Hr(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.")}o(Ee,"readRuntimeOwnerPolicy");function Ms(e,n,t){Ce(e);let r=Ue(e);if(!r)throw new Error("Runtime owner policy update is already in progress.");try{if(L.existsSync(e.lockFile))throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return xt(e,n,t,r.nonce)}finally{rn(e,r)}}o(Ms,"updateRuntimeOwnerPolicy");function Cs(e,n,t){Ce(e);let r=Ue(e);if(!r)throw Pt("Runtime owner rollback is already in progress.");try{let s=te(e.lockFile);if(s?.kind!=="daemon"||s.runtimeId!==n)throw Pt("Runtime daemon owner changed before rollback commit.");if(Ee(e).mode!=="daemon")throw Pt("Runtime owner policy changed before rollback commit.");return xt(e,"inline",t,r.nonce)}finally{rn(e,r)}}o(Cs,"commitRuntimeDaemonRollbackPolicy");function Et(e){Ce(e);let n=Ue(e);if(!n)throw new Error("Runtime owner transition is already in progress.");try{if(L.existsSync(e.lockFile))throw new Error("Cannot enable Runtime daemon ownership while an owner lock exists.");let t=Ee(e);return t.mode==="daemon"?t:xt(e,"daemon",t.revision,n.nonce)}finally{rn(e,n)}}o(Et,"enableRuntimeDaemonOwner");function _s(e,n,t=!1){Ce(e);let r=Ue(e);if(!r)throw new Error("Runtime owner transition is already in progress.");try{let s=Ee(e);if(s.mode!=="inline"){if(!t)throw new Error("Coder inline ownership requires explicit enableRollback: true.");if(L.existsSync(e.lockFile))throw new Error("Cannot enable inline rollback while a Coder owner lock exists.");xt(e,"inline",s.revision,r.nonce)}if(L.existsSync(e.lockFile))throw new Error(`Coder profile "${e.profile}" already has an owner.`);let a=js(e,n);if(!a)throw new Error(`Coder profile "${e.profile}" already has an owner.`);return a}finally{rn(e,r)}}o(_s,"acquireRuntimeInlineOwner");function xt(e,n,t,r){let s=Ee(e);if(s.revision!==t)throw Pt(`Runtime owner policy conflict: expected ${t}, current ${s.revision}.`);let a={mode:n,revision:s.revision+1,updatedAt:new Date().toISOString()},d=`${e.ownerPolicyFile}.${process.pid}.${r}.tmp`;try{let u=L.openSync(d,"wx",384);try{L.writeFileSync(u,`${JSON.stringify(a,null,2)}
|
|
56
|
-
`,"utf8"),L.fsyncSync(u)}finally{L.closeSync(u)}return L.renameSync(d,e.ownerPolicyFile),a}finally{L.rmSync(d,{force:!0})}}o(xt,"writeRuntimeOwnerPolicy");function Pt(e){let n=new Error(e);return n.code="conflict",n}o(Pt,"runtimeOwnerPolicyConflict");function Ue(e,n=!0){let t=Fr(),r={runtimeId:`owner-transition-${t}`,pid:process.pid,createdAt:new Date().toISOString()},s;try{return s=L.openSync(e.ownerPolicyLockFile,"wx",384),L.writeFileSync(s,`${JSON.stringify({...r,nonce:t})}
|
|
57
|
-
`,"utf8"),L.fsyncSync(s),{nonce:t,owner:r}}catch(a){if($r(a)&&a.code==="EEXIST")return n&&Cc(e)?Ue(e,!1):void 0;throw a}finally{s!==void 0&&L.closeSync(s)}}o(Ue,"tryAcquireRuntimeOwnerCoordination");function Cc(e){let n=Ts(e);if(!n||_c(n.owner.pid))return!1;try{let t=Ts(e);return!t||t.nonce!==n.nonce?!1:(L.unlinkSync(e.ownerPolicyLockFile),!0)}catch{return!1}}o(Cc,"removeAbandonedRuntimeOwnerCoordination");function Ts(e){try{let n=JSON.parse(L.readFileSync(e.ownerPolicyLockFile,"utf8"));return!Hr(n)||typeof n.nonce!="string"||!Ks(n)||!n.runtimeId.startsWith("owner-transition-")?void 0:{nonce:n.nonce,owner:n}}catch{return}}o(Ts,"readRuntimeOwnerCoordinationHandle");function _c(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return $r(n)&&n.code==="EPERM"}}o(_c,"isRuntimeOwnerProcessAlive");function Oc(e){return te(e.ownerPolicyLockFile)}o(Oc,"readRuntimeOwnerCoordinator");function rn(e,n){try{let t=JSON.parse(L.readFileSync(e.ownerPolicyLockFile,"utf8"));Hr(t)&&t.nonce===n.nonce&&L.unlinkSync(e.ownerPolicyLockFile)}catch{}}o(rn,"releaseRuntimeOwnerCoordination");function Dt(e){if(Ee(e).mode!=="daemon")throw new Error(`Runtime daemon auto-start is disabled for profile "${e.profile}" by inline rollback policy.`)}o(Dt,"assertRuntimeDaemonOwnerAllowed");function jr(e){let n=e.trim()||"default";if(!/^[A-Za-z0-9_.-]+$/.test(n))throw new Error(`Invalid runtime daemon profile: ${e}`);return n}o(jr,"normalizeRuntimeDaemonProfile");function Ce(e){L.mkdirSync(e.rootDir,{recursive:!0}),L.mkdirSync(e.runsDir,{recursive:!0}),L.mkdirSync(e.eventsDir,{recursive:!0})}o(Ce,"ensureRuntimeDaemonDirectories");function Os(){return`dt_${Fr().replace(/-/g,"")}`}o(Os,"createRuntimeDaemonToken");function Ns(e,n){Ce(e),L.writeFileSync(e.tokenFile,`${n}
|
|
58
|
-
`,{encoding:"utf8",mode:384}),process.platform!=="win32"&&L.chmodSync(e.tokenFile,384)}o(Ns,"writeRuntimeDaemonToken");function Gn(e){try{let n=L.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}o(Gn,"readRuntimeDaemonToken");function bn(e,n){Ce(e);let t=`${e.stateFile}.${process.pid}.${Fr()}.tmp`;try{let r=L.openSync(t,"wx",384);try{L.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
59
|
-
`,"utf8"),L.fsyncSync(r)}finally{L.closeSync(r)}L.renameSync(t,e.stateFile)}finally{L.rmSync(t,{force:!0})}}o(bn,"writeRuntimeDaemonState");function _e(e,n,t,r){Ce(e);let s={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};L.appendFileSync(e.logFile,`${JSON.stringify(s)}
|
|
60
|
-
`,"utf8")}o(_e,"appendRuntimeDaemonLog");function Ls(e,n=200){if(!L.existsSync(e.logFile))return[];let t=[],r=L.readFileSync(e.logFile,"utf8").split(/\r?\n/).filter(s=>s.trim().length>0);for(let s of r.slice(-n))try{let a=JSON.parse(s);jc(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}o(Ls,"readRuntimeDaemonLog");function Fs(e){if(L.existsSync(e.stateFile))try{let n=JSON.parse(L.readFileSync(e.stateFile,"utf8"));return Fc(n)?n:void 0}catch{return}}o(Fs,"readRuntimeDaemonState");function js(e,n){Ce(e);let t;try{return t=L.openSync(e.lockFile,"wx",384),L.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
61
|
-
`,"utf8"),L.fsyncSync(t),{file:e.lockFile,owner:n}}catch(r){if($r(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&L.closeSync(t)}}o(js,"tryAcquireRuntimeDaemonLock");function Tt(e){let n={ownerPolicyLockFile:le.join(le.dirname(e.file),"owner-policy.lock")},t=Ue(n);if(!t)return!1;try{return $s(e)}finally{rn(n,t)}}o(Tt,"releaseRuntimeDaemonLock");function qs(e,n){let t=Ue(e);if(!t)return!1;try{let r=te(n.file);return qr(r,n.owner)?(Lc(e),$s(n)):!1}finally{rn(e,t)}}o(qs,"releaseRuntimeDaemonOwnership");function $s(e){let n=te(e.file);return qr(n,e.owner)?(L.unlinkSync(e.file),!0):!1}o($s,"unlinkRuntimeDaemonLockIfOwned");function te(e){if(L.existsSync(e))try{let n=JSON.parse(L.readFileSync(e,"utf8"));return Ks(n)?n:void 0}catch{return}}o(te,"readRuntimeDaemonLockOwner");function Hs(e,n,t){Ce(e);let r=Pn(t),s=te(e.lockFile);if(r==="healthy")return t.state&&s!==void 0&&Lr(s,t.state)?{kind:"attach",state:t.state,health:r}:{kind:"unhealthy",health:"mismatch",...t.state!==void 0?{state:t.state}:{},...s!==void 0?{lockOwner:s}:{}};if(r==="unhealthy"&&t.state!==void 0&&Kc(t.state.status)&&t.pidAlive&&s!==void 0)return{kind:"wait",lockOwner:s,state:t.state,health:"missing"};if(r==="unhealthy"||r==="mismatch")return{kind:"unhealthy",health:r,...t.state!==void 0?{state:t.state}:{},...s!==void 0?{lockOwner:s}:{}};let a=r==="stale"?"stale":"missing",d=Ue(e);if(!d){let u=te(e.lockFile)??Oc(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 Ee(e).mode!=="daemon"?{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}:Nc(e,n,t,a)}finally{rn(e,d)}}o(Hs,"claimRuntimeDaemonOwnership");function Nc(e,n,t,r){let s=te(e.lockFile);if(r==="stale"){if(s!==void 0&&(t.observedLockOwner!==void 0&&!qr(s,t.observedLockOwner)||t.state!==void 0&&!Lr(s,t.state)))return bt(s,t,r);As(e)}else if(s!==void 0){if(t.observedLockOwner!==void 0&&!Lr(s,t.observedLockOwner))return bt(s,t,r);if(t.lockOwnerPidAlive===!1)As(e);else return bt(s,t,r)}if(r==="missing"){let u=te(e.lockFile);if(u!==void 0)return{kind:"wait",lockOwner:u,...t.state!==void 0?{state:t.state}:{},health:r}}let a=js(e,n);if(a)return{kind:"claim",lock:a,health:r};let d=te(e.lockFile);return d?bt(d,t,r):{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}o(Nc,"claimAvailableRuntimeDaemonOwnership");function bt(e,n,t){return{kind:"wait",lockOwner:e,...n.state!==void 0?{state:n.state}:{},health:t}}o(bt,"waitForRuntimeOwner");function Lr(e,n){return e.runtimeId===n.runtimeId&&e.pid===n.pid}o(Lr,"sameRuntimeOwner");function qr(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}o(qr,"sameRuntimeLockOwner");function As(e){L.rmSync(e.lockFile,{force:!0}),L.rmSync(e.stateFile,{force:!0}),L.rmSync(e.tokenFile,{force:!0})}o(As,"removeRuntimeDaemonOwnershipFiles");function Lc(e){L.rmSync(e.stateFile,{force:!0}),L.rmSync(e.tokenFile,{force:!0})}o(Lc,"removeRuntimeDaemonStateFiles");function Pn(e){return e.state?e.endpointReachable&&!e.identityMatches?"mismatch":e.pidAlive&&e.endpointReachable&&e.identityMatches?"healthy":!e.pidAlive&&!e.endpointReachable?"stale":"unhealthy":"missing"}o(Pn,"classifyRuntimeDaemonHealth");function Fc(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"&&Hc(n.status)&&(n.configHome===void 0||typeof n.configHome=="string")&&(n.lastError===void 0||typeof n.lastError=="string")}o(Fc,"isRuntimeDaemonState");function jc(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&qc(n.level)&&typeof n.message=="string"&&(n.data===void 0||$c(n.data))}o(jc,"isRuntimeDaemonLogEntry");function qc(e){return e==="info"||e==="warn"||e==="error"}o(qc,"isRuntimeDaemonLogLevel");function $c(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}o($c,"isPlainRecord");function Ks(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"}o(Ks,"isRuntimeDaemonLockOwner");function Hc(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}o(Hc,"isRuntimeDaemonStatus");function Kc(e){return e==="starting"||e==="draining"||e==="stopping"}o(Kc,"isRuntimeDaemonTransitionStatus");function $r(e){return e instanceof Error&&"code"in e}o($r,"isNodeFileError");function Hr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Hr,"isRecord");import{createHash as Xc,randomUUID as En}from"node:crypto";import*as Tn from"node:fs/promises";import*as Jn from"node:net";import Bc from"node:os";import Xs from"node:path";import{StringDecoder as Kr}from"node:string_decoder";var Uc=8*1024*1024,Dn=class extends Error{constructor(t,r,s){super(t);this.code=r;this.data=s;this.name="RuntimeDaemonTransportError"}code;data;static{o(this,"RuntimeDaemonTransportError")}};function Br(e){return e instanceof Dn}o(Br,"isRuntimeDaemonTransportError");function An(e="default",n){let t=jr(e),r=n===void 0?t:`${t}-${Wc(Xs.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:Xs.join(Bc.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}o(An,"defaultRuntimeDaemonEndpoint");function Wc(e){return Xc("sha256").update(e).digest("hex").slice(0,12)}o(Wc,"shortPathHash");function Us(e,n={}){let t="",r=0,s=new Kr("utf8"),a=n.maxFrameBytes??Uc;if(!Number.isSafeInteger(a)||a<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let d=o(p=>{Gc(p,a),p.trim()&&e(hs(p))},"consumeLine"),u=o(p=>{t+=p,r+=Buffer.byteLength(p,"utf8")},"append");return{push(p){for(typeof p=="string"?(u(s.end()),s=new Kr("utf8"),u(p)):u(s.write(p));;){let f=t.indexOf(`
|
|
62
|
-
`);if(f<0)break;let S=t.slice(0,f).replace(/\r$/,""),i=t.slice(0,f+1);t=t.slice(f+1),r-=Buffer.byteLength(i,"utf8"),d(S)}zs(r,a)},flush(){u(s.end()),s=new Kr("utf8");let p=t.trim();t="",r=0,p.length>0&&d(p)}}}o(Us,"createRuntimeDaemonFrameParser");async function Fe(e,n={}){let t=Jn.createConnection(e.path);t.setEncoding("utf8");let r=new Promise(P=>{t.once("close",()=>P())});await Jc(t,n.connectTimeoutMs);let s=!1,a,d=`transport_${En().replace(/-/g,"")}`,u=En().replace(/-/g,"")+En().replace(/-/g,""),p=`connection_${En().replace(/-/g,"")}`,f=new Set,S=new Set,i={state:"connected",connectionId:p,reconnectable:!1},l=o((P,R)=>{if(i.state!=="disconnected"){i={state:"disconnected",connectionId:p,reason:P,reconnectable:R};for(let I of S)try{I(i)}catch{oe({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport lifecycle listener failed."})}}},"disconnect"),c=new Map,h=Us(P=>{if(wn(P)){let R=c.get(P.id);if(!R)return;c.delete(P.id),R.resolve(P.result);return}if(vn(P)){if(!P.id)return;let R=c.get(P.id);if(!R)return;c.delete(P.id),R.reject(new Dn(P.error.message,P.error.code,P.error.data));return}if(zn(P))for(let R of f)try{R(P)}catch{oe({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport notification listener failed."})}},{maxFrameBytes:n.maxFrameBytes});return t.on("data",P=>{try{h.push(P)}catch(R){s=!0;let I=xn(R);l(I.message,!0),At(c,I),t.destroy(I)}}),t.on("close",()=>{s=!0,l("Runtime daemon transport closed.",!0),At(c,new Error("Runtime daemon transport closed."))}),t.on("error",P=>{s=!0,l(P.message,!0),At(c,P)}),{request(P,R,I){if(s)return Promise.reject(new Error("Runtime daemon transport is closed."));let k=`req_${En().replace(/-/g,"").slice(0,12)}`,x=P==="initialize"||P==="runtime.initialize"?zc(R,d,u):R,g=I??(a!==void 0&&en(P)?{operationId:`op_${En().replace(/-/g,"")}`,journalEpoch:a}:void 0),w=wt(k,P,x,g),D;try{D=JSON.stringify(w)}catch(M){return Promise.reject(new Dn(`Runtime daemon request params are not JSON-serializable: ${xn(M).message}`,"invalid_params"))}let T=new Promise((M,q)=>{c.set(k,{resolve:M,reject:q})});return t.write(`${D}
|
|
63
|
-
`),T.then(M=>{if(P==="initialize"||P==="runtime.initialize"){let q=Mt(M);typeof q?.journalEpoch=="string"&&(a=q.journalEpoch)}return M})},subscribe(P){return f.add(P),{close(){f.delete(P)}}},subscribeLifecycle(P){return S.add(P),P(i),{close(){S.delete(P)}}},async close(){let P;if(!s){s=!0,l("Runtime daemon transport closed by client.",!1);try{h.flush()}catch(R){P=xn(R)}t.end(),t.destroy(),At(c,new Error("Runtime daemon transport closed."))}if(await r,S.clear(),P!==void 0)throw P}}}o(Fe,"createRuntimeDaemonSocketClientTransport");function zc(e,n,t){let r=Mt(e)??{},s=Mt(r.capabilities)??{},a=Mt(r.clientInfo)??{name:"kodax-transport"};return{...r,capabilities:{...s,operationDeduplication:!0},clientInfo:{...a,instanceId:typeof a.instanceId=="string"?a.instanceId:n,instanceSecret:typeof a.instanceSecret=="string"?a.instanceSecret:t}}}o(zc,"withDurableOperationCapability");function Mt(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}o(Mt,"asRecord");async function Ws(e){await Yc(e.endpoint);let n=Jn.createServer(),t=new Set,r=new Set,s=!1;if(n.on("connection",a=>{if(s){a.destroy();return}t.add(a);let d=!1,u=o(i=>{if(a.destroyed)return;let l;try{l=JSON.stringify(i)}catch(c){let h=Be({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${xn(c).message}`},i.kind==="response"||i.kind==="error"?i.id:void 0);l=JSON.stringify(h)}a.write(`${l}
|
|
64
|
-
`)},"send"),p=e.createDispatcher(i=>u(i));r.add(p);let f=Us(i=>{if(_r(i)){p.handle(i).then(u,l=>{u(Be({code:"internal_error",message:xn(l).message}))});return}if(vn(i)){u(i);return}u(Be({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),S=o(i=>{if(d)return;d=!0;let l=xn(i);u(Be({code:"invalid_frame",message:l.message,...Br(l)&&l.data!==void 0?{data:l.data}:{}})),a.end()},"rejectInvalidFrame");a.on("data",i=>{if(!d)try{f.push(i)}catch(l){S(l)}}),a.on("end",()=>{try{f.flush()}catch(i){S(i)}}),a.on("close",()=>{t.delete(a),r.delete(p),p.close()}),a.on("error",()=>{a.destroy()})}),await Vc(n,e.endpoint.path),e.endpoint.kind==="unix")try{await Tn.chmod(e.endpoint.path,384)}catch(a){throw await Bs(n),a}return{endpoint:e.endpoint,connectionCount(){return t.size},unref(){n.unref()},async close(){if(!s){s=!0;for(let a of r)a.close();r.clear();for(let a of t)a.destroy();t.clear(),await Bs(n)}}}}o(Ws,"createRuntimeDaemonSocketServer");function Gc(e,n){zs(Buffer.byteLength(e,"utf8"),n)}o(Gc,"assertFrameSize");function zs(e,n){if(!(e<=n))throw new Dn(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}o(zs,"assertFrameByteSize");function Jc(e,n=2e3){return new Promise((t,r)=>{let s=setTimeout(()=>{a(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);s.unref?.();let a=o(()=>{clearTimeout(s),e.off("connect",d),e.off("error",u)},"cleanup"),d=o(()=>{a(),t()},"onConnect"),u=o(p=>{a(),r(p)},"onError");e.once("connect",d),e.once("error",u)})}o(Jc,"waitForConnect");function Vc(e,n){return new Promise((t,r)=>{let s=o(()=>{e.off("listening",a),e.off("error",d)},"cleanup"),a=o(()=>{s(),t()},"onListening"),d=o(u=>{s(),r(u)},"onError");e.once("listening",a),e.once("error",d),e.listen(n)})}o(Vc,"waitForListen");async function Yc(e){if(e.kind!=="unix")return;let n;try{n=await Tn.stat(e.path)}catch(t){if(Xr(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 Qc(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await Tn.unlink(e.path)}catch(t){if(!Xr(t)||t.code!=="ENOENT")throw t}}o(Yc,"prepareUnixSocketEndpoint");function Qc(e){return new Promise((n,t)=>{let r=Jn.createConnection(e),s=setTimeout(()=>{a(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);s.unref?.();let a=o(()=>{clearTimeout(s),r.off("connect",d),r.off("error",u)},"cleanup"),d=o(()=>{a(),r.end(),r.destroy(),n(!0)},"onConnect"),u=o(p=>{if(a(),r.destroy(),Xr(p)&&(p.code==="ECONNREFUSED"||p.code==="ENOENT")){n(!1);return}t(p)},"onError");r.once("connect",d),r.once("error",u)})}o(Qc,"unixSocketAcceptsConnections");function Bs(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}o(Bs,"closeNetServer");function At(e,n){for(let t of e.values())t.reject(n);e.clear()}o(At,"rejectPending");function xn(e){return e instanceof Error?e:new Error(String(e))}o(xn,"normalizeTransportError");function Xr(e){return e instanceof Error&&"code"in e}o(Xr,"isNodeFileError");async function Vn(e,n={}){let t=Fs(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=te(e.lockFile),s=(n.isPidAlive??Js)(t.pid),a=on(t),d=Gn(e),u;try{u=await(n.createTransport?n.createTransport(a):Fe(a,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let p=u.request("initialize",{profile:t.profile,connectionPurpose:"probe",...d!==void 0?{token:d}:{}});p.catch(()=>{});let f=await Zc(p,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:s,endpointReachable:!0,identityMatches:el(f,t)&&nl(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(p){return Br(p)&&p.code==="unauthorized"?{state:t,pidAlive:s,endpointReachable:!0,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}:{state:t,pidAlive:s,endpointReachable:!1,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}}finally{await u?.close?.()}}o(Vn,"observeRuntimeDaemonHealth");async function Ur(e,n,t={}){let r=await Vn(e,t),s=r.state?void 0:te(e.lockFile),a=s?{...r,observedLockOwner:s,lockOwnerPidAlive:(t.isPidAlive??Js)(s.pid)}:r;return Hs(e,n,a)}o(Ur,"resolveRuntimeDaemonOwnership");function on(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}o(on,"runtimeDaemonEndpointFromState");function Js(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return tl(n)&&n.code==="EPERM"}}o(Js,"isRuntimeDaemonPidAlive");async function Zc(e,n,t){let r;try{return await Promise.race([e,new Promise((s,a)=>{r=setTimeout(()=>a(new Error(t)),n),r.unref?.()})])}finally{r!==void 0&&clearTimeout(r)}}o(Zc,"withTimeout");function el(e,n){let t=Gs(e),r=Gs(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}o(el,"daemonIdentityMatchesState");function nl(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}o(nl,"runtimeDaemonLockMatchesState");function Gs(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}o(Gs,"asRecord");function tl(e){return e instanceof Error&&"code"in e}o(tl,"isNodeProcessError");import $a from"node:path";import{randomUUID as Cn}from"node:crypto";var y={type:"string"},J={type:"boolean"},U={type:"integer"},C={type:"object",additionalProperties:!0},Vs={},xe={type:"array",items:C},sn={oneOf:[{type:"null"},C]},ee=E({ok:J},["ok"]),ie=E({}),_t={initialize:{params:E({profile:y,token:y,autoStart:J,endpoint:y,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:C,capabilities:C},[],!0),result:E({identity:C,capabilities:C},["identity","capabilities"],!0)},"runtime.initialize":{params:E({profile:y,token:y,autoStart:J,endpoint:y,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:C,capabilities:C},[],!0),result:E({identity:C,capabilities:C},["identity","capabilities"],!0)},ping:{params:ie,result:E({ok:J,runtimeId:y},["ok","runtimeId"])},"runtime.identity":{params:ie,result:C},"runtime.status":{params:ie,result:C},"runtime.shutdown":{params:ie,result:ee},"runtime.capabilities":{params:ie,result:C},"daemon.status":{params:ie,result:C},"daemon.stop":{params:ie,result:ee},"daemon.logs":{params:ie,result:C},"daemon.preflight":{params:ie,result:C},"daemon.management.get":{params:ie,result:E({runtimeId:y,revision:U,ownerPolicy:Zs(),owner:gl(),preflight:C},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:E({expectedRuntimeId:y,expectedRevision:U,expectedOwnerPolicyRevision:U},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:E({accepted:{type:"boolean",enum:[!0]},runtimeId:y,revision:U,ownerPolicy:Zs("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:E({operationId:y,journalEpoch:y},["operationId","journalEpoch"]),result:C},"session.create":{params:ul(),result:dn()},"session.load":{params:E({sessionId:y},["sessionId"]),result:dn()},"session.list":{params:cl(),result:we(dn())},"session.transcript":{params:E({sessionId:y},["sessionId"]),result:sn},"session.transcript.page":{params:C,result:sn},"session.transcript.entryChunk":{params:C,result:sn},"session.transcript.search":{params:al(),result:me(dl())},"session.observe":{params:E({sessionId:y},["sessionId"]),result:C},"session.fork":{params:Rl(),result:me(dn())},"session.notice.append":{params:E({sessionId:y,content:y,source:y},["sessionId","content"]),result:sn},"session.rewind":{params:E({sessionId:y,selector:y},["sessionId"]),result:me(dn())},"session.active_entry.set":{params:ea(),result:me(dn())},"session.activeEntry.set":{params:ea(),result:me(dn())},"session.compact":{params:yl(),result:C},"session.archive":{params:E({sessionId:y},["sessionId"]),result:ee},"session.unarchive":{params:E({sessionId:y},["sessionId"]),result:ee},"session.delete":{params:E({sessionId:y},["sessionId"]),result:ee},"session.settings.get":{params:E({sessionId:y},["sessionId"]),result:C},"session.settings.getVersioned":{params:E({sessionId:y},["sessionId"]),result:C},"session.autoMode.getStats":{params:E({sessionId:y},["sessionId"]),result:me(C)},"session.settings.update":{params:E({sessionId:y,patch:C},["sessionId","patch"]),result:C},"session.settings.updateVersioned":{params:E({sessionId:y,patch:C,expectedRevision:U},["sessionId","patch","expectedRevision"]),result:C},"run.start":{params:hl(),result:sl()},"run.input.submit":{params:E({sessionId:y,afterRunId:y,delivery:{type:"string",enum:["after_turn","interrupt"]},input:Vs,credential:C,hostTools:C},["sessionId","afterRunId","delivery","input"]),result:C},"run.get":{params:an(),result:na()},"run.list":{params:wl(),result:we(na())},"run.await":{params:an(),result:vl()},"run.abort":{params:an(),result:ee},"run.model.set":{params:E({runId:y,model:y},["runId"],!0),result:ee},"run.provider.set":{params:E({runId:y,provider:y},["runId","provider"]),result:ee},"run.reasoning.set":{params:E({runId:y,reasoning:y},["runId"],!0),result:ee},"run.setModel":{params:E({runId:y,model:y},["runId"],!0),result:ee},"run.setProvider":{params:E({runId:y,provider:y},["runId","provider"]),result:ee},"run.setReasoning":{params:E({runId:y,reasoning:y},["runId"],!0),result:ee},"event.subscribe":{params:Ys(ca()),result:Qs()},"event.unsubscribe":{params:E({subscriptionId:y},["subscriptionId"]),result:ee},"event.replay":{params:Sl(),result:we(Il())},"permission.list":{params:zr(),result:we(ta())},"permission.listPending":{params:zr(),result:we(ta())},"permission.request":{params:la(),result:ra()},"permission.respond":{params:E({requestId:y,runId:y,decision:ra()},["requestId","decision"]),result:J},"permission.grants.list":{params:ie,result:C},"permission.grants.revoke":{params:E({grantId:y,expectedRevision:U},["grantId","expectedRevision"]),result:J},"user_input.listPending":{params:zr(),result:we(C)},"user_input.respond":{params:E({requestId:y,answer:Vs,runId:y,expectedRevision:U},["requestId","answer"],!0),result:C},"user_input.dismiss":{params:E({requestId:y,runId:y,expectedRevision:U},["requestId"],!0),result:C},"credential.register":{params:E({leaseId:y,providers:{type:"array",items:y},expiresAt:y},["leaseId","providers"],!0),result:C},"credential.get":{params:E({leaseId:y},["leaseId"]),result:{oneOf:[C,{type:"null"}]}},"credential.revoke":{params:E({leaseId:y},["leaseId"]),result:J},"credential.supply":{params:E({requestId:y,credential:y,error:y},["requestId"],!0),result:ee},"host_tool.register":{params:E({leaseId:y,tools:{type:"array",items:C}},["leaseId","tools"]),result:C},"host_tool.get":{params:E({leaseId:y},["leaseId"]),result:{oneOf:[C,{type:"null"}]}},"host_tool.invocation.get":{params:E({invocationId:y},["invocationId"]),result:{oneOf:[C,{type:"null"}]}},"host_tool.revoke":{params:E({leaseId:y},["leaseId"]),result:J},"host_tool.complete":{params:E({invocationId:y,result:C,error:y},["invocationId"],!0),result:ee},"workflow.list":{params:ia(),result:xe},"workflow.get":{params:an(),result:{oneOf:[C,{type:"null"}]}},"workflow.subscribe":{params:Ys(ia()),result:Qs()},"workflow.unsubscribe":{params:E({subscriptionId:y},["subscriptionId"]),result:ee},"workflow.pause":{params:an(),result:J},"workflow.resume":{params:an(),result:J},"workflow.stop":{params:an(),result:J},"learning.list":{params:ll(),result:fl()},"learning.get":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ua()},"learning.snapshot":{params:ie,result:pl()},"learning.events":{params:E({afterRevision:U},[],!0),result:we(ml())},"learning.acknowledge":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ee},"learning.snooze":{params:E({nameOrSlug:y,until:y},["nameOrSlug","until"]),result:ee},"learning.reject":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ee},"learning.disable":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ee},"learning.rollback":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ee},"learning.promote":{params:E({nameOrSlug:y,scope:y},["nameOrSlug","scope"]),result:ee},"learning.review":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ee},"learning.trust":{params:E({nameOrSlug:y},["nameOrSlug"]),result:ee},"config.read":{params:ie,result:C},"config.patch":{params:E({patch:C},["patch"]),result:C},"config.reload":{params:ie,result:E({ok:J,config:C},["ok","config"])},"model.list":{params:E({provider:y},[],!0),result:{oneOf:[C,xe]}},"provider.list":{params:ie,result:xe},"provider.custom.list":{params:ie,result:xe},"provider.custom.upsert":{params:E({config:C},["config"]),result:C},"provider.custom.remove":{params:E({name:y},["name"]),result:J},"mcp.server.list":{params:ie,result:C},"mcp.server.get":{params:E({name:y},["name"]),result:{oneOf:[C,{type:"null"}]}},"mcp.server.validate":{params:E({name:y,config:C},["name","config"]),result:{oneOf:[E({ok:J,config:C},["ok","config"],!0),E({ok:J,error:y},["ok","error"],!0)]}},"mcp.server.upsert":{params:E({name:y,config:C},["name","config"]),result:C},"mcp.server.delete":{params:E({name:y},["name"]),result:J},"mcp.server.remove":{params:E({name:y},["name"]),result:J},"mcp.server.reload":{params:ie,result:E({ok:J,servers:xe},["ok","servers"])},"mcp.tool.list":{params:E({server:y,forceRefresh:J},[],!0),result:xe},"extension.list":{params:ie,result:E({active:J,extensions:xe,diagnostics:C},["active","extensions"],!0)},"extension.reload":{params:ie,result:E({ok:J,active:J},["ok","active"],!0)},"command.list":{params:E({projectRoot:y},[],!0),result:xe},"command.resolve":{params:E({name:y,projectRoot:y},["name"],!0),result:sn},"skill.list":{params:E({projectRoot:y,userInvocableOnly:J},[],!0),result:xe},"skill.describe":{params:E({name:y,projectRoot:y},["name"],!0),result:sn},"skill.read":{params:E({name:y,projectRoot:y},["name"],!0),result:sn},"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:oa()},"artifact.get":{params:E({artifactId:y},["artifactId"]),result:me(oa())},"artifact.delete":{params:E({artifactId:y},["artifactId"]),result:J},"agentRegistrations.list":{params:ie,result:xe},"agentRegistrations.upsert":{params:E({registration:C,expectedConfigurationRevision:me(y),expectedManagementOwner:me(y)},["registration"]),result:C},"agentRegistrations.setEnabled":{params:E({agentId:y,enabled:J,expectedConfigurationRevision:me(y),expectedManagementOwner:me(y),claimOwner:y},["agentId","enabled"]),result:me(C)},"agentRegistrations.remove":{params:E({agentId:y,expectedConfigurationRevision:me(y),expectedManagementOwner:me(y)},["agentId"]),result:J},"agents.listDispatchable":{params:C,result:xe},"agents.describe":{params:E({agentId:y,query:C},["agentId","query"]),result:me(C)},"agents.preflight":{params:C,result:C},"agents.tree":{params:E({sessionId:y},["sessionId"]),result:C},"agents.detail":{params:E({sessionId:y,actorPath:y},["sessionId","actorPath"]),result:C},"agents.spawn":{params:E({sessionId:y,input:C},["sessionId","input"]),result:C},"agents.send":{params:E({sessionId:y,actorPath:y,content:y,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:ee},"agents.followup":{params:E({sessionId:y,actorPath:y,objective:y,expectedRevision:U},["sessionId","actorPath","objective"],!0),result:C},"agents.interrupt":{params:E({sessionId:y,actorPath:y,reason:y},["sessionId","actorPath"],!0),result:ee},"agents.output":{params:E({sessionId:y,actorPath:y,turnId:y},["sessionId","actorPath"],!0),result:C},"agents.events":{params:E({sessionId:y,afterSequence:U},["sessionId"],!0),result:xe},"agents.wait":{params:E({sessionId:y,afterSequence:U,timeoutMs:U},["sessionId"],!0),result:me(C)},"context.budget.get":{params:Wr(),result:{oneOf:[C,{type:"null"}]}},"tool.exposure.preview":{params:Wr(),result:{oneOf:[C,{type:"null"}]}},"provider.cache.diagnostics.get":{params:Wr(),result:{oneOf:[C,{type:"null"}]}}},sa={event:E({subscriptionId:y,event:C},["subscriptionId","event"]),"credential.request":C,"host_tool.invoke":C,"runtime.warning":C},aa={protocol:Xe,version:1,methods:_t,notifications:sa},rl=JSON.stringify(aa,null,2);function il(){return hn}o(il,"listRuntimeDaemonSchemaMethods");function Mn(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(d=>Mn(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=>ol(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)=>Mn(a,d,`${t}[${u}]`))}if(!da(n))return[];let s=[];for(let a of e.required??[])(!Object.prototype.hasOwnProperty.call(n,a)||n[a]===void 0)&&s.push(`${t}.${a} is required.`);for(let[a,d]of Object.entries(n)){if(d===void 0)continue;let u=e.properties?.[a];if(u!==void 0){s.push(...Mn(u,d,`${t}.${a}`));continue}e.additionalProperties===!1?s.push(`${t}.${a} is not allowed.`):typeof e.additionalProperties=="object"&&s.push(...Mn(e.additionalProperties,d,`${t}.${a}`))}return s}o(Mn,"validateRuntimeDaemonJsonSchema");function ol(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 da(n);case"string":return typeof n=="string"}}o(ol,"matchesJsonSchemaType");function da(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(da,"isJsonObject");function E(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}o(E,"objectSchema");function an(){return E({runId:y},["runId"])}o(an,"runIdParamsSchema");function Ys(e){return E({filter:e})}o(Ys,"filterParamsSchema");function Wr(){return E({sessionId:y,runId:y,contextKind:{type:"string",enum:["root","child"]},agentId:y},[],!0)}o(Wr,"diagnosticParamsSchema");function Qs(){return E({subscriptionId:y},["subscriptionId"])}o(Qs,"subscriptionSchema");function sl(){return E({runId:y,sessionId:y,turnId:y},["runId","sessionId"],!0)}o(sl,"runStartedSchema");function we(e){return{type:"array",items:e}}o(we,"arraySchema");function me(e){return{oneOf:[{type:"null"},e]}}o(me,"nullableSchema");function al(){return E({sessionId:y,query:y,limit:U,role:{type:"string",enum:["user","assistant"]},scope:{type:"string",enum:["compacted","all"]}},["sessionId","query"])}o(al,"transcriptSearchParamsSchema");function dl(){let e=E({entryId:y,logicalId:y,sourceEntryId:y,timestamp:y,role:{type:"string",enum:["user","assistant"]},source:{type:"string",enum:["user","assistant","tool","child_task"]},active:J,score:{type:"number"},snippet:y,citation:y,entryIndex:U},["entryId","timestamp","role","source","active","score","snippet","citation","entryIndex"]);return E({revision:y,hits:we(e)},["revision","hits"])}o(dl,"transcriptSearchResultSchema");function ul(){return E({sessionId:y,title:y,projectPath:y,gitRoot:y,surface:y,profileId:y,tag:y})}o(ul,"createSessionParamsSchema");function dn(){return E({id:y,cursor:y,title:y,gitRoot:y,workspaceRoot:y,surface:y,profileId:y,createdAt:y,msgCount:U,tag:y,projectKey:y,archived:J},["id","title"],!0)}o(dn,"sessionSchema");function cl(){return E({projectRoot:y,scope:{enum:["user","managed-task-worker","all"]},includeArchived:J,limit:U,before:y,tag:y,surface:y,cursor:y})}o(cl,"sessionFilterSchema");function ll(){return E({search:y,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:U,cursor:y})}o(ll,"learningQuerySchema");function ua(){return E({schemaVersion:{type:"integer",enum:[1]},capabilityId:y,displayName:y,slug:y,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:Gr(),revision:U,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:U,previousLifecycle:Gr(),diagnostics:we(y)},["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"])}o(ua,"learnedCapabilitySchema");function Gr(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}o(Gr,"learningLifecycleSchema");function ml(){return E({schemaVersion:{type:"integer",enum:[1]},sequence:U,eventId:y,capabilityId:y,capabilityRevision:U,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Gr(),displayName:y,slug:y,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:y},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}o(ml,"learningEventSchema");function pl(){return E({ready:U,newlyActive:U,attention:U,active:U,revision:U},["ready","newlyActive","attention","active","revision"])}o(pl,"learningSnapshotSchema");function fl(){return E({items:we(ua()),nextCursor:y,revision:U},["items","revision"])}o(fl,"learningPageSchema");function Zs(e){return E({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:U,updatedAt:y},["mode","revision","updatedAt"])}o(Zs,"ownerPolicySchema");function gl(){return E({runtimeId:y,pid:U,createdAt:y,kind:{type:"string",enum:["daemon","inline"]}},["runtimeId","pid","createdAt"])}o(gl,"ownerIdentitySchema");function Rl(){return E({sessionId:y,selector:y,newSessionId:y,title:y},["sessionId"])}o(Rl,"forkSessionParamsSchema");function ea(){return E({sessionId:y,entryId:y},["sessionId","entryId"])}o(ea,"activeEntryParamsSchema");function yl(){return E({sessionId:y,provider:y,model:y,customInstructions:y,contextWindow:U},["sessionId"])}o(yl,"compactSessionParamsSchema");function hl(){return E({sessionId:y,prompt:y,input:{oneOf:[C,we(C)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:C},["sessionId"],!0)}o(hl,"startRunParamsSchema");function wl(){return E({sessionId:y,phase:{oneOf:[Ct(),we(Ct())]}})}o(wl,"runFilterSchema");function na(){return E({runId:y,sessionId:y,turnId:y,phase:Ct(),startedAt:y,endedAt:y,provider:y,model:y,reasoning:y,error:y},["runId","sessionId","phase","startedAt","provider"],!0)}o(na,"runStatusSchema");function vl(){return E({runId:y,sessionId:y,phase:Ct(),result:C,error:{oneOf:[y,C]}},["runId","sessionId","phase"],!0)}o(vl,"runResultSchema");function Ct(){return{enum:["queued","running","waiting_permission","waiting_user_input","completed","failed","cancelled","interrupted"]}}o(Ct,"runPhaseSchema");function ca(){return E({sessionId:y,runId:y,type:{oneOf:[y,we(y)]}})}o(ca,"eventFilterSchema");function Sl(){return E({...ca().properties??{},sinceSeq:U,limit:U})}o(Sl,"eventReplayFilterSchema");function Il(){return E({id:y,seq:U,time:y,sessionId:y,runId:y,turnId:y,type:y,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}o(Il,"runtimeEventSchema");function zr(){return E({sessionId:y,runId:y,toolName:y})}o(zr,"permissionFilterSchema");function la(){return E({sessionId:y,runId:y,turnId:y,toolCallId:y,toolName:y,reason:y,risk:{enum:["low","medium","high"]},inputPreview:y,toolInput:C,executionCwd:{type:"string",maxLength:4096},expiresAt:y,timeoutMs:U},["sessionId","runId","toolName"])}o(la,"permissionRequestInputSchema");function ta(){let{toolInput:e,...n}=la().properties??{};return E({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:we(E({id:y,kind:{enum:["session","persistent"]},label:{type:"string",maxLength:512}},["id","kind","label"])),id:y,createdAt:y},["id","sessionId","runId","toolName","createdAt"],!0)}o(ta,"permissionRequestSchema");function ra(){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:kl()})},["type","scope"]),E({type:{enum:["reject"]},reason:y},["type"])]}}o(ra,"permissionDecisionSchema");function kl(){let e={version:{type:"integer",enum:[1]},toolName:y,fingerprint:y};return{oneOf:[E({...e,kind:{enum:["exact-command"]},shell:{enum:["cmd","posix","powershell"]},shellContractFingerprint:y,commandFingerprint:y,cwd:y,executable:y,argvFingerprint:y,background:J},["version","kind","toolName","fingerprint","shell","commandFingerprint","cwd","background"]),E({...e,kind:{enum:["exact-path"]},path:y},["version","kind","toolName","fingerprint","path"]),E({...e,kind:{enum:["exact-call"]},cwd:y,inputFingerprint:y},["version","kind","toolName","fingerprint","cwd","inputFingerprint"])]}}o(kl,"runtimePermissionMatcherSchema");function ia(){return E({runId:y,activeOnly:J,limit:U})}o(ia,"workflowFilterSchema");function oa(){return E({id:y,kind:{enum:["image","file","video"]},path:y,sizeBytes:U,mediaType:y,mimeType:y,name:y,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:y,createdAt:y},["id","kind","path","sizeBytes","createdAt"],!0)}o(oa,"artifactSchema");import{createHash as bl,randomUUID as Yn}from"node:crypto";import*as ue from"node:fs";import Pl from"node:path";var El=6e4,xl=1048576,Dl=64,Tl=4096,ma=1e3;function Vr(){return{callTimeoutMs:ga("KODAX_REVERSE_CALL_TIMEOUT_MS",El),maxResultBytes:ga("KODAX_HOST_TOOL_MAX_RESULT_BYTES",xl)}}o(Vr,"runtimeDaemonReverseBridgeLimits");function Yr(e,n={}){let t=Vr(),r=new Map,s=new Map,a=new Map,d=new Map,u=new Map((n.initialInvocations??[]).map(g=>[g.invocationId,g])),p=new Set,f=new Map,S=new Map,i,l=!1,c=o(()=>{if(l)throw z("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),h=o(()=>{let g=Date.now();for(let[w,D]of r)D.expiresAt!==void 0&&Date.parse(D.expiresAt)<=g&&r.delete(w)},"pruneExpiredCredentials"),P=o(g=>{for(let w of a.values())clearTimeout(w.timer),w.reject(z("credential_unavailable",g));a.clear()},"rejectPendingCredentialRequests"),R=o(()=>{for(let[g,w]of d)w.dispatched&&(d.delete(g),clearTimeout(w.timer),I(g,"unknown"),w.reject(z("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),I=o((g,w)=>{let D=u.get(g);if(D===void 0)return;let T={...D,state:w,updatedAt:new Date().toISOString()},M=new Map(u);for(M.delete(g),M.set(g,T);M.size>ma;){let q=M.keys().next().value;if(q===void 0)break;M.delete(q)}n.onInvocationsChanged?.([...M.values()]),u.clear();for(let[q,m]of M)u.set(q,m)},"updateHostToolInvocation"),k=o((g,w)=>{let D=i;if(!(w.dispatched||D===void 0||!p.has(w.leaseId)))try{I(g,"dispatched"),w.dispatched=!0,D.notify(w.notification)}catch{d.delete(g),clearTimeout(w.timer),I(g,"unknown"),w.reject(z("host_tool_unknown","Host tool transport failed after durable dispatch; the side-effect outcome is unknown."))}},"dispatchPendingHostCall"),x=o(async g=>{if(c(),s.get(g.lease.id)!==g.lease)throw z("host_tool_unavailable","Host tool lease was revoked.");let w=`hostcall_${Yn().replace(/-/g,"")}`,D=Wn("host_tool.invoke",{invocationId:w,leaseId:g.lease.id,toolName:g.descriptor.name,sessionId:g.sessionId,runId:g.runId,input:g.toolInput,sideEffect:g.descriptor.sideEffect}),T={invocationId:w,leaseId:g.lease.id,toolName:g.descriptor.name,sessionId:g.sessionId,runId:g.runId,state:"prepared",updatedAt:new Date().toISOString()},M=new Map(u);for(M.set(w,T);M.size>ma;){let v=M.keys().next().value;if(v===void 0)break;M.delete(v)}n.onInvocationsChanged?.([...M.values()]),u.clear();for(let[v,b]of M)u.set(v,b);let q=new Promise((v,b)=>{let A=setTimeout(()=>{let _=d.get(w);_&&(d.delete(w),I(w,_.dispatched?"unknown":"not_dispatched"),b(z(_.dispatched?"host_tool_unknown":"host_tool_unavailable",_.dispatched?`Host tool ${g.descriptor.name} did not return a certain result before timeout.`:`Host tool ${g.descriptor.name} had no connected host before timeout.`)))},t.callTimeoutMs);A.unref?.(),d.set(w,{invocationId:w,resolve:v,reject:b,timer:A,notification:D,leaseId:g.lease.id,dispatched:!1})}),m=d.get(w);return m&&k(w,m),q},"invokeHostTool");return e!==void 0&&(i={id:`bridge_${Yn().replace(/-/g,"")}`,notify:e}),{attachTransport(g){c(),i!==void 0&&(P("Credential client connection was replaced."),R());let w=`bridge_${Yn().replace(/-/g,"")}`;return i={id:w,notify:g},p.clear(),{close(){i?.id===w&&(i=void 0,p.clear(),P("Credential client disconnected."),R())}}},registerCredential(g){if(c(),h(),g.providers.length===0||g.providers.some(D=>D.trim().length===0)||new Set(g.providers).size!==g.providers.length)throw z("invalid_params","Credential lease providers must be non-empty and unique.");if(g.expiresAt!==void 0&&!Number.isFinite(Date.parse(g.expiresAt)))throw z("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(g.leaseId))throw z("conflict","Credential lease ID is already registered on this connection.");let w={id:g.leaseId,providers:[...g.providers],...g.expiresAt!==void 0?{expiresAt:g.expiresAt}:{},providerSet:new Set(g.providers)};return r.set(g.leaseId,w),fa(w)},getCredential(g){h();let w=r.get(g);return w===void 0?void 0:fa(w)},revokeCredential(g){return r.delete(g)},supplyCredential(g){let w=a.get(g.requestId);return w?(a.delete(g.requestId),clearTimeout(w.timer),g.credential!==void 0&&g.credential.length>0?w.resolve(g.credential):w.reject(z("credential_unavailable",g.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(g){c();let w=r.get(g.leaseId);if(!w||!w.providerSet.has(g.provider))throw z("credential_unavailable","Credential lease is missing or does not allow this provider.");if(w.expiresAt!==void 0&&Date.parse(w.expiresAt)<=Date.now())throw r.delete(w.id),z("credential_unavailable","Credential lease expired.");let D=i;if(!D)throw z("credential_unavailable","Credential broker transport is unavailable.");let T=`credreq_${Yn().replace(/-/g,"")}`,M=w.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(w.expiresAt)-Date.now())),q=new Promise((m,v)=>{let b=setTimeout(()=>{a.delete(T),v(z("credential_unavailable","Credential lease expired or broker timed out."))},M);b.unref?.(),a.set(T,{resolve:m,reject:v,timer:b})});try{D.notify(Wn("credential.request",{requestId:T,leaseId:w.id,provider:g.provider,sessionId:g.sessionId,runId:g.runId}))}catch{let m=a.get(T);m&&(a.delete(T),clearTimeout(m.timer),m.reject(z("credential_unavailable","Credential request was not dispatched.")))}return q.then(m=>(f.set(g.runId,{leaseId:g.leaseId,provider:g.provider}),m))},registerHostTools(g){c();let w=g.tools.map(T=>T.name);if(w.length===0||w.length>Dl||new Set(w).size!==w.length)throw z("invalid_params","Host tool names must be non-empty and unique.");if(s.has(g.leaseId))throw z("conflict","Host tool lease ID is already registered on this connection.");for(let T of g.tools)Ol(T);let D={id:g.leaseId,tools:g.tools.map(T=>({...T,inputSchema:{...T.inputSchema}})),byName:new Map(g.tools.map(T=>[T.name,T]))};return s.set(g.leaseId,D),p.add(g.leaseId),{id:D.id,tools:D.tools}},getHostTools(g){let w=s.get(g);if(w!==void 0){p.add(g);for(let[D,T]of d)T.leaseId===g&&k(D,T)}return w===void 0?void 0:{id:w.id,tools:w.tools}},revokeHostTools(g){return s.delete(g)},completeHostTool(g){let w=d.get(g.invocationId);if(!w)return!1;if(g.result!==void 0){if(typeof g.result.content!="string")throw z("invalid_params","Host tool result content must be a string.");Nl(g.result,t.maxResultBytes,"Host tool result")}return d.delete(g.invocationId),clearTimeout(w.timer),g.result!==void 0?(I(g.invocationId,"completed"),w.resolve(g.result)):(I(g.invocationId,"unknown"),w.reject(z("host_tool_unknown",g.error??"Host tool result is unknown."))),!0},getHostToolInvocation(g){return u.get(g)},createHostToolRuntime(g){c();let w=s.get(g.leaseId);if(!w)throw z("host_tool_unavailable","Host tool lease is missing.");return S.set(g.runId,g.leaseId),{hasCapabilityProvider(D){return D==="mcp"},async searchCapabilities(D,T,M){if(D!=="mcp"||M?.kind!==void 0&&M.kind!=="tool")return[];let q=T.toLowerCase();return w.tools.filter(m=>m.name.toLowerCase().includes(q)||m.description.toLowerCase().includes(q)).slice(0,M?.limit??w.tools.length).map(m=>({id:Ll(w.id,m.name),name:m.name,description:m.description,kind:"tool",server:"host",inputSchema:m.inputSchema}))},async describeCapability(D,T){if(D!=="mcp")return;let M=Ra(w,T);return M?{...M,id:T,kind:"tool",server:"host"}:void 0},async executeCapability(D,T,M){if(D!=="mcp")throw z("host_tool_unavailable","Unsupported host capability provider.");let q=Ra(w,T);if(!q)throw z("host_tool_unavailable","Host tool is not bound to this run.");return await x({lease:w,descriptor:q,sessionId:g.sessionId,runId:g.runId,toolInput:M})},async readCapability(){throw z("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(g){let w=f.get(g),D=S.get(g);if(!(w===void 0&&D===void 0))return{...w!==void 0?{credential:{...w,state:"ready"}}:{},...D!==void 0?{hostTools:{leaseId:D,state:s.has(D)?p.has(D)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!l){l=!0,i=void 0,p.clear(),r.clear(),s.clear(),P("Credential client disconnected.");for(let g of d.values())clearTimeout(g.timer),I(g.invocationId,g.dispatched?"unknown":"not_dispatched"),g.reject(z(g.dispatched?"host_tool_unknown":"host_tool_unavailable",g.dispatched?"Host tool client disconnected; the side-effect outcome is unknown.":"Host tool client disconnected before dispatch."));d.clear(),u.clear()}}}}o(Yr,"createRuntimeDaemonReverseBridge");function ya(e={}){let n=new Map,t=Ml(e.invocationStateFile),r=!1;return{attach(s){if(r)throw z("host_tool_unavailable","Host bridge hub is closed.");if(s.instanceSecret!==void 0&&(s.instanceSecret.length<32||s.instanceSecret.length>512))throw z("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let a=s.instanceSecret===void 0?`ephemeral:${s.connectionId}`:`stable:${s.principalId}:${bl("sha256").update(s.instanceSecret).digest("hex")}`,d=a.startsWith("stable:")?Al(t.get(a)??[]):[],u=n.get(a)??Yr(void 0,{initialInvocations:d,...a.startsWith("stable:")?{onInvocationsChanged(f){t.set(a,f),pa(e.invocationStateFile,t)}}:{}});!n.has(a)&&d.length>0&&(t.set(a,d),pa(e.invocationStateFile,t)),n.set(a,u);let p=u.attachTransport(s.notify);return{bridge:u,close(){p.close()}}},getRunRequirements(s){for(let a of n.values()){let d=a.getRunRequirements(s);if(d!==void 0)return d}},close(){if(!r){r=!0;for(let s of n.values())s.close();n.clear()}}}}o(ya,"createRuntimeDaemonReverseBridgeHub");function Al(e){let n=new Date().toISOString();return e.map(t=>t.state==="prepared"?{...t,state:"not_dispatched",updatedAt:n}:t.state==="dispatched"?{...t,state:"unknown",updatedAt:n}:t)}o(Al,"recoverHostToolInvocationStates");function Ml(e){if(e===void 0||!ue.existsSync(e))return new Map;let n;try{n=JSON.parse(ue.readFileSync(e,"utf8"))}catch(r){throw new Error(`Host Tool invocation recovery store is untrusted: ${Fl(r).message}`)}if(!Jr(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(!Jr(r)||typeof r.key!="string"||!Array.isArray(r.invocations))throw new Error("Host Tool invocation recovery store is untrusted: invalid client entry.");let s=r.invocations.map(Cl);t.set(r.key,s)}return t}o(Ml,"loadHostToolInvocationStore");function pa(e,n){if(e===void 0)return;ue.mkdirSync(Pl.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${Yn()}.tmp`,r;try{r=ue.openSync(t,"wx",384),ue.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([s,a])=>({key:s,invocations:a}))},null,2)}
|
|
65
|
-
`,"utf8"),ue.fsyncSync(r),ue.closeSync(r),r=void 0,ue.renameSync(t,e)}finally{r!==void 0&&ue.closeSync(r),ue.rmSync(t,{force:!0})}}o(pa,"saveHostToolInvocationStore");function Cl(e){if(!Jr(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!_l(e.state)||typeof e.updatedAt!="string")throw new Error("Host Tool invocation recovery store is untrusted: invalid invocation entry.");return{invocationId:e.invocationId,leaseId:e.leaseId,toolName:e.toolName,sessionId:e.sessionId,runId:e.runId,state:e.state,updatedAt:e.updatedAt}}o(Cl,"parseHostToolInvocationStatus");function _l(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}o(_l,"isHostToolInvocationState");function fa(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}o(fa,"publicCredentialLease");function Ol(e){if(!e.name||!e.description||!e.inputSchema)throw z("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw z("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw z("invalid_params","Host tool name is invalid.");if(e.description.length>Tl)throw z("invalid_params",`Host tool description is too long: ${e.name}.`)}o(Ol,"validateHostToolDescriptor");function Nl(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw z("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw z("invalid_params",`${t} exceeds the ${n}-byte limit.`)}o(Nl,"assertJsonByteLimit");function ga(e,n){let t=process.env[e];if(t===void 0)return n;let r=Number(t);if(!Number.isSafeInteger(r)||r<=0)throw new Error(`${e} must be a positive integer.`);return r}o(ga,"positiveIntegerEnvironment");function Ll(e,n){return`host:${e}:${n}`}o(Ll,"hostToolCapabilityId");function Ra(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}o(Ra,"descriptorFromCapabilityId");function z(e,n){return Object.assign(new Error(n),{code:e})}o(z,"bridgeError");function Jr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Jr,"isRecord");function Fl(e){return e instanceof Error?e:new Error(String(e))}o(Fl,"normalizeError");var jl=512*1024,ha=1e3,ql=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],$l=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),xa=["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"],Da=new Map([...pe("session:observe",["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status","daemon.logs","operation.get","session.load","session.list","session.transcript","session.transcript.page","session.transcript.entryChunk","session.observe","session.settings.get","session.transcript.search","session.settings.getVersioned","session.autoMode.getStats","run.get","run.list","run.await","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.grants.list","user_input.listPending","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","context.budget.get","tool.exposure.preview","provider.cache.diagnostics.get","config.read","model.list","provider.list","provider.custom.list","mcp.server.list","mcp.server.get","mcp.tool.list","extension.list","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.get"]),...pe("session:write",["session.create","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.update","session.settings.updateVersioned"]),...pe("run:control",["run.start","run.input.submit","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","permission.request"]),...pe("permission:respond",["permission.respond"]),...pe("permission:grant-admin",["permission.grants.revoke"]),...pe("interaction:respond",["user_input.respond","user_input.dismiss"]),...pe("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...pe("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...pe("integration:admin",["config.patch","config.reload","provider.custom.upsert","provider.custom.remove","mcp.server.validate","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","extension.reload"]),...pe("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...pe("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...pe("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...pe("artifact:write",["artifact.create","artifact.delete"]),...pe("agent:control",["agentRegistrations.list","agentRegistrations.upsert","agentRegistrations.setEnabled","agentRegistrations.remove","agents.listDispatchable","agents.describe","agents.preflight","agents.tree","agents.detail","agents.spawn","agents.send","agents.followup","agents.interrupt","agents.output","agents.events","agents.wait"]),...pe("owner:admin",["daemon.rollbackToInline"]),...pe("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),wa=hn.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!Da.has(e));if(wa.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${wa.join(", ")}`);function pe(e,n){return n.map(t=>[t,e])}o(pe,"scopeEntries");function oi(){let e=new Map,n=o(()=>{if(!(e.size<=ha))for(let[r,s]of e){if(e.size<=ha)break;s.settled&&e.delete(r)}},"pruneSettled"),t=o((r,s)=>{e.get(r)===s&&(s.settled=!0,n())},"markSettled");return{remember(r,s){let a,d=s.finally(()=>{a&&t(r,a)});d.catch(()=>{}),a={promise:d,settled:!1},e.set(r,a),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}o(oi,"createRuntimeDaemonRunResultStore");function Qn(e){return e==="initialize"||e==="runtime.initialize"}o(Qn,"isInitializeMethod");function Ta(e){let n=new Map,t=e.runResults??oi(),r=`connection_${Cn().replace(/-/g,"")}`,s=Yr(e.notify),a=s,d,u=!1,p=!1,f="client",S={},i=`client_${Cn().replace(/-/g,"")}`,l,c,h=new Set(e.grantedScopes??xa),P=o(x=>{let g=n.get(x);return g?(n.delete(x),g.close(),!0):!1},"closeSubscription"),R=o((x,g)=>{n.set(x,g)},"rememberSubscription"),I=o((x,g)=>{Ma(g)&&S.contextDiagnostics!==!0||e.notify?.(Wn("event",{subscriptionId:x,event:g}))},"notify");return{handle:o(async x=>{try{if(Rs(x.method))throw K("client_upgrade_required","The legacy agentTasks control plane was retired. Upgrade the KodaX SDK; if this daemon does not advertise actorControlPlane v1, restart it with the upgraded KodaX installation.");let g=x;Ea(g.method,"params",g.params===void 0?{}:g.params,"invalid_params");let w;if(!u&&!Qn(g.method))throw K("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(u&&Qn(g.method))throw K("conflict","Runtime daemon connection is already initialized.");if(u&&f==="probe"&&!$l.has(g.method))throw K("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(Qn(g.method)){w=Z(g.params),f=w?.connectionPurpose==="probe"?"probe":"client";let q=typeof w?.token=="string"?w.token:void 0;if(e.authToken!==void 0&&q!==e.authToken)throw K("unauthorized","Runtime daemon initialize token is invalid.");let m=typeof w?.profile=="string"?w.profile:void 0;if(m!==void 0&&m!==e.runtime.identity.profile)throw K("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${m}.`);i=Ul(w?.clientInfo,i),l=dm(w?.clientInfo),c=um(w?.clientInfo)}Qn(g.method)||(Xl(g.method,h),Bl(g,h));let T=await Hl(g,e,S,i,o(()=>Wl(g,e,t,R,P,I,()=>S,i,l,c,a),"dispatch")),M=fm(g.method,T);if(Ea(g.method,"result",M,"internal_error"),Qn(g.method)){if(S=Gl(w?.capabilities),f==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(d=e.reverseBridgeHub.attach({principalId:i,connectionId:r,...Sa(w?.clientInfo)!==void 0?{instanceSecret:Sa(w?.clientInfo)}:{},notify:e.notify}),a=d.bridge,s.close()),f==="client"&&e.management!==void 0)try{e.management.attachClient(r),p=!0}catch(q){throw d?.close(),d=void 0,q}u=!0}return ys(g.id,M)}catch(g){return Be(gm(g),x.id)}},"handle"),close(){for(let x of[...n.keys()])P(x);d!==void 0?d.close():a.close(),p&&(e.management?.detachClient(r),p=!1)}}}o(Ta,"createRuntimeDaemonDispatcher");async function Hl(e,n,t,r,s){let a=o(()=>n.management!==void 0&&Kl(e.method)?n.management.runMutation(e.method,s):s(),"execute");if(!en(e.method)||n.requireOperationEnvelope!==!0)return a();if(t.operationDeduplication!==!0)throw K("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw K("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw K("internal_error","Runtime daemon control journal is unavailable.");return n.controlJournal.execute({operationId:e.operation.operationId,journalEpoch:e.operation.journalEpoch,principalId:r,method:e.method,...va(e.params)!==void 0?{resourceId:va(e.params)}:{},params:e.params??{}},{externalEffect:!0},a)}o(Hl,"dispatchWithOperation");function Kl(e){return gs(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}o(Kl,"isManagedRuntimeMutation");function Xl(e,n){let t=Da.get(e);if(t===void 0)throw K("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw K("unauthorized",`Runtime daemon method requires scope ${t}.`)}o(Xl,"requireRuntimeMethodScope");function Bl(e,n){if(e.method!=="permission.respond")return;let t=fe(e.params)?e.params:void 0;if(!((t&&fe(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw K("unauthorized","Persistent permission grants require scope permission:grant-admin.")}o(Bl,"requirePersistentGrantScope");function va(e){if(fe(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}o(va,"operationResourceId");function Ul(e,n){if(!fe(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}o(Ul,"parseRuntimeClientPrincipal");function Sa(e){if(!fe(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}o(Sa,"parseRuntimeClientInstanceSecret");async function Wl(e,n,t,r,s,a,d,u,p,f,S){let i=n.runtime,l=n.reverseBridgeHub??S;switch(e.method){case"initialize":case"runtime.initialize":return{identity:i.identity,capabilities:ka(n.capabilities,i.agents.enabled,i.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0),principalId:u,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??xa]};case"ping":return{ok:!0,runtimeId:i.identity.runtimeId};case"runtime.identity":return i.identity;case"daemon.status":case"runtime.status":return Ql(await(n.status?n.status():i.status.snapshot()),l);case"daemon.stop":case"runtime.shutdown":return n.management?n.management.stop():n.stop?n.stop():i.close().then(()=>({ok:!0}));case"daemon.logs":return n.logs?n.logs():{entries:[]};case"daemon.preflight":return Zl(await(n.management?n.management.preflight():n.preflight?n.preflight():i.status.preflight()),l);case"daemon.management.get":if(!n.management)throw K("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw K("client_upgrade_required","Runtime daemon rollback management is unavailable.");let c=O(e.params),h={expectedRuntimeId:F(c,"expectedRuntimeId"),expectedRevision:Lt(c,"expectedRevision"),expectedOwnerPolicyRevision:Lt(c,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(h)}case"runtime.capabilities":return ka(n.capabilities,i.agents.enabled,i.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0);case"operation.get":{let c=O(e.params),h=F(c,"operationId"),P=F(c,"journalEpoch");if(!n.controlJournal)return i.operations.get({operationId:h,journalEpoch:P});if(P!==n.controlJournal.journalEpoch)throw K("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let R=n.controlJournal.get(h);if(!R||R.principalId!==u)throw K("not_found","Runtime operation was not found.");return Jl(R)}case"config.read":return n.config?ii(await n.config()):i.config.read();case"config.patch":{let c=Ca(O(e.params),"patch");return i.config.patch(c)}case"config.reload":return i.config.reload();case"provider.list":return n.providerList?n.providerList():i.catalog.providers();case"model.list":return n.providerList?nm(await n.providerList(),Z(e.params)):i.catalog.models(rm(e.params));case"provider.custom.list":return i.catalog.customProviders();case"provider.custom.upsert":{let c=O(e.params);return i.catalog.upsertCustomProvider(O(c.config))}case"provider.custom.remove":return i.catalog.deleteCustomProvider(G(e.params,"name"));case"mcp.server.list":return i.mcp.listServers();case"mcp.server.get":return i.mcp.getServer(G(e.params,"name"));case"mcp.server.validate":{let c=O(e.params);return i.mcp.validateServer(F(c,"name"),c.config)}case"mcp.server.upsert":{let c=O(e.params);return i.mcp.upsertServer(F(c,"name"),O(c.config))}case"mcp.server.delete":case"mcp.server.remove":return i.mcp.deleteServer(G(e.params,"name"));case"mcp.server.reload":return i.mcp.reloadServers();case"mcp.tool.list":return i.mcp.listTools(im(e.params));case"extension.list":return i.catalog.extensions();case"extension.reload":return i.catalog.reloadExtensions();case"command.list":{let c=Z(e.params),h=typeof c?.projectRoot=="string"?c.projectRoot:void 0;return i.catalog.commands(h)}case"command.resolve":{let c=O(e.params);return i.catalog.resolveCommand({name:F(c,"name"),...typeof c.projectRoot=="string"?{projectRoot:c.projectRoot}:{}})}case"skill.list":return i.catalog.skills(om(e.params));case"skill.describe":case"skill.read":{let c=O(e.params);return i.catalog.describeSkill({name:F(c,"name"),...typeof c.projectRoot=="string"?{projectRoot:c.projectRoot}:{}})}case"artifact.create":return i.artifacts.create(sm(e.params));case"artifact.get":return i.artifacts.get(G(e.params,"artifactId"));case"artifact.delete":return i.artifacts.delete(G(e.params,"artifactId"));case"agentRegistrations.list":return Nt(n),Ot(i),i.admin.agentRegistrations.list();case"agentRegistrations.upsert":{Nt(n),Ot(i);let c=O(e.params);return i.admin.agentRegistrations.upsert(O(c.registration),{expectedConfigurationRevision:ni(c),expectedManagementOwner:ti(c)})}case"agentRegistrations.setEnabled":{Nt(n),Ot(i);let c=O(e.params),h=se(c,"claimOwner");if(h!==void 0&&h.length===0)throw K("invalid_request","Expected non-empty optional string param: claimOwner");return i.admin.agentRegistrations.setEnabled(F(c,"agentId"),pm(c,"enabled"),{expectedConfigurationRevision:ni(c),expectedManagementOwner:ti(c),...h?{claimOwner:h}:{}})}case"agentRegistrations.remove":Nt(n),Ot(i);{let c=O(e.params);return i.admin.agentRegistrations.remove(F(c,"agentId"),{expectedConfigurationRevision:ni(c),expectedManagementOwner:ti(c)})}case"agents.listDispatchable":return i.agents.listDispatchable(O(e.params));case"agents.describe":{let c=O(e.params);return i.agents.describe(F(c,"agentId"),O(c.query))}case"agents.preflight":return i.agents.preflight(O(e.params));case"agents.tree":return i.agents.tree(G(e.params,"sessionId"));case"agents.detail":{let c=O(e.params);return i.agents.detail(F(c,"sessionId"),F(c,"actorPath"))}case"agents.spawn":{let c=O(e.params);return i.agents.spawn(F(c,"sessionId"),O(c.input))}case"agents.send":{let c=O(e.params),h=se(c,"classification");if(h!==void 0&&h!=="public"&&h!=="internal"&&h!=="sensitive")throw K("invalid_params","Invalid Agent message classification.");return await i.agents.send(F(c,"sessionId"),F(c,"actorPath"),F(c,"content"),h),{ok:!0}}case"agents.followup":{let c=O(e.params),h=ze(c,"expectedRevision");return i.agents.followup(F(c,"sessionId"),F(c,"actorPath"),F(c,"objective"),h===void 0?void 0:{expectedRevision:h})}case"agents.interrupt":{let c=O(e.params);return await i.agents.interrupt(F(c,"sessionId"),F(c,"actorPath"),se(c,"reason")),{ok:!0}}case"agents.output":{let c=O(e.params);return i.agents.output(F(c,"sessionId"),F(c,"actorPath"),se(c,"turnId"))}case"agents.events":{let c=O(e.params);return i.agents.events(F(c,"sessionId"),ze(c,"afterSequence"))}case"agents.wait":{let c=O(e.params);return i.agents.wait(F(c,"sessionId"),ze(c,"afterSequence"),ze(c,"timeoutMs"))}case"session.create":return i.sessions.create(Z(e.params));case"session.load":return i.sessions.load(G(e.params,"sessionId"));case"session.list":return i.sessions.list(Z(e.params));case"session.transcript":{let c=await i.sessions.transcript(G(e.params,"sessionId"));if(c!==null&&Buffer.byteLength(JSON.stringify(c),"utf8")>jl)throw K("invalid_request","Transcript is too large for the legacy endpoint; use session.transcript.page and session.transcript.entryChunk.");return c}case"session.transcript.page":return i.sessions.transcriptPage(O(e.params));case"session.transcript.entryChunk":return i.sessions.transcriptEntryChunk(O(e.params));case"session.transcript.search":return i.sessions.transcriptSearch(O(e.params));case"session.observe":{let c=ri(),h=await i.sessions.observe(G(e.params,"sessionId"),P=>a(c,Qr(P,l)));return r(c,h),{subscriptionId:c,snapshot:Yl(h.snapshot,l)}}case"session.fork":return i.sessions.fork(O(e.params));case"session.notice.append":return i.sessions.appendNotice(O(e.params));case"session.rewind":return i.sessions.rewind(O(e.params));case"session.active_entry.set":case"session.activeEntry.set":return i.sessions.setActiveEntry(O(e.params));case"session.compact":return i.sessions.compact(O(e.params));case"session.archive":return await i.sessions.archive(G(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await i.sessions.unarchive(G(e.params,"sessionId")),{ok:!0};case"session.delete":return await i.sessions.delete(G(e.params,"sessionId")),{ok:!0};case"session.settings.get":return i.sessions.getSettings(G(e.params,"sessionId"));case"session.settings.getVersioned":return i.sessions.getSettingsVersioned(G(e.params,"sessionId"));case"session.autoMode.getStats":return i.sessions.getAutoModeStats(G(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw K("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let c=O(e.params);return i.sessions.updateSettings(F(c,"sessionId"),O(c.patch))}case"session.settings.updateVersioned":{let c=O(e.params);return i.sessions.updateSettingsVersioned(F(c,"sessionId"),O(c.patch),{expectedRevision:Lt(c,"expectedRevision")})}case"run.start":{let c=O(e.params),h=F(c,"sessionId"),P=`run_${Date.now().toString(36)}_${Cn().replace(/-/g,"").slice(0,8)}`,R=await Ia({params:c,sessionId:h,trustedRunId:P,principalId:u,clientName:p,clientVersion:f,operationId:e.operation?.operationId,reverseBridge:S}),I=await i.runs.start(R);return t.remember(I.runId,I.result),{runId:I.runId,sessionId:I.sessionId,...I.turnId!==void 0?{turnId:I.turnId}:{}}}case"run.input.submit":{let c=O(e.params),h=F(c,"sessionId"),P=F(c,"afterRunId"),R=F(c,"delivery"),I=await i.runs.get(P);if(I.sessionId!==h)throw K("conflict",`Runtime continuation target ${P} does not belong to session ${h}.`);if(!zl(I.phase))return{accepted:!1,delivery:R,sessionId:h,afterRunId:P,reason:"stale_run"};if(R==="interrupt"){if(I.phase==="queued")return{accepted:!1,delivery:R,sessionId:h,afterRunId:P,reason:"stale_run"};if(c.credential!==void 0||c.hostTools!==void 0)throw K("invalid_params","Interrupt input cannot replace active-run credential or host-tool bindings.");let w=`input_${Date.now().toString(36)}_${Cn().replace(/-/g,"").slice(0,8)}`;return i.runs.submitInput({...c,sessionId:h,afterRunId:P,delivery:"interrupt",trustedInputId:w,origin:{principalId:u,...p!==void 0?{clientName:p}:{},...f!==void 0?{clientVersion:f}:{},...e.operation?.operationId!==void 0?{operationId:e.operation.operationId}:{}}})}let k=`run_${Date.now().toString(36)}_${Cn().replace(/-/g,"").slice(0,8)}`,x=await Ia({params:c,sessionId:h,trustedRunId:k,principalId:u,clientName:p,clientVersion:f,operationId:e.operation?.operationId,reverseBridge:S}),g=await i.runs.submitInput(x);if(g.accepted&&g.delivery==="after_turn"){let w=i.runs.await(g.runId);t.remember(g.runId,w)}return g}case"run.get":return un(await i.runs.get(G(e.params,"runId")),l);case"run.list":return(await i.runs.list(Z(e.params))).map(c=>un(c,l));case"run.await":{let c=G(e.params,"runId"),h=t.get(c);return h||i.runs.await(c)}case"run.abort":return await i.runs.abort(G(e.params,"runId")),{ok:!0};case"run.model.set":return ba(i,e.params);case"run.setModel":return ba(i,e.params);case"run.provider.set":{let c=O(e.params);return await i.runs.setProvider(F(c,"runId"),F(c,"provider")),{ok:!0}}case"run.setProvider":{let c=O(e.params);return await i.runs.setProvider(F(c,"runId"),F(c,"provider")),{ok:!0}}case"run.reasoning.set":return Pa(i,e.params);case"run.setReasoning":return Pa(i,e.params);case"event.subscribe":{let c=Z(e.params)??{},h=Z(c.filter);await We(i,h?.sessionId);let P=ri(),R=i.events.subscribe(h??{},I=>{a(P,Qr(I,l))});return r(P,R),{subscriptionId:P}}case"event.unsubscribe":return{ok:s(G(e.params,"subscriptionId"))};case"event.replay":{let c=Z(e.params);return await We(i,c?.sessionId),Vl(await i.events.replay(c),d()).map(h=>Qr(h,l))}case"permission.list":case"permission.listPending":{let c=Z(e.params);return await We(i,c?.sessionId),i.permissions.listPending(c)}case"permission.request":{let c=O(e.params);return await We(i,c.sessionId),i.permissions.request(c)}case"permission.respond":{let c=O(e.params),h=se(c,"runId");return i.permissions.respond(F(c,"requestId"),O(c.decision),h!==void 0?{runId:h}:void 0)}case"permission.grants.list":return i.permissions.listGrants();case"permission.grants.revoke":{let c=O(e.params);return i.permissions.revokeGrant(F(c,"grantId"),Lt(c,"expectedRevision"))}case"user_input.listPending":{let c=Z(e.params);return await We(i,c?.sessionId),i.userInputs.listPending(c)}case"user_input.respond":{let c=O(e.params),h=ze(c,"expectedRevision"),P=se(c,"runId");return i.userInputs.respond(F(c,"requestId"),c.answer,h!==void 0||P!==void 0?{...h!==void 0?{expectedRevision:h}:{},...P!==void 0?{runId:P}:{}}:void 0)}case"user_input.dismiss":{let c=O(e.params),h=ze(c,"expectedRevision"),P=se(c,"runId");return i.userInputs.dismiss(F(c,"requestId"),h!==void 0||P!==void 0?{...h!==void 0?{expectedRevision:h}:{},...P!==void 0?{runId:P}:{}}:void 0)}case"credential.register":{let c=O(e.params);return S.registerCredential({leaseId:F(c,"leaseId"),providers:cm(c,"providers"),...se(c,"expiresAt")!==void 0?{expiresAt:se(c,"expiresAt")}:{}})}case"credential.get":return S.getCredential(G(e.params,"leaseId"));case"credential.revoke":return S.revokeCredential(G(e.params,"leaseId"));case"credential.supply":{let c=O(e.params);return{ok:S.supplyCredential({requestId:F(c,"requestId"),...se(c,"credential")!==void 0?{credential:se(c,"credential")}:{},...se(c,"error")!==void 0?{error:se(c,"error")}:{}})}}case"host_tool.register":{let c=O(e.params);return S.registerHostTools({leaseId:F(c,"leaseId"),tools:lm(c.tools)})}case"host_tool.get":return S.getHostTools(G(e.params,"leaseId"));case"host_tool.invocation.get":return S.getHostToolInvocation(G(e.params,"invocationId"));case"host_tool.revoke":return S.revokeHostTools(G(e.params,"leaseId"));case"host_tool.complete":{let c=O(e.params);return{ok:S.completeHostTool({invocationId:F(c,"invocationId"),...c.result!==void 0?{result:O(c.result)}:{},...se(c,"error")!==void 0?{error:se(c,"error")}:{}})}}case"workflow.list":return i.workflows.list(Z(e.params));case"workflow.get":return i.workflows.get(G(e.params,"runId"));case"workflow.subscribe":{let c=Z(e.params)??{},h=Z(c.filter),P=ri(),R=i.workflows.subscribe(h??{},I=>{a(P,I)});return r(P,R),{subscriptionId:P}}case"workflow.unsubscribe":return{ok:s(G(e.params,"subscriptionId"))};case"workflow.pause":return i.workflows.pause(G(e.params,"runId"));case"workflow.resume":return i.workflows.resume(G(e.params,"runId"));case"workflow.stop":return i.workflows.stop(G(e.params,"runId"));case"learning.list":return Le(i.learning,u).list(Z(e.params));case"learning.get":return Le(i.learning,u).get(G(e.params,"nameOrSlug"));case"learning.snapshot":return Le(i.learning,u).getSnapshot();case"learning.events":return Le(i.learning,u).events(ze(Z(e.params)??{},"afterRevision"));case"learning.acknowledge":return await Le(i.learning,u).acknowledge(G(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let c=O(e.params);return await Le(i.learning,u).snooze(F(c,"nameOrSlug"),F(c,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let c=Le(i.learning,u),h=G(e.params,"nameOrSlug");return e.method==="learning.reject"?await c.reject(h):e.method==="learning.disable"?await c.disable(h):e.method==="learning.rollback"?await c.rollback(h):e.method==="learning.review"?await c.review(h):await c.trust(h),{ok:!0}}case"learning.promote":{let c=O(e.params),h=F(c,"scope");if(h!=="user")throw K("invalid_params","Learning promotion scope must be user.");return await Le(i.learning,u).promote(F(c,"nameOrSlug"),h),{ok:!0}}case"context.budget.get":return Zr(d()),await We(i,se(Z(e.params)??{},"sessionId")),ei(i,"context.budget.snapshot",Z(e.params));case"tool.exposure.preview":return Zr(d()),await We(i,se(Z(e.params)??{},"sessionId")),ei(i,"tool.exposure.planned",Z(e.params));case"provider.cache.diagnostics.get":return Zr(d()),await We(i,se(Z(e.params)??{},"sessionId")),ei(i,"provider.cache.diagnostics",Z(e.params));default:throw K("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}o(Wl,"dispatchRuntimeDaemonRequest");async function Ia(e){let n=Z(e.params.credential),t=Z(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:F(n,"leaseId"),provider:F(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),s=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:F(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),a=gn(),d=s===void 0?void 0:a===null?s:mm(s,a),u=Z(e.params.options)??{};return{...e.params,sessionId:e.sessionId,trustedRunId:e.trustedRunId,origin:{principalId:e.principalId,...e.clientName!==void 0?{clientName:e.clientName}:{},...e.clientVersion!==void 0?{clientVersion:e.clientVersion}:{},...e.operationId!==void 0?{operationId:e.operationId}:{}},...r!==void 0?{providerCredential:r}:{},...n!==void 0?{providerCredentialProvider:F(n,"provider")}:{},...d!==void 0?{options:{...u,extensionRuntime:d}}:{}}}o(Ia,"bindTrustedRunInput");function zl(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"}o(zl,"isActiveRuntimeRunPhase");function Gl(e){return fe(e)?{...e.richEvents===!0?{richEvents:!0}:{},...e.permissionPrompts===!0?{permissionPrompts:!0}:{},...e.configAdmin===!0?{configAdmin:!0}:{},...e.commandCatalog===!0?{commandCatalog:!0}:{},...e.skillCatalog===!0?{skillCatalog:!0}:{},...e.artifactUpload===!0?{artifactUpload:!0}:{},...e.contextDiagnostics===!0?{contextDiagnostics:!0}:{},...e.operationDeduplication===!0?{operationDeduplication:!0}:{}}:{}}o(Gl,"parseRuntimeClientCapabilities");function ka(e={},n=!1,t=!1,r=!1,s,a=!1,d=!1,u=!1){let p={...e};delete p.externalAgents,delete p.externalAgentAdmin,delete p.a2aConfigReconciler,delete p.actorControlPlane,delete p.runtimeAutoModeGuardrail;let f=Vr();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:ut,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...t?{externalAgentAdmin:{version:1,activation:!0,conditionalMutations:!0,managementOwner:!0}}:{},...r?{a2aConfigReconciler:{version:1}}:{},...s!==void 0?{operationDeduplication:{version:1,retentionMs:Number.MAX_SAFE_INTEGER},journalEpoch:s.journalEpoch,controlHealth:s.health}:{},sessionObservation:{version:1,maxBufferedEvents:256},sessionAdmission:{version:1,surfaces:ql,legacySurface:!0,partnerDenied:!0},completeObservationSnapshot:{version:1,transcriptRevision:!0,managedTasks:!0,queuedInputs:!0},connectionLifecycle:{version:1},typedRuntimeEvents:{version:1},daemonSafeRunInput:{version:1},...u?{daemonManagement:{version:1,logicalClientCount:!0,revisionedStop:!0,ownerPolicy:!0,ownerFenceState:!0,reverseBridgeDrainingFence:!0,backgroundWorkPreflight:!0}}:{},sharedSessionSettings:{version:1,keys:["provider","model","effort","thinking","reasoningMode","permissionMode","executionCwd","agentMode","autoModeEngine","autoModeClassifierModel","autoModeTimeoutMs","autoModeSpeculativeWindowMs"]},...s!==void 0?{durableRecoveryQueries:{version:1,operationResult:!0,hostToolInvocation:d,permissionGrants:!0,daemonPreflight:!0,terminalAcknowledgement:!1,terminalAcknowledgementOwner:"client"}}:{},afterTurnInput:{version:1},interruptInput:{version:1,availability:"per_run"},contextCompaction:{version:3,alwaysOn:!0,absoluteThreshold:!0,contextIdentity:!0,canonicalFinishedEvent:!0,durableBeforeEvict:!0,exactHistoryRecovery:!0},transcriptPaging:{version:1,maxPageBytes:512*1024},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},learningCenter:{version:1},askUserTransport:{version:1},permissionCas:{version:1},providerCredentialBroker:{version:1,registrationConnectionBound:!a,stableClientResume:a,runtimeRestartExpiresLease:!0,acquiredCredentialSurvivesDisconnect:!0,requestTimeoutMs:f.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!a,stableClientResume:a,invocationStatusQuery:a,invocationReplay:!1,invocationTimeoutMs:f.callTimeoutMs,maxResultBytes:f.maxResultBytes},coderOwnerFencing:{version:1},crashOutcomeModel:{version:1},coderFeatureMatrix:{version:1,managedRun:!0,transcriptSessions:!0,todoProjection:!0,managedTasks:!0,workflow:!0,mcp:!0,referenceExternalAgent:n,memory:!0,runtimeArtifacts:!0},...p}}o(ka,"runtimeDaemonCapabilities");function Jl(e){return e?{...e}:{}}o(Jl,"publicOperationReceipt");function Ot(e){if(!e.agents.enabled)throw K("method_not_found","Runtime external agent executor plane is not enabled.")}o(Ot,"requireExternalAgentsEnabled");function Nt(e){if(e.allowAgentRegistrationAdmin!==!0)throw K("permission_denied","Runtime daemon host denied Agent registration administration.")}o(Nt,"requireAgentRegistrationAdmin");function Vl(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!Ma(t))}o(Vl,"filterReplayForClientCapabilities");async function We(e,n){n!==void 0&&await e.sessions.transcript(n)}o(We,"assertAdmittedSessionId");function Yl(e,n){return{...e,runs:e.runs.map(t=>un(t,n))}}o(Yl,"augmentObservationRunRequirements");function Ql(e,n){return!fe(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>Aa(t)?un(t,n):t)}}o(Ql,"augmentStatusRunRequirements");function Zl(e,n){return{...e,activeRuns:e.activeRuns.map(t=>un(t,n)),queuedRuns:e.queuedRuns.map(t=>un(t,n))}}o(Zl,"augmentPreflightRunRequirements");function Qr(e,n){return Aa(e.payload)?{...e,payload:un(e.payload,n)}:e}o(Qr,"augmentRuntimeEventRequirements");function un(e,n){let t=n?.getRunRequirements(e.runId);return t===void 0?e:em(e.phase)?{...e,requirements:{...t.credential!==void 0?{credential:{...t.credential,state:"terminal"}}:{},...t.hostTools!==void 0?{hostTools:{...t.hostTools,state:"terminal"}}:{}}}:{...e,requirements:t}}o(un,"augmentRunRequirements");function Aa(e){return fe(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}o(Aa,"isRuntimeRunStatus");function em(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(em,"isTerminalRuntimeRunPhase");function Zr(e){if(e.contextDiagnostics!==!0)throw K("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}o(Zr,"requireContextDiagnosticsCapability");function Ma(e){return fe(e)?e.type==="context.budget.snapshot"||e.type==="provider.cache.diagnostics"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}o(Ma,"isContextDiagnosticRuntimeEvent");async function ei(e,n,t){let r=t??{},s=r.contextKind==="root"||r.contextKind==="child"?r.contextKind:typeof r.agentId=="string"?void 0:"root",a=typeof r.agentId=="string"?r.agentId:void 0,d=s==="child"||a!==void 0,u={type:n,...!d&&typeof r.sessionId=="string"?{sessionId:r.sessionId}:{},...typeof r.runId=="string"?{runId:r.runId}:{}};return[...await e.events.replay(u)].reverse().find(S=>{let i=S.payload;if(i===null||typeof i!="object"||Array.isArray(i))return s===void 0&&a===void 0;let l=i,c=l.contextKind==="child"?"child":"root";if(s!==void 0&&c!==s||a!==void 0&&l.agentId!==a)return!1;if(!d||typeof r.sessionId!="string")return!0;let h=`${r.sessionId}/agent/`;return typeof l.contextId!="string"?!1:a===void 0?l.contextId.startsWith(h):l.contextId===`${h}${encodeURIComponent(a)}`})?.payload??null}o(ei,"latestRuntimeDiagnosticPayload");async function ba(e,n){let t=O(n);return await e.runs.setModel(F(t,"runId"),se(t,"model")),{ok:!0}}o(ba,"setRunModel");async function Pa(e,n){let t=O(n);return await e.runs.setReasoning(F(t,"runId"),se(t,"reasoning")),{ok:!0}}o(Pa,"setRunReasoning");function nm(e,n){let t=Array.isArray(e)?e:[],r=typeof n?.provider=="string"?n.provider:void 0;if(r!==void 0){let s=t.find(a=>fe(a)&&a.name===r);return fe(s)?{provider:r,models:Array.isArray(s.models)?s.models:[]}:{provider:r,models:[]}}return t.flatMap(s=>!fe(s)||typeof s.name!="string"?[]:[{provider:s.name,models:Array.isArray(s.models)?s.models:[]}])}o(nm,"listRuntimeModels");function ii(e){return Array.isArray(e)?e.map(n=>ii(n)):fe(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,tm(n)?"[redacted]":ii(t)])):e}o(ii,"redactRuntimeConfig");function tm(e){let n=e.toLowerCase();return n.includes("apikey")||n.includes("api_key")||n==="key"||n.endsWith("key")||n.includes("token")||n.includes("secret")||n.includes("password")}o(tm,"isSensitiveConfigKey");function Z(e){if(e!==void 0)return O(e)}o(Z,"optionalRecord");function Ca(e,n){return O(e[n])}o(Ca,"requireRecordField");function rm(e){let n=Z(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}o(rm,"parseModelListFilter");function im(e){let n=Z(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}o(im,"parseMcpToolListFilter");function om(e){let n=Z(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}o(om,"parseSkillListFilter");function sm(e){let n=O(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw K("invalid_request","Expected artifact kind: image | file | video");let r=F(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}:{},...am(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}o(sm,"parseArtifactCreateInput");function am(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}o(am,"isRuntimeArtifactSource");function dm(e){return fe(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}o(dm,"parseRuntimeClientName");function um(e){return fe(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}o(um,"parseRuntimeClientVersion");function cm(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw K("invalid_request",`Expected string array param: ${n}`);return t}o(cm,"requireStringArrayField");function lm(e){if(!Array.isArray(e))throw K("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=O(n),r=F(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw K("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:F(t,"name"),description:F(t,"description"),inputSchema:Ca(t,"inputSchema"),sideEffect:r}})}o(lm,"parseRuntimeHostToolDescriptors");function mm(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,s){let[a,d]=await Promise.all([e.searchCapabilities(t,r,s),n.searchCapabilities(t,r,s)]),u=[...a,...d];return u.slice(0,s?.limit??u.length)},async describeCapability(t,r){return r.startsWith("host:")?e.describeCapability(t,r):n.describeCapability(t,r)},executeCapability(t,r,s){return r.startsWith("host:")?e.executeCapability(t,r,s):n.executeCapability(t,r,s)},readCapability(t,r,s){return n.readCapability(t,r,s)},getCapabilityPrompt(t,r,s){return n.getCapabilityPrompt(t,r,s)},getCapabilityPromptContext(t){return n.getCapabilityPromptContext(t)},...n.getDefaults!==void 0?{getDefaults:o(()=>n.getDefaults(),"getDefaults")}:{},...n.bindController!==void 0?{bindController:o(t=>n.bindController(t),"bindController")}:{},...n.hydrateSession!==void 0?{hydrateSession:o(t=>n.hydrateSession(t),"hydrateSession")}:{}}}o(mm,"mergeExtensionRuntimeContracts");function fe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(fe,"isRecord");function O(e){if(!e||typeof e!="object"||Array.isArray(e))throw K("invalid_request","Expected params to be an object.");return e}o(O,"requireRecord");function G(e,n){return F(O(e),n)}o(G,"requireStringParam");function F(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw K("invalid_request",`Expected string param: ${n}`);return t}o(F,"requireStringField");function pm(e,n){let t=e[n];if(typeof t!="boolean")throw K("invalid_request",`Expected boolean param: ${n}`);return t}o(pm,"requireBooleanField");function se(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw K("invalid_request",`Expected optional string param: ${n}`);return t}}o(se,"optionalStringField");function ni(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw K("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}o(ni,"optionalExpectedConfigurationRevision");function ti(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw K("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}o(ti,"optionalExpectedManagementOwner");function ze(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw K("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}o(ze,"optionalIntegerField");function Lt(e,n){let t=ze(e,n);if(t===void 0)throw K("invalid_request",`Expected non-negative integer param: ${n}`);return t}o(Lt,"requireIntegerField");function K(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}o(K,"daemonError");function ri(){return`sub_${Cn().replace(/-/g,"").slice(0,12)}`}o(ri,"createSubscriptionId");function Ea(e,n,t,r){let s=Mn(_t[e][n],t,n);if(s.length!==0)throw K(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:s})}o(Ea,"validateDaemonMethodValue");function fm(e,n){return n===void 0?null:e!=="run.await"||!fe(n)||!(n.error instanceof Error)?n:{...n,error:{name:n.error.name,message:n.error.message,...n.error.stack!==void 0?{stack:n.error.stack}:{}}}}o(fm,"serializeRuntimeDaemonMethodResult");function gm(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 Ji)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"&&Rm(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}o(gm,"normalizeRuntimeDaemonError");function Rm(e){return e==="invalid_frame"||e==="invalid_request"||e==="invalid_params"||e==="not_initialized"||e==="method_not_found"||e==="unauthorized"||e==="permission_denied"||e==="conflict"||e==="not_found"||e==="session_not_admitted"||e==="cancelled"||e==="overloaded"||e==="client_upgrade_required"||e==="operation_required"||e==="operation_epoch_mismatch"||e==="operation_id_reuse"||e==="operation_interrupted"||e==="operation_unknown"||e==="control_history_untrusted"||e==="credential_unavailable"||e==="host_tool_unavailable"||e==="host_tool_unknown"||e==="internal_error"}o(Rm,"isRuntimeDaemonErrorCode");import{createHash as ym,randomUUID as Na}from"node:crypto";import*as re from"node:fs";import _a from"node:path";var De=class extends Error{static{o(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function La(e){re.mkdirSync(e.rootDir,{recursive:!0});let n=_a.join(e.rootDir,"journal-meta.json"),t=_a.join(e.rootDir,"control.jsonl"),r=Pm(n),s=r.meta,a=bm(t),d=a.records,u=new Map,p=a.trusted&&r.trusted?"healthy":"control_history_untrusted";return p==="healthy"&&km(d,t),{journalEpoch:s.journalEpoch,get health(){return p},execute(f,S,i){if(p!=="healthy")return Promise.reject(new De("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{Im(f,s.journalEpoch);let l=xm(f.params),c=d.get(f.operationId);if(c){Sm(c,f,l);let P=u.get(f.operationId);return P||vm(c)}let h=hm(t,d,f,l,S.externalEffect===!0,i,()=>{p="control_history_untrusted"});return u.set(f.operationId,h),h.finally(()=>u.delete(f.operationId)).catch(()=>{}),h}catch(l){return Promise.reject(l)}},get(f){return d.get(f)}}}o(La,"createRuntimeControlJournal");async function hm(e,n,t,r,s,a,d){let u=wm(t,r,"accepted");Fa(e,u),n.set(t.operationId,u),s&&Ft(e,n,u,"dispatched");let p;try{p=await a()}catch(f){let S=Dm(f);try{Ft(e,n,u,"rejected",{error:S})}catch{d()}throw f}try{return Ft(e,n,u,"applied",{result:p}).result}catch{throw d(),n.set(t.operationId,{...u,state:"unknown",updatedAt:new Date().toISOString()}),new De("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}o(hm,"executeNewOperation");function Ft(e,n,t,r,s={}){let a={type:"operation",...t,state:r,...s,updatedAt:new Date().toISOString()};return Fa(e,a),n.set(a.operationId,a),a}o(Ft,"updateOperation");function wm(e,n,t){return{type:"operation",operationId:e.operationId,journalEpoch:e.journalEpoch,principalId:e.principalId,method:e.method,...e.resourceId!==void 0?{resourceId:e.resourceId}:{},requestDigest:n,state:t,updatedAt:new Date().toISOString()}}o(wm,"operationRecord");function vm(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new De(e.error?.code??"operation_rejected",e.error?.message??"Runtime operation was rejected."));let n=e.state==="unknown"?"operation_unknown":"operation_interrupted";return Promise.reject(new De(n,`Runtime operation is ${e.state}; it will not be replayed.`))}o(vm,"replayOperation");function Sm(e,n,t){if(!(e.journalEpoch===n.journalEpoch&&e.principalId===n.principalId&&e.method===n.method&&e.resourceId===n.resourceId&&e.requestDigest===t))throw new De("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}o(Sm,"assertMatchingOperation");function Im(e,n){if(e.journalEpoch!==n)throw new De("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new De("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new De("invalid_operation","Runtime operation identity is incomplete.")}o(Im,"validateOperationInput");function km(e,n){for(let t of[...e.values()])t.state!=="accepted"&&t.state!=="dispatched"||Ft(n,e,t,t.state==="dispatched"?"unknown":"interrupted")}o(km,"recoverUnfinished");function bm(e){let n=new Map;if(!re.existsSync(e))return{trusted:!0,records:n};let t=re.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let s=JSON.parse(r);if(!Am(s))return{trusted:!1,records:n};n.set(s.operationId,s)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}o(bm,"loadOperationRecords");function Pm(e){if(re.existsSync(e)){try{let t=JSON.parse(re.readFileSync(e,"utf8"));if(Tm(t))return{meta:t,trusted:!0}}catch{}return{meta:Oa(),trusted:!1}}let n=Oa();return Em(e,n),{meta:n,trusted:!0}}o(Pm,"loadOrCreateMeta");function Oa(){return{version:1,journalEpoch:`je_${Na().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}o(Oa,"createJournalMeta");function Fa(e,n){let t=`${JSON.stringify(n)}
|
|
66
|
-
`,r=re.openSync(e,"a",384);try{re.writeFileSync(r,t,"utf8"),re.fsyncSync(r)}finally{re.closeSync(r)}}o(Fa,"appendRecord");function Em(e,n){let t=`${e}.${process.pid}.${Na()}.tmp`,r=re.openSync(t,"wx",384);try{re.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
67
|
-
`,"utf8"),re.fsyncSync(r)}finally{re.closeSync(r)}re.renameSync(t,e)}o(Em,"writeJsonAtomic");function xm(e){return ym("sha256").update(si(e)).digest("hex")}o(xm,"digestCanonical");function si(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new De("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(si).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)}:${si(n[r])}`).join(",")}}`}throw new De("invalid_operation","Operation contains a non-JSON value.")}o(si,"canonicalJson");function Dm(e){if(!(e instanceof Error))return{code:"operation_rejected",message:String(e)};let n=e;return{code:typeof n.code=="string"?n.code:"operation_rejected",message:e.message}}o(Dm,"normalizeOperationError");function Tm(e){return ja(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}o(Tm,"isJournalMeta");function Am(e){return ja(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&Mm(e.state)&&typeof e.updatedAt=="string":!1}o(Am,"isOperationRecord");function Mm(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}o(Mm,"isOperationState");function ja(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}o(ja,"isRecord");function qa(e){return new ai(e)}o(qa,"createRuntimeDaemonManagementController");var ai=class{constructor(n){this.input=n;this.runtimeEvents=n.runtime.events.subscribe({},()=>{this.revision+=1})}input;static{o(this,"DaemonManagementController")}clients=new Set;runtimeEvents;revision=0;activeMutations=0;activeMutationMethods=new Map;draining=!1;closed=!1;preflightFingerprint;attachClient(n){if(this.draining||this.closed)throw Ie("conflict","Runtime daemon is draining and cannot attach another client.");this.clients.has(n)||(this.clients.add(n),this.revision+=1)}detachClient(n){this.clients.delete(n)&&(this.revision+=1)}async runMutation(n,t){if(this.draining||this.closed)throw Ie("conflict","Runtime daemon is draining and rejects new mutations.");this.activeMutations+=1,this.activeMutationMethods.set(n,(this.activeMutationMethods.get(n)??0)+1),this.revision+=1;try{return await t()}finally{this.activeMutations-=1;let r=(this.activeMutationMethods.get(n)??1)-1;r===0?this.activeMutationMethods.delete(n):this.activeMutationMethods.set(n,r)}}async preflight(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.input.runtime.status.preflight();if(this.observePreflight(r),t===this.revision&&this.activeMutations===0)return Cm(r,this.clients.size)}throw Ie("conflict","Runtime state changed while daemon preflight was being read.")}async inspect(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.preflight();if(t!==this.revision)continue;let s=te(this.input.paths.lockFile);if(s===void 0||s.runtimeId!==this.input.runtime.identity.runtimeId||s.kind!=="daemon")throw Ie("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:Ee(this.input.paths),owner:s,preflight:r}}throw Ie("conflict","Runtime state changed while daemon management was inspected.")}async stop(){this.beginDraining();try{return await this.assertStoppable(),this.input.requestStop(),{ok:!0}}catch(n){throw this.draining=!1,n}}async rollbackToInline(n){if(n.expectedRuntimeId!==this.input.runtime.identity.runtimeId)throw Ie("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=Cs(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw Ie("internal_error","Runtime owner rollback did not commit inline mode.");return this.revision+=1,this.input.requestStop(),{accepted:!0,runtimeId:this.input.runtime.identity.runtimeId,revision:this.revision,ownerPolicy:{...t,mode:"inline"}}}catch(t){throw this.draining=!1,t}}close(){this.closed||(this.closed=!0,this.runtimeEvents.close(),this.clients.clear())}beginDraining(n){if(this.closed)throw Ie("conflict","Runtime daemon management is closed.");if(this.draining)throw Ie("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw Ie("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw Ie("conflict",`Runtime daemon has in-flight mutations: ${[...this.activeMutationMethods].map(([t,r])=>`${t} (${r})`).join(", ")}.`);this.draining=!0}async assertStoppable(n){let t=await this.preflight();if(n!==void 0&&this.revision!==n)throw Ie("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw Ie("conflict",`Runtime daemon cannot stop safely: ${t.blockers.join(", ")}.`,{preflight:t})}observePreflight(n){let t=JSON.stringify(n);if(this.preflightFingerprint===void 0){this.preflightFingerprint=t;return}t!==this.preflightFingerprint&&(this.preflightFingerprint=t,this.revision+=1)}};function Cm(e,n){let t=e.blockers.filter(r=>r!=="connected_clients");return n>1&&t.push("connected_clients"),{...e,clientCount:n,blockers:t,canStop:t.length===0}}o(Cm,"withLogicalClients");function Ie(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}o(Ie,"managementError");async function Ka(e){Ce(e.paths);let n=Os();Ns(e.paths,n);let t=jt(e,"starting");bn(e.paths,t),_e(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Oi(I=>{_m(e.paths,I)}),s,a,d=!1,u=o(()=>{if(a===void 0){d=!0;return}a()},"requestStop"),p=oi(),f=La({rootDir:$a.join(e.paths.rootDir,"control")}),S=ya({invocationStateFile:$a.join(e.paths.rootDir,"host-tool-invocations.json")}),i=qa({runtime:e.runtime,paths:e.paths,requestStop:u}),l;try{s=await Ws({endpoint:e.endpoint,createDispatcher:o(k=>Ta({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},allowAgentRegistrationAdmin:!0,notify:k,runResults:p,controlJournal:f,reverseBridgeHub:S,management:i,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:o(()=>({logFile:e.paths.logFile,entries:Ls(e.paths)}),"logs")}),"createDispatcher")});let I=process.env.KODAX_INTERNAL_DAEMON_TEST_READY_DELAY_MS;I!==void 0&&await Om(I),l=jt(e,"ready"),bn(e.paths,l),_e(e.paths,"info","Runtime daemon ready.",{runtimeId:l.runtimeId,endpoint:l.endpoint})}catch(I){_e(e.paths,"error","Runtime daemon failed to start.",{error:Te(I).message});let k=!0;try{await s?.close()}catch(x){k=!1,_e(e.paths,"error","Runtime daemon transport cleanup failed.",{error:Te(x).message})}throw i.close(),p.clear(),S.close(),r(),k?await Ha(e.paths,e.lock):bn(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),I}let c=!1,h,P=new Promise(I=>{h=I}),R=o(async()=>{if(c)return;c=!0;let I=[],k=!1,x=!1;try{try{bn(e.paths,jt(e,"stopping")),_e(e.paths,"info","Runtime daemon stopping.")}catch(g){I.push(`state transition: ${Te(g).message}`)}try{await s?.close(),k=!0}catch(g){I.push(`transport close: ${Te(g).message}`)}i.close(),S.close(),p.clear();try{await e.runtime.close(),x=!0}catch(g){I.push(`Runtime close: ${Te(g).message}`)}try{_e(e.paths,"info","Runtime daemon stopped.")}catch(g){I.push(`stop log: ${Te(g).message}`)}if(r(),k&&x){let g=await Ha(e.paths,e.lock),w=te(e.lock.file);!g&&w?.runtimeId===e.lock.owner.runtimeId&&w.pid===e.lock.owner.pid&&w.createdAt===e.lock.owner.createdAt&&I.push("owner release: the daemon still owns its profile lock")}else try{bn(e.paths,{...jt(e,"unhealthy"),lastError:I.join("; ")})}catch(g){I.push(`unhealthy state: ${Te(g).message}`)}if(I.length>0){try{_e(e.paths,"error","Runtime daemon stopped with cleanup failures.",{failures:I})}catch(g){I.push(`failure log: ${Te(g).message}`)}throw new Error(`Runtime daemon cleanup failed: ${I.join("; ")}`)}}finally{r(),h?.()}},"closeHost");return a=o(()=>{try{_e(e.paths,"info","Runtime daemon stop requested.")}catch(k){oe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:Te(k)})}setTimeout(()=>{R().catch(k=>{oe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:Te(k)})})},0).unref?.()},"scheduleStop"),d&&a(),{endpoint:e.endpoint,state:l,closed:P,unref(){s?.unref()},close:R}}o(Ka,"startRuntimeDaemonHost");async function Ha(e,n){for(let t=0;t<50;t+=1){try{if(qs(e,n))return!0}catch(s){oe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:Te(s)})}let r=te(n.file);if(r===void 0||r.runtimeId!==n.owner.runtimeId||r.pid!==n.owner.pid||r.createdAt!==n.owner.createdAt||r.kind!==n.owner.kind)return!1;await new Promise(s=>{setTimeout(s,10)})}try{_e(e,"error","Runtime daemon ownership release timed out.")}catch(t){oe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:Te(t)})}return!1}o(Ha,"releaseHostOwnership");function _m(e,n){try{_e(e,n.level==="error"?"error":n.level==="warn"?"warn":"info",`[${n.source}] ${n.message}`,{level:n.level,source:n.source,...n.detail!==void 0?{detail:n.detail}:{}})}catch{}}o(_m,"appendRuntimeDiagnostic");function jt(e,n){return{runtimeId:e.runtime.identity.runtimeId,profile:e.paths.profile,pid:process.pid,startedAt:e.runtime.identity.startedAt,endpoint:e.endpoint.path,version:e.runtime.identity.version,status:n,configHome:e.paths.configHome}}o(jt,"createHostState");async function Om(e){if(e===void 0)return;let n=Number(e);!Number.isFinite(n)||n<=0||await new Promise(t=>{setTimeout(t,Math.min(n,3e4))})}o(Om,"delayInternalDaemonReadyForTest");function Te(e){return e instanceof Error?e:new Error(String(e))}o(Te,"normalizeHostError");async function Xa(e){let n=e.profile??"default",t=Fm(e.homeDir),r=di.resolve(e.configHome??di.join(t,".kodax")),s=In(r,n);Dt(s);let a=e.endpoint??An(n,kn(t,r)),d={runtimeId:`rt_${Nm().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon"},u=await Ur(s,d,e.healthCheck);if(u.kind==="attach"){let p=on(u.state);return Ua(s,p,e.connectTimeoutMs)}if(u.kind==="wait")return jm(s,a,d,{...e,profile:n});if(u.kind==="unhealthy")throw new Error(`Runtime daemon is ${u.health}; refusing to take ownership.`);return Ba(s,a,d,u.lock,e)}o(Xa,"acquireRuntimeDaemonLease");function Fm(e){return di.resolve(e??Lm.homedir())}o(Fm,"resolveRuntimeDaemonHomeDir");async function jm(e,n,t,r){let s=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=s;){let a=await Ur(e,t,r.healthCheck);if(a.kind==="attach")return Ua(e,on(a.state),r.connectTimeoutMs);if(a.kind==="claim")return Ba(e,n,t,a.lock,r);if(a.kind==="unhealthy")throw new Error(`Runtime daemon is ${a.health}; refusing to take ownership.`);await $m(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}o(jm,"waitForDaemonLease");async function Ba(e,n,t,r,s){let a,d=!1;try{if(a=await s.createRuntime(t.runtimeId),a.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");d=!0;let u=await Ka({runtime:a,paths:e,endpoint:n,lock:r,...s.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{}});try{let p=await Fe(n,{connectTimeoutMs:s.connectTimeoutMs});return qm(e,n,p,u)}catch(p){throw await u.close(),p}}catch(u){throw d||Tt(r),await a?.close(),u}}o(Ba,"createClaimedDaemonLease");async function Ua(e,n,t){let r=await Fe(n,{connectTimeoutMs:t});return{transport:r,endpoint:n,paths:e,ownsHost:!1,async close(){await r.close?.()},async shutdown(){try{await r.request("runtime.shutdown")}finally{await r.close?.()}}}}o(Ua,"createAttachedLease");function qm(e,n,t,r){r.unref();let s=!1,a=!1;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,async close(){s||(s=!0,await t.close?.())},async shutdown(){a||(a=!0,await r.close())}}}o(qm,"createOwnedLease");function $m(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}o($m,"delay");import{spawn as Hm}from"node:child_process";import{existsSync as Km}from"node:fs";import{fileURLToPath as Xm}from"node:url";import Bm from"node:os";import Ae from"node:path";var Wa=1e3,je=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{o(this,"RuntimeDaemonStartupError")}};async function Va(e){let n=e.profile??"default",t=Ae.resolve(e.homeDir??Bm.homedir()),r=Ae.resolve(e.configHome??Ae.join(t,".kodax")),s=In(r,n);Dt(s);let a=An(s.profile,kn(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 Vn(s,e.healthCheck),u=Pn(d);if(u==="healthy"&&d.state){let i=d.state.status==="ready"?{...d,state:d.state}:await Wm(s,e,d);return za(s,on(i.state),!1,e)}if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let p=await Jm({profile:s.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs}),f=await Um(s,e,p),S=on(f.state);return za(s,S,f.state.pid===p.pid,e)}o(Va,"acquireRuntimeDaemonProcessLease");async function za(e,n,t,r){let s=await Fe(n,{connectTimeoutMs:r.connectTimeoutMs});return{transport:s,endpoint:n,paths:e,ownsHost:t,async close(){await s.close?.()},async shutdown(){try{await s.request("runtime.shutdown")}finally{await s.close?.()}}}}o(za,"connectProcessLease");async function Um(e,n,t,r=Vn){let s=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let a=await zm(e,n,t,r),d=Pn(a);if(d==="healthy"&&a.state?.status==="ready")return a.state.pid===t.pid?t.unref():await t.terminate(),{...a,state:a.state};if(d==="mismatch")throw new je("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=s-Date.now();if(u<=0)throw Qa(e);await Gm(Math.min(Math.max(1,n.pollIntervalMs??100),u),e,t,n.startupSignal)}}catch(a){try{await t.terminate()}catch(d){throw new AggregateError([a,d],"Runtime daemon startup failed and its child process could not be reclaimed.")}throw a}}o(Um,"waitForHealthyDaemonStartup");async function Wm(e,n,t,r=Vn){let s=Date.now()+(n.startupTimeoutMs??6e4),a=t.state;if(a===void 0)throw new je("Runtime daemon owner state disappeared before it reached ready.","identity_mismatch");let d=t;for(;;){let u=Pn(d);if(d.state!==void 0&&(d.state.runtimeId!==a.runtimeId||d.state.pid!==a.pid||d.state.profile!==a.profile||d.state.endpoint!==a.endpoint))throw new je("Runtime daemon owner identity changed before it reached ready.","identity_mismatch");if(u==="healthy"&&d.state?.status==="ready")return{...d,state:d.state};if(u==="mismatch")throw new je("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let p=s-Date.now();if(p<=0)throw Qa(e);await cn(qt(Math.min(Math.max(1,n.pollIntervalMs??100),p)),n.startupSignal),d=await cn(r(e,n.healthCheck),n.startupSignal)}}o(Wm,"waitForReadyRuntimeDaemonOwner");async function zm(e,n,t,r){let s=await cn(Promise.race([r(e,n.healthCheck).then(a=>({kind:"health",observation:a})),t.exit.then(a=>({kind:"exit",exit:a}))]),n.startupSignal);if(s.kind==="exit"){if(ui(e,t))return r(e,n.healthCheck);if(s.exit.code===0&&s.exit.signal===null){let a=Math.min(Wa,n.startupTimeoutMs??Wa),d=Date.now()+a;for(;Date.now()<=d;){let u=await cn(r(e,n.healthCheck),n.startupSignal);if(Pn(u)!=="missing"||ui(e,t))return u;await cn(qt(Math.min(n.pollIntervalMs??100,Math.max(1,d-Date.now()))),n.startupSignal)}}throw Ya(s.exit)}return s.observation}o(zm,"observeStartupHealth");async function Gm(e,n,t,r){let s=await cn(Promise.race([qt(e).then(()=>{}),t.exit]),r);if(s!==void 0){if(ui(n,t)){await cn(qt(e),r);return}throw Ya(s)}}o(Gm,"waitForStartupPoll");function ui(e,n){let t=te(e.lockFile);return t!==void 0&&t.pid!==n.pid}o(ui,"hasCompetingStartupOwner");function Ya(e){let n=e.signal!==null?`signal ${e.signal}`:`code ${e.code??"unknown"}`;return new je(`Runtime daemon child exited before becoming healthy (${n}).`,"child_exit")}o(Ya,"runtimeDaemonExitedEarly");function Qa(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new je(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n}`,"timeout")}o(Qa,"runtimeDaemonStartupTimeout");async function Jm(e){let n=ep();Qm(n);let t=[...n!==void 0?np(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=qn({args:t,env:Zm({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),s=Hm(process.execPath,r.args,{detached:!0,stdio:"ignore",windowsHide:!0,env:r.env}),a=new Promise(d=>{s.once("exit",(u,p)=>d({code:u,signal:p}))});return await new Promise((d,u)=>{s.once("spawn",d),s.once("error",u)}),Vm(s,a)}o(Jm,"spawnRuntimeDaemonServeProcess");function Vm(e,n){return{pid:e.pid,exit:n,unref(){e.unref()},async terminate(){if(!(e.exitCode!==null||e.signalCode!==null)&&(await ji(e),!await Ym(n,1e3)))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}o(Vm,"createRuntimeDaemonStartupProcess");async function Ym(e,n){let t;try{return await Promise.race([e.then(()=>!0),new Promise(r=>{t=setTimeout(()=>r(!1),n)})])}finally{t!==void 0&&clearTimeout(t)}}o(Ym,"didExitWithin");function Qm(e){if(e!==void 0&&!Km(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}o(Qm,"assertRuntimeDaemonCliEntryAvailable");function Zm(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Ae.join(e.homeDir,".kodax")};return delete n[dt],n}o(Zm,"createRuntimeDaemonServeEnvironment");function ep(){if(process.env.KODAX_BUNDLED==="true")return;let e=Xm(import.meta.url);if(e.endsWith(".ts"))return Ae.resolve(Ae.dirname(e),"..","kodax_cli.ts");let n=Ae.dirname(e),t=Ae.basename(n)==="chunks"?Ae.dirname(n):n;return Ae.join(t,"kodax_cli.js")}o(ep,"resolveDaemonCliEntry");function np(e,n){let t=[];for(let r=0;r<e.length;r+=1){let s=e[r]??"",a=s.toLowerCase();if(a==="--require"||a==="-r"){let d=e[r+1];d!==void 0&&(Ga(d)&&t.push(s,d),r+=1)}else if(a.startsWith("--require=")){let d=s.slice(10);Ga(d)&&t.push(s)}else(a.startsWith("--max-old-space-size")||a==="--enable-source-maps")&&t.push(s)}return n&&t.push("--import","tsx"),t}o(np,"daemonServeExecArgv");function Ga(e){return Ae.resolve(e)===Ae.resolve("scripts","production-env.cjs")}o(Ga,"isKodaXProductionEnvPreload");function qt(e){return new Promise(n=>setTimeout(n,e))}o(qt,"delay");async function cn(e,n){if(!n)return e;if(n.aborted)throw Ja();let t;try{return await Promise.race([e,new Promise((r,s)=>{t=o(()=>s(Ja()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}o(cn,"raceRuntimeDaemonStartupStep");function Ja(){return new je("Runtime daemon startup cancelled.","cancelled")}o(Ja,"runtimeDaemonStartupCancelled");import{Worker as tp}from"node:worker_threads";import{existsSync as rp}from"node:fs";import{basename as ip,dirname as ci,join as Za}from"node:path";import{fileURLToPath as ed,pathToFileURL as nd}from"node:url";function td(e,n={}){let t=op(),r=new tp(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),s=new Map,a=new Set,d=0,u=!1,p=o(i=>{for(let l of s.values())l.reject(i);s.clear()},"rejectPending"),f=o(i=>{u||(u=!0,p(i),a.clear())},"markClosed");return r.on("message",i=>{if(zn(i)){for(let h of a)h(i);return}if(!wn(i)&&!vn(i)||!i.id)return;let l=s.get(i.id);if(!l)return;if(s.delete(i.id),wn(i)){l.resolve(i.result);return}let c=new Error(i.error.message);c.code=i.error.code,i.error.data!==void 0&&(c.data=i.error.data),l.reject(c)}),r.on("error",i=>f(i)),r.on("exit",i=>f(new Error(`Runtime Worker exited with code ${i}.`))),{transport:{request(i,l,c){if(u)return Promise.reject(new Error("Runtime Worker transport is closed."));let h=`worker_${++d}`;return new Promise((P,R)=>{s.set(h,{resolve:P,reject:R});try{r.postMessage(wt(h,i,l,c))}catch(I){s.delete(h),R(I instanceof Error?I:new Error(String(I)))}})},subscribe(i){return u?{close(){}}:(a.add(i),{close:o(()=>a.delete(i),"close")})},async close(){u||(f(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){u||f(new Error("Runtime Worker terminated.")),await r.terminate()}}}o(td,"createRuntimeWorkerTransport");function op(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return rp(ed(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return nd(Za(ci(process.execPath),"runtime-worker.js"));let e=ci(ed(import.meta.url)),n=ip(e)==="chunks"?ci(e):e;return nd(Za(n,"runtime-worker.js"))}o(op,"resolveRuntimeWorkerUrl");var Ne=class extends Error{constructor(t,r,s){super(t,s);this.preflight=r;this.name="RuntimeDaemonCapabilityUpgradeError"}preflight;static{o(this,"RuntimeDaemonCapabilityUpgradeError")}code="daemon_capability_upgrade_required";capability="runtimeAutoModeGuardrail";recoverable=!0;restartRequired=!0},ln=class extends Error{static{o(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function Pi(e){let n=j.resolve(e??Cd.homedir());return{homeDir:n,configHome:e===void 0?j.resolve(mr):j.join(n,".kodax")}}o(Pi,"resolveRuntimeDaemonClientLocation");function Ln(e,n="default"){let t=Pi(e);return{...t,paths:In(t.configHome,n)}}o(Ln,"resolveRuntimeDaemonClientPaths");function oh(e={}){let{paths:n}=Ln(e.homeDir,e.profile),t=`inline_${Re().replace(/-/g,"")}`,r=_s(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),s=!1;return{profile:n.profile,ownerId:t,ownerPolicy:Ee(n),close(){s||(s=!0,Tt(r))}}}o(oh,"acquireKodaXInlineOwner");function sh(e={}){return Ee(Ln(e.homeDir,e.profile).paths)}o(sh,"getKodaXRuntimeOwnerPolicy");function ah(e={}){let{paths:n}=Ln(e.homeDir,e.profile),t=te(n.lockFile);return{profile:n.profile,policy:Ee(n),ownerStatus:t!==void 0?"owned":N.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}o(ah,"getKodaXRuntimeOwnerState");function dh(e={}){return Et(Ln(e.homeDir,e.profile).paths)}o(dh,"enableKodaXDaemonOwner");function uh(e){let{paths:n}=Ln(e.homeDir,e.profile);if(te(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Ms(n,e.mode,e.expectedRevision)}o(uh,"setKodaXRuntimeOwnerMode");var sp=["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"],ap=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),Bt=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{o(this,"RuntimeContinuationStaleError")}},rd=5*6e4,Ut=1e4,Wt=1e3,id=256*1024*1024,dp=64*1024,up=10,_d=16*1024*1024,cp=_d/2,lp=128*1024,mp=8,Od=512*1024,od=128*1024,pp=256*1024,fp=50,gp=200,sd=1024,Rp=new Set(["assistant.delta","thinking.delta","tool.progress","run.progress"]),Nd=new Set(["tool_call","tool_describe"]),yp=new Set(["image","file","video"]);function hp(e,n){let t=j.relative(Ni(),e);return j.isAbsolute(t)||t.startsWith("..")?e:j.join(n,t)}o(hp,"rebaseAgentConfigPath");async function wp(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 vp(e);let b=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return Ld({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:b,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:b?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return Sp(e);let n={hardDispose:!1,externalAgents:e.externalAgents!==void 0,afterTurnInput:{version:1},interruptInput:{version:1,availability:"per_run"},contextCompaction:{version:3,alwaysOn:!0,absoluteThreshold:!0,contextIdentity:!0,canonicalFinishedEvent:!0,durableBeforeEvict:!0,exactHistoryRecovery:!0},transcriptPaging:{version:1,maxPageBytes:Od},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},learningCenter:{version:1},actorControlPlane:{version:1,methodNamespace:"agents"},runtimeAutoModeGuardrail:{version:3,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!0,defaultClassifierTimeoutMs:ut,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};Ei(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Re().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.77",isolation:"inline"},r=Vp(e),s=Po(r?{sessionsDir:r}:void 0),a=vf(t.profile,s,e.sharedDaemonHost===!0),d=Mf(e);Jd(d);let u=Jp(e),p=e.externalAgents?await Vi({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:Co(j.join(u.runtimeDir,"agents"))}):void 0,f=Xp(u),S=xp(u,f),i=uf(f,e.permissionTimeoutMs??rd,u),l=sf(f,e.permissionTimeoutMs??rd),c=Op(),h=Ap(),P=Fp(s,p,e.externalAgents?.defaultContext),R=new Map,I=new Map,k=[...Zf(u.loadRunStatuses())].sort(xi);for(let b of k){let A=b.sessionOrder??(I.get(b.sessionId)??0)+1;I.set(b.sessionId,Math.max(I.get(b.sessionId)??0,A));let _=rf({...b,acceptedAt:b.acceptedAt??b.startedAt,sessionOrder:A},f,u);R.set(_.runId,tf(_))}let x=!1,g=o(()=>{if(x)throw new Error("KodaX runtime is closed")},"ensureOpen"),w=Tp({bus:f,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,ensureOpen:g,isClosed:o(()=>x,"isClosed"),artifacts:c,permissions:i,userInputs:l,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:u,runs:R,sessionManager:s,sessionAdmission:a,agentPlane:p,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:P,settingsOwner:S}),D=Dp(t,s,f,u,g,b=>[...R.values()].some(A=>A.sessionId===b&&qe(A.phase)),S,b=>w.list({sessionId:b}),b=>i.service.listPending({sessionId:b}),b=>w.getAutoModeStats(b),b=>{w.releaseSession(b),i.releaseSession(b)},a),T=e.homeDir?j.join(j.resolve(e.homeDir),".kodax"):mr,M=j.join(e.homeDir?j.resolve(e.homeDir):Cd.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),q=Qo({configHome:T,managedWorkspaceRoot:M,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:w,sessions:D,createSkillScriptRunner:o(b=>ds({...b,snapshotRoot:j.join(M,"bindings")}),"createSkillScriptRunner")}),m=ls({rootDir:j.join(T,"learned"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[hp(Bi(process.cwd()),T)]});return{identity:t,capabilities:n,sessions:D,runs:w,events:f.service,permissions:i.service,userInputs:l.service,credentials:kg(),hostTools:bg(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:h,learning:m,config:Mp(g,d),catalog:Cp(g,d),mcp:_p(g,d),artifacts:c.service,status:$p({identity:t,permissions:i,userInputs:l,runs:R,sessionManager:s,sessionAdmission:a,workflows:h,actors:P}),diagnostics:Hp(f.service),admin:qp(p),agents:jp(p,q,P,a),async close(){x||(x=!0,w.closeAll("runtime closed"),i.rejectAll("runtime closed"),i.releaseAllSessionGrants(),l.rejectAll("runtime closed"),await P.close("runtime closed"),await p?.close(),f.close())}}}o(wp,"createKodaXRuntime");async function vp(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?qd(e.daemonEndpoint):void 0,r=Pi(e.homeDir),s=await Xa({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:o(a=>wp({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,sharedDaemonHost:!0,daemonHostRuntimeId:a,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!s.ownsHost)throw await s.close(),new Error("External agent factories cannot be installed into an already-running daemon profile; configure its owner or use a unique profile.");try{let a=await Ld({profile:e.profile,transport:s.transport,daemonToken:e.daemonToken??Gn(s.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),d=!1;return{...a,identity:{...a.identity,isolation:"inline"},async close(){d||(d=!0,await a.close(),s.ownsHost?await s.shutdown():await s.close())}}}catch(a){throw await s.close(),s.ownsHost&&await s.shutdown(),a}}o(vp,"createInProcessExternalAgentDaemon");async function Sp(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=td({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs},e.worker);try{let r=Nn(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),s=Vd(r.identity);Ei(r.capabilities,{...e.requirements,hardDispose:!0});let a=kt({identity:{...s,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:Nn(r.capabilities)}),d=!1;return{...a,async close(){if(!d){d=!0;try{await Ip(t.transport.request("runtime.shutdown"),n)}finally{await t.terminate()}}}}}catch(r){throw await t.terminate(),r}}o(Sp,"createWorkerHostedKodaXRuntime");function Ei(e,n){if(!n?.hardDispose&&!n?.externalAgents&&n?.externalAgentAdmin===void 0&&n?.a2aConfigReconciler===void 0&&n?.operationDeduplication===void 0&&n?.sessionObservation===void 0&&n?.afterTurnInput===void 0&&n?.learningCenter===void 0&&n?.interruptInput===void 0&&n?.askUserTransport===void 0&&n?.permissionCas===void 0&&n?.providerCredentialBroker===void 0&&n?.runBoundHostTools===void 0&&n?.coderOwnerFencing===void 0&&n?.crashOutcomeModel===void 0&&n?.coderFeatureMatrix===void 0&&n?.sessionAdmission===void 0&&n?.completeObservationSnapshot===void 0&&n?.contextCompaction===void 0&&n?.transcriptPaging===void 0&&n?.transcriptSearch===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.daemonManagement===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=Nn(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&&ad(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["interruptInput",n.interruptInput],["askUserTransport",n.askUserTransport],["permissionCas",n.permissionCas],["providerCredentialBroker",n.providerCredentialBroker],["runBoundHostTools",n.runBoundHostTools],["coderOwnerFencing",n.coderOwnerFencing],["crashOutcomeModel",n.crashOutcomeModel],["coderFeatureMatrix",n.coderFeatureMatrix],["sessionAdmission",n.sessionAdmission],["completeObservationSnapshot",n.completeObservationSnapshot],["contextCompaction",n.contextCompaction],["transcriptPaging",n.transcriptPaging],["transcriptSearch",n.transcriptSearch],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["daemonManagement",n.daemonManagement],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[s,a]of r)a!==void 0&&ad(t,s,a)}o(Ei,"assertRuntimeCapabilities");function ad(e,n,t){let r=e[n];if(!X(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}o(ad,"assertVersionedRuntimeCapability");async function Ip(e,n){let t;try{await Promise.race([e,new Promise((r,s)=>{t=setTimeout(()=>s(new Error(`Runtime Worker shutdown timed out after ${n}ms.`)),n),t.unref?.()})])}finally{t!==void 0&&clearTimeout(t)}}o(Ip,"settleWithin");async function Ld(e={}){return jd(e,!0)}o(Ld,"connectKodaXRuntime");function Fd(e,n,t){let r=e[n];return X(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}o(Fd,"hasVersionedRuntimeCapability");async function kp(e){if(!Fd(e.capabilities,"daemonManagement",1))throw new Ne("The running daemon is too old to perform a fenced in-place upgrade. Stop it manually after all runs and pending interactions finish, then retry.");let n=kt({identity:{...e.identity,mode:"daemon",isolation:"process"},transport:e.transport,capabilities:e.capabilities,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{}}),t;try{if(t=await n.daemon.inspect(),!t.preflight.canStop)throw new Ne(`The running daemon needs runtimeAutoModeGuardrail v${e.requiredVersion} but cannot be replaced safely yet: ${t.preflight.blockers.join(", ")}. Finish or cancel that work and retry.`,t.preflight);await n.daemon.stopForInline({expectedRuntimeId:t.runtimeId,expectedRevision:t.revision,expectedOwnerPolicyRevision:t.ownerPolicy.revision})}catch(s){throw s instanceof Ne?s:new Ne("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:s})}finally{let s=!1;await n.close().then(()=>{s=!0}).catch(a=>{oe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:ae(a)})}),s||await e.lease.close().catch(a=>{oe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:ae(a)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;te(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Ne("The legacy daemon accepted the upgrade stop but did not release its owner fence before timeout. Retry after the daemon exits.");await new Promise(s=>setTimeout(s,50))}}catch(s){try{Et(e.lease.paths)}catch(a){throw new Ne("The legacy daemon upgrade failed and daemon ownership could not be restored automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:new AggregateError([s,a])})}throw s}try{Et(e.lease.paths)}catch(s){throw new Ne("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:s})}}o(kp,"replaceLegacyRuntimeDaemonForGuardrailUpgrade");async function jd(e,n){dd("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),dd("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs);let t=e.endpoint!==void 0?qd(e.endpoint):void 0,r=Pi(e.homeDir),s=e.transport===void 0&&e.autoStart===!0?await Va({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,a=t??s?.endpoint??(e.transport===void 0?An(e.profile??"default",kn(r.homeDir,r.configHome)):void 0),d=e.transport??s?.transport??(a!==void 0?await Fe(a,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!d)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=Ep(e),p,f={},S,i,l=!1;try{let h={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Re().replace(/-/g,"")}`,...e.clientInfo?.instanceSecret!==void 0?{instanceSecret:e.clientInfo.instanceSecret}:{},...e.clientInfo?.title!==void 0?{title:e.clientInfo.title}:{},...e.clientInfo?.version!==void 0?{version:e.clientInfo.version}:{}},P=Nn(await d.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:h,capabilities:{...e.capabilities,operationDeduplication:!0},...a!==void 0?{endpoint:a.path}:{}}));p=Vd(P.identity),f=P.capabilities===void 0?{}:Nn(P.capabilities),S=typeof P.journalEpoch=="string"?P.journalEpoch:void 0,i=bp(P.grantedScopes);let R=e.autoStart===!0?{...e.requirements,runtimeAutoModeGuardrail:3}:e.requirements,I=R?.runtimeAutoModeGuardrail;if(I!==void 0&&!Fd(f,"runtimeAutoModeGuardrail",I)){if(!n||e.autoStart!==!0||s===void 0)throw new Ne(`Runtime daemon does not support runtimeAutoModeGuardrail v${I}. Stop all daemon work and restart it with the upgraded KodaX installation.`);try{await kp({identity:p,capabilities:f,transport:d,lease:s,...S!==void 0?{journalEpoch:S}:{},...i!==void 0?{grantedScopes:i}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredVersion:I})}finally{l=!0}return jd(e,!1)}Ei(f,R);let k=e.profile??"default";if(p.profile!==k)throw new Error(`Runtime daemon profile mismatch: expected ${k}, got ${p.profile}`)}catch(h){throw l||(s!==void 0?await s.close():await d.close?.()),h}let c=kt({identity:{...p,mode:"daemon",isolation:"process"},transport:d,capabilities:f,...S!==void 0?{journalEpoch:S}:{},...i!==void 0?{grantedScopes:i}:{}});return s?{...c,async close(){await c.close()}}:c}o(jd,"connectKodaXRuntimeInternal");function dd(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}o(dd,"assertPositiveRuntimeTimeout");function bp(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&Pp(t));return n.length===e.length?n:void 0}o(bp,"parseRuntimeGrantedScopes");function Pp(e){return e==="session:observe"||e==="session:write"||e==="run:control"||e==="interaction:respond"||e==="permission:respond"||e==="permission:grant-admin"||e==="integration:admin"||e==="workflow:control"||e==="learning:read"||e==="learning:control"||e==="artifact:write"||e==="agent:control"||e==="credential:register"||e==="host-tool:register"||e==="owner:admin"||e==="daemon:admin"}o(Pp,"isRuntimeGrantedScope");function Ep(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Gn(Ln(e.homeDir,e.profile).paths)}o(Ep,"resolveConnectDaemonToken");function qd(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}o(qd,"normalizeRuntimeDaemonEndpoint");function xp(e,n){let t=new Map,r=new Map,s=new Set,a=o((u,p)=>{let S=(r.get(u)??Promise.resolve()).then(p),i=S.then(()=>{},()=>{});return r.set(u,i),i.then(()=>{r.get(u)===i&&r.delete(u)}),S},"enqueue"),d=o((u,p,f)=>{t.set(u,p);for(let S of s)S(u,p,f);n.emit("session.settings.updated",{sessionId:u,revision:p.revision,settings:p.value,patch:f},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let p=e.loadSessionSettingsVersioned(u);return t.set(u,p),p},peek(u){return t.get(u)},update(u,p,f,S){return a(u,()=>{let i=e.loadSessionSettingsVersioned(u);if(f!==void 0&&i.revision!==f)throw Jt(`Session settings revision ${f} is stale; current revision is ${i.revision}`,i.revision);let l=If(i.value,p);S(l);let c={revision:i.revision+1,value:l};return e.saveSessionSettingsVersioned(u,c),d(u,c,p),c})},async persistAutoModeEngine(u,p){let f=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:f.revision,value:{...f.value,autoModeEngine:p}}),await a(u,()=>{let S=e.loadSessionSettingsVersioned(u);if(S.value.autoModeEngine===p){t.set(u,S);return}let i={revision:S.revision+1,value:{...S.value,autoModeEngine:p}};e.saveSessionSettingsVersioned(u,i),d(u,i,{autoModeEngine:p})})},subscribe(u){return s.add(u),{close:o(()=>{s.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}o(xp,"createRuntimeSessionSettingsOwner");function Dp(e,n,t,r,s,a,d,u,p,f,S,i){let l=new Set,c=o((R,I,k)=>({id:R,title:I.title,...I.gitRoot?{gitRoot:I.gitRoot}:{},...I.runtimeInfo?.workspaceRoot?{workspaceRoot:I.runtimeInfo.workspaceRoot}:{},...I.runtimeInfo?.surface?{surface:I.runtimeInfo.surface}:{},...I.runtimeInfo?.profileId?{profileId:I.runtimeInfo.profileId}:{},...k?{createdAt:k}:{}}),"toRuntimeSession"),h,P=o(async R=>{for(let I=0;I<mp;I+=1){let k=t.currentSessionSeq(R),x=await i.loadRequired(R),[g,w,D]=await Promise.all([n.loadFullTranscript(R),u(R),p(R)]),T=await d.read(R),M=t.currentSessionSeq(R);if(k===M)return{runtimeId:e.runtimeId,cursor:M,transcriptRevision:Xt(g),session:c(R,x),transcript:g===null?null:Id(g),settings:T,runs:w,pendingPermissions:D,live:t.projectSession(R)}}throw $e(`Session ${R} changed continuously while taking a snapshot`)},"captureObservationSnapshot");return{async create(R={}){s(),i.assertCreate(R);let I=R.sessionId??await ar();if(l.has(I))throw Object.assign(new Error(`Session already exists: ${I}`),{code:"conflict"});l.add(I);try{if(await n.loadSession(I)!==null)throw Object.assign(new Error(`Session already exists: ${I}`),{code:"conflict"});let k=R.projectPath?j.resolve(R.projectPath):void 0,x=R.gitRoot?j.resolve(R.gitRoot):k,g=gf(R,k,x),w={messages:[],title:R.title??"",gitRoot:x??"",...R.tag!==void 0?{tag:R.tag}:{},...g!==void 0?{runtimeInfo:g}:{},scope:"user"};await n.storage.save(I,w);let D=c(I,w,new Date().toISOString());return t.emit("session.created",D,{sessionId:I,runId:I}),D}finally{l.delete(I)}},async load(R){s();let I=await i.loadRequired(R),k=c(R,I);return t.emit("session.loaded",k,{sessionId:R,runId:R}),k},async list(R){return s(),i.assertFilter(R),(await n.listSessions(R)).filter(i.admitsSummary).map(Kd)},async transcript(R){return s(),await i.loadRequired(R),n.loadFullTranscript(R)},async transcriptPage(R){s(),await i.loadRequired(R.sessionId);let I=await n.loadFullTranscript(R.sessionId);return I===null?null:Id(I,R.cursor,R.limit)},async transcriptEntryChunk(R){s(),await i.loadRequired(R.sessionId);let I=t.currentSessionSeq(R.sessionId);if(h?.sessionId===R.sessionId&&h.sessionSeq===I&&h.revision===R.revision&&h.entryIndex===R.entryIndex)return kd(R,h.revision,h.entryId,h.encoded);let k=await n.loadFullTranscript(R.sessionId);if(k===null)return null;let x=Xt(k);if(R.revision!==x)throw $e("Transcript revision changed; request a fresh observation snapshot");let g=k.transcriptEntries[R.entryIndex];if(g===void 0)throw new Error(`Transcript entry index is out of range: ${R.entryIndex}`);let w=Buffer.from(JSON.stringify(g),"utf8");return h={sessionId:R.sessionId,sessionSeq:I,revision:x,entryIndex:R.entryIndex,...typeof g.entryId=="string"?{entryId:g.entryId}:{},encoded:w},kd(R,x,h.entryId,w)},async transcriptSearch(R){s(),await i.loadRequired(R.sessionId);let I=await n.loadFullTranscript(R.sessionId);if(I===null)return null;let k=I.lineage??Wi(I.messages),x=zi(k,{query:R.query,limit:R.limit,role:R.role,scope:R.scope}),g=new Map(I.transcriptEntries.map((D,T)=>[D.entryId,T])),w=x.hits.flatMap(D=>{let T=g.get(D.entryId);return T===void 0?[]:[{...D,entryIndex:T}]});return{revision:Xt(I),hits:w}},async observe(R,I){s();let k=[],x,g=!1,w=o(T=>{if(!(g||x!==void 0&&T.seq<=x))try{I(T)}catch(M){oe({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${T.type}`,detail:ae(M)})}},"deliver"),D=t.service.subscribe({sessionId:R},T=>{x===void 0?k.push(T):w(T)});try{let T=await P(R);x=T.cursor;for(let M of k.splice(0).sort((q,m)=>q.seq-m.seq))w(M);return{snapshot:T,close(){g||(g=!0,k.length=0,D.close())}}}catch(T){throw g=!0,D.close(),T}},async fork(R){s();let I=await i.loadRequired(R.sessionId),k=await n.forkSession(R.sessionId,{...R.selector!==void 0?{selector:R.selector}:{},...R.newSessionId!==void 0?{sessionId:R.newSessionId}:{},...R.title!==void 0?{title:R.title}:{}});if(!k){let g=R.newSessionId??await ar(),w={...I,title:R.title??I.title,messages:I.messages.map(Eg),actorSnapshot:void 0};await n.storage.save(g,w);let D=c(g,w);return t.emit("session.created",D,{sessionId:g,runId:g}),D}let x=c(k.sessionId,k.data);return t.emit("session.created",x,{sessionId:k.sessionId,runId:k.sessionId}),x},async getSettingsVersioned(R){return s(),await i.loadRequired(R),d.read(R)},async getSettings(R){return(await this.getSettingsVersioned(R)).value},async getAutoModeStats(R){s(),await i.loadRequired(R);let I=(await d.read(R)).value;if(ve(I.permissionMode)!=="auto")return;let k=f(R);return{engine:I.autoModeEngine??k?.engine??"llm",...I.autoModeClassifierModel!==void 0?{classifierModel:I.autoModeClassifierModel}:{},denials:k?.denials??cr(),breaker:k?.breaker??lr()}},async updateSettings(R,I){s();let k=await i.loadRequired(R);return(await d.update(R,I,void 0,x=>Si(k,x))).value},async updateSettingsVersioned(R,I,k){s();let x=await i.loadRequired(R);return d.update(R,I,k.expectedRevision,g=>Si(x,g))},async appendNotice(R){s(),await i.loadRequired(R.sessionId);let I=await n.appendClientNotice(R.sessionId,{content:R.content,...R.source!==void 0?{source:R.source}:{}});return I&&t.emit("session.notice.appended",{sessionId:R.sessionId,entry:I},{sessionId:R.sessionId,runId:R.sessionId}),I},async rewind(R){s(),await i.loadRequired(R.sessionId),wi(R.sessionId,a);let I=await n.rewindSession(R.sessionId,{...R.selector!==void 0?{selector:R.selector}:{}});if(!I)return null;let k=c(R.sessionId,I);return t.emit("session.rewound",{sessionId:R.sessionId,selector:R.selector,session:k},{sessionId:R.sessionId,runId:R.sessionId}),k},async setActiveEntry(R){s(),await i.loadRequired(R.sessionId),wi(R.sessionId,a);let I=await n.setActiveEntry(R.sessionId,R.entryId);if(!I)return null;let k=c(R.sessionId,I);return t.emit("session.active_entry.updated",{sessionId:R.sessionId,entryId:R.entryId,session:k},{sessionId:R.sessionId,runId:R.sessionId}),k},async compact(R){s();let I=await i.loadRequired(R.sessionId);wi(R.sessionId,a);let k=Date.now(),x=I.lineage?.entries.filter(w=>w.type==="compaction").length??0;t.emit("context.compaction.started",{meta:{contextId:R.sessionId,contextKind:"root",contextRevision:x}},{sessionId:R.sessionId,runId:R.sessionId});let g=x;try{let w=(await d.read(R.sessionId)).value,D=await n.compactSession(R.sessionId,{...R.provider!==void 0?{provider:R.provider}:{},...R.model!==void 0?{model:R.model}:{},...R.customInstructions!==void 0?{customInstructions:R.customInstructions}:{},...R.contextWindow!==void 0?{contextWindow:R.contextWindow}:{},...(R.triggerPercent??w.compactionTriggerPercent)!==void 0?{triggerPercent:R.triggerPercent??w.compactionTriggerPercent}:{},...(R.triggerTokens??w.compactionTriggerTokens)!==void 0?{triggerTokens:R.triggerTokens??w.compactionTriggerTokens}:{}}),T=await n.loadSession(R.sessionId),M=T?c(R.sessionId,T):void 0;return g=T?.lineage?.entries.filter(q=>q.type==="compaction").length??x,t.emit("context.compaction.finished",{contextId:R.sessionId,contextKind:"root",contextRevision:g,source:"manual",tokensBefore:D.tokensBefore,tokensAfter:D.tokensAfter,committed:D.compacted,elapsedMs:Date.now()-k,beforeRevision:x,afterRevision:g,...D.report??{},...D.reason!==void 0?{reason:D.reason}:{}},{sessionId:R.sessionId,runId:R.sessionId}),D.compacted&&t.emit("session.compacted",{sessionId:R.sessionId,result:{compacted:D.compacted,tokensBefore:D.tokensBefore,tokensAfter:D.tokensAfter},...M!==void 0?{session:M}:{}},{sessionId:R.sessionId,runId:R.sessionId}),{...D,...M!==void 0?{session:M}:{}}}finally{t.emit("context.compaction.ended",{meta:{contextId:R.sessionId,contextKind:"root",contextRevision:g}},{sessionId:R.sessionId,runId:R.sessionId})}},async archive(R){if(s(),await i.loadRequired(R),!await n.archiveSession(R))throw new Error(`Session not found or not archived: ${R}`)},async unarchive(R){if(s(),await i.loadRequired(R),!await n.unarchiveSession(R))throw new Error(`Session not found or not unarchived: ${R}`)},async delete(R){s(),await i.loadRequired(R);let I=await n.deleteSession(R);Pg(R,I),d.release(R),S(R)}}}o(Dp,"createRuntimeSessionService");function Tp(e){let n=new Map,t=new Map,r=new Map,s=new Map,a=new Map,d=new Map,u=new Map;for(let m of e.runs.values())d.set(m.sessionId,Math.max(d.get(m.sessionId)??0,m.sessionOrder));let p=o(m=>{let v=e.runs.get(m);if(!v)throw new Error(`Runtime run not found: ${m}`);return v},"getRecord"),f=o(m=>{n.get(m.sessionId)===m.runId&&n.delete(m.sessionId)},"releaseActiveRun"),S=o(m=>{t.get(m.runId)?.(),t.delete(m.runId)},"releaseActiveQueueRoute"),i=o(m=>{m.releaseAbortSignalSubscription?.(),m.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),l=o(m=>{m.actorSession===void 0||t.has(m.runId)||t.set(m.runId,$i(rr(m.sessionId,"/root")))},"registerActiveQueueRoute"),c=o((m,v)=>{m.start?.resolve(v),m.start=void 0,delete m.providerCredential},"resolveRunStart"),h=o((m,v)=>(i(m),e.permissions.rejectForRun(m.runId,"runtime run ended"),e.userInputs.rejectForRun(m.runId,"runtime run ended"),m.start?.options.guardrails?.find(ki)?.clearAllowedCalls(),c(m,v),S(m),f(m),eg(e.runs),x(m.sessionId),v),"finishRun"),P=o((m,v)=>{let b=ag(v,m),A=sg(v),_=m.terminalEmitted?m.phase:A.phase;return m.terminalEmitted||(m.error=b.message),Ht(e.bus,e.persistence,m,_,A.terminal),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,error:b}},"failedRunResult"),R=o((m,v,b)=>{let A=m.phase==="queued";m.phase==="queued"&&Kp(a,m),i(m),m.running?.abort(new Error(v)),m.abortController?.abort(new Error(v)),e.permissions.rejectForRun(m.runId,v),e.userInputs.rejectForRun(m.runId,v),m.start?.options.guardrails?.find(ki)?.clearAllowedCalls(),Ht(e.bus,e.persistence,m,"cancelled",{code:"cancelled",effectOutcome:A?"none":"unknown",message:v});let _={runId:m.runId,sessionId:m.sessionId,phase:m.phase};return c(m,_),S(m),f(m),b&&!e.isClosed()&&x(m.sessionId),_},"cancelRun"),I=o(m=>{if(!m.start||e.isClosed()){R(m,"runtime closed",!1);return}m.phase="running",m.interruptInputOpen=m.actorSession!==void 0,m.queuedAt=void 0,m.runningAt=new Date().toISOString(),n.set(m.sessionId,m.runId),mn(e.bus,e.persistence,m,ke(m)),e.bus.emit("run.started",ke(m),{sessionId:m.sessionId,runId:m.runId});let v=ff({bus:e.bus,original:m.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:m,onMidTurnUserMessages:o(B=>D(m,B),"onMidTurnUserMessages")}),b=Np({agentPlane:e.agentPlane,events:v,model:m.model,options:m.start.options,provider:m.provider,record:m,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:m.sessionId,runId:m.runId,provider:m.provider,...m.model!==void 0?{model:m.model}:{},...b.effort!==void 0?{effort:b.effort}:{},...b.thinking!==void 0?{thinking:b.thinking}:{},...b.reasoningMode!==void 0?{reasoningMode:b.reasoningMode}:{},...b.agentMode!==void 0?{agentMode:b.agentMode}:{},...m.permissionMode!==void 0?{permissionMode:m.permissionMode}:{},...m.autoModeEngine!==void 0?{autoModeEngine:m.autoModeEngine}:{},...m.autoModeClassifierModel!==void 0?{autoModeClassifierModel:m.autoModeClassifierModel}:{},...m.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:m.autoModeTimeoutMs}:{},...m.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:m.autoModeSpeculativeWindowMs}:{},...b.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:b.compaction.triggerPercent}:{},...b.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:b.compaction.triggerTokens}:{},...b.context?.executionCwd!==void 0?{executionCwd:b.context.executionCwd}:{},...b.context?.shellExecution!==void 0?{shellKind:b.context.shellExecution.shell.kind,shellExecutionFingerprint:tr(b.context.shellExecution)}:{}},{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}}),m.mode==="managed_task"){let B=new AbortController;m.abortController=B;let $=b.abortSignal,de=o(()=>{m.releaseAbortSignalSubscription=void 0,m.interruptInputOpen=!1,B.abort($?.reason)},"handleUpstreamAbort");$?.aborted&&de();let ge=o(()=>no({...b,abortSignal:B.signal},m.start.prompt),"managedOperation"),Je=m.providerCredential!==void 0?nr(m.provider,m.providerCredential,ge):ge();$!==void 0&&!$.aborted?($.addEventListener("abort",de,{once:!0}),m.releaseAbortSignalSubscription=()=>{$.removeEventListener("abort",de)}):$?.aborted&&!B.signal.aborted&&de(),l(m),Je.then(ce=>{let Zt=m.terminalEmitted?m.phase:ce.interrupted?"interrupted":ce.success?"completed":"failed",it=!ce.success&&!ce.interrupted&&ce.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...ce.signalReason!==void 0?{message:ce.signalReason}:{}}:void 0;return Ht(e.bus,e.persistence,m,Zt,it),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:ce,...m.terminal!==void 0?{terminal:m.terminal}:{}}}).catch(ce=>P(m,ce)).then(ce=>h(m,ce));return}let A=o(()=>eo(b,m.start.prompt),"codingOperation"),_=m.providerCredential!==void 0?nr(m.provider,m.providerCredential,A):A();m.running=_;let H=b.abortSignal,Q=o(()=>{m.releaseAbortSignalSubscription=void 0,m.interruptInputOpen=!1},"handleUpstreamAbort");H?.aborted?Q():H!==void 0&&(H.addEventListener("abort",Q,{once:!0}),m.releaseAbortSignalSubscription=()=>{H.removeEventListener("abort",Q)}),l(m),_.result.then(B=>{let $=m.terminalEmitted?m.phase:B.interrupted?"interrupted":B.success?"completed":"failed";return Ht(e.bus,e.persistence,m,$),{runId:m.runId,sessionId:m.sessionId,phase:m.phase,result:B}}).catch(B=>P(m,B)).then(B=>h(m,B))},"launchRecord"),k=o(m=>{try{I(m);return}catch(v){return h(m,P(m,v)),{error:v}}},"startRecord"),x=o(m=>{let v=a.get(m);if(!v||v.length===0||n.has(m))return;let b=v.shift();if(v.length===0&&a.delete(m),!b)return;let A=e.runs.get(b);if(!A||A.phase!=="queued"){x(m);return}k(A)},"drainNext"),g=o(m=>{let v=a.get(m.sessionId)??[];v.push(m.runId),a.set(m.sessionId,v),mn(e.bus,e.persistence,m,ke(m)),e.bus.emit("run.queued",ke(m),{sessionId:m.sessionId,runId:m.runId})},"enqueue"),w=o(m=>{let v=ke(m);mn(e.bus,e.persistence,m,v),e.bus.emit("run.updated",v,{sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}})},"publishRunUpdate"),D=o((m,v)=>{let b=new Map;for(let $ of m.interruptInputs)$.state==="queued"&&$.queueMessageId!==void 0&&b.set($.queueMessageId,$);let A=[],_=new Set;for(let $ of v){if(_.has($))continue;_.add($);let de=b.get($);de!==void 0&&A.push(de)}if(A.length===0)return;let H=new Date().toISOString(),Q=A.map($=>{if($.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${$.inputId}`);return{inputId:$.inputId,afterRunId:$.afterRunId,input:$.input,queuedAt:$.queuedAt,deliveredAt:H,...$.origin!==void 0?{origin:$.origin}:{}}}),B={sessionId:m.sessionId,runId:m.runId,...m.turnId!==void 0?{turnId:m.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:Q},B,()=>{for(let $ of A)$.state="delivered",$.deliveredAt=H,delete $.queueMessageId})}catch($){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${ae($).message}`,inputIds:A.map(de=>de.inputId)},B),$}w(m)},"deliverInterruptInputs"),T=e.settingsOwner.subscribe((m,v)=>{for(let b of e.runs.values())b.sessionId!==m||b.phase!=="queued"&&!qe(b.phase)||(b.permissionMode=v.value.permissionMode,b.autoModeEngine=ve(v.value.permissionMode)==="auto"?v.value.autoModeEngine??"llm":v.value.autoModeEngine,b.autoModeClassifierModel=v.value.autoModeClassifierModel,b.autoModeTimeoutMs=v.value.autoModeTimeoutMs,b.autoModeSpeculativeWindowMs=v.value.autoModeSpeculativeWindowMs,w(b))}),M=o(async(m,v)=>{e.ensureOpen();let b=vd(m,e.artifacts,v),A=await e.sessionAdmission.loadRequired(m.sessionId),_=(await e.settingsOwner.read(m.sessionId)).value;Si(A,_);let H=wf(m.options??{},_,b.inputArtifacts,A),Q=H.agentMode==="sa"?void 0:await e.actorRegistry.forSession(m.sessionId,H.maxConcurrentThreadsPerSession),B=H.provider??e.defaultProvider;if(!B)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let $=m;if($.providerCredential!==void 0&&$.providerCredentialProvider!==void 0&&$.providerCredentialProvider!==B)throw Ig(`Credential lease is bound to ${$.providerCredentialProvider}, not ${B}.`);let de=H.modelOverride??H.model??e.defaultModel??_i(B)[0]?.id,ge=m.trustedRunId??Vf();if(e.runs.has(ge))throw Jt(`Runtime run already exists: ${ge}`,0);let Je=e.enableSharedInteractions||ve(_.permissionMode)==="auto";if(xf(_,de),Je&&H.guardrails?.some(ye=>ye.kind==="tool"&&ye.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let ce=Je?gg({sessionId:m.sessionId,provider:B,model:de,options:H,permissions:e.permissions,cache:r,states:s,settingsOwner:e.settingsOwner,getRecord:o(()=>{let ye=n.get(m.sessionId);return ye===void 0?void 0:e.runs.get(ye)},"getRecord"),onEngineChange:o(ye=>{for(let He of e.runs.values())He.sessionId===m.sessionId&&(He.phase==="queued"||qe(He.phase))&&He.autoModeEngine!==ye&&(He.autoModeEngine=ye,w(He));e.settingsOwner.persistAutoModeEngine(m.sessionId,ye).catch(He=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${ae(He).message}`},{sessionId:m.sessionId,runId:m.sessionId})})},"onEngineChange")}):void 0;await ce?.prepare?.();let Zt=ce===void 0?H:{...H,guardrails:[...H.guardrails??[],ce]},it=new Date().toISOString(),Ti=o(()=>{},"resolveResult"),Ai=new Promise(ye=>{Ti=ye}),Fn=m.requiredAfterRunId,fn=Fn===void 0?void 0:p(Fn);if(fn!==void 0){if(fn.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${Fn} does not belong to session ${m.sessionId}`);if(!qe(fn.phase)&&fn.phase!=="queued")throw new Bt(fn.runId)}let Mi=(d.get(m.sessionId)??0)+1;d.set(m.sessionId,Mi);let er=fn!==void 0||n.has(m.sessionId),ot={runId:ge,sessionId:m.sessionId,phase:er?"queued":"running",startedAt:it,sessionOrder:Mi,...er?{queuedAt:it}:{},provider:B,...de!==void 0?{model:de}:{},...m.permissionBroker!==void 0?{permissionBroker:m.permissionBroker}:{},..._.permissionMode!==void 0?{permissionMode:_.permissionMode}:{},..._.autoModeClassifierModel!==void 0?{autoModeClassifierModel:_.autoModeClassifierModel}:{},..._.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:_.autoModeTimeoutMs}:{},..._.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:_.autoModeSpeculativeWindowMs}:{},...ve(_.permissionMode)==="auto"?{autoModeEngine:_.autoModeEngine??"llm"}:_.autoModeEngine!==void 0?{autoModeEngine:_.autoModeEngine}:{},...H.reasoningMode!==void 0?{reasoning:H.reasoningMode}:{},mode:m.mode??"coding",...m.providerCredential!==void 0?{providerCredential:m.providerCredential}:{},hadProviderCredential:m.providerCredential!==void 0,...m.origin!==void 0?{origin:m.origin}:{},...Fn!==void 0?{continuation:{inputId:ge,afterRunId:Fn,delivery:"after_turn",contentPreview:bd(b.prompt)}}:{},interruptInputs:[],...m.agentContext??e.defaultAgentContext?{agentContext:m.agentContext??e.defaultAgentContext}:{},...Q?{actorSession:Q}:{},interruptInputOpen:!1,result:Ai,start:{prompt:b.prompt,inputArtifacts:b.inputArtifacts,options:Zt,resolve:Ti},terminalEmitted:!1};if(e.runs.set(ge,ot),er)g(ot);else{let ye=k(ot);if(ye!==void 0)throw ye.error}return{runId:ge,sessionId:m.sessionId,get turnId(){return ot.turnId},result:Ai}},"startRun"),q=o((m,v="runtime.runs.start")=>{let A=(u.get(m.sessionId)??Promise.resolve()).then(()=>M(m,v)),_=A.then(()=>{},()=>{});return u.set(m.sessionId,_),_.then(()=>{u.get(m.sessionId)===_&&u.delete(m.sessionId)}),A},"start");return{start:q,async submitInput(m){e.ensureOpen(),await e.sessionAdmission.loadRequired(m.sessionId);let v=p(m.afterRunId);if(v.sessionId!==m.sessionId)throw new Error(`Runtime continuation target ${m.afterRunId} does not belong to session ${m.sessionId}`);if(!qe(v.phase)&&v.phase!=="queued")return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(m.delivery==="interrupt"){if(!qe(v.phase)||n.get(m.sessionId)!==v.runId)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"};if(v.actorSession===void 0)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"unsupported_capability"};if(!v.interruptInputOpen)return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"interrupt_window_closed"};if(m.credential!==void 0||m.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let H=vd({sessionId:m.sessionId,input:m.input},e.artifacts,"runtime.runs.submitInput"),Q=structuredClone(m.input),B=m,$=B.trustedInputId??Yf();if(v.interruptInputs.some(ce=>ce.inputId===$))throw Jt(`Runtime interrupt input already exists: ${$}`,0);let de=Hi({sessionId:m.sessionId,content:H.prompt,inputArtifacts:H.inputArtifacts,provider:v.provider,...v.model!==void 0?{model:v.model}:{}}),ge=new Date().toISOString(),Je={inputId:$,afterRunId:m.afterRunId,delivery:"interrupt",state:"queued",contentPreview:bd(H.prompt),queuedAt:ge,...B.origin!==void 0?{origin:B.origin}:{},input:Q,queueMessageId:de};return v.interruptInputs.push(Je),w(v),e.bus.emit("run.input.queued",{input:Yd(Je)},{sessionId:v.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:$,runId:v.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:v.sessionOrder}}let b=m,A;try{A=await q({sessionId:m.sessionId,input:m.input,...b.options!==void 0?{options:b.options}:{},...b.providerCredential!==void 0?{providerCredential:b.providerCredential}:{},...b.providerCredentialProvider!==void 0?{providerCredentialProvider:b.providerCredentialProvider}:{},...b.origin!==void 0?{origin:b.origin}:{},...b.trustedRunId!==void 0?{trustedRunId:b.trustedRunId}:{},requiredAfterRunId:m.afterRunId},"runtime.runs.submitInput")}catch(H){if(!(H instanceof Bt))throw H;return{accepted:!1,delivery:m.delivery,sessionId:m.sessionId,afterRunId:m.afterRunId,reason:"stale_run"}}let _=p(A.runId).sessionOrder;return{accepted:!0,delivery:m.delivery,runId:A.runId,sessionId:m.sessionId,afterRunId:m.afterRunId,sessionOrder:_}},async await(m){e.ensureOpen();let v=e.runs.get(m);if(v)return await e.sessionAdmission.assertRunAccess(v.sessionId),v.result;let b=e.persistence.loadRunStatus(m);if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),Qd(b);throw new Error(`Runtime run not found: ${m}`)},async get(m){e.ensureOpen();let v=e.runs.get(m);if(v)return await e.sessionAdmission.assertRunAccess(v.sessionId),ke(v);let b=e.persistence.loadRunStatus(m);if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),b;throw new Error(`Runtime run not found: ${m}`)},async list(m){e.ensureOpen(),m?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(m.sessionId);let v=[...e.runs.values()].filter(b=>ng(b,m)).map(ke);return vi(v,e.sessionAdmission)},async abort(m){e.ensureOpen();let v=p(m);await e.sessionAdmission.assertRunAccess(v.sessionId),(v.phase==="queued"||qe(v.phase))&&R(v,"runtime run aborted",!0)},async setModel(m,v){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.model=v,b.running?.setModel(v),w(b)},async setProvider(m,v){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.provider=v,b.running?.setProvider(v),w(b)},async setReasoning(m,v){e.ensureOpen();let b=p(m);await e.sessionAdmission.assertRunAccess(b.sessionId),b.reasoning=v,b.running?.setReasoning(v),w(b)},closeAll(m){T.close();for(let v of e.runs.values())(v.phase==="queued"||qe(v.phase))&&R(v,m,!1);n.clear(),r.clear(),s.clear(),a.clear()},releaseSession(m){for(let v of r.get(m)?.values()??[])v.guardrail.clearAllowedCalls();r.delete(m),s.delete(m)},getAutoModeStats(m){let v=s.get(m);return v===void 0?void 0:{engine:v.engine,denials:v.denials,breaker:v.breaker}}}}o(Tp,"createRuntimeRunService");function Ap(){let e=Gi();return{async list(n){let t=e.list(),r=n?.runId?t.filter(s=>s.runId===n.runId):t;return n?.limit===void 0?r:r.slice(0,n.limit)},async get(n){return e.getWorkflowProcessSnapshot(n)},subscribe(n,t){return{close:e.subscribeWorkflowProcess(s=>{n.runId&&s.snapshot.runId!==n.runId||n.activeOnly===!0&&ig(s.snapshot.status)||t(s)})}},async pause(n){return e.pause(n)},async resume(n){return e.resume(n)},async stop(n){return e.stop(n)}}}o(Ap,"createRuntimeWorkflowService");function Mp(e,n){return{async read(){return e(),_n(Me(n))},async patch(t){return e(),Tf(t,"runtime.config.patch"),Cf(n,Af(t)),_n(Me(n))},async reload(){return e(),n!==void 0?(Jd(n),{ok:!0,config:_n(Me(n))}):{ok:!0,config:_n(uo())}}}}o(Mp,"createRuntimeConfigService");function Cp(e,n){return{async providers(){return e(),pr()},async models(t){return e(),Kf(pr(),t)},async commands(t){return e(),Ed(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return Ed(t.projectRoot).find(s=>s.name.trim().toLowerCase()===r||(s.aliases??[]).some(a=>a.trim().toLowerCase()===r))??null},async skills(t){e();let r=await ir(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(zf)},async describeSkill(t){e();let r=await ir(t.projectRoot);return r.has(t.name)?Gf(await r.loadFull(t.name)):null},async customProviders(){return e(),_f(n)},async upsertCustomProvider(t){return e(),Of(n,t)},async deleteCustomProvider(t){return e(),Nf(n,t)},async extensions(){e();let t=gn();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=gn();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}o(Cp,"createRuntimeCatalogService");function _p(e,n){return{async listServers(){return e(),hi(n)},async getServer(t){return e(),Ff(n,t)},async validateServer(t,r){e();try{return fr(t,r),{ok:!0,config:structuredClone(r)}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}},async upsertServer(t,r){return e(),jf(n,t,r)},async deleteServer(t){return e(),qf(n,t)},async reloadServers(){e();let t=sr(hi(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=hi(n),s=t?.server!==void 0?[t.server]:Object.keys(r),a=sr(r);try{let d=[];for(let u of s)d.push(await a.listTools(u,{forceRefresh:t?.forceRefresh===!0}));return d}finally{await a.dispose()}}}}o(_p,"createRuntimeMcpService");function Op(){let e=new Map;return{service:{async create(r){if(!hf(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let s=j.resolve(r.path),a;try{a=await N.promises.stat(s)}catch(p){throw new Error(`Runtime artifact path is not readable: ${s}`,{cause:p})}if(!a.isFile())throw new Error(`Runtime artifact path must be a regular file: ${s}`);if(a.size>id)throw new Error(`Runtime artifact exceeds the ${id}-byte limit: ${s}`);let d=`art_${Re().replace(/-/g,"").slice(0,12)}`,u={id:d,kind:r.kind,path:s,sizeBytes:a.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(d,u),u},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:o(r=>{let s=e.get(r);if(!s)throw new Error(`Runtime artifact not found: ${r}`);return s},"resolve")}}o(Op,"createRuntimeArtifactStore");function Np(e){let{agentPlane:n,events:t,model:r,options:s,provider:a,record:d,sessionManager:u}=e,p=s.events?.exitPlanMode===void 0,f=p||d.actorSession!==void 0||!!(n&&d.agentContext);return{...s,provider:a,...r!==void 0?{modelOverride:r}:{},session:{...s.session??{},id:d.sessionId,storage:u.storage,persistedByHost:!1},events:t,...f?{context:{...s.context??{},...p?{excludeTools:[...new Set([...s.context?.excludeTools??[],"exit_plan_mode"])]}:{},...d.actorSession?{actorSession:d.actorSession,interruptInput:{closeInputWindow(){d.interruptInputOpen=!1},reopenInputWindow(){!d.terminalEmitted&&qe(d.phase)&&s.abortSignal?.aborted!==!0&&(d.interruptInputOpen=!0)}}}:{},...n&&d.agentContext?{agentExecutorPlane:{plane:n,context:d.agentContext}}:{}}}:{}}}o(Np,"buildRunOptions");function Kt(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}o(Kt,"assertRuntimeAgentContext");function Lp(e,n){let t=[],r=new Set(e.skills);for(let a of n.requiredSkills??[])r.has(a)||t.push(`required skill is unavailable: ${a}`);let s=n.requiredCapabilities;if(s)for(let a of["streaming","durableTasks","inputRequired","cancellation","artifacts"])s[a]===!0&&e.capabilities[a]!=="supported"&&t.push(`required capability ${a} is ${e.capabilities[a]}`);return t}o(Lp,"localAgentReasons");function li(e){return Kt(e),$n(e).map(n=>{let t=Lp(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}o(li,"runtimeLocalListings");function Fp(e,n,t){let r=new Map,s=o((a,d)=>{let u=r.get(a);if(u)return u.then(f=>{let S=f.rootControl().list().maxConcurrentThreads;if(d!==void 0&&d!==S)throw new Error(`Actor concurrency for ${a} is already ${S}; cannot change it to ${d}.`);return f});let p=(async()=>{let f=await e.storage.load(a);if(!f)throw new Error(`Session not found: ${a}`);let S=f.actorSnapshot?.maxConcurrentThreads;if(S!==void 0&&d!==void 0&&S!==d)throw new Error(`Persisted Actor concurrency for ${a} is ${S}; requested ${d}.`);let i={async load(){return(await e.storage.load(a))?.actorSnapshot},save(c,h){return e.storage.saveActorSnapshot(a,c,h)}},l=new Qi({sessionId:a,store:i,maxConcurrentThreadsPerSession:d??S,...n?{executor:Zi({plane:n,context:t??{actorId:`runtime:${a}`}})}:{}});return await l.initialize(),l})();return r.set(a,p),p.catch(()=>r.delete(a)),p},"forSession");return{forSession:s,async root(a){return(await s(a)).rootControl()},async activeTurns(a){return(await Promise.all(a.map(async u=>({sessionId:u,root:(await s(u)).rootControl()})))).flatMap(({sessionId:u,root:p})=>p.list().actors.flatMap(f=>f.currentTurnId&&f.path!=="/root"?[{sessionId:u,actorPath:f.path,turnId:f.currentTurnId,kind:f.kind}]:[]))},async close(a){let d=await Promise.allSettled([...r.values()]);await Promise.all(d.flatMap(u=>u.status==="fulfilled"?[u.value.close(a)]:[])),r.clear()}}}o(Fp,"createRuntimeAgentActorRegistry");function jp(e,n,t,r){return{execution:n,enabled:e!==void 0,async listDispatchable(s){Kt(s);let a=$n(s);return e?e.listDispatchable(s,a):li(s)},async describe(s,a){Kt(a);let d=$n(a);return e?e.describe(s,a,d):li(a).find(u=>u.descriptor.agentId===s)},async preflight(s){Kt(s.query);let a=$n(s.query);if(e)return e.preflight(s,a);let d=li(s.query).find(p=>p.descriptor.agentId===s.agentId),u=d?[]:["agent is not dispatchable"];return d&&s.expectedConfigurationRevision!==void 0&&d.descriptor.configurationRevision!==s.expectedConfigurationRevision&&u.push("configuration revision changed"),{ok:d!==void 0&&u.length===0,...d?{descriptor:d.descriptor}:{},dispatchability:d?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:u},reasons:u}},async tree(s){return await r.loadRequired(s),(await t.root(s)).list()},async detail(s,a){return await r.loadRequired(s),(await t.root(s)).get(a)},async spawn(s,a){return await r.loadRequired(s),(await t.root(s)).spawn(a)},async send(s,a,d,u){await r.loadRequired(s),await(await t.root(s)).send(a,d,u)},async followup(s,a,d,u){return await r.loadRequired(s),(await t.root(s)).followup(a,d,void 0,u)},async interrupt(s,a,d){await r.loadRequired(s),await(await t.root(s)).interrupt(a,d)},async output(s,a,d){return await r.loadRequired(s),(await t.root(s)).output(a,d)},async events(s,a){return await r.loadRequired(s),(await t.root(s)).eventSnapshot(a)},async wait(s,a,d){return await r.loadRequired(s),(await t.root(s)).wait(a,d)}}}o(jp,"createRuntimeAgentService");function mi(){return new Error("Runtime external agent executor plane is not enabled.")}o(mi,"externalAgentsDisabled");function qp(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw mi()},async setEnabled(){throw mi()},async remove(){throw mi()}}}}o(qp,"createRuntimeAdminService");function $p(e){return{async snapshot(){let n=await vi([...e.runs.values()].map(ke),e.sessionAdmission);return{runtimeId:e.identity.runtimeId,mode:e.identity.mode,profile:e.identity.profile,startedAt:e.identity.startedAt,sessions:(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(Kd),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await vi([...e.runs.values()].map(ke),e.sessionAdmission),t=n.filter(S=>S.phase==="running"||S.phase==="waiting_permission"||S.phase==="waiting_user_input"),r=n.filter(S=>S.phase==="queued"),s=(await e.workflows.list({})).filter(S=>S.status!=="completed"&&S.status!=="failed"&&S.status!=="denied"&&S.status!=="stopped"),a=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(S=>S.id),d=await e.actors.activeTurns(a),u=await e.permissions.service.listPending(),p=await e.userInputs.service.listPending(),f=[];return t.length>0&&f.push("active_runs"),r.length>0&&f.push("queued_runs"),s.length>0&&f.push("active_workflows"),d.length>0&&f.push("active_agent_turns"),d.length>0&&f.push("active_agent_tasks"),(u.length>0||p.length>0)&&f.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:s,activeAgentTurns:d,activeAgentTasks:d,pendingPermissions:u,pendingUserInputs:p,blockers:f,canStop:f.length===0}}}}o($p,"createRuntimeStatusService");function Hp(e){return{latestContextBudget(n){return pi(e,"context.budget.snapshot",n)},latestToolExposure(n){return pi(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return pi(e,"provider.cache.diagnostics",n)}}}o(Hp,"createRuntimeDiagnosticsService");async function pi(e,n,t){let r=t?.contextKind??(t?.agentId===void 0?"root":void 0),s=r==="child"||t?.agentId!==void 0,a={type:n,...!s&&t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return[...await e.replay(a)].reverse().find(p=>{let f=p.payload;if(f===null||typeof f!="object"||Array.isArray(f))return t?.contextKind===void 0&&t?.agentId===void 0;let S=f,i=S.contextKind==="child"?"child":"root";if(r!==void 0&&i!==r||t?.agentId!==void 0&&S.agentId!==t.agentId)return!1;if(!s||t?.sessionId===void 0)return!0;let l=`${t.sessionId}/agent/`;return typeof S.contextId!="string"?!1:t.agentId===void 0?S.contextId.startsWith(l):S.contextId===`${l}${encodeURIComponent(t.agentId)}`})?.payload??null}o(pi,"latestRuntimeDiagnosticPayload");function qe(e){return e==="running"||e==="waiting_permission"||e==="waiting_user_input"}o(qe,"isActiveRunPhase");function Kp(e,n){let t=e.get(n.sessionId);if(!t)return;let r=t.filter(s=>s!==n.runId);r.length===0?e.delete(n.sessionId):e.set(n.sessionId,r)}o(Kp,"removeQueuedRun");function Xp(e){let n=!1,t=[],r=new Map,s=new Map,a=new Set,d=o((i,l)=>l?!(l.sessionId!==void 0&&i.sessionId!==l.sessionId||l.runId!==void 0&&i.runId!==l.runId||l.type!==void 0&&!(Array.isArray(l.type)?l.type:[l.type]).includes(i.type)):!0,"matches"),u=o(i=>{t.push(i),t.length>Ut&&t.splice(0,t.length-Ut)},"remember"),p=o((i,l,c)=>{let h=e.nextEventSeq();return{id:`evt_${h}_${Re().replace(/-/g,"").slice(0,8)}`,seq:h,time:new Date().toISOString(),sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{},type:i,payload:l}},"createEvent"),f=o(i=>{for(let l of[...a])if(d(i,l.filter))try{l.listener(i)}catch(c){oe({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${i.type}`,detail:{eventId:i.id,error:ae(c)}})}},"notify");return{service:{subscribe(i,l){if(n)throw new Error("KodaX runtime event bus is closed");let c={filter:i,listener:l};return a.add(c),{close(){a.delete(c)}}},async replay(i){let l=e.replay(i),c=new Map;for(let P of l)c.set(P.id,P);for(let P of t)c.set(P.id,P);let h=[...c.values()].filter(P=>d(P,i)&&(i?.sinceSeq===void 0||P.seq>i.sinceSeq)).sort((P,R)=>P.seq-R.seq||P.time.localeCompare(R.time));return i?.limit===void 0?h:h.slice(-i.limit)}},emit(i,l,c){let h=p(i,l,c);s.set(h.sessionId,h.seq);let P=r.get(h.sessionId)??fi();r.set(h.sessionId,P),ud(P,h),u(h);let R=[h];try{e.appendEvent(h)}catch(I){let k=p("runtime.warning",{message:ae(I).message,sourceEventId:h.id},c);u(k),R.push(k)}for(let I of R)f(I);return h},emitDurable(i,l,c,h){let P=p(i,l,c);e.appendDurableEvent(P),h?.(),s.set(P.sessionId,P.seq);let R=r.get(P.sessionId)??fi();return r.set(P.sessionId,R),ud(R,P),u(P),f(P),P},projectSession(i){let l=r.get(i);return cd(l===void 0?fi():l)},currentSessionSeq(i){let l=s.get(i);if(l!==void 0)return l;let c=zp(e.replay({sessionId:i}));return s.set(i,c),c},close(){n=!0;try{e.close()}catch(i){oe({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:i})}a.clear(),r.clear(),s.clear()}}}o(Xp,"createRuntimeEventBus");function fi(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}o(fi,"createRuntimeSessionLiveProjectionState");function ud(e,n){let t=X(n.payload)?n.payload:void 0;if(!Up(n.type,t)){if(n.type==="assistant.delta"&&typeof t?.text=="string")e.assistantTextByRun[n.runId]=`${e.assistantTextByRun[n.runId]??""}${t.text}`;else if(n.type==="thinking.delta"&&typeof t?.text=="string")e.thinkingTextByRun[n.runId]=`${e.thinkingTextByRun[n.runId]??""}${t.text}`;else if(n.type==="tool.started"){let r=gi(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=gi(n),s=e.activeTools.get(r)??Gp(e.activeTools,n.runId);s&&e.activeTools.set(s.key,{...s,progress:n.payload})}else if(n.type==="tool.finished"){let r=gi(n);if(!e.activeTools.delete(r))for(let[s,a]of e.activeTools)a.runId===n.runId&&e.activeTools.delete(s)}else if(n.type==="todo.updated")e.todo=n.payload;else if(n.type==="run.progress"&&t?.kind==="managed_task_status"){let r=Wp(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($d(n.type)){delete e.assistantTextByRun[n.runId],delete e.thinkingTextByRun[n.runId];for(let[r,s]of e.activeTools)s.runId===n.runId&&e.activeTools.delete(r);for(let[r,s]of e.pendingUserInputs)s.runId===n.runId&&e.pendingUserInputs.delete(r);e.managedTasks.delete(n.runId)}}}o(ud,"applyRuntimeSessionEvent");var Bp=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.finished","todo.updated"]);function Up(e,n){if(!Bp.has(e))return!1;let t=X(n?.meta)?n.meta:void 0;if(!t)return!1;if(t.contextKind==="child"||typeof t.childAgentId=="string"&&t.childAgentId.length>0)return!0;let r=X(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}o(Up,"isChildOwnedPrimaryLiveEvent");function cd(e){return{assistantTextByRun:{...e.assistantTextByRun},thinkingTextByRun:{...e.thinkingTextByRun},activeTools:[...e.activeTools.values()],...e.todo!==void 0?{todo:e.todo}:{},pendingUserInputs:[...e.pendingUserInputs.values()],managedTasks:[...e.managedTasks.values()]}}o(cd,"snapshotRuntimeSessionLiveProjection");function Wp(e){if(!(!X(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}o(Wp,"parseRuntimeManagedTaskStatus");function zp(e){return e.at(-1)?.seq??0}o(zp,"latestRuntimeEventSeq");function gi(e){let n=X(e.payload)?e.payload:void 0,t=X(n?.meta)?n.meta:void 0,r=X(n?.tool)?n.tool:void 0,s=X(n?.update)?n.update:void 0,a=X(n?.result)?n.result:void 0,d=t?.toolCallId??t?.toolUseId??r?.id??s?.id??a?.id??a?.toolCallId;return typeof d=="string"&&d.length>0?`${e.runId}:${d}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}o(gi,"runtimeToolProjectionKey");function Gp(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}o(Gp,"latestActiveToolForRun");function $d(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}o($d,"isTerminalRuntimeEvent");function Jp(e){let n=e.homeDir?j.resolve(e.homeDir):e.sessionsDir?j.resolve(e.sessionsDir,".."):process.cwd(),t=e.sharedDaemonHost===!0?j.join(n,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):j.join(n,".kodax","runtime"),r=j.join(t,"runs"),s=j.join(t,"session-settings"),a=j.join(t,"permission-grants.json"),d=j.join(t,"event-sequence"),u=new Map,p=0,f,S,i,l=!1,c=o(v=>j.join(r,encodeURIComponent(v)),"runDir"),h=o(v=>j.join(c(v),"events.jsonl"),"eventFile"),P=o(v=>j.join(c(v),"status.json"),"statusFile"),R=o(v=>j.join(s,`${encodeURIComponent(v)}.json`),"sessionSettingsFile"),I=[],k=new Set,x=o(()=>{let v=0;if(N.existsSync(d))try{let b=Number.parseInt(N.readFileSync(d,"utf-8").trim(),10);Number.isSafeInteger(b)&&b>0&&(v=b)}catch(b){oe({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:b})}if(!N.existsSync(r))return v;for(let b of N.readdirSync(r,{withFileTypes:!0})){if(!b.isDirectory())continue;let A=j.join(r,b.name,"events.jsonl");if(!N.existsSync(A))continue;let _=N.statSync(A).size,H=Math.min(_,lp),Q=Buffer.allocUnsafe(H),B=N.openSync(A,"r");try{N.readSync(B,Q,0,H,_-H)}finally{N.closeSync(B)}let $=Q.toString("utf-8").split(/\r?\n/);H<_&&$.shift();for(let de of $)if(de.trim())try{let ge=JSON.parse(de);ld(ge)&&Number.isSafeInteger(ge.seq)&&(v=Math.max(v,ge.seq))}catch{}}return v},"findMaxPersistedEventSeq"),g=o(()=>{i===void 0&&(i=x()+1);let v=i;return i+=1,l=!0,v},"allocateEventSeq"),w=o((v,b,A)=>{if(k.has(v))return;k.add(v);let _=g(),H={id:`evt_persist_warn_${_}_${Re().replace(/-/g,"").slice(0,8)}`,seq:_,time:new Date().toISOString(),sessionId:A.sessionId??"runtime",runId:A.runId??A.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:b,...A.file!==void 0?{file:A.file}:{}}};I.push(H),I.length>Ut&&I.splice(0,I.length-Ut)},"pushPersistenceWarning"),D=o((v,b)=>[...v,...I].filter(A=>Yp(A,b)).sort((A,_)=>A.seq-_.seq||A.time.localeCompare(_.time)),"withPersistenceWarnings"),T=o((v,b)=>{if(!N.existsSync(v))return[];let A=N.readFileSync(v,"utf-8"),_=[],H=A.split(/\r?\n/);for(let Q=0;Q<H.length;Q+=1){let B=H[Q]??"";if(B.trim())try{let $=JSON.parse(B);ld($)?_.push($):w(`${v}:${Q+1}:shape`,`Skipped malformed runtime event record at ${j.basename(v)}:${Q+1}`,{runId:b,file:v})}catch($){w(`${v}:${Q+1}:parse`,`Skipped malformed runtime event record at ${j.basename(v)}:${Q+1}: ${ae($).message}`,{runId:b,file:v})}}return _},"readEventsFromFile"),M=o(v=>{if(N.statSync(v).size<=_d)return;let b=N.readFileSync(v,"utf-8").trimEnd().split(/\r?\n/),A=[],_=0;for(let H=b.length-1;H>=0;H-=1){let Q=b[H]??"";if(!Q)continue;let B=Buffer.byteLength(Q,"utf-8")+1;if(A.length>0&&_+B>cp)break;A.push(Q),_+=B}A.reverse(),N.writeFileSync(v,A.length>0?`${A.join(`
|
|
68
|
-
`)}
|
|
69
|
-
`:"","utf-8")},"trimEventFile"),q=o(()=>{f!==void 0&&(clearTimeout(f),f=void 0);for(let[v,b]of u){let A=b.join(""),_=Buffer.byteLength(A,"utf-8"),H=c(v),Q=h(v);N.mkdirSync(H,{recursive:!0}),N.appendFileSync(Q,A,"utf-8"),u.delete(v),p=Math.max(0,p-_),M(Q)}l&&i!==void 0&&(N.mkdirSync(t,{recursive:!0}),N.writeFileSync(d,String(i-1),"utf-8"),l=!1),S=void 0},"flushBufferedEvents"),m=o(()=>{f===void 0&&(f=setTimeout(()=>{f=void 0;try{q()}catch(v){S=ae(v),oe({source:"runtime.persistence",level:"error",message:"Failed to flush buffered runtime events",detail:v})}},up),f.unref?.())},"scheduleEventFlush");return{runtimeDir:t,appendDurableEvent(v){q();let b=c(v.runId),A=h(v.runId);N.mkdirSync(b,{recursive:!0}),N.appendFileSync(A,`${JSON.stringify(v)}
|
|
70
|
-
`,"utf-8");try{M(A)}catch(_){w(`${A}:trim`,`Failed to trim runtime event file: ${ae(_).message}`,{runId:v.runId,file:A})}},appendEvent(v){let b=`${JSON.stringify(v)}
|
|
71
|
-
`,A=u.get(v.runId)??[];A.push(b),u.set(v.runId,A),p+=Buffer.byteLength(b,"utf-8");let _=S;S=void 0;try{_!==void 0||!Rp.has(v.type)||p>=dp?q():m()}catch(H){throw m(),H}if(_!==void 0)throw _},close(){q()},nextEventSeq(){return g()},currentEventSeq(){return i===void 0&&(i=x()+1),i-1},replay(v){try{q()}catch(A){w(`${t}:event-flush`,`Failed to flush buffered runtime events: ${ae(A).message}`,{runId:v?.runId})}if(v?.runId)return D(T(h(v.runId),v.runId),v);if(!N.existsSync(r))return D([],v);let b=[];for(let A of N.readdirSync(r,{withFileTypes:!0}))A.isDirectory()&&b.push(...T(j.join(r,A.name,"events.jsonl"),A.name));return D(b,v)},saveRunStatus(v){let b=c(v.runId);N.mkdirSync(b,{recursive:!0}),Ri(P(v.runId),v)},loadRunStatus(v){let b=P(v);if(N.existsSync(b))try{let A=zt(JSON.parse(N.readFileSync(b,"utf-8")));if(A)return A;w(`${b}:shape`,`Skipped malformed runtime status record at ${j.basename(b)}`,{runId:v,file:b});return}catch(A){w(`${b}:parse`,`Skipped malformed runtime status record at ${j.basename(b)}: ${ae(A).message}`,{runId:v,file:b});return}},loadRunStatuses(){if(!N.existsSync(r))return[];let v=[];for(let b of N.readdirSync(r,{withFileTypes:!0})){if(!b.isDirectory())continue;let A=j.join(r,b.name,"status.json");if(N.existsSync(A))try{let _=JSON.parse(N.readFileSync(A,"utf-8")),H=zt(_);H?v.push(H):w(`${A}:shape`,`Skipped malformed runtime status record at ${j.basename(A)}`,{runId:b.name,file:A})}catch(_){w(`${A}:parse`,`Skipped malformed runtime status record at ${j.basename(A)}: ${ae(_).message}`,{runId:b.name,file:A})}}return v},loadSessionSettingsVersioned(v){let b=R(v);if(!N.existsSync(b))return{revision:0,value:{}};try{let A=JSON.parse(N.readFileSync(b,"utf-8"));return X(A)&&Number.isSafeInteger(A.revision)&&typeof A.revision=="number"&&A.revision>=0&&X(A.value)?{revision:A.revision,value:Pd(A.value)}:{revision:0,value:Pd(A)}}catch(A){return w(`${b}:parse`,`Skipped malformed runtime session settings at ${j.basename(b)}: ${ae(A).message}`,{sessionId:v,file:b}),{revision:0,value:{}}}},loadSessionSettings(v){return this.loadSessionSettingsVersioned(v).value},saveSessionSettingsVersioned(v,b){N.mkdirSync(s,{recursive:!0});let A=R(v);Ri(A,{revision:b.revision,value:Jf(b.value)})},saveSessionSettings(v,b){let A=this.loadSessionSettingsVersioned(v);this.saveSessionSettingsVersioned(v,{revision:A.revision+1,value:b})},loadPermissionGrants(){if(!N.existsSync(a))return{revision:0,value:[]};try{let v=JSON.parse(N.readFileSync(a,"utf-8"));if(!X(v)||!Number.isSafeInteger(v.revision)||!Array.isArray(v.value))throw new Error("invalid permission grant store shape");return{revision:v.revision,value:v.value.map(Df)}}catch(v){throw new Error(`Permission grant store is untrusted: ${ae(v).message}`)}},savePermissionGrants(v){N.mkdirSync(t,{recursive:!0}),Ri(a,v)}}}o(Jp,"createRuntimePersistence");function Ri(e,n){let t=`${e}.${process.pid}.${Re()}.tmp`,r;try{r=N.openSync(t,"wx",384),N.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
72
|
-
`,"utf-8"),N.fsyncSync(r),N.closeSync(r),r=void 0,N.renameSync(t,e)}finally{r!==void 0&&N.closeSync(r),N.rmSync(t,{force:!0})}}o(Ri,"writeRuntimeJsonAtomic");function Vp(e){if(e.sessionsDir!==void 0)return j.resolve(e.sessionsDir);if(e.homeDir!==void 0)return j.join(j.resolve(e.homeDir),".kodax","sessions")}o(Vp,"resolveRuntimeSessionsDir");function Yp(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}o(Yp,"eventMatchesReplayFilter");function ld(e){return X(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}o(ld,"isRuntimeEvent");function zt(e){if(X(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!Zp(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}:{},...X(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}:{},...fd(e.terminal)!==void 0?{terminal:fd(e.terminal)}:{},...md(e.continuation)!==void 0?{continuation:md(e.continuation)}:{},...pd(e.interruptInputs)!==void 0?{interruptInputs:pd(e.interruptInputs)}:{}}}o(zt,"parseRuntimeRunStatus");function md(e){if(!(!X(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}}o(md,"parseRuntimeContinuationStatus");function pd(e){if(e===void 0||!Array.isArray(e))return;let n=e.map(Qp);return n.every(t=>t!==void 0)?n:void 0}o(pd,"parseRuntimeInterruptInputStatuses");function Qp(e){if(!X(e)||typeof e.inputId!="string"||typeof e.afterRunId!="string"||e.delivery!=="interrupt"||e.state!=="queued"&&e.state!=="delivered"&&e.state!=="terminal"||typeof e.contentPreview!="string"||typeof e.queuedAt!="string"||e.deliveredAt!==void 0&&typeof e.deliveredAt!="string")return;let n=X(e.origin)&&typeof e.origin.principalId=="string"?{principalId:e.origin.principalId,...typeof e.origin.clientName=="string"?{clientName:e.origin.clientName}:{},...typeof e.origin.clientVersion=="string"?{clientVersion:e.origin.clientVersion}:{},...typeof e.origin.operationId=="string"?{operationId:e.origin.operationId}:{}}:void 0;return{inputId:e.inputId,afterRunId:e.afterRunId,delivery:"interrupt",state:e.state,contentPreview:e.contentPreview,queuedAt:e.queuedAt,...typeof e.deliveredAt=="string"?{deliveredAt:e.deliveredAt}:{},...n!==void 0?{origin:n}:{}}}o(Qp,"parseRuntimeInterruptInputStatus");function Zp(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"||e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(Zp,"isRuntimeRunPhase");function fd(e){if(X(e)&&!(!Number.isSafeInteger(e.revision)||typeof e.revision!="number"||!ef(e.kind)||!nf(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}:{}}}o(fd,"parseRuntimeTerminalFact");function ef(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(ef,"isRuntimeTerminalKind");function nf(e){return e==="completed"||e==="run_failed"||e==="blocked"||e==="cancelled"||e==="interrupted"||e==="runtime_restarted"||e==="daemon_crashed"||e==="credential_unavailable"||e==="host_not_dispatched"||e==="host_outcome_unknown"||e==="control_history_untrusted"}o(nf,"isRuntimeTerminalCode");function tf(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}}:{},interruptInputs:(e.interruptInputs??[]).map(n=>({...n})),interruptInputOpen:!1,mode:e.mode??"coding",hadProviderCredential:!1,result:Promise.resolve(Qd(e)),terminalEmitted:Qt(e.phase)}}o(tf,"recordFromPersistedStatus");function rf(e,n,t){let r=[...t.replay({runId:e.runId})],s=gd(e,r);if(Qt(s.phase))return s!==e&&mn(n,t,void 0,s),s;let a=[...r].reverse().find(p=>{if(!$d(p.type))return!1;let f=zt(p.payload);return f?.runId===s.runId&&f.sessionId===s.sessionId&&f.phase===of(p.type)});if(a!==void 0){let p=zt(a.payload);if(p!==void 0){let f=gd(p,r);return mn(n,t,void 0,f),f}}let d=s.phase==="queued"?"runtime_restarted":"daemon_crashed",u={...s,phase:"interrupted",endedAt:new Date().toISOString(),error:d,...s.interruptInputs!==void 0?{interruptInputs:s.interruptInputs.map(p=>p.state==="queued"?{...p,state:"terminal"}:p)}:{},terminal:{revision:1,kind:"interrupted",code:d,effectOutcome:s.phase==="queued"?"none":"unknown",message:"Runtime process restarted before this run reached a durable terminal state."}};return n.emit("run.interrupted",u,{sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}}),mn(n,t,void 0,u),u}o(rf,"interruptPersistedNonTerminalRun");function gd(e,n){if(e.interruptInputs===void 0)return e;let t=new Map;for(let a of n){if(a.type!=="run.input.delivered"||a.runId!==e.runId||a.sessionId!==e.sessionId||!X(a.payload))continue;let d=a.payload.inputs;if(Array.isArray(d))for(let u of d)X(u)&&(typeof u.inputId!="string"||u.afterRunId!==e.runId||typeof u.deliveredAt!="string"||t.set(u.inputId,u.deliveredAt))}let r=!1,s=e.interruptInputs.map(a=>{let d=t.get(a.inputId);return a.state!=="queued"||d===void 0?a:(r=!0,{...a,state:"delivered",deliveredAt:d})});return r?{...e,interruptInputs:s}:e}o(gd,"reconcilePersistedInterruptDeliveries");function of(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"}o(of,"terminalPhaseFromEvent");function Rd(e,n){if(e===void 0)return n;let t=Date.parse(e);return Number.isFinite(t)?Math.max(1,t-Date.now()):1}o(Rd,"resolvePermissionTimeoutMs");function sf(e,n){let t=new Map,r=o((u,p,f,S)=>{let i=t.get(u);return!i||f?.runId!==void 0&&i.request.runId!==f.runId||f?.expectedRevision!==void 0&&i.request.revision!==f.expectedRevision?{requestId:u,accepted:!1,status:"already_resolved"}:(p.status==="answered"&&af(i.request.kind,p.answer),t.delete(u),clearTimeout(i.timer),i.resolve(p),e.emit("user_input.resolved",{requestId:u,kind:i.request.kind,status:p.status,...S!==void 0?{reason:S}:{}},{sessionId:i.request.sessionId,runId:i.request.runId,...i.request.turnId!==void 0?{turnId:i.request.turnId}:{}}),{requestId:u,accepted:!0,status:p.status})},"resolvePending"),s=o((u,p=n)=>{let f=`input_${Re().replace(/-/g,"").slice(0,12)}`,S=new Date,i={id:f,revision:0,sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{},kind:u.kind,options:u.options,createdAt:S.toISOString(),expiresAt:new Date(S.getTime()+p).toISOString()},l=o(()=>{},"resolveResponse"),c=new Promise(P=>{l=P}),h=setTimeout(()=>{r(f,{status:"dismissed"},void 0,"timeout")},Math.max(1,p));return h.unref?.(),t.set(f,{request:i,resolve:l,timer:h}),e.emit("user_input.requested",i,{sessionId:i.sessionId,runId:i.runId,...i.turnId!==void 0?{turnId:i.turnId}:{}}),{request:i,response:c}},"trackAndWait"),a=o((u,p)=>{for(let f of[...t.values()])u(f.request)&&r(f.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,f){return r(u,{status:"answered",answer:p},f)},async dismiss(u,p){return r(u,{status:"dismissed"},p,"client_dismissed")}},trackAndWait:s,resolve:r,rejectForRun(u,p){a(f=>f.runId===u,p)},rejectAll(u){a(()=>!0,u)}}}o(sf,"createRuntimeUserInputRegistry");function af(e,n){if(!(e==="askUser"?Hd(n):e==="askUserMulti"?df(n):typeof n=="string"))throw Zd(`Invalid answer for ${e}`)}o(af,"assertRuntimeUserInputAnswer");function Hd(e){return Array.isArray(e)?e.every(yd):yd(e)}o(Hd,"isAskUserAnswer");function yd(e){return typeof e=="string"||X(e)&&e.kind==="customInput"&&typeof e.value=="string"}o(yd,"isAskUserSelectionAnswer");function df(e){return X(e)&&Object.values(e).every(Hd)}o(df,"isAskUserMultiAnswer");function uf(e,n,t){let r=new Map,s=new Map,a=0,d=o((k,x=n,g)=>{let w=o(()=>{},"resolveResponse"),D=new Promise(M=>{w=M});return{request:I(k,[w],Rd(k.expiresAt,x),g),response:D}},"trackAndWait"),u=o((k,x,g)=>{let w=r.get(k);if(!w||g!==void 0&&w.request.runId!==g)return!1;if(x.type==="allow_session"||x.type==="allow_always"){let D=h(w,x);P(D,w.request)}r.delete(k),w.timer&&clearTimeout(w.timer);for(let D of w.waiters)D(x);return e.emit("permission.resolved",{requestId:k,decision:x},{sessionId:w.request.sessionId,runId:w.request.runId,...w.request.turnId!==void 0?{turnId:w.request.turnId}:{}}),!0},"resolvePending"),p=o((k,x)=>{let g=[...r.values()].filter(w=>k(w.request)).map(w=>w.request.id);for(let w of g)u(w,x)},"resolveMatching"),f={request(k){return S(k)},async listPending(k){return[...r.values()].map(x=>x.request).filter(x=>dg(x,k))},async respond(k,x,g){return u(k,x,g?.runId)},async listGrants(){let k=i();return{revision:a,value:[...k.value,...s.values()]}},async revokeGrant(k,x){let g=i();if(a!==x)throw Jt(`Permission grant revision ${x} is stale; current revision is ${a}`,a);let w=s.get(k);if(w!==void 0)return s.delete(k),a+=1,t.savePermissionGrants({revision:a,value:g.value}),R("revoked",w,a),!0;let D=g.value.find(M=>M.id===k),T=g.value.filter(M=>M.id!==k);return T.length===g.value.length?!1:(a+=1,t.savePermissionGrants({revision:a,value:T}),D!==void 0&&R("revoked",D,a),!0)}};function S(k,x){let g=x??(k.toolInput!==void 0?{toolInput:k.toolInput}:void 0),w=l(k.sessionId,k.toolName,g?.toolInput,k.executionCwd,g?.shell,g?.shellContractFingerprint);if(w!==void 0)return w.persistence==="session"?Promise.resolve({type:"allow_session",suggestionId:w.id}):Promise.resolve({type:"allow_always",suggestionId:w.id});let{toolInput:D,...T}=k,M=g===void 0?T.inputPreview:On(g.toolInput),q={sessionId:T.sessionId,runId:T.runId,...T.turnId!==void 0?{turnId:T.turnId}:{},...T.toolCallId!==void 0?{toolCallId:T.toolCallId}:{},toolName:T.toolName,...T.reason!==void 0?{reason:T.reason}:{},...T.risk!==void 0?{risk:T.risk}:{},...M!==void 0?{inputPreview:M}:{},...T.executionCwd!==void 0?{executionCwd:T.executionCwd}:{},...T.expiresAt!==void 0?{expiresAt:T.expiresAt}:{}},m=g===void 0?void 0:c(q,g);return m!==void 0?m:d(q,T.timeoutMs??n,g).response}o(S,"requestPermission");function i(){let k=t.loadPermissionGrants();return a=Math.max(a,k.revision),k}o(i,"loadPersistentPermissionGrants");function l(k,x,g,w,D,T){let M=i().value;return[...s.values(),...M].find(q=>q.scope.sessionId!==void 0&&q.scope.sessionId!==k||q.scope.toolName!==void 0&&q.scope.toolName!==x||q.scope.matcher===void 0||g===void 0||q.persistence!=="session"&&q.scope.matcher.kind==="exact-command"&&typeof g.command=="string"&&hr(g.command,D??(mt()==="win32"?"cmd":"posix"))?!1:xo(q.scope.matcher,{toolName:x,toolInput:g,executionCwd:w??process.cwd(),...D!==void 0?{shell:D}:{},...T!==void 0?{shellContractFingerprint:T}:{}}))}o(l,"findPermissionGrant");function c(k,x){let g=hd(k,x);if(g.length===0)return;let w=[...r.values()].find(D=>D.request.sessionId===k.sessionId&&D.request.runId===k.runId&&D.grantCandidates.length===g.length&&g.every(T=>D.grantCandidates.some(M=>M.persistence===T.persistence&&yi(M.scope,T.scope))));if(w)return new Promise(D=>{w.waiters.push(D)})}o(c,"joinMatchingPendingPermission");function h(k,x){let g=x.type==="allow_session"?"session":"persistent",w="suggestionId"in x?k.grantCandidates.find(D=>D.suggestion.id===x.suggestionId&&D.persistence===g):cf(k,x.scope,g);if(!w)throw Zd("Permission decision does not select a Runtime-issued grant suggestion.");return w}o(h,"resolveRuntimePermissionGrantCandidate");function P(k,x){let g={id:`grant_${Re().replace(/-/g,"").slice(0,12)}`,scope:k.scope,createdAt:new Date().toISOString(),persistence:k.persistence,label:k.suggestion.label,sourcePermissionId:x.id};if(k.persistence==="session"){if([...s.values()].some(T=>yi(T.scope,g.scope)))return;let D=i();a+=1,s.set(g.id,g),t.savePermissionGrants({revision:a,value:D.value}),R("created",g,a,x);return}let w=i();w.value.some(D=>yi(D.scope,g.scope))||(a+=1,t.savePermissionGrants({revision:a,value:[...w.value,g]}),R("created",g,a,x))}o(P,"saveRuntimePermissionCandidate");function R(k,x,g,w){e.emit("permission.grant.changed",{action:k,grant:x,revision:g},{sessionId:w?.sessionId??x.scope.sessionId??"runtime",runId:w?.runId??"permission-grants",...w?.turnId!==void 0?{turnId:w.turnId}:{}})}return o(R,"emitPermissionGrantChanged"),{service:f,requestOwned(k,x){return S(k,x)},track(k){return I(k,[],Rd(k.expiresAt,n))},trackAndWait(k,x=n,g){return d(k,x,g)},resolve(k,x){u(k,x)},isGranted(k,x,g,w,D,T){return l(k,x,g,w,D,T)!==void 0},rejectForRun(k,x){p(g=>g.runId===k,{type:"reject",reason:x})},rejectAll(k){p(()=>!0,{type:"reject",reason:k})},releaseSession(k){let x=i(),g=[...s.values()].filter(w=>w.scope.sessionId===k);if(g.length!==0){for(let w of g)s.delete(w.id);a+=1,t.savePermissionGrants({revision:a,value:x.value});for(let w of g)R("expired",w,a)}},releaseAllSessionGrants(){if(s.size===0)return;let k=i(),x=[...s.values()];s.clear(),a+=1,t.savePermissionGrants({revision:a,value:k.value});for(let g of x)R("expired",g,a)}};function I(k,x,g=n,w){let D=k.inputPreview===void 0?void 0:Sg(k.inputPreview),T=w===void 0?[]:hd(k,w),M={...k,...D!==void 0?{inputPreview:D}:{},executionCwd:j.resolve(k.executionCwd??process.cwd()),id:`perm_${Re().replace(/-/g,"").slice(0,12)}`,createdAt:new Date().toISOString(),...T.length>0?{grantSuggestions:T.map(m=>m.suggestion)}:{}},q=g>0?setTimeout(()=>{let m=r.get(M.id);if(!m)return;r.delete(M.id);let v={type:"reject",reason:"permission request timed out"};for(let b of m.waiters)b(v);e.emit("permission.resolved",{requestId:M.id,decision:v},{sessionId:M.sessionId,runId:M.runId,...M.turnId!==void 0?{turnId:M.turnId}:{}})},g):void 0;return q?.unref?.(),r.set(M.id,{request:M,waiters:x,grantCandidates:T,...q!==void 0?{timer:q}:{}}),e.emit("permission.requested",M,{sessionId:M.sessionId,runId:M.runId,...M.turnId!==void 0?{turnId:M.turnId}:{}}),M}o(I,"createPendingPermission")}o(uf,"createRuntimePermissionRegistry");function cf(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(s=>s.persistence!==t?!1:n.matcher!==void 0?s.scope.matcher?.kind===n.matcher.kind&&s.scope.matcher.fingerprint===n.matcher.fingerprint:!0);return!r||n.sessionId===void 0?r:{...r,scope:{...r.scope,sessionId:n.sessionId}}}o(cf,"resolveLegacyRuntimePermissionGrantCandidate");function hd(e,n){let t=j.resolve(e.executionCwd??process.cwd()),r=yr({toolName:e.toolName,toolInput:n.toolInput,executionCwd:t,...n.shell!==void 0?{shell:n.shell}:{},...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{}});if(r.kind==="exact-command"&&(typeof n.toolInput.command!="string"||n.toolInput.command.trim().length===0))return[];let s=mf(r,n.toolInput),a=[{suggestion:{id:`scope_${Re().replace(/-/g,"").slice(0,16)}`,kind:"session",label:wd(r,s,e.toolName,"session")},scope:{toolName:e.toolName,sessionId:e.sessionId,matcher:r},persistence:"session"}];return r.kind!=="exact-call"&&lf(e,n,t)&&a.push({suggestion:{id:`scope_${Re().replace(/-/g,"").slice(0,16)}`,kind:"persistent",label:wd(r,s,e.toolName,"persistent")},scope:{toolName:e.toolName,matcher:r},persistence:"persistent"}),a}o(hd,"createRuntimePermissionGrantCandidates");function lf(e,n,t){if(e.risk==="high")return!1;let r={id:e.toolCallId??"permission-scope",name:e.toolName,input:n.toolInput},s=j.resolve(n.projectRoot??t);if(ro(r,s,t).denied||[...n.signals??[],...io.collect(r,s,t)].some(d=>d.kind==="dangerous_pattern"))return!1;if(e.toolName==="bash"){let d=typeof n.toolInput.command=="string"?n.toolInput.command:"";if(hr(d,n.shell??(mt()==="win32"?"cmd":"posix")))return!1}return!0}o(lf,"isPersistentRuntimePermissionSafe");function mf(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=bi(t.slice(0,tt)).replace(/\s+/g," ").trim();return r.length<=120?r:`${r.slice(0,117)}...`}o(mf,"runtimePermissionGrantLabel");function wd(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`}o(wd,"runtimePermissionGrantSuggestionLabel");function pf(e,n){let t=n.lastIndexOf("/");if(t<=0)return e;let r=n.slice(0,t);return r==="/root"?e:`${e}/agent/${encodeURIComponent(r)}`}o(pf,"childParentContextId");function $t(e,n){let t=e.contextKind??(e.agentId===void 0?"root":"child"),r=e.contextId??(t==="child"&&e.agentId!==void 0?`${n}/agent/${encodeURIComponent(e.agentId)}`:n),s=e.parentContextId??(t==="child"&&e.agentId!==void 0?pf(n,e.agentId):void 0);return{...e,contextId:r,contextKind:t,...s!==void 0?{parentContextId:s}:{}}}o($t,"withRuntimeDiagnosticIdentity");function yi(e,n){return e.toolName===n.toolName&&e.sessionId===n.sessionId&&e.matcher?.kind===n.matcher?.kind&&e.matcher?.fingerprint===n.matcher?.fingerprint}o(yi,"permissionScopesEqual");function ff(e){let{bus:n,original:t,permissions:r,userInputs:s,enableSharedInteractions:a,record:d,onMidTurnUserMessages:u}=e,p=o(i=>({sessionId:i?.sessionId??d.sessionId,runId:d.runId,turnId:i?.turnId??d.turnId}),"scopeFromMeta"),f=o((i,l,c)=>{n.emit(i,Ve(l),p(c))},"emit"),S=o(async(i,l,c,h,P)=>{let R=d.phase;if(d.phase==="running"&&(d.phase="waiting_user_input"),a){let k=s.trackAndWait({sessionId:c?.sessionId??d.sessionId,runId:d.runId,...c?.turnId??d.turnId?{turnId:c?.turnId??d.turnId}:{},kind:i,options:l});try{let x=h===void 0?await k.response:await Promise.race([k.response,h().then(g=>({status:g===void 0?"dismissed":"answered",...g!==void 0?{answer:g}:{}})).then(g=>(s.resolve(k.request.id,g),g))]);return x.status==="answered"?x.answer:P}finally{d.phase==="waiting_user_input"&&(d.phase=R)}}let I=`input_${Re().replace(/-/g,"").slice(0,12)}`;f("user_input.requested",{requestId:I,kind:i,options:l},c);try{if(h===void 0)return P;let k=await h();return f("user_input.resolved",{requestId:I,kind:i,status:k===void 0?"dismissed":"answered"},c),k}catch(k){throw f("user_input.resolved",{requestId:I,kind:i,status:"failed",error:ae(k).message},c),k}finally{d.phase==="waiting_user_input"&&(d.phase=R)}},"runWithUserInputPhase");return{...t,onTextDelta(i,l){f("assistant.delta",{text:i,meta:l},l),t?.onTextDelta?.(i,l)},onThinkingDelta(i,l){f("thinking.delta",{text:i,meta:l},l),t?.onThinkingDelta?.(i,l)},onThinkingEnd(i,l){f("thinking.finished",{thinking:i,meta:l},l),t?.onThinkingEnd?.(i,l)},onToolUseStart(i,l){f("tool.started",{tool:i,meta:l},l),t?.onToolUseStart?.(i,l)},onToolProgress(i,l){f("tool.progress",{update:i,meta:l},l),t?.onToolProgress?.(i,l)},onToolInputDelta(i,l,c){f("tool.progress",{toolName:i,partialJson:l,meta:c},c),t?.onToolInputDelta?.(i,l,c)},onToolResult(i,l){f("tool.finished",{result:i,meta:l},l),t?.onToolResult?.(i,l)},onStreamEnd(i){f("run.progress",{kind:"stream_end",meta:i},i),t?.onStreamEnd?.(i)},onChildActivityEnd(i){f("child_activity.finished",{meta:i},i),t?.onChildActivityEnd?.(i)},onSessionStart(i){d.provider=i.provider,n.emit("session.loaded",Ve(i),{sessionId:i.sessionId,runId:d.runId,turnId:i.turnId??d.turnId}),t?.onSessionStart?.(i)},onTurnStarted(i){d.turnId=i.turnId,n.emit("turn.started",Ve(i),{sessionId:i.sessionId,runId:d.runId,turnId:i.turnId}),t?.onTurnStarted?.(i)},onTurnCompleted(i){n.emit("turn.completed",Ve(i),{sessionId:i.sessionId,runId:d.runId,turnId:i.turnId}),t?.onTurnCompleted?.(i)},onTurnFailed(i){n.emit("turn.failed",Ve(i),{sessionId:i.sessionId,runId:d.runId,turnId:i.turnId}),t?.onTurnFailed?.(i)},onIterationStart(i,l,c){f("run.progress",{kind:"iteration_start",iter:i,maxIter:l,meta:c},c),t?.onIterationStart?.(i,l,c)},onIterationEnd(i){f("run.progress",{kind:"iteration_end",info:i},i),t?.onIterationEnd?.(i)},onCompactStart(i){f("context.compaction.started",{meta:i},i),t?.onCompactStart?.(i)},onCompact(i,l){t?.onCompact?.(i,l)},onCompactStats(i){f("context.compaction.stats",i,i),t?.onCompactStats?.(i)},async onCompactedMessages(i,l,c){let h=l===void 0?void 0:{hasAnchor:l.anchor!==void 0,...l.anchor?.tokensBefore!==void 0?{tokensBefore:l.anchor.tokensBefore}:{},...l.anchor?.tokensAfter!==void 0?{tokensAfter:l.anchor.tokensAfter}:{},...l.anchor?.entriesRemoved!==void 0?{entriesRemoved:l.anchor.entriesRemoved}:{},...l.anchor?.reason!==void 0?{reason:l.anchor.reason}:{},artifactLedgerEntryCount:l.artifactLedger?.length??0,postCompactAttachmentCount:l.postCompactAttachments?.length??0,exactSnapshotAvailable:l.preCompactionMessages!==void 0};f("context.compaction.messages",{messageCount:i.length,update:h,meta:c},c),await t?.onCompactedMessages?.(i,l,c)},onContextCompactionFinished(i){let l=i.contextRevision??0;f("context.compaction.finished",{...i,contextId:i.contextId??d.sessionId,contextKind:i.contextKind??"root",contextRevision:l,beforeRevision:Math.max(0,l-1),afterRevision:l},i),t?.onContextCompactionFinished?.(i)},onCompactEnd(i){f("context.compaction.ended",{meta:i},i),t?.onCompactEnd?.(i)},onMidTurnUserMessages(i,l){u(l?.queuedMessageIds??[]),f("run.progress",{kind:"mid_turn_user_messages",contents:i,meta:l},l),t?.onMidTurnUserMessages?.(i,l)},onRetry(i,l,c,h){f("provider.retry",{reason:i,attempt:l,maxAttempts:c,meta:h},h),t?.onRetry?.(i,l,c,h)},onProviderRateLimit(i,l,c,h){f("provider.retry",{reason:"rate_limit",attempt:i,maxAttempts:l,delayMs:c,meta:h},h),t?.onProviderRateLimit?.(i,l,c,h)},onRetryAfter(i,l){f("provider.retry",{retryAfter:i,meta:l},l),t?.onRetryAfter?.(i,l)},onReasoningEffortRejected(i){f("provider.recovery",{kind:"reasoning_effort_rejected",event:i},i),t?.onReasoningEffortRejected?.(i)},onRepoIntelligenceTrace(i){f("repo_intelligence.trace",i,i),t?.onRepoIntelligenceTrace?.(i)},onContextBudgetSnapshot(i){let l=$t(i,d.sessionId);f("context.budget.snapshot",l,l),t?.onContextBudgetSnapshot?.(l)},onPromptCacheDiagnostics(i){let l=$t(i,d.sessionId);f("provider.cache.diagnostics",l,l),t?.onPromptCacheDiagnostics?.(l)},onToolExposurePlanned(i){let l=$t(i,d.sessionId);f("tool.exposure.planned",l,l),t?.onToolExposurePlanned?.(l)},onContextCompactionSkipped(i){let l=$t(i,d.sessionId);f("context.compaction.skipped",l,l),t?.onContextCompactionSkipped?.(l)},onSidecarMessage(i){f("sidecar.message",i,i),t?.onSidecarMessage?.(i)},onTodoUpdate(i,l){f("todo.updated",{items:i,meta:l},l),t?.onTodoUpdate?.(i,l)},onTodoDriftWarning(i){f("todo.warning",i,i),t?.onTodoDriftWarning?.(i)},onProviderRecovery(i,l){f("provider.recovery",{event:i,meta:l},l),t?.onProviderRecovery?.(i,l)},onEffectiveConfig(i){f("config.effective",i,i),t?.onEffectiveConfig?.(i)},onWorkflowProcessEvent(i){let l=rg(i);n.emit(l,Ve(i),{sessionId:i.snapshot.hostMetadata?.sessionId??d.sessionId,runId:d.runId,turnId:d.turnId}),t?.onWorkflowProcessEvent?.(i)},onComplete(i){d.mode!=="managed_task"&&(d.interruptInputOpen=!1),f("run.progress",{kind:"complete",meta:i},i),t?.onComplete?.(i)},onError(i,l){d.interruptInputOpen=!1,f("runtime.warning",{source:"coding",severity:"error",message:i.message},l),t?.onError?.(i,l)},onManagedTaskStatus(i){d.mode==="managed_task"&&i.phase==="completed"&&(d.interruptInputOpen=!1),f("run.progress",{kind:"managed_task_status",status:i},i),t?.onManagedTaskStatus?.(i)},beforeToolExecute:o(async(i,l,c)=>{let h=pg(d),P=d.autoModeEngine;if(h!==void 0&&ve(d.permissionMode)==="auto"&&(P==="llm"||P==="rules"))return Nd.has(i)?!0:c?.toolId!==void 0&&h.consumeAllowedCall({id:c.toolId,name:i,input:l})?t?.beforeToolExecute?.(i,l,c)??!0:"[Blocked] Runtime auto mode did not classify this concrete tool call.";if(ve(d.permissionMode)==="plan"){let w=Dd(d,i,l);if(w!==!0&&w!==void 0)return w}let I=mg(d);if(r.isGranted(c?.sessionId??d.sessionId,i,l,Ii(d),I?.shell,I?.shellContractFingerprint))return!0;let k=t?.beforeToolExecute===void 0?Dd(d,i,l):void 0;if(k!==void 0)return k;let x=d.phase;d.phase==="running"&&(d.phase="waiting_permission");let g=r.trackAndWait({sessionId:c?.sessionId??d.sessionId,runId:d.runId,...c?.turnId??d.turnId?{turnId:c?.turnId??d.turnId}:{},...c?.toolId?{toolCallId:c.toolId}:{},toolName:i,inputPreview:On(l),executionCwd:Ii(d)},void 0,{toolInput:l,...I??{},...typeof d.start?.options.context?.gitRoot=="string"?{projectRoot:d.start.options.context.gitRoot}:{}});try{if(!t?.beforeToolExecute){let M=await g.response;return Td(M)}let w=Promise.resolve(t.beforeToolExecute(i,l,c)).then(M=>({source:"hook",decision:M})),D=g.response.then(M=>({source:"runtime",decision:Td(M)})),T=await Promise.race([w,D]);return T.source==="hook"&&r.resolve(g.request.id,ug(T.decision)),T.decision}catch(w){throw r.resolve(g.request.id,{type:"reject",reason:ae(w).message}),w}finally{d.phase==="waiting_permission"&&(d.phase=x==="queued"?"running":x)}},"beforeToolExecute"),...t?.askUser||a?{askUser:o((i,l)=>S("askUser",i,l,t?.askUser?()=>t.askUser(i,l):void 0,""),"askUser")}:{},...t?.askUserMulti||a?{askUserMulti:o((i,l)=>S("askUserMulti",i,l,t?.askUserMulti?()=>t.askUserMulti(i,l):void 0,void 0),"askUserMulti")}:{},...t?.askUserInput||a?{askUserInput:o((i,l)=>S("askUserInput",i,l,t?.askUserInput?()=>t.askUserInput(i,l):void 0,void 0),"askUserInput")}:{}}}o(ff,"wrapKodaXEvents");function gf(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}o(gf,"buildSessionRuntimeInfo");function Kd(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}:{}}}o(Kd,"toRuntimeSessionSummary");function vd(e,n,t){let r=e.input===void 0?[]:Array.isArray(e.input)?[...e.input]:[e.input],s=r.filter(d=>d.type==="text");if(e.prompt!==void 0&&s.length>0)throw new Error(`${t} accepts either prompt or text input, not both`);if(s.length>1)throw new Error(`${t} accepts at most one text input item`);let a=e.prompt??s[0]?.text;if(a===void 0)throw new Error(`${t} requires prompt or text input`);return{prompt:a,inputArtifacts:r.flatMap(d=>Rf(d,n))}}o(vd,"normalizeRuntimeRunInput");function Rf(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return yf(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)}`)}o(Rf,"runtimeInputToArtifacts");function yf(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)}`)}o(yf,"runtimeArtifactToInputArtifacts");function hf(e){return typeof e=="string"&&yp.has(e)}o(hf,"isRuntimeArtifactKind");function wf(e,n,t,r){let s=r.runtimeInfo?.canonicalRepoRoot??(r.gitRoot?r.gitRoot:void 0),a=s===void 0?void 0:j.resolve(s),d=r.runtimeInfo?.executionCwd??r.runtimeInfo?.workspaceRoot??a,u={...a!==void 0?{gitRoot:a}:{},...n.executionCwd!==void 0?{executionCwd:j.resolve(n.executionCwd)}:d!==void 0?{executionCwd:j.resolve(d)}:{},...n.shellExecution!==void 0?{shellExecution:n.shellExecution}:{}},p=e.context,f={...p??{}};delete f.shellExecution;let S=p?.shellExecution===void 0?void 0:jn(p.shellExecution),i=typeof p?.gitRoot=="string"?j.resolve(p.gitRoot):void 0;if(a!==void 0&&i!==void 0&&!(at(a,i)&&at(i,a)))throw new Error("gitRoot must match the session repository safety boundary");let l=p?.executionCwd===void 0?void 0:j.resolve(p.executionCwd),c=l??u.executionCwd,h=r.runtimeInfo?.workspaceRoot??a;l!==void 0&&h!==void 0&&Ud(l,h,"executionCwd");let P=[...p?.inputArtifacts??[],...t],R={...u,...f,...a!==void 0?{gitRoot:a}:i!==void 0?{gitRoot:i}:{},...c!==void 0?{executionCwd:c}:{},...S!==void 0?{shellExecution:S}:{},...P.length>0?{inputArtifacts:P}:{}},I=e.provider??n.provider,k=e.model??n.model,x=e.effort??n.effort,g=e.thinking??n.thinking,w=e.reasoningMode??n.reasoningMode,D=e.agentMode??n.agentMode,T=D==="amaw"?"ama":D,M=e.compaction!==void 0||n.compactionTriggerPercent!==void 0||n.compactionTriggerTokens!==void 0?{...n.compactionTriggerPercent!==void 0?{triggerPercent:n.compactionTriggerPercent}:{},...n.compactionTriggerTokens!==void 0?{triggerTokens:n.compactionTriggerTokens}:{},...e.compaction??{}}:void 0;return{...e,...I!==void 0?{provider:I}:{},...k!==void 0?{model:k}:{},...x!==void 0?{effort:x}:{},...g!==void 0?{thinking:g}:{},...w!==void 0?{reasoningMode:w}:{},...T!==void 0?{agentMode:T}:{},...M!==void 0?{compaction:M}:{},...Object.keys(R).length>0?{context:R}:{}}}o(wf,"buildEffectiveRuntimeOptions");async function Sd(e,n){let t=await e.loadSession(n);if(!t)throw new Error(`Session not found: ${n}`);return t}o(Sd,"loadRequiredSession");function vf(e,n,t){let r=o((a,d)=>t?Sf(a,d)?!1:a===void 0||ap.has(a.toLowerCase()):!0,"admitted"),s=o(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)||s(a.sessionId??"<new>")},assertFilter(a){a?.surface!==void 0&&!r(a.surface,void 0)&&s("<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 Sd(n,a);r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)||s(a)},async loadRequired(a){let d=await Sd(n,a);return r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)||s(a),d}}}o(vf,"createRuntimeSessionAdmission");async function vi(e,n){let t=new Map,r=[];for(let s of e){let a=t.get(s.sessionId);a===void 0&&(a=await n.admitsSession(s.sessionId),t.set(s.sessionId,a)),a&&r.push(s)}return r}o(vi,"filterAdmittedRunStatuses");function Sf(e,n){let t=o(r=>r?.toLowerCase().split(/[^a-z0-9]+/).includes("partner")===!0,"hasPartnerToken");return t(e)||t(n)}o(Sf,"isPartnerSessionIdentity");function Xt(e){return`sha256:${Md("sha256").update(JSON.stringify(e)).digest("hex")}`}o(Xt,"createRuntimeTranscriptRevision");function Xd(e){return Buffer.from(JSON.stringify(e),"utf8").toString("base64url")}o(Xd,"encodeRuntimeTranscriptCursor");function Bd(e){let n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch(t){throw $e(`Invalid transcript cursor: ${ae(t).message}`)}if(!X(n)||typeof n.revision!="string")throw $e("Invalid transcript cursor payload");if(n.kind==="page"&&Number.isSafeInteger(n.end)&&Number(n.end)>=0)return{kind:"page",revision:n.revision,end:Number(n.end)};if(n.kind==="entry"&&Number.isSafeInteger(n.entryIndex)&&Number(n.entryIndex)>=0&&Number.isSafeInteger(n.offset)&&Number(n.offset)>=0)return{kind:"entry",revision:n.revision,entryIndex:Number(n.entryIndex),offset:Number(n.offset)};throw $e("Invalid transcript cursor payload")}o(Bd,"decodeRuntimeTranscriptCursor");function Id(e,n,t){let r=Xt(e),s=t??fp;if(!Number.isSafeInteger(s)||s<=0)throw new Error("transcript page limit must be a positive safe integer");let a=Math.min(s,gp),d=e.transcriptEntries.length;if(n!==void 0){let i=Bd(n);if(i.kind!=="page"||i.revision!==r)throw $e("Transcript cursor is stale; request a fresh observation snapshot");d=Math.min(i.end,e.transcriptEntries.length)}let u=[],p=0,f=d;for(let i=d-1;i>=0&&!(u.length>=a);i-=1){let l=e.transcriptEntries[i],c=JSON.stringify(l),h=Buffer.byteLength(c,"utf8"),P={index:i,...typeof l.entryId=="string"?{entryId:l.entryId}:{},byteLength:h,oversized:h>od,...h<=od?{entry:l}:{}},R=Buffer.byteLength(JSON.stringify(P),"utf8");if(u.length>0&&p+R>Od)break;u.unshift(P),p+=R,f=i}let S=f>0;return{revision:r,entries:u,hasMore:S,...S?{nextCursor:Xd({kind:"page",revision:r,end:f})}:{}}}o(Id,"createRuntimeTranscriptSlice");function kd(e,n,t,r){if(e.revision!==n)throw $e("Transcript revision changed; request a fresh observation snapshot");let s=0;if(e.cursor!==void 0){let u=Bd(e.cursor);if(u.kind!=="entry"||u.revision!==n||u.entryIndex!==e.entryIndex)throw $e("Transcript entry cursor is stale; restart entry retrieval");s=u.offset}if(s>r.length)throw $e("Transcript entry cursor offset is invalid");let a=Math.min(r.length,s+pp),d=a<r.length;return{revision:n,entryIndex:e.entryIndex,...t!==void 0?{entryId:t}:{},encoding:"base64-json",data:r.subarray(s,a).toString("base64"),hasMore:d,...d?{nextCursor:Xd({kind:"entry",revision:n,entryIndex:e.entryIndex,offset:a})}:{}}}o(kd,"createRuntimeTranscriptEntryChunkFromEncoded");function bd(e){return e.length<=sd?e:`${e.slice(0,sd-1)}\u2026`}o(bd,"previewQueuedInput");function Si(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&Ud(n.executionCwd,t,"executionCwd")}o(Si,"assertSessionSettingsAllowed");function Ud(e,n,t){if(!at(e,n))throw new Error(`${t} must stay within the session workspace root`)}o(Ud,"assertPathWithinRoot");function If(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),kf(t,n.shellExecution),Zn(t,"autoModeClassifierModel",n.autoModeClassifierModel),et(t,"effort",n.effort),et(t,"thinking",n.thinking),et(t,"reasoningMode",n.reasoningMode),et(t,"agentMode",n.agentMode),et(t,"autoModeEngine",n.autoModeEngine),Pf(t,"autoModeTimeoutMs",n.autoModeTimeoutMs),Ef(t,"autoModeSpeculativeWindowMs",n.autoModeSpeculativeWindowMs),Wd(t,n.compactionTriggerPercent),bf(t,n.compactionTriggerTokens),t}o(If,"applySessionSettingsPatch");function Wd(e,n){if(n!==void 0){if(n===null){pn(e,"compactionTriggerPercent");return}if(!Number.isFinite(n))throw new Error("compactionTriggerPercent must be a finite number");Y(e,"compactionTriggerPercent",Ui({triggerPercent:n}).triggerPercent)}}o(Wd,"applyNullableCompactionPercentPatch");function kf(e,n){if(n!==void 0){if(n===null){pn(e,"shellExecution");return}Y(e,"shellExecution",jn(n))}}o(kf,"applyNullableShellExecutionPatch");function bf(e,n){if(n!==void 0){if(n===null||n===0){pn(e,"compactionTriggerTokens");return}if(!Number.isSafeInteger(n)||n<0)throw new Error("compactionTriggerTokens must be a positive safe integer or zero");Y(e,"compactionTriggerTokens",n)}}o(bf,"applyNullableCompactionTokensPatch");function Pf(e,n,t){if(t!==void 0){if(t===null){pn(e,n);return}if(!Number.isSafeInteger(t)||t<=0)throw new Error(`${n} must be a positive safe integer`);Y(e,n,t)}}o(Pf,"applyNullablePositiveIntegerPatch");function Ef(e,n,t){if(t!==void 0){if(t===null){pn(e,n);return}if(!Number.isSafeInteger(t)||t<0)throw new Error(`${n} must be a non-negative safe integer`);Y(e,n,t)}}o(Ef,"applyNullableNonNegativeIntegerPatch");function Zn(e,n,t,r=!1){if(t===void 0)return;if(t===null){pn(e,n);return}if(r&&!j.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);let s=n==="autoModeClassifierModel"?zd(t):t;Y(e,n,s)}o(Zn,"applyNullableStringPatch");function zd(e){let n=e.trim();if(n.length===0)throw new ln("autoModeClassifierModel must be a non-empty classifier model spec.");try{to(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw new ln(`autoModeClassifierModel must be a valid classifier model spec: ${r}`)}return n}o(zd,"validateRuntimeAutoModeClassifierModel");function Gd(e,n){if(!(ve(e.permissionMode)!=="auto"||(e.autoModeEngine??"llm")!=="llm")){if(e.autoModeClassifierModel!==void 0){try{zd(e.autoModeClassifierModel)}catch(t){return t instanceof ln?t:new ln("Auto LLM classifier model configuration is invalid.")}return}if(!n?.trim().length)return new ln("Auto LLM requires a classifier model. Set autoModeClassifierModel, the Session/run model, or runtime defaultModel.")}}o(Gd,"runtimeAutoModeClassifierModelError");function xf(e,n){let t=Gd(e,n);if(t)throw t}o(xf,"assertRuntimeAutoModeClassifierModelConfigured");function et(e,n,t){if(t!==void 0){if(t===null){pn(e,n);return}Y(e,n,t)}}o(et,"applyNullablePatch");function Y(e,n,t){e[n]=t}o(Y,"setMutableSetting");function pn(e,n){delete e[n]}o(pn,"deleteMutableSetting");function Pd(e){if(!X(e))return{};let n={};return Ge(n,"provider",e.provider),Ge(n,"model",e.model),Ge(n,"permissionMode",e.permissionMode),Ge(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Y(n,"shellExecution",jn(e.shellExecution)),Ge(n,"autoModeClassifierModel",e.autoModeClassifierModel),Ge(n,"effort",e.effort),typeof e.thinking=="boolean"&&Y(n,"thinking",e.thinking),Ge(n,"reasoningMode",e.reasoningMode),Ge(n,"agentMode",e.agentMode),(e.autoModeEngine==="llm"||e.autoModeEngine==="rules")&&Y(n,"autoModeEngine",e.autoModeEngine),Number.isSafeInteger(e.autoModeTimeoutMs)&&Number(e.autoModeTimeoutMs)>0&&Y(n,"autoModeTimeoutMs",Number(e.autoModeTimeoutMs)),Number.isSafeInteger(e.autoModeSpeculativeWindowMs)&&Number(e.autoModeSpeculativeWindowMs)>=0&&Y(n,"autoModeSpeculativeWindowMs",Number(e.autoModeSpeculativeWindowMs)),typeof e.compactionTriggerPercent=="number"&&Wd(n,e.compactionTriggerPercent),Number.isSafeInteger(e.compactionTriggerTokens)&&Number(e.compactionTriggerTokens)>0&&Y(n,"compactionTriggerTokens",Number(e.compactionTriggerTokens)),n}o(Pd,"parseRuntimeSessionSettings");function Df(e){if(!X(e)||!X(e.scope))throw new Error("invalid permission grant");let n=e.scope.toolName,t=e.scope.sessionId,r=e.scope.matcher,s=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"||s!==void 0&&s!=="session"&&s!=="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:s??"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:Do(r)}:{}}}}o(Df,"parseRuntimePermissionGrant");function Ge(e,n,t){typeof t=="string"&&t.length>0&&Y(e,n,t)}o(Ge,"setStringIfPresent");function X(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(X,"isRecord");function Tf(e,n){if(!X(e))throw new Error(`${n} requires a plain object`)}o(Tf,"assertPlainObject");function Af(e){let n=new Set(sp);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}o(Af,"sanitizeRuntimeConfigPatch");function Mf(e){if(e.homeDir!==void 0)return j.join(j.resolve(e.homeDir),".kodax","config.json")}o(Mf,"resolveRuntimeConfigFile");function Me(e){if(e===void 0)return ao();if(!N.existsSync(e))return{};try{let n=JSON.parse(N.readFileSync(e,"utf8"));return X(n)?n:{}}catch{return{}}}o(Me,"readRuntimeConfig");function Cf(e,n){if(e===void 0){co(n);return}let r={...Me(e),...n};for(let s of Object.keys(n))n[s]===void 0&&delete r[s];rt(e,r)}o(Cf,"patchRuntimeConfig");function rt(e,n){N.mkdirSync(j.dirname(e),{recursive:!0}),N.writeFileSync(e,`${JSON.stringify(n,null,2)}
|
|
73
|
-
`,"utf8")}o(rt,"writeRuntimeConfig");function _f(e){return e===void 0?ho():Lf(Vt(Me(e)))}o(_f,"listRuntimeCustomProviders");function Of(e,n){if(e===void 0)return wo(n);Ci(n);let t=Me(e),r=Vt(t),s=Hf(r,n,a=>a.name===n.name);return rt(e,{...t,customProviders:s}),st(s),structuredClone(n)}o(Of,"upsertRuntimeCustomProvider");function Nf(e,n){if(e===void 0)return vo(n);if(typeof n!="string"||n.length===0)return!1;let t=Me(e),r=Vt(t),s=r.filter(a=>a.name!==n);return s.length===r.length?!1:(rt(e,{...t,customProviders:s}),st(s),!0)}o(Nf,"removeRuntimeCustomProvider");function Jd(e){e!==void 0&&st(Vt(Me(e)))}o(Jd,"registerRuntimeConfiguredCustomProviders");function Vt(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}o(Vt,"extractRuntimeCustomProviders");function Lf(e){return structuredClone(e)}o(Lf,"cloneCustomProviders");function hi(e){return e===void 0?So():$f(Yt(Me(e)))}o(hi,"listRuntimeMcpServers");function Ff(e,n){if(e===void 0)return Io(n);let t=Yt(Me(e))[n];return t===void 0?void 0:structuredClone(t)}o(Ff,"getRuntimeMcpServer");function jf(e,n,t){if(e===void 0)return ko(n,t);fr(n,t);let r=Me(e),s={...Yt(r),[n]:structuredClone(t)};return rt(e,{...r,mcpServers:s}),structuredClone(t)}o(jf,"upsertRuntimeMcpServer");function qf(e,n){if(e===void 0)return bo(n);let t=Me(e),r=Yt(t);if(!(n in r))return!1;let s={...r};return delete s[n],rt(e,{...t,mcpServers:s}),!0}o(qf,"removeRuntimeMcpServer");function Yt(e){return X(e.mcpServers)?structuredClone(e.mcpServers):{}}o(Yt,"extractRuntimeMcpServers");function $f(e){return structuredClone(e)}o($f,"cloneMcpServers");function Hf(e,n,t){let r=e.findIndex(t);return r<0?[...e,structuredClone(n)]:e.map((s,a)=>a===r?structuredClone(n):structuredClone(s))}o(Hf,"upsertConfigEntry");function Kf(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(s=>X(s)&&s.name===n.provider);return X(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!X(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}o(Kf,"listRuntimeModels");function Ed(e){let n=Xf(e).map(Bf),t=gn()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(Uf)??[];return[...n,...t].sort((r,s)=>r.name.localeCompare(s.name))}o(Ed,"listRuntimeCommands");function Xf(e){let n=Eo;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):Ro().getAll()}o(Xf,"listReplCommands");function Bf(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}:{}}}o(Bf,"replCommandToRuntimeCommandInfo");function Uf(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:"extension",...e.usage!==void 0?{usage:e.usage}:{}}}o(Uf,"extensionCommandToRuntimeCommandInfo");function _n(e){return Array.isArray(e)?e.map(n=>_n(n)):X(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Wf(n)?"[redacted]":_n(t)])):e}o(_n,"redactRuntimeConfig");function Wf(e){let n=e.toLowerCase();return n.includes("apikey")||n.includes("api_key")||n==="key"||n.endsWith("key")||n.includes("token")||n.includes("secret")||n.includes("password")}o(Wf,"isSensitiveConfigKey");function zf(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}}o(zf,"toRuntimeSkillSummary");function Gf(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(nt)}:{},...e.references!==void 0?{references:e.references.map(nt)}:{},...e.assets!==void 0?{assets:e.assets.map(nt)}:{},...e.templates!==void 0?{templates:e.templates.map(nt)}:{},...e.resources!==void 0?{resources:e.resources.map(nt)}:{}}}o(Gf,"toRuntimeSkillDescription");function nt(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}o(nt,"toRuntimeSkillFileSummary");function Nn(e){if(!X(e))throw new Error("Invalid runtime daemon response: expected object");return e}o(Nn,"requireRuntimeRecord");function Vd(e){let n=Nn(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}:{}}}o(Vd,"parseRuntimeIdentity");function Jf(e){let n={};return e.provider!==void 0&&Y(n,"provider",e.provider),e.model!==void 0&&Y(n,"model",e.model),e.effort!==void 0&&Y(n,"effort",e.effort),e.thinking!==void 0&&Y(n,"thinking",e.thinking),e.reasoningMode!==void 0&&Y(n,"reasoningMode",e.reasoningMode),e.permissionMode!==void 0&&Y(n,"permissionMode",e.permissionMode),e.executionCwd!==void 0&&Y(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Y(n,"shellExecution",jn(e.shellExecution)),e.agentMode!==void 0&&Y(n,"agentMode",e.agentMode),e.autoModeEngine!==void 0&&Y(n,"autoModeEngine",e.autoModeEngine),e.autoModeClassifierModel!==void 0&&Y(n,"autoModeClassifierModel",e.autoModeClassifierModel),e.autoModeTimeoutMs!==void 0&&Y(n,"autoModeTimeoutMs",e.autoModeTimeoutMs),e.autoModeSpeculativeWindowMs!==void 0&&Y(n,"autoModeSpeculativeWindowMs",e.autoModeSpeculativeWindowMs),e.compactionTriggerPercent!==void 0&&Y(n,"compactionTriggerPercent",e.compactionTriggerPercent),e.compactionTriggerTokens!==void 0&&Y(n,"compactionTriggerTokens",e.compactionTriggerTokens),n}o(Jf,"serializeSessionSettings");function Vf(){return`run_${Date.now().toString(36)}_${Re().replace(/-/g,"").slice(0,8)}`}o(Vf,"createRunId");function Yf(){return`input_${Date.now().toString(36)}_${Re().replace(/-/g,"").slice(0,8)}`}o(Yf,"createInputId");function Yd(e){return{inputId:e.inputId,afterRunId:e.afterRunId,delivery:e.delivery,state:e.state,contentPreview:e.contentPreview,queuedAt:e.queuedAt,...e.deliveredAt!==void 0?{deliveredAt:e.deliveredAt}:{},...e.origin!==void 0?{origin:e.origin}:{}}}o(Yd,"runtimeInterruptInputStatus");function ke(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:Qf(e.phase)}}:{},...e.interruptInputs.length>0?{interruptInputs:e.interruptInputs.map(Yd)}:{}}}o(ke,"statusFromRecord");function Qf(e){return e==="queued"?"queued":Qt(e)?"terminal":"delivered"}o(Qf,"runtimeContinuationState");function Qd(e){return{runId:e.runId,sessionId:e.sessionId,phase:e.phase,...e.error!==void 0?{error:new Error(e.error)}:{},...e.terminal!==void 0?{terminal:e.terminal}:{}}}o(Qd,"resultFromStatus");function Zf(e){return e.length<=Wt?e:[...e].sort(xi).slice(-Wt)}o(Zf,"recentRunStatuses");function eg(e){if(e.size<=Wt)return;let n=[...e.values()].filter(t=>Qt(t.phase)).sort((t,r)=>xi(ke(t),ke(r)));for(let t of n){if(e.size<=Wt)return;e.delete(t.runId)}}o(eg,"pruneTerminalRuns");function xi(e,n){let t=e.endedAt??e.startedAt,r=n.endedAt??n.startedAt,s=t.localeCompare(r);return s!==0?s:e.runId.localeCompare(n.runId)}o(xi,"compareRunStatusRecency");function ng(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}o(ng,"runMatchesFilter");function Ht(e,n,t,r,s){if(t.terminalEmitted)return;t.interruptInputOpen=!1,tg(t),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:s?.code??og(a),effectOutcome:s?.effectOutcome??(a==="interrupted"?"unknown":"known"),...s?.message!==void 0?{message:s.message}:{}};let d=r==="completed"?"run.completed":r==="cancelled"?"run.cancelled":r==="interrupted"?"run.interrupted":"run.failed";mn(e,n,t,ke(t)),e.emit(d,ke(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}})}o(Ht,"markRunTerminal");function tg(e){for(let n of e.interruptInputs)n.state==="queued"&&(n.queueMessageId!==void 0&&(qi().dequeue({agentId:rr(e.sessionId,"/root"),maxPriority:"user",mode:"prompt",id:n.queueMessageId}),delete n.queueMessageId),n.state="terminal")}o(tg,"terminalizeQueuedInterruptInputs");function mn(e,n,t,r){try{n.saveRunStatus(r)}catch(s){let a=t?.turnId??r.turnId;e.emit("runtime.warning",{message:`Failed to save runtime run status for ${r.runId}: ${ae(s).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...a!==void 0?{turnId:a}:{}})}}o(mn,"saveRunStatusSafely");function Qt(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(Qt,"isTerminalRunPhase");function rg(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}o(rg,"workflowEventType");function ig(e){return e==="completed"||e==="failed"||e==="cancelled"}o(ig,"isFinalWorkflowStatus");function og(e){return e==="completed"?"completed":e==="failed"?"run_failed":e==="cancelled"?"cancelled":"interrupted"}o(og,"defaultRuntimeTerminalCode");function sg(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"}}}o(sg,"classifyRuntimeRunFailure");function ag(e,n){if(!n.hadProviderCredential)return ae(e);let t=new Error("Provider run failed while using a run-scoped credential.");return t.name="KodaXProviderRunError",t}o(ag,"normalizeRuntimeRunError");function dg(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}o(dg,"permissionMatchesFilter");function ug(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}o(ug,"decisionToPermissionDecision");function cg(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"}o(cg,"autoModeEscalationRisk");var lg=8;function Ii(e){return j.resolve(e.start?.options.context?.executionCwd??e.start?.options.context?.gitRoot??process.cwd())}o(Ii,"resolveRuntimeExecutionCwd");function mg(e){let n=e.start?.options.context?.shellExecution;if(n===void 0)return;let t=n.shell.kind;return{shell:t==="bash"||t==="zsh"?"posix":t==="cmd"?"cmd":"powershell",shellContractFingerprint:tr(n)}}o(mg,"runtimeShellPermissionIdentity");function ki(e){return e.kind==="tool"&&e.name==="auto-mode"&&"getEngine"in e&&typeof e.getEngine=="function"&&"consumeAllowedCall"in e&&typeof e.consumeAllowedCall=="function"}o(ki,"isRuntimeAutoModeGuardrail");function pg(e){if(ve(e.permissionMode)==="auto")return e.start?.options.guardrails?.find(ki)}o(pg,"getRuntimeAutoModeGuardrail");function Di(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}:${xd(e,d,n)}`).join("")}]`}return`object:{${r.filter(a=>typeof a=="string").sort().map(a=>`${Di(a,n)}${xd(e,a,n)}`).join("")}}`}finally{n.delete(e)}}o(Di,"serializeRuntimeToolInput");function xd(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 Di(r.value,t)}o(xd,"serializeRuntimeDataProperty");function Gt(e){try{let n=Di(e.input);return Md("sha256").update(`${e.id}\0${e.name}\0${n}`).digest("hex")}catch{return}}o(Gt,"runtimeAutoModeDecisionKey");function fg(e){let n=new Set;return{...e,beforeTool:o(async(t,r)=>{if(!e.beforeTool)return{action:"block",reason:"Runtime auto-mode guardrail has no beforeTool hook."};let s=await e.beforeTool(t,r);if(s.action==="allow"){let a=dr(t),d=a?.ok?a.call:t,u=Gt(d);u!==void 0&&n.add(u)}return s},"beforeTool"),consumeAllowedCall(t){let r=Gt(t);return r===void 0||!n.has(r)?!1:(n.delete(r),!0)},clearAllowedCalls(){n.clear()}}}o(fg,"createRuntimeOwnedAutoModeGuardrail");function gg(e){let n=new Set,t,r,s=o(async()=>{let a=(await e.settingsOwner.read(e.sessionId)).value,d=e.getRecord();if(d&&(d.permissionMode=a.permissionMode,d.autoModeEngine=ve(a.permissionMode)==="auto"?a.autoModeEngine??"llm":a.autoModeEngine,d.autoModeClassifierModel=a.autoModeClassifierModel,d.autoModeTimeoutMs=a.autoModeTimeoutMs,d.autoModeSpeculativeWindowMs=a.autoModeSpeculativeWindowMs),r=Gd(a,d?.model??e.model),r){t=void 0;return}let u=await Rg({...e,settings:a});return t=u,u},"resolveGuardrail");return{kind:"tool",name:"auto-mode",async prepare(){if(await s(),r)throw r},async beforeTool(a,d){let u=await s();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 f=dr(a),S=f?.ok?f.call:a;u.consumeAllowedCall(S);let i=Gt(S);i!==void 0&&n.add(i)}return p},getEngine(){if(t)return t.getEngine();let a=e.settingsOwner.peek(e.sessionId)?.value;return ve(a?.permissionMode)==="auto"?a?.autoModeEngine??"llm":"rules"},consumeAllowedCall(a){let d=Gt(a);return d===void 0||!n.has(d)?!1:(n.delete(d),!0)},clearAllowedCalls(){n.clear(),t?.clearAllowedCalls()}}}o(gg,"createRuntimeSessionAutoModeGuardrail");async function Rg(e){if(ve(e.settings.permissionMode)!=="auto")return;let n=e.settings.autoModeEngine??"llm",t=e.states.get(e.sessionId);t===void 0?(t={engine:n,denials:cr(),breaker:lr()},e.states.set(e.sessionId,t)):t.engine=n;let r=j.resolve(e.options.context?.executionCwd??e.settings.executionCwd??e.options.context?.gitRoot??process.cwd()),s=j.resolve(e.options.context?.gitRoot??r),a=JSON.stringify([process.platform==="win32"?s.toLowerCase():s,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,f=await yo({askUser:o(async(i,l,c)=>{let h=e.getRecord();if(!h)return"block";let P=h.phase;h.phase==="running"&&(h.phase="waiting_permission");try{let R=await e.permissions.requestOwned({sessionId:e.sessionId,runId:h.runId,...h.turnId!==void 0?{turnId:h.turnId}:{},toolCallId:i.id,toolName:i.name,reason:l.slice(0,512),risk:cg(c),inputPreview:On(i.input),executionCwd:r},{toolInput:i.input,projectRoot:s,...c!==void 0?{signals:c}:{}});return R.type==="allow_once"||R.type==="allow_session"||R.type==="allow_always"?"allow":"block"}finally{h.phase==="waiting_permission"&&(h.phase=P==="queued"?"running":P)}},"askUser"),projectRoot:s,executionCwd:r,getCurrentProviderName:o(()=>e.getRecord()?.provider??e.provider,"getCurrentProviderName"),getCurrentModel:o(()=>e.getRecord()?.model??e.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>"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:[go],onEngineChange:o(i=>{p&&(p.engine=i),e.onEngineChange(i)},"onEngineChange")}),S=fg(f.getGuardrail());for(p={projectRoot:s,executionCwd:r,engine:S.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:S},d.set(a,p);d.size>lg;){let i=d.keys().next().value;if(i===void 0||i===a)break;d.get(i)?.guardrail.clearAllowedCalls(),d.delete(i)}return S}o(Rg,"createRuntimeAutoModeGuardrail");function Dd(e,n,t){if(Nd.has(n))return!0;let r=ve(e.permissionMode);if(r===void 0)return;let s=e.start?.options.context?.gitRoot??e.start?.options.context?.executionCwd,a=s===void 0?void 0:j.resolve(s),d=Ii(e);if(r==="plan"){let u=fo(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(lo(u))return!0;if(a&&po(u,a,d))return}if(a&&oo.has(n)){let u=typeof t.path=="string"?t.path:void 0;if(u&&mo(Li(u,d),a))return}return so(r).has(n)?void 0:!0}}o(Dd,"resolveRuntimePermissionPolicy");function Td(e){return e?e.type==="allow_once"||e.type==="allow_session"||e.type==="allow_always"?!0:e.reason??!1:!1}o(Td,"decisionToToolDecision");var yg=8192,tt=16384,Ad=16,hg={command:2048,description:1024,file_path:1024,path:1024,paths:1024,cwd:1024,url:1024,preview:2048},wg=/(?:api[_-]?key|authorization|cookie|credential|password|secret|token)/i;function bi(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]
|
|
74
|
-
`).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]@")}o(bi,"redactPermissionPreviewString");function On(e){try{return vg(e)}catch{return'{"__truncated":true}'}}o(On,"previewInput");function vg(e){let n={},t=!0;for(let[s,a]of Object.entries(hg)){let d=Object.getOwnPropertyDescriptor(e,s);if(!d||!d.enumerable||!("value"in d))continue;if(wg.test(s)){n[s]="[REDACTED]";continue}let u=d.value;if(typeof u=="string"){let p=u.slice(0,tt),f=bi(p);n[s]=f.length<=a?f:`${f.slice(0,Math.max(0,a-1))}\u2026`,t||=u.length>p.length||f.length>a;continue}if(s==="paths"&&Array.isArray(u)){let p=[];for(let f of u.slice(0,Ad)){if(typeof f!="string"){t=!0;continue}let S=f.slice(0,tt),i=bi(S);p.push(i.slice(0,a)),t||=f.length>S.length||i.length>a}t||=u.length>Ad,n[s]=p;continue}if(typeof u=="boolean"||typeof u=="number"||typeof u=="bigint"){n[s]=typeof u=="bigint"?u.toString():u;continue}t=!0}t&&(n.__truncated=!0);let r=JSON.stringify(n);return r.length<=yg?r:'{"__truncated":true}'}o(vg,"buildPermissionInputPreview");function Sg(e){if(e.length>tt)return On({preview:e.slice(0,tt)});try{let n=JSON.parse(e);return On(X(n)?n:{value:n})}catch{return On({preview:e})}}o(Sg,"normalizePermissionInputPreview");function ae(e){return e instanceof Error?e:new Error(String(e))}o(ae,"normalizeError");function Jt(e,n){return Object.assign(new Error(e),{code:"conflict",currentRevision:n})}o(Jt,"createRuntimeConflictError");function $e(e){return Object.assign(new Error(e),{code:"resync_required"})}o($e,"createRuntimeResyncError");function Zd(e){return Object.assign(new Error(e),{code:"invalid_input"})}o(Zd,"createRuntimeInvalidInputError");function Ig(e){return Object.assign(new Error(e),{code:"credential_unavailable"})}o(Ig,"createRuntimeCredentialUnavailableError");function kg(){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}}}o(kg,"createUnsupportedCredentialService");function bg(){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}}}o(bg,"createUnsupportedHostToolService");function wi(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}o(wi,"assertSessionMutationAllowed");function Pg(e,n){if(!("ok"in n))throw new Error(`Session is running and cannot be deleted: ${e}`)}o(Pg,"assertDeleteSucceeded");function Eg(e){return structuredClone(e)}o(Eg,"cloneMessage");export{Mr as a,Xe as b,Cr as c,hn as d,tn as e,It as f,_t as g,sa as h,aa as i,rl as j,il as k,Ne as l,ln as m,oh as n,sh as o,ah as p,dh as q,uh as r,wp as s,Ld as t};
|