@kodax-ai/kodax 0.7.76 → 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 +758 -371
- package/LICENSE +158 -158
- package/README.md +1702 -1508
- package/README_CN.md +1019 -869
- package/config-templates/config.example.jsonc +86 -4
- package/config-templates/integrations/a2a.example.jsonc +98 -98
- package/config-templates/integrations/extensions.example.jsonc +7 -7
- package/config-templates/integrations/mcp.example.jsonc +16 -16
- package/dist/builtin/code-review/SKILL.md +22 -22
- package/dist/builtin/skill-creator/scripts/aggregate-benchmark.d.ts +46 -46
- package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +46 -46
- package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +62 -62
- package/dist/builtin/skill-creator/scripts/generate-review.d.ts +33 -33
- package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +73 -73
- package/dist/builtin/skill-creator/scripts/improve-description.d.ts +23 -23
- package/dist/builtin/skill-creator/scripts/init-skill.d.ts +14 -14
- package/dist/builtin/skill-creator/scripts/install-skill.d.ts +29 -29
- package/dist/builtin/skill-creator/scripts/package-skill.d.ts +38 -38
- package/dist/builtin/skill-creator/scripts/quick-validate.d.ts +8 -8
- package/dist/builtin/skill-creator/scripts/run-eval.d.ts +66 -66
- package/dist/builtin/skill-creator/scripts/run-loop.d.ts +49 -49
- package/dist/builtin/skill-creator/scripts/run-trigger-eval.d.ts +58 -58
- package/dist/chunks/agent-ASP4MS3X.js +2 -0
- package/dist/chunks/argument-completer-JYQ7FX3W.js +2 -0
- package/dist/chunks/chunk-2CFHBKRE.js +5 -0
- 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-5NDCSFOP.js +78 -0
- package/dist/chunks/chunk-6FOJVETH.js +22 -0
- package/dist/chunks/chunk-6XM4B6K2.js +48 -0
- package/dist/chunks/chunk-6YZUE6NC.js +240 -0
- package/dist/chunks/{chunk-RDXRM3UI.js → chunk-7OEBJGHK.js} +1 -1
- package/dist/chunks/chunk-KQLQYHWU.js +386 -0
- package/dist/chunks/chunk-NXO6GWSY.js +46 -0
- package/dist/chunks/chunk-T2XZTLYE.js +316 -0
- package/dist/chunks/chunk-TQDBTTIM.js +348 -0
- package/dist/chunks/{chunk-SMT2JSM3.js → chunk-UID7BLAB.js} +9 -9
- 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-PXKSE54E.js → chunk-Z3KFRTSB.js} +1 -1
- package/dist/chunks/compaction-config-BQSSIWK5.js +2 -0
- package/dist/chunks/{construction-bootstrap-5F5KF2BZ.js → construction-bootstrap-VQLQGWPY.js} +1 -1
- package/dist/chunks/dist-BFT5YIGU.js +2 -0
- 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 +21 -19
- package/dist/index.js +6 -6
- package/dist/kodax_bootstrap.js +25 -25
- package/dist/kodax_cli.js +1787 -1341
- package/dist/kodax_resume.js +17 -17
- package/dist/provider-capabilities.json +392 -362
- package/dist/runtime-worker.js +1707 -1279
- package/dist/sandbox-workspace-session.js +563 -0
- package/dist/sdk-a2a.d.ts +18 -17
- package/dist/sdk-a2a.js +8 -8
- package/dist/sdk-agent.d.ts +320 -70
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +135 -168
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +14 -597
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +219 -6
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +70 -27
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +212 -149
- 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 +8 -8
- 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/{base.d-ChvpaKjZ.d.ts → base.d-4e74xDdy.d.ts} +13 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-r1beOESM.d.ts → bash-prefix-extractor.d-uAe2Oqda.d.ts} +319 -9
- package/dist/types-chunks/{capability-learning.d-DPrYxRjF.d.ts → capability-learning.d-CVsdHw4j.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-zeqV4IQX.d.ts → capsule.d-BlSv9l3V.d.ts} +2 -2
- package/dist/types-chunks/{guardrail.d-CWYD1bdL.d.ts → guardrail.d-BRE_ErEj.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-qjuKJZ31.d.ts → guardrail.d-CXDYRgZ3.d.ts} +201 -35
- package/dist/types-chunks/{history-retrieval.d-BKTJIrVd.d.ts → history-retrieval.d-DtCy7x64.d.ts} +2 -2
- 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-CX4B11qY.d.ts → public-api.d-B3AohsxN.d.ts} +37 -8
- package/dist/types-chunks/{commands.d-DUxnK2TU.d.ts → repl.d-Ie_ZXb_U.d.ts} +89 -78
- package/dist/types-chunks/{side-query.d-DWTMsndP.d.ts → resolver.d-iAQ9ocLB.d.ts} +23 -74
- package/dist/types-chunks/{run-manager.d-B9fEIjZk.d.ts → run-manager.d-D1twIhF9.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-B0fhAOPa.d.ts → sdk-session-DB9KksIx.d.ts} +3 -3
- package/dist/types-chunks/side-query.d-DTuLPcC5.d.ts +77 -0
- package/dist/types-chunks/types-D3g6XUQr.d.ts +662 -0
- package/dist/types-chunks/{types.d-sRLugmjy.d.ts → types.d-BA-Jwpfs.d.ts} +506 -11
- package/dist/types-chunks/{types.d-DEctY20M.d.ts → types.d-BH0ZkTGf.d.ts} +2 -2
- package/dist/types-chunks/{types.d-DCQVBqVn.d.ts → types.d-BbtGlKZu.d.ts} +25 -3
- package/dist/types-chunks/{types.d-CSmF0t0n.d.ts → types.d-DIpZJKUl.d.ts} +15 -0
- package/dist/types-chunks/{types.d-Bm_y6YuM.d.ts → types.d-DVDTIfB_.d.ts} +4 -4
- package/dist/types-chunks/{utils.d-D0wPxz8y.d.ts → utils.d-CVp6bFl9.d.ts} +23 -7
- package/docs/SDK_EMBEDDER_GUIDE.md +592 -119
- package/package.json +9 -1
- package/scripts/kodax-bin.cjs +28 -28
- package/scripts/production-env.cjs +25 -25
- package/dist/chunks/agent-7X5CFET2.js +0 -2
- package/dist/chunks/argument-completer-3NHIKB4N.js +0 -2
- package/dist/chunks/chunk-4PWPNCNK.js +0 -158
- package/dist/chunks/chunk-7FJNLJLF.js +0 -369
- package/dist/chunks/chunk-COQYLD4U.js +0 -5
- package/dist/chunks/chunk-D3T24FJW.js +0 -78
- package/dist/chunks/chunk-EI4JBQKL.js +0 -46
- package/dist/chunks/chunk-HGT6WQ24.js +0 -321
- package/dist/chunks/chunk-HS3XHF3R.js +0 -622
- package/dist/chunks/chunk-IDCGNQ4H.js +0 -5
- package/dist/chunks/chunk-KAY2XLCP.js +0 -74
- package/dist/chunks/chunk-OD6LVXU6.js +0 -329
- package/dist/chunks/chunk-OSF3H4RR.js +0 -22
- package/dist/chunks/chunk-TGMBHGZO.js +0 -427
- package/dist/chunks/chunk-VWSLC2WO.js +0 -770
- package/dist/chunks/chunk-Y3AMP22L.js +0 -37
- package/dist/chunks/compaction-config-7J2XE35D.js +0 -2
- package/dist/chunks/dist-2RA7LSH3.js +0 -2
- package/dist/chunks/dist-URKXBOC6.js +0 -2
- package/dist/chunks/host-RKZ2OGFT.js +0 -2
- package/dist/chunks/run-manager-7RM4HEH6.js +0 -2
- package/dist/chunks/utils-X3TEH6IO.js +0 -2
- package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +0 -91
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{b as lt,h as qo,i as Ko}from"./chunk-35PPHOQ2.js";import{$b as $o,Cb as Mo,Eb as Oo,Fb as _o,Gb as Lo,Hb as No,Ib as Fo,Jb as jo,Kb as wr,Wa as Co,_b as Ho}from"./chunk-T2XZTLYE.js";import{A as Po,F as xo,H as Eo,M as Do,O as To,Qa as Ao,j as wo,k as vo,m as he}from"./chunk-YVRYHC4C.js";import{O as hr,Q as Io,X as ko,Y as bo,f as So,q as Rr}from"./chunk-6YZUE6NC.js";import{aa as ut,e as po,ja as gr,pa as yr,ra as go,sa as yo,ua as Ro,va as ho,w as fo,ya as ct}from"./chunk-5GO6FH7L.js";import{k as uo}from"./chunk-TQDBTTIM.js";import{Gc as co,Lb as pr,Rc as fn,Yd as lo,_d as mo,c as $n,d as mr,fd as fr,tb as qn}from"./chunk-KQLQYHWU.js";import{Aa as at,Ta as _i,a as rr,c as Ge,ya as Oi}from"./chunk-5NDCSFOP.js";import{Ac as ro,Ja as ji,Ma as Hi,Md as oo,Qd as so,Rb as cr,Rd as ao,Sa as $i,Tc as lr,Vc as io,ic as to}from"./chunk-VAT2QYXM.js";import{Fa as Vi,Ga as sr,H as Ui,La as Qi,Ma as Yi,Na as Zi,Oa as eo,Pa as no,Qa as ar,Z as Wi,_a as dr,ab as ur,c as Li,d as Z,g as Ni,i as dt,j as Fi,r as Bi,ra as zi,va as or,ya as Gi,za as Ji}from"./chunk-6XM4B6K2.js";import{F as Xi,b as qi,d as ir,e as Ki}from"./chunk-2CFHBKRE.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as Wd,randomUUID as ye}from"node:crypto";import*as F from"node:fs";import zd from"node:os";import N from"node:path";import{createHash as gu}from"node:crypto";import Kn from"node:path";var yu=["path","file_path"],Ru=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function Ir(e){let n=e.platform??pt();if(e.toolName==="bash")return wu(e,n);let t=Ru.has(e.toolName)?yu.map(s=>e.toolInput[s]).find(s=>typeof s=="string"&&s.length>0):void 0;if(t!==void 0)return Su(e.toolName,t,e.executionCwd,n);let r=br(e.executionCwd,e.executionCwd,n),o=Je(bu(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:Je({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(Ir,"createRuntimePermissionMatcher");function Xo(e,n){if(e.toolName!==n.toolName)return!1;let t=Ir(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(Xo,"runtimePermissionMatcherMatches");function Bo(e){if(!Pu(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"||!mt(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!mt(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!mt(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 vr(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 vr(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&mt(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return vr(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(Bo,"parseRuntimePermissionMatcher");function vr(e,n){if(Je(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(vr,"assertMatcherFingerprint");function hu(e,n){return n==="win32"?/%[^%\r\n]+%|![^!\r\n]+!|\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[?^$])|%(?:\*|[0-9]|~[A-Za-z]*[0-9])|%%[A-Za-z]/i.test(e):/\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[^}\r\n]+\}|\([^)]*\)|[0-9@*#?$!_-])|`/.test(e)}i(hu,"hasDynamicShellExpansion");function kr(e,n){return hu(e,n==="posix"?"posix":"win32")}i(kr,"hasDynamicExpansionForPermissionShell");function pt(){return process.platform==="win32"?"win32":"posix"}i(pt,"runtimePermissionHostPlatform");function wu(e,n){let t=e.toolInput.command,r=typeof t=="string"?Iu(t):"",o=br(e.executionCwd,e.executionCwd,n),s=e.toolInput.run_in_background===!0,d=e.shell??(n==="win32"?"cmd":"posix"),u=ku(r,d),m=vu(u?.[0],n),g=u&&u.length>1?Je(u.slice(1)):void 0,R=Je(r),a={version:1,kind:"exact-command",toolName:e.toolName,shell:d,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:R,cwd:o,...m!==void 0?{executable:m}:{},...g!==void 0?{argvFingerprint:g}:{},background:s};return{...a,fingerprint:Je(a)}}i(wu,"createExactCommandMatcher");function vu(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?Kn.win32.basename(e.replaceAll("/","\\")):Kn.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(vu,"safeExecutableMetadata");function Su(e,n,t,r){let o=br(n,t,r),s={version:1,kind:"exact-path",toolName:e,path:o};return{...s,fingerprint:Je(s)}}i(Su,"createExactPathMatcher");function Iu(e){return e.replace(/\r\n?/g,`
|
|
3
|
+
`).trim()}i(Iu,"normalizeCommand");function br(e,n,t){if(t==="win32"){let r=Kn.win32.resolve(n.replaceAll("/","\\"));return Kn.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return Kn.posix.resolve(n,e)}i(br,"normalizePermissionPath");function ku(e,n){if(e.length===0||e.includes("\0")||e.includes(`
|
|
4
|
+
`))return;let t=[],r="",o;for(let s=0;s<e.length;s+=1){let d=e[s]??"";if(n!=="cmd"&&d==="'"&&o!=="double"){o=o==="single"?void 0:"single";continue}if(d==='"'&&o!=="single"){o=o==="double"?void 0:"double";continue}if(d===(n==="cmd"?"^":n==="powershell"?"`":"\\")&&o!=="single"&&s+1<e.length){r+=e[s+1]??"",s+=1;continue}if(/\s/.test(d)&&o===void 0){r.length>0&&t.push(r),r="";continue}r+=d}if(o===void 0)return r.length>0&&t.push(r),t.length>0?t:void 0}i(ku,"tokenizeShellCommand");function bu(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}i(bu,"normalizeGenericInput");function Je(e){return gu("sha256").update(Sr(e)).digest("hex")}i(Je,"stableFingerprint");function Sr(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(Sr).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${Sr(n[t])}`).join(",")}}`}i(Sr,"stableSerialize");function mt(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}i(mt,"isSha256");function Pu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Pu,"isRecord");import{createHash as xu}from"node:crypto";import Ee from"node:fs";import xe from"node:path";function gn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(gn,"isRecord");function Uo(e){return gn(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"&&gn(e.capabilities)&&gn(e.effects):!1}i(Uo,"isRegistration");function Eu(e){return gn(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"&&gn(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}i(Eu,"isTask");function Du(e){return gn(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}i(Du,"isEvent");function zo(e){try{return JSON.parse(Ee.readFileSync(e,"utf8"))}catch(n){let t=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse Runtime agent store file ${e}: ${t}`)}}i(zo,"parseJson");function Wo(e,n){if(!Ee.existsSync(e))return[];let t=zo(e);if(!Array.isArray(t)||!t.every(n))throw new Error(`Runtime agent store file has an invalid array shape: ${e}`);return structuredClone(t)}i(Wo,"readList");function Pr(e,n){Ee.mkdirSync(xe.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;Ee.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
5
|
+
`,{encoding:"utf8",mode:384}),Ee.renameSync(t,e)}i(Pr,"writeJsonAtomic");function ft(e,n){let t=xu("sha256").update(n).digest("hex");return xe.join(e,t)}i(ft,"taskDirectory");function Tu(e,n){if(!Ee.existsSync(e))return[];let t=Ee.readFileSync(e,"utf8").trim();if(!t)return[];let r=0;return t.split(/\r?\n/).map((o,s)=>{let d;try{d=JSON.parse(o)}catch(u){let m=u instanceof Error?u.message:String(u);throw new Error(`Invalid Runtime agent event at ${e}:${s+1}: ${m}`)}if(!Du(d))throw new Error(`Invalid Runtime agent event shape at ${e}:${s+1}`);if(d.taskId!==n)throw new Error(`Runtime agent event taskId does not match its ledger at ${e}:${s+1}`);if(d.seq<=r)throw new Error(`Runtime agent events require a strictly increasing positive sequence at ${e}:${s+1}`);return r=d.seq,d})}i(Tu,"readEvents");function Go(e){let n=xe.resolve(e),t=xe.join(n,"registrations.json"),r=xe.join(n,"task-registration-snapshots.json"),o=xe.join(n,"tasks");return{async loadRegistrations(){return Wo(t,Uo)},async saveRegistrations(s){Pr(t,s)},async loadTaskRegistrationSnapshots(){return Wo(r,Uo)},async saveTaskRegistrationSnapshots(s){Pr(r,s)},async loadTasks(){if(!Ee.existsSync(o))return[];let s=[];for(let u of Ee.readdirSync(o,{withFileTypes:!0})){if(!u.isDirectory())continue;let m=xe.join(o,u.name,"snapshot.json");if(!Ee.existsSync(m))continue;let g=zo(m);if(!Eu(g))throw new Error(`Invalid Runtime agent task shape: ${m}`);s.push({directoryName:u.name,file:m,task:g})}let d=new Set;for(let{task:u}of s){if(d.has(u.taskId))throw new Error(`Duplicate Runtime agent taskId: ${u.taskId}`);d.add(u.taskId)}for(let{directoryName:u,file:m,task:g}of s){let R=xe.basename(ft(o,g.taskId));if(u!==R)throw new Error(`Runtime agent task directory does not match taskId hash: ${m}`)}return s.map(({task:u})=>u)},async saveTask(s){Pr(xe.join(ft(o,s.taskId),"snapshot.json"),s)},async loadEvents(s){return Tu(xe.join(ft(o,s),"events.jsonl"),s)},async appendEvent(s){let d=xe.join(ft(o,s.taskId),"events.jsonl");Ee.mkdirSync(xe.dirname(d),{recursive:!0}),Ee.appendFileSync(d,`${JSON.stringify(s)}
|
|
6
|
+
`,{encoding:"utf8",mode:384})}}}i(Go,"createRuntimeAgentExecutorPlaneStore");import{createHash as ss,randomUUID as Xn}from"node:crypto";import Rn from"node:fs";import{mkdir as as,readFile as ds}from"node:fs/promises";import ie from"node:path";var us=["read","grep","glob"],cs=["write","edit","multi_edit","insert_after_anchor"],ls=["mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt"],Au=["list_dispatchable_agents","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output"],Cu=new Set([...us,...cs]),Mu=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),Ou=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]);function Er(e){return Array.isArray(e)?e.map(Er):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,Er(t)]))}i(Er,"canonicalValue");function Ve(e){return ss("sha256").update(JSON.stringify(Er(e))).digest("hex")}i(Ve,"stableHash");function ms(e){let n=ss("sha256");for(let t of e)n.update(t);return n.digest("hex")}i(ms,"hashParts");function gt(e,n){let t=ie.relative(ie.resolve(e),ie.resolve(n));return t===""||!t.startsWith("..")&&!ie.isAbsolute(t)}i(gt,"isInside");function Dr(e){if(!Rn.existsSync(e))return 0;let n=0;for(let t of Rn.readdirSync(e,{withFileTypes:!0})){let r=ie.join(e,t.name);t.isSymbolicLink()||(t.isDirectory()?n+=Dr(r):t.isFile()&&(n+=Rn.statSync(r).size))}return n}i(Dr,"directoryBytes");function Jo(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<=0)throw new Error("Runtime workspace byte limit must be positive.");return e}}i(Jo,"validateWorkspaceByteLimit");function xr(e){if(e.mode==="managed")return{mode:"managed"};if(!ie.isAbsolute(e.root))throw new Error("Fixed Runtime workspace root must be absolute.");return{mode:"fixed",root:ie.resolve(e.root)}}i(xr,"normalizedWorkspace");function Tr(e,n,t=!0){if(!Array.isArray(e)||!t&&e.length===0)throw new Error(`${n} must be ${t?"an":"a non-empty"} array.`);let r=e.map(o=>{if(typeof o!="string"||o.trim().length===0||o.includes("*"))throw new Error(`${n} must contain exact names without wildcards.`);return o.trim()});if(new Set(r).size!==r.length)throw new Error(`${n} contains duplicates.`);return r.sort()}i(Tr,"exactList");function Vo(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,Tr(r,`${n}.${t}`,!1)]}))}i(Vo,"exactMap");function Qo(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:Tr(n.origins,"Runtime toolPolicy.network.origins").map(s=>{let d=new URL(s);if(!["http:","https:"].includes(d.protocol)||d.origin!==s)throw new Error("Runtime network authority must be an exact HTTP(S) origin.");return d.origin})},r=Vo(e.skillScripts,"Runtime toolPolicy.skillScripts"),o=Object.values(r).reduce((s,d)=>s+d.length,0);if(e.process==="deny"!=(o===0))throw new Error("Runtime isolated process authority and skillScripts must be enabled together.");return{workspace:e.workspace,process:e.process,network:t,tools:Tr(e.tools,"Runtime toolPolicy.tools"),mcp:Vo(e.mcp,"Runtime toolPolicy.mcp"),skillScripts:r,subagents:e.subagents}}i(Qo,"validatedToolPolicy");function _u(e){return e==="project"?"workspace":e}i(_u,"skillSource");function Lu(e){return[...(e.scripts??[]).map(n=>({...n,relativePath:`scripts/${n.relativePath}`})),...(e.references??[]).map(n=>({...n,relativePath:`references/${n.relativePath}`})),...(e.assets??[]).map(n=>({...n,relativePath:`assets/${n.relativePath}`})),...(e.templates??[]).map(n=>({...n,relativePath:`templates/${n.relativePath}`})),...(e.resources??[]).map(n=>({...n,relativePath:`resources/${n.relativePath}`}))].sort((n,t)=>n.relativePath.localeCompare(t.relativePath))}i(Lu,"skillFiles");async function Nu(e){let n=[e.name,e.rawContent];for(let t of Lu(e))n.push(t.relativePath,await ds(t.path));return ms(n)}i(Nu,"skillRevision");var yt=class{static{i(this,"PinnedSkillRegistry")}#n;#e;constructor(n,t){this.#n=n,this.#e=new Map(t.map(r=>[r.name,r]))}get skills(){return this.#e}get size(){return this.#e.size}async discover(){}get(n){return this.#e.get(n)}has(n){return this.#e.has(n)}list(){return[...this.#e.values()]}listUserInvocable(){return this.list().filter(n=>n.userInvocable)}async loadFull(n){if(!this.has(n))throw new Error(`Skill not admitted by Runtime binding: ${n}`);return this.#n.loadFull(n)}async invoke(n,t,r){return this.has(n)?this.#n.invoke(n,t,r):{success:!1,content:"",error:`Skill not admitted: ${n}`}}async reload(){throw new Error("A bound Skill registry is immutable; create a new Runtime binding.")}},Ar=class{constructor(n,t){this.formal=n;this.learned=t}formal;learned;static{i(this,"CompositeSkillRegistry")}get skills(){return new Map(this.list().map(n=>[n.name,n]))}get size(){return this.list().length}async discover(){}get(n){return this.formal.get(n)??this.learned.get(n)}has(n){return this.formal.has(n)||this.learned.has(n)}list(){let n=new Map(this.learned.list().map(t=>[t.name,t]));for(let t of this.formal.list())n.set(t.name,t);return[...n.values()]}listUserInvocable(){return this.list().filter(n=>n.userInvocable)}loadFull(n){return this.formal.has(n)?this.formal.loadFull(n):this.learned.loadFull(n)}invoke(n,t,r){return this.formal.has(n)?this.formal.invoke(n,t,r):this.learned.invoke(n,t,r)}async reload(){throw new Error("A bound Skill registry is immutable; create a new Runtime binding.")}};async function ps(e){let n=e.workspace.mode==="fixed"?e.workspace.root:void 0,t=Ui(n),r=t.userPaths.filter(d=>ie.basename(ie.dirname(d))===".agents"),o=n===void 0?void 0:await fs({configHome:e.configHome,projectRoot:n,...e.bindingId===void 0?{}:{bindingId:e.bindingId},...e.ownerSessionRef===void 0?{}:{ownerSessionRef:e.ownerSessionRef}}),s=new dr(n,{projectPaths:e.workspace.mode==="managed"?[]:t.projectPaths,userPaths:[ie.join(e.configHome,"skills"),...r],pluginPaths:t.pluginPaths,builtinPath:t.builtinPath,...o===void 0?{}:{learnedArea:o.discovery}});try{await s.discover()}catch(d){throw await Qe(o,e.bindingId),d}try{let d=s.list(),m=e.selection===void 0||e.selection.includes("*")?d.filter(a=>a.source!=="project"&&!a.disableModelInvocation):e.selection.map(a=>{let y=s.get(a);if(!y)throw new Error(`Markdown Agent requires unknown Skill "${a}".`);if(y.disableModelInvocation)throw new Error(`Skill "${a}" disables model invocation.`);return y}),g=[];for(let a of m.sort((y,p)=>y.name.localeCompare(p.name))){let y=await Nu(await s.loadFull(a.name));g.push({name:a.name,source:_u(a.source),revision:y})}let R={registry:new yt(s,m),refs:g,revision:Ve(g),protectedFormalSkillNames:d.filter(a=>a.source!=="learned").map(a=>a.name),...o===void 0?{}:{learnedSkills:{store:o.store,testingCapabilityIds:o.testingCapabilityIds}}};return await yn(o,e.bindingId),R}catch(d){throw await yn(o,e.bindingId),d}}i(ps,"resolveSkills");async function fs(e){try{return await Fu(e)}catch(n){Z({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this binding: ${Bn(n)}`});return}}i(fs,"tryPrepareProjectLearnedSkills");async function Qe(e,n){e===void 0||n===void 0||await Promise.all(e.testingCapabilityIds.map(t=>sr(e.store,t,n)))}i(Qe,"releaseResolvedLearnedSkills");async function yn(e,n){if(e===void 0||n===void 0)return;let t=await Promise.allSettled(e.testingCapabilityIds.map(r=>sr(e.store,r,n)));for(let r of t)r.status==="rejected"&&Z({source:"runtime:learned-skills",level:"warn",message:`Learned Skill binding release requires lease recovery: ${Bn(r.reason)}`})}i(yn,"safeReleaseResolvedLearnedSkills");function Bn(e){return e instanceof Error?e.message:String(e)}i(Bn,"errorMessage");async function Fu(e){let n=`local:${e.configHome}`,t=Bi(e.projectRoot)?.trim(),r=t===void 0?`local:${ie.resolve(e.projectRoot).toLowerCase()}`:uo(t),o=Gi(e.configHome,{tenantId:n,projectId:r}),s=new zi(o);await s.initialize();let d=Ji(e.configHome,{tenantId:n,projectId:r});await Yi(e.configHome,s,d);let u={},m=[];if(e.bindingId!==void 0&&e.ownerSessionRef!==void 0)for(let g of await s.listCapabilities()){if(g.schemaVersion!==2||g.lifecycle!=="testing")continue;let R=await Vi(s,g.capabilityId,{bindingId:e.bindingId,ownerSessionRef:e.ownerSessionRef});R!==void 0&&(u[g.capabilityId]=R.bindingId,m.push(g.capabilityId))}return{store:s,testingCapabilityIds:m,discovery:{rootDir:o,expectedScope:d,testingBindings:u}}}i(Fu,"prepareProjectLearnedSkills");function ju(e,n,t){let r={none:0,read:1,write:2};if(r[n.workspaceEffect]>r[t.workspace])throw new Error(`Remote tool "${e}" requires broader workspace access.`);let o=new Set(t.network.mode==="allowlist"?t.network.origins:[]);if(n.networkOrigins.some(s=>!o.has(new URL(s).origin)))throw new Error(`Remote tool "${e}" requires a network origin outside toolPolicy.`)}i(ju,"validateRemoteContract");function Yo(e){let n=new Set;e.policy.workspace!=="none"&&us.forEach(s=>n.add(s)),e.policy.workspace==="write"&&cs.forEach(s=>n.add(s)),e.hasSkills&&n.add("skill"),e.hasSkillScripts&&n.add("run_skill_script"),Object.keys(e.policy.mcp).length>0&&ls.forEach(s=>n.add(s)),e.policy.subagents==="inherit"&&Au.forEach(s=>n.add(s));let t=new Map(fr().map(s=>[s.name,s])),r=new Map;for(let s of e.policy.tools){let d=t.get(s)?.remoteContract;if(!d)throw new Error(`Tool "${s}" has no Runtime remote contract.`);ju(s,d,e.policy),r.set(s,d),n.add(s)}let o=new Map;for(let s of n){let d=t.get(s);if(!d)throw new Error(`Runtime tool is unavailable: ${s}.`);if(!r.has(s)&&d.source.kind!=="builtin")throw new Error(`Native Runtime tool "${s}" is shadowed by a non-builtin registration.`);o.set(s,d.registrationId)}if(e.declared!==void 0){let s=e.declared.filter(u=>!n.has(u));if(s.length>0)throw new Error(`Markdown Agent tools are denied by remote policy: ${s.join(", ")}.`);let d=[...new Set(e.declared)].sort();return{tools:d,contracts:r,registrations:new Map(d.map(u=>[u,o.get(u)]))}}return{tools:[...n].sort(),contracts:r,registrations:o}}i(Yo,"resolveToolSurface");function Zo(e,n){return e.length===0?`## Available Skills
|
|
7
|
+
|
|
8
|
+
No Skills are admitted for this deployment.`:["## Available Skills","","Invoke a matching Skill with the `skill` tool before completing that work.",...e.map(t=>`- ${t.name}: ${n.get(t.name)?.description??""}`)].join(`
|
|
9
|
+
`)}i(Zo,"skillsPrompt");function es(e,n){let r=ie.relative(n,e).split(ie.sep).map(o=>o.toLowerCase());return r.some(o=>Mu.has(o))||r.some(o=>Ou.has(o)||o.startsWith(".env."))}i(es,"sensitivePath");function Hu(e){let n=e;for(;!Rn.existsSync(n);){let t=ie.dirname(n);if(t===n)throw new Error("Tool path has no existing parent.");n=t}return n}i(Hu,"nearestExistingPath");function $u(e,n){let t=Rn.realpathSync(e),r=Hu(n),o=Rn.realpathSync(r);if(!gt(t,o))throw new Error("Tool path escapes the bound workspace through a link.");let s=ie.resolve(o,ie.relative(r,n));if(!gt(t,s))throw new Error("Tool path escapes the bound workspace through a link.");return{root:t,candidate:s}}i($u,"resolveRealToolPath");function Un(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=ie.resolve(e,n);if(!gt(e,t))throw new Error("Tool path escapes the bound workspace.");let r=$u(e,t);if(es(t,e)||es(r.candidate,r.root))throw new Error("Secret-bearing paths are unavailable to remote Agents.");return t}i(Un,"resolveToolPath");function ns(){return{beforeToolExecute:i(async()=>!0,"beforeToolExecute")}}i(ns,"remoteRunEvents");function qu(e,n,t){if(!ls.includes(e))return;if(e==="mcp_search"){let g=n.server;if(typeof g!="string"||t.mcp[g]===void 0)throw new Error("MCP search requires an explicitly admitted server.");return}let r=n.id;if(typeof r!="string")throw new Error("MCP calls require a canonical capability id.");let o=/^mcp:([^:]+):(tool|resource|prompt):(.+)$/.exec(r);if(!o)throw new Error("MCP capability id is invalid.");let[,s,d,u]=o,m=t.mcp[s??""]??[];if(d==="tool"&&!m.includes(u??""))throw new Error("MCP tool is not admitted by the remote policy.");if(d!=="tool"&&!m.includes(u??""))throw new Error("MCP capability is not admitted by the remote policy.")}i(qu,"authorizeMcp");function Ku(e){return{async resolveReadablePath(n){return Un(e,n)??e},async stageOutput(n){let t=Xn(),r=ie.basename(n).replace(/[^A-Za-z0-9._-]/g,"_")||"output",o=ie.join(e,".kodax-a2a-staging",`${t}-${r}`);return await as(ie.dirname(o),{recursive:!0}),{stagingId:t,path:Un(e,o)??o}}}}i(Ku,"workspaceBroker");function ts(e,n){return{kind:"tool",name:`runtime-remote-policy:${e.bindingId}`,async beforeTool(t,r){try{if(e.workspaceByteLimit!==void 0&&Dr(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(fr().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(Cu.has(t.name)){let d=(t.name==="grep"||t.name==="glob","path");Un(n,t.input[d])}qu(t.name,t.input,e.toolPolicy);let s=e.remoteContracts.get(t.name);if(s){let d=await s.authorizeCall(t.input,{workspaceAccess:e.toolPolicy.workspace,allowedNetworkOrigins:e.toolPolicy.network.mode==="allowlist"?e.toolPolicy.network.origins:[],workspace:Ku(n),signal:r.abortSignal??new AbortController().signal});if(!d.allowed)throw new Error(d.reason);return{action:"rewrite",payload:{...t,input:d.input}}}return{action:"allow"}}catch(o){return{action:"block",reason:o instanceof Error?o.message:String(o)}}},async afterTool(){return e.workspaceByteLimit!==void 0&&Dr(n)>e.workspaceByteLimit?{action:"block",reason:"Remote workspace byte quota exceeded."}:{action:"allow"}}}}i(ts,"createToolGuardrail");async function rs(e,n,t){let r=await e.sessions.load(t),o=r.workspaceRoot??r.gitRoot;if(!o)throw new Error("Remote Runtime session has no bound workspace.");if(n.workspace.mode==="fixed"&&ie.resolve(o)!==n.workspace.root)throw new Error("Runtime session workspace does not match the fixed binding.");if(n.workspace.mode==="managed"&&!gt(e.managedWorkspaceRoot,o))throw new Error("Runtime session workspace is outside the managed A2A root.");return ie.resolve(o)}i(rs,"requiredWorkspaceRoot");async function is(e,n,t,r){let o=t.mode==="fixed"?t.root:e.managedWorkspaceRoot,s=await co({cwd:o,configHome:e.configHome,userOnly:!0}),d=s.loaded.find(g=>g.name===n.name&&g.source==="markdown:user"),u=s.scope.resolve(n.name);if(!d||!u||u.source!=="markdown:user"){await s.dispose();let g=s.failed.find(R=>ie.basename(R.path,".md")===n.name);throw new Error(g?.reason??`User Markdown Agent not found: ${n.name}`)}let m=ms([await ds(d.path)]);try{let g=await ps({configHome:e.configHome,workspace:t,selection:d.requestedSkills,...r===void 0?{}:r});return{scope:s.scope,loaded:d,configurationRevision:m,skills:g}}catch(g){throw await s.dispose(),g}}i(is,"localAgentResources");function os(e,n){return{ref:e,agentId:`markdown:user:${e.name}`,displayName:e.name,description:n.loaded.description,configurationRevision:n.configurationRevision,effectiveSkills:n.skills.refs,skillSetRevision:n.skills.revision}}i(os,"resolvedLocal");function gs(e){let n=new Map,t=new Map,r=i(m=>{let g=n.get(m);if(!g)throw new Error("Runtime Agent owner session is not active.");return g},"requireOwner"),o=i((m,g)=>{let R=t.get(g);if(!R||R.ownerSessionId!==m)throw new Error("Runtime Agent binding not found.");return R},"requireBinding"),s=i(async m=>{t.delete(m.bindingId),n.get(m.ownerSessionId)?.delete(m.bindingId),m.scope?.dispose(),await m.skillScriptRunner?.dispose(),await yn(m.learnedSkills,m.bindingId)},"release"),d=i(async(m,g)=>{let R=m.skillRegistry.list().filter(k=>k.source!=="learned"),a=new yt(m.skillRegistry,R),y={context:{configHome:e.configHome,protectedFormalSkillNames:m.protectedFormalSkillNames},registry:a,skills:m.effectiveSkills.filter(k=>k.source!=="learned"),release:i(async()=>{},"release")};if(m.learnedSkills===void 0||m.workspace.mode!=="fixed")return y;let p=`root_${Xn()}`,v=await fs({configHome:e.configHome,projectRoot:m.workspace.root,bindingId:p,ownerSessionRef:g});if(v===void 0)return y;let l=new dr(void 0,{projectPaths:[],userPaths:[],pluginPaths:[],builtinPath:ie.join(v.discovery.rootDir,".no-formal-skills"),learnedArea:v.discovery});try{await ar(v.store,{sessionId:g,bindingId:p}),await l.discover()}catch(k){return await yn(v,p),Z({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this root run: ${Bn(k)}`}),y}let S=new Ar(a,l);try{for(let k of S.list())k.source!=="learned"||k.learned===void 0||await Zi(v.store,{sessionId:g,bindingId:p,capabilityId:k.learned.capabilityId,revision:k.learned.revision,fingerprint:k.learned.fingerprint})}catch(k){return await yn(v,p),Z({source:"runtime:learned-skills",level:"warn",message:`Learned usage receipts disabled for this root run: ${Bn(k)}`}),y}let b=S.list().filter(k=>k.source==="learned"&&k.learned!==void 0).map(k=>({name:k.name,source:"learned",revision:k.learned.fingerprint}));return{context:{configHome:e.configHome,protectedFormalSkillNames:m.protectedFormalSkillNames,learnedSkillBindingId:p,admitLearnedSkillInvocation:i(async k=>({invocationId:(await eo(v.store,{sessionId:g,ownerSessionRef:g,capabilityId:k.capabilityId,expectedRevision:k.revision,expectedFingerprint:k.fingerprint,bindingId:p})).invocationId}),"admitLearnedSkillInvocation"),completeLearnedSkillOutcomes:i(async k=>{await no(v.store,{...k,sessionId:g,bindingId:p})},"completeLearnedSkillOutcomes")},registry:S,skills:[...m.effectiveSkills.filter(k=>k.source!=="learned"),...b],release:i(async()=>{try{await ar(v.store,{sessionId:g,bindingId:p})}catch(k){Z({source:"runtime:learned-skills",level:"warn",message:`Learned Skill outcome reconciliation failed: ${Bn(k)}`})}finally{await yn(v,p)}},"release")}},"prepareLearnedSkillRun"),u=i(async(m,g)=>{try{let R=await g();return{...R,result:R.result.finally(m.release)}}catch(R){throw await m.release(),R}},"withLearnedSkillRelease");return{async resolveLocal(m){let g=xr(m.workspace),R=await is(e,m.ref,g);try{return os(m.ref,R)}finally{R.scope.dispose()}},async openOwnerSession(){let m=Xn();return n.set(m,new Set),{ownerSessionId:m}},async bindDefault(m){let g=r(m.ownerSessionId),R=xr(m.workspace),a=Qo(m.toolPolicy),y=Jo(m.workspaceByteLimit),p=Xn(),v=await ps({configHome:e.configHome,workspace:R,bindingId:p,ownerSessionRef:m.ownerSessionId}),l=Object.keys(a.skillScripts).length>0,S=Yo({policy:a,hasSkills:v.refs.length>0,hasSkillScripts:l}),b=l?await e.createSkillScriptRunner?.({registry:v.registry,admissions:a.skillScripts,workspaceAccess:a.workspace,network:a.network,workspaceByteLimit:y}):void 0;if(l&&!b)throw await Qe(v.learnedSkills,p),new Error("Runtime isolated Skill script backend is unavailable.");let k=Ve(a),T=Ve(R),c=Ve({kind:"runtime-default",profileId:m.profileId,toolPolicyRevision:k,workspaceBindingRevision:T,skillSetRevision:v.revision,provider:e.defaultProvider,model:e.defaultModel,tools:S.tools,workspaceByteLimit:y});if(m.expectedExecutionPolicyRevision&&m.expectedExecutionPolicyRevision!==c)throw await b?.dispose(),await Qe(v.learnedSkills,p),new Error("Runtime default execution policy revision changed.");let w={ownerSessionId:m.ownerSessionId,bindingId:p,kind:"runtime-default",executionPolicyRevision:c,toolPolicyRevision:k,workspaceBindingRevision:T,workspace:R,toolPolicy:a,effectiveTools:S.tools,effectiveSkills:v.refs,skillSetRevision:v.revision,skillRegistry:v.registry,protectedFormalSkillNames:v.protectedFormalSkillNames,skillScriptRunner:b,remoteContracts:S.contracts,toolRegistrations:S.registrations,workspaceByteLimit:y,...v.learnedSkills===void 0?{}:{learnedSkills:v.learnedSkills}};return t.set(p,w),g.add(p),{ownerSessionId:m.ownerSessionId,bindingId:p,executionPolicyRevision:c,toolPolicyRevision:k,workspaceBindingRevision:T,skillSetRevision:v.revision,effectiveSkills:v.refs,effectiveTools:S.tools}},async startDefault(m){let g=o(m.ownerSessionId,m.bindingId);if(g.kind!=="runtime-default")throw new Error("Runtime Agent binding kind mismatch.");if(g.executionPolicyRevision!==m.expectedExecutionPolicyRevision)throw new Error("Runtime default execution policy revision changed.");let R=await rs(e,g,m.sessionId),a=await d(g,m.sessionId);return u(a,()=>e.runs.start({sessionId:m.sessionId,input:m.input,permissionBroker:m.permissionBroker,agentContext:m.agentContext,options:{context:{executionCwd:R,gitRoot:R,managedTaskWorkspaceDir:R,...a.context,toolVisibilityPolicy:i(y=>g.effectiveTools.includes(y.name),"toolVisibilityPolicy"),skillRegistry:a.registry,skillScriptRunner:g.skillScriptRunner,assertReadablePath:i(y=>{Un(R,y)},"assertReadablePath"),skillsPrompt:Zo(a.skills,a.registry)},skillDynamicContext:{disable:!0},guardrails:[ts(g,R)],events:ns()}}))},async bindLocal(m){let g=r(m.ownerSessionId),R=xr(m.workspace),a=Qo(m.toolPolicy),y=Jo(m.workspaceByteLimit),p=Xn(),v=await is(e,m.ref,R,{bindingId:p,ownerSessionRef:m.ownerSessionId}),l=os(m.ref,v);if(m.expectedConfigurationRevision&&m.expectedConfigurationRevision!==l.configurationRevision)throw v.scope.dispose(),await Qe(v.skills.learnedSkills,p),new Error("User Markdown Agent configuration revision changed.");let S=Yo({declared:v.loaded.effectiveTools,policy:a,hasSkills:v.skills.refs.length>0,hasSkillScripts:Object.keys(a.skillScripts).length>0}),b=Object.keys(a.skillScripts).length>0,k=b?await e.createSkillScriptRunner?.({registry:v.skills.registry,admissions:a.skillScripts,workspaceAccess:a.workspace,network:a.network,workspaceByteLimit:y}):void 0;if(b&&!k)throw v.scope.dispose(),await Qe(v.skills.learnedSkills,p),new Error("Runtime isolated Skill script backend is unavailable.");let T=Ve(a),c=Ve(R),w=Ve({kind:"local-agent",profileId:m.profileId,configurationRevision:l.configurationRevision,toolPolicyRevision:T,workspaceBindingRevision:c,skillSetRevision:v.skills.revision,tools:S.tools,workspaceByteLimit:y});if(m.expectedExecutionPolicyRevision&&m.expectedExecutionPolicyRevision!==w)throw await k?.dispose(),v.scope.dispose(),await Qe(v.skills.learnedSkills,p),new Error("Local Agent execution policy revision changed.");let x=v.scope.resolve(m.ref.name)?.agent;if(!x)throw await k?.dispose(),v.scope.dispose(),await Qe(v.skills.learnedSkills,p),new Error(`User Markdown Agent not found: ${m.ref.name}`);let E={ownerSessionId:m.ownerSessionId,bindingId:p,kind:"local-agent",executionPolicyRevision:w,toolPolicyRevision:T,workspaceBindingRevision:c,workspace:R,toolPolicy:a,effectiveTools:S.tools,effectiveSkills:v.skills.refs,skillSetRevision:v.skills.revision,skillRegistry:v.skills.registry,protectedFormalSkillNames:v.skills.protectedFormalSkillNames,skillScriptRunner:k,remoteContracts:S.contracts,toolRegistrations:S.registrations,...v.skills.learnedSkills===void 0?{}:{learnedSkills:v.skills.learnedSkills},workspaceByteLimit:y,scope:v.scope,loadedAgent:v.loaded,agent:x,configurationRevision:v.configurationRevision};return t.set(p,E),g.add(p),{...l,ownerSessionId:m.ownerSessionId,bindingId:p,executionPolicyRevision:w,toolPolicyRevision:T,workspaceBindingRevision:c,effectiveTools:S.tools}},async startLocal(m){let g=o(m.ownerSessionId,m.bindingId);if(g.kind!=="local-agent"||!g.agent||!g.scope)throw new Error("Runtime Agent binding kind mismatch.");let R=g.agent,a=g.scope;if(g.configurationRevision!==m.expectedConfigurationRevision)throw new Error("User Markdown Agent configuration revision changed.");if(g.executionPolicyRevision!==m.expectedExecutionPolicyRevision)throw new Error("Local Agent execution policy revision changed.");let y=await rs(e,g,m.sessionId),p=await d(g,m.sessionId),v=typeof R.instructions=="string"?R.instructions:R.instructions({});return u(p,()=>e.runs.start({sessionId:m.sessionId,input:m.input,permissionBroker:m.permissionBroker,agentContext:m.agentContext,options:{...R.provider?{provider:R.provider}:{},...R.model?{modelOverride:R.model}:{},...R.effort?{effort:R.effort}:{},context:{executionCwd:y,gitRoot:y,managedTaskWorkspaceDir:y,...p.context,systemPromptOverride:v,agentScope:a,toolVisibilityPolicy:i(l=>g.effectiveTools.includes(l.name),"toolVisibilityPolicy"),skillRegistry:p.registry,skillScriptRunner:g.skillScriptRunner,assertReadablePath:i(l=>{Un(y,l)},"assertReadablePath"),skillsPrompt:Zo(p.skills,p.registry)},skillDynamicContext:{disable:!0},guardrails:[ts(g,y)],events:ns()}}))},async prepareWorkspace(m){let g=o(m.ownerSessionId,m.bindingId);if(g.workspace.mode==="fixed")return g.workspace.root;if(!/^[a-f0-9]{32,64}$/.test(m.contextKey))throw new Error("Managed Runtime workspace context key is invalid.");let R=ie.join(e.managedWorkspaceRoot,"contexts",m.contextKey);return await as(R,{recursive:!0}),R},async releaseBinding(m){r(m.ownerSessionId),await s(o(m.ownerSessionId,m.bindingId))},async closeOwnerSession(m){let g=r(m);for(let R of[...g])await s(o(m,R));n.delete(m)}}}i(gs,"createRuntimeAgentBindingService");import{randomUUID as Xu}from"node:crypto";import*as ht from"node:net";var Rs="127.0.0.1",Bu=/^[a-f0-9]{32}$/,Uu=500,Wu=128;async function hs(e){let n=Xu().replace(/-/g,""),t=new Set,r=ht.createServer(d=>{t.add(d),d.on("close",()=>t.delete(d)),d.on("error",()=>d.destroy()),d.end(`${n}
|
|
10
|
+
`)});r.on("error",e.onError),await Ju(r);let o=r.address();if(o===null||typeof o=="string")throw await ys(r),new Error("Runtime Actor owner liveness did not bind a TCP endpoint.");r.unref();let s;return{id:n,port:o.port,close(){if(s)return s;let d=(async()=>{for(let u of t)u.destroy();t.clear(),await ys(r)})();return s=d,d.catch(()=>{s===d&&(s=void 0)}),d}}}i(hs,"createRuntimeActorOwnerLiveness");async function ws(e){if(zu(e.pid))return!1;if(e.livenessId===void 0||e.livenessPort===void 0||!Bu.test(e.livenessId)||!Number.isSafeInteger(e.livenessPort)||e.livenessPort<=0||e.livenessPort>65535)return!0;try{return await Gu(e.livenessPort,e.livenessId)}catch(n){return Rt(n)!=="ECONNREFUSED"}}i(ws,"isRuntimeActorOwnerAlive");function zu(e){try{return process.kill(e,0),!1}catch(n){return Rt(n)==="ESRCH"}}i(zu,"isPidDefinitelyDead");function Gu(e,n){return new Promise((t,r)=>{let o=ht.createConnection({host:Rs,port:e}),s="",d=!1,u=setTimeout(()=>g(void 0),Uu);u.unref?.();let m=i(()=>{clearTimeout(u),o.off("data",R),o.off("end",a),o.off("error",y),o.destroy()},"cleanup"),g=i((p,v)=>{d||(d=!0,m(),v?r(v):p===void 0?r(new Error("Timed out probing Runtime Actor owner liveness.")):t(p))},"settle"),R=i(p=>{s+=p.toString("utf8"),Buffer.byteLength(s)>Wu&&g(!1)},"onData"),a=i(()=>g(s.trim()===n),"onEnd"),y=i(p=>g(void 0,p),"onError");o.on("data",R),o.once("end",a),o.once("error",y)})}i(Gu,"probe");function Ju(e){return new Promise((n,t)=>{let r=i(()=>{e.off("listening",o),e.off("error",s)},"cleanup"),o=i(()=>{r(),n()},"onListening"),s=i(d=>{r(),t(d)},"onError");e.once("listening",o),e.once("error",s),e.listen({host:Rs,port:0,exclusive:!0})})}i(Ju,"listen");function ys(e){return new Promise((n,t)=>{try{e.close(r=>{if(r&&Rt(r)!=="ERR_SERVER_NOT_RUNNING"){t(r);return}n()})}catch(r){if(Rt(r)==="ERR_SERVER_NOT_RUNNING"){n();return}t(r)}})}i(ys,"closeServer");function Rt(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}i(Rt,"errorCode");import{createHash as Vu}from"node:crypto";function Is(e){let n=e.userSkillsRoot===void 0?[]:[Qi({learnedAreaRoot:e.rootDir,learnedAreaKind:"global",userSkillsRoot:e.userSkillsRoot})],t=or({rootDir:e.rootDir,clientIdentity:vs(e.defaultClientIdentity),proposalStores:e.proposalStores,actionDrivers:n}),r,o=i(()=>(r??=t.initialize(),r),"ensureReady"),s=i(u=>{let m=vs(u),g=or({rootDir:e.rootDir,clientIdentity:m,proposalStores:e.proposalStores,actionDrivers:n});return Ss(g,o)},"forClient"),d=Ss(t,o);return Object.assign(d,{forClient:s})}i(Is,"createRuntimeLearningOwner");function _e(e,n){let t=e;return typeof t.forClient=="function"?t.forClient(n):e}i(_e,"bindRuntimeLearningClient");function vs(e){return`client_${Vu("sha256").update(e).digest("hex").slice(0,32)}`}i(vs,"learningClientFileKey");function Ss(e,n){let t,r=i(()=>(t??=n?.()??e.initialize(),t),"ensureReady");return{list:i(async o=>(await r(),e.list(o)),"list"),get:i(async o=>(await r(),e.get(o)),"get"),getSnapshot:i(async()=>(await r(),e.getSnapshot()),"getSnapshot"),events:i(async o=>(await r(),e.events(o)),"events"),subscribe:i(o=>Qu(r(),e,o),"subscribe"),acknowledge:i(async o=>{await r(),await e.acknowledge(o)},"acknowledge"),snooze:i(async(o,s)=>{await r(),await e.snooze(o,s)},"snooze"),reject:i(async o=>{await r(),await hn(e,o,s=>e.reject(o,s))},"reject"),disable:i(async o=>{await r(),await hn(e,o,s=>e.disable(o,s))},"disable"),rollback:i(async o=>{await r(),await hn(e,o,s=>e.rollback(o,s))},"rollback"),promote:i(async(o,s)=>{await r(),await hn(e,o,d=>e.promote(o,s,d))},"promote"),review:i(async o=>{await r(),await hn(e,o,s=>e.review(o,s))},"review"),trust:i(async o=>{await r(),await hn(e,o,s=>e.trust(o,s))},"trust")}}i(Ss,"createInitializedFacade");async function hn(e,n,t){let r=await e.get(n);await t({authority:"explicit_user",expectedRevision:r.revision,...r.schemaVersion===2?{expectedFingerprint:r.artifact.fingerprint}:{}})}i(hn,"withExplicitUserAuthority");function Qu(e,n,t){return{[Symbol.asyncIterator](){let r=!1,o,s=e.then(()=>{if(!r)return o=n.subscribe(t)[Symbol.asyncIterator](),o});return{async next(){let d=await s;return r||!d?{done:!0,value:void 0}:d.next()},async return(){return r=!0,o?.return?.()??{done:!0,value:void 0}}}}}}i(Qu,"subscribeWhenReady");import{randomUUID as St}from"node:crypto";var Yu=new Set(["session.created","session.loaded","session.settings.updated","session.notice.appended","session.rewound","session.active_entry.updated","session.compacted","run.queued","run.started","run.updated","run.progress","run.input.queued","run.input.delivered","turn.started","turn.completed","turn.failed","assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","user_input.requested","user_input.resolved","permission.requested","permission.resolved","permission.grant.changed","workflow.started","workflow.updated","workflow.finished","context.compaction.started","context.compaction.stats","context.compaction.finished","context.compaction.messages","context.compaction.ended","context.compaction.skipped","context.budget.snapshot","tool.exposure.planned","child_activity.finished","provider.retry","provider.recovery","provider.cache.diagnostics","repo_intelligence.trace","todo.updated","todo.warning","sidecar.message","run.completed","run.failed","run.cancelled","run.interrupted","artifact.created","config.effective","runtime.warning"]),Zu=new Set(["run.queued","run.started","run.updated","run.completed","run.failed","run.cancelled","run.interrupted"]);function Cr(e){if(!z(e))return Wn("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"||!Yu.has(e.type))return Wn("Runtime event envelope is malformed or has an unknown type.");if((e.type==="assistant.delta"||e.type==="thinking.delta")&&(!z(e.payload)||typeof e.payload.text!="string"))return Wn(`${e.type} requires a string text payload.`);if(Zu.has(e.type)&&!tc(e.payload))return Wn(`${e.type} requires a RuntimeRunStatus payload.`);let n=ec(e.type,e.payload);return n!==void 0?Wn(`${e.type} ${n}`):{ok:!0,event:{id:e.id,seq:e.seq,time:e.time,sessionId:e.sessionId,runId:e.runId,...typeof e.turnId=="string"?{turnId:e.turnId}:{},type:e.type,payload:e.payload}}}i(Cr,"parseRuntimeEvent");function ec(e,n){if(e==="session.created")return Me(n,["id","title"])?void 0:"requires a RuntimeSession payload.";if(e==="session.loaded")return Me(n,["id","title"])||Me(n,["provider","sessionId"])?void 0:"requires a RuntimeSession or provider session payload.";if(e==="session.settings.updated")return z(n)&&typeof n.sessionId=="string"&&Number.isSafeInteger(n.revision)&&z(n.settings)&&z(n.patch)?void 0:"requires a session settings update payload.";if(e==="thinking.finished")return z(n)&&typeof n.thinking=="string"?void 0:"requires a string thinking payload.";if(e==="tool.started")return z(n)&&Me(n.tool,["id","name"])?void 0:"requires a tool descriptor payload.";if(e==="tool.progress")return z(n)&&(Me(n.update,["id","message"])||typeof n.toolName=="string"&&typeof n.partialJson=="string")?void 0:"requires a tool progress payload.";if(e==="tool.sandbox"){let t=z(n)&&z(n.update)?n.update:void 0,r=t&&z(t.observation)?t.observation:void 0;return typeof t?.id=="string"&&r?.version===1&&(r.state==="not_selected"||r.state==="fallback"&&(r.reason==="not_ready"||r.reason==="prepare_failed"||r.reason==="backend_failed")&&r.execution==="normal_permission_policy"||r.state==="applied"&&(r.backend==="windows-restricted-user"||r.backend==="macos-seatbelt"||r.backend==="linux-bubblewrap"||r.backend==="unsupported")&&r.policyId==="kodax-workspace-shell-v1")?void 0:"requires a sandbox observation payload."}if(e==="tool.finished")return z(n)&&Me(n.result,["id","name","content"])?void 0:"requires a tool result payload.";if(e==="run.progress")return nc(n);if(e==="run.input.queued")return z(n)&&rc(n.input,"queued")?void 0:"requires a queued interrupt input payload.";if(e==="run.input.delivered")return z(n)&&Array.isArray(n.inputs)&&n.inputs.length>0&&n.inputs.every(ic)?void 0:"requires an ordered interrupt input batch.";if(e==="context.compaction.finished")return z(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 z(n)&&Array.isArray(n.items)?void 0:"requires an items array payload.";if(e==="user_input.requested"){let t=z(n)&&Me(n,["id","sessionId","runId","kind","createdAt","expiresAt"])&&Number.isSafeInteger(n.revision),r=z(n)&&Me(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 z(n)&&typeof n.requestId=="string"?void 0:"requires a requestId payload.";if(e==="permission.requested")return Me(n,["id","sessionId","runId","toolName","createdAt"])?void 0:"requires a RuntimePermissionRequest payload.";if(e==="permission.grant.changed")return z(n)&&(n.action==="created"||n.action==="revoked"||n.action==="expired")&&z(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 Me(n,["sessionId","turnId"])?void 0:"requires a turn payload.";if(e==="workflow.started"||e==="workflow.updated"||e==="workflow.finished")return z(n)?void 0:"requires a workflow event payload.";if(e==="context.budget.snapshot"||e==="tool.exposure.planned"||e==="provider.cache.diagnostics")return z(n)?void 0:"requires an object payload.";if(e==="runtime.warning")return z(n)&&typeof n.message=="string"?void 0:"requires a warning message payload."}i(ec,"validateKnownRuntimeEventPayload");function nc(e){return!z(e)||typeof e.kind!="string"?"requires a discriminated progress payload.":e.kind==="managed_task_status"?z(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"?z(e.info)?void 0:"requires iteration info.":e.kind==="mid_turn_user_messages"?Array.isArray(e.contents)&&e.contents.every(n=>typeof n=="string")?void 0:"requires string contents.":e.kind==="stream_end"||e.kind==="complete"?void 0:"has an unknown progress kind."}i(nc,"validateRunProgressPayload");function tc(e){return z(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"&&typeof e.phase=="string"}i(tc,"isRuntimeRunStatusPayload");function rc(e,n){return z(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&e.delivery==="interrupt"&&(e.state==="queued"||e.state==="delivered"||e.state==="terminal")&&(n===void 0||e.state===n)&&typeof e.contentPreview=="string"&&typeof e.queuedAt=="string"&&(e.deliveredAt===void 0||typeof e.deliveredAt=="string")}i(rc,"isRuntimeInterruptInputStatus");function ic(e){return z(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&typeof e.queuedAt=="string"&&typeof e.deliveredAt=="string"&&ks(e.input)}i(ic,"isDeliveredInterruptInput");function ks(e){return Array.isArray(e)?e.length>0&&e.every(ks):!z(e)||typeof e.type!="string"?!1:e.type==="text"?typeof e.text=="string":e.type==="artifact_ref"?typeof e.artifactId=="string":e.type==="image"||e.type==="file"?typeof e.path=="string":e.type==="video"&&typeof e.path=="string"&&typeof e.mediaType=="string"}i(ks,"isRuntimeInput");function Me(e,n){return z(e)&&n.every(t=>typeof e[t]=="string")}i(Me,"hasStrings");function Wn(e){return{ok:!1,error:e}}i(Wn,"invalid");function z(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(z,"isRecord");var qe="kodax-runtime-daemon",Mr=1,wn=["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"],oc=["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"],Ps=["agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile"],sc=new Set([...wn,...Ps]),ac=new Set(oc),dc=new Set(["credential.register","credential.revoke","credential.supply","host_tool.register","host_tool.revoke","host_tool.complete"]),uc=new Set(["event","credential.request","host_tool.invoke","runtime.warning"]),cc=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:qe,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{},...r!==void 0?{operation:r}:{}}}i(wt,"createRuntimeDaemonRequest");function Ye(e){return ac.has(e)}i(Ye,"isRuntimeDaemonMutationMethod");function xs(e){return Ye(e)||dc.has(e)}i(xs,"isRuntimeDaemonDrainingSensitiveMethod");function Es(e){return Ps.includes(e)}i(Es,"isRuntimeDaemonRetiredMethod");function Ds(e,n){return{protocol:qe,version:1,kind:"response",id:e,result:n===void 0?null:n}}i(Ds,"createRuntimeDaemonSuccessResponse");function Ke(e,n){return{protocol:qe,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}i(Ke,"createRuntimeDaemonErrorResponse");function zn(e,n){return{protocol:qe,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}i(zn,"createRuntimeDaemonNotification");function Or(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"&&sc.has(n.method)&&(n.operation===void 0||pc(n.operation))}i(Or,"isRuntimeDaemonRequest");function vn(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")}i(vn,"isRuntimeDaemonSuccessResponse");function Sn(e){if(!vt(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&mc(n.error)}i(Sn,"isRuntimeDaemonErrorResponse");function Gn(e){if(!vt(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&uc.has(n.method)}i(Gn,"isRuntimeDaemonNotification");function lc(e){return Or(e)||vn(e)||Sn(e)||Gn(e)}i(lc,"isRuntimeDaemonFrame");function Ts(e){let n;try{n=JSON.parse(e)}catch{return bs("Frame is not valid JSON.")}return lc(n)?n:bs("Frame does not match the runtime daemon protocol.")}i(Ts,"parseRuntimeDaemonFrame");function bs(e){return Ke({code:"invalid_frame",message:e})}i(bs,"invalidFrame");function vt(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===qe&&n.version===1}i(vt,"isFrameBase");function mc(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&cc.has(n.code)&&typeof n.message=="string"}i(mc,"isRuntimeDaemonError");function pc(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.operationId=="string"&&n.operationId.length>0&&typeof n.journalEpoch=="string"&&n.journalEpoch.length>0}i(pc,"isRuntimeDaemonOperationEnvelope");var Fs=256,As=1e3,en=class extends Error{constructor(t,r){super(r);this.path=t;this.name="RuntimeTransportBoundaryError"}path;static{i(this,"RuntimeTransportBoundaryError")}code="invalid_transport_value"},_r=class extends Error{static{i(this,"RuntimeDaemonUpgradeRequiredError")}code="daemon_upgrade_required";capability="actorControlPlane";restartRequired=!0;constructor(){super("Runtime daemon does not advertise actorControlPlane v1. Upgrade KodaX and restart the daemon before using Runtime Actor control."),this.name="RuntimeDaemonUpgradeRequiredError"}},It=class extends Error{static{i(this,"RuntimePermissionScopeUpgradeRequiredError")}code="daemon_upgrade_required";capability="runtimeAutoModeGuardrail";requiredVersion=3;restartRequired=!0;constructor(){super("Runtime daemon does not advertise concrete permission scopes. Upgrade KodaX and restart the daemon before requesting grants for a concrete tool call."),this.name="RuntimePermissionScopeUpgradeRequiredError"}};function Cs(e){let n=e.activeAgentTurns??e.activeAgentTasks??[];return{...e,activeAgentTurns:n,activeAgentTasks:n}}i(Cs,"normalizeRuntimeDaemonPreflight");function kt(e){let n=i((l,S,b)=>e.transport.request(l,S,Ye(l)?Rc(e.journalEpoch,b):void 0),"request"),t=i(()=>{let l=e.capabilities?.actorControlPlane;if(typeof l!="object"||l===null||!("version"in l)||l.version!==1||!("methodNamespace"in l)||l.methodNamespace!=="agents")return new _r},"actorControlPlaneError"),r=i(()=>{let l=e.capabilities?.runtimeAutoModeGuardrail;if(typeof l!="object"||l===null||!("version"in l)||typeof l.version!="number"||l.version<3||!("concretePermissionMatchers"in l)||l.concretePermissionMatchers!==!0||!("permissionGrantSuggestions"in l)||l.permissionGrantSuggestions!==!0)return new It},"concretePermissionScopeError"),o=new Map,s=new Map,d=new Map,u=new Set,m={state:"connected",connectionId:`connection_${St().replace(/-/g,"")}`,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},reconnectable:!1},g=e.transport.subscribeLifecycle?.(l=>{m={...l,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{}};for(let S of u)try{S(m)}catch(b){Z({source:"runtime.daemon.client",level:"warn",message:"Runtime connection lifecycle listener failed.",detail:{errorType:b instanceof Error?b.name:typeof b}})}}),R=e.transport.subscribe(l=>{l.method==="credential.request"?gc(l.params,o,n).catch(()=>Ms("credential request")):l.method==="host_tool.invoke"&&yc(l.params,s,d,n).catch(()=>Ms("host tool invocation"))}),a=!1,y=!1,p,v=i(()=>{if(y)return Promise.resolve();if(p)return p;let l=(async()=>{a||(g?.close(),R.close(),u.clear(),o.clear(),s.clear(),d.clear(),a=!0),await e.transport.close?.(),y=!0})();return p=l,l.finally(()=>{p===l&&(p=void 0)}).catch(()=>{}),l},"closeClient");return{identity:e.identity,capabilities:e.capabilities,...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{},sessions:{create(l={}){let{operation:S,...b}=l;return n("session.create",b,S)},load(l){return n("session.load",{sessionId:l})},list(l){return n("session.list",l)},transcript(l){return n("session.transcript",{sessionId:l})},transcriptPage(l){return n("session.transcript.page",l)},transcriptEntryChunk(l){return n("session.transcript.entryChunk",l)},transcriptSearch(l){return n("session.transcript.search",l)},observe(l,S){return wc(e.transport,n,l,S)},fork(l){return n("session.fork",l)},getSettings(l){return n("session.settings.get",{sessionId:l})},getSettingsVersioned(l){return n("session.settings.getVersioned",{sessionId:l})},getAutoModeStats(l){return n("session.autoMode.getStats",{sessionId:l})},async updateSettings(l,S){let b=await this.getSettingsVersioned(l);return(await this.updateSettingsVersioned(l,S,{expectedRevision:b.revision})).value},updateSettingsVersioned(l,S,b){return n("session.settings.updateVersioned",{sessionId:l,patch:S,expectedRevision:b.expectedRevision},b)},appendNotice(l){return n("session.notice.append",l)},rewind(l){return n("session.rewind",l)},setActiveEntry(l){return n("session.active_entry.set",l)},compact(l){return n("session.compact",l)},async archive(l){await n("session.archive",{sessionId:l})},async unarchive(l){await n("session.unarchive",{sessionId:l})},async delete(l){await n("session.delete",{sessionId:l})}},runs:{async start(l){let{operation:S,...b}=l;In(b,"run.start");let k=ve(await n("run.start",b,S)),T=we(k,"runId"),c=we(k,"sessionId"),w=bc(k,"turnId");return{runId:T,sessionId:c,...w!==void 0?{turnId:w}:{},result:Ls(n,T)}},async submitInput(l){let{operation:S,...b}=l;return In(b,"run.input.submit"),n("run.input.submit",b,S)},await(l){return Ls(n,l)},get(l){return n("run.get",{runId:l})},list(l){return n("run.list",l)},async abort(l){await n("run.abort",{runId:l})},async setModel(l,S){await n("run.model.set",{runId:l,model:S})},async setProvider(l,S){await n("run.provider.set",{runId:l,provider:S})},async setReasoning(l,S){await n("run.reasoning.set",{runId:l,reasoning:S})}},events:{subscribe(l,S){return hc(e.transport,n,l,S)},replay(l){return n("event.replay",l).then(S=>{if(!Array.isArray(S))throw new Error("Expected daemon event replay array.");return S.flatMap(b=>{let k=js(b);return k===void 0?[]:[k]})})}},permissions:{request(l){if(l.toolInput!==void 0){let S=r();if(S)return Promise.reject(S)}return n("permission.request",l)},listPending(l){return n("permission.list",l)},respond(l,S,b){return n("permission.respond",{requestId:l,decision:S,...b?.runId!==void 0?{runId:b.runId}:{}})},listGrants(){return n("permission.grants.list")},revokeGrant(l,S){return n("permission.grants.revoke",{grantId:l,expectedRevision:S})}},userInputs:{listPending(l){return n("user_input.listPending",l)},respond(l,S,b){return n("user_input.respond",{requestId:l,answer:S,...b?.expectedRevision!==void 0?{expectedRevision:b.expectedRevision}:{},...b?.runId!==void 0?{runId:b.runId}:{}})},dismiss(l,S){return n("user_input.dismiss",{requestId:l,...S?.expectedRevision!==void 0?{expectedRevision:S.expectedRevision}:{},...S?.runId!==void 0?{runId:S.runId}:{}})}},credentials:{async register(l,S){let b=`credlease_${St().replace(/-/g,"")}`;o.set(b,S);try{return await n("credential.register",{leaseId:b,providers:l.providers,...l.expiresAt!==void 0?{expiresAt:l.expiresAt}:{}})}catch(k){throw o.delete(b),k}},async resume(l,S){o.set(l,S);try{let b=await n("credential.get",{leaseId:l});if(b==null)throw Object.assign(new Error(`Credential lease is unavailable after Runtime reconnect: ${l}`),{code:"credential_unavailable"});return ve(b)}catch(b){throw o.delete(l),b}},async revoke(l){let S=await n("credential.revoke",{leaseId:l});return S&&o.delete(l),S}},hostTools:{async register(l,S){Os(l,S);let b=`hostlease_${St().replace(/-/g,"")}`;s.set(b,S);try{return await n("host_tool.register",{leaseId:b,tools:l})}catch(k){throw s.delete(b),k}},async resume(l,S){s.set(l,S);try{let b=await n("host_tool.get",{leaseId:l});if(b==null)throw Object.assign(new Error(`Host tool lease is unavailable after Runtime reconnect: ${l}`),{code:"host_tool_unavailable"});let k=ve(b);return Os(k.tools,S),k}catch(b){throw s.delete(l),b}},async getInvocation(l){return Ze(await n("host_tool.invocation.get",{invocationId:l}))},async revoke(l){let S=await n("host_tool.revoke",{leaseId:l});return S&&s.delete(l),S}},operations:{get(l){return n("operation.get",l)}},workflows:{list(l){return n("workflow.list",l)},get(l){return n("workflow.get",{runId:l}).then(Ze)},subscribe(l,S){return Sc(e.transport,n,l,S)},pause(l){return n("workflow.pause",{runId:l})},resume(l){return n("workflow.resume",{runId:l})},stop(l){return n("workflow.stop",{runId:l})}},learning:{list(l){return n("learning.list",l??{})},get(l){return n("learning.get",{nameOrSlug:l})},getSnapshot(){return n("learning.snapshot")},events(l){return n("learning.events",{...l!==void 0?{afterRevision:l}:{}})},subscribe(l){return fc(n,l?.afterRevision??0)},async acknowledge(l){await n("learning.acknowledge",{nameOrSlug:l})},async snooze(l,S){await n("learning.snooze",{nameOrSlug:l,until:S})},async reject(l){await n("learning.reject",{nameOrSlug:l})},async disable(l){await n("learning.disable",{nameOrSlug:l})},async rollback(l){await n("learning.rollback",{nameOrSlug:l})},async promote(l,S){await n("learning.promote",{nameOrSlug:l,scope:S})},async review(l){await n("learning.review",{nameOrSlug:l})},async trust(l){await n("learning.trust",{nameOrSlug:l})}},config:{read(){return n("config.read")},patch(l){return n("config.patch",{patch:l})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(l){return n("model.list",l)},commands(l){return n("command.list",l!==void 0?{projectRoot:l}:void 0)},resolveCommand(l){return n("command.resolve",l)},skills(l){return n("skill.list",l)},describeSkill(l){return n("skill.describe",l)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(l){return n("provider.custom.upsert",{config:l})},deleteCustomProvider(l){return n("provider.custom.remove",{name:l})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(l){return n("mcp.server.get",{name:l}).then(Ze)},validateServer(l,S){return n("mcp.server.validate",{name:l,config:S})},upsertServer(l,S){return n("mcp.server.upsert",{name:l,config:S})},deleteServer(l){return n("mcp.server.delete",{name:l})},reloadServers(){return n("mcp.server.reload")},listTools(l){return n("mcp.tool.list",l)}},artifacts:{create(l){return n("artifact.create",l)},get(l){return n("artifact.get",{artifactId:l}).then(Ze)},delete(l){return n("artifact.delete",{artifactId:l})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(l,S){return In(l,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:l,...S?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:S.expectedConfigurationRevision}:{},...S?.expectedManagementOwner!==void 0?{expectedManagementOwner:S.expectedManagementOwner}:{}})},setEnabled(l,S,b){return n("agentRegistrations.setEnabled",{agentId:l,enabled:S,...b?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:b.expectedConfigurationRevision}:{},...b?.expectedManagementOwner!==void 0?{expectedManagementOwner:b.expectedManagementOwner}:{},...b?.claimOwner!==void 0?{claimOwner:b.claimOwner}:{}}).then(Ze)},remove(l,S){return n("agentRegistrations.remove",{agentId:l,...S?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:S.expectedConfigurationRevision}:{},...S?.expectedManagementOwner!==void 0?{expectedManagementOwner:S.expectedManagementOwner}:{}})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(l){return n("agents.listDispatchable",l)},describe(l,S){return n("agents.describe",{agentId:l,query:S}).then(Ze)},preflight(l){return n("agents.preflight",l)},tree(l){let S=t();return S?Promise.reject(S):n("agents.tree",{sessionId:l})},detail(l,S){let b=t();return b?Promise.reject(b):n("agents.detail",{sessionId:l,actorPath:S})},spawn(l,S){let b=t();return b?Promise.reject(b):(In(S,"agents.spawn"),n("agents.spawn",{sessionId:l,input:S}))},async send(l,S,b,k){let T=t();if(T)throw T;await n("agents.send",{sessionId:l,actorPath:S,content:b,...k!==void 0?{classification:k}:{}})},followup(l,S,b,k){let T=t();return T?Promise.reject(T):n("agents.followup",{sessionId:l,actorPath:S,objective:b,...k?.expectedRevision!==void 0?{expectedRevision:k.expectedRevision}:{}})},async interrupt(l,S,b){let k=t();if(k)throw k;await n("agents.interrupt",{sessionId:l,actorPath:S,...b!==void 0?{reason:b}:{}})},output(l,S,b){let k=t();return k?Promise.reject(k):n("agents.output",{sessionId:l,actorPath:S,...b!==void 0?{turnId:b}:{}})},events(l,S){let b=t();return b?Promise.reject(b):n("agents.events",{sessionId:l,...S!==void 0?{afterSequence:S}:{}})},wait(l,S,b){let k=t();return k?Promise.reject(k):n("agents.wait",{sessionId:l,...S!==void 0?{afterSequence:S}:{},...b!==void 0?{timeoutMs:b}:{}}).then(Ze)}},status:{snapshot(){return n("daemon.status")},preflight(){return n("daemon.preflight").then(l=>Cs(l))}},daemon:{inspect(){return n("daemon.management.get").then(l=>{let S=l;return{...S,preflight:Cs(S.preflight)}})},stopForInline(l){let{operation:S,...b}=l;return n("daemon.rollbackToInline",b,S)}},diagnostics:{latestContextBudget(l){return n("context.budget.get",l)},latestToolExposure(l){return n("tool.exposure.preview",l)},latestProviderCacheDiagnostic(l){return n("provider.cache.diagnostics.get",l)}},connection:{current(){return m},subscribe(l){return u.add(l),l(m),{close(){u.delete(l)}}}},close:v}}i(kt,"createRuntimeDaemonClient");async function*fc(e,n){let t=n;for(;;){let r=await e("learning.events",{afterRevision:t});if(r.length===0){await new Promise(o=>setTimeout(o,100));continue}for(let o of r)t=o.sequence,yield o}}i(fc,"pollRuntimeLearningEvents");function Ms(e){Z({source:"runtime.daemon.client",level:"warn",message:`Failed to deliver ${e} result to the Runtime daemon.`})}i(Ms,"reportReverseBridgeFailure");async function gc(e,n,t){let r=ve(e),o=we(r,"requestId"),s=we(r,"leaseId"),d=n.get(s);if(!d){await t("credential.supply",{requestId:o,error:"credential_lease_unavailable"});return}try{let u=await d({leaseId:s,provider:we(r,"provider"),sessionId:we(r,"sessionId"),runId:we(r,"runId")});await t("credential.supply",{requestId:o,...u!==void 0?{credential:u}:{error:"credential_unavailable"}})}catch{await t("credential.supply",{requestId:o,error:"credential_broker_failed"})}}i(gc,"answerCredentialRequest");async function yc(e,n,t,r){let o=ve(e),s=we(o,"invocationId"),d=we(o,"leaseId"),u=we(o,"toolName"),m=n.get(d)?.[u];if(!m){await r("host_tool.complete",{invocationId:s,error:"host_tool_unavailable"});return}let g=t.get(s);if(!g){let R=Promise.resolve().then(()=>m({invocationId:s,leaseId:d,toolName:u,sessionId:we(o,"sessionId"),runId:we(o,"runId"),input:ve(o.input)}));g={promise:R,settled:!1},t.set(s,g);let a=g;R.finally(()=>{a.settled=!0,_s(t)}).catch(()=>{}),_s(t)}try{await r("host_tool.complete",{invocationId:s,result:await g.promise})}catch{try{await r("host_tool.complete",{invocationId:s,error:"host_tool_failed"})}catch(R){throw new Error("Failed to report the Host Tool outcome to the Runtime daemon.",{cause:R})}}}i(yc,"answerHostToolInvocation");function Os(e,n){let t=new Set(e.map(r=>r.name));if(t.size!==e.length||e.length===0)throw new Error("Host tool descriptors must have unique, non-empty names.");for(let r of t)if(typeof n[r]!="function")throw new Error(`Missing host tool handler: ${r}`)}i(Os,"validateHostToolHandlers");function _s(e){if(!(e.size<=As))for(let[n,t]of e){if(e.size<=As)return;t.settled&&e.delete(n)}}i(_s,"pruneHostToolResults");function Rc(e,n){let t=n?.journalEpoch??e;if(t!==void 0)return{operationId:n?.operationId??`op_${St().replace(/-/g,"")}`,journalEpoch:t}}i(Rc,"createOperationEnvelope");function hc(e,n,t,r){return Hs(e,n,"event.subscribe",{filter:t},o=>{Lr(o,r)})}i(hc,"subscribeToDaemonEvents");async function wc(e,n,t,r){let o=!1,s,d=!1,u=[],m=e.subscribe(g=>{if(o||g.method!=="event")return;let R=ve(g.params);if(s===void 0){if(!vc(R.event,t))return;u.length>=Fs?d=!0:u.push(R);return}R.subscriptionId===s&&Lr(R.event,r)});try{let g=ve(await n("session.observe",{sessionId:t}));if(s=we(g,"subscriptionId"),d)throw Object.assign(new Error("Runtime session observation handshake exceeded its event buffer; full resync is required."),{code:"resync_required"});let R=ve(g.snapshot);for(let a of u.splice(0))a.subscriptionId===s&&Lr(a.event,r);return{snapshot:R,close(){o||(o=!0,u.length=0,m.close(),s!==void 0&&n("event.unsubscribe",{subscriptionId:s}).catch(()=>{}))}}}catch(g){throw o=!0,u.length=0,m.close(),s!==void 0&&n("event.unsubscribe",{subscriptionId:s}).catch(()=>{}),g}}i(wc,"observeDaemonSession");function vc(e,n){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&e.sessionId===n}i(vc,"isRuntimeEventForSession");function Lr(e,n){let t=js(e);t!==void 0&&n(t)}i(Lr,"deliverRuntimeEvent");function js(e){let n=Cr(e);if(!n.ok){Z({source:"runtime.daemon.client",level:"warn",message:`Ignored malformed Runtime event: ${n.error}`});return}return n.event}i(js,"parseRuntimeEventForClient");function Sc(e,n,t,r){return Hs(e,n,"workflow.subscribe",{filter:t},o=>{r(o)})}i(Sc,"subscribeToDaemonWorkflowEvents");function Hs(e,n,t,r,o){let s=!1,d,u=[],m=e.subscribe(R=>{if(s||R.method!=="event")return;let a=ve(R.params);if(d===void 0){u.length>=Fs&&u.shift(),u.push(a);return}a.subscriptionId===d&&o(a.event)}),g=n(t,r).then(R=>{if(d=we(ve(R),"subscriptionId"),s){Ns(n,t,d),u.length=0;return}for(let a of u.splice(0))a.subscriptionId===d&&o(a.event)}).catch(R=>{throw u.length=0,m.close(),R});return g.catch(()=>{}),{ready:g,close(){s=!0,m.close(),d!==void 0&&Ns(n,t,d)}}}i(Hs,"subscribeToDaemonNotification");function Ls(e,n){return e("run.await",{runId:n}).then(Ic)}i(Ls,"requestRuntimeRunResult");function Ic(e){let n=ve(e),t=Object.prototype.hasOwnProperty.call(n,"error")?kc(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}i(Ic,"deserializeRuntimeRunResult");function kc(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=ve(e),t=new Error(typeof n.message=="string"&&n.message.length>0?n.message:"Runtime run failed.");return typeof n.name=="string"&&n.name.length>0&&(t.name=n.name),typeof n.stack=="string"&&n.stack.length>0&&(t.stack=n.stack),t}i(kc,"deserializeRuntimeError");function Ns(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}i(Ns,"unsubscribeRemote");function Ze(e){return e??void 0}i(Ze,"nullToUndefined");function ve(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}i(ve,"requireRecord");function we(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw new Error(`Expected daemon response string field: ${n}`);return t}i(we,"requireStringField");function bc(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw new Error(`Expected daemon response optional string field: ${n}`);return t}}i(bc,"optionalStringField");function In(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 en(n,`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new en(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 en(n,`${n} is not transport-safe: cyclic values cannot cross a Runtime boundary.`);let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null){let o=r?.constructor?.name??"object";throw new en(n,`${n} is not transport-safe: ${o} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((o,s)=>In(o,`${n}[${s}]`,t));else for(let[o,s]of Object.entries(e))In(s,`${n}.${o}`,t);t.delete(e)}i(In,"assertRuntimeTransportSafe");import{randomUUID as Nm}from"node:crypto";import Fm from"node:os";import di from"node:path";import{randomUUID as Fr}from"node:crypto";import*as j from"node:fs";import le from"node:path";function nn(e,n="default"){let t=jr(n),r=le.resolve(e),o=le.join(r,"runtime","daemon",t);return{profile:t,configHome:r,rootDir:o,stateFile:le.join(o,"daemon.json"),lockFile:le.join(o,"daemon.lock"),tokenFile:le.join(o,"daemon.token"),logFile:le.join(o,"daemon.log"),runsDir:le.join(o,"runs"),eventsDir:le.join(o,"events"),ownerPolicyFile:le.join(o,"owner-policy.json"),ownerPolicyLockFile:le.join(o,"owner-policy.lock")}}i(nn,"resolveRuntimeDaemonPathsFromConfigHome");function Pc(e,n){let t=i(r=>{let o=le.resolve(r);return process.platform==="win32"?o.toLowerCase():o},"resolveIdentity");return t(e)===t(n)}i(Pc,"isSameRuntimeDaemonPath");function kn(e,n){let t=le.resolve(e);return Pc(n,le.join(t,".kodax"))?t:le.resolve(n)}i(kn,"resolveRuntimeDaemonEndpointScope");function De(e){if(!j.existsSync(e.ownerPolicyFile))return{mode:"daemon",revision:0,updatedAt:new Date(0).toISOString()};try{let n=JSON.parse(j.readFileSync(e.ownerPolicyFile,"utf8"));if(qr(n)&&(n.mode==="daemon"||n.mode==="inline")&&typeof n.revision=="number"&&Number.isSafeInteger(n.revision)&&n.revision>=0&&typeof n.updatedAt=="string")return{mode:n.mode,revision:n.revision,updatedAt:n.updatedAt}}catch{}throw new Error("Runtime owner policy is corrupt; refusing to choose an owner.")}i(De,"readRuntimeOwnerPolicy");function Ks(e,n,t){Se(e);let r=Xe(e);if(!r)throw new Error("Runtime owner policy update is already in progress.");try{if(j.existsSync(e.lockFile))throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Et(e,n,t,r.nonce)}finally{tn(e,r)}}i(Ks,"updateRuntimeOwnerPolicy");function Xs(e,n,t){Se(e);let r=Xe(e);if(!r)throw Pt("Runtime owner rollback is already in progress.");try{let o=oe(e.lockFile);if(o?.kind!=="daemon"||o.runtimeId!==n)throw Pt("Runtime daemon owner changed before rollback commit.");if(De(e).mode!=="daemon")throw Pt("Runtime owner policy changed before rollback commit.");return Et(e,"inline",t,r.nonce)}finally{tn(e,r)}}i(Xs,"commitRuntimeDaemonRollbackPolicy");function xt(e){Se(e);let n=Xe(e);if(!n)throw new Error("Runtime owner transition is already in progress.");try{if(j.existsSync(e.lockFile))throw new Error("Cannot enable Runtime daemon ownership while an owner lock exists.");let t=De(e);return t.mode==="daemon"?t:Et(e,"daemon",t.revision,n.nonce)}finally{tn(e,n)}}i(xt,"enableRuntimeDaemonOwner");function Bs(e,n,t=!1){Se(e);let r=Xe(e);if(!r)throw new Error("Runtime owner transition is already in progress.");try{let o=De(e);if(o.mode!=="inline"){if(!t)throw new Error("Coder inline ownership requires explicit enableRollback: true.");if(j.existsSync(e.lockFile))throw new Error("Cannot enable inline rollback while a Coder owner lock exists.");Et(e,"inline",o.revision,r.nonce)}if(j.existsSync(e.lockFile))throw new Error(`Coder profile "${e.profile}" already has an owner.`);let s=Js(e,n);if(!s)throw new Error(`Coder profile "${e.profile}" already has an owner.`);return s}finally{tn(e,r)}}i(Bs,"acquireRuntimeInlineOwner");function Et(e,n,t,r){let o=De(e);if(o.revision!==t)throw Pt(`Runtime owner policy conflict: expected ${t}, current ${o.revision}.`);let s={mode:n,revision:o.revision+1,updatedAt:new Date().toISOString()},d=`${e.ownerPolicyFile}.${process.pid}.${r}.tmp`;try{let u=j.openSync(d,"wx",384);try{j.writeFileSync(u,`${JSON.stringify(s,null,2)}
|
|
11
|
+
`,"utf8"),j.fsyncSync(u)}finally{j.closeSync(u)}return j.renameSync(d,e.ownerPolicyFile),s}finally{j.rmSync(d,{force:!0})}}i(Et,"writeRuntimeOwnerPolicy");function Pt(e){let n=new Error(e);return n.code="conflict",n}i(Pt,"runtimeOwnerPolicyConflict");function Xe(e,n=!0){let t=Fr(),r={runtimeId:`owner-transition-${t}`,pid:process.pid,createdAt:new Date().toISOString()},o;try{return o=j.openSync(e.ownerPolicyLockFile,"wx",384),j.writeFileSync(o,`${JSON.stringify({...r,nonce:t})}
|
|
12
|
+
`,"utf8"),j.fsyncSync(o),{nonce:t,owner:r}}catch(s){if($r(s)&&s.code==="EEXIST")return n&&xc(e)?Xe(e,!1):void 0;throw s}finally{o!==void 0&&j.closeSync(o)}}i(Xe,"tryAcquireRuntimeOwnerCoordination");function xc(e){let n=$s(e);if(!n||Ec(n.owner.pid))return!1;try{let t=$s(e);return!t||t.nonce!==n.nonce?!1:(j.unlinkSync(e.ownerPolicyLockFile),!0)}catch{return!1}}i(xc,"removeAbandonedRuntimeOwnerCoordination");function $s(e){try{let n=JSON.parse(j.readFileSync(e.ownerPolicyLockFile,"utf8"));return!qr(n)||typeof n.nonce!="string"||!Zs(n)||!n.runtimeId.startsWith("owner-transition-")?void 0:{nonce:n.nonce,owner:n}}catch{return}}i($s,"readRuntimeOwnerCoordinationHandle");function Ec(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return $r(n)&&n.code==="EPERM"}}i(Ec,"isRuntimeOwnerProcessAlive");function Dc(e){return oe(e.ownerPolicyLockFile)}i(Dc,"readRuntimeOwnerCoordinator");function tn(e,n){try{let t=JSON.parse(j.readFileSync(e.ownerPolicyLockFile,"utf8"));qr(t)&&t.nonce===n.nonce&&j.unlinkSync(e.ownerPolicyLockFile)}catch{}}i(tn,"releaseRuntimeOwnerCoordination");function Dt(e){if(De(e).mode!=="daemon")throw new Error(`Runtime daemon auto-start is disabled for profile "${e.profile}" by inline rollback policy.`)}i(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}i(jr,"normalizeRuntimeDaemonProfile");function Se(e){j.mkdirSync(e.rootDir,{recursive:!0}),j.mkdirSync(e.runsDir,{recursive:!0}),j.mkdirSync(e.eventsDir,{recursive:!0})}i(Se,"ensureRuntimeDaemonDirectories");function Us(){return`dt_${Fr().replace(/-/g,"")}`}i(Us,"createRuntimeDaemonToken");function Ws(e,n){Se(e),j.writeFileSync(e.tokenFile,`${n}
|
|
13
|
+
`,{encoding:"utf8",mode:384}),process.platform!=="win32"&&j.chmodSync(e.tokenFile,384)}i(Ws,"writeRuntimeDaemonToken");function Jn(e){try{let n=j.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}i(Jn,"readRuntimeDaemonToken");function bn(e,n){Se(e);let t=`${e.stateFile}.${process.pid}.${Fr()}.tmp`;try{let r=j.openSync(t,"wx",384);try{j.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
14
|
+
`,"utf8"),j.fsyncSync(r)}finally{j.closeSync(r)}j.renameSync(t,e.stateFile)}finally{j.rmSync(t,{force:!0})}}i(bn,"writeRuntimeDaemonState");function Ie(e,n,t,r){Se(e);let o={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};j.appendFileSync(e.logFile,`${JSON.stringify(o)}
|
|
15
|
+
`,"utf8")}i(Ie,"appendRuntimeDaemonLog");function zs(e,n=200){if(!j.existsSync(e.logFile))return[];let t=[],r=j.readFileSync(e.logFile,"utf8").split(/\r?\n/).filter(o=>o.trim().length>0);for(let o of r.slice(-n))try{let s=JSON.parse(o);Mc(s)&&t.push(s)}catch(s){t.push({time:new Date().toISOString(),level:"warn",message:`Skipped malformed daemon log line: ${s instanceof Error?s.message:String(s)}`})}return t}i(zs,"readRuntimeDaemonLog");function Gs(e){if(j.existsSync(e.stateFile))try{let n=JSON.parse(j.readFileSync(e.stateFile,"utf8"));return Cc(n)?n:void 0}catch{return}}i(Gs,"readRuntimeDaemonState");function Js(e,n){Se(e);let t;try{return t=j.openSync(e.lockFile,"wx",384),j.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
16
|
+
`,"utf8"),j.fsyncSync(t),{file:e.lockFile,owner:n}}catch(r){if($r(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&j.closeSync(t)}}i(Js,"tryAcquireRuntimeDaemonLock");function Tt(e){let n={ownerPolicyLockFile:le.join(le.dirname(e.file),"owner-policy.lock")},t=Xe(n);if(!t)return!1;try{return Qs(e)}finally{tn(n,t)}}i(Tt,"releaseRuntimeDaemonLock");function Vs(e,n){let t=Xe(e);if(!t)return!1;try{let r=oe(n.file);return Hr(r,n.owner)?(Ac(e),Qs(n)):!1}finally{tn(e,t)}}i(Vs,"releaseRuntimeDaemonOwnership");function Qs(e){let n=oe(e.file);return Hr(n,e.owner)?(j.unlinkSync(e.file),!0):!1}i(Qs,"unlinkRuntimeDaemonLockIfOwned");function oe(e){if(j.existsSync(e))try{let n=JSON.parse(j.readFileSync(e,"utf8"));return Zs(n)?n:void 0}catch{return}}i(oe,"readRuntimeDaemonLockOwner");function Ys(e,n,t){Se(e);let r=Pn(t),o=oe(e.lockFile);if(r==="healthy")return t.state&&o!==void 0&&Nr(o,t.state)?{kind:"attach",state:t.state,health:r}:{kind:"unhealthy",health:"mismatch",...t.state!==void 0?{state:t.state}:{},...o!==void 0?{lockOwner:o}:{}};if(r==="unhealthy"&&t.state!==void 0&&Nc(t.state.status)&&t.pidAlive&&o!==void 0)return{kind:"wait",lockOwner:o,state:t.state,health:"missing"};if(r==="unhealthy"||r==="mismatch")return{kind:"unhealthy",health:r,...t.state!==void 0?{state:t.state}:{},...o!==void 0?{lockOwner:o}:{}};let s=r==="stale"?"stale":"missing",d=Xe(e);if(!d){let u=oe(e.lockFile)??Dc(e);return u?{kind:"wait",lockOwner:u,...t.state!==void 0?{state:t.state}:{},health:s}:{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}try{return De(e).mode!=="daemon"?{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}:Tc(e,n,t,s)}finally{tn(e,d)}}i(Ys,"claimRuntimeDaemonOwnership");function Tc(e,n,t,r){let o=oe(e.lockFile);if(r==="stale"){if(o!==void 0&&(t.observedLockOwner!==void 0&&!Hr(o,t.observedLockOwner)||t.state!==void 0&&!Nr(o,t.state)))return bt(o,t,r);qs(e)}else if(o!==void 0){if(t.observedLockOwner!==void 0&&!Nr(o,t.observedLockOwner))return bt(o,t,r);if(t.lockOwnerPidAlive===!1)qs(e);else return bt(o,t,r)}if(r==="missing"){let u=oe(e.lockFile);if(u!==void 0)return{kind:"wait",lockOwner:u,...t.state!==void 0?{state:t.state}:{},health:r}}let s=Js(e,n);if(s)return{kind:"claim",lock:s,health:r};let d=oe(e.lockFile);return d?bt(d,t,r):{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}i(Tc,"claimAvailableRuntimeDaemonOwnership");function bt(e,n,t){return{kind:"wait",lockOwner:e,...n.state!==void 0?{state:n.state}:{},health:t}}i(bt,"waitForRuntimeOwner");function Nr(e,n){return e.runtimeId===n.runtimeId&&e.pid===n.pid}i(Nr,"sameRuntimeOwner");function Hr(e,n){return e===void 0||n===void 0?e===n:e.runtimeId===n.runtimeId&&e.pid===n.pid&&e.createdAt===n.createdAt&&e.kind===n.kind}i(Hr,"sameRuntimeLockOwner");function qs(e){j.rmSync(e.lockFile,{force:!0}),j.rmSync(e.stateFile,{force:!0}),j.rmSync(e.tokenFile,{force:!0})}i(qs,"removeRuntimeDaemonOwnershipFiles");function Ac(e){j.rmSync(e.stateFile,{force:!0}),j.rmSync(e.tokenFile,{force:!0})}i(Ac,"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"}i(Pn,"classifyRuntimeDaemonHealth");function Cc(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"&&Lc(n.status)&&(n.configHome===void 0||typeof n.configHome=="string")&&(n.lastError===void 0||typeof n.lastError=="string")}i(Cc,"isRuntimeDaemonState");function Mc(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&Oc(n.level)&&typeof n.message=="string"&&(n.data===void 0||_c(n.data))}i(Mc,"isRuntimeDaemonLogEntry");function Oc(e){return e==="info"||e==="warn"||e==="error"}i(Oc,"isRuntimeDaemonLogLevel");function _c(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(_c,"isPlainRecord");function Zs(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.runtimeId=="string"&&typeof n.pid=="number"&&typeof n.createdAt=="string"}i(Zs,"isRuntimeDaemonLockOwner");function Lc(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}i(Lc,"isRuntimeDaemonStatus");function Nc(e){return e==="starting"||e==="draining"||e==="stopping"}i(Nc,"isRuntimeDaemonTransitionStatus");function $r(e){return e instanceof Error&&"code"in e}i($r,"isNodeFileError");function qr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(qr,"isRecord");import{createHash as Fc,randomUUID as xn}from"node:crypto";import*as Tn from"node:fs/promises";import*as Vn from"node:net";import jc from"node:os";import ea from"node:path";import{StringDecoder as Kr}from"node:string_decoder";var Hc=8*1024*1024,Dn=class extends Error{constructor(t,r,o){super(t);this.code=r;this.data=o;this.name="RuntimeDaemonTransportError"}code;data;static{i(this,"RuntimeDaemonTransportError")}};function Br(e){return e instanceof Dn}i(Br,"isRuntimeDaemonTransportError");function An(e="default",n){let t=jr(e),r=n===void 0?t:`${t}-${$c(ea.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:ea.join(jc.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}i(An,"defaultRuntimeDaemonEndpoint");function $c(e){return Fc("sha256").update(e).digest("hex").slice(0,12)}i($c,"shortPathHash");function ta(e,n={}){let t="",r=0,o=new Kr("utf8"),s=n.maxFrameBytes??Hc;if(!Number.isSafeInteger(s)||s<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let d=i(m=>{Kc(m,s),m.trim()&&e(Ts(m))},"consumeLine"),u=i(m=>{t+=m,r+=Buffer.byteLength(m,"utf8")},"append");return{push(m){for(typeof m=="string"?(u(o.end()),o=new Kr("utf8"),u(m)):u(o.write(m));;){let g=t.indexOf(`
|
|
17
|
+
`);if(g<0)break;let R=t.slice(0,g).replace(/\r$/,""),a=t.slice(0,g+1);t=t.slice(g+1),r-=Buffer.byteLength(a,"utf8"),d(R)}ia(r,s)},flush(){u(o.end()),o=new Kr("utf8");let m=t.trim();t="",r=0,m.length>0&&d(m)}}}i(ta,"createRuntimeDaemonFrameParser");async function Le(e,n={}){let t=Vn.createConnection(e.path);t.setEncoding("utf8");let r=new Promise(l=>{t.once("close",()=>l())});await Xc(t,n.connectTimeoutMs);let o=!1,s,d=`transport_${xn().replace(/-/g,"")}`,u=xn().replace(/-/g,"")+xn().replace(/-/g,""),m=`connection_${xn().replace(/-/g,"")}`,g=new Set,R=new Set,a={state:"connected",connectionId:m,reconnectable:!1},y=i((l,S)=>{if(a.state!=="disconnected"){a={state:"disconnected",connectionId:m,reason:l,reconnectable:S};for(let b of R)try{b(a)}catch{Z({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport lifecycle listener failed."})}}},"disconnect"),p=new Map,v=ta(l=>{if(vn(l)){let S=p.get(l.id);if(!S)return;p.delete(l.id),S.resolve(l.result);return}if(Sn(l)){if(!l.id)return;let S=p.get(l.id);if(!S)return;p.delete(l.id),S.reject(new Dn(l.error.message,l.error.code,l.error.data));return}if(Gn(l))for(let S of g)try{S(l)}catch{Z({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport notification listener failed."})}},{maxFrameBytes:n.maxFrameBytes});return t.on("data",l=>{try{v.push(l)}catch(S){o=!0;let b=En(S);y(b.message,!0),At(p,b),t.destroy(b)}}),t.on("close",()=>{o=!0,y("Runtime daemon transport closed.",!0),At(p,new Error("Runtime daemon transport closed."))}),t.on("error",l=>{o=!0,y(l.message,!0),At(p,l)}),{request(l,S,b){if(o)return Promise.reject(new Error("Runtime daemon transport is closed."));let k=`req_${xn().replace(/-/g,"").slice(0,12)}`,T=l==="initialize"||l==="runtime.initialize"?qc(S,d,u):S,c=b??(s!==void 0&&Ye(l)?{operationId:`op_${xn().replace(/-/g,"")}`,journalEpoch:s}:void 0),w=wt(k,l,T,c),x;try{x=JSON.stringify(w)}catch(A){return Promise.reject(new Dn(`Runtime daemon request params are not JSON-serializable: ${En(A).message}`,"invalid_params"))}let E=new Promise((A,f)=>{p.set(k,{resolve:A,reject:f})});return t.write(`${x}
|
|
18
|
+
`),E.then(A=>{if(l==="initialize"||l==="runtime.initialize"){let f=Ct(A);typeof f?.journalEpoch=="string"&&(s=f.journalEpoch)}return A})},subscribe(l){return g.add(l),{close(){g.delete(l)}}},subscribeLifecycle(l){return R.add(l),l(a),{close(){R.delete(l)}}},async close(){let l;if(!o){o=!0,y("Runtime daemon transport closed by client.",!1);try{v.flush()}catch(S){l=En(S)}t.end(),t.destroy(),At(p,new Error("Runtime daemon transport closed."))}if(await r,R.clear(),l!==void 0)throw l}}}i(Le,"createRuntimeDaemonSocketClientTransport");function qc(e,n,t){let r=Ct(e)??{},o=Ct(r.capabilities)??{},s=Ct(r.clientInfo)??{name:"kodax-transport"};return{...r,capabilities:{...o,operationDeduplication:!0},clientInfo:{...s,instanceId:typeof s.instanceId=="string"?s.instanceId:n,instanceSecret:typeof s.instanceSecret=="string"?s.instanceSecret:t}}}i(qc,"withDurableOperationCapability");function Ct(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}i(Ct,"asRecord");async function ra(e){await Uc(e.endpoint);let n=Vn.createServer(),t=new Set,r=new Set,o=!1;if(n.on("connection",s=>{if(o){s.destroy();return}t.add(s);let d=!1,u=i(a=>{if(s.destroyed)return;let y;try{y=JSON.stringify(a)}catch(p){let v=Ke({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${En(p).message}`},a.kind==="response"||a.kind==="error"?a.id:void 0);y=JSON.stringify(v)}s.write(`${y}
|
|
19
|
+
`)},"send"),m=e.createDispatcher(a=>u(a));r.add(m);let g=ta(a=>{if(Or(a)){m.handle(a).then(u,y=>{u(Ke({code:"internal_error",message:En(y).message}))});return}if(Sn(a)){u(a);return}u(Ke({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),R=i(a=>{if(d)return;d=!0;let y=En(a);u(Ke({code:"invalid_frame",message:y.message,...Br(y)&&y.data!==void 0?{data:y.data}:{}})),s.end()},"rejectInvalidFrame");s.on("data",a=>{if(!d)try{g.push(a)}catch(y){R(y)}}),s.on("end",()=>{try{g.flush()}catch(a){R(a)}}),s.on("close",()=>{t.delete(s),r.delete(m),m.close()}),s.on("error",()=>{s.destroy()})}),await Bc(n,e.endpoint.path),e.endpoint.kind==="unix")try{await Tn.chmod(e.endpoint.path,384)}catch(s){throw await na(n),s}return{endpoint:e.endpoint,connectionCount(){return t.size},unref(){n.unref()},async close(){if(!o){o=!0;for(let s of r)s.close();r.clear();for(let s of t)s.destroy();t.clear(),await na(n)}}}}i(ra,"createRuntimeDaemonSocketServer");function Kc(e,n){ia(Buffer.byteLength(e,"utf8"),n)}i(Kc,"assertFrameSize");function ia(e,n){if(!(e<=n))throw new Dn(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}i(ia,"assertFrameByteSize");function Xc(e,n=2e3){return new Promise((t,r)=>{let o=setTimeout(()=>{s(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);o.unref?.();let s=i(()=>{clearTimeout(o),e.off("connect",d),e.off("error",u)},"cleanup"),d=i(()=>{s(),t()},"onConnect"),u=i(m=>{s(),r(m)},"onError");e.once("connect",d),e.once("error",u)})}i(Xc,"waitForConnect");function Bc(e,n){return new Promise((t,r)=>{let o=i(()=>{e.off("listening",s),e.off("error",d)},"cleanup"),s=i(()=>{o(),t()},"onListening"),d=i(u=>{o(),r(u)},"onError");e.once("listening",s),e.once("error",d),e.listen(n)})}i(Bc,"waitForListen");async function Uc(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 Wc(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}}i(Uc,"prepareUnixSocketEndpoint");function Wc(e){return new Promise((n,t)=>{let r=Vn.createConnection(e),o=setTimeout(()=>{s(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);o.unref?.();let s=i(()=>{clearTimeout(o),r.off("connect",d),r.off("error",u)},"cleanup"),d=i(()=>{s(),r.end(),r.destroy(),n(!0)},"onConnect"),u=i(m=>{if(s(),r.destroy(),Xr(m)&&(m.code==="ECONNREFUSED"||m.code==="ENOENT")){n(!1);return}t(m)},"onError");r.once("connect",d),r.once("error",u)})}i(Wc,"unixSocketAcceptsConnections");function na(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}i(na,"closeNetServer");function At(e,n){for(let t of e.values())t.reject(n);e.clear()}i(At,"rejectPending");function En(e){return e instanceof Error?e:new Error(String(e))}i(En,"normalizeTransportError");function Xr(e){return e instanceof Error&&"code"in e}i(Xr,"isNodeFileError");async function Qn(e,n={}){let t=Gs(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=oe(e.lockFile),o=(n.isPidAlive??sa)(t.pid),s=rn(t),d=Jn(e),u;try{u=await(n.createTransport?n.createTransport(s):Le(s,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let m=u.request("initialize",{profile:t.profile,connectionPurpose:"probe",...d!==void 0?{token:d}:{}});m.catch(()=>{});let g=await zc(m,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:o,endpointReachable:!0,identityMatches:Gc(g,t)&&Jc(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(m){return Br(m)&&m.code==="unauthorized"?{state:t,pidAlive:o,endpointReachable:!0,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}:{state:t,pidAlive:o,endpointReachable:!1,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}}finally{await u?.close?.()}}i(Qn,"observeRuntimeDaemonHealth");async function Ur(e,n,t={}){let r=await Qn(e,t),o=r.state?void 0:oe(e.lockFile),s=o?{...r,observedLockOwner:o,lockOwnerPidAlive:(t.isPidAlive??sa)(o.pid)}:r;return Ys(e,n,s)}i(Ur,"resolveRuntimeDaemonOwnership");function rn(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}i(rn,"runtimeDaemonEndpointFromState");function sa(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Vc(n)&&n.code==="EPERM"}}i(sa,"isRuntimeDaemonPidAlive");async function zc(e,n,t){let r;try{return await Promise.race([e,new Promise((o,s)=>{r=setTimeout(()=>s(new Error(t)),n),r.unref?.()})])}finally{r!==void 0&&clearTimeout(r)}}i(zc,"withTimeout");function Gc(e,n){let t=oa(e),r=oa(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}i(Gc,"daemonIdentityMatchesState");function Jc(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}i(Jc,"runtimeDaemonLockMatchesState");function oa(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}i(oa,"asRecord");function Vc(e){return e instanceof Error&&"code"in e}i(Vc,"isNodeProcessError");import Qa from"node:path";import{randomUUID as Mn}from"node:crypto";var h={type:"string"},G={type:"boolean"},X={type:"integer"},O={type:"object",additionalProperties:!0},aa={},Te={type:"array",items:O},on={oneOf:[{type:"null"},O]},te=D({ok:G},["ok"]),ae=D({}),Ot={initialize:{params:D({profile:h,token:h,autoStart:G,endpoint:h,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:O,capabilities:O},[],!0),result:D({identity:O,capabilities:O},["identity","capabilities"],!0)},"runtime.initialize":{params:D({profile:h,token:h,autoStart:G,endpoint:h,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:O,capabilities:O},[],!0),result:D({identity:O,capabilities:O},["identity","capabilities"],!0)},ping:{params:ae,result:D({ok:G,runtimeId:h},["ok","runtimeId"])},"runtime.identity":{params:ae,result:O},"runtime.status":{params:ae,result:O},"runtime.shutdown":{params:ae,result:te},"runtime.capabilities":{params:ae,result:O},"daemon.status":{params:ae,result:O},"daemon.stop":{params:ae,result:te},"daemon.logs":{params:ae,result:O},"daemon.preflight":{params:ae,result:O},"daemon.management.get":{params:ae,result:D({runtimeId:h,revision:X,ownerPolicy:ca(),owner:gl(),preflight:O,integrations:el()},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:D({expectedRuntimeId:h,expectedRevision:X,expectedOwnerPolicyRevision:X},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:D({accepted:{type:"boolean",enum:[!0]},runtimeId:h,revision:X,ownerPolicy:ca("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:D({operationId:h,journalEpoch:h},["operationId","journalEpoch"]),result:O},"session.create":{params:il(),result:an()},"session.load":{params:D({sessionId:h},["sessionId"]),result:an()},"session.list":{params:ol(),result:pe(an())},"session.transcript":{params:D({sessionId:h},["sessionId"]),result:on},"session.transcript.page":{params:O,result:on},"session.transcript.entryChunk":{params:O,result:on},"session.transcript.search":{params:tl(),result:me(rl())},"session.observe":{params:D({sessionId:h},["sessionId"]),result:O},"session.fork":{params:yl(),result:me(an())},"session.notice.append":{params:D({sessionId:h,content:h,source:h},["sessionId","content"]),result:on},"session.rewind":{params:D({sessionId:h,selector:h},["sessionId"]),result:me(an())},"session.active_entry.set":{params:la(),result:me(an())},"session.activeEntry.set":{params:la(),result:me(an())},"session.compact":{params:Rl(),result:O},"session.archive":{params:D({sessionId:h},["sessionId"]),result:te},"session.unarchive":{params:D({sessionId:h},["sessionId"]),result:te},"session.delete":{params:D({sessionId:h},["sessionId"]),result:te},"session.settings.get":{params:D({sessionId:h},["sessionId"]),result:O},"session.settings.getVersioned":{params:D({sessionId:h},["sessionId"]),result:O},"session.autoMode.getStats":{params:D({sessionId:h},["sessionId"]),result:me(O)},"session.settings.update":{params:D({sessionId:h,patch:O},["sessionId","patch"]),result:O},"session.settings.updateVersioned":{params:D({sessionId:h,patch:O,expectedRevision:X},["sessionId","patch","expectedRevision"]),result:O},"run.start":{params:hl(),result:nl()},"run.input.submit":{params:D({sessionId:h,afterRunId:h,delivery:{type:"string",enum:["after_turn","interrupt"]},input:aa,credential:O,hostTools:O},["sessionId","afterRunId","delivery","input"]),result:O},"run.get":{params:sn(),result:ma()},"run.list":{params:wl(),result:pe(ma())},"run.await":{params:sn(),result:vl()},"run.abort":{params:sn(),result:te},"run.model.set":{params:D({runId:h,model:h},["runId"],!0),result:te},"run.provider.set":{params:D({runId:h,provider:h},["runId","provider"]),result:te},"run.reasoning.set":{params:D({runId:h,reasoning:h},["runId"],!0),result:te},"run.setModel":{params:D({runId:h,model:h},["runId"],!0),result:te},"run.setProvider":{params:D({runId:h,provider:h},["runId","provider"]),result:te},"run.setReasoning":{params:D({runId:h,reasoning:h},["runId"],!0),result:te},"event.subscribe":{params:da(Sa()),result:ua()},"event.unsubscribe":{params:D({subscriptionId:h},["subscriptionId"]),result:te},"event.replay":{params:Sl(),result:pe(Il())},"permission.list":{params:zr(),result:pe(pa())},"permission.listPending":{params:zr(),result:pe(pa())},"permission.request":{params:Ia(),result:fa()},"permission.respond":{params:D({requestId:h,runId:h,decision:fa()},["requestId","decision"]),result:G},"permission.grants.list":{params:ae,result:O},"permission.grants.revoke":{params:D({grantId:h,expectedRevision:X},["grantId","expectedRevision"]),result:G},"user_input.listPending":{params:zr(),result:pe(O)},"user_input.respond":{params:D({requestId:h,answer:aa,runId:h,expectedRevision:X},["requestId","answer"],!0),result:O},"user_input.dismiss":{params:D({requestId:h,runId:h,expectedRevision:X},["requestId"],!0),result:O},"credential.register":{params:D({leaseId:h,providers:{type:"array",items:h},expiresAt:h},["leaseId","providers"],!0),result:O},"credential.get":{params:D({leaseId:h},["leaseId"]),result:{oneOf:[O,{type:"null"}]}},"credential.revoke":{params:D({leaseId:h},["leaseId"]),result:G},"credential.supply":{params:D({requestId:h,credential:h,error:h},["requestId"],!0),result:te},"host_tool.register":{params:D({leaseId:h,tools:{type:"array",items:O}},["leaseId","tools"]),result:O},"host_tool.get":{params:D({leaseId:h},["leaseId"]),result:{oneOf:[O,{type:"null"}]}},"host_tool.invocation.get":{params:D({invocationId:h},["invocationId"]),result:{oneOf:[O,{type:"null"}]}},"host_tool.revoke":{params:D({leaseId:h},["leaseId"]),result:G},"host_tool.complete":{params:D({invocationId:h,result:O,error:h},["invocationId"],!0),result:te},"workflow.list":{params:ga(),result:Te},"workflow.get":{params:sn(),result:{oneOf:[O,{type:"null"}]}},"workflow.subscribe":{params:da(ga()),result:ua()},"workflow.unsubscribe":{params:D({subscriptionId:h},["subscriptionId"]),result:te},"workflow.pause":{params:sn(),result:G},"workflow.resume":{params:sn(),result:G},"workflow.stop":{params:sn(),result:G},"learning.list":{params:sl(),result:fl()},"learning.get":{params:D({nameOrSlug:h},["nameOrSlug"]),result:va()},"learning.snapshot":{params:ae,result:pl()},"learning.events":{params:D({afterRevision:X},[],!0),result:pe(ml())},"learning.acknowledge":{params:D({nameOrSlug:h},["nameOrSlug"]),result:te},"learning.snooze":{params:D({nameOrSlug:h,until:h},["nameOrSlug","until"]),result:te},"learning.reject":{params:D({nameOrSlug:h},["nameOrSlug"]),result:te},"learning.disable":{params:D({nameOrSlug:h},["nameOrSlug"]),result:te},"learning.rollback":{params:D({nameOrSlug:h},["nameOrSlug"]),result:te},"learning.promote":{params:D({nameOrSlug:h,scope:{type:"string",enum:["user"]}},["nameOrSlug","scope"]),result:te},"learning.review":{params:D({nameOrSlug:h},["nameOrSlug"]),result:te},"learning.trust":{params:D({nameOrSlug:h},["nameOrSlug"]),result:te},"config.read":{params:ae,result:O},"config.patch":{params:D({patch:O},["patch"]),result:O},"config.reload":{params:ae,result:D({ok:G,config:O},["ok","config"])},"model.list":{params:D({provider:h},[],!0),result:{oneOf:[O,Te]}},"provider.list":{params:ae,result:Te},"provider.custom.list":{params:ae,result:Te},"provider.custom.upsert":{params:D({config:O},["config"]),result:O},"provider.custom.remove":{params:D({name:h},["name"]),result:G},"mcp.server.list":{params:ae,result:O},"mcp.server.get":{params:D({name:h},["name"]),result:{oneOf:[O,{type:"null"}]}},"mcp.server.validate":{params:D({name:h,config:O},["name","config"]),result:{oneOf:[D({ok:G,config:O},["ok","config"],!0),D({ok:G,error:h},["ok","error"],!0)]}},"mcp.server.upsert":{params:D({name:h,config:O},["name","config"]),result:O},"mcp.server.delete":{params:D({name:h},["name"]),result:G},"mcp.server.remove":{params:D({name:h},["name"]),result:G},"mcp.server.reload":{params:ae,result:D({ok:G,servers:Te},["ok","servers"])},"mcp.tool.list":{params:D({server:h,forceRefresh:G},[],!0),result:Te},"extension.list":{params:ae,result:D({active:G,extensions:Te,diagnostics:O},["active","extensions"],!0)},"extension.reload":{params:ae,result:D({ok:G,active:G},["ok","active"],!0)},"command.list":{params:D({projectRoot:h},[],!0),result:Te},"command.resolve":{params:D({name:h,projectRoot:h},["name"],!0),result:on},"skill.list":{params:D({projectRoot:h,userInvocableOnly:G},[],!0),result:Te},"skill.describe":{params:D({name:h,projectRoot:h},["name"],!0),result:on},"skill.read":{params:D({name:h,projectRoot:h},["name"],!0),result:on},"artifact.create":{params:D({kind:{enum:["image","file","video"]},path:h,mediaType:h,mimeType:h,name:h,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:h},["kind","path"]),result:ya()},"artifact.get":{params:D({artifactId:h},["artifactId"]),result:me(ya())},"artifact.delete":{params:D({artifactId:h},["artifactId"]),result:G},"agentRegistrations.list":{params:ae,result:Te},"agentRegistrations.upsert":{params:D({registration:O,expectedConfigurationRevision:me(h),expectedManagementOwner:me(h)},["registration"]),result:O},"agentRegistrations.setEnabled":{params:D({agentId:h,enabled:G,expectedConfigurationRevision:me(h),expectedManagementOwner:me(h),claimOwner:h},["agentId","enabled"]),result:me(O)},"agentRegistrations.remove":{params:D({agentId:h,expectedConfigurationRevision:me(h),expectedManagementOwner:me(h)},["agentId"]),result:G},"agents.listDispatchable":{params:O,result:Te},"agents.describe":{params:D({agentId:h,query:O},["agentId","query"]),result:me(O)},"agents.preflight":{params:O,result:O},"agents.tree":{params:D({sessionId:h},["sessionId"]),result:O},"agents.detail":{params:D({sessionId:h,actorPath:h},["sessionId","actorPath"]),result:O},"agents.spawn":{params:D({sessionId:h,input:O},["sessionId","input"]),result:O},"agents.send":{params:D({sessionId:h,actorPath:h,content:h,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:te},"agents.followup":{params:D({sessionId:h,actorPath:h,objective:h,expectedRevision:X},["sessionId","actorPath","objective"],!0),result:O},"agents.interrupt":{params:D({sessionId:h,actorPath:h,reason:h},["sessionId","actorPath"],!0),result:te},"agents.output":{params:D({sessionId:h,actorPath:h,turnId:h},["sessionId","actorPath"],!0),result:O},"agents.events":{params:D({sessionId:h,afterSequence:X},["sessionId"],!0),result:Te},"agents.wait":{params:D({sessionId:h,afterSequence:X,timeoutMs:X},["sessionId"],!0),result:me(O)},"context.budget.get":{params:Wr(),result:{oneOf:[O,{type:"null"}]}},"tool.exposure.preview":{params:Wr(),result:{oneOf:[O,{type:"null"}]}},"provider.cache.diagnostics.get":{params:Wr(),result:{oneOf:[O,{type:"null"}]}}},Ra={event:D({subscriptionId:h,event:O},["subscriptionId","event"]),"credential.request":O,"host_tool.invoke":O,"runtime.warning":O},ha={protocol:qe,version:1,methods:Ot,notifications:Ra},Qc=JSON.stringify(ha,null,2);function Yc(){return wn}i(Yc,"listRuntimeDaemonSchemaMethods");function Cn(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(d=>Cn(d,n,t).length===0).length===1?[]:[`${t} must match exactly one allowed schema.`];if(e.enum!==void 0&&!e.enum.some(s=>Object.is(s,n)))return[`${t} must be one of: ${e.enum.map(String).join(", ")}.`];let r=e.type===void 0?[]:Array.isArray(e.type)?e.type:[e.type];if(r.length>0&&!r.some(s=>Zc(s,n)))return[`${t} must be ${r.join(" or ")}.`];if(typeof n=="string"&&e.maxLength!==void 0&&n.length>e.maxLength)return[`${t} must have at most ${e.maxLength} characters.`];if(Array.isArray(n)){let s=e.items;return s===void 0?[]:n.flatMap((d,u)=>Cn(s,d,`${t}[${u}]`))}if(!wa(n))return[];let o=[];for(let s of e.required??[])(!Object.prototype.hasOwnProperty.call(n,s)||n[s]===void 0)&&o.push(`${t}.${s} is required.`);for(let[s,d]of Object.entries(n)){if(d===void 0)continue;let u=e.properties?.[s];if(u!==void 0){o.push(...Cn(u,d,`${t}.${s}`));continue}e.additionalProperties===!1?o.push(`${t}.${s} is not allowed.`):typeof e.additionalProperties=="object"&&o.push(...Cn(e.additionalProperties,d,`${t}.${s}`))}return o}i(Cn,"validateRuntimeDaemonJsonSchema");function Zc(e,n){switch(e){case"array":return Array.isArray(n);case"boolean":return typeof n=="boolean";case"integer":return typeof n=="number"&&Number.isInteger(n);case"null":return n===null;case"number":return typeof n=="number"&&Number.isFinite(n);case"object":return wa(n);case"string":return typeof n=="string"}}i(Zc,"matchesJsonSchemaType");function wa(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(wa,"isJsonObject");function el(){let e=D({code:{type:"string",enum:["invalid-config","activation-failed","watcher-degraded"]},message:h,time:h},["code","message","time"]),n=D({domain:{type:"string",enum:["mcp","a2a","extensions"]},path:h,revision:h,source:{type:"string",enum:["user","legacy-user","default"]},lastReloadAt:h,diagnostic:e,watching:G},["domain","path","watching"]);return D({state:{type:"string",enum:["healthy","degraded"]},domains:{type:"array",items:n}},["state","domains"])}i(el,"integrationHealthSchema");function D(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}i(D,"objectSchema");function sn(){return D({runId:h},["runId"])}i(sn,"runIdParamsSchema");function da(e){return D({filter:e})}i(da,"filterParamsSchema");function Wr(){return D({sessionId:h,runId:h,contextKind:{type:"string",enum:["root","child"]},agentId:h},[],!0)}i(Wr,"diagnosticParamsSchema");function ua(){return D({subscriptionId:h},["subscriptionId"])}i(ua,"subscriptionSchema");function nl(){return D({runId:h,sessionId:h,turnId:h},["runId","sessionId"],!0)}i(nl,"runStartedSchema");function pe(e){return{type:"array",items:e}}i(pe,"arraySchema");function me(e){return{oneOf:[{type:"null"},e]}}i(me,"nullableSchema");function tl(){return D({sessionId:h,query:h,limit:X,role:{type:"string",enum:["user","assistant"]},scope:{type:"string",enum:["compacted","all"]}},["sessionId","query"])}i(tl,"transcriptSearchParamsSchema");function rl(){let e=D({entryId:h,logicalId:h,sourceEntryId:h,timestamp:h,role:{type:"string",enum:["user","assistant"]},source:{type:"string",enum:["user","assistant","tool","child_task"]},active:G,score:{type:"number"},snippet:h,citation:h,entryIndex:X},["entryId","timestamp","role","source","active","score","snippet","citation","entryIndex"]);return D({revision:h,hits:pe(e)},["revision","hits"])}i(rl,"transcriptSearchResultSchema");function il(){return D({sessionId:h,title:h,projectPath:h,gitRoot:h,surface:h,profileId:h,tag:h})}i(il,"createSessionParamsSchema");function an(){return D({id:h,cursor:h,title:h,gitRoot:h,workspaceRoot:h,surface:h,profileId:h,createdAt:h,msgCount:X,tag:h,projectKey:h,archived:G},["id","title"],!0)}i(an,"sessionSchema");function ol(){return D({projectRoot:h,scope:{enum:["user","managed-task-worker","all"]},includeArchived:G,limit:X,before:h,tag:h,surface:h,cursor:h})}i(ol,"sessionFilterSchema");function sl(){return D({search:h,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:X,cursor:h})}i(sl,"learningQuerySchema");function al(){return{capabilityId:h,displayName:h,slug:h,lifecycle:Gr(),revision:X,createdAt:h,updatedAt:h,source:D({kind:{enum:["learning_controller","f224_proposal","skill_learning_loop","legacy_manual"]},proposalId:h},["kind"]),lastAction:{enum:["review","trust","reject","disable","rollback","archive","restore","promote"]},artifactPath:h,previousGoodRevision:X,previousLifecycle:Gr(),diagnostics:pe(h)}}i(al,"learnedCapabilityCommonProperties");function dl(){return["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"]}i(dl,"learnedCapabilityRequired");function ul(){return D({kind:{type:"string",enum:["skill_markdown"]},relativePath:h,fingerprint:h,contentRevision:X},["kind","relativePath","fingerprint","contentRevision"])}i(ul,"learnedCapabilityArtifactSchema");function cl(){return D({maxInvocations:{type:"integer",enum:[3]},invocationCount:X,verifiedSuccesses:X,credibleNegatives:X,binding:D({bindingId:h,ownerSessionRef:h,expiresAt:h},["bindingId","ownerSessionRef","expiresAt"]),invocations:pe(ll())},["maxInvocations","invocationCount","verifiedSuccesses","credibleNegatives","invocations"])}i(cl,"learnedCapabilityCanarySchema");function ll(){return D({invocationId:h,bindingId:h,usageSessionHash:h,artifactRevision:X,artifactFingerprint:h,status:{type:"string",enum:["pending","verified_success","credible_negative","inconclusive"]},evidenceRefs:pe(h),invokedAt:h,completedAt:h},["invocationId","bindingId","status","evidenceRefs","invokedAt"])}i(ll,"learnedCapabilityInvocationSchema");function va(){let e=al(),n=ul(),t=dl(),r=D({...e,schemaVersion:{type:"integer",enum:[1]},carrier:{enum:["skill","extension","workflow_handoff"]}},t),o=D({...e,schemaVersion:{type:"integer",enum:[2]},carrier:{type:"string",enum:["skill"]},scope:D({configHomeHash:h,tenantHash:h,projectHash:h},["configHomeHash","tenantHash","projectHash"]),artifact:n,previousGoodArtifact:n,provenance:D({jobId:h,inputHash:h,decisionId:h,actionId:h},["jobId","inputHash","decisionId","actionId"]),canary:cl()},[...t,"scope","artifact","provenance","canary"]);return{oneOf:[r,o]}}i(va,"learnedCapabilitySchema");function Gr(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}i(Gr,"learningLifecycleSchema");function ml(){return D({schemaVersion:{type:"integer",enum:[1]},sequence:X,eventId:h,capabilityId:h,capabilityRevision:X,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Gr(),displayName:h,slug:h,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:h},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}i(ml,"learningEventSchema");function pl(){return D({ready:X,newlyActive:X,attention:X,active:X,revision:X},["ready","newlyActive","attention","active","revision"])}i(pl,"learningSnapshotSchema");function fl(){return D({items:pe(va()),nextCursor:h,revision:X},["items","revision"])}i(fl,"learningPageSchema");function ca(e){return D({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:X,updatedAt:h},["mode","revision","updatedAt"])}i(ca,"ownerPolicySchema");function gl(){return D({runtimeId:h,pid:X,createdAt:h,kind:{type:"string",enum:["daemon","inline"]}},["runtimeId","pid","createdAt"])}i(gl,"ownerIdentitySchema");function yl(){return D({sessionId:h,selector:h,newSessionId:h,title:h},["sessionId"])}i(yl,"forkSessionParamsSchema");function la(){return D({sessionId:h,entryId:h},["sessionId","entryId"])}i(la,"activeEntryParamsSchema");function Rl(){return D({sessionId:h,provider:h,model:h,customInstructions:h,contextWindow:X},["sessionId"])}i(Rl,"compactSessionParamsSchema");function hl(){return D({sessionId:h,prompt:h,input:{oneOf:[O,pe(O)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:O},["sessionId"],!0)}i(hl,"startRunParamsSchema");function wl(){return D({sessionId:h,phase:{oneOf:[Mt(),pe(Mt())]}})}i(wl,"runFilterSchema");function ma(){return D({runId:h,sessionId:h,turnId:h,phase:Mt(),startedAt:h,endedAt:h,provider:h,model:h,reasoning:h,error:h},["runId","sessionId","phase","startedAt","provider"],!0)}i(ma,"runStatusSchema");function vl(){return D({runId:h,sessionId:h,phase:Mt(),result:O,error:{oneOf:[h,O]}},["runId","sessionId","phase"],!0)}i(vl,"runResultSchema");function Mt(){return{enum:["queued","running","waiting_permission","waiting_user_input","completed","failed","cancelled","interrupted"]}}i(Mt,"runPhaseSchema");function Sa(){return D({sessionId:h,runId:h,type:{oneOf:[h,pe(h)]}})}i(Sa,"eventFilterSchema");function Sl(){return D({...Sa().properties??{},sinceSeq:X,limit:X})}i(Sl,"eventReplayFilterSchema");function Il(){return D({id:h,seq:X,time:h,sessionId:h,runId:h,turnId:h,type:h,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}i(Il,"runtimeEventSchema");function zr(){return D({sessionId:h,runId:h,toolName:h})}i(zr,"permissionFilterSchema");function Ia(){return D({sessionId:h,runId:h,turnId:h,toolCallId:h,toolName:h,reason:h,risk:{enum:["low","medium","high"]},inputPreview:h,toolInput:O,executionCwd:{type:"string",maxLength:4096},autoModeDiagnostics:O,expiresAt:h,timeoutMs:X},["sessionId","runId","toolName"])}i(Ia,"permissionRequestInputSchema");function pa(){let{toolInput:e,...n}=Ia().properties??{};return D({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:pe(D({id:h,kind:{enum:["session","persistent"]},label:{type:"string",maxLength:512}},["id","kind","label"])),id:h,createdAt:h},["id","sessionId","runId","toolName","createdAt"],!0)}i(pa,"permissionRequestSchema");function fa(){return{oneOf:[D({type:{enum:["allow_once"]}},["type"]),D({type:{enum:["allow_session"]},suggestionId:h},["type","suggestionId"]),D({type:{enum:["allow_always"]},suggestionId:h},["type","suggestionId"]),D({type:{enum:["allow_always"]},scope:D({toolName:h,sessionId:h,matcher:kl()})},["type","scope"]),D({type:{enum:["reject"]},reason:h,cause:{enum:["approval_timeout"]}},["type"])]}}i(fa,"permissionDecisionSchema");function kl(){let e={version:{type:"integer",enum:[1]},toolName:h,fingerprint:h};return{oneOf:[D({...e,kind:{enum:["exact-command"]},shell:{enum:["cmd","posix","powershell"]},shellContractFingerprint:h,commandFingerprint:h,cwd:h,executable:h,argvFingerprint:h,background:G},["version","kind","toolName","fingerprint","shell","commandFingerprint","cwd","background"]),D({...e,kind:{enum:["exact-path"]},path:h},["version","kind","toolName","fingerprint","path"]),D({...e,kind:{enum:["exact-call"]},cwd:h,inputFingerprint:h},["version","kind","toolName","fingerprint","cwd","inputFingerprint"])]}}i(kl,"runtimePermissionMatcherSchema");function ga(){return D({runId:h,activeOnly:G,limit:X})}i(ga,"workflowFilterSchema");function ya(){return D({id:h,kind:{enum:["image","file","video"]},path:h,sizeBytes:X,mediaType:h,mimeType:h,name:h,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:h,createdAt:h},["id","kind","path","sizeBytes","createdAt"],!0)}i(ya,"artifactSchema");import{createHash as bl,randomUUID as Yn}from"node:crypto";import*as ce from"node:fs";import Pl from"node:path";var xl=6e4,El=1048576,Dl=64,Tl=4096,ka=1e3;function Vr(){return{callTimeoutMs:xa("KODAX_REVERSE_CALL_TIMEOUT_MS",xl),maxResultBytes:xa("KODAX_HOST_TOOL_MAX_RESULT_BYTES",El)}}i(Vr,"runtimeDaemonReverseBridgeLimits");function Qr(e,n={}){let t=Vr(),r=new Map,o=new Map,s=new Map,d=new Map,u=new Map((n.initialInvocations??[]).map(c=>[c.invocationId,c])),m=new Set,g=new Map,R=new Map,a,y=!1,p=i(()=>{if(y)throw J("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),v=i(()=>{let c=Date.now();for(let[w,x]of r)x.expiresAt!==void 0&&Date.parse(x.expiresAt)<=c&&r.delete(w)},"pruneExpiredCredentials"),l=i(c=>{for(let w of s.values())clearTimeout(w.timer),w.reject(J("credential_unavailable",c));s.clear()},"rejectPendingCredentialRequests"),S=i(()=>{for(let[c,w]of d)w.dispatched&&(d.delete(c),clearTimeout(w.timer),b(c,"unknown"),w.reject(J("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),b=i((c,w)=>{let x=u.get(c);if(x===void 0)return;let E={...x,state:w,updatedAt:new Date().toISOString()},A=new Map(u);for(A.delete(c),A.set(c,E);A.size>ka;){let f=A.keys().next().value;if(f===void 0)break;A.delete(f)}n.onInvocationsChanged?.([...A.values()]),u.clear();for(let[f,P]of A)u.set(f,P)},"updateHostToolInvocation"),k=i((c,w)=>{let x=a;if(!(w.dispatched||x===void 0||!m.has(w.leaseId)))try{b(c,"dispatched"),w.dispatched=!0,x.notify(w.notification)}catch{d.delete(c),clearTimeout(w.timer),b(c,"unknown"),w.reject(J("host_tool_unknown","Host tool transport failed after durable dispatch; the side-effect outcome is unknown."))}},"dispatchPendingHostCall"),T=i(async c=>{if(p(),o.get(c.lease.id)!==c.lease)throw J("host_tool_unavailable","Host tool lease was revoked.");let w=`hostcall_${Yn().replace(/-/g,"")}`,x=zn("host_tool.invoke",{invocationId:w,leaseId:c.lease.id,toolName:c.descriptor.name,sessionId:c.sessionId,runId:c.runId,input:c.toolInput,sideEffect:c.descriptor.sideEffect}),E={invocationId:w,leaseId:c.lease.id,toolName:c.descriptor.name,sessionId:c.sessionId,runId:c.runId,state:"prepared",updatedAt:new Date().toISOString()},A=new Map(u);for(A.set(w,E);A.size>ka;){let I=A.keys().next().value;if(I===void 0)break;A.delete(I)}n.onInvocationsChanged?.([...A.values()]),u.clear();for(let[I,C]of A)u.set(I,C);let f=new Promise((I,C)=>{let M=setTimeout(()=>{let _=d.get(w);_&&(d.delete(w),b(w,_.dispatched?"unknown":"not_dispatched"),C(J(_.dispatched?"host_tool_unknown":"host_tool_unavailable",_.dispatched?`Host tool ${c.descriptor.name} did not return a certain result before timeout.`:`Host tool ${c.descriptor.name} had no connected host before timeout.`)))},t.callTimeoutMs);M.unref?.(),d.set(w,{invocationId:w,resolve:I,reject:C,timer:M,notification:x,leaseId:c.lease.id,dispatched:!1})}),P=d.get(w);return P&&k(w,P),f},"invokeHostTool");return e!==void 0&&(a={id:`bridge_${Yn().replace(/-/g,"")}`,notify:e}),{attachTransport(c){p(),a!==void 0&&(l("Credential client connection was replaced."),S());let w=`bridge_${Yn().replace(/-/g,"")}`;return a={id:w,notify:c},m.clear(),{close(){a?.id===w&&(a=void 0,m.clear(),l("Credential client disconnected."),S())}}},registerCredential(c){if(p(),v(),c.providers.length===0||c.providers.some(x=>x.trim().length===0)||new Set(c.providers).size!==c.providers.length)throw J("invalid_params","Credential lease providers must be non-empty and unique.");if(c.expiresAt!==void 0&&!Number.isFinite(Date.parse(c.expiresAt)))throw J("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(c.leaseId))throw J("conflict","Credential lease ID is already registered on this connection.");let w={id:c.leaseId,providers:[...c.providers],...c.expiresAt!==void 0?{expiresAt:c.expiresAt}:{},providerSet:new Set(c.providers)};return r.set(c.leaseId,w),Pa(w)},getCredential(c){v();let w=r.get(c);return w===void 0?void 0:Pa(w)},revokeCredential(c){return r.delete(c)},supplyCredential(c){let w=s.get(c.requestId);return w?(s.delete(c.requestId),clearTimeout(w.timer),c.credential!==void 0&&c.credential.length>0?w.resolve(c.credential):w.reject(J("credential_unavailable",c.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(c){p();let w=r.get(c.leaseId);if(!w||!w.providerSet.has(c.provider))throw J("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),J("credential_unavailable","Credential lease expired.");let x=a;if(!x)throw J("credential_unavailable","Credential broker transport is unavailable.");let E=`credreq_${Yn().replace(/-/g,"")}`,A=w.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(w.expiresAt)-Date.now())),f=new Promise((P,I)=>{let C=setTimeout(()=>{s.delete(E),I(J("credential_unavailable","Credential lease expired or broker timed out."))},A);C.unref?.(),s.set(E,{resolve:P,reject:I,timer:C})});try{x.notify(zn("credential.request",{requestId:E,leaseId:w.id,provider:c.provider,sessionId:c.sessionId,runId:c.runId}))}catch{let P=s.get(E);P&&(s.delete(E),clearTimeout(P.timer),P.reject(J("credential_unavailable","Credential request was not dispatched.")))}return f.then(P=>(g.set(c.runId,{leaseId:c.leaseId,provider:c.provider}),P))},registerHostTools(c){p();let w=c.tools.map(E=>E.name);if(w.length===0||w.length>Dl||new Set(w).size!==w.length)throw J("invalid_params","Host tool names must be non-empty and unique.");if(o.has(c.leaseId))throw J("conflict","Host tool lease ID is already registered on this connection.");for(let E of c.tools)_l(E);let x={id:c.leaseId,tools:c.tools.map(E=>({...E,inputSchema:{...E.inputSchema}})),byName:new Map(c.tools.map(E=>[E.name,E]))};return o.set(c.leaseId,x),m.add(c.leaseId),{id:x.id,tools:x.tools}},getHostTools(c){let w=o.get(c);if(w!==void 0){m.add(c);for(let[x,E]of d)E.leaseId===c&&k(x,E)}return w===void 0?void 0:{id:w.id,tools:w.tools}},revokeHostTools(c){return o.delete(c)},completeHostTool(c){let w=d.get(c.invocationId);if(!w)return!1;if(c.result!==void 0){if(typeof c.result.content!="string")throw J("invalid_params","Host tool result content must be a string.");Ll(c.result,t.maxResultBytes,"Host tool result")}return d.delete(c.invocationId),clearTimeout(w.timer),c.result!==void 0?(b(c.invocationId,"completed"),w.resolve(c.result)):(b(c.invocationId,"unknown"),w.reject(J("host_tool_unknown",c.error??"Host tool result is unknown."))),!0},getHostToolInvocation(c){return u.get(c)},createHostToolRuntime(c){p();let w=o.get(c.leaseId);if(!w)throw J("host_tool_unavailable","Host tool lease is missing.");return R.set(c.runId,c.leaseId),{hasCapabilityProvider(x){return x==="mcp"},async searchCapabilities(x,E,A){if(x!=="mcp"||A?.kind!==void 0&&A.kind!=="tool")return[];let f=E.toLowerCase();return w.tools.filter(P=>P.name.toLowerCase().includes(f)||P.description.toLowerCase().includes(f)).slice(0,A?.limit??w.tools.length).map(P=>({id:Nl(w.id,P.name),name:P.name,description:P.description,kind:"tool",server:"host",inputSchema:P.inputSchema}))},async describeCapability(x,E){if(x!=="mcp")return;let A=Ea(w,E);return A?{...A,id:E,kind:"tool",server:"host"}:void 0},async executeCapability(x,E,A){if(x!=="mcp")throw J("host_tool_unavailable","Unsupported host capability provider.");let f=Ea(w,E);if(!f)throw J("host_tool_unavailable","Host tool is not bound to this run.");return await T({lease:w,descriptor:f,sessionId:c.sessionId,runId:c.runId,toolInput:A})},async readCapability(){throw J("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(c){let w=g.get(c),x=R.get(c);if(!(w===void 0&&x===void 0))return{...w!==void 0?{credential:{...w,state:"ready"}}:{},...x!==void 0?{hostTools:{leaseId:x,state:o.has(x)?m.has(x)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!y){y=!0,a=void 0,m.clear(),r.clear(),o.clear(),l("Credential client disconnected.");for(let c of d.values())clearTimeout(c.timer),b(c.invocationId,c.dispatched?"unknown":"not_dispatched"),c.reject(J(c.dispatched?"host_tool_unknown":"host_tool_unavailable",c.dispatched?"Host tool client disconnected; the side-effect outcome is unknown.":"Host tool client disconnected before dispatch."));d.clear(),u.clear()}}}}i(Qr,"createRuntimeDaemonReverseBridge");function Da(e={}){let n=new Map,t=Cl(e.invocationStateFile),r=!1;return{attach(o){if(r)throw J("host_tool_unavailable","Host bridge hub is closed.");if(o.instanceSecret!==void 0&&(o.instanceSecret.length<32||o.instanceSecret.length>512))throw J("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let s=o.instanceSecret===void 0?`ephemeral:${o.connectionId}`:`stable:${o.principalId}:${bl("sha256").update(o.instanceSecret).digest("hex")}`,d=s.startsWith("stable:")?Al(t.get(s)??[]):[],u=n.get(s)??Qr(void 0,{initialInvocations:d,...s.startsWith("stable:")?{onInvocationsChanged(g){t.set(s,g),ba(e.invocationStateFile,t)}}:{}});!n.has(s)&&d.length>0&&(t.set(s,d),ba(e.invocationStateFile,t)),n.set(s,u);let m=u.attachTransport(o.notify);return{bridge:u,close(){m.close()}}},getRunRequirements(o){for(let s of n.values()){let d=s.getRunRequirements(o);if(d!==void 0)return d}},close(){if(!r){r=!0;for(let o of n.values())o.close();n.clear()}}}}i(Da,"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)}i(Al,"recoverHostToolInvocationStates");function Cl(e){if(e===void 0||!ce.existsSync(e))return new Map;let n;try{n=JSON.parse(ce.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 o=r.invocations.map(Ml);t.set(r.key,o)}return t}i(Cl,"loadHostToolInvocationStore");function ba(e,n){if(e===void 0)return;ce.mkdirSync(Pl.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${Yn()}.tmp`,r;try{r=ce.openSync(t,"wx",384),ce.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([o,s])=>({key:o,invocations:s}))},null,2)}
|
|
20
|
+
`,"utf8"),ce.fsyncSync(r),ce.closeSync(r),r=void 0,ce.renameSync(t,e)}finally{r!==void 0&&ce.closeSync(r),ce.rmSync(t,{force:!0})}}i(ba,"saveHostToolInvocationStore");function Ml(e){if(!Jr(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!Ol(e.state)||typeof e.updatedAt!="string")throw new Error("Host Tool invocation recovery store is untrusted: invalid invocation entry.");return{invocationId:e.invocationId,leaseId:e.leaseId,toolName:e.toolName,sessionId:e.sessionId,runId:e.runId,state:e.state,updatedAt:e.updatedAt}}i(Ml,"parseHostToolInvocationStatus");function Ol(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}i(Ol,"isHostToolInvocationState");function Pa(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}i(Pa,"publicCredentialLease");function _l(e){if(!e.name||!e.description||!e.inputSchema)throw J("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw J("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw J("invalid_params","Host tool name is invalid.");if(e.description.length>Tl)throw J("invalid_params",`Host tool description is too long: ${e.name}.`)}i(_l,"validateHostToolDescriptor");function Ll(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw J("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw J("invalid_params",`${t} exceeds the ${n}-byte limit.`)}i(Ll,"assertJsonByteLimit");function xa(e,n){let t=process.env[e];if(t===void 0)return n;let r=Number(t);if(!Number.isSafeInteger(r)||r<=0)throw new Error(`${e} must be a positive integer.`);return r}i(xa,"positiveIntegerEnvironment");function Nl(e,n){return`host:${e}:${n}`}i(Nl,"hostToolCapabilityId");function Ea(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}i(Ea,"descriptorFromCapabilityId");function J(e,n){return Object.assign(new Error(n),{code:e})}i(J,"bridgeError");function Jr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Jr,"isRecord");function Fl(e){return e instanceof Error?e:new Error(String(e))}i(Fl,"normalizeError");var jl=512*1024,Ta=1e3,Hl=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],$l=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),ja=["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"],Ha=new Map([...fe("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"]),...fe("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"]),...fe("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"]),...fe("permission:respond",["permission.respond"]),...fe("permission:grant-admin",["permission.grants.revoke"]),...fe("interaction:respond",["user_input.respond","user_input.dismiss"]),...fe("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...fe("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...fe("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"]),...fe("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...fe("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...fe("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...fe("artifact:write",["artifact.create","artifact.delete"]),...fe("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"]),...fe("owner:admin",["daemon.rollbackToInline"]),...fe("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),Aa=wn.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!Ha.has(e));if(Aa.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${Aa.join(", ")}`);function fe(e,n){return n.map(t=>[t,e])}i(fe,"scopeEntries");function oi(){let e=new Map,n=i(()=>{if(!(e.size<=Ta))for(let[r,o]of e){if(e.size<=Ta)break;o.settled&&e.delete(r)}},"pruneSettled"),t=i((r,o)=>{e.get(r)===o&&(o.settled=!0,n())},"markSettled");return{remember(r,o){let s,d=o.finally(()=>{s&&t(r,s)});d.catch(()=>{}),s={promise:d,settled:!1},e.set(r,s),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}i(oi,"createRuntimeDaemonRunResultStore");function Zn(e){return e==="initialize"||e==="runtime.initialize"}i(Zn,"isInitializeMethod");function $a(e){let n=new Map,t=e.runResults??oi(),r=`connection_${Mn().replace(/-/g,"")}`,o=Qr(e.notify),s=o,d,u=!1,m=!1,g="client",R={},a=`client_${Mn().replace(/-/g,"")}`,y,p,v=new Set(e.grantedScopes??ja),l=i(T=>{let c=n.get(T);return c?(n.delete(T),c.close(),!0):!1},"closeSubscription"),S=i((T,c)=>{n.set(T,c)},"rememberSubscription"),b=i((T,c)=>{Ka(c)&&R.contextDiagnostics!==!0||e.notify?.(zn("event",{subscriptionId:T,event:c}))},"notify");return{handle:i(async T=>{try{if(Es(T.method))throw B("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 c=T;Fa(c.method,"params",c.params===void 0?{}:c.params,"invalid_params");let w;if(!u&&!Zn(c.method))throw B("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(u&&Zn(c.method))throw B("conflict","Runtime daemon connection is already initialized.");if(u&&g==="probe"&&!$l.has(c.method))throw B("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(Zn(c.method)){w=Q(c.params),g=w?.connectionPurpose==="probe"?"probe":"client";let f=typeof w?.token=="string"?w.token:void 0;if(e.authToken!==void 0&&f!==e.authToken)throw B("unauthorized","Runtime daemon initialize token is invalid.");let P=typeof w?.profile=="string"?w.profile:void 0;if(P!==void 0&&P!==e.runtime.identity.profile)throw B("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${P}.`);a=Ul(w?.clientInfo,a),y=dm(w?.clientInfo),p=um(w?.clientInfo)}Zn(c.method)||(Xl(c.method,v),Bl(c,v));let E=await ql(c,e,R,a,i(()=>Wl(c,e,t,S,l,b,()=>R,a,y,p,s),"dispatch")),A=fm(c.method,E);if(Fa(c.method,"result",A,"internal_error"),Zn(c.method)){if(R=Gl(w?.capabilities),g==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(d=e.reverseBridgeHub.attach({principalId:a,connectionId:r,...Ma(w?.clientInfo)!==void 0?{instanceSecret:Ma(w?.clientInfo)}:{},notify:e.notify}),s=d.bridge,o.close()),g==="client"&&e.management!==void 0)try{e.management.attachClient(r),m=!0}catch(f){throw d?.close(),d=void 0,f}u=!0}return Ds(c.id,A)}catch(c){return Ke(gm(c),T.id)}},"handle"),close(){for(let T of[...n.keys()])l(T);d!==void 0?d.close():s.close(),m&&(e.management?.detachClient(r),m=!1)}}}i($a,"createRuntimeDaemonDispatcher");async function ql(e,n,t,r,o){let s=i(()=>n.management!==void 0&&Kl(e.method)?n.management.runMutation(e.method,o):o(),"execute");if(!Ye(e.method)||n.requireOperationEnvelope!==!0)return s();if(t.operationDeduplication!==!0)throw B("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw B("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw B("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,...Ca(e.params)!==void 0?{resourceId:Ca(e.params)}:{},params:e.params??{}},{externalEffect:!0},s)}i(ql,"dispatchWithOperation");function Kl(e){return xs(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}i(Kl,"isManagedRuntimeMutation");function Xl(e,n){let t=Ha.get(e);if(t===void 0)throw B("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw B("unauthorized",`Runtime daemon method requires scope ${t}.`)}i(Xl,"requireRuntimeMethodScope");function Bl(e,n){if(e.method!=="permission.respond")return;let t=ge(e.params)?e.params:void 0;if(!((t&&ge(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw B("unauthorized","Persistent permission grants require scope permission:grant-admin.")}i(Bl,"requirePersistentGrantScope");function Ca(e){if(ge(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}i(Ca,"operationResourceId");function Ul(e,n){if(!ge(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}i(Ul,"parseRuntimeClientPrincipal");function Ma(e){if(!ge(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}i(Ma,"parseRuntimeClientInstanceSecret");async function Wl(e,n,t,r,o,s,d,u,m,g,R){let a=n.runtime,y=n.reverseBridgeHub??R;switch(e.method){case"initialize":case"runtime.initialize":return{identity:a.identity,capabilities:_a(n.capabilities,a.agents.enabled,a.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0,n.orphanExitEnabled===!0),principalId:u,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??ja]};case"ping":return{ok:!0,runtimeId:a.identity.runtimeId};case"runtime.identity":return a.identity;case"daemon.status":case"runtime.status":return Yl(await(n.status?n.status():a.status.snapshot()),y);case"daemon.stop":case"runtime.shutdown":return n.management?n.management.stop():n.stop?n.stop():a.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():a.status.preflight()),y);case"daemon.management.get":if(!n.management)throw B("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw B("client_upgrade_required","Runtime daemon rollback management is unavailable.");let p=L(e.params),v={expectedRuntimeId:H(p,"expectedRuntimeId"),expectedRevision:Nt(p,"expectedRevision"),expectedOwnerPolicyRevision:Nt(p,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(v)}case"runtime.capabilities":return _a(n.capabilities,a.agents.enabled,a.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0,n.orphanExitEnabled===!0);case"operation.get":{let p=L(e.params),v=H(p,"operationId"),l=H(p,"journalEpoch");if(!n.controlJournal)return a.operations.get({operationId:v,journalEpoch:l});if(l!==n.controlJournal.journalEpoch)throw B("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let S=n.controlJournal.get(v);if(!S||S.principalId!==u)throw B("not_found","Runtime operation was not found.");return Jl(S)}case"config.read":return n.config?ii(await n.config()):a.config.read();case"config.patch":{let p=Xa(L(e.params),"patch");return a.config.patch(p)}case"config.reload":return a.config.reload();case"provider.list":return n.providerList?n.providerList():a.catalog.providers();case"model.list":return n.providerList?nm(await n.providerList(),Q(e.params)):a.catalog.models(rm(e.params));case"provider.custom.list":return a.catalog.customProviders();case"provider.custom.upsert":{let p=L(e.params);return a.catalog.upsertCustomProvider(L(p.config))}case"provider.custom.remove":return a.catalog.deleteCustomProvider(V(e.params,"name"));case"mcp.server.list":return a.mcp.listServers();case"mcp.server.get":return a.mcp.getServer(V(e.params,"name"));case"mcp.server.validate":{let p=L(e.params);return a.mcp.validateServer(H(p,"name"),p.config)}case"mcp.server.upsert":{let p=L(e.params);return a.mcp.upsertServer(H(p,"name"),L(p.config))}case"mcp.server.delete":case"mcp.server.remove":return a.mcp.deleteServer(V(e.params,"name"));case"mcp.server.reload":return a.mcp.reloadServers();case"mcp.tool.list":return a.mcp.listTools(im(e.params));case"extension.list":return a.catalog.extensions();case"extension.reload":return a.catalog.reloadExtensions();case"command.list":{let p=Q(e.params),v=typeof p?.projectRoot=="string"?p.projectRoot:void 0;return a.catalog.commands(v)}case"command.resolve":{let p=L(e.params);return a.catalog.resolveCommand({name:H(p,"name"),...typeof p.projectRoot=="string"?{projectRoot:p.projectRoot}:{}})}case"skill.list":return a.catalog.skills(om(e.params));case"skill.describe":case"skill.read":{let p=L(e.params);return a.catalog.describeSkill({name:H(p,"name"),...typeof p.projectRoot=="string"?{projectRoot:p.projectRoot}:{}})}case"artifact.create":return a.artifacts.create(sm(e.params));case"artifact.get":return a.artifacts.get(V(e.params,"artifactId"));case"artifact.delete":return a.artifacts.delete(V(e.params,"artifactId"));case"agentRegistrations.list":return Lt(n),_t(a),a.admin.agentRegistrations.list();case"agentRegistrations.upsert":{Lt(n),_t(a);let p=L(e.params);return a.admin.agentRegistrations.upsert(L(p.registration),{expectedConfigurationRevision:ni(p),expectedManagementOwner:ti(p)})}case"agentRegistrations.setEnabled":{Lt(n),_t(a);let p=L(e.params),v=ue(p,"claimOwner");if(v!==void 0&&v.length===0)throw B("invalid_request","Expected non-empty optional string param: claimOwner");return a.admin.agentRegistrations.setEnabled(H(p,"agentId"),pm(p,"enabled"),{expectedConfigurationRevision:ni(p),expectedManagementOwner:ti(p),...v?{claimOwner:v}:{}})}case"agentRegistrations.remove":Lt(n),_t(a);{let p=L(e.params);return a.admin.agentRegistrations.remove(H(p,"agentId"),{expectedConfigurationRevision:ni(p),expectedManagementOwner:ti(p)})}case"agents.listDispatchable":return a.agents.listDispatchable(L(e.params));case"agents.describe":{let p=L(e.params);return a.agents.describe(H(p,"agentId"),L(p.query))}case"agents.preflight":return a.agents.preflight(L(e.params));case"agents.tree":return a.agents.tree(V(e.params,"sessionId"));case"agents.detail":{let p=L(e.params);return a.agents.detail(H(p,"sessionId"),H(p,"actorPath"))}case"agents.spawn":{let p=L(e.params);return a.agents.spawn(H(p,"sessionId"),L(p.input))}case"agents.send":{let p=L(e.params),v=ue(p,"classification");if(v!==void 0&&v!=="public"&&v!=="internal"&&v!=="sensitive")throw B("invalid_params","Invalid Agent message classification.");return await a.agents.send(H(p,"sessionId"),H(p,"actorPath"),H(p,"content"),v),{ok:!0}}case"agents.followup":{let p=L(e.params),v=Ue(p,"expectedRevision");return a.agents.followup(H(p,"sessionId"),H(p,"actorPath"),H(p,"objective"),v===void 0?void 0:{expectedRevision:v})}case"agents.interrupt":{let p=L(e.params);return await a.agents.interrupt(H(p,"sessionId"),H(p,"actorPath"),ue(p,"reason")),{ok:!0}}case"agents.output":{let p=L(e.params);return a.agents.output(H(p,"sessionId"),H(p,"actorPath"),ue(p,"turnId"))}case"agents.events":{let p=L(e.params);return a.agents.events(H(p,"sessionId"),Ue(p,"afterSequence"))}case"agents.wait":{let p=L(e.params);return a.agents.wait(H(p,"sessionId"),Ue(p,"afterSequence"),Ue(p,"timeoutMs"))}case"session.create":return a.sessions.create(Q(e.params));case"session.load":return a.sessions.load(V(e.params,"sessionId"));case"session.list":return a.sessions.list(Q(e.params));case"session.transcript":{let p=await a.sessions.transcript(V(e.params,"sessionId"));if(p!==null&&Buffer.byteLength(JSON.stringify(p),"utf8")>jl)throw B("invalid_request","Transcript is too large for the legacy endpoint; use session.transcript.page and session.transcript.entryChunk.");return p}case"session.transcript.page":return a.sessions.transcriptPage(L(e.params));case"session.transcript.entryChunk":return a.sessions.transcriptEntryChunk(L(e.params));case"session.transcript.search":return a.sessions.transcriptSearch(L(e.params));case"session.observe":{let p=ri(),v=await a.sessions.observe(V(e.params,"sessionId"),l=>s(p,Yr(l,y)));return r(p,v),{subscriptionId:p,snapshot:Ql(v.snapshot,y)}}case"session.fork":return a.sessions.fork(L(e.params));case"session.notice.append":return a.sessions.appendNotice(L(e.params));case"session.rewind":return a.sessions.rewind(L(e.params));case"session.active_entry.set":case"session.activeEntry.set":return a.sessions.setActiveEntry(L(e.params));case"session.compact":return a.sessions.compact(L(e.params));case"session.archive":return await a.sessions.archive(V(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await a.sessions.unarchive(V(e.params,"sessionId")),{ok:!0};case"session.delete":return await a.sessions.delete(V(e.params,"sessionId")),{ok:!0};case"session.settings.get":return a.sessions.getSettings(V(e.params,"sessionId"));case"session.settings.getVersioned":return a.sessions.getSettingsVersioned(V(e.params,"sessionId"));case"session.autoMode.getStats":return a.sessions.getAutoModeStats(V(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw B("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let p=L(e.params);return a.sessions.updateSettings(H(p,"sessionId"),L(p.patch))}case"session.settings.updateVersioned":{let p=L(e.params);return a.sessions.updateSettingsVersioned(H(p,"sessionId"),L(p.patch),{expectedRevision:Nt(p,"expectedRevision")})}case"run.start":{let p=L(e.params),v=H(p,"sessionId"),l=`run_${Date.now().toString(36)}_${Mn().replace(/-/g,"").slice(0,8)}`,S=await Oa({params:p,sessionId:v,trustedRunId:l,principalId:u,clientName:m,clientVersion:g,operationId:e.operation?.operationId,reverseBridge:R}),b=await a.runs.start(S);return t.remember(b.runId,b.result),{runId:b.runId,sessionId:b.sessionId,...b.turnId!==void 0?{turnId:b.turnId}:{}}}case"run.input.submit":{let p=L(e.params),v=H(p,"sessionId"),l=H(p,"afterRunId"),S=H(p,"delivery"),b=await a.runs.get(l);if(b.sessionId!==v)throw B("conflict",`Runtime continuation target ${l} does not belong to session ${v}.`);if(!zl(b.phase))return{accepted:!1,delivery:S,sessionId:v,afterRunId:l,reason:"stale_run"};if(S==="interrupt"){if(b.phase==="queued")return{accepted:!1,delivery:S,sessionId:v,afterRunId:l,reason:"stale_run"};if(p.credential!==void 0||p.hostTools!==void 0)throw B("invalid_params","Interrupt input cannot replace active-run credential or host-tool bindings.");let w=`input_${Date.now().toString(36)}_${Mn().replace(/-/g,"").slice(0,8)}`;return a.runs.submitInput({...p,sessionId:v,afterRunId:l,delivery:"interrupt",trustedInputId:w,origin:{principalId:u,...m!==void 0?{clientName:m}:{},...g!==void 0?{clientVersion:g}:{},...e.operation?.operationId!==void 0?{operationId:e.operation.operationId}:{}}})}let k=`run_${Date.now().toString(36)}_${Mn().replace(/-/g,"").slice(0,8)}`,T=await Oa({params:p,sessionId:v,trustedRunId:k,principalId:u,clientName:m,clientVersion:g,operationId:e.operation?.operationId,reverseBridge:R}),c=await a.runs.submitInput(T);if(c.accepted&&c.delivery==="after_turn"){let w=a.runs.await(c.runId);t.remember(c.runId,w)}return c}case"run.get":return dn(await a.runs.get(V(e.params,"runId")),y);case"run.list":return(await a.runs.list(Q(e.params))).map(p=>dn(p,y));case"run.await":{let p=V(e.params,"runId"),v=t.get(p);return v||a.runs.await(p)}case"run.abort":return await a.runs.abort(V(e.params,"runId")),{ok:!0};case"run.model.set":return La(a,e.params);case"run.setModel":return La(a,e.params);case"run.provider.set":{let p=L(e.params);return await a.runs.setProvider(H(p,"runId"),H(p,"provider")),{ok:!0}}case"run.setProvider":{let p=L(e.params);return await a.runs.setProvider(H(p,"runId"),H(p,"provider")),{ok:!0}}case"run.reasoning.set":return Na(a,e.params);case"run.setReasoning":return Na(a,e.params);case"event.subscribe":{let p=Q(e.params)??{},v=Q(p.filter);await Be(a,v?.sessionId);let l=ri(),S=a.events.subscribe(v??{},b=>{s(l,Yr(b,y))});return r(l,S),{subscriptionId:l}}case"event.unsubscribe":return{ok:o(V(e.params,"subscriptionId"))};case"event.replay":{let p=Q(e.params);return await Be(a,p?.sessionId),Vl(await a.events.replay(p),d()).map(v=>Yr(v,y))}case"permission.list":case"permission.listPending":{let p=Q(e.params);return await Be(a,p?.sessionId),a.permissions.listPending(p)}case"permission.request":{let p=L(e.params);return await Be(a,p.sessionId),a.permissions.request(p)}case"permission.respond":{let p=L(e.params),v=ue(p,"runId");return a.permissions.respond(H(p,"requestId"),L(p.decision),v!==void 0?{runId:v}:void 0)}case"permission.grants.list":return a.permissions.listGrants();case"permission.grants.revoke":{let p=L(e.params);return a.permissions.revokeGrant(H(p,"grantId"),Nt(p,"expectedRevision"))}case"user_input.listPending":{let p=Q(e.params);return await Be(a,p?.sessionId),a.userInputs.listPending(p)}case"user_input.respond":{let p=L(e.params),v=Ue(p,"expectedRevision"),l=ue(p,"runId");return a.userInputs.respond(H(p,"requestId"),p.answer,v!==void 0||l!==void 0?{...v!==void 0?{expectedRevision:v}:{},...l!==void 0?{runId:l}:{}}:void 0)}case"user_input.dismiss":{let p=L(e.params),v=Ue(p,"expectedRevision"),l=ue(p,"runId");return a.userInputs.dismiss(H(p,"requestId"),v!==void 0||l!==void 0?{...v!==void 0?{expectedRevision:v}:{},...l!==void 0?{runId:l}:{}}:void 0)}case"credential.register":{let p=L(e.params);return R.registerCredential({leaseId:H(p,"leaseId"),providers:cm(p,"providers"),...ue(p,"expiresAt")!==void 0?{expiresAt:ue(p,"expiresAt")}:{}})}case"credential.get":return R.getCredential(V(e.params,"leaseId"));case"credential.revoke":return R.revokeCredential(V(e.params,"leaseId"));case"credential.supply":{let p=L(e.params);return{ok:R.supplyCredential({requestId:H(p,"requestId"),...ue(p,"credential")!==void 0?{credential:ue(p,"credential")}:{},...ue(p,"error")!==void 0?{error:ue(p,"error")}:{}})}}case"host_tool.register":{let p=L(e.params);return R.registerHostTools({leaseId:H(p,"leaseId"),tools:lm(p.tools)})}case"host_tool.get":return R.getHostTools(V(e.params,"leaseId"));case"host_tool.invocation.get":return R.getHostToolInvocation(V(e.params,"invocationId"));case"host_tool.revoke":return R.revokeHostTools(V(e.params,"leaseId"));case"host_tool.complete":{let p=L(e.params);return{ok:R.completeHostTool({invocationId:H(p,"invocationId"),...p.result!==void 0?{result:L(p.result)}:{},...ue(p,"error")!==void 0?{error:ue(p,"error")}:{}})}}case"workflow.list":return a.workflows.list(Q(e.params));case"workflow.get":return a.workflows.get(V(e.params,"runId"));case"workflow.subscribe":{let p=Q(e.params)??{},v=Q(p.filter),l=ri(),S=a.workflows.subscribe(v??{},b=>{s(l,b)});return r(l,S),{subscriptionId:l}}case"workflow.unsubscribe":return{ok:o(V(e.params,"subscriptionId"))};case"workflow.pause":return a.workflows.pause(V(e.params,"runId"));case"workflow.resume":return a.workflows.resume(V(e.params,"runId"));case"workflow.stop":return a.workflows.stop(V(e.params,"runId"));case"learning.list":return _e(a.learning,u).list(Q(e.params));case"learning.get":return _e(a.learning,u).get(V(e.params,"nameOrSlug"));case"learning.snapshot":return _e(a.learning,u).getSnapshot();case"learning.events":return _e(a.learning,u).events(Ue(Q(e.params)??{},"afterRevision"));case"learning.acknowledge":return await _e(a.learning,u).acknowledge(V(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let p=L(e.params);return await _e(a.learning,u).snooze(H(p,"nameOrSlug"),H(p,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let p=_e(a.learning,u),v=V(e.params,"nameOrSlug");return e.method==="learning.reject"?await p.reject(v):e.method==="learning.disable"?await p.disable(v):e.method==="learning.rollback"?await p.rollback(v):e.method==="learning.review"?await p.review(v):await p.trust(v),{ok:!0}}case"learning.promote":{let p=L(e.params),v=H(p,"scope");if(v!=="user")throw B("invalid_params","Learning promotion scope must be user.");return await _e(a.learning,u).promote(H(p,"nameOrSlug"),v),{ok:!0}}case"context.budget.get":return Zr(d()),await Be(a,ue(Q(e.params)??{},"sessionId")),ei(a,"context.budget.snapshot",Q(e.params));case"tool.exposure.preview":return Zr(d()),await Be(a,ue(Q(e.params)??{},"sessionId")),ei(a,"tool.exposure.planned",Q(e.params));case"provider.cache.diagnostics.get":return Zr(d()),await Be(a,ue(Q(e.params)??{},"sessionId")),ei(a,"provider.cache.diagnostics",Q(e.params));default:throw B("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}i(Wl,"dispatchRuntimeDaemonRequest");async function Oa(e){let n=Q(e.params.credential),t=Q(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:H(n,"leaseId"),provider:H(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),o=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:H(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),s=fn(),d=o===void 0?void 0:s===null?o:mm(o,s),u=Q(e.params.options)??{},m=Q(u.context),g=m===void 0?u:{...u,context:Object.fromEntries(Object.entries(m).filter(([R])=>R!=="configHome"&&R!=="memoryIdentity"))};return{...e.params,sessionId:e.sessionId,trustedRunId:e.trustedRunId,origin:{principalId:e.principalId,...e.clientName!==void 0?{clientName:e.clientName}:{},...e.clientVersion!==void 0?{clientVersion:e.clientVersion}:{},...e.operationId!==void 0?{operationId:e.operationId}:{}},...r!==void 0?{providerCredential:r}:{},...n!==void 0?{providerCredentialProvider:H(n,"provider")}:{},...e.params.options!==void 0||d!==void 0?{options:{...g,...d===void 0?{}:{extensionRuntime:d}}}:{}}}i(Oa,"bindTrustedRunInput");function zl(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"}i(zl,"isActiveRuntimeRunPhase");function Gl(e){return ge(e)?{...e.richEvents===!0?{richEvents:!0}:{},...e.permissionPrompts===!0?{permissionPrompts:!0}:{},...e.configAdmin===!0?{configAdmin:!0}:{},...e.commandCatalog===!0?{commandCatalog:!0}:{},...e.skillCatalog===!0?{skillCatalog:!0}:{},...e.artifactUpload===!0?{artifactUpload:!0}:{},...e.contextDiagnostics===!0?{contextDiagnostics:!0}:{},...e.operationDeduplication===!0?{operationDeduplication:!0}:{}}:{}}i(Gl,"parseRuntimeClientCapabilities");function _a(e={},n=!1,t=!1,r=!1,o,s=!1,d=!1,u=!1,m=!1){let g={...e};delete g.externalAgents,delete g.externalAgentAdmin,delete g.a2aConfigReconciler,delete g.actorControlPlane,delete g.integrationConfigResilience,delete g.daemonOrphanExit,delete g.runtimeAutoModeGuardrail,delete g.sandboxRuntime;let R=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"},sandboxRuntime:lt(),runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:ut,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...m?{daemonOrphanExit:{version:1,idleOnly:!0,bootstrapGrace:!0}}:{},...t?{externalAgentAdmin:{version:1,activation:!0,conditionalMutations:!0,managementOwner:!0}}:{},...r?{a2aConfigReconciler:{version:1}}:{},...o!==void 0?{operationDeduplication:{version:1,retentionMs:Number.MAX_SAFE_INTEGER},journalEpoch:o.journalEpoch,controlHealth:o.health}:{},sessionObservation:{version:1,maxBufferedEvents:256},sessionAdmission:{version:1,surfaces:Hl,legacySurface:!0,partnerDenied:!0},completeObservationSnapshot:{version:1,transcriptRevision:!0,managedTasks:!0,queuedInputs:!0},connectionLifecycle:{version:1},typedRuntimeEvents:{version:1},daemonSafeRunInput:{version:1},integrationConfigResilience:{version:1,isolatedFailure:!0,legacySourceWatching:!0,lastKnownGood:!0,healthProjection:!0},...u?{daemonManagement:{version:1,logicalClientCount:!0,revisionedStop:!0,ownerPolicy:!0,ownerFenceState:!0,reverseBridgeDrainingFence:!0,backgroundWorkPreflight:!0}}:{},sharedSessionSettings:{version:1,keys:["provider","model","effort","thinking","reasoningMode","permissionMode","executionCwd","agentMode","autoModeEngine","autoModeClassifierModel","autoModeTimeoutMs","autoModeSpeculativeWindowMs"]},...o!==void 0?{durableRecoveryQueries:{version:1,operationResult:!0,hostToolInvocation:d,permissionGrants:!0,daemonPreflight:!0,terminalAcknowledgement:!1,terminalAcknowledgementOwner:"client"}}:{},afterTurnInput:{version:1},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},skillLearningLoop:{version:1,activation:"project_scoped_canary",immutableDecisions:!0,recordGatedDiscovery:!0,exactUseAttribution:!0,rollback:!0},askUserTransport:{version:1},permissionCas:{version:1},providerCredentialBroker:{version:1,registrationConnectionBound:!s,stableClientResume:s,runtimeRestartExpiresLease:!0,acquiredCredentialSurvivesDisconnect:!0,requestTimeoutMs:R.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!s,stableClientResume:s,invocationStatusQuery:s,invocationReplay:!1,invocationTimeoutMs:R.callTimeoutMs,maxResultBytes:R.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},...g}}i(_a,"runtimeDaemonCapabilities");function Jl(e){return e?{...e}:{}}i(Jl,"publicOperationReceipt");function _t(e){if(!e.agents.enabled)throw B("method_not_found","Runtime external agent executor plane is not enabled.")}i(_t,"requireExternalAgentsEnabled");function Lt(e){if(e.allowAgentRegistrationAdmin!==!0)throw B("permission_denied","Runtime daemon host denied Agent registration administration.")}i(Lt,"requireAgentRegistrationAdmin");function Vl(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!Ka(t))}i(Vl,"filterReplayForClientCapabilities");async function Be(e,n){n!==void 0&&await e.sessions.transcript(n)}i(Be,"assertAdmittedSessionId");function Ql(e,n){return{...e,runs:e.runs.map(t=>dn(t,n))}}i(Ql,"augmentObservationRunRequirements");function Yl(e,n){return!ge(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>qa(t)?dn(t,n):t)}}i(Yl,"augmentStatusRunRequirements");function Zl(e,n){return{...e,activeRuns:e.activeRuns.map(t=>dn(t,n)),queuedRuns:e.queuedRuns.map(t=>dn(t,n))}}i(Zl,"augmentPreflightRunRequirements");function Yr(e,n){return qa(e.payload)?{...e,payload:dn(e.payload,n)}:e}i(Yr,"augmentRuntimeEventRequirements");function dn(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}}i(dn,"augmentRunRequirements");function qa(e){return ge(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}i(qa,"isRuntimeRunStatus");function em(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(em,"isTerminalRuntimeRunPhase");function Zr(e){if(e.contextDiagnostics!==!0)throw B("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}i(Zr,"requireContextDiagnosticsCapability");function Ka(e){return ge(e)?e.type==="context.budget.snapshot"||e.type==="provider.cache.diagnostics"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}i(Ka,"isContextDiagnosticRuntimeEvent");async function ei(e,n,t){let r=t??{},o=r.contextKind==="root"||r.contextKind==="child"?r.contextKind:typeof r.agentId=="string"?void 0:"root",s=typeof r.agentId=="string"?r.agentId:void 0,d=o==="child"||s!==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(R=>{let a=R.payload;if(a===null||typeof a!="object"||Array.isArray(a))return o===void 0&&s===void 0;let y=a,p=y.contextKind==="child"?"child":"root";if(o!==void 0&&p!==o||s!==void 0&&y.agentId!==s)return!1;if(!d||typeof r.sessionId!="string")return!0;let v=`${r.sessionId}/agent/`;return typeof y.contextId!="string"?!1:s===void 0?y.contextId.startsWith(v):y.contextId===`${v}${encodeURIComponent(s)}`})?.payload??null}i(ei,"latestRuntimeDiagnosticPayload");async function La(e,n){let t=L(n);return await e.runs.setModel(H(t,"runId"),ue(t,"model")),{ok:!0}}i(La,"setRunModel");async function Na(e,n){let t=L(n);return await e.runs.setReasoning(H(t,"runId"),ue(t,"reasoning")),{ok:!0}}i(Na,"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 o=t.find(s=>ge(s)&&s.name===r);return ge(o)?{provider:r,models:Array.isArray(o.models)?o.models:[]}:{provider:r,models:[]}}return t.flatMap(o=>!ge(o)||typeof o.name!="string"?[]:[{provider:o.name,models:Array.isArray(o.models)?o.models:[]}])}i(nm,"listRuntimeModels");function ii(e){return Array.isArray(e)?e.map(n=>ii(n)):ge(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,tm(n)?"[redacted]":ii(t)])):e}i(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")}i(tm,"isSensitiveConfigKey");function Q(e){if(e!==void 0)return L(e)}i(Q,"optionalRecord");function Xa(e,n){return L(e[n])}i(Xa,"requireRecordField");function rm(e){let n=Q(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}i(rm,"parseModelListFilter");function im(e){let n=Q(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}i(im,"parseMcpToolListFilter");function om(e){let n=Q(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}i(om,"parseSkillListFilter");function sm(e){let n=L(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw B("invalid_request","Expected artifact kind: image | file | video");let r=H(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}:{}}}i(sm,"parseArtifactCreateInput");function am(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}i(am,"isRuntimeArtifactSource");function dm(e){return ge(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}i(dm,"parseRuntimeClientName");function um(e){return ge(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}i(um,"parseRuntimeClientVersion");function cm(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw B("invalid_request",`Expected string array param: ${n}`);return t}i(cm,"requireStringArrayField");function lm(e){if(!Array.isArray(e))throw B("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=L(n),r=H(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw B("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:H(t,"name"),description:H(t,"description"),inputSchema:Xa(t,"inputSchema"),sideEffect:r}})}i(lm,"parseRuntimeHostToolDescriptors");function mm(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,o){let[s,d]=await Promise.all([e.searchCapabilities(t,r,o),n.searchCapabilities(t,r,o)]),u=[...s,...d];return u.slice(0,o?.limit??u.length)},async describeCapability(t,r){return r.startsWith("host:")?e.describeCapability(t,r):n.describeCapability(t,r)},executeCapability(t,r,o){return r.startsWith("host:")?e.executeCapability(t,r,o):n.executeCapability(t,r,o)},readCapability(t,r,o){return n.readCapability(t,r,o)},getCapabilityPrompt(t,r,o){return n.getCapabilityPrompt(t,r,o)},getCapabilityPromptContext(t){return n.getCapabilityPromptContext(t)},...n.getDefaults!==void 0?{getDefaults:i(()=>n.getDefaults(),"getDefaults")}:{},...n.bindController!==void 0?{bindController:i(t=>n.bindController(t),"bindController")}:{},...n.hydrateSession!==void 0?{hydrateSession:i(t=>n.hydrateSession(t),"hydrateSession")}:{}}}i(mm,"mergeExtensionRuntimeContracts");function ge(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(ge,"isRecord");function L(e){if(!e||typeof e!="object"||Array.isArray(e))throw B("invalid_request","Expected params to be an object.");return e}i(L,"requireRecord");function V(e,n){return H(L(e),n)}i(V,"requireStringParam");function H(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw B("invalid_request",`Expected string param: ${n}`);return t}i(H,"requireStringField");function pm(e,n){let t=e[n];if(typeof t!="boolean")throw B("invalid_request",`Expected boolean param: ${n}`);return t}i(pm,"requireBooleanField");function ue(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw B("invalid_request",`Expected optional string param: ${n}`);return t}}i(ue,"optionalStringField");function ni(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw B("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}i(ni,"optionalExpectedConfigurationRevision");function ti(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw B("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}i(ti,"optionalExpectedManagementOwner");function Ue(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw B("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}i(Ue,"optionalIntegerField");function Nt(e,n){let t=Ue(e,n);if(t===void 0)throw B("invalid_request",`Expected non-negative integer param: ${n}`);return t}i(Nt,"requireIntegerField");function B(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(B,"daemonError");function ri(){return`sub_${Mn().replace(/-/g,"").slice(0,12)}`}i(ri,"createSubscriptionId");function Fa(e,n,t,r){let o=Cn(Ot[e][n],t,n);if(o.length!==0)throw B(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:o})}i(Fa,"validateDaemonMethodValue");function fm(e,n){return n===void 0?null:e!=="run.await"||!ge(n)||!(n.error instanceof Error)?n:{...n,error:{name:n.error.name,message:n.error.message,...n.error.stack!==void 0?{stack:n.error.stack}:{}}}}i(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 so)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"&&ym(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}i(gm,"normalizeRuntimeDaemonError");function ym(e){return e==="invalid_frame"||e==="invalid_request"||e==="invalid_params"||e==="not_initialized"||e==="method_not_found"||e==="unauthorized"||e==="permission_denied"||e==="conflict"||e==="not_found"||e==="session_not_admitted"||e==="cancelled"||e==="overloaded"||e==="client_upgrade_required"||e==="operation_required"||e==="operation_epoch_mismatch"||e==="operation_id_reuse"||e==="operation_interrupted"||e==="operation_unknown"||e==="control_history_untrusted"||e==="credential_unavailable"||e==="host_tool_unavailable"||e==="host_tool_unknown"||e==="internal_error"}i(ym,"isRuntimeDaemonErrorCode");import{createHash as Rm,randomUUID as Wa}from"node:crypto";import*as se from"node:fs";import Ba from"node:path";var Ae=class extends Error{static{i(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function za(e){se.mkdirSync(e.rootDir,{recursive:!0});let n=Ba.join(e.rootDir,"journal-meta.json"),t=Ba.join(e.rootDir,"control.jsonl"),r=Pm(n),o=r.meta,s=bm(t),d=s.records,u=new Map,m=s.trusted&&r.trusted?"healthy":"control_history_untrusted";return m==="healthy"&&km(d,t),{journalEpoch:o.journalEpoch,get health(){return m},execute(g,R,a){if(m!=="healthy")return Promise.reject(new Ae("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{Im(g,o.journalEpoch);let y=Em(g.params),p=d.get(g.operationId);if(p){Sm(p,g,y);let l=u.get(g.operationId);return l||vm(p)}let v=hm(t,d,g,y,R.externalEffect===!0,a,()=>{m="control_history_untrusted"});return u.set(g.operationId,v),v.finally(()=>u.delete(g.operationId)).catch(()=>{}),v}catch(y){return Promise.reject(y)}},get(g){return d.get(g)}}}i(za,"createRuntimeControlJournal");async function hm(e,n,t,r,o,s,d){let u=wm(t,r,"accepted");Ga(e,u),n.set(t.operationId,u),o&&Ft(e,n,u,"dispatched");let m;try{m=await s()}catch(g){let R=Dm(g);try{Ft(e,n,u,"rejected",{error:R})}catch{d()}throw g}try{return Ft(e,n,u,"applied",{result:m}).result}catch{throw d(),n.set(t.operationId,{...u,state:"unknown",updatedAt:new Date().toISOString()}),new Ae("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}i(hm,"executeNewOperation");function Ft(e,n,t,r,o={}){let s={type:"operation",...t,state:r,...o,updatedAt:new Date().toISOString()};return Ga(e,s),n.set(s.operationId,s),s}i(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()}}i(wm,"operationRecord");function vm(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new Ae(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 Ae(n,`Runtime operation is ${e.state}; it will not be replayed.`))}i(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 Ae("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}i(Sm,"assertMatchingOperation");function Im(e,n){if(e.journalEpoch!==n)throw new Ae("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new Ae("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new Ae("invalid_operation","Runtime operation identity is incomplete.")}i(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")}i(km,"recoverUnfinished");function bm(e){let n=new Map;if(!se.existsSync(e))return{trusted:!0,records:n};let t=se.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let o=JSON.parse(r);if(!Am(o))return{trusted:!1,records:n};n.set(o.operationId,o)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}i(bm,"loadOperationRecords");function Pm(e){if(se.existsSync(e)){try{let t=JSON.parse(se.readFileSync(e,"utf8"));if(Tm(t))return{meta:t,trusted:!0}}catch{}return{meta:Ua(),trusted:!1}}let n=Ua();return xm(e,n),{meta:n,trusted:!0}}i(Pm,"loadOrCreateMeta");function Ua(){return{version:1,journalEpoch:`je_${Wa().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}i(Ua,"createJournalMeta");function Ga(e,n){let t=`${JSON.stringify(n)}
|
|
21
|
+
`,r=se.openSync(e,"a",384);try{se.writeFileSync(r,t,"utf8"),se.fsyncSync(r)}finally{se.closeSync(r)}}i(Ga,"appendRecord");function xm(e,n){let t=`${e}.${process.pid}.${Wa()}.tmp`,r=se.openSync(t,"wx",384);try{se.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
22
|
+
`,"utf8"),se.fsyncSync(r)}finally{se.closeSync(r)}se.renameSync(t,e)}i(xm,"writeJsonAtomic");function Em(e){return Rm("sha256").update(si(e)).digest("hex")}i(Em,"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 Ae("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 Ae("invalid_operation","Operation contains a non-JSON value.")}i(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}}i(Dm,"normalizeOperationError");function Tm(e){return Ja(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}i(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"&&Cm(e.state)&&typeof e.updatedAt=="string":!1}i(Am,"isOperationRecord");function Cm(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}i(Cm,"isOperationState");function Ja(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(Ja,"isRecord");function Va(e){return new ai(e)}i(Va,"createRuntimeDaemonManagementController");var ai=class{constructor(n){this.input=n;this.runtimeEvents=n.runtime.events.subscribe({},()=>{this.revision+=1})}input;static{i(this,"DaemonManagementController")}clients=new Set;runtimeEvents;revision=0;activeMutations=0;activeMutationMethods=new Map;draining=!1;closed=!1;preflightFingerprint;orphanExitArmed=!1;clientGeneration=0;orphanExitTimer;orphanExitCheckRunning=!1;orphanBlockerFingerprint;armOrphanExitAfterReady(){this.input.orphanExitMs===void 0||this.closed||this.draining||(this.orphanExitArmed=!0,this.scheduleOrphanExitCheck(this.input.orphanExitMs))}attachClient(n){if(this.draining||this.closed)throw ke("conflict","Runtime daemon is draining and cannot attach another client.");this.clients.has(n)||(this.clients.add(n),this.orphanExitArmed=!0,this.clientGeneration+=1,this.cancelOrphanExitCheck(),this.orphanBlockerFingerprint=void 0,this.revision+=1)}detachClient(n){this.clients.delete(n)&&(this.clientGeneration+=1,this.revision+=1,this.clients.size===0&&this.scheduleOrphanExitCheck(this.input.orphanExitMs))}async runMutation(n,t){if(this.draining||this.closed)throw ke("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 Om(r,this.clients.size)}throw ke("conflict","Runtime state changed while daemon preflight was being read.")}async inspect(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.preflight();if(t!==this.revision)continue;let o=oe(this.input.paths.lockFile);if(o===void 0||o.runtimeId!==this.input.runtime.identity.runtimeId||o.kind!=="daemon")throw ke("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:De(this.input.paths),owner:o,preflight:r,...this.input.integrationStatuses?{integrations:Mm(this.input.integrationStatuses())}:{}}}throw ke("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 ke("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=Xs(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw ke("internal_error","Runtime owner rollback did not commit inline mode.");return this.revision+=1,this.input.requestStop(),{accepted:!0,runtimeId:this.input.runtime.identity.runtimeId,revision:this.revision,ownerPolicy:{...t,mode:"inline"}}}catch(t){throw this.draining=!1,t}}close(){this.closed||(this.closed=!0,this.cancelOrphanExitCheck(),this.runtimeEvents.close(),this.clients.clear())}beginDraining(n){if(this.closed)throw ke("conflict","Runtime daemon management is closed.");if(this.draining)throw ke("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw ke("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw ke("conflict",`Runtime daemon has in-flight mutations: ${[...this.activeMutationMethods].map(([t,r])=>`${t} (${r})`).join(", ")}.`);this.draining=!0,this.cancelOrphanExitCheck()}async assertStoppable(n){let t=await this.preflight();if(n!==void 0&&this.revision!==n)throw ke("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw ke("conflict",`Runtime daemon cannot stop safely: ${t.blockers.join(", ")}.`,{preflight:t})}observePreflight(n){let t=JSON.stringify(n);if(this.preflightFingerprint===void 0){this.preflightFingerprint=t;return}t!==this.preflightFingerprint&&(this.preflightFingerprint=t,this.revision+=1)}scheduleOrphanExitCheck(n){n===void 0||!this.orphanExitArmed||this.closed||this.draining||this.clients.size>0||this.orphanExitCheckRunning||(this.cancelOrphanExitCheck(),this.orphanExitTimer=setTimeout(()=>{this.orphanExitTimer=void 0,this.tryOrphanExit()},n),this.orphanExitTimer.unref?.())}cancelOrphanExitCheck(){this.orphanExitTimer!==void 0&&(clearTimeout(this.orphanExitTimer),this.orphanExitTimer=void 0)}async tryOrphanExit(){if(this.closed||this.draining||this.clients.size>0||this.input.orphanExitMs===void 0)return;this.orphanExitCheckRunning=!0;let n=this.clientGeneration,t=!1,r=Math.min(this.input.orphanExitMs,5e3);try{let o=await this.preflight();if(this.clients.size>0||this.closed||this.draining)return;if(this.clientGeneration!==n){r=this.input.orphanExitMs;return}if(o.canStop){this.appendOrphanExitLog("info","Runtime daemon orphan exit accepted after the final client disconnected."),await this.stop(),t=!0;return}let s=o.blockers.join(",");s!==this.orphanBlockerFingerprint&&(this.orphanBlockerFingerprint=s,this.appendOrphanExitLog("info","Runtime daemon orphan exit deferred until governed work becomes idle.",{blockers:o.blockers}))}catch(o){this.appendOrphanExitLog("warn","Runtime daemon orphan exit inspection failed; it will retry.",{error:o instanceof Error?o.message:String(o)})}finally{this.orphanExitCheckRunning=!1,t||this.scheduleOrphanExitCheck(r)}}appendOrphanExitLog(n,t,r){try{Ie(this.input.paths,n,t,r)}catch{}}};function Mm(e){let n=structuredClone(e);return{state:n.some(t=>t.diagnostic!==void 0)?"degraded":"healthy",domains:n}}i(Mm,"integrationHealth");function Om(e,n){let t=e.blockers.filter(r=>r!=="connected_clients");return n>1&&t.push("connected_clients"),{...e,clientCount:n,blockers:t,canStop:t.length===0}}i(Om,"withLogicalClients");function ke(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(ke,"managementError");async function Za(e){Se(e.paths);let n=Us();Ws(e.paths,n);let t=jt(e,"starting");bn(e.paths,t),Ie(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Li(x=>{_m(e.paths,x)}),o,s,d=!1,u=i(()=>{if(s===void 0){d=!0;return}s()},"requestStop"),m=oi(),g=za({rootDir:Qa.join(e.paths.rootDir,"control")}),R=Da({invocationStateFile:Qa.join(e.paths.rootDir,"host-tool-invocations.json")}),a=Va({runtime:e.runtime,paths:e.paths,requestStop:u,...e.orphanExitMs!==void 0?{orphanExitMs:e.orphanExitMs}:{},...e.integrationStatuses?{integrationStatuses:e.integrationStatuses}:{}}),y;try{o=await ra({endpoint:e.endpoint,createDispatcher:i(E=>$a({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},...e.orphanExitMs!==void 0?{orphanExitEnabled:!0}:{},allowAgentRegistrationAdmin:!0,notify:E,runResults:m,controlJournal:g,reverseBridgeHub:R,management:a,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:i(()=>({logFile:e.paths.logFile,entries:zs(e.paths)}),"logs")}),"createDispatcher")});let x=process.env.KODAX_INTERNAL_DAEMON_TEST_READY_DELAY_MS;x!==void 0&&await Lm(x),y=jt(e,"ready"),bn(e.paths,y),a.armOrphanExitAfterReady(),Ie(e.paths,"info","Runtime daemon ready.",{runtimeId:y.runtimeId,endpoint:y.endpoint})}catch(x){Ie(e.paths,"error","Runtime daemon failed to start.",{error:Ce(x).message});let E=!0;try{await o?.close()}catch(A){E=!1,Ie(e.paths,"error","Runtime daemon transport cleanup failed.",{error:Ce(A).message})}throw a.close(),m.clear(),R.close(),r(),E?await Ya(e.paths,e.lock):bn(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),x}let p=!1,v,l=!1,S=!1,b=!1,k=!1,T,c=new Promise(x=>{T=x}),w=i(()=>{if(p)return Promise.resolve();if(v)return v;let x=(async()=>{let E=[];if(!k)try{bn(e.paths,jt(e,"stopping")),Ie(e.paths,"info","Runtime daemon stopping.")}catch(A){E.push(`state transition: ${Ce(A).message}`)}if(!l)try{await o?.close(),l=!0}catch(A){E.push(`transport close: ${Ce(A).message}`)}if(S||(a.close(),R.close(),m.clear(),S=!0),!b)try{await e.runtime.close(),b=!0}catch(A){E.push(`Runtime close: ${Ce(A).message}`)}try{Ie(e.paths,"info","Runtime daemon stopped.")}catch(A){E.push(`stop log: ${Ce(A).message}`)}if(r(),l&&b&&!k){let A=await Ya(e.paths,e.lock),f=oe(e.lock.file),P=f?.runtimeId===e.lock.owner.runtimeId&&f.pid===e.lock.owner.pid&&f.createdAt===e.lock.owner.createdAt;!A&&P?E.push("owner release: the daemon still owns its profile lock"):k=!0}else if(!l||!b)try{bn(e.paths,{...jt(e,"unhealthy"),lastError:E.join("; ")})}catch(A){E.push(`unhealthy state: ${Ce(A).message}`)}if(E.length>0){try{Ie(e.paths,"error","Runtime daemon stopped with cleanup failures.",{failures:E})}catch(A){E.push(`failure log: ${Ce(A).message}`)}throw new Error(`Runtime daemon cleanup failed: ${E.join("; ")}`)}p=!0,T?.()})();return v=x,x.finally(()=>{v===x&&(v=void 0),r()}).catch(()=>{}),x},"closeHost");return s=i(()=>{try{Ie(e.paths,"info","Runtime daemon stop requested.")}catch(E){Z({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:Ce(E)})}setTimeout(()=>{w().catch(E=>{Z({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:Ce(E)})})},0).unref?.()},"scheduleStop"),d&&s(),{endpoint:e.endpoint,state:y,closed:c,unref(){o?.unref()},close:w}}i(Za,"startRuntimeDaemonHost");async function Ya(e,n){for(let t=0;t<50;t+=1){try{if(Vs(e,n))return!0}catch(o){Z({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:Ce(o)})}let r=oe(n.file);if(r===void 0||r.runtimeId!==n.owner.runtimeId||r.pid!==n.owner.pid||r.createdAt!==n.owner.createdAt||r.kind!==n.owner.kind)return!1;await new Promise(o=>{setTimeout(o,10)})}try{Ie(e,"error","Runtime daemon ownership release timed out.")}catch(t){Z({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:Ce(t)})}return!1}i(Ya,"releaseHostOwnership");function _m(e,n){try{Ie(e,n.level==="error"?"error":n.level==="warn"?"warn":"info",`[${n.source}] ${n.message}`,{level:n.level,source:n.source,...n.detail!==void 0?{detail:n.detail}:{}})}catch{}}i(_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}}i(jt,"createHostState");async function Lm(e){if(e===void 0)return;let n=Number(e);!Number.isFinite(n)||n<=0||await new Promise(t=>{setTimeout(t,Math.min(n,3e4))})}i(Lm,"delayInternalDaemonReadyForTest");function Ce(e){return e instanceof Error?e:new Error(String(e))}i(Ce,"normalizeHostError");async function ed(e){if(e.orphanExitMs!==void 0&&(!Number.isSafeInteger(e.orphanExitMs)||e.orphanExitMs<=0))throw new Error("orphanExitMs must be a positive safe integer.");let n=e.profile??"default",t=jm(e.homeDir),r=di.resolve(e.configHome??di.join(t,".kodax")),o=nn(r,n);Dt(o);let s=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(o,d,e.healthCheck);if(u.kind==="attach"){let m=rn(u.state);return td(o,m,e.connectTimeoutMs)}if(u.kind==="wait")return Hm(o,s,d,{...e,profile:n});if(u.kind==="unhealthy")throw new Error(`Runtime daemon is ${u.health}; refusing to take ownership.`);return nd(o,s,d,u.lock,e)}i(ed,"acquireRuntimeDaemonLease");function jm(e){return di.resolve(e??Fm.homedir())}i(jm,"resolveRuntimeDaemonHomeDir");async function Hm(e,n,t,r){let o=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=o;){let s=await Ur(e,t,r.healthCheck);if(s.kind==="attach")return td(e,rn(s.state),r.connectTimeoutMs);if(s.kind==="claim")return nd(e,n,t,s.lock,r);if(s.kind==="unhealthy")throw new Error(`Runtime daemon is ${s.health}; refusing to take ownership.`);await qm(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}i(Hm,"waitForDaemonLease");async function nd(e,n,t,r,o){let s,d=!1;try{if(s=await o.createRuntime(t.runtimeId),s.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");d=!0;let u=await Za({runtime:s,paths:e,endpoint:n,lock:r,...o.orphanExitMs!==void 0?{orphanExitMs:o.orphanExitMs}:{},...o.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},...o.integrationStatuses?{integrationStatuses:o.integrationStatuses}:{}});try{let m=await Le(n,{connectTimeoutMs:o.connectTimeoutMs});return $m(e,n,m,u)}catch(m){throw await u.close(),m}}catch(u){throw d||Tt(r),await s?.close(),u}}i(nd,"createClaimedDaemonLease");async function td(e,n,t){let r=await Le(n,{connectTimeoutMs:t}),o=!1,s,d=!1,u,m=i(()=>{if(o)return Promise.resolve();if(s)return s;let g=Promise.resolve(r.close?.()).then(()=>{o=!0});return s=g,g.finally(()=>{s===g&&(s=void 0)}).catch(()=>{}),g},"closeTransport");return{transport:r,endpoint:n,paths:e,ownsHost:!1,close:m,shutdown(){if(u)return u;let g=(async()=>{d||(await r.request("runtime.shutdown"),d=!0),await m()})();return u=g,g.finally(()=>{u===g&&(u=void 0)}).catch(()=>{}),g}}}i(td,"createAttachedLease");function $m(e,n,t,r){r.unref();let o=!1,s=!1,d,u;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,close(){if(o)return Promise.resolve();if(d)return d;let m=Promise.resolve(t.close?.()).then(()=>{o=!0});return d=m,m.finally(()=>{d===m&&(d=void 0)}).catch(()=>{}),m},shutdown(){if(s)return Promise.resolve();if(u)return u;let m=r.close().then(()=>{s=!0});return u=m,m.finally(()=>{u===m&&(u=void 0)}).catch(()=>{}),m}}}i($m,"createOwnedLease");function qm(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}i(qm,"delay");import{spawn as Km}from"node:child_process";import{appendFileSync as xR,closeSync as ad,existsSync as Ht,ftruncateSync as Xm,openSync as dd,readSync as Bm,renameSync as Um,statSync as ud,unlinkSync as Wm,writeSync as zm}from"node:fs";import{fileURLToPath as Gm}from"node:url";import Jm from"node:os";import be from"node:path";var rd=1e3,cd=256*1024;function qt(e){return be.join(e.rootDir,"bootstrap.log")}i(qt,"runtimeDaemonBootstrapLogPath");function Vm(e,n=cd){Se(e);let t=qt(e),r=Math.max(1,n),o=`${t}.1`;return ui(o,r),Ht(t)&&ud(t).size>=r&&(ui(t,r),Ht(o)&&Wm(o),Um(t,o)),dd(t,"a",384)}i(Vm,"openRuntimeDaemonBootstrapLog");function Qm(e,n=cd){ui(qt(e),Math.max(1,n))}i(Qm,"capRuntimeDaemonBootstrapLog");function ui(e,n){if(!Ht(e))return;let t=ud(e).size;if(t<=n)return;let r=dd(e,"r+");try{let o=Buffer.allocUnsafe(n),s=0;for(;s<o.length;){let d=Bm(r,o,s,o.length-s,t-n+s);if(d===0)break;s+=d}Xm(r,0),s>0&&zm(r,o,0,s,0)}finally{ad(r)}}i(ui,"capFileToTail");var Ne=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function ld(e){if(e.orphanExitMs!==void 0&&(!Number.isSafeInteger(e.orphanExitMs)||e.orphanExitMs<=0))throw new Error("orphanExitMs must be a positive safe integer.");let n=e.profile??"default",t=be.resolve(e.homeDir??Jm.homedir()),r=be.resolve(e.configHome??be.join(t,".kodax")),o=nn(r,n);Dt(o);let s=An(o.profile,kn(t,r));if(e.endpoint&&e.endpoint.path!==s.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let d=await Qn(o,e.healthCheck),u=Pn(d);if(u==="healthy"&&d.state){let a=d.state.status==="ready"?{...d,state:d.state}:await Zm(o,e,d);return id(o,rn(a.state),!1,e)}if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let m=await rp({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.orphanExitMs}),g=await Ym(o,e,m),R=rn(g.state);return id(o,R,g.state.pid===m.pid,e)}i(ld,"acquireRuntimeDaemonProcessLease");async function id(e,n,t,r){let o=await Le(n,{connectTimeoutMs:r.connectTimeoutMs}),s=!1,d,u=!1,m,g=i(()=>{if(s)return Promise.resolve();if(d)return d;let R=(async()=>{await o.close?.(),s=!0})();return d=R,R.finally(()=>{d===R&&(d=void 0)}).catch(()=>{}),R},"closeTransport");return{transport:o,endpoint:n,paths:e,ownsHost:t,close:g,shutdown(){if(m)return m;let R=(async()=>{u||(await o.request("runtime.shutdown"),u=!0),await g()})();return m=R,R.finally(()=>{m===R&&(m=void 0)}).catch(()=>{}),R}}}i(id,"connectProcessLease");async function Ym(e,n,t,r=Qn){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let s=await ep(e,n,t,r),d=Pn(s);if(d==="healthy"&&s.state?.status==="ready")return s.state.pid===t.pid?t.unref():await t.terminate(),{...s,state:s.state};if(d==="mismatch")throw new Ne("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=o-Date.now();if(u<=0)throw pd(e);await np(Math.min(Math.max(1,n.pollIntervalMs??100),u),e,t,n.startupSignal)}}catch(s){try{await t.terminate()}catch(d){throw new AggregateError([s,d],"Runtime daemon startup failed and its child process could not be reclaimed.")}try{Qm(e)}catch{}throw s}}i(Ym,"waitForHealthyDaemonStartup");async function Zm(e,n,t,r=Qn){let o=Date.now()+(n.startupTimeoutMs??6e4),s=t.state;if(s===void 0)throw new Ne("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!==s.runtimeId||d.state.pid!==s.pid||d.state.profile!==s.profile||d.state.endpoint!==s.endpoint))throw new Ne("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 Ne("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let m=o-Date.now();if(m<=0)throw pd(e);await un($t(Math.min(Math.max(1,n.pollIntervalMs??100),m)),n.startupSignal),d=await un(r(e,n.healthCheck),n.startupSignal)}}i(Zm,"waitForReadyRuntimeDaemonOwner");async function ep(e,n,t,r){let o=await un(Promise.race([r(e,n.healthCheck).then(s=>({kind:"health",observation:s})),t.exit.then(s=>({kind:"exit",exit:s}))]),n.startupSignal);if(o.kind==="exit"){if(ci(e,t))return r(e,n.healthCheck);if(o.exit.code===0&&o.exit.signal===null){let s=Math.min(rd,n.startupTimeoutMs??rd),d=Date.now()+s;for(;Date.now()<=d;){let u=await un(r(e,n.healthCheck),n.startupSignal);if(Pn(u)!=="missing"||ci(e,t))return u;await un($t(Math.min(n.pollIntervalMs??100,Math.max(1,d-Date.now()))),n.startupSignal)}}throw md(e,o.exit)}return o.observation}i(ep,"observeStartupHealth");async function np(e,n,t,r){let o=await un(Promise.race([$t(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(ci(n,t)){await un($t(e),r);return}throw md(n,o)}}i(np,"waitForStartupPoll");function ci(e,n){let t=oe(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(ci,"hasCompetingStartupOwner");function md(e,n){let t=n.signal!==null?`signal ${n.signal}`:`code ${n.code??"unknown"}`;return new Ne(`Runtime daemon child exited before becoming healthy (${t}). See daemon bootstrap log: ${qt(e)}`,"child_exit")}i(md,"runtimeDaemonExitedEarly");function pd(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Ne(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n} See daemon bootstrap log: ${qt(e)}`,"timeout")}i(pd,"runtimeDaemonStartupTimeout");function tp(e,n,t=process.execArgv){let r=[...n!==void 0?up(t,n.endsWith(".ts")):[],...n!==void 0?[n]:[],"daemon","serve","--profile",e.profile,"--home",e.homeDir,"--config-home",e.configHome];return e.defaultProvider!==void 0&&r.push("--provider",e.defaultProvider),e.defaultModel!==void 0&&r.push("--model",e.defaultModel),e.sessionsDir!==void 0&&r.push("--sessions-dir",e.sessionsDir),e.permissionTimeoutMs!==void 0&&r.push("--permission-timeout-ms",String(e.permissionTimeoutMs)),e.orphanExitMs!==void 0&&r.push("--orphan-exit-ms",String(e.orphanExitMs)),r}i(tp,"buildRuntimeDaemonServeArgs");async function rp(e){let n=dp();sp(n);let t=tp(e,n),r=Hi({args:t,env:ap({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=nn(e.configHome,e.profile),s=Vm(o),d;try{d=Km(process.execPath,r.args,{detached:!0,stdio:["ignore",s,s],windowsHide:!0,env:r.env})}finally{ad(s)}let u=new Promise(m=>{d.once("exit",(g,R)=>m({code:g,signal:R}))});return await new Promise((m,g)=>{d.once("spawn",m),d.once("error",g)}),ip(d,u)}i(rp,"spawnRuntimeDaemonServeProcess");function ip(e,n){return{pid:e.pid,exit:n,unref(){e.unref()},async terminate(){if(!(e.exitCode!==null||e.signalCode!==null)&&(await $i(e),!await op(n,1e3)))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}i(ip,"createRuntimeDaemonStartupProcess");async function op(e,n){let t;try{return await Promise.race([e.then(()=>!0),new Promise(r=>{t=setTimeout(()=>r(!1),n)})])}finally{t!==void 0&&clearTimeout(t)}}i(op,"didExitWithin");function sp(e){if(e!==void 0&&!Ht(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(sp,"assertRuntimeDaemonCliEntryAvailable");function ap(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??be.join(e.homeDir,".kodax")};return delete n[ji],n}i(ap,"createRuntimeDaemonServeEnvironment");function dp(){if(process.env.KODAX_BUNDLED==="true")return;let e=Gm(import.meta.url);if(e.endsWith(".ts"))return be.resolve(be.dirname(e),"..","kodax_cli.ts");let n=be.dirname(e),t=be.basename(n)==="chunks"?be.dirname(n):n;return be.join(t,"kodax_cli.js")}i(dp,"resolveDaemonCliEntry");function up(e,n){let t=[];for(let r=0;r<e.length;r+=1){let o=e[r]??"",s=o.toLowerCase();if(s==="--require"||s==="-r"){let d=e[r+1];d!==void 0&&(od(d)&&t.push(o,d),r+=1)}else if(s.startsWith("--require=")){let d=o.slice(10);od(d)&&t.push(o)}else(s.startsWith("--max-old-space-size")||s==="--enable-source-maps")&&t.push(o)}return n&&t.push("--import","tsx"),t}i(up,"daemonServeExecArgv");function od(e){return be.resolve(e)===be.resolve("scripts","production-env.cjs")}i(od,"isKodaXProductionEnvPreload");function $t(e){return new Promise(n=>setTimeout(n,e))}i($t,"delay");async function un(e,n){if(!n)return e;if(n.aborted)throw sd();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(sd()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(un,"raceRuntimeDaemonStartupStep");function sd(){return new Ne("Runtime daemon startup cancelled.","cancelled")}i(sd,"runtimeDaemonStartupCancelled");import{Worker as cp}from"node:worker_threads";import{existsSync as lp}from"node:fs";import{basename as mp,dirname as li,join as fd}from"node:path";import{fileURLToPath as gd,pathToFileURL as yd}from"node:url";function Rd(e,n={}){let t=pp(),r=new cp(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),o=new Map,s=new Set,d=0,u=!1,m=i(a=>{for(let y of o.values())y.reject(a);o.clear()},"rejectPending"),g=i(a=>{u||(u=!0,m(a),s.clear())},"markClosed");return r.on("message",a=>{if(Gn(a)){for(let v of s)v(a);return}if(!vn(a)&&!Sn(a)||!a.id)return;let y=o.get(a.id);if(!y)return;if(o.delete(a.id),vn(a)){y.resolve(a.result);return}let p=new Error(a.error.message);p.code=a.error.code,a.error.data!==void 0&&(p.data=a.error.data),y.reject(p)}),r.on("error",a=>g(a)),r.on("exit",a=>g(new Error(`Runtime Worker exited with code ${a}.`))),{transport:{request(a,y,p){if(u)return Promise.reject(new Error("Runtime Worker transport is closed."));let v=`worker_${++d}`;return new Promise((l,S)=>{o.set(v,{resolve:l,reject:S});try{r.postMessage(wt(v,a,y,p))}catch(b){o.delete(v),S(b instanceof Error?b:new Error(String(b)))}})},subscribe(a){return u?{close(){}}:(s.add(a),{close:i(()=>s.delete(a),"close")})},async close(){u||(g(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){u||g(new Error("Runtime Worker terminated.")),await r.terminate()}}}i(Rd,"createRuntimeWorkerTransport");function pp(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return lp(gd(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return yd(fd(li(process.execPath),"runtime-worker.js"));let e=li(gd(import.meta.url)),n=mp(e)==="chunks"?li(e):e;return yd(fd(n,"runtime-worker.js"))}i(pp,"resolveRuntimeWorkerUrl");var Oe=class extends Error{constructor(t,r,o,s="runtimeAutoModeGuardrail"){super(t,o);this.preflight=r;this.name="RuntimeDaemonCapabilityUpgradeError",this.capability=s}preflight;static{i(this,"RuntimeDaemonCapabilityUpgradeError")}code="daemon_capability_upgrade_required";recoverable=!0;restartRequired=!0;capability},cn=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function Pi(e){let n=N.resolve(e??zd.homedir());return{homeDir:n,configHome:e===void 0?N.resolve(Rr):N.join(n,".kodax")}}i(Pi,"resolveRuntimeDaemonClientLocation");function jn(e,n="default"){let t=Pi(e);return{...t,paths:nn(t.configHome,n)}}i(jn,"resolveRuntimeDaemonClientPaths");function dh(e={}){let{paths:n}=jn(e.homeDir,e.profile),t=`inline_${ye().replace(/-/g,"")}`,r=Bs(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),o=!1;return{profile:n.profile,ownerId:t,ownerPolicy:De(n),close(){o||(o=!0,Tt(r))}}}i(dh,"acquireKodaXInlineOwner");function uh(e={}){return De(jn(e.homeDir,e.profile).paths)}i(uh,"getKodaXRuntimeOwnerPolicy");function ch(e={}){let{paths:n}=jn(e.homeDir,e.profile),t=oe(n.lockFile);return{profile:n.profile,policy:De(n),ownerStatus:t!==void 0?"owned":F.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}i(ch,"getKodaXRuntimeOwnerState");function lh(e={}){return xt(jn(e.homeDir,e.profile).paths)}i(lh,"enableKodaXDaemonOwner");function mh(e){let{paths:n}=jn(e.homeDir,e.profile);if(oe(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Ks(n,e.mode,e.expectedRevision)}i(mh,"setKodaXRuntimeOwnerMode");var fp=["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"],gp=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),ph=Object.freeze({daemonOrphanExit:1}),zt=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},hd=5*6e4,Gt=1e4,Jt=1e3,wd=256*1024*1024,yp=64*1024,Rp=10,Gd=16*1024*1024,hp=Gd/2,wp=128*1024,vp=8,Jd=512*1024,vd=128*1024,Sp=256*1024,Ip=50,kp=200,Sd=1024,bp=new Set(["assistant.delta","thinking.delta","tool.progress","run.progress"]),Vd=new Set(["tool_call","tool_describe"]),Pp=new Set(["image","file","video"]);function xp(e,n){let t=N.relative(Ni(),e);return N.isAbsolute(t)||t.startsWith("..")?e:N.join(n,t)}i(xp,"rebaseAgentConfigPath");async function Ep(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 Dp(e);let K=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return Qd({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:K,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExitMs:e.daemonOrphanExitMs}:{},daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:K?{...e.requirements,runtimeAutoModeGuardrail:4,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return Tp(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:Jd},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},learningCenter:{version:1},skillLearningLoop:{version:1,activation:"project_scoped_canary",immutableDecisions:!0,recordGatedDiscovery:!0,exactUseAttribution:!0,rollback:!0},actorControlPlane:{version:1,methodNamespace:"agents"},sandboxRuntime:lt(),runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:ut,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};xi(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${ye().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.78",isolation:"inline"},r=e.homeDir?N.join(N.resolve(e.homeDir),".kodax"):Rr,o=of(e),s=Ho(o?{sessionsDir:o,configHome:r}:{configHome:r}),d=Tf(t.profile,s,e.sharedDaemonHost===!0),u=Np(),m=$f(e);cu(m);let g=rf(e),R=e.externalAgents?await ao({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:Go(N.join(g.runtimeDir,"agents"))}):void 0,a=Yp(g),y=Lp(g,a),p=Rf(a,e.permissionTimeoutMs??hd,g),v=ff(a,e.permissionTimeoutMs??hd),l=Xp(),S=Hp(),b=Wp(s,t,R,e.externalAgents?.defaultContext),k=new Map,T=new Map,c=[...ug(g.loadRunStatuses())].sort(Ei);for(let K of c){let ne=K.sessionOrder??(T.get(K.sessionId)??0)+1;T.set(K.sessionId,Math.max(T.get(K.sessionId)??0,ne));let ee=mf({...K,acceptedAt:K.acceptedAt??K.startedAt,sessionOrder:ne},a,g);k.set(ee.runId,lf(ee))}let w=!1,x,E=!1,A=!1,f=R===void 0,P=!1,I=i(()=>{if(w)throw new Error("KodaX runtime is closed")},"ensureOpen"),C=jp({bus:a,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,defaultConfigHome:r,ensureOpen:I,isClosed:i(()=>w,"isClosed"),artifacts:l,permissions:p,userInputs:v,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:g,runs:k,sessionManager:s,sessionAdmission:d,sessionOperations:u,agentPlane:R,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:b,settingsOwner:y}),M=Fp(t,r,s,a,g,I,K=>[...k.values()].some(ne=>ne.sessionId===K&&(ne.phase==="queued"||Fe(ne.phase))),y,K=>C.list({sessionId:K}),K=>p.service.listPending({sessionId:K}),K=>C.getAutoModeStats(K),u,(K,ne,ee)=>b.mutateSessionFile(K,ne,ee),K=>{C.releaseSession(K),p.releaseSession(K)},d),_=N.join(e.homeDir?N.resolve(e.homeDir):zd.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),W=gs({configHome:r,managedWorkspaceRoot:_,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:C,sessions:M,createSkillScriptRunner:i(K=>Ko({...K,snapshotRoot:N.join(_,"bindings")}),"createSkillScriptRunner")}),q=Is({rootDir:N.join(r,"learned"),userSkillsRoot:N.join(r,"skills"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[xp(Wi(process.cwd()),r)]}),$=i(()=>{if(x)return x;w=!0;let K=(async()=>{E||(C.closeAll("runtime closed"),p.rejectAll("runtime closed"),p.releaseAllSessionGrants(),v.rejectAll("runtime closed"),E=!0),await u.close();let ne=await Promise.allSettled([A?Promise.resolve():b.close("runtime closed").then(()=>{A=!0}),f?Promise.resolve():R.close().then(()=>{f=!0})]);P||(P=!0,a.close());let ee=ne.flatMap(He=>He.status==="rejected"?[He.reason]:[]);if(ee.length===1)throw ee[0];if(ee.length>1)throw new AggregateError(ee,"KodaX runtime cleanup failed.")})();return x=K,K.then(()=>{x===K&&(x=void 0)},()=>{x===K&&(x=void 0)}),K},"closeRuntime");return{identity:t,capabilities:n,sessions:M,runs:C,events:a.service,permissions:p.service,userInputs:v.service,credentials:_g(),hostTools:Lg(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:S,learning:q,config:$p(I,m),catalog:qp(I,m),mcp:Kp(I,m),artifacts:l.service,status:Jp({identity:t,permissions:p,userInputs:v,runs:k,sessionManager:s,sessionAdmission:d,workflows:S,actors:b}),diagnostics:Vp(a.service),admin:Gp(R),agents:zp(R,W,b,d,u,I),close:$}}i(Ep,"createKodaXRuntime");async function Dp(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?eu(e.daemonEndpoint):void 0,r=Pi(e.homeDir),o=await ed({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(s=>Ep({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,sharedDaemonHost:!0,daemonHostRuntimeId:s,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!o.ownsHost)throw await o.close(),new Error("External agent factories cannot be installed into an already-running daemon profile; configure its owner or use a unique profile.");try{let s=await Qd({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??Jn(o.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),d=!1,u=!1,m,g=i(()=>{if(m)return m;let R=(async()=>{u||(o.ownsHost?await o.shutdown():await o.close(),u=!0),d||(await s.close(),d=!0)})();return m=R,R.then(()=>{m===R&&(m=void 0)},()=>{m===R&&(m=void 0)}),R},"closeHostedRuntime");return{...s,identity:{...s.identity,isolation:"inline"},close:g}}catch(s){let u=(await Promise.allSettled([o.ownsHost?o.shutdown():o.close()])).filter(m=>m.status==="rejected").map(m=>m.reason);throw u.length>0?new AggregateError([s,...u],"Hosted daemon initialization failed and cleanup was incomplete."):s}}i(Dp,"createInProcessExternalAgentDaemon");async function Tp(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=Rd({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs},e.worker);try{let r=Fn(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=lu(r.identity);xi(r.capabilities,{...e.requirements,hardDispose:!0});let s=kt({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:Fn(r.capabilities)}),d=!1,u;return{...s,close:i(()=>{if(d)return Promise.resolve();if(u)return u;let g=(async()=>{let R;try{await Ap(t.transport.request("runtime.shutdown"),n)}catch(a){R=a}try{await t.terminate(),d=!0}catch(a){throw R!==void 0?new AggregateError([R,a],"Runtime Worker shutdown and forced termination both failed."):a}if(R!==void 0)throw R})();return u=g,g.finally(()=>{u===g&&(u=void 0)}).catch(()=>{}),g},"closeWorkerRuntime")}}catch(r){throw await t.terminate(),r}}i(Tp,"createWorkerHostedKodaXRuntime");function xi(e,n){if(!n?.hardDispose&&!n?.externalAgents&&n?.externalAgentAdmin===void 0&&n?.a2aConfigReconciler===void 0&&n?.operationDeduplication===void 0&&n?.sessionObservation===void 0&&n?.afterTurnInput===void 0&&n?.learningCenter===void 0&&n?.skillLearningLoop===void 0&&n?.interruptInput===void 0&&n?.askUserTransport===void 0&&n?.permissionCas===void 0&&n?.providerCredentialBroker===void 0&&n?.runBoundHostTools===void 0&&n?.coderOwnerFencing===void 0&&n?.crashOutcomeModel===void 0&&n?.coderFeatureMatrix===void 0&&n?.sessionAdmission===void 0&&n?.completeObservationSnapshot===void 0&&n?.contextCompaction===void 0&&n?.transcriptPaging===void 0&&n?.transcriptSearch===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.daemonManagement===void 0&&n?.daemonOrphanExit===void 0&&n?.integrationConfigResilience===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=Fn(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&&Id(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["skillLearningLoop",n.skillLearningLoop],["interruptInput",n.interruptInput],["askUserTransport",n.askUserTransport],["permissionCas",n.permissionCas],["providerCredentialBroker",n.providerCredentialBroker],["runBoundHostTools",n.runBoundHostTools],["coderOwnerFencing",n.coderOwnerFencing],["crashOutcomeModel",n.crashOutcomeModel],["coderFeatureMatrix",n.coderFeatureMatrix],["sessionAdmission",n.sessionAdmission],["completeObservationSnapshot",n.completeObservationSnapshot],["contextCompaction",n.contextCompaction],["transcriptPaging",n.transcriptPaging],["transcriptSearch",n.transcriptSearch],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["daemonManagement",n.daemonManagement],["daemonOrphanExit",n.daemonOrphanExit],["integrationConfigResilience",n.integrationConfigResilience],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,s]of r)s!==void 0&&Id(t,o,s)}i(xi,"assertRuntimeCapabilities");function Id(e,n,t){let r=e[n];if(!U(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}i(Id,"assertVersionedRuntimeCapability");async function Ap(e,n){let t;try{await Promise.race([e,new Promise((r,o)=>{t=setTimeout(()=>o(new Error(`Runtime Worker shutdown timed out after ${n}ms.`)),n),t.unref?.()})])}finally{t!==void 0&&clearTimeout(t)}}i(Ap,"settleWithin");async function Qd(e={}){return Zd(e,!0)}i(Qd,"connectKodaXRuntime");function Yd(e,n,t){let r=e[n];return U(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i(Yd,"hasVersionedRuntimeCapability");async function Cp(e){if(!Yd(e.capabilities,"daemonManagement",1))throw new Oe("The running daemon is too old to perform a fenced in-place upgrade. Stop it manually after all runs and pending interactions finish, then retry.",void 0,void 0,e.requiredCapability);let n=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 Oe(`The running daemon needs ${e.requiredCapability} v${e.requiredVersion} but cannot be replaced safely yet: ${t.preflight.blockers.join(", ")}. Finish or cancel that work and retry.`,t.preflight,void 0,e.requiredCapability);await n.daemon.stopForInline({expectedRuntimeId:t.runtimeId,expectedRevision:t.revision,expectedOwnerPolicyRevision:t.ownerPolicy.revision})}catch(o){throw o instanceof Oe?o:new Oe("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:o},e.requiredCapability)}finally{let o=!1;await n.close().then(()=>{o=!0}).catch(s=>{Z({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:de(s)})}),o||await e.lease.close().catch(s=>{Z({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:de(s)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;oe(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Oe("The legacy daemon accepted the upgrade stop but did not release its owner fence before timeout. Retry after the daemon exits.",void 0,void 0,e.requiredCapability);await new Promise(o=>setTimeout(o,50))}}catch(o){try{xt(e.lease.paths)}catch(s){throw new Oe("The legacy daemon upgrade failed and daemon ownership could not be restored automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:new AggregateError([o,s])},e.requiredCapability)}throw o}try{xt(e.lease.paths)}catch(o){throw new Oe("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:o},e.requiredCapability)}}i(Cp,"replaceRuntimeDaemonForCapabilityUpgrade");async function Zd(e,n){mi("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),mi("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs),mi("daemonOrphanExitMs",e.daemonOrphanExitMs);let t=e.endpoint!==void 0?eu(e.endpoint):void 0,r=Pi(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await ld({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.daemonOrphanExitMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,s=t??o?.endpoint??(e.transport===void 0?An(e.profile??"default",kn(r.homeDir,r.configHome)):void 0),d=e.transport??o?.transport??(s!==void 0?await Le(s,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!d)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=_p(e),m,g={},R,a,y=!1;try{let v={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${ye().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}:{}},l=Fn(await d.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:v,capabilities:{...e.capabilities,operationDeduplication:!0},...s!==void 0?{endpoint:s.path}:{}}));m=lu(l.identity),g=l.capabilities===void 0?{}:Fn(l.capabilities),R=typeof l.journalEpoch=="string"?l.journalEpoch:void 0,a=Mp(l.grantedScopes);let S=e.autoStart===!0?{...e.requirements,runtimeAutoModeGuardrail:4,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:e.requirements,b=[{name:"runtimeAutoModeGuardrail",version:S?.runtimeAutoModeGuardrail},{name:"daemonOrphanExit",version:S?.daemonOrphanExit}].find(T=>T.version!==void 0&&!Yd(g,T.name,T.version));if(b!==void 0){if(!n||e.autoStart!==!0||o===void 0)throw new Oe(`Runtime daemon does not support ${b.name} v${b.version}. Stop all daemon work and restart it with a compatible KodaX installation.`,void 0,void 0,b.name);try{await Cp({identity:m,capabilities:g,transport:d,lease:o,...R!==void 0?{journalEpoch:R}:{},...a!==void 0?{grantedScopes:a}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredCapability:b.name,requiredVersion:b.version})}finally{y=!0}return Zd(e,!1)}xi(g,S);let k=e.profile??"default";if(m.profile!==k)throw new Error(`Runtime daemon profile mismatch: expected ${k}, got ${m.profile}`)}catch(v){throw y||(o!==void 0?await o.close():await d.close?.()),v}let p=kt({identity:{...m,mode:"daemon",isolation:"process"},transport:d,capabilities:g,...R!==void 0?{journalEpoch:R}:{},...a!==void 0?{grantedScopes:a}:{}});return o?{...p,async close(){await p.close()}}:p}i(Zd,"connectKodaXRuntimeInternal");function mi(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(mi,"assertPositiveRuntimeTimeout");function Mp(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&Op(t));return n.length===e.length?n:void 0}i(Mp,"parseRuntimeGrantedScopes");function Op(e){return e==="session:observe"||e==="session:write"||e==="run:control"||e==="interaction:respond"||e==="permission:respond"||e==="permission:grant-admin"||e==="integration:admin"||e==="workflow:control"||e==="learning:read"||e==="learning:control"||e==="artifact:write"||e==="agent:control"||e==="credential:register"||e==="host-tool:register"||e==="owner:admin"||e==="daemon:admin"}i(Op,"isRuntimeGrantedScope");function _p(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Jn(jn(e.homeDir,e.profile).paths)}i(_p,"resolveConnectDaemonToken");function eu(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(eu,"normalizeRuntimeDaemonEndpoint");function Lp(e,n){let t=new Map,r=new Map,o=new Set,s=i((u,m)=>{let R=(r.get(u)??Promise.resolve()).then(m),a=R.then(()=>{},()=>{});return r.set(u,a),a.then(()=>{r.get(u)===a&&r.delete(u)}),R},"enqueue"),d=i((u,m,g)=>{t.set(u,m);for(let R of o)R(u,m,g);n.emit("session.settings.updated",{sessionId:u,revision:m.revision,settings:m.value,patch:g},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let m=e.loadSessionSettingsVersioned(u);return t.set(u,m),m},peek(u){return t.get(u)},update(u,m,g,R){return s(u,()=>{let a=e.loadSessionSettingsVersioned(u);if(g!==void 0&&a.revision!==g)throw it(`Session settings revision ${g} is stale; current revision is ${a.revision}`,a.revision);let y=Cf(a.value,m);R(y);let p={revision:a.revision+1,value:y};return e.saveSessionSettingsVersioned(u,p),d(u,p,m),p})},async persistAutoModeEngine(u,m){let g=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:g.revision,value:{...g.value,autoModeEngine:m}}),await s(u,()=>{let R=e.loadSessionSettingsVersioned(u);if(R.value.autoModeEngine===m){t.set(u,R);return}let a={revision:R.revision+1,value:{...R.value,autoModeEngine:m}};e.saveSessionSettingsVersioned(u,a),d(u,a,{autoModeEngine:m})})},subscribe(u){return o.add(u),{close:i(()=>{o.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}i(Lp,"createRuntimeSessionSettingsOwner");function Np(){let e=new Map,n=!1;return{run(t,r){if(n)return Promise.reject(new Error("KodaX runtime is closed"));let s=(e.get(t)??Promise.resolve()).then(r),d=s.then(()=>{},()=>{});return e.set(t,d),d.then(()=>{e.get(t)===d&&e.delete(t)}),s},async close(){n=!0,await Promise.all([...e.values()])}}}i(Np,"createRuntimeSessionOperationGate");function Fp(e,n,t,r,o,s,d,u,m,g,R,a,y,p,v){let l=new Set,S=i((c,w,x)=>({id:c,title:w.title,...w.gitRoot?{gitRoot:w.gitRoot}:{},...w.runtimeInfo?.workspaceRoot?{workspaceRoot:w.runtimeInfo.workspaceRoot}:{},...w.runtimeInfo?.surface?{surface:w.runtimeInfo.surface}:{},...w.runtimeInfo?.profileId?{profileId:w.runtimeInfo.profileId}:{},...x?{createdAt:x}:{}}),"toRuntimeSession"),b,k=i(async c=>{for(let w=0;w<vp;w+=1){let x=r.currentSessionSeq(c),E=await v.loadRequired(c),[A,f,P]=await Promise.all([t.loadFullTranscript(c),m(c),g(c)]),I=await u.read(c),C=r.currentSessionSeq(c);if(x===C)return{runtimeId:e.runtimeId,cursor:C,transcriptRevision:Wt(A),session:S(c,E),transcript:A===null?null:Nd(A),settings:I,runs:f,pendingPermissions:P,live:r.projectSession(c)}}throw je(`Session ${c} changed continuously while taking a snapshot`)},"captureObservationSnapshot"),T=i((c,w)=>a.run(c,async()=>{s();let x=await v.loadExecutable(c);return y(c,"mutate",()=>w(x))}),"mutateActiveSession");return{async create(c={}){s(),v.assertCreate(c);let w=c.sessionId??await lr();if(l.has(w))throw Object.assign(new Error(`Session already exists: ${w}`),{code:"conflict"});l.add(w);try{if(await t.loadSession(w)!==null)throw Object.assign(new Error(`Session already exists: ${w}`),{code:"conflict"});let x=c.projectPath?N.resolve(c.projectPath):void 0,E=c.gitRoot?N.resolve(c.gitRoot):x,A=kf(c,x,E),f={messages:[],title:c.title??"",gitRoot:E??"",...c.tag!==void 0?{tag:c.tag}:{},...A!==void 0?{runtimeInfo:A}:{},scope:"user"};await t.storage.save(w,f);let P=S(w,f,new Date().toISOString());return r.emit("session.created",P,{sessionId:w,runId:w}),P}finally{l.delete(w)}},async load(c){s();let w=await v.loadRequired(c),x=S(c,w);return r.emit("session.loaded",x,{sessionId:c,runId:c}),x},async list(c){return s(),v.assertFilter(c),(await t.listSessions(c)).filter(v.admitsSummary).map(ru)},async transcript(c){return s(),await v.loadRequired(c),t.loadFullTranscript(c)},async transcriptPage(c){s(),await v.loadRequired(c.sessionId);let w=await t.loadFullTranscript(c.sessionId);return w===null?null:Nd(w,c.cursor,c.limit)},async transcriptEntryChunk(c){s(),await v.loadRequired(c.sessionId);let w=r.currentSessionSeq(c.sessionId);if(b?.sessionId===c.sessionId&&b.sessionSeq===w&&b.revision===c.revision&&b.entryIndex===c.entryIndex)return Fd(c,b.revision,b.entryId,b.encoded);let x=await t.loadFullTranscript(c.sessionId);if(x===null)return null;let E=Wt(x);if(c.revision!==E)throw je("Transcript revision changed; request a fresh observation snapshot");let A=x.transcriptEntries[c.entryIndex];if(A===void 0)throw new Error(`Transcript entry index is out of range: ${c.entryIndex}`);let f=Buffer.from(JSON.stringify(A),"utf8");return b={sessionId:c.sessionId,sessionSeq:w,revision:E,entryIndex:c.entryIndex,...typeof A.entryId=="string"?{entryId:A.entryId}:{},encoded:f},Fd(c,E,b.entryId,f)},async transcriptSearch(c){s(),await v.loadRequired(c.sessionId);let w=await t.loadFullTranscript(c.sessionId);if(w===null)return null;let x=w.lineage??ro(w.messages),E=io(x,{query:c.query,limit:c.limit,role:c.role,scope:c.scope}),A=new Map(w.transcriptEntries.map((P,I)=>[P.entryId,I])),f=E.hits.flatMap(P=>{let I=A.get(P.entryId);return I===void 0?[]:[{...P,entryIndex:I}]});return{revision:Wt(w),hits:f}},async observe(c,w){s();let x=[],E,A=!1,f=i(I=>{if(!(A||E!==void 0&&I.seq<=E))try{w(I)}catch(C){Z({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${I.type}`,detail:de(C)})}},"deliver"),P=r.service.subscribe({sessionId:c},I=>{E===void 0?x.push(I):f(I)});try{let I=await k(c);E=I.cursor;for(let C of x.splice(0).sort((M,_)=>M.seq-_.seq))f(C);return{snapshot:I,close(){A||(A=!0,x.length=0,P.close())}}}catch(I){throw A=!0,P.close(),I}},async fork(c){s();let w=await v.loadRequired(c.sessionId),x=await t.forkSession(c.sessionId,{...c.selector!==void 0?{selector:c.selector}:{},...c.newSessionId!==void 0?{sessionId:c.newSessionId}:{},...c.title!==void 0?{title:c.title}:{}});if(!x){let A=c.newSessionId??await lr(),f={...w,title:c.title??w.title,messages:w.messages.map(Ng),actorSnapshot:void 0};await t.storage.save(A,f);let P=S(A,f);return r.emit("session.created",P,{sessionId:A,runId:A}),P}let E=S(x.sessionId,x.data);return r.emit("session.created",E,{sessionId:x.sessionId,runId:x.sessionId}),E},async getSettingsVersioned(c){return s(),await v.loadRequired(c),u.read(c)},async getSettings(c){return(await this.getSettingsVersioned(c)).value},async getAutoModeStats(c){s(),await v.loadRequired(c);let w=(await u.read(c)).value;if(he(w.permissionMode)!=="auto")return;let x=R(c);return{engine:w.autoModeEngine??x?.engine??"llm",...w.autoModeClassifierModel!==void 0?{classifierModel:w.autoModeClassifierModel}:{},classifierHealth:x?.classifierHealth??"healthy",denials:x?.denials??gr(),breaker:x?.breaker??yr()}},async updateSettings(c,w){return T(c,async x=>(await u.update(c,w,void 0,E=>Si(x,E))).value)},async updateSettingsVersioned(c,w,x){return T(c,E=>u.update(c,w,x.expectedRevision,A=>Si(E,A)))},async appendNotice(c){return T(c.sessionId,async()=>{let w=await t.appendClientNotice(c.sessionId,{content:c.content,...c.source!==void 0?{source:c.source}:{}});return w&&r.emit("session.notice.appended",{sessionId:c.sessionId,entry:w},{sessionId:c.sessionId,runId:c.sessionId}),w})},async rewind(c){return T(c.sessionId,async()=>{On(c.sessionId,d);let w=await t.rewindSession(c.sessionId,{...c.selector!==void 0?{selector:c.selector}:{}});if(!w)return null;let x=S(c.sessionId,w);return r.emit("session.rewound",{sessionId:c.sessionId,selector:c.selector,session:x},{sessionId:c.sessionId,runId:c.sessionId}),x})},async setActiveEntry(c){return T(c.sessionId,async()=>{On(c.sessionId,d);let w=await t.setActiveEntry(c.sessionId,c.entryId);if(!w)return null;let x=S(c.sessionId,w);return r.emit("session.active_entry.updated",{sessionId:c.sessionId,entryId:c.entryId,session:x},{sessionId:c.sessionId,runId:c.sessionId}),x})},async compact(c){return T(c.sessionId,async w=>{On(c.sessionId,d);let x=Date.now(),E=w.lineage?.entries.filter(f=>f.type==="compaction").length??0;r.emit("context.compaction.started",{meta:{contextId:c.sessionId,contextKind:"root",contextRevision:E}},{sessionId:c.sessionId,runId:c.sessionId});let A=E;try{let f=(await u.read(c.sessionId)).value,P=await t.compactSession(c.sessionId,{...c.provider!==void 0?{provider:c.provider}:{},...c.model!==void 0?{model:c.model}:{},...c.customInstructions!==void 0?{customInstructions:c.customInstructions}:{},...c.contextWindow!==void 0?{contextWindow:c.contextWindow}:{},...(c.triggerPercent??f.compactionTriggerPercent)!==void 0?{triggerPercent:c.triggerPercent??f.compactionTriggerPercent}:{},...(c.triggerTokens??f.compactionTriggerTokens)!==void 0?{triggerTokens:c.triggerTokens??f.compactionTriggerTokens}:{}}),I=await t.loadSession(c.sessionId),C=I?S(c.sessionId,I):void 0;return A=I?.lineage?.entries.filter(M=>M.type==="compaction").length??E,r.emit("context.compaction.finished",{contextId:c.sessionId,contextKind:"root",contextRevision:A,source:"manual",tokensBefore:P.tokensBefore,tokensAfter:P.tokensAfter,committed:P.compacted,elapsedMs:Date.now()-x,beforeRevision:E,afterRevision:A,...P.report??{},...P.reason!==void 0?{reason:P.reason}:{}},{sessionId:c.sessionId,runId:c.sessionId}),P.compacted&&r.emit("session.compacted",{sessionId:c.sessionId,result:{compacted:P.compacted,tokensBefore:P.tokensBefore,tokensAfter:P.tokensAfter},...C!==void 0?{session:C}:{}},{sessionId:c.sessionId,runId:c.sessionId}),{...P,...C!==void 0?{session:C}:{}}}finally{r.emit("context.compaction.ended",{meta:{contextId:c.sessionId,contextKind:"root",contextRevision:A}},{sessionId:c.sessionId,runId:c.sessionId})}})},async archive(c){await a.run(c,async()=>{s(),await v.loadRequired(c),On(c,d),await y(c,"archive",async w=>{if(!w)throw new Error(`Actor owner is unavailable for Session archive: ${c}`);if(!await t.storage.archiveOwned(c,w))throw new Error(`Session not found or not archived: ${c}`)})})},async unarchive(c){await a.run(c,async()=>{s(),await v.loadRequired(c),On(c,d),await y(c,"unarchive",async w=>{if(!w)throw new Error(`Actor owner is unavailable for Session unarchive: ${c}`);if(!await t.storage.unarchiveOwned(c,w))throw new Error(`Session not found or not unarchived: ${c}`)})})},async delete(c){await a.run(c,async()=>{s(),await v.loadRequired(c),On(c,d),await y(c,"delete",async w=>{if(!w)throw new Error(`Actor owner is unavailable for Session deletion: ${c}`);let x=(await t.listRunningSessions()).find(E=>E.sessionId===c);x&&Ud(c,{error:{code:"session_running",runningProcess:{pid:x.pid,startedAt:x.startedAt}}});try{await t.storage.deleteOwned(c,w)}catch(E){if(U(E)&&(E.code==="actor_owner_conflict"||E.code==="actor_owner_unknown"))throw E;Z({source:"runtime.sessions",level:"error",message:"Owned Session deletion failed.",detail:{sessionId:c,error:E}}),Ud(c,{error:{code:"delete_failed"}})}}),u.release(c),p(c)})}}}i(Fp,"createRuntimeSessionService");function jp(e){let n=new Map,t=new Map,r=new Map,o=new Map,s=new Map,d=new Map;for(let f of e.runs.values())d.set(f.sessionId,Math.max(d.get(f.sessionId)??0,f.sessionOrder));let u=i(f=>{let P=e.runs.get(f);if(!P)throw new Error(`Runtime run not found: ${f}`);return P},"getRecord"),m=i(f=>{n.get(f.sessionId)===f.runId&&n.delete(f.sessionId)},"releaseActiveRun"),g=i(f=>{t.get(f.runId)?.(),t.delete(f.runId)},"releaseActiveQueueRoute"),R=i(f=>{f.releaseAbortSignalSubscription?.(),f.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),a=i(f=>{f.actorSession===void 0||t.has(f.runId)||t.set(f.runId,Ki(ir(f.sessionId,"/root")))},"registerActiveQueueRoute"),y=i((f,P)=>{f.start?.resolve(P),f.start=void 0,delete f.providerCredential},"resolveRunStart"),p=i((f,P)=>(R(f),e.permissions.rejectForRun(f.runId,"runtime run ended"),e.userInputs.rejectForRun(f.runId,"runtime run ended"),f.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),y(f,P),g(f),m(f),cg(e.runs),k(f.sessionId),P),"finishRun"),v=i((f,P)=>{let I=Rg(P,f),C=yg(P),M=f.terminalEmitted?f.phase:C.phase;return f.terminalEmitted||(f.error=I.message),Bt(e.bus,e.persistence,f,M,C.terminal),{runId:f.runId,sessionId:f.sessionId,phase:f.phase,error:I}},"failedRunResult"),l=i((f,P,I)=>{let C=f.phase==="queued";f.phase==="queued"&&Qp(s,f),R(f),f.running?.abort(new Error(P)),f.abortController?.abort(new Error(P)),e.permissions.rejectForRun(f.runId,P),e.userInputs.rejectForRun(f.runId,P),f.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),Bt(e.bus,e.persistence,f,"cancelled",{code:"cancelled",effectOutcome:C?"none":"unknown",message:P});let M={runId:f.runId,sessionId:f.sessionId,phase:f.phase};return y(f,M),g(f),m(f),I&&!e.isClosed()&&k(f.sessionId),M},"cancelRun"),S=i(f=>{if(!f.start||e.isClosed()){l(f,"runtime closed",!1);return}f.phase="running",f.interruptInputOpen=f.actorSession!==void 0,f.queuedAt=void 0,f.runningAt=new Date().toISOString(),n.set(f.sessionId,f.runId),ln(e.bus,e.persistence,f,Pe(f)),e.bus.emit("run.started",Pe(f),{sessionId:f.sessionId,runId:f.runId});let P=If({bus:e.bus,original:f.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:f,onMidTurnUserMessages:i(q=>w(f,q),"onMidTurnUserMessages")}),I=Bp({agentPlane:e.agentPlane,defaultConfigHome:e.defaultConfigHome,events:P,model:f.model,options:f.start.options,provider:f.provider,record:f,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:f.sessionId,runId:f.runId,provider:f.provider,...f.model!==void 0?{model:f.model}:{},...I.effort!==void 0?{effort:I.effort}:{},...I.thinking!==void 0?{thinking:I.thinking}:{},...I.reasoningMode!==void 0?{reasoningMode:I.reasoningMode}:{},...I.agentMode!==void 0?{agentMode:I.agentMode}:{},...f.permissionMode!==void 0?{permissionMode:f.permissionMode}:{},...f.autoModeEngine!==void 0?{autoModeEngine:f.autoModeEngine}:{},...f.autoModeClassifierModel!==void 0?{autoModeClassifierModel:f.autoModeClassifierModel}:{},...f.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:f.autoModeTimeoutMs}:{},...f.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:f.autoModeSpeculativeWindowMs}:{},...I.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:I.compaction.triggerPercent}:{},...I.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:I.compaction.triggerTokens}:{},...I.context?.executionCwd!==void 0?{executionCwd:I.context.executionCwd}:{},...I.context?.shellExecution!==void 0?{shellKind:I.context.shellExecution.shell.kind,shellExecutionFingerprint:mr(I.context.shellExecution)}:{}},{sessionId:f.sessionId,runId:f.runId,...f.turnId!==void 0?{turnId:f.turnId}:{}}),f.mode==="managed_task"){let q=new AbortController;f.abortController=q;let $=I.abortSignal,re=i(()=>{f.releaseAbortSignalSubscription=void 0,f.interruptInputOpen=!1,q.abort($?.reason)},"handleUpstreamAbort");$?.aborted&&re();let K=i(()=>fo({...I,abortSignal:q.signal},f.start.prompt),"managedOperation"),ne=f.providerCredential!==void 0?rr(f.provider,f.providerCredential,K):K();$!==void 0&&!$.aborted?($.addEventListener("abort",re,{once:!0}),f.releaseAbortSignalSubscription=()=>{$.removeEventListener("abort",re)}):$?.aborted&&!q.signal.aborted&&re(),a(f),ne.then(ee=>{let He=f.terminalEmitted?f.phase:ee.interrupted?"interrupted":ee.success?"completed":"failed",nr=!ee.success&&!ee.interrupted&&ee.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...ee.signalReason!==void 0?{message:ee.signalReason}:{}}:void 0;return Bt(e.bus,e.persistence,f,He,nr),{runId:f.runId,sessionId:f.sessionId,phase:f.phase,result:ee,...f.terminal!==void 0?{terminal:f.terminal}:{}}}).catch(ee=>v(f,ee)).then(ee=>p(f,ee));return}let C=i(()=>po(I,f.start.prompt),"codingOperation"),M=f.providerCredential!==void 0?rr(f.provider,f.providerCredential,C):C();f.running=M;let _=I.abortSignal,W=i(()=>{f.releaseAbortSignalSubscription=void 0,f.interruptInputOpen=!1},"handleUpstreamAbort");_?.aborted?W():_!==void 0&&(_.addEventListener("abort",W,{once:!0}),f.releaseAbortSignalSubscription=()=>{_.removeEventListener("abort",W)}),a(f),M.result.then(q=>{let $=f.terminalEmitted?f.phase:q.interrupted?"interrupted":q.success?"completed":"failed";return Bt(e.bus,e.persistence,f,$),{runId:f.runId,sessionId:f.sessionId,phase:f.phase,result:q}}).catch(q=>v(f,q)).then(q=>p(f,q))},"launchRecord"),b=i(f=>{try{S(f);return}catch(P){return p(f,v(f,P)),{error:P}}},"startRecord"),k=i(f=>{let P=s.get(f);if(!P||P.length===0||n.has(f))return;let I=P.shift();if(P.length===0&&s.delete(f),!I)return;let C=e.runs.get(I);if(!C||C.phase!=="queued"){k(f);return}b(C)},"drainNext"),T=i(f=>{let P=s.get(f.sessionId)??[];P.push(f.runId),s.set(f.sessionId,P),ln(e.bus,e.persistence,f,Pe(f)),e.bus.emit("run.queued",Pe(f),{sessionId:f.sessionId,runId:f.runId})},"enqueue"),c=i(f=>{let P=Pe(f);ln(e.bus,e.persistence,f,P),e.bus.emit("run.updated",P,{sessionId:f.sessionId,runId:f.runId,...f.turnId!==void 0?{turnId:f.turnId}:{}})},"publishRunUpdate"),w=i((f,P)=>{let I=new Map;for(let $ of f.interruptInputs)$.state==="queued"&&$.queueMessageId!==void 0&&I.set($.queueMessageId,$);let C=[],M=new Set;for(let $ of P){if(M.has($))continue;M.add($);let re=I.get($);re!==void 0&&C.push(re)}if(C.length===0)return;let _=new Date().toISOString(),W=C.map($=>{if($.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${$.inputId}`);return{inputId:$.inputId,afterRunId:$.afterRunId,input:$.input,queuedAt:$.queuedAt,deliveredAt:_,...$.origin!==void 0?{origin:$.origin}:{}}}),q={sessionId:f.sessionId,runId:f.runId,...f.turnId!==void 0?{turnId:f.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:W},q,()=>{for(let $ of C)$.state="delivered",$.deliveredAt=_,delete $.queueMessageId})}catch($){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${de($).message}`,inputIds:C.map(re=>re.inputId)},q),$}c(f)},"deliverInterruptInputs"),x=e.settingsOwner.subscribe((f,P)=>{for(let I of e.runs.values())I.sessionId!==f||I.phase!=="queued"&&!Fe(I.phase)||(I.permissionMode=P.value.permissionMode,I.autoModeEngine=he(P.value.permissionMode)==="auto"?P.value.autoModeEngine??"llm":P.value.autoModeEngine,I.autoModeClassifierModel=P.value.autoModeClassifierModel,I.autoModeTimeoutMs=P.value.autoModeTimeoutMs,I.autoModeSpeculativeWindowMs=P.value.autoModeSpeculativeWindowMs,c(I))}),E=i(async(f,P)=>{e.ensureOpen();let I=Ld(f,e.artifacts,P),C=await e.sessionAdmission.loadExecutable(f.sessionId),M=(await e.settingsOwner.read(f.sessionId)).value;Si(C,M);let _=Ef(f.options??{},M,I.inputArtifacts,C),W=await e.actorRegistry.forSession(f.sessionId,_.maxConcurrentThreadsPerSession),q=_.agentMode==="sa"?void 0:W,$=_.provider??e.defaultProvider;if(!$)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let re=f;if(re.providerCredential!==void 0&&re.providerCredentialProvider!==void 0&&re.providerCredentialProvider!==$)throw Og(`Credential lease is bound to ${re.providerCredentialProvider}, not ${$}.`);let K=_.modelOverride??_.model??e.defaultModel??_i($)[0]?.id,ne=f.trustedRunId??sg();if(e.runs.has(ne))throw it(`Runtime run already exists: ${ne}`,0);let ee=e.enableSharedInteractions||he(M.permissionMode)==="auto";if(Nf(M,K),ee&&_.guardrails?.some(Re=>Re.kind==="tool"&&Re.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let He=ee?xg({sessionId:f.sessionId,provider:$,model:K,options:_,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let Re=n.get(f.sessionId);return Re===void 0?void 0:e.runs.get(Re)},"getRecord"),onEngineChange:i(Re=>{for(let $e of e.runs.values())$e.sessionId===f.sessionId&&($e.phase==="queued"||Fe($e.phase))&&$e.autoModeEngine!==Re&&($e.autoModeEngine=Re,c($e));e.settingsOwner.persistAutoModeEngine(f.sessionId,Re).catch($e=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${de($e).message}`},{sessionId:f.sessionId,runId:f.sessionId})})},"onEngineChange")}):void 0;await He?.prepare?.();let nr=He===void 0?_:{..._,guardrails:[..._.guardrails??[],He]},Ti=new Date().toISOString(),Ai=i(()=>{},"resolveResult"),Ci=new Promise(Re=>{Ai=Re}),Hn=f.requiredAfterRunId,pn=Hn===void 0?void 0:u(Hn);if(pn!==void 0){if(pn.sessionId!==f.sessionId)throw new Error(`Runtime continuation target ${Hn} does not belong to session ${f.sessionId}`);if(!Fe(pn.phase)&&pn.phase!=="queued")throw new zt(pn.runId)}let Mi=(d.get(f.sessionId)??0)+1;d.set(f.sessionId,Mi);let tr=pn!==void 0||n.has(f.sessionId),st={runId:ne,sessionId:f.sessionId,phase:tr?"queued":"running",startedAt:Ti,sessionOrder:Mi,...tr?{queuedAt:Ti}:{},provider:$,...K!==void 0?{model:K}:{},...f.permissionBroker!==void 0?{permissionBroker:f.permissionBroker}:{},...M.permissionMode!==void 0?{permissionMode:M.permissionMode}:{},...M.autoModeClassifierModel!==void 0?{autoModeClassifierModel:M.autoModeClassifierModel}:{},...M.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:M.autoModeTimeoutMs}:{},...M.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:M.autoModeSpeculativeWindowMs}:{},...he(M.permissionMode)==="auto"?{autoModeEngine:M.autoModeEngine??"llm"}:M.autoModeEngine!==void 0?{autoModeEngine:M.autoModeEngine}:{},..._.reasoningMode!==void 0?{reasoning:_.reasoningMode}:{},mode:f.mode??"coding",...f.providerCredential!==void 0?{providerCredential:f.providerCredential}:{},hadProviderCredential:f.providerCredential!==void 0,...f.origin!==void 0?{origin:f.origin}:{},...Hn!==void 0?{continuation:{inputId:ne,afterRunId:Hn,delivery:"after_turn",contentPreview:jd(I.prompt)}}:{},interruptInputs:[],...f.agentContext??e.defaultAgentContext?{agentContext:f.agentContext??e.defaultAgentContext}:{},...q?{actorSession:q}:{},interruptInputOpen:!1,result:Ci,start:{prompt:I.prompt,inputArtifacts:I.inputArtifacts,options:nr,resolve:Ai},terminalEmitted:!1};if(e.runs.set(ne,st),tr)T(st);else{let Re=b(st);if(Re!==void 0)throw Re.error}return{runId:ne,sessionId:f.sessionId,get turnId(){return st.turnId},result:Ci}},"startRun"),A=i((f,P="runtime.runs.start")=>e.sessionOperations.run(f.sessionId,()=>E(f,P)),"start");return{start:A,async submitInput(f){e.ensureOpen(),await e.sessionAdmission.loadRequired(f.sessionId);let P=u(f.afterRunId);if(P.sessionId!==f.sessionId)throw new Error(`Runtime continuation target ${f.afterRunId} does not belong to session ${f.sessionId}`);if(!Fe(P.phase)&&P.phase!=="queued")return{accepted:!1,delivery:f.delivery,sessionId:f.sessionId,afterRunId:f.afterRunId,reason:"stale_run"};if(f.delivery==="interrupt"){if(!Fe(P.phase)||n.get(f.sessionId)!==P.runId)return{accepted:!1,delivery:f.delivery,sessionId:f.sessionId,afterRunId:f.afterRunId,reason:"stale_run"};if(P.actorSession===void 0)return{accepted:!1,delivery:f.delivery,sessionId:f.sessionId,afterRunId:f.afterRunId,reason:"unsupported_capability"};if(!P.interruptInputOpen)return{accepted:!1,delivery:f.delivery,sessionId:f.sessionId,afterRunId:f.afterRunId,reason:"interrupt_window_closed"};if(f.credential!==void 0||f.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let _=Ld({sessionId:f.sessionId,input:f.input},e.artifacts,"runtime.runs.submitInput"),W=structuredClone(f.input),q=f,$=q.trustedInputId??ag();if(P.interruptInputs.some(ee=>ee.inputId===$))throw it(`Runtime interrupt input already exists: ${$}`,0);let re=Xi({sessionId:f.sessionId,content:_.prompt,inputArtifacts:_.inputArtifacts,provider:P.provider,...P.model!==void 0?{model:P.model}:{}}),K=new Date().toISOString(),ne={inputId:$,afterRunId:f.afterRunId,delivery:"interrupt",state:"queued",contentPreview:jd(_.prompt),queuedAt:K,...q.origin!==void 0?{origin:q.origin}:{},input:W,queueMessageId:re};return P.interruptInputs.push(ne),c(P),e.bus.emit("run.input.queued",{input:mu(ne)},{sessionId:P.sessionId,runId:P.runId,...P.turnId!==void 0?{turnId:P.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:$,runId:P.runId,sessionId:f.sessionId,afterRunId:f.afterRunId,sessionOrder:P.sessionOrder}}let I=f,C;try{C=await A({sessionId:f.sessionId,input:f.input,...I.options!==void 0?{options:I.options}:{},...I.providerCredential!==void 0?{providerCredential:I.providerCredential}:{},...I.providerCredentialProvider!==void 0?{providerCredentialProvider:I.providerCredentialProvider}:{},...I.origin!==void 0?{origin:I.origin}:{},...I.trustedRunId!==void 0?{trustedRunId:I.trustedRunId}:{},requiredAfterRunId:f.afterRunId},"runtime.runs.submitInput")}catch(_){if(!(_ instanceof zt))throw _;return{accepted:!1,delivery:f.delivery,sessionId:f.sessionId,afterRunId:f.afterRunId,reason:"stale_run"}}let M=u(C.runId).sessionOrder;return{accepted:!0,delivery:f.delivery,runId:C.runId,sessionId:f.sessionId,afterRunId:f.afterRunId,sessionOrder:M}},async await(f){e.ensureOpen();let P=e.runs.get(f);if(P)return await e.sessionAdmission.assertRunAccess(P.sessionId),P.result;let I=e.persistence.loadRunStatus(f);if(I)return await e.sessionAdmission.assertRunAccess(I.sessionId),pu(I);throw new Error(`Runtime run not found: ${f}`)},async get(f){e.ensureOpen();let P=e.runs.get(f);if(P)return await e.sessionAdmission.assertRunAccess(P.sessionId),Pe(P);let I=e.persistence.loadRunStatus(f);if(I)return await e.sessionAdmission.assertRunAccess(I.sessionId),I;throw new Error(`Runtime run not found: ${f}`)},async list(f){e.ensureOpen(),f?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(f.sessionId);let P=[...e.runs.values()].filter(I=>lg(I,f)).map(Pe);return vi(P,e.sessionAdmission)},async abort(f){e.ensureOpen();let P=u(f);await e.sessionAdmission.assertRunAccess(P.sessionId),(P.phase==="queued"||Fe(P.phase))&&l(P,"runtime run aborted",!0)},async setModel(f,P){e.ensureOpen();let I=u(f);await e.sessionAdmission.assertRunAccess(I.sessionId),I.model=P,I.running?.setModel(P),c(I)},async setProvider(f,P){e.ensureOpen();let I=u(f);await e.sessionAdmission.assertRunAccess(I.sessionId),I.provider=P,I.running?.setProvider(P),c(I)},async setReasoning(f,P){e.ensureOpen();let I=u(f);await e.sessionAdmission.assertRunAccess(I.sessionId),I.reasoning=P,I.running?.setReasoning(P),c(I)},closeAll(f){x.close();for(let P of e.runs.values())(P.phase==="queued"||Fe(P.phase))&&l(P,f,!1);n.clear(),r.clear(),o.clear(),s.clear()},releaseSession(f){for(let P of r.get(f)?.values()??[])P.guardrail.clearAllowedCalls();r.delete(f),o.delete(f)},getAutoModeStats(f){let P=o.get(f);return P===void 0?void 0:{engine:P.engine,classifierHealth:go(P.breaker,Date.now())?"degraded":"healthy",denials:P.denials,breaker:P.breaker}}}}i(jp,"createRuntimeRunService");function Hp(){let e=oo();return{async list(n){let t=e.list(),r=n?.runId?t.filter(o=>o.runId===n.runId):t;return n?.limit===void 0?r:r.slice(0,n.limit)},async get(n){return e.getWorkflowProcessSnapshot(n)},subscribe(n,t){return{close:e.subscribeWorkflowProcess(o=>{n.runId&&o.snapshot.runId!==n.runId||n.activeOnly===!0&&fg(o.snapshot.status)||t(o)})}},async pause(n){return e.pause(n)},async resume(n){return e.resume(n)},async stop(n){return e.stop(n)}}}i(Hp,"createRuntimeWorkflowService");function $p(e,n){return{async read(){return e(),_n(ze(n))},async patch(t){return e(),jf(t,"runtime.config.patch"),qf(n,Hf(t)),_n(ze(n))},async reload(){return e(),n!==void 0?(cu(n),{ok:!0,config:_n(ze(n))}):{ok:!0,config:_n(ko())}}}}i($p,"createRuntimeConfigService");function qp(e,n){return{async providers(){return e(),hr()},async models(t){return e(),Yf(hr(),t)},async commands(t){return e(),$d(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return $d(t.projectRoot).find(o=>o.name.trim().toLowerCase()===r||(o.aliases??[]).some(s=>s.trim().toLowerCase()===r))??null},async skills(t){e();let r=await ur(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(rg)},async describeSkill(t){e();let r=await ur(t.projectRoot);return r.has(t.name)?ig(await r.loadFull(t.name)):null},async customProviders(){return e(),Xf(n)},async upsertCustomProvider(t){return e(),Bf(n,t)},async deleteCustomProvider(t){return e(),Uf(n,t)},async extensions(){e();let t=fn();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=fn();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(qp,"createRuntimeCatalogService");function Kp(e,n){return{async listServers(){return e(),wi(n)},async getServer(t){return e(),zf(n,t)},async validateServer(t,r){e();try{return wr(t,r),{ok:!0,config:structuredClone(r)}}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}},async upsertServer(t,r){return e(),Gf(n,t,r)},async deleteServer(t){return e(),Jf(n,t)},async reloadServers(){e();let t=cr(wi(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=wi(n),o=t?.server!==void 0?[t.server]:Object.keys(r),s=cr(r);try{let d=[];for(let u of o)d.push(await s.listTools(u,{forceRefresh:t?.forceRefresh===!0}));return d}finally{await s.dispose()}}}}i(Kp,"createRuntimeMcpService");function Xp(){let e=new Map;return{service:{async create(r){if(!xf(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=N.resolve(r.path),s;try{s=await F.promises.stat(o)}catch(m){throw new Error(`Runtime artifact path is not readable: ${o}`,{cause:m})}if(!s.isFile())throw new Error(`Runtime artifact path must be a regular file: ${o}`);if(s.size>wd)throw new Error(`Runtime artifact exceeds the ${wd}-byte limit: ${o}`);let d=`art_${ye().replace(/-/g,"").slice(0,12)}`,u={id:d,kind:r.kind,path:o,sizeBytes:s.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(d,u),u},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:i(r=>{let o=e.get(r);if(!o)throw new Error(`Runtime artifact not found: ${r}`);return o},"resolve")}}i(Xp,"createRuntimeArtifactStore");function Bp(e){let{agentPlane:n,events:t,model:r,options:o,provider:s,record:d,sessionManager:u}=e,m=o.events?.exitPlanMode===void 0,{configHome:g,memoryIdentity:R,shellSandbox:a,...y}=o.context??{},p=o.guardrails?.find(Qt),v=o.context?.gitRoot??o.context?.executionCwd,l=p!==void 0&&v!==void 0?qo({workspaceRoot:v,shouldSandbox:i(T=>p.consumeWorkspaceSandboxCall(T),"shouldSandbox")}):void 0,S=l!==void 0&&a!==void 0?{async prepare(T){let c,w=await l.prepare({...T,reportObservation:i(f=>{c=f},"reportObservation")});if(w!==void 0)return w;let x,E=await a.prepare({...T,reportObservation:i(f=>{x=f},"reportObservation")});if(E!==void 0)return E;let A=[x,c].find(f=>f?.state==="fallback")??x??c;A!==void 0&&T.reportObservation?.(A)}}:l??a,b=o.skillDynamicContext?.execute,k=o.skillDynamicContext?.disable===!0||b===void 0?{disable:!0}:{async execute(T,c){if(he(d.permissionMode)==="plan")throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in Plan mode.");return b(T,c)}};return{...o,provider:s,skillDynamicContext:k,...r!==void 0?{modelOverride:r}:{},session:{...o.session??{},id:d.sessionId,storage:u.storage,persistedByHost:!1},events:t,context:{...y,configHome:e.defaultConfigHome,...S!==void 0?{shellSandbox:S}:{},...m?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...d.actorSession?{actorSession:d.actorSession,interruptInput:{closeInputWindow(){d.interruptInputOpen=!1},reopenInputWindow(){!d.terminalEmitted&&Fe(d.phase)&&o.abortSignal?.aborted!==!0&&(d.interruptInputOpen=!0)}}}:{},...n&&d.agentContext?{agentExecutorPlane:{plane:n,context:d.agentContext}}:{}}}}i(Bp,"buildRunOptions");function Ut(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i(Ut,"assertRuntimeAgentContext");function Up(e,n){let t=[],r=new Set(e.skills);for(let s of n.requiredSkills??[])r.has(s)||t.push(`required skill is unavailable: ${s}`);let o=n.requiredCapabilities;if(o)for(let s of["streaming","durableTasks","inputRequired","cancellation","artifacts"])o[s]===!0&&e.capabilities[s]!=="supported"&&t.push(`required capability ${s} is ${e.capabilities[s]}`);return t}i(Up,"localAgentReasons");function pi(e){return Ut(e),qn(e).map(n=>{let t=Up(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}i(pi,"runtimeLocalListings");function Wp(e,n,t,r){let o=new Map,s,d=!1,u=i(()=>{if(s)return s;let R=hs({onError(a){Z({source:"runtime.actors.owner",level:"error",message:`Runtime Actor owner liveness endpoint failed for ${n.runtimeId}.`,detail:de(a)})}});return s=R,R.catch(()=>{s===R&&(s=void 0)}),R},"getOwnerLiveness"),m=i((R,a)=>{if(d)return Promise.reject(new Error("KodaX runtime is closed"));let y=o.get(R);if(y)return y.then(v=>{let l=v.rootControl().list().maxConcurrentThreads;if(a!==void 0&&a!==l)throw new Error(`Actor concurrency for ${R} is already ${l}; cannot change it to ${a}.`);return v});let p=(async()=>{let v=await e.storage.peek(R);if(!v)throw new Error(`Session not found: ${R}`);let l=v.actorSnapshot?.maxConcurrentThreads;if(l!==void 0&&a!==void 0&&l!==a)throw new Error(`Persisted Actor concurrency for ${R} is ${l}; requested ${a}.`);let S={async load(){return(await e.storage.peek(R))?.actorSnapshot},save(T,c){return e.storage.saveActorSnapshot(R,T,c)}},b=await u(),k=new lo({sessionId:R,store:S,maxConcurrentThreadsPerSession:a??l,owner:{ownerId:`actor_${ye().replace(/-/g,"")}`,runtimeId:n.runtimeId,pid:process.pid,startedAt:n.startedAt,livenessId:b.id,livenessPort:b.port},isOwnerAlive:ws,...t?{executor:mo({plane:t,context:r??{actorId:`runtime:${R}`}})}:{}});try{return await k.initialize(),k}catch(T){if(!k.ownsDurableFence())throw T;try{await k.close("Actor initialization cleanup")}catch(c){throw new AggregateError([T,c],`Actor session ${R} initialization and owner cleanup both failed.`)}throw T}})();return o.set(R,p),p.catch(()=>o.delete(R)),p},"claimSession"),g=i(async(R,a)=>{let y=m(R,a),p=o.get(R),v=await y;if(!await e.storage.isArchived(R))return v;throw await v.close("archived Session execution rejected"),o.get(R)===p&&o.delete(R),bi(R)},"forSession");return{forSession:g,async root(R){return(await g(R)).rootControl()},async activeTurns(R){return(await Promise.all(R.map(async y=>{if(await e.storage.isArchived(y))return;let p=o.get(y);if(p)return{sessionId:y,snapshot:(await p).rootControl().list()};let v=await e.storage.peek(y);if(v?.actorSnapshot)return{sessionId:y,snapshot:v.actorSnapshot}}))).flatMap(y=>{if(!y)return[];let{sessionId:p,snapshot:v}=y;return v.actors.flatMap(l=>l.currentTurnId&&l.path!=="/root"?[{sessionId:p,actorPath:l.path,turnId:l.currentTurnId,kind:l.kind}]:[])})},async mutateSessionFile(R,a,y){if(d)throw new Error("KodaX runtime is closed");let p=o.get(R)??m(R),v=await p,S=v.rootControl().list();if(a==="mutate"&&await e.storage.isArchived(R))throw await v.close("archived Session mutation rejected"),o.get(R)===p&&o.delete(R),bi(R);let b=S.actors.some(T=>T.currentTurnId!==void 0);if((a==="archive"||a==="unarchive")&&b)throw it(`Session has active Agent turns and cannot be moved: ${R}`,S.revision);a==="delete"&&b&&await v.quiesce("session deleted");let k=await y(v.ownerId());return a==="delete"?v.disposeAfterStoreRemoval("session deleted"):a!=="mutate"&&await v.close(`session ${a}d`),a!=="mutate"&&o.get(R)===p&&o.delete(R),k},async close(R){d=!0;let a=await Promise.allSettled([...o.values()]),p=(await Promise.allSettled(a.flatMap(v=>v.status==="fulfilled"?[v.value.close(R)]:[]))).flatMap(v=>v.status==="rejected"?[v.reason]:[]);if(p.length===1)throw p[0];if(p.length>1)throw new AggregateError(p,"Actor registry cleanup failed.");await s?.then(v=>v.close()),o.clear()}}}i(Wp,"createRuntimeAgentActorRegistry");function zp(e,n,t,r,o,s){let d=i((u,m)=>o.run(u,async()=>(s(),await r.loadExecutable(u),m(await t.root(u)))),"withRoot");return{execution:n,enabled:e!==void 0,async listDispatchable(u){s(),Ut(u);let m=qn(u);return e?e.listDispatchable(u,m):pi(u)},async describe(u,m){Ut(m);let g=qn(m);return e?e.describe(u,m,g):pi(m).find(R=>R.descriptor.agentId===u)},async preflight(u){Ut(u.query);let m=qn(u.query);if(e)return e.preflight(u,m);let g=pi(u.query).find(a=>a.descriptor.agentId===u.agentId),R=g?[]:["agent is not dispatchable"];return g&&u.expectedConfigurationRevision!==void 0&&g.descriptor.configurationRevision!==u.expectedConfigurationRevision&&R.push("configuration revision changed"),{ok:g!==void 0&&R.length===0,...g?{descriptor:g.descriptor}:{},dispatchability:g?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:R},reasons:R}},async tree(u){return d(u,m=>m.list())},async detail(u,m){return d(u,g=>g.get(m))},async spawn(u,m){return d(u,g=>g.spawn(m))},async send(u,m,g,R){await d(u,a=>a.send(m,g,R))},async followup(u,m,g,R){return d(u,a=>a.followup(m,g,void 0,R))},async interrupt(u,m,g){await d(u,R=>R.interrupt(m,g))},async output(u,m,g){return d(u,R=>R.output(m,g))},async events(u,m){return d(u,g=>g.eventSnapshot(m))},async wait(u,m,g){return(await d(u,a=>a)).wait(m,g)}}}i(zp,"createRuntimeAgentService");function fi(){return new Error("Runtime external agent executor plane is not enabled.")}i(fi,"externalAgentsDisabled");function Gp(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw fi()},async setEnabled(){throw fi()},async remove(){throw fi()}}}}i(Gp,"createRuntimeAdminService");function Jp(e){return{async snapshot(){let n=await vi([...e.runs.values()].map(Pe),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(ru),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await vi([...e.runs.values()].map(Pe),e.sessionAdmission),t=n.filter(R=>R.phase==="running"||R.phase==="waiting_permission"||R.phase==="waiting_user_input"),r=n.filter(R=>R.phase==="queued"),o=(await e.workflows.list({})).filter(R=>R.status!=="completed"&&R.status!=="failed"&&R.status!=="denied"&&R.status!=="stopped"),s=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(R=>R.id),d=await e.actors.activeTurns(s),u=await e.permissions.service.listPending(),m=await e.userInputs.service.listPending(),g=[];return t.length>0&&g.push("active_runs"),r.length>0&&g.push("queued_runs"),o.length>0&&g.push("active_workflows"),d.length>0&&g.push("active_agent_turns"),d.length>0&&g.push("active_agent_tasks"),(u.length>0||m.length>0)&&g.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:o,activeAgentTurns:d,activeAgentTasks:d,pendingPermissions:u,pendingUserInputs:m,blockers:g,canStop:g.length===0}}}}i(Jp,"createRuntimeStatusService");function Vp(e){return{latestContextBudget(n){return gi(e,"context.budget.snapshot",n)},latestToolExposure(n){return gi(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return gi(e,"provider.cache.diagnostics",n)}}}i(Vp,"createRuntimeDiagnosticsService");async function gi(e,n,t){let r=t?.contextKind??(t?.agentId===void 0?"root":void 0),o=r==="child"||t?.agentId!==void 0,s={type:n,...!o&&t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return[...await e.replay(s)].reverse().find(m=>{let g=m.payload;if(g===null||typeof g!="object"||Array.isArray(g))return t?.contextKind===void 0&&t?.agentId===void 0;let R=g,a=R.contextKind==="child"?"child":"root";if(r!==void 0&&a!==r||t?.agentId!==void 0&&R.agentId!==t.agentId)return!1;if(!o||t?.sessionId===void 0)return!0;let y=`${t.sessionId}/agent/`;return typeof R.contextId!="string"?!1:t.agentId===void 0?R.contextId.startsWith(y):R.contextId===`${y}${encodeURIComponent(t.agentId)}`})?.payload??null}i(gi,"latestRuntimeDiagnosticPayload");function Fe(e){return e==="running"||e==="waiting_permission"||e==="waiting_user_input"}i(Fe,"isActiveRunPhase");function Qp(e,n){let t=e.get(n.sessionId);if(!t)return;let r=t.filter(o=>o!==n.runId);r.length===0?e.delete(n.sessionId):e.set(n.sessionId,r)}i(Qp,"removeQueuedRun");function Yp(e){let n=!1,t=[],r=new Map,o=new Map,s=new Set,d=i((a,y)=>y?!(y.sessionId!==void 0&&a.sessionId!==y.sessionId||y.runId!==void 0&&a.runId!==y.runId||y.type!==void 0&&!(Array.isArray(y.type)?y.type:[y.type]).includes(a.type)):!0,"matches"),u=i(a=>{t.push(a),t.length>Gt&&t.splice(0,t.length-Gt)},"remember"),m=i((a,y,p)=>{let v=e.nextEventSeq();return{id:`evt_${v}_${ye().replace(/-/g,"").slice(0,8)}`,seq:v,time:new Date().toISOString(),sessionId:p.sessionId,runId:p.runId,...p.turnId!==void 0?{turnId:p.turnId}:{},type:a,payload:y}},"createEvent"),g=i(a=>{for(let y of[...s])if(d(a,y.filter))try{y.listener(a)}catch(p){Z({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${a.type}`,detail:{eventId:a.id,error:de(p)}})}},"notify");return{service:{subscribe(a,y){if(n)throw new Error("KodaX runtime event bus is closed");let p={filter:a,listener:y};return s.add(p),{close(){s.delete(p)}}},async replay(a){let y=e.replay(a),p=new Map;for(let l of y)p.set(l.id,l);for(let l of t)p.set(l.id,l);let v=[...p.values()].filter(l=>d(l,a)&&(a?.sinceSeq===void 0||l.seq>a.sinceSeq)).sort((l,S)=>l.seq-S.seq||l.time.localeCompare(S.time));return a?.limit===void 0?v:v.slice(-a.limit)}},emit(a,y,p){let v=m(a,y,p);o.set(v.sessionId,v.seq);let l=r.get(v.sessionId)??yi();r.set(v.sessionId,l),kd(l,v),u(v);let S=[v];try{e.appendEvent(v)}catch(b){let k=m("runtime.warning",{message:de(b).message,sourceEventId:v.id},p);u(k),S.push(k)}for(let b of S)g(b);return v},emitDurable(a,y,p,v){let l=m(a,y,p);e.appendDurableEvent(l),v?.(),o.set(l.sessionId,l.seq);let S=r.get(l.sessionId)??yi();return r.set(l.sessionId,S),kd(S,l),u(l),g(l),l},projectSession(a){let y=r.get(a);return bd(y===void 0?yi():y)},currentSessionSeq(a){let y=o.get(a);if(y!==void 0)return y;let p=tf(e.replay({sessionId:a}));return o.set(a,p),p},close(){n=!0;try{e.close()}catch(a){Z({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:a})}s.clear(),r.clear(),o.clear()}}}i(Yp,"createRuntimeEventBus");function yi(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(yi,"createRuntimeSessionLiveProjectionState");function kd(e,n){let t=U(n.payload)?n.payload:void 0;if(!ef(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=Kt(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=Kt(n),o=e.activeTools.get(r)??Pd(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.sandbox"){let r=Kt(n),o=e.activeTools.get(r)??Pd(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,sandbox:n.payload})}else if(n.type==="tool.finished"){let r=Kt(n);if(!e.activeTools.delete(r))for(let[o,s]of e.activeTools)s.runId===n.runId&&e.activeTools.delete(o)}else if(n.type==="todo.updated")e.todo=n.payload;else if(n.type==="run.progress"&&t?.kind==="managed_task_status"){let r=nf(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(nu(n.type)){delete e.assistantTextByRun[n.runId],delete e.thinkingTextByRun[n.runId];for(let[r,o]of e.activeTools)o.runId===n.runId&&e.activeTools.delete(r);for(let[r,o]of e.pendingUserInputs)o.runId===n.runId&&e.pendingUserInputs.delete(r);e.managedTasks.delete(n.runId)}}}i(kd,"applyRuntimeSessionEvent");var Zp=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","todo.updated"]);function ef(e,n){if(!Zp.has(e))return!1;let t=U(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=U(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}i(ef,"isChildOwnedPrimaryLiveEvent");function bd(e){return{assistantTextByRun:{...e.assistantTextByRun},thinkingTextByRun:{...e.thinkingTextByRun},activeTools:[...e.activeTools.values()],...e.todo!==void 0?{todo:e.todo}:{},pendingUserInputs:[...e.pendingUserInputs.values()],managedTasks:[...e.managedTasks.values()]}}i(bd,"snapshotRuntimeSessionLiveProjection");function nf(e){if(!(!U(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(nf,"parseRuntimeManagedTaskStatus");function tf(e){return e.at(-1)?.seq??0}i(tf,"latestRuntimeEventSeq");function Kt(e){let n=U(e.payload)?e.payload:void 0,t=U(n?.meta)?n.meta:void 0,r=U(n?.tool)?n.tool:void 0,o=U(n?.update)?n.update:void 0,s=U(n?.result)?n.result:void 0,d=t?.toolCallId??t?.toolUseId??r?.id??o?.id??s?.id??s?.toolCallId;return typeof d=="string"&&d.length>0?`${e.runId}:${d}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}i(Kt,"runtimeToolProjectionKey");function Pd(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(Pd,"latestActiveToolForRun");function nu(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(nu,"isTerminalRuntimeEvent");function rf(e){let n=e.homeDir?N.resolve(e.homeDir):e.sessionsDir?N.resolve(e.sessionsDir,".."):process.cwd(),t=e.sharedDaemonHost===!0?N.join(n,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):N.join(n,".kodax","runtime"),r=N.join(t,"runs"),o=N.join(t,"session-settings"),s=N.join(t,"permission-grants.json"),d=N.join(t,"event-sequence"),u=new Map,m=0,g,R,a,y=!1,p=i(I=>N.join(r,encodeURIComponent(I)),"runDir"),v=i(I=>N.join(p(I),"events.jsonl"),"eventFile"),l=i(I=>N.join(p(I),"status.json"),"statusFile"),S=i(I=>N.join(o,`${encodeURIComponent(I)}.json`),"sessionSettingsFile"),b=[],k=new Set,T=i(()=>{let I=0;if(F.existsSync(d))try{let C=Number.parseInt(F.readFileSync(d,"utf-8").trim(),10);Number.isSafeInteger(C)&&C>0&&(I=C)}catch(C){Z({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:C})}if(!F.existsSync(r))return I;for(let C of F.readdirSync(r,{withFileTypes:!0})){if(!C.isDirectory())continue;let M=N.join(r,C.name,"events.jsonl");if(!F.existsSync(M))continue;let _=F.statSync(M).size,W=Math.min(_,wp),q=Buffer.allocUnsafe(W),$=F.openSync(M,"r");try{F.readSync($,q,0,W,_-W)}finally{F.closeSync($)}let re=q.toString("utf-8").split(/\r?\n/);W<_&&re.shift();for(let K of re)if(K.trim())try{let ne=JSON.parse(K);xd(ne)&&Number.isSafeInteger(ne.seq)&&(I=Math.max(I,ne.seq))}catch{}}return I},"findMaxPersistedEventSeq"),c=i(()=>{a===void 0&&(a=T()+1);let I=a;return a+=1,y=!0,I},"allocateEventSeq"),w=i((I,C,M)=>{if(k.has(I))return;k.add(I);let _=c(),W={id:`evt_persist_warn_${_}_${ye().replace(/-/g,"").slice(0,8)}`,seq:_,time:new Date().toISOString(),sessionId:M.sessionId??"runtime",runId:M.runId??M.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:C,...M.file!==void 0?{file:M.file}:{}}};b.push(W),b.length>Gt&&b.splice(0,b.length-Gt)},"pushPersistenceWarning"),x=i((I,C)=>[...I,...b].filter(M=>sf(M,C)).sort((M,_)=>M.seq-_.seq||M.time.localeCompare(_.time)),"withPersistenceWarnings"),E=i((I,C)=>{if(!F.existsSync(I))return[];let M=F.readFileSync(I,"utf-8"),_=[],W=M.split(/\r?\n/);for(let q=0;q<W.length;q+=1){let $=W[q]??"";if($.trim())try{let re=JSON.parse($);xd(re)?_.push(re):w(`${I}:${q+1}:shape`,`Skipped malformed runtime event record at ${N.basename(I)}:${q+1}`,{runId:C,file:I})}catch(re){w(`${I}:${q+1}:parse`,`Skipped malformed runtime event record at ${N.basename(I)}:${q+1}: ${de(re).message}`,{runId:C,file:I})}}return _},"readEventsFromFile"),A=i(I=>{if(F.statSync(I).size<=Gd)return;let C=F.readFileSync(I,"utf-8").trimEnd().split(/\r?\n/),M=[],_=0;for(let W=C.length-1;W>=0;W-=1){let q=C[W]??"";if(!q)continue;let $=Buffer.byteLength(q,"utf-8")+1;if(M.length>0&&_+$>hp)break;M.push(q),_+=$}M.reverse(),F.writeFileSync(I,M.length>0?`${M.join(`
|
|
23
|
+
`)}
|
|
24
|
+
`:"","utf-8")},"trimEventFile"),f=i(()=>{g!==void 0&&(clearTimeout(g),g=void 0);for(let[I,C]of u){let M=C.join(""),_=Buffer.byteLength(M,"utf-8"),W=p(I),q=v(I);F.mkdirSync(W,{recursive:!0}),F.appendFileSync(q,M,"utf-8"),u.delete(I),m=Math.max(0,m-_),A(q)}y&&a!==void 0&&(F.mkdirSync(t,{recursive:!0}),F.writeFileSync(d,String(a-1),"utf-8"),y=!1),R=void 0},"flushBufferedEvents"),P=i(()=>{g===void 0&&(g=setTimeout(()=>{g=void 0;try{f()}catch(I){R=de(I),Z({source:"runtime.persistence",level:"error",message:"Failed to flush buffered runtime events",detail:I})}},Rp),g.unref?.())},"scheduleEventFlush");return{runtimeDir:t,appendDurableEvent(I){f();let C=p(I.runId),M=v(I.runId);F.mkdirSync(C,{recursive:!0}),F.appendFileSync(M,`${JSON.stringify(I)}
|
|
25
|
+
`,"utf-8");try{A(M)}catch(_){w(`${M}:trim`,`Failed to trim runtime event file: ${de(_).message}`,{runId:I.runId,file:M})}},appendEvent(I){let C=`${JSON.stringify(I)}
|
|
26
|
+
`,M=u.get(I.runId)??[];M.push(C),u.set(I.runId,M),m+=Buffer.byteLength(C,"utf-8");let _=R;R=void 0;try{_!==void 0||!bp.has(I.type)||m>=yp?f():P()}catch(W){throw P(),W}if(_!==void 0)throw _},close(){f()},nextEventSeq(){return c()},currentEventSeq(){return a===void 0&&(a=T()+1),a-1},replay(I){try{f()}catch(M){w(`${t}:event-flush`,`Failed to flush buffered runtime events: ${de(M).message}`,{runId:I?.runId})}if(I?.runId)return x(E(v(I.runId),I.runId),I);if(!F.existsSync(r))return x([],I);let C=[];for(let M of F.readdirSync(r,{withFileTypes:!0}))M.isDirectory()&&C.push(...E(N.join(r,M.name,"events.jsonl"),M.name));return x(C,I)},saveRunStatus(I){let C=p(I.runId);F.mkdirSync(C,{recursive:!0}),Ri(l(I.runId),I)},loadRunStatus(I){let C=l(I);if(F.existsSync(C))try{let M=Vt(JSON.parse(F.readFileSync(C,"utf-8")));if(M)return M;w(`${C}:shape`,`Skipped malformed runtime status record at ${N.basename(C)}`,{runId:I,file:C});return}catch(M){w(`${C}:parse`,`Skipped malformed runtime status record at ${N.basename(C)}: ${de(M).message}`,{runId:I,file:C});return}},loadRunStatuses(){if(!F.existsSync(r))return[];let I=[];for(let C of F.readdirSync(r,{withFileTypes:!0})){if(!C.isDirectory())continue;let M=N.join(r,C.name,"status.json");if(F.existsSync(M))try{let _=JSON.parse(F.readFileSync(M,"utf-8")),W=Vt(_);W?I.push(W):w(`${M}:shape`,`Skipped malformed runtime status record at ${N.basename(M)}`,{runId:C.name,file:M})}catch(_){w(`${M}:parse`,`Skipped malformed runtime status record at ${N.basename(M)}: ${de(_).message}`,{runId:C.name,file:M})}}return I},loadSessionSettingsVersioned(I){let C=S(I);if(!F.existsSync(C))return{revision:0,value:{}};try{let M=JSON.parse(F.readFileSync(C,"utf-8"));return U(M)&&Number.isSafeInteger(M.revision)&&typeof M.revision=="number"&&M.revision>=0&&U(M.value)?{revision:M.revision,value:Hd(M.value)}:{revision:0,value:Hd(M)}}catch(M){return w(`${C}:parse`,`Skipped malformed runtime session settings at ${N.basename(C)}: ${de(M).message}`,{sessionId:I,file:C}),{revision:0,value:{}}}},loadSessionSettings(I){return this.loadSessionSettingsVersioned(I).value},saveSessionSettingsVersioned(I,C){F.mkdirSync(o,{recursive:!0});let M=S(I);Ri(M,{revision:C.revision,value:og(C.value)})},saveSessionSettings(I,C){let M=this.loadSessionSettingsVersioned(I);this.saveSessionSettingsVersioned(I,{revision:M.revision+1,value:C})},loadPermissionGrants(){if(!F.existsSync(s))return{revision:0,value:[]};try{let I=JSON.parse(F.readFileSync(s,"utf-8"));if(!U(I)||!Number.isSafeInteger(I.revision)||!Array.isArray(I.value))throw new Error("invalid permission grant store shape");return{revision:I.revision,value:I.value.map(Ff)}}catch(I){throw new Error(`Permission grant store is untrusted: ${de(I).message}`)}},savePermissionGrants(I){F.mkdirSync(t,{recursive:!0}),Ri(s,I)}}}i(rf,"createRuntimePersistence");function Ri(e,n){let t=`${e}.${process.pid}.${ye()}.tmp`,r;try{r=F.openSync(t,"wx",384),F.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
27
|
+
`,"utf-8"),F.fsyncSync(r),F.closeSync(r),r=void 0,F.renameSync(t,e)}finally{r!==void 0&&F.closeSync(r),F.rmSync(t,{force:!0})}}i(Ri,"writeRuntimeJsonAtomic");function of(e){if(e.sessionsDir!==void 0)return N.resolve(e.sessionsDir);if(e.homeDir!==void 0)return N.join(N.resolve(e.homeDir),".kodax","sessions")}i(of,"resolveRuntimeSessionsDir");function sf(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.runId!==void 0&&e.runId!==n.runId||n.type!==void 0&&!(Array.isArray(n.type)?n.type:[n.type]).includes(e.type)||n.sinceSeq!==void 0&&e.seq<=n.sinceSeq):!0}i(sf,"eventMatchesReplayFilter");function xd(e){return U(e)?typeof e.id=="string"&&typeof e.seq=="number"&&typeof e.time=="string"&&typeof e.sessionId=="string"&&typeof e.runId=="string"&&typeof e.type=="string"&&"payload"in e:!1}i(xd,"isRuntimeEvent");function Vt(e){if(U(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!df(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}:{},...U(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}:{},...Td(e.terminal)!==void 0?{terminal:Td(e.terminal)}:{},...Ed(e.continuation)!==void 0?{continuation:Ed(e.continuation)}:{},...Dd(e.interruptInputs)!==void 0?{interruptInputs:Dd(e.interruptInputs)}:{}}}i(Vt,"parseRuntimeRunStatus");function Ed(e){if(!(!U(e)||typeof e.inputId!="string"||typeof e.afterRunId!="string"||e.delivery!=="after_turn"||e.state!=="queued"&&e.state!=="delivered"&&e.state!=="terminal"||typeof e.contentPreview!="string"))return{inputId:e.inputId,afterRunId:e.afterRunId,delivery:e.delivery,state:e.state,contentPreview:e.contentPreview}}i(Ed,"parseRuntimeContinuationStatus");function Dd(e){if(e===void 0||!Array.isArray(e))return;let n=e.map(af);return n.every(t=>t!==void 0)?n:void 0}i(Dd,"parseRuntimeInterruptInputStatuses");function af(e){if(!U(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=U(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}:{}}}i(af,"parseRuntimeInterruptInputStatus");function df(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"||e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(df,"isRuntimeRunPhase");function Td(e){if(U(e)&&!(!Number.isSafeInteger(e.revision)||typeof e.revision!="number"||!uf(e.kind)||!cf(e.code)||e.effectOutcome!=="none"&&e.effectOutcome!=="known"&&e.effectOutcome!=="unknown"))return{revision:e.revision,kind:e.kind,code:e.code,effectOutcome:e.effectOutcome,...typeof e.message=="string"?{message:e.message}:{}}}i(Td,"parseRuntimeTerminalFact");function uf(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(uf,"isRuntimeTerminalKind");function cf(e){return e==="completed"||e==="run_failed"||e==="blocked"||e==="cancelled"||e==="interrupted"||e==="runtime_restarted"||e==="daemon_crashed"||e==="credential_unavailable"||e==="host_not_dispatched"||e==="host_outcome_unknown"||e==="control_history_untrusted"}i(cf,"isRuntimeTerminalCode");function lf(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(pu(e)),terminalEmitted:er(e.phase)}}i(lf,"recordFromPersistedStatus");function mf(e,n,t){let r=[...t.replay({runId:e.runId})],o=Ad(e,r);if(er(o.phase))return o!==e&&ln(n,t,void 0,o),o;let s=[...r].reverse().find(m=>{if(!nu(m.type))return!1;let g=Vt(m.payload);return g?.runId===o.runId&&g.sessionId===o.sessionId&&g.phase===pf(m.type)});if(s!==void 0){let m=Vt(s.payload);if(m!==void 0){let g=Ad(m,r);return ln(n,t,void 0,g),g}}let d=o.phase==="queued"?"runtime_restarted":"daemon_crashed",u={...o,phase:"interrupted",endedAt:new Date().toISOString(),error:d,...o.interruptInputs!==void 0?{interruptInputs:o.interruptInputs.map(m=>m.state==="queued"?{...m,state:"terminal"}:m)}:{},terminal:{revision:1,kind:"interrupted",code:d,effectOutcome:o.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}:{}}),ln(n,t,void 0,u),u}i(mf,"interruptPersistedNonTerminalRun");function Ad(e,n){if(e.interruptInputs===void 0)return e;let t=new Map;for(let s of n){if(s.type!=="run.input.delivered"||s.runId!==e.runId||s.sessionId!==e.sessionId||!U(s.payload))continue;let d=s.payload.inputs;if(Array.isArray(d))for(let u of d)U(u)&&(typeof u.inputId!="string"||u.afterRunId!==e.runId||typeof u.deliveredAt!="string"||t.set(u.inputId,u.deliveredAt))}let r=!1,o=e.interruptInputs.map(s=>{let d=t.get(s.inputId);return s.state!=="queued"||d===void 0?s:(r=!0,{...s,state:"delivered",deliveredAt:d})});return r?{...e,interruptInputs:o}:e}i(Ad,"reconcilePersistedInterruptDeliveries");function pf(e){if(e==="run.completed")return"completed";if(e==="run.failed")return"failed";if(e==="run.cancelled")return"cancelled";if(e==="run.interrupted")return"interrupted"}i(pf,"terminalPhaseFromEvent");function Cd(e,n){if(e===void 0)return n;let t=Date.parse(e);return Number.isFinite(t)?Math.max(1,t-Date.now()):1}i(Cd,"resolvePermissionTimeoutMs");function ff(e,n){let t=new Map,r=i((u,m,g,R)=>{let a=t.get(u);return!a||g?.runId!==void 0&&a.request.runId!==g.runId||g?.expectedRevision!==void 0&&a.request.revision!==g.expectedRevision?{requestId:u,accepted:!1,status:"already_resolved"}:(m.status==="answered"&&gf(a.request.kind,m.answer),t.delete(u),clearTimeout(a.timer),a.resolve(m),e.emit("user_input.resolved",{requestId:u,kind:a.request.kind,status:m.status,...R!==void 0?{reason:R}:{}},{sessionId:a.request.sessionId,runId:a.request.runId,...a.request.turnId!==void 0?{turnId:a.request.turnId}:{}}),{requestId:u,accepted:!0,status:m.status})},"resolvePending"),o=i((u,m=n)=>{let g=`input_${ye().replace(/-/g,"").slice(0,12)}`,R=new Date,a={id:g,revision:0,sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{},kind:u.kind,options:u.options,createdAt:R.toISOString(),expiresAt:new Date(R.getTime()+m).toISOString()},y=i(()=>{},"resolveResponse"),p=new Promise(l=>{y=l}),v=setTimeout(()=>{r(g,{status:"dismissed"},void 0,"timeout")},Math.max(1,m));return v.unref?.(),t.set(g,{request:a,resolve:y,timer:v}),e.emit("user_input.requested",a,{sessionId:a.sessionId,runId:a.runId,...a.turnId!==void 0?{turnId:a.turnId}:{}}),{request:a,response:p}},"trackAndWait"),s=i((u,m)=>{for(let g of[...t.values()])u(g.request)&&r(g.request.id,{status:"dismissed"},void 0,m)},"dismissMatching");return{service:{async listPending(u){return[...t.values()].map(m=>m.request).filter(m=>(u?.sessionId===void 0||m.sessionId===u.sessionId)&&(u?.runId===void 0||m.runId===u.runId))},async respond(u,m,g){return r(u,{status:"answered",answer:m},g)},async dismiss(u,m){return r(u,{status:"dismissed"},m,"client_dismissed")}},trackAndWait:o,resolve:r,rejectForRun(u,m){s(g=>g.runId===u,m)},rejectAll(u){s(()=>!0,u)}}}i(ff,"createRuntimeUserInputRegistry");function gf(e,n){if(!(e==="askUser"?tu(n):e==="askUserMulti"?yf(n):typeof n=="string"))throw fu(`Invalid answer for ${e}`)}i(gf,"assertRuntimeUserInputAnswer");function tu(e){return Array.isArray(e)?e.every(Md):Md(e)}i(tu,"isAskUserAnswer");function Md(e){return typeof e=="string"||U(e)&&e.kind==="customInput"&&typeof e.value=="string"}i(Md,"isAskUserSelectionAnswer");function yf(e){return U(e)&&Object.values(e).every(tu)}i(yf,"isAskUserMultiAnswer");function Rf(e,n,t){let r=new Map,o=new Map,s=0,d=i((k,T=n,c)=>{let w=i(()=>{},"resolveResponse"),x=new Promise(A=>{w=A});return{request:b(k,[w],Cd(k.expiresAt,T),c),response:x}},"trackAndWait"),u=i((k,T,c)=>{let w=r.get(k);if(!w||c!==void 0&&w.request.runId!==c)return!1;if(T.type==="allow_session"||T.type==="allow_always"){let x=v(w,T);l(x,w.request)}r.delete(k),w.timer&&clearTimeout(w.timer);for(let x of w.waiters)x(T);return e.emit("permission.resolved",{requestId:k,decision:T},{sessionId:w.request.sessionId,runId:w.request.runId,...w.request.turnId!==void 0?{turnId:w.request.turnId}:{}}),!0},"resolvePending"),m=i((k,T)=>{let c=[...r.values()].filter(w=>k(w.request)).map(w=>w.request.id);for(let w of c)u(w,T)},"resolveMatching"),g={request(k){return R(k)},async listPending(k){return[...r.values()].map(T=>T.request).filter(T=>hg(T,k))},async respond(k,T,c){return u(k,T,c?.runId)},async listGrants(){let k=a();return{revision:s,value:[...k.value,...o.values()]}},async revokeGrant(k,T){let c=a();if(s!==T)throw it(`Permission grant revision ${T} is stale; current revision is ${s}`,s);let w=o.get(k);if(w!==void 0)return o.delete(k),s+=1,t.savePermissionGrants({revision:s,value:c.value}),S("revoked",w,s),!0;let x=c.value.find(A=>A.id===k),E=c.value.filter(A=>A.id!==k);return E.length===c.value.length?!1:(s+=1,t.savePermissionGrants({revision:s,value:E}),x!==void 0&&S("revoked",x,s),!0)}};function R(k,T){let c=T??(k.toolInput!==void 0?{toolInput:k.toolInput}:void 0),w=y(k.sessionId,k.toolName,c?.toolInput,k.executionCwd,c?.shell,c?.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:x,...E}=k,A=c===void 0?E.inputPreview:Nn(c.toolInput),f={sessionId:E.sessionId,runId:E.runId,...E.turnId!==void 0?{turnId:E.turnId}:{},...E.toolCallId!==void 0?{toolCallId:E.toolCallId}:{},toolName:E.toolName,...E.reason!==void 0?{reason:E.reason}:{},...E.risk!==void 0?{risk:E.risk}:{},...A!==void 0?{inputPreview:A}:{},...E.executionCwd!==void 0?{executionCwd:E.executionCwd}:{},...E.autoModeDiagnostics!==void 0?{autoModeDiagnostics:E.autoModeDiagnostics}:{},...E.expiresAt!==void 0?{expiresAt:E.expiresAt}:{}},P=c===void 0?void 0:p(f,c);return P!==void 0?P:d(f,E.timeoutMs??n,c).response}i(R,"requestPermission");function a(){let k=t.loadPermissionGrants();return s=Math.max(s,k.revision),k}i(a,"loadPersistentPermissionGrants");function y(k,T,c,w,x,E){let A=a().value;return[...o.values(),...A].find(f=>f.scope.sessionId!==void 0&&f.scope.sessionId!==k||f.scope.toolName!==void 0&&f.scope.toolName!==T||f.scope.matcher===void 0||c===void 0||f.persistence!=="session"&&f.scope.matcher.kind==="exact-command"&&typeof c.command=="string"&&kr(c.command,x??(pt()==="win32"?"cmd":"posix"))?!1:Xo(f.scope.matcher,{toolName:T,toolInput:c,executionCwd:w??process.cwd(),...x!==void 0?{shell:x}:{},...E!==void 0?{shellContractFingerprint:E}:{}}))}i(y,"findPermissionGrant");function p(k,T){let c=Od(k,T);if(c.length===0)return;let w=[...r.values()].find(x=>x.request.sessionId===k.sessionId&&x.request.runId===k.runId&&x.grantCandidates.length===c.length&&c.every(E=>x.grantCandidates.some(A=>A.persistence===E.persistence&&hi(A.scope,E.scope))));if(w)return new Promise(x=>{w.waiters.push(x)})}i(p,"joinMatchingPendingPermission");function v(k,T){let c=T.type==="allow_session"?"session":"persistent",w="suggestionId"in T?k.grantCandidates.find(x=>x.suggestion.id===T.suggestionId&&x.persistence===c):hf(k,T.scope,c);if(!w)throw fu("Permission decision does not select a Runtime-issued grant suggestion.");return w}i(v,"resolveRuntimePermissionGrantCandidate");function l(k,T){let c={id:`grant_${ye().replace(/-/g,"").slice(0,12)}`,scope:k.scope,createdAt:new Date().toISOString(),persistence:k.persistence,label:k.suggestion.label,sourcePermissionId:T.id};if(k.persistence==="session"){if([...o.values()].some(E=>hi(E.scope,c.scope)))return;let x=a();s+=1,o.set(c.id,c),t.savePermissionGrants({revision:s,value:x.value}),S("created",c,s,T);return}let w=a();w.value.some(x=>hi(x.scope,c.scope))||(s+=1,t.savePermissionGrants({revision:s,value:[...w.value,c]}),S("created",c,s,T))}i(l,"saveRuntimePermissionCandidate");function S(k,T,c,w){e.emit("permission.grant.changed",{action:k,grant:T,revision:c},{sessionId:w?.sessionId??T.scope.sessionId??"runtime",runId:w?.runId??"permission-grants",...w?.turnId!==void 0?{turnId:w.turnId}:{}})}return i(S,"emitPermissionGrantChanged"),{service:g,requestOwned(k,T){return R(k,T)},track(k){return b(k,[],Cd(k.expiresAt,n))},trackAndWait(k,T=n,c){return d(k,T,c)},resolve(k,T){u(k,T)},isGranted(k,T,c,w,x,E){return y(k,T,c,w,x,E)!==void 0},rejectForRun(k,T){m(c=>c.runId===k,{type:"reject",reason:T})},rejectAll(k){m(()=>!0,{type:"reject",reason:k})},releaseSession(k){let T=a(),c=[...o.values()].filter(w=>w.scope.sessionId===k);if(c.length!==0){for(let w of c)o.delete(w.id);s+=1,t.savePermissionGrants({revision:s,value:T.value});for(let w of c)S("expired",w,s)}},releaseAllSessionGrants(){if(o.size===0)return;let k=a(),T=[...o.values()];o.clear(),s+=1,t.savePermissionGrants({revision:s,value:k.value});for(let c of T)S("expired",c,s)}};function b(k,T,c=n,w){let x=k.inputPreview===void 0?void 0:Mg(k.inputPreview),E=w===void 0?[]:Od(k,w),A=new Date,f={...k,...x!==void 0?{inputPreview:x}:{},executionCwd:N.resolve(k.executionCwd??process.cwd()),id:`perm_${ye().replace(/-/g,"").slice(0,12)}`,createdAt:A.toISOString(),...k.expiresAt===void 0&&c>0?{expiresAt:new Date(A.getTime()+c).toISOString()}:{},...E.length>0?{grantSuggestions:E.map(I=>I.suggestion)}:{}},P=c>0?setTimeout(()=>{let I=r.get(f.id);if(!I)return;r.delete(f.id);let C={type:"reject",reason:"permission request timed out",cause:"approval_timeout"};for(let M of I.waiters)M(C);e.emit("permission.resolved",{requestId:f.id,decision:C},{sessionId:f.sessionId,runId:f.runId,...f.turnId!==void 0?{turnId:f.turnId}:{}})},c):void 0;return P?.unref?.(),r.set(f.id,{request:f,waiters:T,grantCandidates:E,...P!==void 0?{timer:P}:{}}),e.emit("permission.requested",f,{sessionId:f.sessionId,runId:f.runId,...f.turnId!==void 0?{turnId:f.turnId}:{}}),f}i(b,"createPendingPermission")}i(Rf,"createRuntimePermissionRegistry");function hf(e,n,t){if(n.toolName!==void 0&&n.toolName!==e.request.toolName||n.sessionId!==void 0&&n.sessionId!==e.request.sessionId)return;let r=e.grantCandidates.find(o=>o.persistence!==t?!1:n.matcher!==void 0?o.scope.matcher?.kind===n.matcher.kind&&o.scope.matcher.fingerprint===n.matcher.fingerprint:!0);return!r||n.sessionId===void 0?r:{...r,scope:{...r.scope,sessionId:n.sessionId}}}i(hf,"resolveLegacyRuntimePermissionGrantCandidate");function Od(e,n){let t=N.resolve(e.executionCwd??process.cwd()),r=Ir({toolName:e.toolName,toolInput:n.toolInput,executionCwd:t,...n.shell!==void 0?{shell:n.shell}:{},...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{}});if(r.kind==="exact-command"&&(typeof n.toolInput.command!="string"||n.toolInput.command.trim().length===0))return[];let o=vf(r,n.toolInput),s=[{suggestion:{id:`scope_${ye().replace(/-/g,"").slice(0,16)}`,kind:"session",label:_d(r,o,e.toolName,"session")},scope:{toolName:e.toolName,sessionId:e.sessionId,matcher:r},persistence:"session"}];return r.kind!=="exact-call"&&wf(e,n,t)&&s.push({suggestion:{id:`scope_${ye().replace(/-/g,"").slice(0,16)}`,kind:"persistent",label:_d(r,o,e.toolName,"persistent")},scope:{toolName:e.toolName,matcher:r},persistence:"persistent"}),s}i(Od,"createRuntimePermissionGrantCandidates");function wf(e,n,t){if(e.risk==="high")return!1;let r={id:e.toolCallId??"permission-scope",name:e.toolName,input:n.toolInput},o=N.resolve(n.projectRoot??t);if(Ro(r,o,t).denied||[...n.signals??[],...ho.collect(r,o,t)].some(d=>d.kind==="dangerous_pattern"))return!1;if(e.toolName==="bash"){let d=typeof n.toolInput.command=="string"?n.toolInput.command:"";if(kr(d,n.shell??(pt()==="win32"?"cmd":"posix")))return!1}return!0}i(wf,"isPersistentRuntimePermissionSafe");function vf(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=ki(t.slice(0,rt)).replace(/\s+/g," ").trim();return r.length<=120?r:`${r.slice(0,117)}...`}i(vf,"runtimePermissionGrantLabel");function _d(e,n,t,r){return e.kind==="exact-command"?r==="session"?`Allow this exact command for this Runtime session: ${n}`:`Always allow this exact command: ${n}`:e.kind==="exact-path"?r==="session"?`Allow ${t} on this path for this Runtime session: ${n}`:`Always allow ${t} on this path: ${n}`:`Allow this exact ${t} call for this Runtime session`}i(_d,"runtimePermissionGrantSuggestionLabel");function Sf(e,n){let t=n.lastIndexOf("/");if(t<=0)return e;let r=n.slice(0,t);return r==="/root"?e:`${e}/agent/${encodeURIComponent(r)}`}i(Sf,"childParentContextId");function Xt(e,n){let t=e.contextKind??(e.agentId===void 0?"root":"child"),r=e.contextId??(t==="child"&&e.agentId!==void 0?`${n}/agent/${encodeURIComponent(e.agentId)}`:n),o=e.parentContextId??(t==="child"&&e.agentId!==void 0?Sf(n,e.agentId):void 0);return{...e,contextId:r,contextKind:t,...o!==void 0?{parentContextId:o}:{}}}i(Xt,"withRuntimeDiagnosticIdentity");function hi(e,n){return e.toolName===n.toolName&&e.sessionId===n.sessionId&&e.matcher?.kind===n.matcher?.kind&&e.matcher?.fingerprint===n.matcher?.fingerprint}i(hi,"permissionScopesEqual");function If(e){let{bus:n,original:t,permissions:r,userInputs:o,enableSharedInteractions:s,record:d,onMidTurnUserMessages:u}=e,m=i(a=>({sessionId:a?.sessionId??d.sessionId,runId:d.runId,turnId:a?.turnId??d.turnId}),"scopeFromMeta"),g=i((a,y,p)=>{n.emit(a,Ge(y),m(p))},"emit"),R=i(async(a,y,p,v,l)=>{let S=d.phase;if(d.phase==="running"&&(d.phase="waiting_user_input"),s){let k=o.trackAndWait({sessionId:p?.sessionId??d.sessionId,runId:d.runId,...p?.turnId??d.turnId?{turnId:p?.turnId??d.turnId}:{},kind:a,options:y});try{let T=v===void 0?await k.response:await Promise.race([k.response,v().then(c=>({status:c===void 0?"dismissed":"answered",...c!==void 0?{answer:c}:{}})).then(c=>(o.resolve(k.request.id,c),c))]);return T.status==="answered"?T.answer:l}finally{d.phase==="waiting_user_input"&&(d.phase=S)}}let b=`input_${ye().replace(/-/g,"").slice(0,12)}`;g("user_input.requested",{requestId:b,kind:a,options:y},p);try{if(v===void 0)return l;let k=await v();return g("user_input.resolved",{requestId:b,kind:a,status:k===void 0?"dismissed":"answered"},p),k}catch(k){throw g("user_input.resolved",{requestId:b,kind:a,status:"failed",error:de(k).message},p),k}finally{d.phase==="waiting_user_input"&&(d.phase=S)}},"runWithUserInputPhase");return{...t,onTextDelta(a,y){g("assistant.delta",{text:a,meta:y},y),t?.onTextDelta?.(a,y)},onThinkingDelta(a,y){g("thinking.delta",{text:a,meta:y},y),t?.onThinkingDelta?.(a,y)},onThinkingEnd(a,y){g("thinking.finished",{thinking:a,meta:y},y),t?.onThinkingEnd?.(a,y)},onToolUseStart(a,y){g("tool.started",{tool:a,meta:y},y),t?.onToolUseStart?.(a,y)},onToolProgress(a,y){g("tool.progress",{update:a,meta:y},y),t?.onToolProgress?.(a,y)},onToolSandboxObservation(a,y){g("tool.sandbox",{update:a,meta:y},y),t?.onToolSandboxObservation?.(a,y)},onToolInputDelta(a,y,p){g("tool.progress",{toolName:a,partialJson:y,meta:p},p),t?.onToolInputDelta?.(a,y,p)},onToolResult(a,y){g("tool.finished",{result:a,meta:y},y),t?.onToolResult?.(a,y)},onStreamEnd(a){g("run.progress",{kind:"stream_end",meta:a},a),t?.onStreamEnd?.(a)},onChildActivityEnd(a){g("child_activity.finished",{meta:a},a),t?.onChildActivityEnd?.(a)},onSessionStart(a){d.provider=a.provider,n.emit("session.loaded",Ge(a),{sessionId:a.sessionId,runId:d.runId,turnId:a.turnId??d.turnId}),t?.onSessionStart?.(a)},onTurnStarted(a){d.turnId=a.turnId,n.emit("turn.started",Ge(a),{sessionId:a.sessionId,runId:d.runId,turnId:a.turnId}),t?.onTurnStarted?.(a)},onTurnCompleted(a){n.emit("turn.completed",Ge(a),{sessionId:a.sessionId,runId:d.runId,turnId:a.turnId}),t?.onTurnCompleted?.(a)},onTurnFailed(a){n.emit("turn.failed",Ge(a),{sessionId:a.sessionId,runId:d.runId,turnId:a.turnId}),t?.onTurnFailed?.(a)},onIterationStart(a,y,p){g("run.progress",{kind:"iteration_start",iter:a,maxIter:y,meta:p},p),t?.onIterationStart?.(a,y,p)},onIterationEnd(a){g("run.progress",{kind:"iteration_end",info:a},a),t?.onIterationEnd?.(a)},onCompactStart(a){g("context.compaction.started",{meta:a},a),t?.onCompactStart?.(a)},onCompact(a,y){t?.onCompact?.(a,y)},onCompactStats(a){g("context.compaction.stats",a,a),t?.onCompactStats?.(a)},async onCompactedMessages(a,y,p){let v=y===void 0?void 0:{hasAnchor:y.anchor!==void 0,...y.anchor?.tokensBefore!==void 0?{tokensBefore:y.anchor.tokensBefore}:{},...y.anchor?.tokensAfter!==void 0?{tokensAfter:y.anchor.tokensAfter}:{},...y.anchor?.entriesRemoved!==void 0?{entriesRemoved:y.anchor.entriesRemoved}:{},...y.anchor?.reason!==void 0?{reason:y.anchor.reason}:{},artifactLedgerEntryCount:y.artifactLedger?.length??0,postCompactAttachmentCount:y.postCompactAttachments?.length??0,exactSnapshotAvailable:y.preCompactionMessages!==void 0};g("context.compaction.messages",{messageCount:a.length,update:v,meta:p},p),await t?.onCompactedMessages?.(a,y,p)},onContextCompactionFinished(a){let y=a.contextRevision??0;g("context.compaction.finished",{...a,contextId:a.contextId??d.sessionId,contextKind:a.contextKind??"root",contextRevision:y,beforeRevision:Math.max(0,y-1),afterRevision:y},a),t?.onContextCompactionFinished?.(a)},onCompactEnd(a){g("context.compaction.ended",{meta:a},a),t?.onCompactEnd?.(a)},onMidTurnUserMessages(a,y){u(y?.queuedMessageIds??[]),g("run.progress",{kind:"mid_turn_user_messages",contents:a,meta:y},y),t?.onMidTurnUserMessages?.(a,y)},onRetry(a,y,p,v){g("provider.retry",{reason:a,attempt:y,maxAttempts:p,meta:v},v),t?.onRetry?.(a,y,p,v)},onProviderRateLimit(a,y,p,v){g("provider.retry",{reason:"rate_limit",attempt:a,maxAttempts:y,delayMs:p,meta:v},v),t?.onProviderRateLimit?.(a,y,p,v)},onRetryAfter(a,y){g("provider.retry",{retryAfter:a,meta:y},y),t?.onRetryAfter?.(a,y)},onReasoningEffortRejected(a){g("provider.recovery",{kind:"reasoning_effort_rejected",event:a},a),t?.onReasoningEffortRejected?.(a)},onRepoIntelligenceTrace(a){g("repo_intelligence.trace",a,a),t?.onRepoIntelligenceTrace?.(a)},onContextBudgetSnapshot(a){let y=Xt(a,d.sessionId);g("context.budget.snapshot",y,y),t?.onContextBudgetSnapshot?.(y)},onPromptCacheDiagnostics(a){let y=Xt(a,d.sessionId);g("provider.cache.diagnostics",y,y),t?.onPromptCacheDiagnostics?.(y)},onToolExposurePlanned(a){let y=Xt(a,d.sessionId);g("tool.exposure.planned",y,y),t?.onToolExposurePlanned?.(y)},onContextCompactionSkipped(a){let y=Xt(a,d.sessionId);g("context.compaction.skipped",y,y),t?.onContextCompactionSkipped?.(y)},onSidecarMessage(a){g("sidecar.message",a,a),t?.onSidecarMessage?.(a)},onTodoUpdate(a,y){g("todo.updated",{items:a,meta:y},y),t?.onTodoUpdate?.(a,y)},onTodoDriftWarning(a){g("todo.warning",a,a),t?.onTodoDriftWarning?.(a)},onProviderRecovery(a,y){g("provider.recovery",{event:a,meta:y},y),t?.onProviderRecovery?.(a,y)},onEffectiveConfig(a){g("config.effective",a,a),t?.onEffectiveConfig?.(a)},onWorkflowProcessEvent(a){let y=pg(a);n.emit(y,Ge(a),{sessionId:a.snapshot.hostMetadata?.sessionId??d.sessionId,runId:d.runId,turnId:d.turnId}),t?.onWorkflowProcessEvent?.(a)},onComplete(a){d.mode!=="managed_task"&&(d.interruptInputOpen=!1),g("run.progress",{kind:"complete",meta:a},a),t?.onComplete?.(a)},onError(a,y){d.interruptInputOpen=!1,g("runtime.warning",{source:"coding",severity:"error",message:a.message},y),t?.onError?.(a,y)},onManagedTaskStatus(a){d.mode==="managed_task"&&a.phase==="completed"&&(d.interruptInputOpen=!1),g("run.progress",{kind:"managed_task_status",status:a},a),t?.onManagedTaskStatus?.(a)},beforeToolExecute:i(async(a,y,p)=>{let v=kg(d),l=d.autoModeEngine;if(v!==void 0&&he(d.permissionMode)==="auto"&&(l==="llm"||l==="rules")){if(Vd.has(a))return!0;let w=await t?.beforeToolExecute?.(a,y,p);return w!==void 0&&w!==!0?w:p?.toolId!==void 0&&v.consumeAllowedCall({id:p.toolId,name:a,input:y})?!0:"[Blocked] Runtime auto mode did not classify this concrete tool call."}if(he(d.permissionMode)==="plan"){let w=Kd(d,a,y);if(w!==!0&&w!==void 0)return w}let b=Ig(d);if(r.isGranted(p?.sessionId??d.sessionId,a,y,Ii(d),b?.shell,b?.shellContractFingerprint))return!0;let k=t?.beforeToolExecute===void 0?Kd(d,a,y):void 0;if(k!==void 0)return k;let T=d.phase;d.phase==="running"&&(d.phase="waiting_permission");let c=r.trackAndWait({sessionId:p?.sessionId??d.sessionId,runId:d.runId,...p?.turnId??d.turnId?{turnId:p?.turnId??d.turnId}:{},...p?.toolId?{toolCallId:p.toolId}:{},toolName:a,inputPreview:Nn(y),executionCwd:Ii(d)},void 0,{toolInput:y,...b??{},...typeof d.start?.options.context?.gitRoot=="string"?{projectRoot:d.start.options.context.gitRoot}:{}});try{if(!t?.beforeToolExecute){let A=await c.response;return Xd(A)}let w=Promise.resolve(t.beforeToolExecute(a,y,p)).then(A=>({source:"hook",decision:A})),x=c.response.then(A=>({source:"runtime",decision:Xd(A)})),E=await Promise.race([w,x]);return E.source==="hook"&&r.resolve(c.request.id,wg(E.decision)),E.decision}catch(w){throw r.resolve(c.request.id,{type:"reject",reason:de(w).message}),w}finally{d.phase==="waiting_permission"&&(d.phase=T==="queued"?"running":T)}},"beforeToolExecute"),...t?.askUser||s?{askUser:i((a,y)=>R("askUser",a,y,t?.askUser?()=>t.askUser(a,y):void 0,""),"askUser")}:{},...t?.askUserMulti||s?{askUserMulti:i((a,y)=>R("askUserMulti",a,y,t?.askUserMulti?()=>t.askUserMulti(a,y):void 0,void 0),"askUserMulti")}:{},...t?.askUserInput||s?{askUserInput:i((a,y)=>R("askUserInput",a,y,t?.askUserInput?()=>t.askUserInput(a,y):void 0,void 0),"askUserInput")}:{}}}i(If,"wrapKodaXEvents");function kf(e,n,t){let r={...t!==void 0?{canonicalRepoRoot:t}:{},...n!==void 0?{workspaceRoot:n,executionCwd:n}:{},...n!==void 0?{workspaceKind:"managed"}:{},...e.surface!==void 0?{surface:e.surface}:{},...e.profileId!==void 0?{profileId:e.profileId}:{}};return Object.keys(r).length>0?r:void 0}i(kf,"buildSessionRuntimeInfo");function ru(e){return{id:e.id,...e.cursor!==void 0?{cursor:e.cursor}:{},title:e.title,msgCount:e.msgCount,...e.runtimeInfo?.gitRoot?{gitRoot:e.runtimeInfo.gitRoot}:{},...e.runtimeInfo?.workspaceRoot?{workspaceRoot:e.runtimeInfo.workspaceRoot}:{},...e.runtimeInfo?.surface?{surface:e.runtimeInfo.surface}:{},...e.runtimeInfo?.profileId?{profileId:e.runtimeInfo.profileId}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.tag!==void 0?{tag:e.tag}:{},...e.projectKey!==void 0?{projectKey:e.projectKey}:{},...e.archived===!0?{archived:!0}:{}}}i(ru,"toRuntimeSessionSummary");function Ld(e,n,t){let r=e.input===void 0?[]:Array.isArray(e.input)?[...e.input]:[e.input],o=r.filter(d=>d.type==="text");if(e.prompt!==void 0&&o.length>0)throw new Error(`${t} accepts either prompt or text input, not both`);if(o.length>1)throw new Error(`${t} accepts at most one text input item`);let s=e.prompt??o[0]?.text;if(s===void 0)throw new Error(`${t} requires prompt or text input`);return{prompt:s,inputArtifacts:r.flatMap(d=>bf(d,n))}}i(Ld,"normalizeRuntimeRunInput");function bf(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return Pf(n.resolve(e.artifactId),e.description);if(e.type==="image")return[{kind:"image",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];if(e.type==="file")return[{kind:"file",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.mimeType!==void 0?{mimeType:e.mimeType}:{},...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];if(e.type==="video")return[{kind:"video",path:e.path,mediaType:e.mediaType,...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];let t=e;throw new Error(`Unsupported runtime input type: ${String(t.type)}`)}i(bf,"runtimeInputToArtifacts");function Pf(e,n){let t=n??e.description;if(e.kind==="image")return[{kind:"image",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];if(e.kind==="file")return[{kind:"file",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.mimeType!==void 0?{mimeType:e.mimeType}:{},...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];if(e.kind==="video")return[{kind:"video",path:e.path,mediaType:e.mediaType??"video/mp4",...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];throw new Error(`Unsupported runtime artifact kind: ${String(e.kind)}`)}i(Pf,"runtimeArtifactToInputArtifacts");function xf(e){return typeof e=="string"&&Pp.has(e)}i(xf,"isRuntimeArtifactKind");function Ef(e,n,t,r){let o=r.runtimeInfo?.canonicalRepoRoot??(r.gitRoot?r.gitRoot:void 0),s=o===void 0?void 0:N.resolve(o),d=r.runtimeInfo?.executionCwd??r.runtimeInfo?.workspaceRoot??s,u={...s!==void 0?{gitRoot:s}:{},...n.executionCwd!==void 0?{executionCwd:N.resolve(n.executionCwd)}:d!==void 0?{executionCwd:N.resolve(d)}:{},...n.shellExecution!==void 0?{shellExecution:n.shellExecution}:{}},m=e.context,g={...m??{}};delete g.shellExecution;let R=m?.shellExecution===void 0?void 0:$n(m.shellExecution),a=typeof m?.gitRoot=="string"?N.resolve(m.gitRoot):void 0;if(s!==void 0&&a!==void 0&&!(dt(s,a)&&dt(a,s)))throw new Error("gitRoot must match the session repository safety boundary");let y=m?.executionCwd===void 0?void 0:N.resolve(m.executionCwd),p=y??u.executionCwd,v=r.runtimeInfo?.workspaceRoot??s;y!==void 0&&v!==void 0&&su(y,v,"executionCwd");let l=[...m?.inputArtifacts??[],...t],S={...u,...g,...s!==void 0?{gitRoot:s}:a!==void 0?{gitRoot:a}:{},...p!==void 0?{executionCwd:p}:{},...R!==void 0?{shellExecution:R}:{},...l.length>0?{inputArtifacts:l}:{}},b=e.provider??n.provider,k=e.model??n.model,T=e.effort??n.effort,c=e.thinking??n.thinking,w=e.reasoningMode??n.reasoningMode,x=e.agentMode??n.agentMode,E=x==="amaw"?"ama":x,A=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,...b!==void 0?{provider:b}:{},...k!==void 0?{model:k}:{},...T!==void 0?{effort:T}:{},...c!==void 0?{thinking:c}:{},...w!==void 0?{reasoningMode:w}:{},...E!==void 0?{agentMode:E}:{},...A!==void 0?{compaction:A}:{},...Object.keys(S).length>0?{context:S}:{}}}i(Ef,"buildEffectiveRuntimeOptions");async function Df(e,n){let t=await e.loadSession(n);if(!t)throw new Error(`Session not found: ${n}`);return t}i(Df,"loadRequiredSession");function Tf(e,n,t){let r=i((d,u)=>t?Af(d,u)?!1:d===void 0||gp.has(d.toLowerCase()):!0,"admitted"),o=i(d=>{throw Object.assign(new Error(`Session is not admitted by shared Runtime profile ${e}: ${d}`),{code:"session_not_admitted"})},"reject"),s=i(async d=>{let u=await Df(n,d);return r(u.runtimeInfo?.surface,u.runtimeInfo?.profileId)||o(d),u},"loadAdmitted");return{assertCreate(d){r(d.surface,d.profileId)||o(d.sessionId??"<new>")},assertFilter(d){d?.surface!==void 0&&!r(d.surface,void 0)&&o("<list>")},admitsData(d){return r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)},admitsSummary(d){return r(d.runtimeInfo?.surface,d.runtimeInfo?.profileId)},async admitsSession(d){if(!t)return!0;let u=await n.loadSession(d);return u!==null&&r(u.runtimeInfo?.surface,u.runtimeInfo?.profileId)},async assertRunAccess(d){t&&await s(d)},async loadRequired(d){return s(d)},async loadExecutable(d){let u=await s(d);if(await n.storage.isArchived(d))throw bi(d);return u}}}i(Tf,"createRuntimeSessionAdmission");async function vi(e,n){let t=new Map,r=[];for(let o of e){let s=t.get(o.sessionId);s===void 0&&(s=await n.admitsSession(o.sessionId),t.set(o.sessionId,s)),s&&r.push(o)}return r}i(vi,"filterAdmittedRunStatuses");function Af(e,n){let t=i(r=>r?.toLowerCase().split(/[^a-z0-9]+/).includes("partner")===!0,"hasPartnerToken");return t(e)||t(n)}i(Af,"isPartnerSessionIdentity");function Wt(e){return`sha256:${Wd("sha256").update(JSON.stringify(e)).digest("hex")}`}i(Wt,"createRuntimeTranscriptRevision");function iu(e){return Buffer.from(JSON.stringify(e),"utf8").toString("base64url")}i(iu,"encodeRuntimeTranscriptCursor");function ou(e){let n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch(t){throw je(`Invalid transcript cursor: ${de(t).message}`)}if(!U(n)||typeof n.revision!="string")throw je("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 je("Invalid transcript cursor payload")}i(ou,"decodeRuntimeTranscriptCursor");function Nd(e,n,t){let r=Wt(e),o=t??Ip;if(!Number.isSafeInteger(o)||o<=0)throw new Error("transcript page limit must be a positive safe integer");let s=Math.min(o,kp),d=e.transcriptEntries.length;if(n!==void 0){let a=ou(n);if(a.kind!=="page"||a.revision!==r)throw je("Transcript cursor is stale; request a fresh observation snapshot");d=Math.min(a.end,e.transcriptEntries.length)}let u=[],m=0,g=d;for(let a=d-1;a>=0&&!(u.length>=s);a-=1){let y=e.transcriptEntries[a],p=JSON.stringify(y),v=Buffer.byteLength(p,"utf8"),l={index:a,...typeof y.entryId=="string"?{entryId:y.entryId}:{},byteLength:v,oversized:v>vd,...v<=vd?{entry:y}:{}},S=Buffer.byteLength(JSON.stringify(l),"utf8");if(u.length>0&&m+S>Jd)break;u.unshift(l),m+=S,g=a}let R=g>0;return{revision:r,entries:u,hasMore:R,...R?{nextCursor:iu({kind:"page",revision:r,end:g})}:{}}}i(Nd,"createRuntimeTranscriptSlice");function Fd(e,n,t,r){if(e.revision!==n)throw je("Transcript revision changed; request a fresh observation snapshot");let o=0;if(e.cursor!==void 0){let u=ou(e.cursor);if(u.kind!=="entry"||u.revision!==n||u.entryIndex!==e.entryIndex)throw je("Transcript entry cursor is stale; restart entry retrieval");o=u.offset}if(o>r.length)throw je("Transcript entry cursor offset is invalid");let s=Math.min(r.length,o+Sp),d=s<r.length;return{revision:n,entryIndex:e.entryIndex,...t!==void 0?{entryId:t}:{},encoding:"base64-json",data:r.subarray(o,s).toString("base64"),hasMore:d,...d?{nextCursor:iu({kind:"entry",revision:n,entryIndex:e.entryIndex,offset:s})}:{}}}i(Fd,"createRuntimeTranscriptEntryChunkFromEncoded");function jd(e){return e.length<=Sd?e:`${e.slice(0,Sd-1)}\u2026`}i(jd,"previewQueuedInput");function Si(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&su(n.executionCwd,t,"executionCwd")}i(Si,"assertSessionSettingsAllowed");function su(e,n,t){if(!dt(e,n))throw new Error(`${t} must stay within the session workspace root`)}i(su,"assertPathWithinRoot");function Cf(e,n){let t={...e};return et(t,"provider",n.provider),et(t,"model",n.model),et(t,"permissionMode",n.permissionMode),et(t,"executionCwd",n.executionCwd,!0),Mf(t,n.shellExecution),et(t,"autoModeClassifierModel",n.autoModeClassifierModel),nt(t,"effort",n.effort),nt(t,"thinking",n.thinking),nt(t,"reasoningMode",n.reasoningMode),nt(t,"agentMode",n.agentMode),nt(t,"autoModeEngine",n.autoModeEngine),_f(t,"autoModeTimeoutMs",n.autoModeTimeoutMs),Lf(t,"autoModeSpeculativeWindowMs",n.autoModeSpeculativeWindowMs),au(t,n.compactionTriggerPercent),Of(t,n.compactionTriggerTokens),t}i(Cf,"applySessionSettingsPatch");function au(e,n){if(n!==void 0){if(n===null){mn(e,"compactionTriggerPercent");return}if(!Number.isFinite(n))throw new Error("compactionTriggerPercent must be a finite number");Y(e,"compactionTriggerPercent",to({triggerPercent:n}).triggerPercent)}}i(au,"applyNullableCompactionPercentPatch");function Mf(e,n){if(n!==void 0){if(n===null){mn(e,"shellExecution");return}Y(e,"shellExecution",$n(n))}}i(Mf,"applyNullableShellExecutionPatch");function Of(e,n){if(n!==void 0){if(n===null||n===0){mn(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)}}i(Of,"applyNullableCompactionTokensPatch");function _f(e,n,t){if(t!==void 0){if(t===null){mn(e,n);return}if(!Number.isSafeInteger(t)||t<=0)throw new Error(`${n} must be a positive safe integer`);Y(e,n,t)}}i(_f,"applyNullablePositiveIntegerPatch");function Lf(e,n,t){if(t!==void 0){if(t===null){mn(e,n);return}if(!Number.isSafeInteger(t)||t<0)throw new Error(`${n} must be a non-negative safe integer`);Y(e,n,t)}}i(Lf,"applyNullableNonNegativeIntegerPatch");function et(e,n,t,r=!1){if(t===void 0)return;if(t===null){mn(e,n);return}if(r&&!N.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);let o=n==="autoModeClassifierModel"?du(t):t;Y(e,n,o)}i(et,"applyNullableStringPatch");function du(e){let n=e.trim();if(n.length===0)throw new cn("autoModeClassifierModel must be a non-empty classifier model spec.");try{yo(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw new cn(`autoModeClassifierModel must be a valid classifier model spec: ${r}`)}return n}i(du,"validateRuntimeAutoModeClassifierModel");function uu(e,n){if(!(he(e.permissionMode)!=="auto"||(e.autoModeEngine??"llm")!=="llm")){if(e.autoModeClassifierModel!==void 0){try{du(e.autoModeClassifierModel)}catch(t){return t instanceof cn?t:new cn("Auto LLM classifier model configuration is invalid.")}return}if(!n?.trim().length)return new cn("Auto LLM requires a classifier model. Set autoModeClassifierModel, the Session/run model, or runtime defaultModel.")}}i(uu,"runtimeAutoModeClassifierModelError");function Nf(e,n){let t=uu(e,n);if(t)throw t}i(Nf,"assertRuntimeAutoModeClassifierModelConfigured");function nt(e,n,t){if(t!==void 0){if(t===null){mn(e,n);return}Y(e,n,t)}}i(nt,"applyNullablePatch");function Y(e,n,t){e[n]=t}i(Y,"setMutableSetting");function mn(e,n){delete e[n]}i(mn,"deleteMutableSetting");function Hd(e){if(!U(e))return{};let n={};return We(n,"provider",e.provider),We(n,"model",e.model),We(n,"permissionMode",e.permissionMode),We(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Y(n,"shellExecution",$n(e.shellExecution)),We(n,"autoModeClassifierModel",e.autoModeClassifierModel),We(n,"effort",e.effort),typeof e.thinking=="boolean"&&Y(n,"thinking",e.thinking),We(n,"reasoningMode",e.reasoningMode),We(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"&&au(n,e.compactionTriggerPercent),Number.isSafeInteger(e.compactionTriggerTokens)&&Number(e.compactionTriggerTokens)>0&&Y(n,"compactionTriggerTokens",Number(e.compactionTriggerTokens)),n}i(Hd,"parseRuntimeSessionSettings");function Ff(e){if(!U(e)||!U(e.scope))throw new Error("invalid permission grant");let n=e.scope.toolName,t=e.scope.sessionId,r=e.scope.matcher,o=e.persistence,s=e.label,d=e.sourcePermissionId;if(typeof e.id!="string"||typeof e.createdAt!="string"||n!==void 0&&typeof n!="string"||t!==void 0&&typeof t!="string"||o!==void 0&&o!=="session"&&o!=="persistent"||s!==void 0&&typeof s!="string"||d!==void 0&&typeof d!="string")throw new Error("invalid permission grant");return{id:e.id,createdAt:e.createdAt,persistence:o??"persistent",...s!==void 0?{label:s}:{},...d!==void 0?{sourcePermissionId:d}:{},scope:{...n!==void 0?{toolName:n}:{},...t!==void 0?{sessionId:t}:{},...r!==void 0?{matcher:Bo(r)}:{}}}}i(Ff,"parseRuntimePermissionGrant");function We(e,n,t){typeof t=="string"&&t.length>0&&Y(e,n,t)}i(We,"setStringIfPresent");function U(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(U,"isRecord");function jf(e,n){if(!U(e))throw new Error(`${n} requires a plain object`)}i(jf,"assertPlainObject");function Hf(e){let n=new Set(fp);for(let t of Object.keys(e))if(!n.has(t))throw new Error(`runtime.config.patch does not support config key: ${t}`);return e}i(Hf,"sanitizeRuntimeConfigPatch");function $f(e){if(e.homeDir!==void 0)return N.join(N.resolve(e.homeDir),".kodax","config.json")}i($f,"resolveRuntimeConfigFile");function ze(e){if(e===void 0)return Io();if(!F.existsSync(e))return{};try{let n=JSON.parse(F.readFileSync(e,"utf8"));return U(n)?n:{}}catch{return{}}}i(ze,"readRuntimeConfig");function qf(e,n){if(e===void 0){bo(n);return}ot(e,t=>{let r={...t,...n};for(let o of Object.keys(n))n[o]===void 0&&delete r[o];return{config:r,result:void 0}})}i(qf,"patchRuntimeConfig");function Kf(e,n){F.mkdirSync(N.dirname(e),{recursive:!0}),F.writeFileSync(e,`${JSON.stringify(n,null,2)}
|
|
28
|
+
`,"utf8")}i(Kf,"writeRuntimeConfigUnlocked");function ot(e,n){return So(e,()=>{let t=n(ze(e));return t.config&&Kf(e,t.config),t.result})}i(ot,"mutateRuntimeConfig");function Xf(e){return e===void 0?Mo():Wf(Yt(ze(e)))}i(Xf,"listRuntimeCustomProviders");function Bf(e,n){if(e===void 0)return Oo(n);Oi(n);let t=ot(e,r=>{let o=Qf(Yt(r),n,s=>s.name===n.name);return{config:{...r,customProviders:o},result:o}});return at(t),structuredClone(n)}i(Bf,"upsertRuntimeCustomProvider");function Uf(e,n){if(e===void 0)return _o(n);if(typeof n!="string"||n.length===0)return!1;let t=ot(e,r=>{let o=Yt(r),s=o.filter(d=>d.name!==n);return s.length===o.length?{result:void 0}:{config:{...r,customProviders:s},result:s}});return t?(at(t),!0):!1}i(Uf,"removeRuntimeCustomProvider");function cu(e){e!==void 0&&at(Yt(ze(e)))}i(cu,"registerRuntimeConfiguredCustomProviders");function Yt(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}i(Yt,"extractRuntimeCustomProviders");function Wf(e){return structuredClone(e)}i(Wf,"cloneCustomProviders");function wi(e){return e===void 0?Lo():Vf(Zt(ze(e)))}i(wi,"listRuntimeMcpServers");function zf(e,n){if(e===void 0)return No(n);let t=Zt(ze(e))[n];return t===void 0?void 0:structuredClone(t)}i(zf,"getRuntimeMcpServer");function Gf(e,n,t){return e===void 0?Fo(n,t):(wr(n,t),ot(e,r=>{let o={...Zt(r),[n]:structuredClone(t)};return{config:{...r,mcpServers:o},result:void 0}}),structuredClone(t))}i(Gf,"upsertRuntimeMcpServer");function Jf(e,n){return e===void 0?jo(n):ot(e,t=>{let r=Zt(t);if(!(n in r))return{result:!1};let o={...r};return delete o[n],{config:{...t,mcpServers:o},result:!0}})}i(Jf,"removeRuntimeMcpServer");function Zt(e){return U(e.mcpServers)?structuredClone(e.mcpServers):{}}i(Zt,"extractRuntimeMcpServers");function Vf(e){return structuredClone(e)}i(Vf,"cloneMcpServers");function Qf(e,n,t){let r=e.findIndex(t);return r<0?[...e,structuredClone(n)]:e.map((o,s)=>s===r?structuredClone(n):structuredClone(o))}i(Qf,"upsertConfigEntry");function Yf(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(o=>U(o)&&o.name===n.provider);return U(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!U(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}i(Yf,"listRuntimeModels");function $d(e){let n=Zf(e).map(eg),t=fn()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(ng)??[];return[...n,...t].sort((r,o)=>r.name.localeCompare(o.name))}i($d,"listRuntimeCommands");function Zf(e){let n=$o;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):Ao().getAll()}i(Zf,"listReplCommands");function eg(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:e.source,...e.usage!==void 0?{usage:e.usage}:{},...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},...e.location!==void 0?{location:e.location}:{},...e.path!==void 0?{path:e.path}:{},...e.userInvocable!==void 0?{userInvocable:e.userInvocable}:{},...e.disableModelInvocation!==void 0?{disableModelInvocation:e.disableModelInvocation}:{},...e.allowedTools!==void 0?{allowedTools:e.allowedTools}:{},...e.context!==void 0?{context:e.context}:{},...e.agent!==void 0?{agent:e.agent}:{},...e.model!==void 0?{model:e.model}:{}}}i(eg,"replCommandToRuntimeCommandInfo");function ng(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:"extension",...e.usage!==void 0?{usage:e.usage}:{}}}i(ng,"extensionCommandToRuntimeCommandInfo");function _n(e){return Array.isArray(e)?e.map(n=>_n(n)):U(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,tg(n)?"[redacted]":_n(t)])):e}i(_n,"redactRuntimeConfig");function tg(e){let n=e.toLowerCase();return n.includes("apikey")||n.includes("api_key")||n==="key"||n.endsWith("key")||n.includes("token")||n.includes("secret")||n.includes("password")}i(tg,"isSensitiveConfigKey");function rg(e){return{name:e.name,description:e.description,userInvocable:e.userInvocable,...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},path:e.path,source:e.source,disableModelInvocation:e.disableModelInvocation}}i(rg,"toRuntimeSkillSummary");function ig(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(tt)}:{},...e.references!==void 0?{references:e.references.map(tt)}:{},...e.assets!==void 0?{assets:e.assets.map(tt)}:{},...e.templates!==void 0?{templates:e.templates.map(tt)}:{},...e.resources!==void 0?{resources:e.resources.map(tt)}:{}}}i(ig,"toRuntimeSkillDescription");function tt(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}i(tt,"toRuntimeSkillFileSummary");function Fn(e){if(!U(e))throw new Error("Invalid runtime daemon response: expected object");return e}i(Fn,"requireRuntimeRecord");function lu(e){let n=Fn(e);if(typeof n.runtimeId!="string"||typeof n.mode!="string"||typeof n.profile!="string"||typeof n.startedAt!="string"||typeof n.version!="string")throw new Error("Invalid runtime daemon response: missing identity fields");return{runtimeId:n.runtimeId,mode:n.mode==="daemon"?"daemon":"embedded",profile:n.profile,startedAt:n.startedAt,version:n.version,...n.isolation==="inline"||n.isolation==="worker"||n.isolation==="process"?{isolation:n.isolation}:{},...typeof n.workerThreadId=="number"?{workerThreadId:n.workerThreadId}:{}}}i(lu,"parseRuntimeIdentity");function og(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",$n(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}i(og,"serializeSessionSettings");function sg(){return`run_${Date.now().toString(36)}_${ye().replace(/-/g,"").slice(0,8)}`}i(sg,"createRunId");function ag(){return`input_${Date.now().toString(36)}_${ye().replace(/-/g,"").slice(0,8)}`}i(ag,"createInputId");function mu(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}:{}}}i(mu,"runtimeInterruptInputStatus");function Pe(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:dg(e.phase)}}:{},...e.interruptInputs.length>0?{interruptInputs:e.interruptInputs.map(mu)}:{}}}i(Pe,"statusFromRecord");function dg(e){return e==="queued"?"queued":er(e)?"terminal":"delivered"}i(dg,"runtimeContinuationState");function pu(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}:{}}}i(pu,"resultFromStatus");function ug(e){return e.length<=Jt?e:[...e].sort(Ei).slice(-Jt)}i(ug,"recentRunStatuses");function cg(e){if(e.size<=Jt)return;let n=[...e.values()].filter(t=>er(t.phase)).sort((t,r)=>Ei(Pe(t),Pe(r)));for(let t of n){if(e.size<=Jt)return;e.delete(t.runId)}}i(cg,"pruneTerminalRuns");function Ei(e,n){let t=e.endedAt??e.startedAt,r=n.endedAt??n.startedAt,o=t.localeCompare(r);return o!==0?o:e.runId.localeCompare(n.runId)}i(Ei,"compareRunStatusRecency");function lg(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.phase!==void 0&&!(Array.isArray(n.phase)?n.phase:[n.phase]).includes(e.phase)):!0}i(lg,"runMatchesFilter");function Bt(e,n,t,r,o){if(t.terminalEmitted)return;t.interruptInputOpen=!1,mg(t),t.phase=r,t.endedAt=new Date().toISOString(),t.terminalEmitted=!0;let s=r==="completed"?"completed":r==="cancelled"?"cancelled":r==="interrupted"?"interrupted":"failed";t.terminal={revision:1,kind:s,code:o?.code??gg(s),effectOutcome:o?.effectOutcome??(s==="interrupted"?"unknown":"known"),...o?.message!==void 0?{message:o.message}:{}};let d=r==="completed"?"run.completed":r==="cancelled"?"run.cancelled":r==="interrupted"?"run.interrupted":"run.failed";ln(e,n,t,Pe(t)),e.emit(d,Pe(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}})}i(Bt,"markRunTerminal");function mg(e){for(let n of e.interruptInputs)n.state==="queued"&&(n.queueMessageId!==void 0&&(qi().dequeue({agentId:ir(e.sessionId,"/root"),maxPriority:"user",mode:"prompt",id:n.queueMessageId}),delete n.queueMessageId),n.state="terminal")}i(mg,"terminalizeQueuedInterruptInputs");function ln(e,n,t,r){try{n.saveRunStatus(r)}catch(o){let s=t?.turnId??r.turnId;e.emit("runtime.warning",{message:`Failed to save runtime run status for ${r.runId}: ${de(o).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...s!==void 0?{turnId:s}:{}})}}i(ln,"saveRunStatusSafely");function er(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(er,"isTerminalRunPhase");function pg(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}i(pg,"workflowEventType");function fg(e){return e==="completed"||e==="failed"||e==="cancelled"}i(fg,"isFinalWorkflowStatus");function gg(e){return e==="completed"?"completed":e==="failed"?"run_failed":e==="cancelled"?"cancelled":"interrupted"}i(gg,"defaultRuntimeTerminalCode");function yg(e){let n=e instanceof Error?e.code:void 0;return n==="host_tool_unknown"?{phase:"interrupted",terminal:{code:"host_outcome_unknown",effectOutcome:"unknown",message:"A run-bound host tool may have produced a side effect; it was not replayed."}}:n==="host_tool_unavailable"?{phase:"failed",terminal:{code:"host_not_dispatched",effectOutcome:"none",message:"The run-bound host tool was unavailable before dispatch."}}:n==="credential_unavailable"?{phase:"failed",terminal:{code:"credential_unavailable",effectOutcome:"none",message:"The provider credential was unavailable before the request could continue."}}:{phase:"failed",terminal:{code:"run_failed",effectOutcome:"known"}}}i(yg,"classifyRuntimeRunFailure");function Rg(e,n){if(!n.hadProviderCredential)return de(e);let t=new Error("Provider run failed while using a run-scoped credential.");return t.name="KodaXProviderRunError",t}i(Rg,"normalizeRuntimeRunError");function hg(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.runId!==void 0&&e.runId!==n.runId||n.toolName!==void 0&&e.toolName!==n.toolName):!0}i(hg,"permissionMatchesFilter");function wg(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}i(wg,"decisionToPermissionDecision");function vg(e){return e?.some(n=>n.kind==="dangerous_pattern"&&n.severity==="high"||n.kind==="protected_path"||n.kind==="shell_redirect_outside")?"high":e&&e.length>0?"medium":"low"}i(vg,"autoModeEscalationRisk");var Sg=8;function Ii(e){return N.resolve(e.start?.options.context?.executionCwd??e.start?.options.context?.gitRoot??process.cwd())}i(Ii,"resolveRuntimeExecutionCwd");function Ig(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:mr(n)}}i(Ig,"runtimeShellPermissionIdentity");function Qt(e){return e.kind==="tool"&&e.name==="auto-mode"&&"getEngine"in e&&typeof e.getEngine=="function"&&"consumeAllowedCall"in e&&typeof e.consumeAllowedCall=="function"&&"consumeWorkspaceSandboxCall"in e&&typeof e.consumeWorkspaceSandboxCall=="function"}i(Qt,"isRuntimeAutoModeGuardrail");function kg(e){if(he(e.permissionMode)==="auto")return e.start?.options.guardrails?.find(Qt)}i(kg,"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(s=>typeof s=="symbol"))throw new Error("Tool input must not contain symbol properties.");if(Array.isArray(e)){let s=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}:[${s.map(({key:d})=>`${d}:${qd(e,d,n)}`).join("")}]`}return`object:{${r.filter(s=>typeof s=="string").sort().map(s=>`${Di(s,n)}${qd(e,s,n)}`).join("")}}`}finally{n.delete(e)}}i(Di,"serializeRuntimeToolInput");function qd(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)}i(qd,"serializeRuntimeDataProperty");function Ln(e){try{let n=Di(e.input);return Wd("sha256").update(`${e.id}\0${e.name}\0${n}`).digest("hex")}catch{return}}i(Ln,"runtimeAutoModeDecisionKey");function bg(e){if(process.platform!=="win32")return!1;let n=N.resolve(process.env.SystemRoot??"C:\\Windows","Temp"),t=i(r=>{if(!N.isAbsolute(r))return!1;let o=N.relative(n,N.resolve(r));return o===""||!o.startsWith("..")&&!N.isAbsolute(o)},"isSystemTemp");return e.operations.some(r=>"target"in r?t(r.target.path):"source"in r?t(r.source.path)||t(r.destination.path):!1)}i(bg,"reviewTouchesProtectedWindowsSystemTemp");function Pg(e,n){let t=new Set;return{...e,beforeTool:i(async(r,o)=>{if(!e.beforeTool)return{action:"block",reason:"Runtime auto-mode guardrail has no beforeTool hook."};let s=await e.beforeTool(r,o);if(s.action==="allow"){let d=pr(r),u=d?.ok?d.call:r,m=Ln(u);m!==void 0&&t.add(m)}return s},"beforeTool"),consumeAllowedCall(r){let o=Ln(r);return o===void 0||!t.has(o)?!1:(t.delete(o),!0)},consumeWorkspaceSandboxCall(r){let o=Ln(r);return o===void 0||!n.has(o)?!1:(n.delete(o),!0)},clearAllowedCalls(){t.clear(),n.clear()}}}i(Pg,"createRuntimeOwnedAutoModeGuardrail");function xg(e){let n=new Set,t,r,o=i(async()=>{let s=(await e.settingsOwner.read(e.sessionId)).value,d=e.getRecord();if(d&&(d.permissionMode=s.permissionMode,d.autoModeEngine=he(s.permissionMode)==="auto"?s.autoModeEngine??"llm":s.autoModeEngine,d.autoModeClassifierModel=s.autoModeClassifierModel,d.autoModeTimeoutMs=s.autoModeTimeoutMs,d.autoModeSpeculativeWindowMs=s.autoModeSpeculativeWindowMs),r=uu(s,d?.model??e.model),r){t=void 0;return}let u=await Eg({...e,settings:s});return t=u,u},"resolveGuardrail");return{kind:"tool",name:"auto-mode",async prepare(){if(await o(),r)throw r},async beforeTool(s,d){let u=await o();if(!u?.beforeTool)return r?{action:"block",reason:r.message}:{action:"allow"};t=u;let m=await u.beforeTool(s,d);if(m.action==="allow"){let g=pr(s),R=g?.ok?g.call:s;u.consumeAllowedCall(R);let a=Ln(R);a!==void 0&&n.add(a)}return m},getEngine(){if(t)return t.getEngine();let s=e.settingsOwner.peek(e.sessionId)?.value;return he(s?.permissionMode)==="auto"?s?.autoModeEngine??"llm":"rules"},consumeAllowedCall(s){let d=Ln(s);return d===void 0||!n.has(d)?!1:(n.delete(d),!0)},consumeWorkspaceSandboxCall(s){return t?.consumeWorkspaceSandboxCall(s)??!1},clearAllowedCalls(){n.clear(),t?.clearAllowedCalls()}}}i(xg,"createRuntimeSessionAutoModeGuardrail");async function Eg(e){if(he(e.settings.permissionMode)!=="auto")return;let n=e.settings.autoModeEngine??"llm",t=e.states.get(e.sessionId);t===void 0?(t={engine:n,denials:gr(),breaker:yr()},e.states.set(e.sessionId,t)):t.engine=n;let r=N.resolve(e.options.context?.executionCwd??e.settings.executionCwd??e.options.context?.gitRoot??process.cwd()),o=N.resolve(e.options.context?.gitRoot??r),s=JSON.stringify([process.platform==="win32"?o.toLowerCase():o,process.platform==="win32"?r.toLowerCase():r,n,e.settings.autoModeClassifierModel??null,e.settings.autoModeTimeoutMs??null,e.settings.autoModeSpeculativeWindowMs??null]),d=e.cache.get(e.sessionId)??new Map;e.cache.set(e.sessionId,d);let u=d.get(s);if(u?.engine===n)return u.guardrail;u&&d.delete(s);let m,g=new Set,R=await Co({askUser:i(async(y,p,v,l)=>{let S=e.getRecord();if(!S)return"block";let b=S.phase;S.phase==="running"&&(S.phase="waiting_permission");try{let k=await e.permissions.requestOwned({sessionId:e.sessionId,runId:S.runId,...S.turnId!==void 0?{turnId:S.turnId}:{},toolCallId:y.id,toolName:y.name,reason:p.slice(0,512),risk:vg(v),inputPreview:Nn(y.input),executionCwd:r,...l!==void 0?{autoModeDiagnostics:l}:{}},{toolInput:y.input,projectRoot:o,...v!==void 0?{signals:v}:{}});return k.type==="reject"&&k.cause==="approval_timeout"?"timeout":k.type==="allow_once"||k.type==="allow_session"||k.type==="allow_always"?"allow":"block"}finally{S.phase==="waiting_permission"&&(S.phase=b==="queued"?"running":b)}},"askUser"),projectRoot:o,executionCwd:r,admitWorkspaceSandboxCall:i((y,p)=>{if(bg(p))return;let v=Ln(y);v!==void 0&&g.add(v)},"admitWorkspaceSandboxCall"),getCurrentProviderName:i(()=>e.getRecord()?.provider??e.provider,"getCurrentProviderName"),getCurrentModel:i(()=>e.getRecord()?.model??e.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>"auto","getCurrentPermissionMode"),autoModeSettings:{engine:n,...e.settings.autoModeClassifierModel!==void 0?{classifierModel:e.settings.autoModeClassifierModel}:{},...e.settings.autoModeTimeoutMs!==void 0?{timeoutMs:e.settings.autoModeTimeoutMs}:{},...e.settings.autoModeSpeculativeWindowMs!==void 0?{speculativeWindowMs:e.settings.autoModeSpeculativeWindowMs}:{}},sharedState:t,extraCollectors:[To],onEngineChange:i(y=>{m&&(m.engine=y),e.onEngineChange(y)},"onEngineChange")}),a=Pg(R.getGuardrail(),g);for(m={projectRoot:o,executionCwd:r,engine:a.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:a},d.set(s,m);d.size>Sg;){let y=d.keys().next().value;if(y===void 0||y===s)break;d.get(y)?.guardrail.clearAllowedCalls(),d.delete(y)}return a}i(Eg,"createRuntimeAutoModeGuardrail");function Kd(e,n,t){if(Vd.has(n))return!0;let r=he(e.permissionMode);if(r===void 0)return;let o=e.start?.options.context?.gitRoot??e.start?.options.context?.executionCwd,s=o===void 0?void 0:N.resolve(o),d=Ii(e);if(r==="plan"){let u=Do(n,t,s,d);return u===null?!0:`${u} Finish the plan before switching to a writable permission mode.`}if(n==="bash"){let u=typeof t.command=="string"?t.command:"";if(Po(u))return!0;if(s&&Eo(u,s,d))return}if(s&&wo.has(n)){let u=typeof t.path=="string"?t.path:void 0;if(u&&xo(Fi(u,d),s))return}return vo(r).has(n)?void 0:!0}i(Kd,"resolveRuntimePermissionPolicy");function Xd(e){return e?e.type==="allow_once"||e.type==="allow_session"||e.type==="allow_always"?!0:e.reason??!1:!1}i(Xd,"decisionToToolDecision");var Dg=8192,rt=16384,Bd=16,Tg={command:2048,description:1024,file_path:1024,path:1024,paths:1024,cwd:1024,url:1024,preview:2048},Ag=/(?:api[_-]?key|authorization|cookie|credential|password|secret|token)/i;function ki(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]
|
|
29
|
+
`).replace(/\b((?=[a-z0-9_]*(?:api[_-]?key|access[_-]?key|access[_-]?token|auth[_-]?token|client[_-]?secret|password|private[_-]?key|refresh[_-]?token|secret|token))[a-z_][a-z0-9_]*)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s;&|]+)/gi,"$1=[REDACTED]").replace(/((?:["']?(?:api[_-]?key|access[_-]?key|access[_-]?token|auth(?:orization)?[_-]?token|client[_-]?secret|cookie|credential|password|private[_-]?key|refresh[_-]?token|secret|token)["']?)\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}\]]+)/gi,'$1"[REDACTED]"').replace(/(--(?:(?:api|access|auth|id|refresh)[_-]?(?:key|token)|authorization|client[_-]?secret|password|private[_-]?key|secret|token))(?:=|\s+)(?:"[^"]*"|'[^']*'|[^\s;&|]+)/gi,"$1=[REDACTED]").replace(/\b((?:proxy-)?authorization|cookie|x-api-key)(\s*:\s*)(?:bearer\s+|basic\s+)?[^\s"';&|]+/gi,"$1$2[REDACTED]").replace(/(https?:\/\/)[^\s/:@]+:[^\s/@]+@/gi,"$1[REDACTED]@")}i(ki,"redactPermissionPreviewString");function Nn(e){try{return Cg(e)}catch{return'{"__truncated":true}'}}i(Nn,"previewInput");function Cg(e){let n={},t=!0;for(let[o,s]of Object.entries(Tg)){let d=Object.getOwnPropertyDescriptor(e,o);if(!d||!d.enumerable||!("value"in d))continue;if(Ag.test(o)){n[o]="[REDACTED]";continue}let u=d.value;if(typeof u=="string"){let m=u.slice(0,rt),g=ki(m);n[o]=g.length<=s?g:`${g.slice(0,Math.max(0,s-1))}\u2026`,t||=u.length>m.length||g.length>s;continue}if(o==="paths"&&Array.isArray(u)){let m=[];for(let g of u.slice(0,Bd)){if(typeof g!="string"){t=!0;continue}let R=g.slice(0,rt),a=ki(R);m.push(a.slice(0,s)),t||=g.length>R.length||a.length>s}t||=u.length>Bd,n[o]=m;continue}if(typeof u=="boolean"||typeof u=="number"||typeof u=="bigint"){n[o]=typeof u=="bigint"?u.toString():u;continue}t=!0}t&&(n.__truncated=!0);let r=JSON.stringify(n);return r.length<=Dg?r:'{"__truncated":true}'}i(Cg,"buildPermissionInputPreview");function Mg(e){if(e.length>rt)return Nn({preview:e.slice(0,rt)});try{let n=JSON.parse(e);return Nn(U(n)?n:{value:n})}catch{return Nn({preview:e})}}i(Mg,"normalizePermissionInputPreview");function de(e){return e instanceof Error?e:new Error(String(e))}i(de,"normalizeError");function it(e,n){return Object.assign(new Error(e),{code:"conflict",currentRevision:n})}i(it,"createRuntimeConflictError");function bi(e){return Object.assign(new Error(`Session is archived and cannot execute until it is unarchived: ${e}`),{code:"session_archived"})}i(bi,"createSessionArchivedError");function je(e){return Object.assign(new Error(e),{code:"resync_required"})}i(je,"createRuntimeResyncError");function fu(e){return Object.assign(new Error(e),{code:"invalid_input"})}i(fu,"createRuntimeInvalidInputError");function Og(e){return Object.assign(new Error(e),{code:"credential_unavailable"})}i(Og,"createRuntimeCredentialUnavailableError");function _g(){return{async register(){throw new Error("Credential broker registration requires a shared daemon client.")},async resume(){throw new Error("Credential broker resume requires a shared daemon client.")},async revoke(){return!1}}}i(_g,"createUnsupportedCredentialService");function Lg(){return{async register(){throw new Error("Host tool registration requires a shared daemon client.")},async resume(){throw new Error("Host tool resume requires a shared daemon client.")},async getInvocation(){},async revoke(){return!1}}}i(Lg,"createUnsupportedHostToolService");function On(e,n){if(!n(e))return;let t=new Error(`Session has an active run and cannot be mutated: ${e}`);throw Object.defineProperty(t,"code",{configurable:!0,enumerable:!0,value:"conflict"}),t}i(On,"assertSessionMutationAllowed");function Ud(e,n){if(!("ok"in n))throw n.error.code==="session_running"?new Error(`Session is running and cannot be deleted: ${e}`):Object.assign(new Error(`Session could not be deleted: ${e}`),{code:"session_delete_failed"})}i(Ud,"assertDeleteSucceeded");function Ng(e){return structuredClone(e)}i(Ng,"cloneMessage");export{Cr as a,qe as b,Mr as c,wn as d,en as e,It as f,Ot as g,Ra as h,ha as i,Qc as j,Yc as k,Oe as l,cn as m,dh as n,uh as o,ch as p,lh as q,mh as r,ph as s,Ep as t,Qd as u};
|