@kodax-ai/kodax 0.7.78 → 0.7.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +3556 -3197
  2. package/README.md +371 -277
  3. package/README_CN.md +295 -215
  4. package/config-templates/config.example.jsonc +24 -2
  5. package/config-templates/integrations/a2a.example.jsonc +23 -7
  6. package/dist/builtin/skill-creator/scripts/aggregate-benchmark.js +2 -1
  7. package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +1 -0
  8. package/dist/builtin/skill-creator/scripts/analyze-benchmark.js +4 -3
  9. package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +1 -0
  10. package/dist/builtin/skill-creator/scripts/compare-runs.js +4 -3
  11. package/dist/builtin/skill-creator/scripts/generate-review.js +2 -1
  12. package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +1 -0
  13. package/dist/builtin/skill-creator/scripts/grade-evals.js +4 -3
  14. package/dist/builtin/skill-creator/scripts/improve-description.js +2 -1
  15. package/dist/builtin/skill-creator/scripts/init-skill.d.ts +1 -0
  16. package/dist/builtin/skill-creator/scripts/init-skill.js +4 -3
  17. package/dist/builtin/skill-creator/scripts/install-skill.d.ts +1 -0
  18. package/dist/builtin/skill-creator/scripts/install-skill.js +4 -3
  19. package/dist/builtin/skill-creator/scripts/package-skill.d.ts +1 -0
  20. package/dist/builtin/skill-creator/scripts/package-skill.js +4 -3
  21. package/dist/builtin/skill-creator/scripts/quick-validate.d.ts +1 -0
  22. package/dist/builtin/skill-creator/scripts/quick-validate.js +4 -3
  23. package/dist/builtin/skill-creator/scripts/run-eval.d.ts +1 -0
  24. package/dist/builtin/skill-creator/scripts/run-eval.js +4 -3
  25. package/dist/builtin/skill-creator/scripts/run-loop.js +2 -1
  26. package/dist/builtin/skill-creator/scripts/run-trigger-eval.js +2 -1
  27. package/dist/builtin/skill-creator/scripts/utils.d.ts +3 -0
  28. package/dist/builtin/skill-creator/scripts/utils.js +5 -1
  29. package/dist/chunks/agent-5PHGNFW3.js +2 -0
  30. package/dist/chunks/argument-completer-FXRZFMTC.js +2 -0
  31. package/dist/chunks/chunk-6UENDY33.js +89 -0
  32. package/dist/chunks/{chunk-6FOJVETH.js → chunk-BWX4YZX3.js} +7 -7
  33. package/dist/chunks/chunk-CDCCTM5I.js +278 -0
  34. package/dist/chunks/chunk-CEB5FDND.js +810 -0
  35. package/dist/chunks/{chunk-2CFHBKRE.js → chunk-E7C4DRD2.js} +2 -2
  36. package/dist/chunks/chunk-EVXIJPZ6.js +218 -0
  37. package/dist/chunks/chunk-FQ7NVMSU.js +319 -0
  38. package/dist/chunks/chunk-GC4JBMBS.js +385 -0
  39. package/dist/chunks/{chunk-Z3KFRTSB.js → chunk-HTVLCHWH.js} +1 -1
  40. package/dist/chunks/chunk-IHPH3444.js +655 -0
  41. package/dist/chunks/{chunk-YAZQTC2L.js → chunk-KHEFUT6O.js} +1 -1
  42. package/dist/chunks/{chunk-7OEBJGHK.js → chunk-PMKAG4SZ.js} +1 -1
  43. package/dist/chunks/chunk-RPF5RGWZ.js +479 -0
  44. package/dist/chunks/{chunk-UID7BLAB.js → chunk-RXXKDR6Y.js} +1 -1
  45. package/dist/chunks/chunk-T5U4OP2N.js +292 -0
  46. package/dist/chunks/chunk-TRNAWSXP.js +123 -0
  47. package/dist/chunks/chunk-UZSHBQER.js +30 -0
  48. package/dist/chunks/{chunk-TQDBTTIM.js → chunk-VECRQTSD.js} +44 -44
  49. package/dist/chunks/compaction-config-6J6XCBJS.js +2 -0
  50. package/dist/chunks/{construction-bootstrap-VQLQGWPY.js → construction-bootstrap-KPCAE3VN.js} +1 -1
  51. package/dist/chunks/dist-RWEVZOFK.js +2 -0
  52. package/dist/chunks/{dist-BFT5YIGU.js → dist-WWL2DNIJ.js} +1 -1
  53. package/dist/chunks/host-OGS2R5J4.js +2 -0
  54. package/dist/chunks/run-manager-2YMM3BOT.js +2 -0
  55. package/dist/chunks/{utils-SID4HW2Q.js → utils-2YHRUZYC.js} +1 -1
  56. package/dist/index.d.ts +21 -20
  57. package/dist/index.js +4 -4
  58. package/dist/kodax_bootstrap.js +2 -1
  59. package/dist/kodax_cli.js +1850 -1476
  60. package/dist/kodax_resume.js +570 -34
  61. package/dist/provider-capabilities.json +85 -50
  62. package/dist/runtime-worker.js +1737 -1369
  63. package/dist/sandbox-workspace-session.js +285 -19
  64. package/dist/sdk-a2a.d.ts +19 -13
  65. package/dist/sdk-a2a.js +8 -8
  66. package/dist/sdk-agent.d.ts +80 -150
  67. package/dist/sdk-agent.js +1 -1
  68. package/dist/sdk-coding.d.ts +186 -66
  69. package/dist/sdk-coding.js +1 -1
  70. package/dist/sdk-experimental-memory.d.ts +3 -3
  71. package/dist/sdk-experimental-memory.js +1 -1
  72. package/dist/sdk-llm.d.ts +7 -7
  73. package/dist/sdk-llm.js +1 -1
  74. package/dist/sdk-mcp.d.ts +1 -1
  75. package/dist/sdk-mcp.js +1 -1
  76. package/dist/sdk-media.d.ts +1 -1
  77. package/dist/sdk-media.js +1 -1
  78. package/dist/sdk-repl.d.ts +31 -213
  79. package/dist/sdk-repl.js +2 -2
  80. package/dist/sdk-runtime.d.ts +230 -31
  81. package/dist/sdk-runtime.js +1 -1
  82. package/dist/sdk-sandbox.js +1 -1
  83. package/dist/sdk-session.d.ts +8 -8
  84. package/dist/sdk-session.js +1 -1
  85. package/dist/sdk-skills.js +1 -1
  86. package/dist/semantic-worker.js +283 -18
  87. package/dist/types-chunks/{base.d-4e74xDdy.d.ts → base.d-DxG0m09Z.d.ts} +1 -1
  88. package/dist/types-chunks/{bash-prefix-extractor.d-uAe2Oqda.d.ts → bash-prefix-extractor.d-DStqKIlu.d.ts} +31 -8
  89. package/dist/types-chunks/{capability-learning.d-CVsdHw4j.d.ts → capability-learning.d-iPSiAmc_.d.ts} +1 -1
  90. package/dist/types-chunks/{capsule.d-BlSv9l3V.d.ts → capsule.d-BuFJaYxA.d.ts} +14 -21
  91. package/dist/types-chunks/{types.d-BA-Jwpfs.d.ts → controller.d-C2aHqzHj.d.ts} +344 -11
  92. package/dist/types-chunks/{guardrail.d-CXDYRgZ3.d.ts → guardrail.d-DM-OK0m3.d.ts} +187 -116
  93. package/dist/types-chunks/{history-retrieval.d-DtCy7x64.d.ts → history-retrieval.d-DImTKgO6.d.ts} +16 -3
  94. package/dist/types-chunks/{oauth-login.d-Bgb4rdLN.d.ts → oauth-login.d-6i-vidxv.d.ts} +6 -2
  95. package/dist/types-chunks/{public-api.d-B3AohsxN.d.ts → public-api.d-CewTvUKV.d.ts} +335 -38
  96. package/dist/types-chunks/{repl.d-Ie_ZXb_U.d.ts → repl.d-DvXQtgr7.d.ts} +5 -5
  97. package/dist/types-chunks/{resolver.d-iAQ9ocLB.d.ts → resolver.d-C9IW4fmU.d.ts} +5 -2
  98. package/dist/types-chunks/{run-manager.d-D1twIhF9.d.ts → run-manager.d-C6ahvZqK.d.ts} +1 -1
  99. package/dist/types-chunks/{sdk-session-DB9KksIx.d.ts → sdk-session-C59RUrri.d.ts} +3 -3
  100. package/dist/types-chunks/shell-command-sets.d-Dp4UvPLL.d.ts +297 -0
  101. package/dist/types-chunks/{side-query.d-DTuLPcC5.d.ts → side-query.d-CP1LiRiH.d.ts} +8 -2
  102. package/dist/types-chunks/{types-D3g6XUQr.d.ts → types-Bf3Y3mW-.d.ts} +1 -1
  103. package/dist/types-chunks/{types.d-BH0ZkTGf.d.ts → types.d-BzpPDBPV.d.ts} +2 -2
  104. package/dist/types-chunks/{types.d-DIpZJKUl.d.ts → types.d-CgrXrFrq.d.ts} +16 -2
  105. package/dist/types-chunks/{types.d-DVDTIfB_.d.ts → types.d-yuJzE82x.d.ts} +4 -4
  106. package/dist/types-chunks/{utils.d-CVp6bFl9.d.ts → utils.d-BpACJmzt.d.ts} +24 -6
  107. package/docs/SDK_EMBEDDER_GUIDE.md +1148 -598
  108. package/package.json +6 -3
  109. package/dist/chunks/agent-ASP4MS3X.js +0 -2
  110. package/dist/chunks/argument-completer-JYQ7FX3W.js +0 -2
  111. package/dist/chunks/chunk-35PPHOQ2.js +0 -292
  112. package/dist/chunks/chunk-43QNNDHR.js +0 -29
  113. package/dist/chunks/chunk-5GO6FH7L.js +0 -458
  114. package/dist/chunks/chunk-5NDCSFOP.js +0 -78
  115. package/dist/chunks/chunk-6XM4B6K2.js +0 -48
  116. package/dist/chunks/chunk-6YZUE6NC.js +0 -240
  117. package/dist/chunks/chunk-KQLQYHWU.js +0 -386
  118. package/dist/chunks/chunk-NXO6GWSY.js +0 -46
  119. package/dist/chunks/chunk-T2XZTLYE.js +0 -316
  120. package/dist/chunks/chunk-VAT2QYXM.js +0 -765
  121. package/dist/chunks/chunk-YVRYHC4C.js +0 -655
  122. package/dist/chunks/compaction-config-BQSSIWK5.js +0 -2
  123. package/dist/chunks/dist-PCFE24YP.js +0 -2
  124. package/dist/chunks/host-UTFXCYYM.js +0 -2
  125. package/dist/chunks/run-manager-PJU3WIFJ.js +0 -2
  126. package/dist/types-chunks/guardrail.d-BRE_ErEj.d.ts +0 -156
@@ -0,0 +1,30 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{b as $r,h as Va,i as Ga}from"./chunk-T5U4OP2N.js";import{Cb as qa,Eb as $a,Fb as ja,Gb as Ba,Hb as Ka,Ib as Xa,Jb as Ua,Kb as to,Ob as ro,Pb as io,Qb as rn,Wa as Fa,Zb as oo,jc as za,kc as Wa}from"./chunk-FQ7NVMSU.js";import{Aa as Ha,k as Da,m as mn,y as La}from"./chunk-IHPH3444.js";import{O as no,Q as _a,X as Oa,Y as Na,f as Ma,q as eo,y as qr}from"./chunk-CDCCTM5I.js";import{$a as Zi,Ca as Ea,Ja as Pa,Va as Qi,aa as Hr,bb as xa,cb as Ca,e as va,ea as Ia,eb as Aa,fb as Ta,ib as Fr,ta as ka,w as Sa,za as ba}from"./chunk-RPF5RGWZ.js";import{k as ya}from"./chunk-VECRQTSD.js";import{Kc as Ra,Pb as Ji,Vc as Pt,ae as ha,c as sr,ce as wa,d as Gi,jd as Yi,xb as ar}from"./chunk-GC4JBMBS.js";import{Aa as Nr,Ta as js,a as qi,c as nt,ya as $s}from"./chunk-TRNAWSXP.js";import{$c as Vi,$d as ga,La as Us,Pa as zs,Sa as $i,Va as Ws,Wd as fa,Ya as Vs,Yb as Wi,_d as pa,cd as la,dd as ma,pc as ca}from"./chunk-CEB5FDND.js";import{Fa as ia,Ga as Ki,H as Zs,La as oa,Ma as sa,Na as aa,Oa as da,Pa as ua,Qa as Xi,Z as ea,_a as Ui,ab as zi,c as Bs,d as fe,g as Ks,i as Lr,j as Xs,r as Qs,ra as na,va as Bi,ya as ta,za as ra}from"./chunk-EVXIJPZ6.js";import{F as Ys,b as Gs,d as ji,e as Js}from"./chunk-E7C4DRD2.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as vt,randomUUID as Je}from"node:crypto";import{spawnSync as Mc}from"node:child_process";import*as F from"node:fs";import Ei from"node:os";import Q from"node:path";import{createHash as Yl}from"node:crypto";import dr from"node:path";var Ql=["path","file_path"],Zl=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function uo(e){let n=e.platform??Br();if(e.toolName==="bash")return nm(e,n);let t=Zl.has(e.toolName)?Ql.map(s=>e.toolInput[s]).find(s=>typeof s=="string"&&s.length>0):void 0;if(t!==void 0)return rm(e.toolName,t,e.executionCwd,n);let r=lo(e.executionCwd,e.executionCwd,n),o=tt(sm(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:tt({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(uo,"createRuntimePermissionMatcher");function Ja(e,n){if(e.toolName!==n.toolName)return!1;let t=uo(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(Ja,"runtimePermissionMatcherMatches");function Ya(e){if(!am(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"||!jr(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!jr(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!jr(e.argvFingerprint))throw new Error("invalid Runtime command permission matcher");let n={version:1,kind:"exact-command",toolName:e.toolName,fingerprint:e.fingerprint,shell:e.shell,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:e.commandFingerprint,cwd:e.cwd,background:e.background,...e.executable!==void 0?{executable:e.executable}:{},...e.argvFingerprint!==void 0?{argvFingerprint:e.argvFingerprint}:{}};return so(n,{version:1,kind:"exact-command",toolName:n.toolName,shell:n.shell,...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{},commandFingerprint:n.commandFingerprint,cwd:n.cwd,...n.executable!==void 0?{executable:n.executable}:{},...n.argvFingerprint!==void 0?{argvFingerprint:n.argvFingerprint}:{},background:n.background}),n}if(e.kind==="exact-path"&&typeof e.path=="string"){let n={version:1,kind:"exact-path",toolName:e.toolName,fingerprint:e.fingerprint,path:e.path};return so(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&jr(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return so(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(Ya,"parseRuntimePermissionMatcher");function so(e,n){if(tt(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(so,"assertMatcherFingerprint");function em(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(em,"hasDynamicShellExpansion");function co(e,n){return em(e,n==="posix"?"posix":"win32")}i(co,"hasDynamicExpansionForPermissionShell");function Br(){return process.platform==="win32"?"win32":"posix"}i(Br,"runtimePermissionHostPlatform");function nm(e,n){let t=e.toolInput.command,r=typeof t=="string"?im(t):"",o=lo(e.executionCwd,e.executionCwd,n),s=e.toolInput.run_in_background===!0,a=e.shell??(n==="win32"?"cmd":"posix"),u=om(r,a),l=tm(u?.[0],n),p=u&&u.length>1?tt(u.slice(1)):void 0,R=tt(r),v={version:1,kind:"exact-command",toolName:e.toolName,shell:a,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:R,cwd:o,...l!==void 0?{executable:l}:{},...p!==void 0?{argvFingerprint:p}:{},background:s};return{...v,fingerprint:tt(v)}}i(nm,"createExactCommandMatcher");function tm(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?dr.win32.basename(e.replaceAll("/","\\")):dr.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(tm,"safeExecutableMetadata");function rm(e,n,t,r){let o=lo(n,t,r),s={version:1,kind:"exact-path",toolName:e,path:o};return{...s,fingerprint:tt(s)}}i(rm,"createExactPathMatcher");function im(e){return e.replace(/\r\n?/g,`
3
+ `).trim()}i(im,"normalizeCommand");function lo(e,n,t){if(t==="win32"){let r=dr.win32.resolve(n.replaceAll("/","\\"));return dr.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return dr.posix.resolve(n,e)}i(lo,"normalizePermissionPath");function om(e,n){if(e.length===0||e.includes("\0")||e.includes(`
4
+ `))return;let t=[],r="",o;for(let s=0;s<e.length;s+=1){let a=e[s]??"";if(n!=="cmd"&&a==="'"&&o!=="double"){o=o==="single"?void 0:"single";continue}if(a==='"'&&o!=="single"){o=o==="double"?void 0:"double";continue}if(a===(n==="cmd"?"^":n==="powershell"?"`":"\\")&&o!=="single"&&s+1<e.length){r+=e[s+1]??"",s+=1;continue}if(/\s/.test(a)&&o===void 0){r.length>0&&t.push(r),r="";continue}r+=a}if(o===void 0)return r.length>0&&t.push(r),t.length>0?t:void 0}i(om,"tokenizeShellCommand");function sm(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}i(sm,"normalizeGenericInput");function tt(e){return Yl("sha256").update(ao(e)).digest("hex")}i(tt,"stableFingerprint");function ao(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(ao).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${ao(n[t])}`).join(",")}}`}i(ao,"stableSerialize");function jr(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}i(jr,"isSha256");function am(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(am,"isRecord");import{createHash as dm}from"node:crypto";import vn from"node:fs";import wn from"node:path";function xt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(xt,"isRecord");function Qa(e){return xt(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"&&xt(e.capabilities)&&xt(e.effects):!1}i(Qa,"isRegistration");function um(e){return xt(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"&&xt(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}i(um,"isTask");function cm(e){return xt(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}i(cm,"isEvent");function ed(e){try{return JSON.parse(vn.readFileSync(e,"utf8"))}catch(n){let t=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse Runtime agent store file ${e}: ${t}`)}}i(ed,"parseJson");function Za(e,n){if(!vn.existsSync(e))return[];let t=ed(e);if(!Array.isArray(t)||!t.every(n))throw new Error(`Runtime agent store file has an invalid array shape: ${e}`);return structuredClone(t)}i(Za,"readList");function mo(e,n){vn.mkdirSync(wn.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;vn.writeFileSync(t,`${JSON.stringify(n,null,2)}
5
+ `,{encoding:"utf8",mode:384}),vn.renameSync(t,e)}i(mo,"writeJsonAtomic");function Kr(e,n){let t=dm("sha256").update(n).digest("hex");return wn.join(e,t)}i(Kr,"taskDirectory");function lm(e,n){if(!vn.existsSync(e))return[];let t=vn.readFileSync(e,"utf8").trim();if(!t)return[];let r=0;return t.split(/\r?\n/).map((o,s)=>{let a;try{a=JSON.parse(o)}catch(u){let l=u instanceof Error?u.message:String(u);throw new Error(`Invalid Runtime agent event at ${e}:${s+1}: ${l}`)}if(!cm(a))throw new Error(`Invalid Runtime agent event shape at ${e}:${s+1}`);if(a.taskId!==n)throw new Error(`Runtime agent event taskId does not match its ledger at ${e}:${s+1}`);if(a.seq<=r)throw new Error(`Runtime agent events require a strictly increasing positive sequence at ${e}:${s+1}`);return r=a.seq,a})}i(lm,"readEvents");function nd(e){let n=wn.resolve(e),t=wn.join(n,"registrations.json"),r=wn.join(n,"task-registration-snapshots.json"),o=wn.join(n,"tasks");return{async loadRegistrations(){return Za(t,Qa)},async saveRegistrations(s){mo(t,s)},async loadTaskRegistrationSnapshots(){return Za(r,Qa)},async saveTaskRegistrationSnapshots(s){mo(r,s)},async loadTasks(){if(!vn.existsSync(o))return[];let s=[];for(let u of vn.readdirSync(o,{withFileTypes:!0})){if(!u.isDirectory())continue;let l=wn.join(o,u.name,"snapshot.json");if(!vn.existsSync(l))continue;let p=ed(l);if(!um(p))throw new Error(`Invalid Runtime agent task shape: ${l}`);s.push({directoryName:u.name,file:l,task:p})}let a=new Set;for(let{task:u}of s){if(a.has(u.taskId))throw new Error(`Duplicate Runtime agent taskId: ${u.taskId}`);a.add(u.taskId)}for(let{directoryName:u,file:l,task:p}of s){let R=wn.basename(Kr(o,p.taskId));if(u!==R)throw new Error(`Runtime agent task directory does not match taskId hash: ${l}`)}return s.map(({task:u})=>u)},async saveTask(s){mo(wn.join(Kr(o,s.taskId),"snapshot.json"),s)},async loadEvents(s){return lm(wn.join(Kr(o,s),"events.jsonl"),s)},async appendEvent(s){let a=wn.join(Kr(o,s.taskId),"events.jsonl");vn.mkdirSync(wn.dirname(a),{recursive:!0}),vn.appendFileSync(a,`${JSON.stringify(s)}
6
+ `,{encoding:"utf8",mode:384})}}}i(nd,"createRuntimeAgentExecutorPlaneStore");import{createHash as fd,randomUUID as ur}from"node:crypto";import At from"node:fs";import{mkdir as pd,readFile as gd}from"node:fs/promises";import Be from"node:path";var yd=["read","grep","glob"],Rd=["write","edit","multi_edit","insert_after_anchor"],hd=["mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt"],mm=["list_dispatchable_agents","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output"],fm=new Set([...yd,...Rd]),pm=new Set([".ssh",".aws",".azure",".gnupg",".kodax",".agents"]),gm=new Set([".env",".npmrc",".pypirc","credentials","id_rsa","id_ed25519"]);function po(e){return Array.isArray(e)?e.map(po):e===null||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,po(t)]))}i(po,"canonicalValue");function rt(e){return fd("sha256").update(JSON.stringify(po(e))).digest("hex")}i(rt,"stableHash");function wd(e){let n=fd("sha256");for(let t of e)n.update(t);return n.digest("hex")}i(wd,"hashParts");function Xr(e,n){let t=Be.relative(Be.resolve(e),Be.resolve(n));return t===""||!t.startsWith("..")&&!Be.isAbsolute(t)}i(Xr,"isInside");function go(e){if(!At.existsSync(e))return 0;let n=0;for(let t of At.readdirSync(e,{withFileTypes:!0})){let r=Be.join(e,t.name);t.isSymbolicLink()||(t.isDirectory()?n+=go(r):t.isFile()&&(n+=At.statSync(r).size))}return n}i(go,"directoryBytes");function td(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<=0)throw new Error("Runtime workspace byte limit must be positive.");return e}}i(td,"validateWorkspaceByteLimit");function fo(e){if(e.mode==="managed")return{mode:"managed"};if(!Be.isAbsolute(e.root))throw new Error("Fixed Runtime workspace root must be absolute.");return{mode:"fixed",root:Be.resolve(e.root)}}i(fo,"normalizedWorkspace");function yo(e,n,t=!0){if(!Array.isArray(e)||!t&&e.length===0)throw new Error(`${n} must be ${t?"an":"a non-empty"} array.`);let r=e.map(o=>{if(typeof o!="string"||o.trim().length===0||o.includes("*"))throw new Error(`${n} must contain exact names without wildcards.`);return o.trim()});if(new Set(r).size!==r.length)throw new Error(`${n} contains duplicates.`);return r.sort()}i(yo,"exactList");function rd(e,n){if(!e||typeof e!="object"||Array.isArray(e))throw new Error(`${n} must be an object.`);return Object.fromEntries(Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>{if(!t||t.includes("*"))throw new Error(`${n} keys must be exact names.`);return[t,yo(r,`${n}.${t}`,!1)]}))}i(rd,"exactMap");function id(e){if(!["none","read","write"].includes(e?.workspace))throw new Error("Runtime toolPolicy.workspace is invalid.");if(!["deny","isolated"].includes(e?.process))throw new Error("Runtime toolPolicy.process is invalid.");if(!["deny","inherit"].includes(e?.subagents))throw new Error("Runtime toolPolicy.subagents is invalid.");let n=e?.network;if(!n||n.mode!=="deny"&&n.mode!=="allowlist")throw new Error("Runtime toolPolicy.network is invalid.");let t=n.mode==="deny"?{mode:"deny"}:{mode:"allowlist",origins:yo(n.origins,"Runtime toolPolicy.network.origins").map(s=>{let a=new URL(s);if(!["http:","https:"].includes(a.protocol)||a.origin!==s)throw new Error("Runtime network authority must be an exact HTTP(S) origin.");return a.origin})},r=rd(e.skillScripts,"Runtime toolPolicy.skillScripts"),o=Object.values(r).reduce((s,a)=>s+a.length,0);if(e.process==="deny"!=(o===0))throw new Error("Runtime isolated process authority and skillScripts must be enabled together.");return{workspace:e.workspace,process:e.process,network:t,tools:yo(e.tools,"Runtime toolPolicy.tools"),mcp:rd(e.mcp,"Runtime toolPolicy.mcp"),skillScripts:r,subagents:e.subagents}}i(id,"validatedToolPolicy");function ym(e){return e==="project"?"workspace":e}i(ym,"skillSource");function Rm(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(Rm,"skillFiles");async function hm(e){let n=[e.name,e.rawContent];for(let t of Rm(e))n.push(t.relativePath,await gd(t.path));return wd(n)}i(hm,"skillRevision");var Ur=class{static{i(this,"PinnedSkillRegistry")}#n;#e;constructor(n,t){this.#n=n,this.#e=new Map(t.map(r=>[r.name,r]))}get skills(){return this.#e}get size(){return this.#e.size}async discover(){}get(n){return this.#e.get(n)}has(n){return this.#e.has(n)}list(){return[...this.#e.values()]}listUserInvocable(){return this.list().filter(n=>n.userInvocable)}async loadFull(n){if(!this.has(n))throw new Error(`Skill not admitted by Runtime binding: ${n}`);return this.#n.loadFull(n)}async invoke(n,t,r){return this.has(n)?this.#n.invoke(n,t,r):{success:!1,content:"",error:`Skill not admitted: ${n}`}}async reload(){throw new Error("A bound Skill registry is immutable; create a new Runtime binding.")}},Ro=class{constructor(n,t){this.formal=n;this.learned=t}formal;learned;static{i(this,"CompositeSkillRegistry")}get skills(){return new Map(this.list().map(n=>[n.name,n]))}get size(){return this.list().length}async discover(){}get(n){return this.formal.get(n)??this.learned.get(n)}has(n){return this.formal.has(n)||this.learned.has(n)}list(){let n=new Map(this.learned.list().map(t=>[t.name,t]));for(let t of this.formal.list())n.set(t.name,t);return[...n.values()]}listUserInvocable(){return this.list().filter(n=>n.userInvocable)}loadFull(n){return this.formal.has(n)?this.formal.loadFull(n):this.learned.loadFull(n)}invoke(n,t,r){return this.formal.has(n)?this.formal.invoke(n,t,r):this.learned.invoke(n,t,r)}async reload(){throw new Error("A bound Skill registry is immutable; create a new Runtime binding.")}};async function vd(e){let n=e.workspace.mode==="fixed"?e.workspace.root:void 0,t=Zs(n),r=t.userPaths.filter(a=>Be.basename(Be.dirname(a))===".agents"),o=n===void 0?void 0:await Sd({configHome:e.configHome,projectRoot:n,...e.bindingId===void 0?{}:{bindingId:e.bindingId},...e.ownerSessionRef===void 0?{}:{ownerSessionRef:e.ownerSessionRef}}),s=new Ui(n,{projectPaths:e.workspace.mode==="managed"?[]:t.projectPaths,userPaths:[Be.join(e.configHome,"skills"),...r],pluginPaths:t.pluginPaths,builtinPath:t.builtinPath,...o===void 0?{}:{learnedArea:o.discovery}});try{await s.discover()}catch(a){throw await it(o,e.bindingId),a}try{let a=s.list(),l=e.selection===void 0||e.selection.includes("*")?a.filter(v=>v.source!=="project"&&!v.disableModelInvocation):e.selection.map(v=>{let y=s.get(v);if(!y)throw new Error(`Markdown Agent requires unknown Skill "${v}".`);if(y.disableModelInvocation)throw new Error(`Skill "${v}" disables model invocation.`);return y}),p=[];for(let v of l.sort((y,x)=>y.name.localeCompare(x.name))){let y=await hm(await s.loadFull(v.name));p.push({name:v.name,source:ym(v.source),revision:y})}let R={registry:new Ur(s,l),refs:p,revision:rt(p),protectedFormalSkillNames:a.filter(v=>v.source!=="learned").map(v=>v.name),...o===void 0?{}:{learnedSkills:{store:o.store,testingCapabilityIds:o.testingCapabilityIds}}};return await Ct(o,e.bindingId),R}catch(a){throw await Ct(o,e.bindingId),a}}i(vd,"resolveSkills");async function Sd(e){try{return await wm(e)}catch(n){fe({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this binding: ${cr(n)}`});return}}i(Sd,"tryPrepareProjectLearnedSkills");async function it(e,n){e===void 0||n===void 0||await Promise.all(e.testingCapabilityIds.map(t=>Ki(e.store,t,n)))}i(it,"releaseResolvedLearnedSkills");async function Ct(e,n){if(e===void 0||n===void 0)return;let t=await Promise.allSettled(e.testingCapabilityIds.map(r=>Ki(e.store,r,n)));for(let r of t)r.status==="rejected"&&fe({source:"runtime:learned-skills",level:"warn",message:`Learned Skill binding release requires lease recovery: ${cr(r.reason)}`})}i(Ct,"safeReleaseResolvedLearnedSkills");function cr(e){return e instanceof Error?e.message:String(e)}i(cr,"errorMessage");async function wm(e){let n=`local:${e.configHome}`,t=Qs(e.projectRoot)?.trim(),r=t===void 0?`local:${Be.resolve(e.projectRoot).toLowerCase()}`:ya(t),o=ta(e.configHome,{tenantId:n,projectId:r}),s=new na(o);await s.initialize();let a=ra(e.configHome,{tenantId:n,projectId:r});await sa(e.configHome,s,a);let u={},l=[];if(e.bindingId!==void 0&&e.ownerSessionRef!==void 0)for(let p of await s.listCapabilities()){if(p.schemaVersion!==2||p.lifecycle!=="testing")continue;let R=await ia(s,p.capabilityId,{bindingId:e.bindingId,ownerSessionRef:e.ownerSessionRef});R!==void 0&&(u[p.capabilityId]=R.bindingId,l.push(p.capabilityId))}return{store:s,testingCapabilityIds:l,discovery:{rootDir:o,expectedScope:a,testingBindings:u}}}i(wm,"prepareProjectLearnedSkills");function vm(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(vm,"validateRemoteContract");function od(e){let n=new Set;e.policy.workspace!=="none"&&yd.forEach(s=>n.add(s)),e.policy.workspace==="write"&&Rd.forEach(s=>n.add(s)),e.hasSkills&&n.add("skill"),e.hasSkillScripts&&n.add("run_skill_script"),Object.keys(e.policy.mcp).length>0&&hd.forEach(s=>n.add(s)),e.policy.subagents==="inherit"&&mm.forEach(s=>n.add(s));let t=new Map(Yi().map(s=>[s.name,s])),r=new Map;for(let s of e.policy.tools){let a=t.get(s)?.remoteContract;if(!a)throw new Error(`Tool "${s}" has no Runtime remote contract.`);vm(s,a,e.policy),r.set(s,a),n.add(s)}let o=new Map;for(let s of n){let a=t.get(s);if(!a)throw new Error(`Runtime tool is unavailable: ${s}.`);if(!r.has(s)&&a.source.kind!=="builtin")throw new Error(`Native Runtime tool "${s}" is shadowed by a non-builtin registration.`);o.set(s,a.registrationId)}if(e.declared!==void 0){let s=e.declared.filter(u=>!n.has(u));if(s.length>0)throw new Error(`Markdown Agent tools are denied by remote policy: ${s.join(", ")}.`);let a=[...new Set(e.declared)].sort();return{tools:a,contracts:r,registrations:new Map(a.map(u=>[u,o.get(u)]))}}return{tools:[...n].sort(),contracts:r,registrations:o}}i(od,"resolveToolSurface");function sd(e,n){return e.length===0?`## Available Skills
7
+
8
+ No Skills are admitted for this deployment.`:["## Available Skills","","Invoke a matching Skill with the `skill` tool before completing that work.",...e.map(t=>`- ${t.name}: ${n.get(t.name)?.description??""}`)].join(`
9
+ `)}i(sd,"skillsPrompt");function ad(e,n){let r=Be.relative(n,e).split(Be.sep).map(o=>o.toLowerCase());return r.some(o=>pm.has(o))||r.some(o=>gm.has(o)||o.startsWith(".env."))}i(ad,"sensitivePath");function Sm(e){let n=e;for(;!At.existsSync(n);){let t=Be.dirname(n);if(t===n)throw new Error("Tool path has no existing parent.");n=t}return n}i(Sm,"nearestExistingPath");function Im(e,n){let t=At.realpathSync(e),r=Sm(n),o=At.realpathSync(r);if(!Xr(t,o))throw new Error("Tool path escapes the bound workspace through a link.");let s=Be.resolve(o,Be.relative(r,n));if(!Xr(t,s))throw new Error("Tool path escapes the bound workspace through a link.");return{root:t,candidate:s}}i(Im,"resolveRealToolPath");function lr(e,n){if(n===void 0)return;if(typeof n!="string"||n.trim().length===0)throw new Error("Tool path must be a string.");let t=Be.resolve(e,n);if(!Xr(e,t))throw new Error("Tool path escapes the bound workspace.");let r=Im(e,t);if(ad(t,e)||ad(r.candidate,r.root))throw new Error("Secret-bearing paths are unavailable to remote Agents.");return t}i(lr,"resolveToolPath");function dd(){return{beforeToolExecute:i(async()=>!0,"beforeToolExecute")}}i(dd,"remoteRunEvents");function km(e,n,t){if(!hd.includes(e))return;if(e==="mcp_search"){let p=n.server;if(typeof p!="string"||t.mcp[p]===void 0)throw new Error("MCP search requires an explicitly admitted server.");return}let r=n.id;if(typeof r!="string")throw new Error("MCP calls require a canonical capability id.");let o=/^mcp:([^:]+):(tool|resource|prompt):(.+)$/.exec(r);if(!o)throw new Error("MCP capability id is invalid.");let[,s,a,u]=o,l=t.mcp[s??""]??[];if(a==="tool"&&!l.includes(u??""))throw new Error("MCP tool is not admitted by the remote policy.");if(a!=="tool"&&!l.includes(u??""))throw new Error("MCP capability is not admitted by the remote policy.")}i(km,"authorizeMcp");function bm(e){return{async resolveReadablePath(n){return lr(e,n)??e},async stageOutput(n){let t=ur(),r=Be.basename(n).replace(/[^A-Za-z0-9._-]/g,"_")||"output",o=Be.join(e,".kodax-a2a-staging",`${t}-${r}`);return await pd(Be.dirname(o),{recursive:!0}),{stagingId:t,path:lr(e,o)??o}}}}i(bm,"workspaceBroker");function ud(e,n){return{kind:"tool",name:`runtime-remote-policy:${e.bindingId}`,async beforeTool(t,r){try{if(e.workspaceByteLimit!==void 0&&go(n)>e.workspaceByteLimit)throw new Error("Remote workspace byte quota is already exceeded.");if(!e.effectiveTools.includes(t.name))throw new Error("Tool is outside the bound surface.");if(Yi().find(a=>a.name===t.name)?.registrationId!==e.toolRegistrations.get(t.name))throw new Error("Tool registration changed after the Runtime binding was prepared.");if(fm.has(t.name)){let a=(t.name==="grep"||t.name==="glob","path");lr(n,t.input[a])}km(t.name,t.input,e.toolPolicy);let s=e.remoteContracts.get(t.name);if(s){let a=await s.authorizeCall(t.input,{workspaceAccess:e.toolPolicy.workspace,allowedNetworkOrigins:e.toolPolicy.network.mode==="allowlist"?e.toolPolicy.network.origins:[],workspace:bm(n),signal:r.abortSignal??new AbortController().signal});if(!a.allowed)throw new Error(a.reason);return{action:"rewrite",payload:{...t,input:a.input}}}return{action:"allow"}}catch(o){return{action:"block",reason:o instanceof Error?o.message:String(o)}}},async afterTool(){return e.workspaceByteLimit!==void 0&&go(n)>e.workspaceByteLimit?{action:"block",reason:"Remote workspace byte quota exceeded."}:{action:"allow"}}}}i(ud,"createToolGuardrail");async function cd(e,n,t){let r=await e.sessions.load(t),o=r.workspaceRoot??r.gitRoot;if(!o)throw new Error("Remote Runtime session has no bound workspace.");if(n.workspace.mode==="fixed"&&Be.resolve(o)!==n.workspace.root)throw new Error("Runtime session workspace does not match the fixed binding.");if(n.workspace.mode==="managed"&&!Xr(e.managedWorkspaceRoot,o))throw new Error("Runtime session workspace is outside the managed A2A root.");return Be.resolve(o)}i(cd,"requiredWorkspaceRoot");async function ld(e,n,t,r){let o=t.mode==="fixed"?t.root:e.managedWorkspaceRoot,s=await Ra({cwd:o,configHome:e.configHome,userOnly:!0}),a=s.loaded.find(p=>p.name===n.name&&p.source==="markdown:user"),u=s.scope.resolve(n.name);if(!a||!u||u.source!=="markdown:user"){await s.dispose();let p=s.failed.find(R=>Be.basename(R.path,".md")===n.name);throw new Error(p?.reason??`User Markdown Agent not found: ${n.name}`)}let l=wd([await gd(a.path)]);try{let p=await vd({configHome:e.configHome,workspace:t,selection:a.requestedSkills,...r===void 0?{}:r});return{scope:s.scope,loaded:a,configurationRevision:l,skills:p}}catch(p){throw await s.dispose(),p}}i(ld,"localAgentResources");function md(e,n){return{ref:e,agentId:`markdown:user:${e.name}`,displayName:e.name,description:n.loaded.description,configurationRevision:n.configurationRevision,effectiveSkills:n.skills.refs,skillSetRevision:n.skills.revision}}i(md,"resolvedLocal");function Id(e){let n=new Map,t=new Map,r=i(l=>{let p=n.get(l);if(!p)throw new Error("Runtime Agent owner session is not active.");return p},"requireOwner"),o=i((l,p)=>{let R=t.get(p);if(!R||R.ownerSessionId!==l)throw new Error("Runtime Agent binding not found.");return R},"requireBinding"),s=i(async l=>{t.delete(l.bindingId),n.get(l.ownerSessionId)?.delete(l.bindingId),l.scope?.dispose(),await l.skillScriptRunner?.dispose(),await Ct(l.learnedSkills,l.bindingId)},"release"),a=i(async(l,p)=>{let R=l.skillRegistry.list().filter(w=>w.source!=="learned"),v=new Ur(l.skillRegistry,R),y={context:{configHome:e.configHome,protectedFormalSkillNames:l.protectedFormalSkillNames},registry:v,skills:l.effectiveSkills.filter(w=>w.source!=="learned"),release:i(async()=>{},"release")};if(l.learnedSkills===void 0||l.workspace.mode!=="fixed")return y;let x=`root_${ur()}`,g=await Sd({configHome:e.configHome,projectRoot:l.workspace.root,bindingId:x,ownerSessionRef:p});if(g===void 0)return y;let m=new Ui(void 0,{projectPaths:[],userPaths:[],pluginPaths:[],builtinPath:Be.join(g.discovery.rootDir,".no-formal-skills"),learnedArea:g.discovery});try{await Xi(g.store,{sessionId:p,bindingId:x}),await m.discover()}catch(w){return await Ct(g,x),fe({source:"runtime:learned-skills",level:"warn",message:`Learned Area disabled for this root run: ${cr(w)}`}),y}let d=new Ro(v,m);try{for(let w of d.list())w.source!=="learned"||w.learned===void 0||await aa(g.store,{sessionId:p,bindingId:x,capabilityId:w.learned.capabilityId,revision:w.learned.revision,fingerprint:w.learned.fingerprint})}catch(w){return await Ct(g,x),fe({source:"runtime:learned-skills",level:"warn",message:`Learned usage receipts disabled for this root run: ${cr(w)}`}),y}let I=d.list().filter(w=>w.source==="learned"&&w.learned!==void 0).map(w=>({name:w.name,source:"learned",revision:w.learned.fingerprint}));return{context:{configHome:e.configHome,protectedFormalSkillNames:l.protectedFormalSkillNames,learnedSkillBindingId:x,admitLearnedSkillInvocation:i(async w=>({invocationId:(await da(g.store,{sessionId:p,ownerSessionRef:p,capabilityId:w.capabilityId,expectedRevision:w.revision,expectedFingerprint:w.fingerprint,bindingId:x})).invocationId}),"admitLearnedSkillInvocation"),completeLearnedSkillOutcomes:i(async w=>{await ua(g.store,{...w,sessionId:p,bindingId:x})},"completeLearnedSkillOutcomes")},registry:d,skills:[...l.effectiveSkills.filter(w=>w.source!=="learned"),...I],release:i(async()=>{try{await Xi(g.store,{sessionId:p,bindingId:x})}catch(w){fe({source:"runtime:learned-skills",level:"warn",message:`Learned Skill outcome reconciliation failed: ${cr(w)}`})}finally{await Ct(g,x)}},"release")}},"prepareLearnedSkillRun"),u=i(async(l,p)=>{try{let R=await p();return{...R,result:R.result.finally(l.release)}}catch(R){throw await l.release(),R}},"withLearnedSkillRelease");return{async resolveLocal(l){let p=fo(l.workspace),R=await ld(e,l.ref,p);try{return md(l.ref,R)}finally{R.scope.dispose()}},async openOwnerSession(){let l=ur();return n.set(l,new Set),{ownerSessionId:l}},async bindDefault(l){let p=r(l.ownerSessionId),R=fo(l.workspace),v=id(l.toolPolicy),y=td(l.workspaceByteLimit),x=ur(),g=await vd({configHome:e.configHome,workspace:R,bindingId:x,ownerSessionRef:l.ownerSessionId}),m=Object.keys(v.skillScripts).length>0,d=od({policy:v,hasSkills:g.refs.length>0,hasSkillScripts:m}),I=m?await e.createSkillScriptRunner?.({registry:g.registry,admissions:v.skillScripts,workspaceAccess:v.workspace,network:v.network,workspaceByteLimit:y}):void 0;if(m&&!I)throw await it(g.learnedSkills,x),new Error("Runtime isolated Skill script backend is unavailable.");let w=rt(v),C=rt(R),S=rt({kind:"runtime-default",profileId:l.profileId,toolPolicyRevision:w,workspaceBindingRevision:C,skillSetRevision:g.revision,provider:e.defaultProvider,model:e.defaultModel,tools:d.tools,workspaceByteLimit:y});if(l.expectedExecutionPolicyRevision&&l.expectedExecutionPolicyRevision!==S)throw await I?.dispose(),await it(g.learnedSkills,x),new Error("Runtime default execution policy revision changed.");let b={ownerSessionId:l.ownerSessionId,bindingId:x,kind:"runtime-default",executionPolicyRevision:S,toolPolicyRevision:w,workspaceBindingRevision:C,workspace:R,toolPolicy:v,effectiveTools:d.tools,effectiveSkills:g.refs,skillSetRevision:g.revision,skillRegistry:g.registry,protectedFormalSkillNames:g.protectedFormalSkillNames,skillScriptRunner:I,remoteContracts:d.contracts,toolRegistrations:d.registrations,workspaceByteLimit:y,...g.learnedSkills===void 0?{}:{learnedSkills:g.learnedSkills}};return t.set(x,b),p.add(x),{ownerSessionId:l.ownerSessionId,bindingId:x,executionPolicyRevision:S,toolPolicyRevision:w,workspaceBindingRevision:C,skillSetRevision:g.revision,effectiveSkills:g.refs,effectiveTools:d.tools}},async startDefault(l){let p=o(l.ownerSessionId,l.bindingId);if(p.kind!=="runtime-default")throw new Error("Runtime Agent binding kind mismatch.");if(p.executionPolicyRevision!==l.expectedExecutionPolicyRevision)throw new Error("Runtime default execution policy revision changed.");let R=await cd(e,p,l.sessionId),v=await a(p,l.sessionId);return u(v,()=>e.runs.start({sessionId:l.sessionId,input:l.input,permissionBroker:l.permissionBroker,agentContext:l.agentContext,options:{context:{executionCwd:R,gitRoot:R,managedTaskWorkspaceDir:R,...v.context,toolVisibilityPolicy:i(y=>p.effectiveTools.includes(y.name),"toolVisibilityPolicy"),skillRegistry:v.registry,skillScriptRunner:p.skillScriptRunner,assertReadablePath:i(y=>{lr(R,y)},"assertReadablePath"),skillsPrompt:sd(v.skills,v.registry)},skillDynamicContext:{disable:!0},guardrails:[ud(p,R)],events:dd()}}))},async bindLocal(l){let p=r(l.ownerSessionId),R=fo(l.workspace),v=id(l.toolPolicy),y=td(l.workspaceByteLimit),x=ur(),g=await ld(e,l.ref,R,{bindingId:x,ownerSessionRef:l.ownerSessionId}),m=md(l.ref,g);if(l.expectedConfigurationRevision&&l.expectedConfigurationRevision!==m.configurationRevision)throw g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error("User Markdown Agent configuration revision changed.");let d=od({declared:g.loaded.effectiveTools,policy:v,hasSkills:g.skills.refs.length>0,hasSkillScripts:Object.keys(v.skillScripts).length>0}),I=Object.keys(v.skillScripts).length>0,w=I?await e.createSkillScriptRunner?.({registry:g.skills.registry,admissions:v.skillScripts,workspaceAccess:v.workspace,network:v.network,workspaceByteLimit:y}):void 0;if(I&&!w)throw g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error("Runtime isolated Skill script backend is unavailable.");let C=rt(v),S=rt(R),b=rt({kind:"local-agent",profileId:l.profileId,configurationRevision:m.configurationRevision,toolPolicyRevision:C,workspaceBindingRevision:S,skillSetRevision:g.skills.revision,tools:d.tools,workspaceByteLimit:y});if(l.expectedExecutionPolicyRevision&&l.expectedExecutionPolicyRevision!==b)throw await w?.dispose(),g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error("Local Agent execution policy revision changed.");let P=g.scope.resolve(l.ref.name)?.agent;if(!P)throw await w?.dispose(),g.scope.dispose(),await it(g.skills.learnedSkills,x),new Error(`User Markdown Agent not found: ${l.ref.name}`);let T={ownerSessionId:l.ownerSessionId,bindingId:x,kind:"local-agent",executionPolicyRevision:b,toolPolicyRevision:C,workspaceBindingRevision:S,workspace:R,toolPolicy:v,effectiveTools:d.tools,effectiveSkills:g.skills.refs,skillSetRevision:g.skills.revision,skillRegistry:g.skills.registry,protectedFormalSkillNames:g.skills.protectedFormalSkillNames,skillScriptRunner:w,remoteContracts:d.contracts,toolRegistrations:d.registrations,...g.skills.learnedSkills===void 0?{}:{learnedSkills:g.skills.learnedSkills},workspaceByteLimit:y,scope:g.scope,loadedAgent:g.loaded,agent:P,configurationRevision:g.configurationRevision};return t.set(x,T),p.add(x),{...m,ownerSessionId:l.ownerSessionId,bindingId:x,executionPolicyRevision:b,toolPolicyRevision:C,workspaceBindingRevision:S,effectiveTools:d.tools}},async startLocal(l){let p=o(l.ownerSessionId,l.bindingId);if(p.kind!=="local-agent"||!p.agent||!p.scope)throw new Error("Runtime Agent binding kind mismatch.");let R=p.agent,v=p.scope;if(p.configurationRevision!==l.expectedConfigurationRevision)throw new Error("User Markdown Agent configuration revision changed.");if(p.executionPolicyRevision!==l.expectedExecutionPolicyRevision)throw new Error("Local Agent execution policy revision changed.");let y=await cd(e,p,l.sessionId),x=await a(p,l.sessionId),g=typeof R.instructions=="string"?R.instructions:R.instructions({});return u(x,()=>e.runs.start({sessionId:l.sessionId,input:l.input,permissionBroker:l.permissionBroker,agentContext:l.agentContext,options:{...R.provider?{provider:R.provider}:{},...R.model?{modelOverride:R.model}:{},...R.effort?{effort:R.effort}:{},context:{executionCwd:y,gitRoot:y,managedTaskWorkspaceDir:y,...x.context,systemPromptOverride:g,agentScope:v,toolVisibilityPolicy:i(m=>p.effectiveTools.includes(m.name),"toolVisibilityPolicy"),skillRegistry:x.registry,skillScriptRunner:p.skillScriptRunner,assertReadablePath:i(m=>{lr(y,m)},"assertReadablePath"),skillsPrompt:sd(x.skills,x.registry)},skillDynamicContext:{disable:!0},guardrails:[ud(p,y)],events:dd()}}))},async prepareWorkspace(l){let p=o(l.ownerSessionId,l.bindingId);if(p.workspace.mode==="fixed")return p.workspace.root;if(!/^[a-f0-9]{32,64}$/.test(l.contextKey))throw new Error("Managed Runtime workspace context key is invalid.");let R=Be.join(e.managedWorkspaceRoot,"contexts",l.contextKey);return await pd(R,{recursive:!0}),R},async releaseBinding(l){r(l.ownerSessionId),await s(o(l.ownerSessionId,l.bindingId))},async closeOwnerSession(l){let p=r(l);for(let R of[...p])await s(o(l,R));n.delete(l)}}}i(Id,"createRuntimeAgentBindingService");import{randomUUID as Em}from"node:crypto";import*as Wr from"node:net";var Ed="127.0.0.1",Pm=/^[a-f0-9]{32}$/,xm=500,Cm=128,Am=16;async function Pd(e){let n=Em().replace(/-/g,""),t=new Set,r=Wr.createServer(a=>{t.add(a),a.on("close",()=>t.delete(a)),a.on("error",()=>a.destroy()),a.end(`${n}
10
+ `)});r.on("error",e.onError),await Mm(r);let o=r.address();if(o===null||typeof o=="string")throw await bd(r),new Error("Runtime Actor owner liveness did not bind a TCP endpoint.");r.unref();let s;return{id:n,port:o.port,close(){if(s)return s;let a=(async()=>{for(let u of t)u.destroy();t.clear(),await bd(r)})();return s=a,a.catch(()=>{s===a&&(s=void 0)}),a}}}i(Pd,"createRuntimeActorOwnerLiveness");async function ho(e){return await mr(e)!=="dead"}i(ho,"isRuntimeActorOwnerAlive");async function mr(e){if(Tm(e.pid))return"dead";if(e.livenessId===void 0||e.livenessPort===void 0||!Pm.test(e.livenessId)||!Number.isSafeInteger(e.livenessPort)||e.livenessPort<=0||e.livenessPort>65535)return"unknown";try{return await Dm(e.livenessPort,e.livenessId)?"alive":"dead"}catch(n){return zr(n)==="ECONNREFUSED"?"dead":"unknown"}}i(mr,"inspectRuntimeActorOwner");function kd(e){return[e.ownerId,e.runtimeId,e.pid,e.startedAt,e.livenessId??"",e.livenessPort??""].join("\0")}i(kd,"actorOwnerProbeKey");async function xd(e){let n=new Map;for(let u of e)n.set(kd(u),u);let t=[...n.entries()],r=new Map,o=0,s=i(async()=>{for(;o<t.length;){let u=t[o];if(o+=1,u===void 0)return;r.set(u[0],await mr(u[1]))}},"worker"),a=Math.min(Am,t.length);return await Promise.all(Array.from({length:a},()=>s())),e.map(u=>r.get(kd(u))??"unknown")}i(xd,"inspectRuntimeActorOwners");function Tm(e){try{return process.kill(e,0),!1}catch(n){return zr(n)==="ESRCH"}}i(Tm,"isPidDefinitelyDead");function Dm(e,n){return new Promise((t,r)=>{let o=Wr.createConnection({host:Ed,port:e}),s="",a=!1,u=setTimeout(()=>p(void 0),xm);u.unref?.();let l=i(()=>{clearTimeout(u),o.off("data",R),o.off("end",v),o.off("error",y),o.destroy()},"cleanup"),p=i((x,g)=>{a||(a=!0,l(),g?r(g):x===void 0?r(new Error("Timed out probing Runtime Actor owner liveness.")):t(x))},"settle"),R=i(x=>{s+=x.toString("utf8"),Buffer.byteLength(s)>Cm&&p(!1)},"onData"),v=i(()=>p(s.trim()===n),"onEnd"),y=i(x=>p(void 0,x),"onError");o.on("data",R),o.once("end",v),o.once("error",y)})}i(Dm,"probe");function Mm(e){return new Promise((n,t)=>{let r=i(()=>{e.off("listening",o),e.off("error",s)},"cleanup"),o=i(()=>{r(),n()},"onListening"),s=i(a=>{r(),t(a)},"onError");e.once("listening",o),e.once("error",s),e.listen({host:Ed,port:0,exclusive:!0})})}i(Mm,"listen");function bd(e){return new Promise((n,t)=>{try{e.close(r=>{if(r&&zr(r)!=="ERR_SERVER_NOT_RUNNING"){t(r);return}n()})}catch(r){if(zr(r)==="ERR_SERVER_NOT_RUNNING"){n();return}t(r)}})}i(bd,"closeServer");function zr(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}i(zr,"errorCode");import{createHash as _m}from"node:crypto";function Td(e){let n=e.userSkillsRoot===void 0?[]:[oa({learnedAreaRoot:e.rootDir,learnedAreaKind:"global",userSkillsRoot:e.userSkillsRoot})],t=Bi({rootDir:e.rootDir,clientIdentity:Cd(e.defaultClientIdentity),proposalStores:e.proposalStores,actionDrivers:n}),r,o=i(()=>(r??=t.initialize(),r),"ensureReady"),s=i(u=>{let l=Cd(u),p=Bi({rootDir:e.rootDir,clientIdentity:l,proposalStores:e.proposalStores,actionDrivers:n});return Ad(p,o)},"forClient"),a=Ad(t,o);return Object.assign(a,{forClient:s})}i(Td,"createRuntimeLearningOwner");function Hn(e,n){let t=e;return typeof t.forClient=="function"?t.forClient(n):e}i(Hn,"bindRuntimeLearningClient");function Cd(e){return`client_${_m("sha256").update(e).digest("hex").slice(0,32)}`}i(Cd,"learningClientFileKey");function Ad(e,n){let t,r=i(()=>(t??=n?.()??e.initialize(),t),"ensureReady");return{list:i(async o=>(await r(),e.list(o)),"list"),get:i(async o=>(await r(),e.get(o)),"get"),getSnapshot:i(async()=>(await r(),e.getSnapshot()),"getSnapshot"),events:i(async o=>(await r(),e.events(o)),"events"),subscribe:i(o=>Om(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 Tt(e,o,s=>e.reject(o,s))},"reject"),disable:i(async o=>{await r(),await Tt(e,o,s=>e.disable(o,s))},"disable"),rollback:i(async o=>{await r(),await Tt(e,o,s=>e.rollback(o,s))},"rollback"),promote:i(async(o,s)=>{await r(),await Tt(e,o,a=>e.promote(o,s,a))},"promote"),review:i(async o=>{await r(),await Tt(e,o,s=>e.review(o,s))},"review"),trust:i(async o=>{await r(),await Tt(e,o,s=>e.trust(o,s))},"trust")}}i(Ad,"createInitializedFacade");async function Tt(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(Tt,"withExplicitUserAuthority");function Om(e,n,t){return{[Symbol.asyncIterator](){let r=!1,o,s=e.then(()=>{if(!r)return o=n.subscribe(t)[Symbol.asyncIterator](),o});return{async next(){let a=await s;return r||!a?{done:!0,value:void 0}:a.next()},async return(){return r=!0,o?.return?.()??{done:!0,value:void 0}}}}}}i(Om,"subscribeWhenReady");import{randomUUID as Yr}from"node:crypto";var Nm=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"]),Lm=new Set(["run.queued","run.started","run.updated","run.completed","run.failed","run.cancelled","run.interrupted"]);function wo(e){if(!Te(e))return fr("Runtime event must be an object.");if(typeof e.id!="string"||!Number.isSafeInteger(e.seq)||typeof e.seq!="number"||typeof e.time!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||e.turnId!==void 0&&typeof e.turnId!="string"||typeof e.type!="string"||!Nm.has(e.type))return fr("Runtime event envelope is malformed or has an unknown type.");if((e.type==="assistant.delta"||e.type==="thinking.delta")&&(!Te(e.payload)||typeof e.payload.text!="string"))return fr(`${e.type} requires a string text payload.`);if(Lm.has(e.type)&&!qm(e.payload))return fr(`${e.type} requires a RuntimeRunStatus payload.`);let n=Hm(e.type,e.payload);return n!==void 0?fr(`${e.type} ${n}`):{ok:!0,event:{id:e.id,seq:e.seq,time:e.time,sessionId:e.sessionId,runId:e.runId,...typeof e.turnId=="string"?{turnId:e.turnId}:{},type:e.type,payload:e.payload}}}i(wo,"parseRuntimeEvent");function Hm(e,n){if(e==="session.created")return An(n,["id","title"])?void 0:"requires a RuntimeSession payload.";if(e==="session.loaded")return An(n,["id","title"])||An(n,["provider","sessionId"])?void 0:"requires a RuntimeSession or provider session payload.";if(e==="session.settings.updated")return Te(n)&&typeof n.sessionId=="string"&&Number.isSafeInteger(n.revision)&&Te(n.settings)&&Te(n.patch)?void 0:"requires a session settings update payload.";if(e==="thinking.finished")return Te(n)&&typeof n.thinking=="string"?void 0:"requires a string thinking payload.";if(e==="tool.started")return Te(n)&&An(n.tool,["id","name"])?void 0:"requires a tool descriptor payload.";if(e==="tool.progress")return Te(n)&&(An(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=Te(n)&&Te(n.update)?n.update:void 0,r=t&&Te(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 Te(n)&&An(n.result,["id","name","content"])?void 0:"requires a tool result payload.";if(e==="run.progress")return Fm(n);if(e==="run.input.queued")return Te(n)&&$m(n.input,"queued")?void 0:"requires a queued interrupt input payload.";if(e==="run.input.delivered")return Te(n)&&Array.isArray(n.inputs)&&n.inputs.length>0&&n.inputs.every(jm)?void 0:"requires an ordered interrupt input batch.";if(e==="context.compaction.finished")return Te(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 Te(n)&&Array.isArray(n.items)?void 0:"requires an items array payload.";if(e==="user_input.requested"){let t=Te(n)&&An(n,["id","sessionId","runId","kind","createdAt","expiresAt"])&&Number.isSafeInteger(n.revision),r=Te(n)&&An(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 Te(n)&&typeof n.requestId=="string"?void 0:"requires a requestId payload.";if(e==="permission.requested")return An(n,["id","sessionId","runId","toolName","createdAt"])?void 0:"requires a RuntimePermissionRequest payload.";if(e==="permission.grant.changed")return Te(n)&&(n.action==="created"||n.action==="revoked"||n.action==="expired")&&Te(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 An(n,["sessionId","turnId"])?void 0:"requires a turn payload.";if(e==="workflow.started"||e==="workflow.updated"||e==="workflow.finished")return Te(n)?void 0:"requires a workflow event payload.";if(e==="context.budget.snapshot"||e==="tool.exposure.planned"||e==="provider.cache.diagnostics")return Te(n)?void 0:"requires an object payload.";if(e==="runtime.warning")return Te(n)&&typeof n.message=="string"?void 0:"requires a warning message payload."}i(Hm,"validateKnownRuntimeEventPayload");function Fm(e){return!Te(e)||typeof e.kind!="string"?"requires a discriminated progress payload.":e.kind==="managed_task_status"?Te(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"?Te(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(Fm,"validateRunProgressPayload");function qm(e){return Te(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"&&typeof e.phase=="string"}i(qm,"isRuntimeRunStatusPayload");function $m(e,n){return Te(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($m,"isRuntimeInterruptInputStatus");function jm(e){return Te(e)&&typeof e.inputId=="string"&&typeof e.afterRunId=="string"&&typeof e.queuedAt=="string"&&typeof e.deliveredAt=="string"&&Dd(e.input)}i(jm,"isDeliveredInterruptInput");function Dd(e){return Array.isArray(e)?e.length>0&&e.every(Dd):!Te(e)||typeof e.type!="string"?!1:e.type==="text"?typeof e.text=="string":e.type==="artifact_ref"?typeof e.artifactId=="string":e.type==="image"||e.type==="file"?typeof e.path=="string":e.type==="video"&&typeof e.path=="string"&&typeof e.mediaType=="string"}i(Dd,"isRuntimeInput");function An(e,n){return Te(e)&&n.every(t=>typeof e[t]=="string")}i(An,"hasStrings");function fr(e){return{ok:!1,error:e}}i(fr,"invalid");function Te(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Te,"isRecord");var Vn="kodax-runtime-daemon",vo=1,Dt=["initialize","runtime.initialize","ping","runtime.identity","runtime.status","runtime.shutdown","runtime.capabilities","daemon.status","daemon.stop","daemon.logs","daemon.preflight","daemon.management.get","daemon.rollbackToInline","operation.get","session.create","session.load","session.list","session.status","session.transcript","session.transcript.page","session.transcript.entryChunk","session.transcript.search","session.conversation","session.conversation.page","session.conversation.entryChunk","session.observe","session.diagnostics","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.get","session.settings.getVersioned","session.autoMode.getStats","session.settings.update","session.settings.updateVersioned","run.start","run.input.submit","run.get","run.list","run.await","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","request.cancel","request.ack","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.request","permission.respond","permission.grants.list","permission.grants.revoke","user_input.listPending","user_input.respond","user_input.dismiss","credential.register","credential.get","credential.revoke","credential.supply","host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","workflow.pause","workflow.resume","workflow.stop","learning.list","learning.get","learning.snapshot","learning.events","learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust","config.read","config.patch","config.reload","model.list","provider.list","provider.custom.list","provider.custom.upsert","provider.custom.remove","mcp.server.list","mcp.server.get","mcp.server.validate","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","mcp.tool.list","extension.list","extension.reload","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.create","artifact.get","artifact.delete","agentRegistrations.list","agentRegistrations.upsert","agentRegistrations.setEnabled","agentRegistrations.remove","agents.listDispatchable","agents.describe","agents.preflight","agents.tree","agents.detail","agents.spawn","agents.send","agents.followup","agents.interrupt","agents.output","agents.events","agents.wait","context.budget.get","tool.exposure.preview","provider.cache.diagnostics.get"],Bm=["runtime.shutdown","daemon.stop","daemon.rollbackToInline","session.create","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.update","session.settings.updateVersioned","run.start","run.input.submit","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","permission.request","permission.respond","permission.grants.revoke","user_input.respond","user_input.dismiss","workflow.pause","workflow.resume","workflow.stop","learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust","config.patch","config.reload","provider.custom.upsert","provider.custom.remove","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","extension.reload","artifact.create","artifact.delete","agentRegistrations.upsert","agentRegistrations.setEnabled","agentRegistrations.remove","agents.spawn","agents.send","agents.followup","agents.interrupt"],_d=["agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile"],Km=new Set([...Dt,..._d]),Xm=new Set(Bm),Um=new Set(["credential.register","credential.revoke","credential.supply","host_tool.register","host_tool.revoke","host_tool.complete"]),zm=new Set(["event","observation.invalidated","credential.request","host_tool.invoke","runtime.warning"]),Wm=new Set(["invalid_frame","invalid_request","invalid_params","not_initialized","method_not_found","unauthorized","permission_denied","conflict","not_found","session_not_admitted","cancelled","overloaded","client_upgrade_required","operation_required","operation_epoch_mismatch","operation_id_reuse","operation_interrupted","operation_unknown","control_history_untrusted","resync_required","read_timeout","read_cancelled","data_changed","observation_invalidated","runtime_changed","data_corrupt","version_incompatible","credential_unavailable","host_tool_unavailable","host_tool_unknown","internal_error"]);function Mt(e,n,t,r){return{protocol:Vn,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{},...r!==void 0?{operation:r}:{}}}i(Mt,"createRuntimeDaemonRequest");function ot(e){return Xm.has(e)}i(ot,"isRuntimeDaemonMutationMethod");function Vr(e){return ot(e)||Um.has(e)}i(Vr,"isRuntimeDaemonDrainingSensitiveMethod");function Od(e){return _d.includes(e)}i(Od,"isRuntimeDaemonRetiredMethod");function Gr(e,n){return{protocol:Vn,version:1,kind:"response",id:e,result:n===void 0?null:n}}i(Gr,"createRuntimeDaemonSuccessResponse");function Gn(e,n){return{protocol:Vn,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}i(Gn,"createRuntimeDaemonErrorResponse");function _t(e,n){return{protocol:Vn,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}i(_t,"createRuntimeDaemonNotification");function So(e){if(!Jr(e))return!1;let n=e;return n.kind==="request"&&typeof n.id=="string"&&n.id.length>0&&typeof n.method=="string"&&Km.has(n.method)&&(n.operation===void 0||Jm(n.operation))}i(So,"isRuntimeDaemonRequest");function st(e){if(!Jr(e))return!1;let n=e;return n.kind==="response"&&typeof n.id=="string"&&n.id.length>0&&Object.prototype.hasOwnProperty.call(n,"result")}i(st,"isRuntimeDaemonSuccessResponse");function Ot(e){if(!Jr(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&Gm(n.error)}i(Ot,"isRuntimeDaemonErrorResponse");function pr(e){if(!Jr(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&zm.has(n.method)}i(pr,"isRuntimeDaemonNotification");function Vm(e){return So(e)||st(e)||Ot(e)||pr(e)}i(Vm,"isRuntimeDaemonFrame");function Nd(e){let n;try{n=JSON.parse(e)}catch{return Md("Frame is not valid JSON.")}return Vm(n)?n:Md("Frame does not match the runtime daemon protocol.")}i(Nd,"parseRuntimeDaemonFrame");function Md(e){return Gn({code:"invalid_frame",message:e})}i(Md,"invalidFrame");function Jr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===Vn&&n.version===1}i(Jr,"isFrameBase");function Gm(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&Wm.has(n.code)&&typeof n.message=="string"}i(Gm,"isRuntimeDaemonError");function Jm(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(Jm,"isRuntimeDaemonOperationEnvelope");var Xd=256,Ld=1e3,dt=class extends Error{constructor(t,r){super(r);this.path=t;this.name="RuntimeTransportBoundaryError"}path;static{i(this,"RuntimeTransportBoundaryError")}code="invalid_transport_value"},Io=class extends Error{static{i(this,"RuntimeDaemonUpgradeRequiredError")}code="daemon_upgrade_required";capability="actorControlPlane";restartRequired=!0;constructor(){super("Runtime daemon does not advertise actorControlPlane v1. Upgrade KodaX and restart the daemon before using Runtime Actor control."),this.name="RuntimeDaemonUpgradeRequiredError"}},Qr=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"}},Lt=class extends Error{static{i(this,"RuntimeRunLifecycleUpgradeRequiredError")}code="daemon_upgrade_required";capability="runLifecycleControl";requiredVersion=1;restartRequired=!0;constructor(){super("Runtime daemon does not advertise structured Stop receipts and protocol-level request cancellation. Upgrade KodaX and restart the daemon."),this.name="RuntimeRunLifecycleUpgradeRequiredError"}};function Hd(e){let n=e.activeAgentTurns??e.activeAgentTasks??[];return{...e,activeAgentTurns:n,activeAgentTasks:n}}i(Hd,"normalizeRuntimeDaemonPreflight");function Zr(e){let n=i((d,I,w,C)=>e.transport.request(d,I,ot(d)?ef(e.journalEpoch,w):void 0,C),"request"),t=i((d,I,w,C)=>{try{if(Ud(w),(w?.timeoutMs!==void 0||w?.signal!==void 0)&&!Kd(e.capabilities))throw new Lt}catch(q){return Promise.reject(q)}let S=new AbortController,b=!1,P=!1,T=i(q=>{if(!P){P=!0;try{C?.(q)}catch(re){fe({source:"runtime.daemon.client",level:"warn",message:"Runtime daemon late-result cleanup failed.",detail:re})}}},"deliverLateResult"),D=n(d,{...I,...w?.timeoutMs!==void 0?{timeoutMs:w.timeoutMs}:{}},void 0,{signal:S.signal,...C!==void 0?{onLateResult:T}:{}});return C!==void 0&&D.then(q=>{b&&T(q)},()=>{}),rf(D,w,q=>{b=!0,S.abort(q)})},"readRequest"),r=i(()=>{let d=e.capabilities?.actorControlPlane;if(typeof d!="object"||d===null||!("version"in d)||d.version!==1||!("methodNamespace"in d)||d.methodNamespace!=="agents")return new Io},"actorControlPlaneError"),o=i(()=>{let d=e.capabilities?.runtimeAutoModeGuardrail;if(typeof d!="object"||d===null||!("version"in d)||typeof d.version!="number"||d.version<3||!("concretePermissionMatchers"in d)||d.concretePermissionMatchers!==!0||!("permissionGrantSuggestions"in d)||d.permissionGrantSuggestions!==!0)return new Qr},"concretePermissionScopeError"),s=new Map,a=new Map,u=new Map,l=new Set,p={state:"connected",connectionId:`connection_${Yr().replace(/-/g,"")}`,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{},reconnectable:!1},R=e.transport.subscribeLifecycle?.(d=>{p={...d,runtimeEpoch:e.identity.runtimeId,...e.journalEpoch!==void 0?{journalEpoch:e.journalEpoch}:{}};for(let I of l)try{I(p)}catch(w){fe({source:"runtime.daemon.client",level:"warn",message:"Runtime connection lifecycle listener failed.",detail:{errorType:w instanceof Error?w.name:typeof w}})}}),v=e.transport.subscribe(d=>{d.method==="credential.request"?Qm(d.params,s,n).catch(()=>Fd("credential request")):d.method==="host_tool.invoke"&&Zm(d.params,a,u,n).catch(()=>Fd("host tool invocation"))}),y=!1,x=!1,g,m=i(()=>{if(x)return Promise.resolve();if(g)return g;let d=(async()=>{y||(R?.close(),v.close(),l.clear(),s.clear(),a.clear(),u.clear(),y=!0),await e.transport.close?.(),x=!0})();return g=d,d.finally(()=>{g===d&&(g=void 0)}).catch(()=>{}),d},"closeClient");return{identity:e.identity,capabilities:e.capabilities,...e.grantedScopes!==void 0?{grantedScopes:e.grantedScopes}:{},sessions:{create(d={}){let{operation:I,...w}=d;return n("session.create",w,I)},load(d,I){return t("session.load",{sessionId:d},I)},list(d){return n("session.list",d)},status(d){return n("session.status",{sessionId:d})},transcript(d,I){return t("session.transcript",{sessionId:d},I)},transcriptPage(d,I){return t("session.transcript.page",d,I)},transcriptEntryChunk(d,I){return t("session.transcript.entryChunk",d,I)},transcriptSearch(d,I){return t("session.transcript.search",d,I)},conversation(d,I){return t("session.conversation",{sessionId:d},I)},conversationPage(d,I){return t("session.conversation.page",d,I)},conversationEntryChunk(d,I){return t("session.conversation.entryChunk",d,I)},observe(d,I,w){return tf(e.transport,t,d,I,w)},diagnostics(d){return t("session.diagnostics",{sessionId:d.sessionId,...d.runId!==void 0?{runId:d.runId}:{}},d).then(I=>({...I,sdkVersion:qr,runtimeVersion:e.identity.version,daemonVersion:e.identity.mode==="daemon"?e.identity.version:null,runtimeMode:e.identity.mode}))},fork(d){return n("session.fork",d)},getSettings(d){return n("session.settings.get",{sessionId:d})},getSettingsVersioned(d){return n("session.settings.getVersioned",{sessionId:d})},getAutoModeStats(d){return n("session.autoMode.getStats",{sessionId:d})},async updateSettings(d,I){let w=await this.getSettingsVersioned(d);return(await this.updateSettingsVersioned(d,I,{expectedRevision:w.revision})).value},updateSettingsVersioned(d,I,w){return n("session.settings.updateVersioned",{sessionId:d,patch:I,expectedRevision:w.expectedRevision},w)},appendNotice(d){return n("session.notice.append",d)},rewind(d){return n("session.rewind",d)},setActiveEntry(d){return n("session.active_entry.set",d)},compact(d){return n("session.compact",d)},async archive(d){await n("session.archive",{sessionId:d})},async unarchive(d){await n("session.unarchive",{sessionId:d})},async delete(d){await n("session.delete",{sessionId:d})}},runs:{async start(d){let{operation:I,...w}=d;Nt(w,"run.start");let C=ln(await n("run.start",w,I)),S=cn(C,"runId"),b=cn(C,"sessionId"),P=mf(C,"turnId");return{runId:S,sessionId:b,...P!==void 0?{turnId:P}:{},result:jd(n,S)}},async submitInput(d){let{operation:I,...w}=d;return Nt(w,"run.input.submit"),n("run.input.submit",w,I)},await(d){return jd(n,d)},get(d){return n("run.get",{runId:d})},list(d){return n("run.list",d)},abort(d){return Kd(e.capabilities)?n("run.abort",{runId:d}).then(I=>lf(I,d)):Promise.reject(new Lt)},async setModel(d,I){await n("run.model.set",{runId:d,model:I})},async setProvider(d,I){await n("run.provider.set",{runId:d,provider:I})},async setReasoning(d,I){await n("run.reasoning.set",{runId:d,reasoning:I})}},events:{subscribe(d,I){return nf(e.transport,n,d,I)},replay(d){return n("event.replay",d).then(I=>{if(!Array.isArray(I))throw new Error("Expected daemon event replay array.");return I.flatMap(w=>{let C=ko(w);return C===void 0?[]:[C]})})}},permissions:{request(d){if(d.toolInput!==void 0){let I=o();if(I)return Promise.reject(I)}return n("permission.request",d)},listPending(d){return n("permission.list",d)},respond(d,I,w){return n("permission.respond",{requestId:d,decision:I,...w?.runId!==void 0?{runId:w.runId}:{}})},listGrants(){return n("permission.grants.list")},revokeGrant(d,I){return n("permission.grants.revoke",{grantId:d,expectedRevision:I})}},userInputs:{listPending(d){return n("user_input.listPending",d)},respond(d,I,w){return n("user_input.respond",{requestId:d,answer:I,...w?.expectedRevision!==void 0?{expectedRevision:w.expectedRevision}:{},...w?.runId!==void 0?{runId:w.runId}:{}})},dismiss(d,I){return n("user_input.dismiss",{requestId:d,...I?.expectedRevision!==void 0?{expectedRevision:I.expectedRevision}:{},...I?.runId!==void 0?{runId:I.runId}:{}})}},credentials:{async register(d,I){let w=`credlease_${Yr().replace(/-/g,"")}`;s.set(w,I);try{return await n("credential.register",{leaseId:w,providers:d.providers,...d.expiresAt!==void 0?{expiresAt:d.expiresAt}:{}})}catch(C){throw s.delete(w),C}},async resume(d,I){s.set(d,I);try{let w=await n("credential.get",{leaseId:d});if(w==null)throw Object.assign(new Error(`Credential lease is unavailable after Runtime reconnect: ${d}`),{code:"credential_unavailable"});return ln(w)}catch(w){throw s.delete(d),w}},async revoke(d){let I=await n("credential.revoke",{leaseId:d});return I&&s.delete(d),I}},hostTools:{async register(d,I){qd(d,I);let w=`hostlease_${Yr().replace(/-/g,"")}`;a.set(w,I);try{return await n("host_tool.register",{leaseId:w,tools:d})}catch(C){throw a.delete(w),C}},async resume(d,I){a.set(d,I);try{let w=await n("host_tool.get",{leaseId:d});if(w==null)throw Object.assign(new Error(`Host tool lease is unavailable after Runtime reconnect: ${d}`),{code:"host_tool_unavailable"});let C=ln(w);return qd(C.tools,I),C}catch(w){throw a.delete(d),w}},async getInvocation(d){return at(await n("host_tool.invocation.get",{invocationId:d}))},async revoke(d){let I=await n("host_tool.revoke",{leaseId:d});return I&&a.delete(d),I}},operations:{get(d){return n("operation.get",d)}},workflows:{list(d){return n("workflow.list",d)},get(d){return n("workflow.get",{runId:d}).then(at)},subscribe(d,I){return df(e.transport,n,d,I)},pause(d){return n("workflow.pause",{runId:d})},resume(d){return n("workflow.resume",{runId:d})},stop(d){return n("workflow.stop",{runId:d})}},learning:{list(d){return n("learning.list",d??{})},get(d){return n("learning.get",{nameOrSlug:d})},getSnapshot(){return n("learning.snapshot")},events(d){return n("learning.events",{...d!==void 0?{afterRevision:d}:{}})},subscribe(d){return Ym(n,d?.afterRevision??0)},async acknowledge(d){await n("learning.acknowledge",{nameOrSlug:d})},async snooze(d,I){await n("learning.snooze",{nameOrSlug:d,until:I})},async reject(d){await n("learning.reject",{nameOrSlug:d})},async disable(d){await n("learning.disable",{nameOrSlug:d})},async rollback(d){await n("learning.rollback",{nameOrSlug:d})},async promote(d,I){await n("learning.promote",{nameOrSlug:d,scope:I})},async review(d){await n("learning.review",{nameOrSlug:d})},async trust(d){await n("learning.trust",{nameOrSlug:d})}},config:{read(){return n("config.read")},patch(d){return n("config.patch",{patch:d})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(d){return n("model.list",d)},commands(d){return n("command.list",d!==void 0?{projectRoot:d}:void 0)},resolveCommand(d){return n("command.resolve",d)},skills(d){return n("skill.list",d)},describeSkill(d){return n("skill.describe",d)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(d){return n("provider.custom.upsert",{config:d})},deleteCustomProvider(d){return n("provider.custom.remove",{name:d})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(d){return n("mcp.server.get",{name:d}).then(at)},validateServer(d,I){return n("mcp.server.validate",{name:d,config:I})},upsertServer(d,I){return n("mcp.server.upsert",{name:d,config:I})},deleteServer(d){return n("mcp.server.delete",{name:d})},reloadServers(){return n("mcp.server.reload")},listTools(d){return n("mcp.tool.list",d)}},artifacts:{create(d){return n("artifact.create",d)},get(d){return n("artifact.get",{artifactId:d}).then(at)},delete(d){return n("artifact.delete",{artifactId:d})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(d,I){return Nt(d,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:d,...I?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:I.expectedConfigurationRevision}:{},...I?.expectedManagementOwner!==void 0?{expectedManagementOwner:I.expectedManagementOwner}:{}})},setEnabled(d,I,w){return n("agentRegistrations.setEnabled",{agentId:d,enabled:I,...w?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:w.expectedConfigurationRevision}:{},...w?.expectedManagementOwner!==void 0?{expectedManagementOwner:w.expectedManagementOwner}:{},...w?.claimOwner!==void 0?{claimOwner:w.claimOwner}:{}}).then(at)},remove(d,I){return n("agentRegistrations.remove",{agentId:d,...I?.expectedConfigurationRevision!==void 0?{expectedConfigurationRevision:I.expectedConfigurationRevision}:{},...I?.expectedManagementOwner!==void 0?{expectedManagementOwner:I.expectedManagementOwner}:{}})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(d){return n("agents.listDispatchable",d)},describe(d,I){return n("agents.describe",{agentId:d,query:I}).then(at)},preflight(d){return n("agents.preflight",d)},tree(d){let I=r();return I?Promise.reject(I):n("agents.tree",{sessionId:d})},detail(d,I){let w=r();return w?Promise.reject(w):n("agents.detail",{sessionId:d,actorPath:I})},spawn(d,I){let w=r();return w?Promise.reject(w):(Nt(I,"agents.spawn"),n("agents.spawn",{sessionId:d,input:I}))},async send(d,I,w,C){let S=r();if(S)throw S;await n("agents.send",{sessionId:d,actorPath:I,content:w,...C!==void 0?{classification:C}:{}})},followup(d,I,w,C){let S=r();return S?Promise.reject(S):n("agents.followup",{sessionId:d,actorPath:I,objective:w,...C?.expectedRevision!==void 0?{expectedRevision:C.expectedRevision}:{}})},async interrupt(d,I,w){let C=r();if(C)throw C;await n("agents.interrupt",{sessionId:d,actorPath:I,...w!==void 0?{reason:w}:{}})},output(d,I,w){let C=r();return C?Promise.reject(C):n("agents.output",{sessionId:d,actorPath:I,...w!==void 0?{turnId:w}:{}})},events(d,I){let w=r();return w?Promise.reject(w):n("agents.events",{sessionId:d,...I!==void 0?{afterSequence:I}:{}})},wait(d,I,w,C){let S=r();return S?Promise.reject(S):t("agents.wait",{sessionId:d,...I!==void 0?{afterSequence:I}:{},...w!==void 0?{timeoutMs:w}:{}},C).then(at)}},status:{snapshot(){return n("daemon.status")},preflight(){return n("daemon.preflight").then(d=>Hd(d))}},daemon:{inspect(){return n("daemon.management.get").then(d=>{let I=d;return{...I,preflight:Hd(I.preflight)}})},stopForInline(d){let{operation:I,...w}=d;return n("daemon.rollbackToInline",w,I)}},diagnostics:{latestContextBudget(d){return n("context.budget.get",d)},latestToolExposure(d){return n("tool.exposure.preview",d)},latestProviderCacheDiagnostic(d){return n("provider.cache.diagnostics.get",d)}},connection:{current(){return p},subscribe(d){return l.add(d),d(p),{close(){l.delete(d)}}}},close:m}}i(Zr,"createRuntimeDaemonClient");async function*Ym(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(Ym,"pollRuntimeLearningEvents");function Fd(e){fe({source:"runtime.daemon.client",level:"warn",message:`Failed to deliver ${e} result to the Runtime daemon.`})}i(Fd,"reportReverseBridgeFailure");async function Qm(e,n,t){let r=ln(e),o=cn(r,"requestId"),s=cn(r,"leaseId"),a=n.get(s);if(!a){await t("credential.supply",{requestId:o,error:"credential_lease_unavailable"});return}try{let u=await a({leaseId:s,provider:cn(r,"provider"),sessionId:cn(r,"sessionId"),runId:cn(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(Qm,"answerCredentialRequest");async function Zm(e,n,t,r){let o=ln(e),s=cn(o,"invocationId"),a=cn(o,"leaseId"),u=cn(o,"toolName"),l=n.get(a)?.[u];if(!l){await r("host_tool.complete",{invocationId:s,error:"host_tool_unavailable"});return}let p=t.get(s);if(!p){let R=Promise.resolve().then(()=>l({invocationId:s,leaseId:a,toolName:u,sessionId:cn(o,"sessionId"),runId:cn(o,"runId"),input:ln(o.input)}));p={promise:R,settled:!1},t.set(s,p);let v=p;R.finally(()=>{v.settled=!0,$d(t)}).catch(()=>{}),$d(t)}try{await r("host_tool.complete",{invocationId:s,result:await p.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(Zm,"answerHostToolInvocation");function qd(e,n){let t=new Set(e.map(r=>r.name));if(t.size!==e.length||e.length===0)throw new Error("Host tool descriptors must have unique, non-empty names.");for(let r of t)if(typeof n[r]!="function")throw new Error(`Missing host tool handler: ${r}`)}i(qd,"validateHostToolHandlers");function $d(e){if(!(e.size<=Ld))for(let[n,t]of e){if(e.size<=Ld)return;t.settled&&e.delete(n)}}i($d,"pruneHostToolResults");function ef(e,n){let t=n?.journalEpoch??e;if(t!==void 0)return{operationId:n?.operationId??`op_${Yr().replace(/-/g,"")}`,journalEpoch:t}}i(ef,"createOperationEnvelope");function nf(e,n,t,r){return zd(e,n,"event.subscribe",{filter:t},o=>{af(o,r)})}i(nf,"subscribeToDaemonEvents");async function tf(e,n,t,r,o){let s=!1,a=!1,u,l=!1,p,R=!1,v,y,x=new Promise(P=>{y=P}),g=[],m,d,I=i(()=>{g.length=0,m?.close(),m=void 0,d?.close(),d=void 0;let P=u;u=void 0,P!==void 0&&n("event.unsubscribe",{subscriptionId:P}).catch(T=>{fe({source:"runtime.daemon.client",level:"warn",message:"Failed to unsubscribe an invalidated Session observation.",detail:T})})},"closeResources"),w=i((P,T,D)=>{s||R||(R=!0,I(),y?.({code:"observation_invalidated",reason:P,runtimeId:D,message:T}))},"invalidate"),C=i((P,T)=>{let D=ko(P.event);if(D===void 0){w("event_order","Runtime delivered an invalid observation event; full resync is required.",T);return}if(p!==void 0&&D.seq<p){if(!a)return;w("event_order",`Runtime observation event order regressed from ${p} to ${D.seq}.`,T);return}if(!(p!==void 0&&D.seq===p)){p=D.seq;try{r(D)}catch(q){fe({source:"runtime.daemon.client",level:"error",message:`Session observation listener failed for ${D.type}.`,detail:q}),w("delivery_failed",`Session observation listener failed while delivering ${D.type}; discard local state and resync.`,T)}}},"deliver"),S=i((P,T)=>{let D=sf(P.invalidation);if(D===void 0){w("event_order","Runtime delivered an invalid observation invalidation; full resync is required.",T);return}w(D.reason,D.message,D.runtimeId)},"deliverInvalidation");m=e.subscribe(P=>{if(s||R||P.method!=="event"&&P.method!=="observation.invalidated")return;let T=ln(P.params);if(u===void 0||!a){if(P.method==="event"&&!of(T.event,t)||P.method==="observation.invalidated"&&typeof T.sessionId=="string"&&T.sessionId!==t)return;g.length>=Xd?(l=!0,w("event_overflow","Runtime observation handoff overflowed; full resync is required.","daemon")):g.push({method:P.method,payload:T});return}T.subscriptionId===u&&(P.method==="event"?C(T,"daemon"):S(T,"daemon"))}),d=e.subscribeLifecycle?.(P=>{if(P.state==="connected"){v!==void 0&&v!==P.connectionId&&w("runtime_changed","Runtime transport connection changed; discard the observation and resync.","daemon"),v=P.connectionId;return}w("transport_disconnected",P.reason??"Runtime transport disconnected; observation is invalid.","daemon")});let b=i(P=>{try{let T=cn(ln(P),"subscriptionId");n("event.unsubscribe",{subscriptionId:T}).catch(D=>{fe({source:"runtime.daemon.client",level:"warn",message:"Failed to unsubscribe a late Session observation.",detail:D})})}catch(T){fe({source:"runtime.daemon.client",level:"warn",message:"Ignored an invalid late Session observation response.",detail:T})}},"unsubscribeLateObservation");try{let P=ln(await n("session.observe",{sessionId:t},o,b));if(u=cn(P,"subscriptionId"),l)throw Object.assign(new Error("Runtime session observation handshake exceeded its event buffer; full resync is required."),{code:"resync_required"});let T=ln(P.snapshot);p=T.cursor;let D={snapshot:T,invalidated:x,close(){s||(s=!0,I())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(s||R)){for(;g.length>0;){let q=g.splice(0);for(let re of q){if(R)break;let{method:ne,payload:he}=re;he.subscriptionId===u&&(ne==="event"?C(he,T.runtimeId):S(he,T.runtimeId))}}a=!0}})),D}catch(P){throw s=!0,I(),P}}i(tf,"observeDaemonSession");async function rf(e,n,t){if(Ud(n),n?.signal===void 0&&n?.timeoutMs===void 0)return e;let r,o;try{return await Promise.race([e,new Promise((s,a)=>{n?.timeoutMs!==void 0&&(r=setTimeout(()=>{let u=Object.assign(new Error(`Runtime read timed out after ${n.timeoutMs}ms`),{code:"read_timeout"});a(u),t(u)},n.timeoutMs)),n?.signal!==void 0&&(o=i(()=>{let u=Object.assign(new Error("Runtime read cancelled"),{code:"read_cancelled"});a(u),t(u)},"abort"),n.signal.addEventListener("abort",o,{once:!0}))})])}finally{r!==void 0&&clearTimeout(r),o!==void 0&&n?.signal?.removeEventListener("abort",o)}}i(rf,"raceRuntimeDaemonRead");function Ud(e){if(e?.signal?.aborted)throw Object.assign(new Error("Runtime read cancelled"),{code:"read_cancelled"});if(e?.timeoutMs!==void 0&&(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<=0))throw new Error("Runtime read timeoutMs must be a positive safe integer")}i(Ud,"validateRuntimeDaemonReadOptions");function of(e,n){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&e.sessionId===n}i(of,"isRuntimeEventForSession");function sf(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let n=e;if(!(n.code!=="observation_invalidated"||n.reason!=="event_overflow"&&n.reason!=="event_order"&&n.reason!=="delivery_failed"&&n.reason!=="runtime_changed"&&n.reason!=="transport_disconnected"||typeof n.runtimeId!="string"||typeof n.message!="string"))return{code:"observation_invalidated",reason:n.reason,runtimeId:n.runtimeId,message:n.message}}i(sf,"parseRuntimeObservationInvalidation");function af(e,n){let t=ko(e);t!==void 0&&n(t)}i(af,"deliverRuntimeEvent");function ko(e){let n=wo(e);if(!n.ok){fe({source:"runtime.daemon.client",level:"warn",message:`Ignored malformed Runtime event: ${n.error}`});return}return n.event}i(ko,"parseRuntimeEventForClient");function df(e,n,t,r){return zd(e,n,"workflow.subscribe",{filter:t},o=>{r(o)})}i(df,"subscribeToDaemonWorkflowEvents");function zd(e,n,t,r,o){let s=!1,a,u=[],l=e.subscribe(R=>{if(s||R.method!=="event")return;let v=ln(R.params);if(a===void 0){u.length>=Xd&&u.shift(),u.push(v);return}v.subscriptionId===a&&o(v.event)}),p=n(t,r).then(R=>{if(a=cn(ln(R),"subscriptionId"),s){Bd(n,t,a),u.length=0;return}for(let v of u.splice(0))v.subscriptionId===a&&o(v.event)}).catch(R=>{throw u.length=0,l.close(),R});return p.catch(()=>{}),{ready:p,close(){s=!0,l.close(),a!==void 0&&Bd(n,t,a)}}}i(zd,"subscribeToDaemonNotification");function jd(e,n){return e("run.await",{runId:n}).then(uf)}i(jd,"requestRuntimeRunResult");function uf(e){let n=ln(e),t=Object.prototype.hasOwnProperty.call(n,"error")?cf(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}i(uf,"deserializeRuntimeRunResult");function cf(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=ln(e),t=new Error(typeof n.message=="string"&&n.message.length>0?n.message:"Runtime run failed.");return typeof n.name=="string"&&n.name.length>0&&(t.name=n.name),typeof n.stack=="string"&&n.stack.length>0&&(t.stack=n.stack),t}i(cf,"deserializeRuntimeError");function Bd(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}i(Bd,"unsubscribeRemote");function at(e){return e??void 0}i(at,"nullToUndefined");function ln(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}i(ln,"requireRecord");function Kd(e){let n=e?.runLifecycleControl;if(!n||typeof n!="object"||Array.isArray(n))return!1;let t=n;return Number.isSafeInteger(t.version)&&Number(t.version)>=1&&t.structuredStopReceipt===!0&&t.protocolCancellation===!0&&t.responseAcknowledgement===!0}i(Kd,"supportsRunLifecycleControl");function lf(e,n){let t;try{t=ln(e)}catch{throw new Lt}let r=t.runId,o=t.sessionId,s=t.accepted,a=t.state,u=t.outcome,l=t.phase,p=t.revision,R=["unknown","confirmed"],v=["unknown","cancelled","interrupted","completed","failed"],y=["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input","unknown","completed","failed","cancelled","interrupted"];if(typeof s!="boolean"||typeof r!="string"||r.length===0||r!==n||typeof o!="string"||o.length===0||typeof a!="string"||!R.includes(a)||typeof u!="string"||!v.includes(u)||typeof l!="string"||!y.includes(l)||!Number.isSafeInteger(p)||Number(p)<0)throw new Lt;return{runId:r,sessionId:o,accepted:s,state:a,outcome:u,phase:l,revision:Number(p)}}i(lf,"parseRuntimeRunStopReceipt");function cn(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw new Error(`Expected daemon response string field: ${n}`);return t}i(cn,"requireStringField");function mf(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(mf,"optionalStringField");function Nt(e,n,t=new WeakSet){if(e==null||typeof e=="string"||typeof e=="boolean")return;if(typeof e=="number"){if(Number.isFinite(e))return;throw new dt(n,`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new dt(n,`${n} is not transport-safe: ${typeof e} values cannot cross a Runtime boundary.`);if(typeof e!="object")return;if(t.has(e))throw new dt(n,`${n} is not transport-safe: cyclic values cannot cross a Runtime boundary.`);let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null){let o=r?.constructor?.name??"object";throw new dt(n,`${n} is not transport-safe: ${o} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((o,s)=>Nt(o,`${n}[${s}]`,t));else for(let[o,s]of Object.entries(e))Nt(s,`${n}.${o}`,t);t.delete(e)}i(Nt,"assertRuntimeTransportSafe");import{randomUUID as Ag}from"node:crypto";import Tg from"node:os";import Jo from"node:path";import{randomUUID as Eo}from"node:crypto";import*as ae from"node:fs";import an from"node:path";function ut(e,n="default"){let t=Po(n),r=an.resolve(e),o=an.join(r,"runtime","daemon",t);return{profile:t,configHome:r,rootDir:o,stateFile:an.join(o,"daemon.json"),lockFile:an.join(o,"daemon.lock"),tokenFile:an.join(o,"daemon.token"),logFile:an.join(o,"daemon.log"),runsDir:an.join(o,"runs"),eventsDir:an.join(o,"events"),ownerPolicyFile:an.join(o,"owner-policy.json"),ownerPolicyLockFile:an.join(o,"owner-policy.lock")}}i(ut,"resolveRuntimeDaemonPathsFromConfigHome");function ff(e,n){let t=i(r=>{let o=an.resolve(r);return process.platform==="win32"?o.toLowerCase():o},"resolveIdentity");return t(e)===t(n)}i(ff,"isSameRuntimeDaemonPath");function Ht(e,n){let t=an.resolve(e);return ff(n,an.join(t,".kodax"))?t:an.resolve(n)}i(Ht,"resolveRuntimeDaemonEndpointScope");function Sn(e){if(!ae.existsSync(e.ownerPolicyFile))return{mode:"daemon",revision:0,updatedAt:new Date(0).toISOString()};try{let n=JSON.parse(ae.readFileSync(e.ownerPolicyFile,"utf8"));if(Ao(n)&&(n.mode==="daemon"||n.mode==="inline")&&typeof n.revision=="number"&&Number.isSafeInteger(n.revision)&&n.revision>=0&&typeof n.updatedAt=="string")return{mode:n.mode,revision:n.revision,updatedAt:n.updatedAt}}catch{}throw new Error("Runtime owner policy is corrupt; refusing to choose an owner.")}i(Sn,"readRuntimeOwnerPolicy");function Gd(e,n,t){fn(e);let r=Jn(e);if(!r)throw new Error("Runtime owner policy update is already in progress.");try{if(ae.existsSync(e.lockFile))throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return ri(e,n,t,r.nonce)}finally{ct(e,r)}}i(Gd,"updateRuntimeOwnerPolicy");function Jd(e,n,t){fn(e);let r=Jn(e);if(!r)throw ni("Runtime owner rollback is already in progress.");try{let o=Ue(e.lockFile);if(o?.kind!=="daemon"||o.runtimeId!==n)throw ni("Runtime daemon owner changed before rollback commit.");if(Sn(e).mode!=="daemon")throw ni("Runtime owner policy changed before rollback commit.");return ri(e,"inline",t,r.nonce)}finally{ct(e,r)}}i(Jd,"commitRuntimeDaemonRollbackPolicy");function ti(e){fn(e);let n=Jn(e);if(!n)throw new Error("Runtime owner transition is already in progress.");try{if(ae.existsSync(e.lockFile))throw new Error("Cannot enable Runtime daemon ownership while an owner lock exists.");let t=Sn(e);return t.mode==="daemon"?t:ri(e,"daemon",t.revision,n.nonce)}finally{ct(e,n)}}i(ti,"enableRuntimeDaemonOwner");function Yd(e,n,t=!1){fn(e);let r=Jn(e);if(!r)throw new Error("Runtime owner transition is already in progress.");try{let o=Sn(e);if(o.mode!=="inline"){if(!t)throw new Error("Coder inline ownership requires explicit enableRollback: true.");if(ae.existsSync(e.lockFile))throw new Error("Cannot enable inline rollback while a Coder owner lock exists.");ri(e,"inline",o.revision,r.nonce)}if(ae.existsSync(e.lockFile))throw new Error(`Coder profile "${e.profile}" already has an owner.`);let s=tu(e,n);if(!s)throw new Error(`Coder profile "${e.profile}" already has an owner.`);return s}finally{ct(e,r)}}i(Yd,"acquireRuntimeInlineOwner");function ri(e,n,t,r){let o=Sn(e);if(o.revision!==t)throw ni(`Runtime owner policy conflict: expected ${t}, current ${o.revision}.`);let s={mode:n,revision:o.revision+1,updatedAt:new Date().toISOString()},a=`${e.ownerPolicyFile}.${process.pid}.${r}.tmp`;try{let u=ae.openSync(a,"wx",384);try{ae.writeFileSync(u,`${JSON.stringify(s,null,2)}
11
+ `,"utf8"),ae.fsyncSync(u)}finally{ae.closeSync(u)}return ae.renameSync(a,e.ownerPolicyFile),s}finally{ae.rmSync(a,{force:!0})}}i(ri,"writeRuntimeOwnerPolicy");function ni(e){let n=new Error(e);return n.code="conflict",n}i(ni,"runtimeOwnerPolicyConflict");function Jn(e,n=!0){let t=Eo(),r={runtimeId:`owner-transition-${t}`,pid:process.pid,createdAt:new Date().toISOString()},o;try{return o=ae.openSync(e.ownerPolicyLockFile,"wx",384),ae.writeFileSync(o,`${JSON.stringify({...r,nonce:t})}
12
+ `,"utf8"),ae.fsyncSync(o),{nonce:t,owner:r}}catch(s){if(Co(s)&&s.code==="EEXIST")return n&&pf(e)?Jn(e,!1):void 0;throw s}finally{o!==void 0&&ae.closeSync(o)}}i(Jn,"tryAcquireRuntimeOwnerCoordination");function pf(e){let n=Wd(e);if(!n||gf(n.owner.pid))return!1;try{let t=Wd(e);return!t||t.nonce!==n.nonce?!1:(ae.unlinkSync(e.ownerPolicyLockFile),!0)}catch{return!1}}i(pf,"removeAbandonedRuntimeOwnerCoordination");function Wd(e){try{let n=JSON.parse(ae.readFileSync(e.ownerPolicyLockFile,"utf8"));return!Ao(n)||typeof n.nonce!="string"||!su(n)||!n.runtimeId.startsWith("owner-transition-")?void 0:{nonce:n.nonce,owner:n}}catch{return}}i(Wd,"readRuntimeOwnerCoordinationHandle");function gf(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Co(n)&&n.code==="EPERM"}}i(gf,"isRuntimeOwnerProcessAlive");function yf(e){return Ue(e.ownerPolicyLockFile)}i(yf,"readRuntimeOwnerCoordinator");function ct(e,n){try{let t=JSON.parse(ae.readFileSync(e.ownerPolicyLockFile,"utf8"));Ao(t)&&t.nonce===n.nonce&&ae.unlinkSync(e.ownerPolicyLockFile)}catch{}}i(ct,"releaseRuntimeOwnerCoordination");function ii(e){if(Sn(e).mode!=="daemon")throw new Error(`Runtime daemon auto-start is disabled for profile "${e.profile}" by inline rollback policy.`)}i(ii,"assertRuntimeDaemonOwnerAllowed");function Po(e){let n=e.trim()||"default";if(!/^[A-Za-z0-9_.-]+$/.test(n))throw new Error(`Invalid runtime daemon profile: ${e}`);return n}i(Po,"normalizeRuntimeDaemonProfile");function fn(e){ae.mkdirSync(e.rootDir,{recursive:!0}),ae.mkdirSync(e.runsDir,{recursive:!0}),ae.mkdirSync(e.eventsDir,{recursive:!0})}i(fn,"ensureRuntimeDaemonDirectories");function Qd(){return`dt_${Eo().replace(/-/g,"")}`}i(Qd,"createRuntimeDaemonToken");function Zd(e,n){fn(e),ae.writeFileSync(e.tokenFile,`${n}
13
+ `,{encoding:"utf8",mode:384}),process.platform!=="win32"&&ae.chmodSync(e.tokenFile,384)}i(Zd,"writeRuntimeDaemonToken");function gr(e){try{let n=ae.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}catch(n){if(n.code==="ENOENT")return;throw n}}i(gr,"readRuntimeDaemonToken");function Ft(e,n){fn(e);let t=`${e.stateFile}.${process.pid}.${Eo()}.tmp`;try{let r=ae.openSync(t,"wx",384);try{ae.writeFileSync(r,`${JSON.stringify(n,null,2)}
14
+ `,"utf8"),ae.fsyncSync(r)}finally{ae.closeSync(r)}ae.renameSync(t,e.stateFile)}finally{ae.rmSync(t,{force:!0})}}i(Ft,"writeRuntimeDaemonState");function pn(e,n,t,r){fn(e);let o={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};ae.appendFileSync(e.logFile,`${JSON.stringify(o)}
15
+ `,"utf8")}i(pn,"appendRuntimeDaemonLog");function eu(e,n=200){if(!ae.existsSync(e.logFile))return[];let t=[],r=ae.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);vf(s)&&t.push(s)}catch(s){t.push({time:new Date().toISOString(),level:"warn",message:`Skipped malformed daemon log line: ${s instanceof Error?s.message:String(s)}`})}return t}i(eu,"readRuntimeDaemonLog");function nu(e){if(ae.existsSync(e.stateFile))try{let n=JSON.parse(ae.readFileSync(e.stateFile,"utf8"));return wf(n)?n:void 0}catch{return}}i(nu,"readRuntimeDaemonState");function tu(e,n){fn(e);let t;try{return t=ae.openSync(e.lockFile,"wx",384),ae.writeFileSync(t,`${JSON.stringify(n,null,2)}
16
+ `,"utf8"),ae.fsyncSync(t),{file:e.lockFile,owner:n}}catch(r){if(Co(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&ae.closeSync(t)}}i(tu,"tryAcquireRuntimeDaemonLock");function oi(e){let n={ownerPolicyLockFile:an.join(an.dirname(e.file),"owner-policy.lock")},t=Jn(n);if(!t)return!1;try{return iu(e)}finally{ct(n,t)}}i(oi,"releaseRuntimeDaemonLock");function ru(e,n){let t=Jn(e);if(!t)return!1;try{let r=Ue(n.file);return xo(r,n.owner)?(hf(e),iu(n)):!1}finally{ct(e,t)}}i(ru,"releaseRuntimeDaemonOwnership");function iu(e){let n=Ue(e.file);return xo(n,e.owner)?(ae.unlinkSync(e.file),!0):!1}i(iu,"unlinkRuntimeDaemonLockIfOwned");function Ue(e){if(ae.existsSync(e))try{let n=JSON.parse(ae.readFileSync(e,"utf8"));return su(n)?n:void 0}catch{return}}i(Ue,"readRuntimeDaemonLockOwner");function ou(e,n,t){fn(e);let r=qt(t),o=Ue(e.lockFile);if(r==="healthy")return t.state&&o!==void 0&&bo(o,t.state)?{kind:"attach",state:t.state,health:r}:{kind:"unhealthy",health:"mismatch",...t.state!==void 0?{state:t.state}:{},...o!==void 0?{lockOwner:o}:{}};if(r==="unhealthy"&&t.state!==void 0&&bf(t.state.status)&&t.pidAlive&&o!==void 0)return{kind:"wait",lockOwner:o,state:t.state,health:"missing"};if(r==="unhealthy"||r==="mismatch")return{kind:"unhealthy",health:r,...t.state!==void 0?{state:t.state}:{},...o!==void 0?{lockOwner:o}:{}};let s=r==="stale"?"stale":"missing",a=Jn(e);if(!a){let u=Ue(e.lockFile)??yf(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 Sn(e).mode!=="daemon"?{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}:Rf(e,n,t,s)}finally{ct(e,a)}}i(ou,"claimRuntimeDaemonOwnership");function Rf(e,n,t,r){let o=Ue(e.lockFile);if(r==="stale"){if(o!==void 0&&(t.observedLockOwner!==void 0&&!xo(o,t.observedLockOwner)||t.state!==void 0&&!bo(o,t.state)))return ei(o,t,r);Vd(e)}else if(o!==void 0){if(t.observedLockOwner!==void 0&&!bo(o,t.observedLockOwner))return ei(o,t,r);if(t.lockOwnerPidAlive===!1)Vd(e);else return ei(o,t,r)}if(r==="missing"){let u=Ue(e.lockFile);if(u!==void 0)return{kind:"wait",lockOwner:u,...t.state!==void 0?{state:t.state}:{},health:r}}let s=tu(e,n);if(s)return{kind:"claim",lock:s,health:r};let a=Ue(e.lockFile);return a?ei(a,t,r):{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}i(Rf,"claimAvailableRuntimeDaemonOwnership");function ei(e,n,t){return{kind:"wait",lockOwner:e,...n.state!==void 0?{state:n.state}:{},health:t}}i(ei,"waitForRuntimeOwner");function bo(e,n){return e.runtimeId===n.runtimeId&&e.pid===n.pid}i(bo,"sameRuntimeOwner");function xo(e,n){return e===void 0||n===void 0?e===n:e.runtimeId===n.runtimeId&&e.pid===n.pid&&e.createdAt===n.createdAt&&e.kind===n.kind}i(xo,"sameRuntimeLockOwner");function Vd(e){ae.rmSync(e.lockFile,{force:!0}),ae.rmSync(e.stateFile,{force:!0}),ae.rmSync(e.tokenFile,{force:!0})}i(Vd,"removeRuntimeDaemonOwnershipFiles");function hf(e){ae.rmSync(e.stateFile,{force:!0}),ae.rmSync(e.tokenFile,{force:!0})}i(hf,"removeRuntimeDaemonStateFiles");function qt(e){return e.state?e.endpointReachable&&!e.identityMatches?"mismatch":e.pidAlive&&e.endpointReachable&&e.identityMatches?"healthy":!e.pidAlive&&!e.endpointReachable?"stale":"unhealthy":"missing"}i(qt,"classifyRuntimeDaemonHealth");function wf(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"&&kf(n.status)&&(n.configHome===void 0||typeof n.configHome=="string")&&(n.lastError===void 0||typeof n.lastError=="string")}i(wf,"isRuntimeDaemonState");function vf(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&Sf(n.level)&&typeof n.message=="string"&&(n.data===void 0||If(n.data))}i(vf,"isRuntimeDaemonLogEntry");function Sf(e){return e==="info"||e==="warn"||e==="error"}i(Sf,"isRuntimeDaemonLogLevel");function If(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(If,"isPlainRecord");function su(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.runtimeId=="string"&&typeof n.pid=="number"&&typeof n.createdAt=="string"}i(su,"isRuntimeDaemonLockOwner");function kf(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}i(kf,"isRuntimeDaemonStatus");function bf(e){return e==="starting"||e==="draining"||e==="stopping"}i(bf,"isRuntimeDaemonTransitionStatus");function Co(e){return e instanceof Error&&"code"in e}i(Co,"isNodeFileError");function Ao(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ao,"isRecord");import{createHash as Ef,randomUUID as lt}from"node:crypto";import*as Bt from"node:fs/promises";import*as yr from"node:net";import Pf from"node:os";import au from"node:path";import{StringDecoder as To}from"node:string_decoder";var xf=8*1024*1024,Cf=3e4,jt=class extends Error{constructor(t,r,o){super(t);this.code=r;this.data=o;this.name="RuntimeDaemonTransportError"}code;data;static{i(this,"RuntimeDaemonTransportError")}};function Mo(e){return e instanceof jt}i(Mo,"isRuntimeDaemonTransportError");function Kt(e="default",n){let t=Po(e),r=n===void 0?t:`${t}-${Af(au.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:au.join(Pf.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}i(Kt,"defaultRuntimeDaemonEndpoint");function Af(e){return Ef("sha256").update(e).digest("hex").slice(0,12)}i(Af,"shortPathHash");function uu(e,n={}){let t="",r=0,o=new To("utf8"),s=n.maxFrameBytes??xf;if(!Number.isSafeInteger(s)||s<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let a=i(l=>{Mf(l,s),l.trim()&&e(Nd(l))},"consumeLine"),u=i(l=>{t+=l,r+=Buffer.byteLength(l,"utf8")},"append");return{push(l){for(typeof l=="string"?(u(o.end()),o=new To("utf8"),u(l)):u(o.write(l));;){let p=t.indexOf(`
17
+ `);if(p<0)break;let R=t.slice(0,p).replace(/\r$/,""),v=t.slice(0,p+1);t=t.slice(p+1),r-=Buffer.byteLength(v,"utf8"),a(R)}lu(r,s)},flush(){u(o.end()),o=new To("utf8");let l=t.trim();t="",r=0,l.length>0&&a(l)}}}i(uu,"createRuntimeDaemonFrameParser");async function Fn(e,n={}){let t=yr.createConnection(e.path);t.setEncoding("utf8");let r=new Promise(S=>{t.once("close",()=>S())});await _f(t,n.connectTimeoutMs);let o=!1,s,a=`transport_${lt().replace(/-/g,"")}`,u=lt().replace(/-/g,"")+lt().replace(/-/g,""),l=`connection_${lt().replace(/-/g,"")}`,p=new Set,R=new Set,v={state:"connected",connectionId:l,reconnectable:!1},y=i((S,b)=>{if(v.state!=="disconnected"){v={state:"disconnected",connectionId:l,reason:S,reconnectable:b};for(let P of R)try{P(v)}catch{fe({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport lifecycle listener failed."})}}},"disconnect"),x=new Map,g=new Map,m=i(S=>{let b=g.get(S);if(b!==void 0)return g.delete(S),clearTimeout(b.expiry),b.deliver},"removeLateResult"),d=i(()=>{for(let S of g.values())clearTimeout(S.expiry);g.clear()},"clearLateResults"),I=!1,w=i((S,b)=>{if(!I||o||t.destroyed)return;let T=Mt(`${S==="request.ack"?"ack":"cancel"}_${lt().replace(/-/g,"").slice(0,12)}`,S,{requestId:b});t.write(`${JSON.stringify(T)}
18
+ `)},"sendRequestLifecycleFrame"),C=uu(S=>{if(st(S)){let b=x.get(S.id);if(b){x.delete(S.id),b.cleanup(),Df(S.result)&&(I=!0),w("request.ack",S.id),b.resolve(S.result);return}let P=m(S.id);if(S.id.startsWith("req_")&&w("request.cancel",S.id),P===void 0)return;try{P(S.result)}catch(T){fe({source:"runtime.daemon.transport",level:"warn",message:"Runtime daemon late-result handler failed.",detail:T})}return}if(Ot(S)){if(!S.id)return;let b=x.get(S.id);if(b){x.delete(S.id),b.cleanup(),b.reject(new jt(S.error.message,S.error.code,S.error.data));return}m(S.id);return}if(pr(S))for(let b of p)try{b(S)}catch{fe({source:"runtime.daemon.transport",level:"warn",message:"Runtime transport notification listener failed."})}},{maxFrameBytes:n.maxFrameBytes});return t.on("data",S=>{try{C.push(S)}catch(b){o=!0;let P=$t(b);y(P.message,!0),si(x,P),d(),t.destroy(P)}}),t.on("close",()=>{o=!0,y("Runtime daemon transport closed.",!0),si(x,new Error("Runtime daemon transport closed.")),d()}),t.on("error",S=>{o=!0,y(S.message,!0),si(x,S),d()}),{request(S,b,P,T){if(o)return Promise.reject(new Error("Runtime daemon transport is closed."));let D=`req_${lt().replace(/-/g,"").slice(0,12)}`,q=S==="initialize"||S==="runtime.initialize"?Tf(b,a,u):b,re=P??(s!==void 0&&ot(S)?{operationId:`op_${lt().replace(/-/g,"")}`,journalEpoch:s}:void 0),ne=Mt(D,S,q,re),he;try{he=JSON.stringify(ne)}catch(E){return Promise.reject(new jt(`Runtime daemon request params are not JSON-serializable: ${$t(E).message}`,"invalid_params"))}let ve,Ke=!1,Se=i(()=>{ve!==void 0&&T?.signal?.removeEventListener("abort",ve)},"cleanup"),c=new Promise((E,$)=>{let Y={resolve:E,reject:$,cleanup:Se};x.set(D,Y),T?.signal!==void 0&&(ve=i(()=>{if(x.get(D)===Y){if(x.delete(D),Se(),Ke&&!t.destroyed&&w("request.cancel",D),T.onLateResult!==void 0){let X=setTimeout(()=>{g.delete(D)},Cf);X.unref?.(),g.set(D,{deliver:T.onLateResult,expiry:X})}$(Hf(T.signal?.reason))}},"abort"),T.signal.addEventListener("abort",ve,{once:!0}),T.signal.aborted&&ve())});return T?.signal?.aborted?c:(t.write(`${he}
19
+ `),Ke=!0,c.then(E=>{if(S==="initialize"||S==="runtime.initialize"){let $=mt(E);typeof $?.journalEpoch=="string"&&(s=$.journalEpoch)}return E}))},subscribe(S){return p.add(S),{close(){p.delete(S)}}},subscribeLifecycle(S){return R.add(S),S(v),{close(){R.delete(S)}}},async close(){let S;if(!o){o=!0,y("Runtime daemon transport closed by client.",!1);try{C.flush()}catch(b){S=$t(b)}t.end(),t.destroy(),si(x,new Error("Runtime daemon transport closed.")),d()}if(await r,R.clear(),S!==void 0)throw S}}}i(Fn,"createRuntimeDaemonSocketClientTransport");function Tf(e,n,t){let r=mt(e)??{},o=mt(r.capabilities)??{},s=mt(r.clientInfo)??{name:"kodax-transport"};return{...r,capabilities:{...o,operationDeduplication:!0},clientInfo:{...s,instanceId:typeof s.instanceId=="string"?s.instanceId:n,instanceSecret:typeof s.instanceSecret=="string"?s.instanceSecret:t}}}i(Tf,"withDurableOperationCapability");function mt(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}i(mt,"asRecord");function Df(e){let n=mt(e),t=mt(n?.capabilities),r=mt(t?.runLifecycleControl);return Number.isSafeInteger(r?.version)&&Number(r?.version)>=1&&r.structuredStopReceipt===!0&&r.protocolCancellation===!0&&r.responseAcknowledgement===!0}i(Df,"runtimeDaemonSupportsRequestLifecycle");async function cu(e){await Nf(e.endpoint);let n=yr.createServer(),t=new Set,r=new Set,o=!1;if(n.on("connection",s=>{if(o){s.destroy();return}t.add(s);let a=!1,u=i(v=>{if(s.destroyed)return;let y;try{y=JSON.stringify(v)}catch(x){let g=Gn({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${$t(x).message}`},v.kind==="response"||v.kind==="error"?v.id:void 0);y=JSON.stringify(g)}s.write(`${y}
20
+ `)},"send"),l=e.createDispatcher(v=>u(v));r.add(l);let p=uu(v=>{if(So(v)){l.handle(v).then(u,y=>{u(Gn({code:"internal_error",message:$t(y).message}))});return}if(Ot(v)){u(v);return}u(Gn({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),R=i(v=>{if(a)return;a=!0;let y=$t(v);u(Gn({code:"invalid_frame",message:y.message,...Mo(y)&&y.data!==void 0?{data:y.data}:{}})),s.end()},"rejectInvalidFrame");s.on("data",v=>{if(!a)try{p.push(v)}catch(y){R(y)}}),s.on("end",()=>{try{p.flush()}catch(v){R(v)}}),s.on("close",()=>{t.delete(s),r.delete(l),l.close()}),s.on("error",()=>{s.destroy()})}),await Of(n,e.endpoint.path),e.endpoint.kind==="unix")try{await Bt.chmod(e.endpoint.path,384)}catch(s){throw await du(n),s}return{endpoint:e.endpoint,connectionCount(){return t.size},unref(){n.unref()},async close(){if(!o){o=!0;for(let s of r)s.close();r.clear();for(let s of t)s.destroy();t.clear(),await du(n)}}}}i(cu,"createRuntimeDaemonSocketServer");function Mf(e,n){lu(Buffer.byteLength(e,"utf8"),n)}i(Mf,"assertFrameSize");function lu(e,n){if(!(e<=n))throw new jt(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}i(lu,"assertFrameByteSize");function _f(e,n=2e3){return new Promise((t,r)=>{let o=setTimeout(()=>{s(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);o.unref?.();let s=i(()=>{clearTimeout(o),e.off("connect",a),e.off("error",u)},"cleanup"),a=i(()=>{s(),t()},"onConnect"),u=i(l=>{s(),r(l)},"onError");e.once("connect",a),e.once("error",u)})}i(_f,"waitForConnect");function Of(e,n){return new Promise((t,r)=>{let o=i(()=>{e.off("listening",s),e.off("error",a)},"cleanup"),s=i(()=>{o(),t()},"onListening"),a=i(u=>{o(),r(u)},"onError");e.once("listening",s),e.once("error",a),e.listen(n)})}i(Of,"waitForListen");async function Nf(e){if(e.kind!=="unix")return;let n;try{n=await Bt.stat(e.path)}catch(t){if(Do(t)&&t.code==="ENOENT")return;throw t}if(!n.isSocket())throw new Error(`Runtime daemon Unix endpoint exists and is not a socket: ${e.path}`);if(await Lf(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await Bt.unlink(e.path)}catch(t){if(!Do(t)||t.code!=="ENOENT")throw t}}i(Nf,"prepareUnixSocketEndpoint");function Lf(e){return new Promise((n,t)=>{let r=yr.createConnection(e),o=setTimeout(()=>{s(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);o.unref?.();let s=i(()=>{clearTimeout(o),r.off("connect",a),r.off("error",u)},"cleanup"),a=i(()=>{s(),r.end(),r.destroy(),n(!0)},"onConnect"),u=i(l=>{if(s(),r.destroy(),Do(l)&&(l.code==="ECONNREFUSED"||l.code==="ENOENT")){n(!1);return}t(l)},"onError");r.once("connect",a),r.once("error",u)})}i(Lf,"unixSocketAcceptsConnections");function du(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}i(du,"closeNetServer");function si(e,n){for(let t of e.values())t.cleanup(),t.reject(n);e.clear()}i(si,"rejectPending");function Hf(e){return e instanceof Error?e:new Error("Runtime daemon request cancelled.")}i(Hf,"normalizeTransportAbortReason");function $t(e){return e instanceof Error?e:new Error(String(e))}i($t,"normalizeTransportError");function Do(e){return e instanceof Error&&"code"in e}i(Do,"isNodeFileError");async function Rr(e,n={}){let t=nu(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=Ue(e.lockFile),o=(n.isPidAlive??fu)(t.pid),s=ft(t),a=gr(e),u;try{u=await(n.createTransport?n.createTransport(s):Fn(s,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let l=u.request("initialize",{profile:t.profile,connectionPurpose:"probe",...a!==void 0?{token:a}:{}});l.catch(()=>{});let p=await Ff(l,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:o,endpointReachable:!0,identityMatches:qf(p,t)&&$f(r,t),...r!==void 0?{observedLockOwner:r}:{}}}catch(l){return Mo(l)&&l.code==="unauthorized"?{state:t,pidAlive:o,endpointReachable:!0,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}:{state:t,pidAlive:o,endpointReachable:!1,identityMatches:!1,...r!==void 0?{observedLockOwner:r}:{}}}finally{await u?.close?.()}}i(Rr,"observeRuntimeDaemonHealth");async function _o(e,n,t={}){let r=await Rr(e,t),o=r.state?void 0:Ue(e.lockFile),s=o?{...r,observedLockOwner:o,lockOwnerPidAlive:(t.isPidAlive??fu)(o.pid)}:r;return ou(e,n,s)}i(_o,"resolveRuntimeDaemonOwnership");function ft(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}i(ft,"runtimeDaemonEndpointFromState");function fu(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return jf(n)&&n.code==="EPERM"}}i(fu,"isRuntimeDaemonPidAlive");async function Ff(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(Ff,"withTimeout");function qf(e,n){let t=mu(e),r=mu(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}i(qf,"daemonIdentityMatchesState");function $f(e,n){return e?.runtimeId===n.runtimeId&&e.pid===n.pid}i($f,"runtimeDaemonLockMatchesState");function mu(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}i(mu,"asRecord");function jf(e){return e instanceof Error&&"code"in e}i(jf,"isNodeProcessError");import cc from"node:path";import{randomUUID as zt}from"node:crypto";var h={type:"string"},xe={type:"boolean"},de={type:"integer"},V={type:"object",additionalProperties:!0},pu={},In={type:"array",items:V},Tn={oneOf:[{type:"null"},V]},qe=M({ok:xe},["ok"]),Ge=M({}),ai={initialize:{params:M({profile:h,token:h,autoStart:xe,endpoint:h,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:V,capabilities:V},[],!0),result:M({identity:V,capabilities:V},["identity","capabilities"],!0)},"runtime.initialize":{params:M({profile:h,token:h,autoStart:xe,endpoint:h,connectionPurpose:{type:"string",enum:["client","probe"]},clientInfo:V,capabilities:V},[],!0),result:M({identity:V,capabilities:V},["identity","capabilities"],!0)},ping:{params:Ge,result:M({ok:xe,runtimeId:h},["ok","runtimeId"])},"runtime.identity":{params:Ge,result:V},"runtime.status":{params:Ge,result:V},"runtime.shutdown":{params:Ge,result:qe},"runtime.capabilities":{params:Ge,result:V},"daemon.status":{params:Ge,result:V},"daemon.stop":{params:Ge,result:qe},"daemon.logs":{params:Ge,result:V},"daemon.preflight":{params:Ge,result:V},"daemon.management.get":{params:Ge,result:M({runtimeId:h,revision:de,ownerPolicy:Ru(),owner:sp(),preflight:V,integrations:Uf()},["runtimeId","revision","ownerPolicy","owner","preflight"])},"daemon.rollbackToInline":{params:M({expectedRuntimeId:h,expectedRevision:de,expectedOwnerPolicyRevision:de},["expectedRuntimeId","expectedRevision","expectedOwnerPolicyRevision"]),result:M({accepted:{type:"boolean",enum:[!0]},runtimeId:h,revision:de,ownerPolicy:Ru("inline")},["accepted","runtimeId","revision","ownerPolicy"])},"operation.get":{params:M({operationId:h,journalEpoch:h},["operationId","journalEpoch"]),result:V},"session.create":{params:Gf(),result:gt()},"session.load":{params:M({sessionId:h,timeoutMs:de},["sessionId"]),result:gt()},"session.list":{params:Jf(),result:en(gt())},"session.status":{params:M({sessionId:h},["sessionId"]),result:V},"session.transcript":{params:M({sessionId:h,timeoutMs:de},["sessionId"]),result:Tn},"session.transcript.page":{params:M({sessionId:h,cursor:h,limit:de,timeoutMs:de},["sessionId"]),result:Tn},"session.transcript.entryChunk":{params:M({sessionId:h,revision:h,entryIndex:de,cursor:h,timeoutMs:de},["sessionId","revision","entryIndex"]),result:Tn},"session.transcript.search":{params:Wf(),result:dn(Vf())},"session.observe":{params:M({sessionId:h,timeoutMs:de},["sessionId"]),result:V},"session.conversation":{params:M({sessionId:h,timeoutMs:de},["sessionId"]),result:Tn},"session.conversation.page":{params:M({sessionId:h,cursor:h,limit:de,timeoutMs:de},["sessionId"]),result:Tn},"session.conversation.entryChunk":{params:M({sessionId:h,revision:h,entryIndex:de,cursor:h,timeoutMs:de},["sessionId","revision","entryIndex"]),result:Tn},"session.diagnostics":{params:M({sessionId:h,runId:h,timeoutMs:de},["sessionId"]),result:lp()},"session.fork":{params:ap(),result:dn(gt())},"session.notice.append":{params:M({sessionId:h,content:h,source:h},["sessionId","content"]),result:Tn},"session.rewind":{params:M({sessionId:h,selector:h,historyBoundary:Cu()},["sessionId"]),result:dn(gt())},"session.active_entry.set":{params:hu(),result:dn(gt())},"session.activeEntry.set":{params:hu(),result:dn(gt())},"session.compact":{params:dp(),result:V},"session.archive":{params:M({sessionId:h},["sessionId"]),result:qe},"session.unarchive":{params:M({sessionId:h},["sessionId"]),result:qe},"session.delete":{params:M({sessionId:h},["sessionId"]),result:qe},"session.settings.get":{params:M({sessionId:h},["sessionId"]),result:V},"session.settings.getVersioned":{params:M({sessionId:h},["sessionId"]),result:V},"session.autoMode.getStats":{params:M({sessionId:h},["sessionId"]),result:dn(V)},"session.settings.update":{params:M({sessionId:h,patch:V},["sessionId","patch"]),result:V},"session.settings.updateVersioned":{params:M({sessionId:h,patch:V,expectedRevision:de},["sessionId","patch","expectedRevision"]),result:V},"run.start":{params:up(),result:zf()},"run.input.submit":{params:M({sessionId:h,afterRunId:h,delivery:{type:"string",enum:["after_turn","interrupt"]},input:pu,credential:V,hostTools:V},["sessionId","afterRunId","delivery","input"]),result:V},"run.get":{params:pt(),result:wu()},"run.list":{params:cp(),result:en(wu())},"run.await":{params:pt(),result:fp()},"run.abort":{params:pt(),result:mp()},"run.model.set":{params:M({runId:h,model:h},["runId"],!0),result:qe},"run.provider.set":{params:M({runId:h,provider:h},["runId","provider"]),result:qe},"run.reasoning.set":{params:M({runId:h,reasoning:h},["runId"],!0),result:qe},"run.setModel":{params:M({runId:h,model:h},["runId"],!0),result:qe},"run.setProvider":{params:M({runId:h,provider:h},["runId","provider"]),result:qe},"run.setReasoning":{params:M({runId:h,reasoning:h},["runId"],!0),result:qe},"request.cancel":{params:M({requestId:h},["requestId"]),result:qe},"request.ack":{params:M({requestId:h},["requestId"]),result:qe},"event.subscribe":{params:gu(Mu()),result:yu()},"event.unsubscribe":{params:M({subscriptionId:h},["subscriptionId"]),result:qe},"event.replay":{params:pp(),result:en(gp())},"permission.list":{params:No(),result:en(vu())},"permission.listPending":{params:No(),result:en(vu())},"permission.request":{params:_u(),result:Su()},"permission.respond":{params:M({requestId:h,runId:h,decision:Su()},["requestId","decision"]),result:xe},"permission.grants.list":{params:Ge,result:V},"permission.grants.revoke":{params:M({grantId:h,expectedRevision:de},["grantId","expectedRevision"]),result:xe},"user_input.listPending":{params:No(),result:en(V)},"user_input.respond":{params:M({requestId:h,answer:pu,runId:h,expectedRevision:de},["requestId","answer"],!0),result:V},"user_input.dismiss":{params:M({requestId:h,runId:h,expectedRevision:de},["requestId"],!0),result:V},"credential.register":{params:M({leaseId:h,providers:{type:"array",items:h},expiresAt:h},["leaseId","providers"],!0),result:V},"credential.get":{params:M({leaseId:h},["leaseId"]),result:{oneOf:[V,{type:"null"}]}},"credential.revoke":{params:M({leaseId:h},["leaseId"]),result:xe},"credential.supply":{params:M({requestId:h,credential:h,error:h},["requestId"],!0),result:qe},"host_tool.register":{params:M({leaseId:h,tools:{type:"array",items:V}},["leaseId","tools"]),result:V},"host_tool.get":{params:M({leaseId:h},["leaseId"]),result:{oneOf:[V,{type:"null"}]}},"host_tool.invocation.get":{params:M({invocationId:h},["invocationId"]),result:{oneOf:[V,{type:"null"}]}},"host_tool.revoke":{params:M({leaseId:h},["leaseId"]),result:xe},"host_tool.complete":{params:M({invocationId:h,result:V,error:h},["invocationId"],!0),result:qe},"workflow.list":{params:Iu(),result:In},"workflow.get":{params:pt(),result:{oneOf:[V,{type:"null"}]}},"workflow.subscribe":{params:gu(Iu()),result:yu()},"workflow.unsubscribe":{params:M({subscriptionId:h},["subscriptionId"]),result:qe},"workflow.pause":{params:pt(),result:xe},"workflow.resume":{params:pt(),result:xe},"workflow.stop":{params:pt(),result:xe},"learning.list":{params:Yf(),result:op()},"learning.get":{params:M({nameOrSlug:h},["nameOrSlug"]),result:xu()},"learning.snapshot":{params:Ge,result:ip()},"learning.events":{params:M({afterRevision:de},[],!0),result:en(rp())},"learning.acknowledge":{params:M({nameOrSlug:h},["nameOrSlug"]),result:qe},"learning.snooze":{params:M({nameOrSlug:h,until:h},["nameOrSlug","until"]),result:qe},"learning.reject":{params:M({nameOrSlug:h},["nameOrSlug"]),result:qe},"learning.disable":{params:M({nameOrSlug:h},["nameOrSlug"]),result:qe},"learning.rollback":{params:M({nameOrSlug:h},["nameOrSlug"]),result:qe},"learning.promote":{params:M({nameOrSlug:h,scope:{type:"string",enum:["user"]}},["nameOrSlug","scope"]),result:qe},"learning.review":{params:M({nameOrSlug:h},["nameOrSlug"]),result:qe},"learning.trust":{params:M({nameOrSlug:h},["nameOrSlug"]),result:qe},"config.read":{params:Ge,result:V},"config.patch":{params:M({patch:V},["patch"]),result:V},"config.reload":{params:Ge,result:M({ok:xe,config:V},["ok","config"])},"model.list":{params:M({provider:h},[],!0),result:{oneOf:[V,In]}},"provider.list":{params:Ge,result:In},"provider.custom.list":{params:Ge,result:In},"provider.custom.upsert":{params:M({config:V},["config"]),result:V},"provider.custom.remove":{params:M({name:h},["name"]),result:xe},"mcp.server.list":{params:Ge,result:V},"mcp.server.get":{params:M({name:h},["name"]),result:{oneOf:[V,{type:"null"}]}},"mcp.server.validate":{params:M({name:h,config:V},["name","config"]),result:{oneOf:[M({ok:xe,config:V},["ok","config"],!0),M({ok:xe,error:h},["ok","error"],!0)]}},"mcp.server.upsert":{params:M({name:h,config:V},["name","config"]),result:V},"mcp.server.delete":{params:M({name:h},["name"]),result:xe},"mcp.server.remove":{params:M({name:h},["name"]),result:xe},"mcp.server.reload":{params:Ge,result:M({ok:xe,servers:In},["ok","servers"])},"mcp.tool.list":{params:M({server:h,forceRefresh:xe},[],!0),result:In},"extension.list":{params:Ge,result:M({active:xe,extensions:In,diagnostics:V},["active","extensions"],!0)},"extension.reload":{params:Ge,result:M({ok:xe,active:xe},["ok","active"],!0)},"command.list":{params:M({projectRoot:h},[],!0),result:In},"command.resolve":{params:M({name:h,projectRoot:h},["name"],!0),result:Tn},"skill.list":{params:M({projectRoot:h,userInvocableOnly:xe},[],!0),result:In},"skill.describe":{params:M({name:h,projectRoot:h},["name"],!0),result:Tn},"skill.read":{params:M({name:h,projectRoot:h},["name"],!0),result:Tn},"artifact.create":{params:M({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:ku()},"artifact.get":{params:M({artifactId:h},["artifactId"]),result:dn(ku())},"artifact.delete":{params:M({artifactId:h},["artifactId"]),result:xe},"agentRegistrations.list":{params:Ge,result:In},"agentRegistrations.upsert":{params:M({registration:V,expectedConfigurationRevision:dn(h),expectedManagementOwner:dn(h)},["registration"]),result:V},"agentRegistrations.setEnabled":{params:M({agentId:h,enabled:xe,expectedConfigurationRevision:dn(h),expectedManagementOwner:dn(h),claimOwner:h},["agentId","enabled"]),result:dn(V)},"agentRegistrations.remove":{params:M({agentId:h,expectedConfigurationRevision:dn(h),expectedManagementOwner:dn(h)},["agentId"]),result:xe},"agents.listDispatchable":{params:V,result:In},"agents.describe":{params:M({agentId:h,query:V},["agentId","query"]),result:dn(V)},"agents.preflight":{params:V,result:V},"agents.tree":{params:M({sessionId:h},["sessionId"]),result:V},"agents.detail":{params:M({sessionId:h,actorPath:h},["sessionId","actorPath"]),result:V},"agents.spawn":{params:M({sessionId:h,input:V},["sessionId","input"]),result:V},"agents.send":{params:M({sessionId:h,actorPath:h,content:h,classification:{enum:["public","internal","sensitive"]}},["sessionId","actorPath","content"],!0),result:qe},"agents.followup":{params:M({sessionId:h,actorPath:h,objective:h,expectedRevision:de},["sessionId","actorPath","objective"],!0),result:V},"agents.interrupt":{params:M({sessionId:h,actorPath:h,reason:h},["sessionId","actorPath"],!0),result:qe},"agents.output":{params:M({sessionId:h,actorPath:h,turnId:h},["sessionId","actorPath"],!0),result:V},"agents.events":{params:M({sessionId:h,afterSequence:de},["sessionId"],!0),result:In},"agents.wait":{params:M({sessionId:h,afterSequence:de,timeoutMs:de},["sessionId"],!0),result:dn(V)},"context.budget.get":{params:Oo(),result:{oneOf:[V,{type:"null"}]}},"tool.exposure.preview":{params:Oo(),result:{oneOf:[V,{type:"null"}]}},"provider.cache.diagnostics.get":{params:Oo(),result:{oneOf:[V,{type:"null"}]}}},bu={event:M({subscriptionId:h,event:V},["subscriptionId","event"]),"observation.invalidated":M({subscriptionId:h,sessionId:h,invalidation:M({code:{type:"string",enum:["observation_invalidated"]},reason:{type:"string",enum:["event_overflow","event_order","delivery_failed","runtime_changed","transport_disconnected"]},runtimeId:h,message:h},["code","reason","runtimeId","message"])},["subscriptionId","invalidation"]),"credential.request":V,"host_tool.invoke":V,"runtime.warning":V},Eu={protocol:Vn,version:1,methods:ai,notifications:bu},Bf=JSON.stringify(Eu,null,2);function Kf(){return Dt}i(Kf,"listRuntimeDaemonSchemaMethods");function Xt(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(a=>Xt(a,n,t).length===0).length===1?[]:[`${t} must match exactly one allowed schema.`];if(e.enum!==void 0&&!e.enum.some(s=>Object.is(s,n)))return[`${t} must be one of: ${e.enum.map(String).join(", ")}.`];let r=e.type===void 0?[]:Array.isArray(e.type)?e.type:[e.type];if(r.length>0&&!r.some(s=>Xf(s,n)))return[`${t} must be ${r.join(" or ")}.`];if(typeof n=="string"&&e.maxLength!==void 0&&n.length>e.maxLength)return[`${t} must have at most ${e.maxLength} characters.`];if(Array.isArray(n)){let s=e.items;return s===void 0?[]:n.flatMap((a,u)=>Xt(s,a,`${t}[${u}]`))}if(!Pu(n))return[];let o=[];for(let s of e.required??[])(!Object.prototype.hasOwnProperty.call(n,s)||n[s]===void 0)&&o.push(`${t}.${s} is required.`);for(let[s,a]of Object.entries(n)){if(a===void 0)continue;let u=e.properties?.[s];if(u!==void 0){o.push(...Xt(u,a,`${t}.${s}`));continue}e.additionalProperties===!1?o.push(`${t}.${s} is not allowed.`):typeof e.additionalProperties=="object"&&o.push(...Xt(e.additionalProperties,a,`${t}.${s}`))}return o}i(Xt,"validateRuntimeDaemonJsonSchema");function Xf(e,n){switch(e){case"array":return Array.isArray(n);case"boolean":return typeof n=="boolean";case"integer":return typeof n=="number"&&Number.isInteger(n);case"null":return n===null;case"number":return typeof n=="number"&&Number.isFinite(n);case"object":return Pu(n);case"string":return typeof n=="string"}}i(Xf,"matchesJsonSchemaType");function Pu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Pu,"isJsonObject");function Uf(){let e=M({code:{type:"string",enum:["invalid-config","activation-failed","watcher-degraded"]},message:h,time:h},["code","message","time"]),n=M({domain:{type:"string",enum:["mcp","a2a","extensions"]},path:h,revision:h,source:{type:"string",enum:["user","legacy-user","default"]},lastReloadAt:h,diagnostic:e,watching:xe},["domain","path","watching"]);return M({state:{type:"string",enum:["healthy","degraded"]},domains:{type:"array",items:n}},["state","domains"])}i(Uf,"integrationHealthSchema");function M(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}i(M,"objectSchema");function pt(){return M({runId:h},["runId"])}i(pt,"runIdParamsSchema");function gu(e){return M({filter:e})}i(gu,"filterParamsSchema");function Oo(){return M({sessionId:h,runId:h,contextKind:{type:"string",enum:["root","child"]},agentId:h},[],!0)}i(Oo,"diagnosticParamsSchema");function yu(){return M({subscriptionId:h},["subscriptionId"])}i(yu,"subscriptionSchema");function zf(){return M({runId:h,sessionId:h,turnId:h},["runId","sessionId"],!0)}i(zf,"runStartedSchema");function en(e){return{type:"array",items:e}}i(en,"arraySchema");function dn(e){return{oneOf:[{type:"null"},e]}}i(dn,"nullableSchema");function Wf(){return M({sessionId:h,query:h,limit:de,role:{type:"string",enum:["user","assistant"]},scope:{type:"string",enum:["compacted","all"]},timeoutMs:de},["sessionId","query"])}i(Wf,"transcriptSearchParamsSchema");function Vf(){let e=M({entryId:h,logicalId:h,sourceEntryId:h,timestamp:h,role:{type:"string",enum:["user","assistant"]},source:{type:"string",enum:["user","assistant","tool","child_task"]},active:xe,score:{type:"number"},snippet:h,citation:h,entryIndex:de},["entryId","timestamp","role","source","active","score","snippet","citation","entryIndex"]);return M({revision:h,hits:en(e)},["revision","hits"])}i(Vf,"transcriptSearchResultSchema");function Gf(){return M({sessionId:h,title:h,projectPath:h,gitRoot:h,surface:h,profileId:h,tag:h})}i(Gf,"createSessionParamsSchema");function gt(){return M({id:h,cursor:h,title:h,gitRoot:h,workspaceRoot:h,surface:h,profileId:h,createdAt:h,msgCount:de,tag:h,projectKey:h,archived:xe},["id","title"],!0)}i(gt,"sessionSchema");function Jf(){return M({projectRoot:h,scope:{enum:["user","managed-task-worker","all"]},includeArchived:xe,limit:de,before:h,tag:h,surface:h,cursor:h})}i(Jf,"sessionFilterSchema");function Yf(){return M({search:h,carrier:{enum:["skill","extension","workflow_handoff"]},lifecycle:{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]},limit:de,cursor:h})}i(Yf,"learningQuerySchema");function Qf(){return{capabilityId:h,displayName:h,slug:h,lifecycle:Lo(),revision:de,createdAt:h,updatedAt:h,source:M({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:de,previousLifecycle:Lo(),diagnostics:en(h)}}i(Qf,"learnedCapabilityCommonProperties");function Zf(){return["schemaVersion","capabilityId","displayName","slug","carrier","lifecycle","revision","createdAt","updatedAt","source"]}i(Zf,"learnedCapabilityRequired");function ep(){return M({kind:{type:"string",enum:["skill_markdown"]},relativePath:h,fingerprint:h,contentRevision:de},["kind","relativePath","fingerprint","contentRevision"])}i(ep,"learnedCapabilityArtifactSchema");function np(){return M({maxInvocations:{type:"integer",enum:[3]},invocationCount:de,verifiedSuccesses:de,credibleNegatives:de,binding:M({bindingId:h,ownerSessionRef:h,expiresAt:h},["bindingId","ownerSessionRef","expiresAt"]),invocations:en(tp())},["maxInvocations","invocationCount","verifiedSuccesses","credibleNegatives","invocations"])}i(np,"learnedCapabilityCanarySchema");function tp(){return M({invocationId:h,bindingId:h,usageSessionHash:h,artifactRevision:de,artifactFingerprint:h,status:{type:"string",enum:["pending","verified_success","credible_negative","inconclusive"]},evidenceRefs:en(h),invokedAt:h,completedAt:h},["invocationId","bindingId","status","evidenceRefs","invokedAt"])}i(tp,"learnedCapabilityInvocationSchema");function xu(){let e=Qf(),n=ep(),t=Zf(),r=M({...e,schemaVersion:{type:"integer",enum:[1]},carrier:{enum:["skill","extension","workflow_handoff"]}},t),o=M({...e,schemaVersion:{type:"integer",enum:[2]},carrier:{type:"string",enum:["skill"]},scope:M({configHomeHash:h,tenantHash:h,projectHash:h},["configHomeHash","tenantHash","projectHash"]),artifact:n,previousGoodArtifact:n,provenance:M({jobId:h,inputHash:h,decisionId:h,actionId:h},["jobId","inputHash","decisionId","actionId"]),canary:np()},[...t,"scope","artifact","provenance","canary"]);return{oneOf:[r,o]}}i(xu,"learnedCapabilitySchema");function Lo(){return{enum:["opportunity","drafting","ready","testing","active_learned","promoted_user","quarantined","archived","rejected"]}}i(Lo,"learningLifecycleSchema");function rp(){return M({schemaVersion:{type:"integer",enum:[1]},sequence:de,eventId:h,capabilityId:h,capabilityRevision:de,kind:{enum:["opportunity","drafting","ready","testing","activated","promoted","attention","archived","rejected"]},lifecycle:Lo(),displayName:h,slug:h,carrier:{enum:["skill","extension","workflow_handoff"]},createdAt:h},["schemaVersion","sequence","eventId","capabilityId","capabilityRevision","kind","lifecycle","displayName","slug","carrier","createdAt"])}i(rp,"learningEventSchema");function ip(){return M({ready:de,newlyActive:de,attention:de,active:de,revision:de},["ready","newlyActive","attention","active","revision"])}i(ip,"learningSnapshotSchema");function op(){return M({items:en(xu()),nextCursor:h,revision:de},["items","revision"])}i(op,"learningPageSchema");function Ru(e){return M({mode:{type:"string",enum:e===void 0?["daemon","inline"]:[e]},revision:de,updatedAt:h},["mode","revision","updatedAt"])}i(Ru,"ownerPolicySchema");function sp(){return M({runtimeId:h,pid:de,createdAt:h,kind:{type:"string",enum:["daemon","inline"]}},["runtimeId","pid","createdAt"])}i(sp,"ownerIdentitySchema");function ap(){return M({sessionId:h,selector:h,newSessionId:h,title:h,historyBoundary:Cu()},["sessionId"])}i(ap,"forkSessionParamsSchema");function Cu(){return M({entryId:h,sourceRevision:h},["entryId","sourceRevision"])}i(Cu,"conversationHistoryBoundarySchema");function hu(){return M({sessionId:h,entryId:h},["sessionId","entryId"])}i(hu,"activeEntryParamsSchema");function dp(){return M({sessionId:h,provider:h,model:h,customInstructions:h,contextWindow:de},["sessionId"])}i(dp,"compactSessionParamsSchema");function up(){return M({sessionId:h,prompt:h,input:{oneOf:[V,en(V)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:V},["sessionId"],!0)}i(up,"startRunParamsSchema");function cp(){return M({sessionId:h,phase:{oneOf:[Ut(),en(Ut())]}})}i(cp,"runFilterSchema");function wu(){return M({runId:h,sessionId:h,turnId:h,phase:Ut(),stage:Du(),stageChangedAt:h,activeSubtaskCount:de,startedAt:h,endedAt:h,provider:h,model:h,reasoning:h,error:h,lifecycleError:M({code:{enum:["actor_settlement_retrying","actor_settlement_not_persisted"]},message:h,retryable:xe},["code","message","retryable"]),terminal:Au(),stop:Tu()},["runId","sessionId","phase","startedAt","provider"],!0)}i(wu,"runStatusSchema");function lp(){let e=M({code:{enum:["run_control_unknown","run_status_unknown","owner_liveness_unconfirmed","owner_recovery_required","stop_outcome_unconfirmed","actor_settlement_retrying","actor_settlement_not_persisted","run_failed","terminal_time_unknown"]},message:h},["code","message"]),n=M({controlRecord:{enum:["present","unknown"]},runId:h,turnId:h,state:{enum:["queued","active","terminal","unknown"]},phase:Ut(),stage:Du(),stageChangedAt:h,terminalAt:h,terminalTimeKnown:xe,terminal:Au(),activeSubtaskCount:{oneOf:[de,{type:"null"}]},activeSubtaskCountSource:{enum:["run_status","unknown"]},stop:Tu(),interruptInputs:en(V),errors:en(e)},["controlRecord","state","stage","terminalTimeKnown","activeSubtaskCount","activeSubtaskCountSource","errors"]);return M({schemaVersion:{type:"integer",enum:[1]},captureStartedAt:h,capturedAt:h,sdkVersion:h,runtimeVersion:h,daemonVersion:{oneOf:[h,{type:"null"}]},runtimeId:h,runtimeMode:{enum:["embedded","daemon"]},sessionId:h,observation:M({cursor:de,transcriptRevision:h},["cursor","transcriptRevision"]),run:n},["schemaVersion","captureStartedAt","capturedAt","sdkVersion","runtimeVersion","daemonVersion","runtimeId","runtimeMode","sessionId","observation","run"])}i(lp,"sessionDiagnosticsSchema");function Au(){return M({revision:de,kind:{enum:["completed","failed","cancelled","interrupted"]},code:{enum:["completed","run_failed","blocked","cancelled","interrupted","runtime_restarted","daemon_crashed","credential_unavailable","host_not_dispatched","host_outcome_unknown","control_history_untrusted"]},effectOutcome:{enum:["none","known","unknown"]},message:h},["revision","kind","code","effectOutcome"])}i(Au,"runtimeTerminalFactSchema");function Tu(){return M({requestedAt:h,state:{enum:["unknown","confirmed"]},outcome:{enum:["unknown","cancelled","interrupted","completed","failed"]},reason:h,resolvedAt:h},["requestedAt","state","outcome","reason"])}i(Tu,"runStopStatusSchema");function mp(){return M({runId:h,sessionId:h,accepted:xe,state:{type:"string",enum:["unknown","confirmed"]},outcome:{type:"string",enum:["unknown","cancelled","interrupted","completed","failed"]},phase:Ut(),revision:de},["runId","sessionId","accepted","state","outcome","phase","revision"])}i(mp,"runStopReceiptSchema");function fp(){return M({runId:h,sessionId:h,phase:Ut(),result:V,error:{oneOf:[h,V]}},["runId","sessionId","phase"],!0)}i(fp,"runResultSchema");function Ut(){return{enum:["queued","running","waiting_agent","recovering","waiting_permission","waiting_user_input","unknown","completed","failed","cancelled","interrupted"]}}i(Ut,"runPhaseSchema");function Du(){return{enum:["queued","executing","waiting_agent","recovering","finalizing","terminal","unknown","starting","routing","preflight","round","worker","upgrade","verifying"]}}i(Du,"runStageSchema");function Mu(){return M({sessionId:h,runId:h,type:{oneOf:[h,en(h)]}})}i(Mu,"eventFilterSchema");function pp(){return M({...Mu().properties??{},sinceSeq:de,limit:de})}i(pp,"eventReplayFilterSchema");function gp(){return M({id:h,seq:de,time:h,sessionId:h,runId:h,turnId:h,type:h,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}i(gp,"runtimeEventSchema");function No(){return M({sessionId:h,runId:h,toolName:h})}i(No,"permissionFilterSchema");function _u(){return M({sessionId:h,runId:h,turnId:h,toolCallId:h,toolName:h,reason:h,risk:{enum:["low","medium","high"]},inputPreview:h,toolInput:V,executionCwd:{type:"string",maxLength:4096},autoModeDiagnostics:V,expiresAt:h,timeoutMs:de},["sessionId","runId","toolName"])}i(_u,"permissionRequestInputSchema");function vu(){let{toolInput:e,...n}=_u().properties??{};return M({...n,inputPreview:{type:"string",maxLength:8192},grantSuggestions:en(M({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(vu,"permissionRequestSchema");function Su(){return{oneOf:[M({type:{enum:["allow_once"]}},["type"]),M({type:{enum:["allow_session"]},suggestionId:h},["type","suggestionId"]),M({type:{enum:["allow_always"]},suggestionId:h},["type","suggestionId"]),M({type:{enum:["allow_always"]},scope:M({toolName:h,sessionId:h,matcher:yp()})},["type","scope"]),M({type:{enum:["reject"]},reason:h,cause:{enum:["approval_timeout"]}},["type"])]}}i(Su,"permissionDecisionSchema");function yp(){let e={version:{type:"integer",enum:[1]},toolName:h,fingerprint:h};return{oneOf:[M({...e,kind:{enum:["exact-command"]},shell:{enum:["cmd","posix","powershell"]},shellContractFingerprint:h,commandFingerprint:h,cwd:h,executable:h,argvFingerprint:h,background:xe},["version","kind","toolName","fingerprint","shell","commandFingerprint","cwd","background"]),M({...e,kind:{enum:["exact-path"]},path:h},["version","kind","toolName","fingerprint","path"]),M({...e,kind:{enum:["exact-call"]},cwd:h,inputFingerprint:h},["version","kind","toolName","fingerprint","cwd","inputFingerprint"])]}}i(yp,"runtimePermissionMatcherSchema");function Iu(){return M({runId:h,activeOnly:xe,limit:de})}i(Iu,"workflowFilterSchema");function ku(){return M({id:h,kind:{enum:["image","file","video"]},path:h,sizeBytes:de,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(ku,"artifactSchema");import{createHash as Rp,randomUUID as hr}from"node:crypto";import*as Ze from"node:fs";import hp from"node:path";var wp=6e4,vp=1048576,Sp=64,Ip=4096,Ou=1e3;function Fo(){return{callTimeoutMs:Hu("KODAX_REVERSE_CALL_TIMEOUT_MS",wp),maxResultBytes:Hu("KODAX_HOST_TOOL_MAX_RESULT_BYTES",vp)}}i(Fo,"runtimeDaemonReverseBridgeLimits");function qo(e,n={}){let t=Fo(),r=new Map,o=new Map,s=new Map,a=new Map,u=new Map((n.initialInvocations??[]).map(S=>[S.invocationId,S])),l=new Set,p=new Map,R=new Map,v,y=!1,x=i(()=>{if(y)throw De("host_tool_unavailable","Host bridge connection is closed.")},"requireOpen"),g=i(()=>{let S=Date.now();for(let[b,P]of r)P.expiresAt!==void 0&&Date.parse(P.expiresAt)<=S&&r.delete(b)},"pruneExpiredCredentials"),m=i(S=>{for(let b of s.values())clearTimeout(b.timer),b.reject(De("credential_unavailable",S));s.clear()},"rejectPendingCredentialRequests"),d=i(()=>{for(let[S,b]of a)b.dispatched&&(a.delete(S),clearTimeout(b.timer),I(S,"unknown"),b.reject(De("host_tool_unknown","Host tool client disconnected; the side-effect outcome is unknown.")))},"rejectDispatchedHostCalls"),I=i((S,b)=>{let P=u.get(S);if(P===void 0)return;let T={...P,state:b,updatedAt:new Date().toISOString()},D=new Map(u);for(D.delete(S),D.set(S,T);D.size>Ou;){let q=D.keys().next().value;if(q===void 0)break;D.delete(q)}n.onInvocationsChanged?.([...D.values()]),u.clear();for(let[q,re]of D)u.set(q,re)},"updateHostToolInvocation"),w=i((S,b)=>{let P=v;if(!(b.dispatched||P===void 0||!l.has(b.leaseId)))try{I(S,"dispatched"),b.dispatched=!0,P.notify(b.notification)}catch{a.delete(S),clearTimeout(b.timer),I(S,"unknown"),b.reject(De("host_tool_unknown","Host tool transport failed after durable dispatch; the side-effect outcome is unknown."))}},"dispatchPendingHostCall"),C=i(async S=>{if(x(),o.get(S.lease.id)!==S.lease)throw De("host_tool_unavailable","Host tool lease was revoked.");let b=`hostcall_${hr().replace(/-/g,"")}`,P=_t("host_tool.invoke",{invocationId:b,leaseId:S.lease.id,toolName:S.descriptor.name,sessionId:S.sessionId,runId:S.runId,input:S.toolInput,sideEffect:S.descriptor.sideEffect}),T={invocationId:b,leaseId:S.lease.id,toolName:S.descriptor.name,sessionId:S.sessionId,runId:S.runId,state:"prepared",updatedAt:new Date().toISOString()},D=new Map(u);for(D.set(b,T);D.size>Ou;){let ne=D.keys().next().value;if(ne===void 0)break;D.delete(ne)}n.onInvocationsChanged?.([...D.values()]),u.clear();for(let[ne,he]of D)u.set(ne,he);let q=new Promise((ne,he)=>{let ve=setTimeout(()=>{let Ke=a.get(b);Ke&&(a.delete(b),I(b,Ke.dispatched?"unknown":"not_dispatched"),he(De(Ke.dispatched?"host_tool_unknown":"host_tool_unavailable",Ke.dispatched?`Host tool ${S.descriptor.name} did not return a certain result before timeout.`:`Host tool ${S.descriptor.name} had no connected host before timeout.`)))},t.callTimeoutMs);ve.unref?.(),a.set(b,{invocationId:b,resolve:ne,reject:he,timer:ve,notification:P,leaseId:S.lease.id,dispatched:!1})}),re=a.get(b);return re&&w(b,re),q},"invokeHostTool");return e!==void 0&&(v={id:`bridge_${hr().replace(/-/g,"")}`,notify:e}),{attachTransport(S){x(),v!==void 0&&(m("Credential client connection was replaced."),d());let b=`bridge_${hr().replace(/-/g,"")}`;return v={id:b,notify:S},l.clear(),{close(){v?.id===b&&(v=void 0,l.clear(),m("Credential client disconnected."),d())}}},registerCredential(S){if(x(),g(),S.providers.length===0||S.providers.some(P=>P.trim().length===0)||new Set(S.providers).size!==S.providers.length)throw De("invalid_params","Credential lease providers must be non-empty and unique.");if(S.expiresAt!==void 0&&!Number.isFinite(Date.parse(S.expiresAt)))throw De("invalid_params","Credential lease expiresAt must be an ISO timestamp.");if(r.has(S.leaseId))throw De("conflict","Credential lease ID is already registered on this connection.");let b={id:S.leaseId,providers:[...S.providers],...S.expiresAt!==void 0?{expiresAt:S.expiresAt}:{},providerSet:new Set(S.providers)};return r.set(S.leaseId,b),Lu(b)},getCredential(S){g();let b=r.get(S);return b===void 0?void 0:Lu(b)},revokeCredential(S){return r.delete(S)},supplyCredential(S){let b=s.get(S.requestId);return b?(s.delete(S.requestId),clearTimeout(b.timer),S.credential!==void 0&&S.credential.length>0?b.resolve(S.credential):b.reject(De("credential_unavailable",S.error??"Credential broker returned no credential.")),!0):!1},async acquireCredential(S){x();let b=r.get(S.leaseId);if(!b||!b.providerSet.has(S.provider))throw De("credential_unavailable","Credential lease is missing or does not allow this provider.");if(b.expiresAt!==void 0&&Date.parse(b.expiresAt)<=Date.now())throw r.delete(b.id),De("credential_unavailable","Credential lease expired.");let P=v;if(!P)throw De("credential_unavailable","Credential broker transport is unavailable.");let T=`credreq_${hr().replace(/-/g,"")}`,D=b.expiresAt===void 0?t.callTimeoutMs:Math.min(t.callTimeoutMs,Math.max(1,Date.parse(b.expiresAt)-Date.now())),q=new Promise((re,ne)=>{let he=setTimeout(()=>{s.delete(T),ne(De("credential_unavailable","Credential lease expired or broker timed out."))},D);he.unref?.(),s.set(T,{resolve:re,reject:ne,timer:he})});try{P.notify(_t("credential.request",{requestId:T,leaseId:b.id,provider:S.provider,sessionId:S.sessionId,runId:S.runId}))}catch{let re=s.get(T);re&&(s.delete(T),clearTimeout(re.timer),re.reject(De("credential_unavailable","Credential request was not dispatched.")))}return q.then(re=>(p.set(S.runId,{leaseId:S.leaseId,provider:S.provider}),re))},registerHostTools(S){x();let b=S.tools.map(T=>T.name);if(b.length===0||b.length>Sp||new Set(b).size!==b.length)throw De("invalid_params","Host tool names must be non-empty and unique.");if(o.has(S.leaseId))throw De("conflict","Host tool lease ID is already registered on this connection.");for(let T of S.tools)xp(T);let P={id:S.leaseId,tools:S.tools.map(T=>({...T,inputSchema:{...T.inputSchema}})),byName:new Map(S.tools.map(T=>[T.name,T]))};return o.set(S.leaseId,P),l.add(S.leaseId),{id:P.id,tools:P.tools}},getHostTools(S){let b=o.get(S);if(b!==void 0){l.add(S);for(let[P,T]of a)T.leaseId===S&&w(P,T)}return b===void 0?void 0:{id:b.id,tools:b.tools}},revokeHostTools(S){return o.delete(S)},completeHostTool(S){let b=a.get(S.invocationId);if(!b)return!1;if(S.result!==void 0){if(typeof S.result.content!="string")throw De("invalid_params","Host tool result content must be a string.");Cp(S.result,t.maxResultBytes,"Host tool result")}return a.delete(S.invocationId),clearTimeout(b.timer),S.result!==void 0?(I(S.invocationId,"completed"),b.resolve(S.result)):(I(S.invocationId,"unknown"),b.reject(De("host_tool_unknown",S.error??"Host tool result is unknown."))),!0},getHostToolInvocation(S){return u.get(S)},createHostToolRuntime(S){x();let b=o.get(S.leaseId);if(!b)throw De("host_tool_unavailable","Host tool lease is missing.");return R.set(S.runId,S.leaseId),{hasCapabilityProvider(P){return P==="mcp"},async searchCapabilities(P,T,D){if(P!=="mcp"||D?.kind!==void 0&&D.kind!=="tool")return[];let q=T.toLowerCase();return b.tools.filter(re=>re.name.toLowerCase().includes(q)||re.description.toLowerCase().includes(q)).slice(0,D?.limit??b.tools.length).map(re=>({id:Ap(b.id,re.name),name:re.name,description:re.description,kind:"tool",server:"host",inputSchema:re.inputSchema}))},async describeCapability(P,T){if(P!=="mcp")return;let D=Fu(b,T);return D?{...D,id:T,kind:"tool",server:"host"}:void 0},async executeCapability(P,T,D){if(P!=="mcp")throw De("host_tool_unavailable","Unsupported host capability provider.");let q=Fu(b,T);if(!q)throw De("host_tool_unavailable","Host tool is not bound to this run.");return await C({lease:b,descriptor:q,sessionId:S.sessionId,runId:S.runId,toolInput:D})},async readCapability(){throw De("host_tool_unavailable","Host tools do not expose resource reads.")},async getCapabilityPrompt(){},async getCapabilityPromptContext(){}}},getRunRequirements(S){let b=p.get(S),P=R.get(S);if(!(b===void 0&&P===void 0))return{...b!==void 0?{credential:{...b,state:"ready"}}:{},...P!==void 0?{hostTools:{leaseId:P,state:o.has(P)?l.has(P)?"ready":"waiting_host":"expired"}}:{}}},close(){if(!y){y=!0,v=void 0,l.clear(),r.clear(),o.clear(),m("Credential client disconnected.");for(let S of a.values())clearTimeout(S.timer),I(S.invocationId,S.dispatched?"unknown":"not_dispatched"),S.reject(De(S.dispatched?"host_tool_unknown":"host_tool_unavailable",S.dispatched?"Host tool client disconnected; the side-effect outcome is unknown.":"Host tool client disconnected before dispatch."));a.clear(),u.clear()}}}}i(qo,"createRuntimeDaemonReverseBridge");function qu(e={}){let n=new Map,t=bp(e.invocationStateFile),r=!1;return{attach(o){if(r)throw De("host_tool_unavailable","Host bridge hub is closed.");if(o.instanceSecret!==void 0&&(o.instanceSecret.length<32||o.instanceSecret.length>512))throw De("invalid_params","Runtime client instanceSecret must contain between 32 and 512 characters.");let s=o.instanceSecret===void 0?`ephemeral:${o.connectionId}`:`stable:${o.principalId}:${Rp("sha256").update(o.instanceSecret).digest("hex")}`,a=s.startsWith("stable:")?kp(t.get(s)??[]):[],u=n.get(s)??qo(void 0,{initialInvocations:a,...s.startsWith("stable:")?{onInvocationsChanged(p){t.set(s,p),Nu(e.invocationStateFile,t)}}:{}});!n.has(s)&&a.length>0&&(t.set(s,a),Nu(e.invocationStateFile,t)),n.set(s,u);let l=u.attachTransport(o.notify);return{bridge:u,close(){l.close()}}},getRunRequirements(o){for(let s of n.values()){let a=s.getRunRequirements(o);if(a!==void 0)return a}},close(){if(!r){r=!0;for(let o of n.values())o.close();n.clear()}}}}i(qu,"createRuntimeDaemonReverseBridgeHub");function kp(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(kp,"recoverHostToolInvocationStates");function bp(e){if(e===void 0||!Ze.existsSync(e))return new Map;let n;try{n=JSON.parse(Ze.readFileSync(e,"utf8"))}catch(r){throw new Error(`Host Tool invocation recovery store is untrusted: ${Tp(r).message}`)}if(!Ho(n)||n.version!==1||!Array.isArray(n.clients))throw new Error("Host Tool invocation recovery store is untrusted: invalid root shape.");let t=new Map;for(let r of n.clients){if(!Ho(r)||typeof r.key!="string"||!Array.isArray(r.invocations))throw new Error("Host Tool invocation recovery store is untrusted: invalid client entry.");let o=r.invocations.map(Ep);t.set(r.key,o)}return t}i(bp,"loadHostToolInvocationStore");function Nu(e,n){if(e===void 0)return;Ze.mkdirSync(hp.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${hr()}.tmp`,r;try{r=Ze.openSync(t,"wx",384),Ze.writeFileSync(r,`${JSON.stringify({version:1,clients:[...n].map(([o,s])=>({key:o,invocations:s}))},null,2)}
21
+ `,"utf8"),Ze.fsyncSync(r),Ze.closeSync(r),r=void 0,Ze.renameSync(t,e)}finally{r!==void 0&&Ze.closeSync(r),Ze.rmSync(t,{force:!0})}}i(Nu,"saveHostToolInvocationStore");function Ep(e){if(!Ho(e)||typeof e.invocationId!="string"||typeof e.leaseId!="string"||typeof e.toolName!="string"||typeof e.sessionId!="string"||typeof e.runId!="string"||!Pp(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(Ep,"parseHostToolInvocationStatus");function Pp(e){return e==="prepared"||e==="dispatched"||e==="completed"||e==="unknown"||e==="not_dispatched"}i(Pp,"isHostToolInvocationState");function Lu(e){return{id:e.id,providers:e.providers,...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}}}i(Lu,"publicCredentialLease");function xp(e){if(!e.name||!e.description||!e.inputSchema)throw De("invalid_params","Host tool descriptors require name, description, and inputSchema.");if(!["none","idempotent","non_idempotent"].includes(e.sideEffect))throw De("invalid_params",`Invalid host tool sideEffect for ${e.name}.`);if(!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(e.name))throw De("invalid_params","Host tool name is invalid.");if(e.description.length>Ip)throw De("invalid_params",`Host tool description is too long: ${e.name}.`)}i(xp,"validateHostToolDescriptor");function Cp(e,n,t){let r;try{r=JSON.stringify(e)}catch{throw De("invalid_params",`${t} must be JSON-serializable.`)}if(Buffer.byteLength(r,"utf8")>n)throw De("invalid_params",`${t} exceeds the ${n}-byte limit.`)}i(Cp,"assertJsonByteLimit");function Hu(e,n){let t=process.env[e];if(t===void 0)return n;let r=Number(t);if(!Number.isSafeInteger(r)||r<=0)throw new Error(`${e} must be a positive integer.`);return r}i(Hu,"positiveIntegerEnvironment");function Ap(e,n){return`host:${e}:${n}`}i(Ap,"hostToolCapabilityId");function Fu(e,n){let t=`host:${e.id}:`;return n.startsWith(t)?e.byName.get(n.slice(t.length)):void 0}i(Fu,"descriptorFromCapabilityId");function De(e,n){return Object.assign(new Error(n),{code:e})}i(De,"bridgeError");function Ho(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ho,"isRecord");function Tp(e){return e instanceof Error?e:new Error(String(e))}i(Tp,"normalizeError");var $u=512*1024,ju=1e3,Dp=["code","cli","repl","acp","a2a","sdk","ide","space-desktop"],Mp=new Set(["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status"]),Yu=["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"],Qu=new Map([...un("session:observe",["ping","runtime.identity","runtime.status","runtime.capabilities","daemon.status","daemon.logs","operation.get","session.load","session.list","session.status","session.transcript","session.transcript.page","session.transcript.entryChunk","session.observe","session.diagnostics","session.settings.get","session.transcript.search","session.conversation","session.conversation.page","session.conversation.entryChunk","session.settings.getVersioned","session.autoMode.getStats","run.get","run.list","run.await","request.cancel","request.ack","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.grants.list","user_input.listPending","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","context.budget.get","tool.exposure.preview","provider.cache.diagnostics.get","config.read","model.list","provider.list","provider.custom.list","mcp.server.list","mcp.server.get","mcp.tool.list","extension.list","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.get"]),...un("session:write",["session.create","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.update","session.settings.updateVersioned"]),...un("run:control",["run.start","run.input.submit","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","permission.request"]),...un("permission:respond",["permission.respond"]),...un("permission:grant-admin",["permission.grants.revoke"]),...un("interaction:respond",["user_input.respond","user_input.dismiss"]),...un("credential:register",["credential.register","credential.get","credential.revoke","credential.supply"]),...un("host-tool:register",["host_tool.register","host_tool.get","host_tool.invocation.get","host_tool.revoke","host_tool.complete"]),...un("integration:admin",["config.patch","config.reload","provider.custom.upsert","provider.custom.remove","mcp.server.validate","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","extension.reload"]),...un("workflow:control",["workflow.pause","workflow.resume","workflow.stop"]),...un("learning:read",["learning.list","learning.get","learning.snapshot","learning.events"]),...un("learning:control",["learning.acknowledge","learning.snooze","learning.reject","learning.disable","learning.rollback","learning.promote","learning.review","learning.trust"]),...un("artifact:write",["artifact.create","artifact.delete"]),...un("agent:control",["agentRegistrations.list","agentRegistrations.upsert","agentRegistrations.setEnabled","agentRegistrations.remove","agents.listDispatchable","agents.describe","agents.preflight","agents.tree","agents.detail","agents.spawn","agents.send","agents.followup","agents.interrupt","agents.output","agents.events","agents.wait"]),...un("owner:admin",["daemon.rollbackToInline"]),...un("daemon:admin",["runtime.shutdown","daemon.stop","daemon.preflight","daemon.management.get"])]),Bu=Dt.filter(e=>e!=="initialize"&&e!=="runtime.initialize"&&!Qu.has(e));if(Bu.length>0)throw new Error(`Runtime daemon methods are missing authorization scopes: ${Bu.join(", ")}`);function un(e,n){return n.map(t=>[t,e])}i(un,"scopeEntries");function Wo(){let e=new Map,n=i(()=>{if(!(e.size<=ju))for(let[r,o]of e){if(e.size<=ju)break;o.settled&&e.delete(r)}},"pruneSettled"),t=i((r,o)=>{e.get(r)===o&&(o.settled=!0,n())},"markSettled");return{remember(r,o){let s,a=o.finally(()=>{s&&t(r,s)});a.catch(()=>{}),s={promise:a,settled:!1},e.set(r,s),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}i(Wo,"createRuntimeDaemonRunResultStore");function wr(e){return e==="initialize"||e==="runtime.initialize"}i(wr,"isInitializeMethod");function Zu(e){let n=new Map,t=new Map,r=i((P,T)=>{t.get(P)===T&&t.delete(P)},"deleteInFlightRequest"),o=new Map,s=e.runResults??Wo(),a=`connection_${zt().replace(/-/g,"")}`,u=qo(e.notify),l=u,p,R=!1,v=!1,y="client",x={},g=`client_${zt().replace(/-/g,"")}`,m,d,I=new Set(e.grantedScopes??Yu),w=i(P=>{let T=n.get(P);if(!T)return!1;n.delete(P);let D=o.get(P);if(o.delete(P),D!==void 0){let q=t.get(D.requestId);q===D.inFlight&&q.subscriptionIds.delete(P),q===D.inFlight&&q.completed&&q.subscriptionIds.size===0&&r(D.requestId,q)}return T.close(),!0},"closeSubscription"),C=i((P,T)=>{n.set(P,T)},"rememberSubscription"),S=i((P,T)=>{nc(T)&&x.contextDiagnostics!==!0||e.notify?.(_t("event",{subscriptionId:P,event:T}))},"notify");return{handle:i(async P=>{let T;try{if(Od(P.method))throw ge("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 D=P;Ju(D.method,"params",D.params===void 0?{}:D.params,"invalid_params");let q;if(!R&&!wr(D.method))throw ge("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(R&&wr(D.method))throw ge("conflict","Runtime daemon connection is already initialized.");if(R&&y==="probe"&&!Mp.has(D.method))throw ge("unauthorized","Runtime daemon probe connections are read-only and method-limited.");if(wr(D.method)){q=Ne(D.params),y=q?.connectionPurpose==="probe"?"probe":"client";let Se=typeof q?.token=="string"?q.token:void 0;if(e.authToken!==void 0&&Se!==e.authToken)throw ge("unauthorized","Runtime daemon initialize token is invalid.");let c=typeof q?.profile=="string"?q.profile:void 0;if(c!==void 0&&c!==e.runtime.identity.profile)throw ge("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${c}.`);g=Fp(q?.clientInfo,g),m=ng(q?.clientInfo),d=tg(q?.clientInfo)}if(wr(D.method)||(Lp(D.method,I),Hp(D,I)),t.has(D.id))throw ge("invalid_request",`Runtime daemon request id is already in flight: ${D.id}.`);if(D.method==="request.cancel"){let Se=Ee(D.params,"requestId"),c=t.get(Se);if(c?.cancellable===!0){c.controller.abort(Object.assign(new Error("Runtime daemon request cancelled."),{code:"read_cancelled"}));for(let E of c.subscriptionIds)w(E)}return Gr(D.id,{ok:c?.cancellable===!0})}if(D.method==="request.ack"){let Se=Ee(D.params,"requestId"),c=t.get(Se);if(c?.completed===!0){for(let E of c.subscriptionIds)o.get(E)?.inFlight===c&&o.delete(E);r(Se,c)}return Gr(D.id,{ok:c?.completed===!0})}let re=new AbortController,ne={controller:re,subscriptionIds:new Set,cancellable:!Vr(D.method),completed:!1};t.set(D.id,ne),T={id:D.id,subscriptionIds:ne.subscriptionIds,inFlight:ne};let he=i(()=>qp(D,e,s,(Se,c)=>{if(re.signal.aborted||t.get(D.id)!==ne){c.close();return}C(Se,c),ne.subscriptionIds.add(Se),o.set(Se,{requestId:D.id,inFlight:ne})},w,S,()=>x,g,m,d,l,re.signal),"dispatch"),ve;try{let Se=Op(D,e,x,g,he);ve=Vr(D.method)?await Se:await _p(Se,re.signal)}catch(Se){for(let c of[...ne.subscriptionIds])w(c);throw r(D.id,ne),Se}let Ke=ag(D.method,ve);if(Ju(D.method,"result",Ke,"internal_error"),wr(D.method)){if(x=jp(q?.capabilities),y==="client"&&e.reverseBridgeHub!==void 0&&e.notify!==void 0&&(p=e.reverseBridgeHub.attach({principalId:g,connectionId:a,...Xu(q?.clientInfo)!==void 0?{instanceSecret:Xu(q?.clientInfo)}:{},notify:e.notify}),l=p.bridge,u.close()),y==="client"&&e.management!==void 0)try{e.management.attachClient(a),v=!0}catch(Se){throw p?.close(),p=void 0,Se}R=!0}return ne.completed=!0,ne.subscriptionIds.size===0&&r(D.id,ne),T=void 0,Gr(D.id,Ke)}catch(D){if(T!==void 0){for(let q of[...T.subscriptionIds])w(q);r(T.id,T.inFlight)}return Gn(dg(D),P.id)}},"handle"),close(){for(let P of t.values())P.controller.abort(Object.assign(new Error("Runtime daemon connection closed."),{code:"read_cancelled"}));t.clear();for(let P of[...n.keys()])w(P);p!==void 0?p.close():l.close(),v&&(e.management?.detachClient(a),v=!1)}}}i(Zu,"createRuntimeDaemonDispatcher");function _p(e,n){return n.aborted?Promise.reject(n.reason??ge("read_cancelled","Runtime daemon request cancelled.")):new Promise((t,r)=>{let o=i(()=>{r(n.reason??ge("read_cancelled","Runtime daemon request cancelled."))},"onAbort");n.addEventListener("abort",o,{once:!0}),e.then(t,r).finally(()=>{n.removeEventListener("abort",o)})})}i(_p,"raceRuntimeDaemonRequestCancellation");async function Op(e,n,t,r,o){let s=i(()=>n.management!==void 0&&Np(e.method)?n.management.runMutation(e.method,o):o(),"execute");if(!ot(e.method)||n.requireOperationEnvelope!==!0)return s();if(t.operationDeduplication!==!0)throw ge("client_upgrade_required","Runtime daemon mutations require durable operation support.");if(!e.operation)throw ge("operation_required","Runtime daemon mutation is missing its operation envelope.");if(!n.controlJournal)throw ge("internal_error","Runtime daemon control journal is unavailable.");return n.controlJournal.execute({operationId:e.operation.operationId,journalEpoch:e.operation.journalEpoch,principalId:r,method:e.method,...Ku(e.params)!==void 0?{resourceId:Ku(e.params)}:{},params:e.params??{}},{externalEffect:!0},s)}i(Op,"dispatchWithOperation");function Np(e){return Vr(e)&&e!=="daemon.stop"&&e!=="runtime.shutdown"&&e!=="daemon.rollbackToInline"}i(Np,"isManagedRuntimeMutation");function Lp(e,n){let t=Qu.get(e);if(t===void 0)throw ge("internal_error",`Runtime daemon method has no authorization scope: ${e}.`);if(!n.has(t))throw ge("unauthorized",`Runtime daemon method requires scope ${t}.`)}i(Lp,"requireRuntimeMethodScope");function Hp(e,n){if(e.method!=="permission.respond")return;let t=on(e.params)?e.params:void 0;if(!((t&&on(t.decision)?t.decision:void 0)?.type!=="allow_always"||n.has("permission:grant-admin")))throw ge("unauthorized","Persistent permission grants require scope permission:grant-admin.")}i(Hp,"requirePersistentGrantScope");function Ku(e){if(on(e)){for(let n of["sessionId","runId","taskId","artifactId","requestId","name"])if(typeof e[n]=="string"&&e[n].length>0)return e[n]}}i(Ku,"operationResourceId");function Fp(e,n){if(!on(e))return n;let t=e.instanceId;return typeof t!="string"||!/^[A-Za-z0-9_.:-]{4,160}$/.test(t)?n:t}i(Fp,"parseRuntimeClientPrincipal");function Xu(e){if(!on(e))return;let n=e.instanceSecret;return typeof n=="string"?n:void 0}i(Xu,"parseRuntimeClientInstanceSecret");async function qp(e,n,t,r,o,s,a,u,l,p,R,v){let y=n.runtime,x=n.reverseBridgeHub??R;switch(e.method){case"initialize":case"runtime.initialize":return{identity:y.identity,capabilities:zu(n.capabilities,y.agents.enabled,y.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0,n.orphanExitEnabled===!0,Wu(y)),principalId:u,...n.controlJournal!==void 0?{journalEpoch:n.controlJournal.journalEpoch}:{},grantedScopes:[...n.grantedScopes??Yu]};case"ping":return{ok:!0,runtimeId:y.identity.runtimeId};case"runtime.identity":return y.identity;case"daemon.status":case"runtime.status":return Up(await(n.status?n.status():y.status.snapshot()),x);case"daemon.stop":case"runtime.shutdown":return n.management?n.management.stop():n.stop?n.stop():y.close().then(()=>({ok:!0}));case"daemon.logs":return n.logs?n.logs():{entries:[]};case"daemon.preflight":return zp(await(n.management?n.management.preflight():n.preflight?n.preflight():y.status.preflight()),x);case"daemon.management.get":if(!n.management)throw ge("client_upgrade_required","Runtime daemon management is unavailable.");return n.management.inspect();case"daemon.rollbackToInline":{if(!n.management)throw ge("client_upgrade_required","Runtime daemon rollback management is unavailable.");let g=ie(e.params),m={expectedRuntimeId:ce(g,"expectedRuntimeId"),expectedRevision:ci(g,"expectedRevision"),expectedOwnerPolicyRevision:ci(g,"expectedOwnerPolicyRevision")};return n.management.rollbackToInline(m)}case"runtime.capabilities":return zu(n.capabilities,y.agents.enabled,y.agents.enabled&&n.allowAgentRegistrationAdmin===!0,n.ownsA2AConfigReconciler===!0,n.controlJournal,n.reverseBridgeHub!==void 0,n.durableHostToolInvocations===!0,n.management!==void 0,n.orphanExitEnabled===!0,Wu(y));case"operation.get":{let g=ie(e.params),m=ce(g,"operationId"),d=ce(g,"journalEpoch");if(!n.controlJournal)return y.operations.get({operationId:m,journalEpoch:d});if(d!==n.controlJournal.journalEpoch)throw ge("operation_epoch_mismatch","Runtime operation belongs to another journal epoch.");let I=n.controlJournal.get(m);if(!I||I.principalId!==u)throw ge("not_found","Runtime operation was not found.");return Bp(I)}case"config.read":return n.config?zo(await n.config()):y.config.read();case"config.patch":{let g=tc(ie(e.params),"patch");return y.config.patch(g)}case"config.reload":return y.config.reload();case"provider.list":return n.providerList?n.providerList():y.catalog.providers();case"model.list":return n.providerList?Vp(await n.providerList(),Ne(e.params)):y.catalog.models(Jp(e.params));case"provider.custom.list":return y.catalog.customProviders();case"provider.custom.upsert":{let g=ie(e.params);return y.catalog.upsertCustomProvider(ie(g.config))}case"provider.custom.remove":return y.catalog.deleteCustomProvider(Ee(e.params,"name"));case"mcp.server.list":return y.mcp.listServers();case"mcp.server.get":return y.mcp.getServer(Ee(e.params,"name"));case"mcp.server.validate":{let g=ie(e.params);return y.mcp.validateServer(ce(g,"name"),g.config)}case"mcp.server.upsert":{let g=ie(e.params);return y.mcp.upsertServer(ce(g,"name"),ie(g.config))}case"mcp.server.delete":case"mcp.server.remove":return y.mcp.deleteServer(Ee(e.params,"name"));case"mcp.server.reload":return y.mcp.reloadServers();case"mcp.tool.list":return y.mcp.listTools(Yp(e.params));case"extension.list":return y.catalog.extensions();case"extension.reload":return y.catalog.reloadExtensions();case"command.list":{let g=Ne(e.params),m=typeof g?.projectRoot=="string"?g.projectRoot:void 0;return y.catalog.commands(m)}case"command.resolve":{let g=ie(e.params);return y.catalog.resolveCommand({name:ce(g,"name"),...typeof g.projectRoot=="string"?{projectRoot:g.projectRoot}:{}})}case"skill.list":return y.catalog.skills(Qp(e.params));case"skill.describe":case"skill.read":{let g=ie(e.params);return y.catalog.describeSkill({name:ce(g,"name"),...typeof g.projectRoot=="string"?{projectRoot:g.projectRoot}:{}})}case"artifact.create":return y.artifacts.create(Zp(e.params));case"artifact.get":return y.artifacts.get(Ee(e.params,"artifactId"));case"artifact.delete":return y.artifacts.delete(Ee(e.params,"artifactId"));case"agentRegistrations.list":return ui(n),di(y),y.admin.agentRegistrations.list();case"agentRegistrations.upsert":{ui(n),di(y);let g=ie(e.params);return y.admin.agentRegistrations.upsert(ie(g.registration),{expectedConfigurationRevision:Ko(g),expectedManagementOwner:Xo(g)})}case"agentRegistrations.setEnabled":{ui(n),di(y);let g=ie(e.params),m=Ye(g,"claimOwner");if(m!==void 0&&m.length===0)throw ge("invalid_request","Expected non-empty optional string param: claimOwner");return y.admin.agentRegistrations.setEnabled(ce(g,"agentId"),sg(g,"enabled"),{expectedConfigurationRevision:Ko(g),expectedManagementOwner:Xo(g),...m?{claimOwner:m}:{}})}case"agentRegistrations.remove":ui(n),di(y);{let g=ie(e.params);return y.admin.agentRegistrations.remove(ce(g,"agentId"),{expectedConfigurationRevision:Ko(g),expectedManagementOwner:Xo(g)})}case"agents.listDispatchable":return y.agents.listDispatchable(ie(e.params));case"agents.describe":{let g=ie(e.params);return y.agents.describe(ce(g,"agentId"),ie(g.query))}case"agents.preflight":return y.agents.preflight(ie(e.params));case"agents.tree":return y.agents.tree(Ee(e.params,"sessionId"));case"agents.detail":{let g=ie(e.params);return y.agents.detail(ce(g,"sessionId"),ce(g,"actorPath"))}case"agents.spawn":{let g=ie(e.params);return y.agents.spawn(ce(g,"sessionId"),ie(g.input))}case"agents.send":{let g=ie(e.params),m=Ye(g,"classification");if(m!==void 0&&m!=="public"&&m!=="internal"&&m!=="sensitive")throw ge("invalid_params","Invalid Agent message classification.");return await y.agents.send(ce(g,"sessionId"),ce(g,"actorPath"),ce(g,"content"),m),{ok:!0}}case"agents.followup":{let g=ie(e.params),m=$n(g,"expectedRevision");return y.agents.followup(ce(g,"sessionId"),ce(g,"actorPath"),ce(g,"objective"),m===void 0?void 0:{expectedRevision:m})}case"agents.interrupt":{let g=ie(e.params);return await y.agents.interrupt(ce(g,"sessionId"),ce(g,"actorPath"),Ye(g,"reason")),{ok:!0}}case"agents.output":{let g=ie(e.params);return y.agents.output(ce(g,"sessionId"),ce(g,"actorPath"),Ye(g,"turnId"))}case"agents.events":{let g=ie(e.params);return y.agents.events(ce(g,"sessionId"),$n(g,"afterSequence"))}case"agents.wait":{let g=ie(e.params);return y.agents.wait(ce(g,"sessionId"),$n(g,"afterSequence"),$n(g,"timeoutMs"),{signal:v})}case"session.create":return y.sessions.create(Ne(e.params));case"session.load":return y.sessions.load(Ee(e.params,"sessionId"),qn(e.params,v));case"session.list":return y.sessions.list(Ne(e.params));case"session.status":return y.sessions.status(Ee(e.params,"sessionId"));case"session.transcript":{let g=await y.sessions.transcript(Ee(e.params,"sessionId"),qn(e.params,v));if(g!==null&&Buffer.byteLength(JSON.stringify(g),"utf8")>$u)throw ge("invalid_request","Transcript is too large for the legacy endpoint; use session.transcript.page and session.transcript.entryChunk.");return g}case"session.transcript.page":return y.sessions.transcriptPage(ie(e.params),qn(e.params,v));case"session.transcript.entryChunk":return y.sessions.transcriptEntryChunk(ie(e.params),qn(e.params,v));case"session.transcript.search":return y.sessions.transcriptSearch(ie(e.params),qn(e.params,v));case"session.conversation":{let g=await y.sessions.conversation(Ee(e.params,"sessionId"),qn(e.params,v));if(g!==null&&Buffer.byteLength(JSON.stringify(g),"utf8")>$u)throw ge("invalid_request","Conversation history is too large for the direct endpoint; use session.conversation.page and session.conversation.entryChunk.");return g}case"session.conversation.page":return y.sessions.conversationPage(ie(e.params),qn(e.params,v));case"session.conversation.entryChunk":return y.sessions.conversationEntryChunk(ie(e.params),qn(e.params,v));case"session.observe":{let g=Uo(),m=Ee(e.params,"sessionId"),d=await y.sessions.observe(m,I=>s(g,$o(I,x)),qn(e.params,v));if(v.aborted)throw d.close(),ge("read_cancelled","Runtime Session observation was cancelled.");return r(g,d),d.invalidated.then(I=>{try{n.notify?.(_t("observation.invalidated",{subscriptionId:g,sessionId:m,invalidation:I}))}finally{o(g)}}).catch(I=>{fe({source:"runtime.daemon.server",level:"error",message:`Failed to deliver Session observation invalidation for ${m}.`,detail:I})}),{subscriptionId:g,snapshot:Xp(d.snapshot,x)}}case"session.diagnostics":return y.sessions.diagnostics(ie(e.params));case"session.fork":return y.sessions.fork(ie(e.params));case"session.notice.append":return y.sessions.appendNotice(ie(e.params));case"session.rewind":return y.sessions.rewind(ie(e.params));case"session.active_entry.set":case"session.activeEntry.set":return y.sessions.setActiveEntry(ie(e.params));case"session.compact":return y.sessions.compact(ie(e.params));case"session.archive":return await y.sessions.archive(Ee(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await y.sessions.unarchive(Ee(e.params,"sessionId")),{ok:!0};case"session.delete":return await y.sessions.delete(Ee(e.params,"sessionId")),{ok:!0};case"session.settings.get":return y.sessions.getSettings(Ee(e.params,"sessionId"));case"session.settings.getVersioned":return y.sessions.getSettingsVersioned(Ee(e.params,"sessionId"));case"session.autoMode.getStats":return y.sessions.getAutoModeStats(Ee(e.params,"sessionId"));case"session.settings.update":{if(n.requireOperationEnvelope===!0)throw ge("client_upgrade_required","Shared daemon session settings require session.settings.updateVersioned.");let g=ie(e.params);return y.sessions.updateSettings(ce(g,"sessionId"),ie(g.patch))}case"session.settings.updateVersioned":{let g=ie(e.params);return y.sessions.updateSettingsVersioned(ce(g,"sessionId"),ie(g.patch),{expectedRevision:ci(g,"expectedRevision")})}case"run.start":{let g=ie(e.params),m=ce(g,"sessionId"),d=`run_${Date.now().toString(36)}_${zt().replace(/-/g,"").slice(0,8)}`,I=await Uu({params:g,sessionId:m,trustedRunId:d,principalId:u,clientName:l,clientVersion:p,operationId:e.operation?.operationId,reverseBridge:R}),w=await y.runs.start(I);return t.remember(w.runId,w.result),{runId:w.runId,sessionId:w.sessionId,...w.turnId!==void 0?{turnId:w.turnId}:{}}}case"run.input.submit":{let g=ie(e.params),m=ce(g,"sessionId"),d=ce(g,"afterRunId"),I=ce(g,"delivery"),w=await y.runs.get(d);if(w.sessionId!==m)throw ge("conflict",`Runtime continuation target ${d} does not belong to session ${m}.`);if(!$p(w.phase))return{accepted:!1,delivery:I,sessionId:m,afterRunId:d,reason:"stale_run"};if(I==="interrupt"){if(w.phase==="queued")return{accepted:!1,delivery:I,sessionId:m,afterRunId:d,reason:"stale_run"};if(g.credential!==void 0||g.hostTools!==void 0)throw ge("invalid_params","Interrupt input cannot replace active-run credential or host-tool bindings.");let P=`input_${Date.now().toString(36)}_${zt().replace(/-/g,"").slice(0,8)}`;return y.runs.submitInput({...g,sessionId:m,afterRunId:d,delivery:"interrupt",trustedInputId:P,origin:{principalId:u,...l!==void 0?{clientName:l}:{},...p!==void 0?{clientVersion:p}:{},...e.operation?.operationId!==void 0?{operationId:e.operation.operationId}:{}}})}let C=`run_${Date.now().toString(36)}_${zt().replace(/-/g,"").slice(0,8)}`,S=await Uu({params:g,sessionId:m,trustedRunId:C,principalId:u,clientName:l,clientVersion:p,operationId:e.operation?.operationId,reverseBridge:R}),b=await y.runs.submitInput(S);if(b.accepted&&b.delivery==="after_turn"){let P=y.runs.await(b.runId);t.remember(b.runId,P)}return b}case"run.get":return yt(await y.runs.get(Ee(e.params,"runId")),x);case"run.list":return(await y.runs.list(Ne(e.params))).map(g=>yt(g,x));case"run.await":{let g=Ee(e.params,"runId"),m=t.get(g);return m||y.runs.await(g)}case"run.abort":return y.runs.abort(Ee(e.params,"runId"));case"run.model.set":return Vu(y,e.params);case"run.setModel":return Vu(y,e.params);case"run.provider.set":{let g=ie(e.params);return await y.runs.setProvider(ce(g,"runId"),ce(g,"provider")),{ok:!0}}case"run.setProvider":{let g=ie(e.params);return await y.runs.setProvider(ce(g,"runId"),ce(g,"provider")),{ok:!0}}case"run.reasoning.set":return Gu(y,e.params);case"run.setReasoning":return Gu(y,e.params);case"event.subscribe":{let g=Ne(e.params)??{},m=Ne(g.filter);await Yn(y,m?.sessionId);let d=Uo(),I=y.events.subscribe(m??{},w=>{s(d,$o(w,x))});return r(d,I),{subscriptionId:d}}case"event.unsubscribe":return{ok:o(Ee(e.params,"subscriptionId"))};case"event.replay":{let g=Ne(e.params);return await Yn(y,g?.sessionId),Kp(await y.events.replay(g),a()).map(m=>$o(m,x))}case"permission.list":case"permission.listPending":{let g=Ne(e.params);return await Yn(y,g?.sessionId),y.permissions.listPending(g)}case"permission.request":{let g=ie(e.params);return await Yn(y,g.sessionId),y.permissions.request(g)}case"permission.respond":{let g=ie(e.params),m=Ye(g,"runId");return y.permissions.respond(ce(g,"requestId"),ie(g.decision),m!==void 0?{runId:m}:void 0)}case"permission.grants.list":return y.permissions.listGrants();case"permission.grants.revoke":{let g=ie(e.params);return y.permissions.revokeGrant(ce(g,"grantId"),ci(g,"expectedRevision"))}case"user_input.listPending":{let g=Ne(e.params);return await Yn(y,g?.sessionId),y.userInputs.listPending(g)}case"user_input.respond":{let g=ie(e.params),m=$n(g,"expectedRevision"),d=Ye(g,"runId");return y.userInputs.respond(ce(g,"requestId"),g.answer,m!==void 0||d!==void 0?{...m!==void 0?{expectedRevision:m}:{},...d!==void 0?{runId:d}:{}}:void 0)}case"user_input.dismiss":{let g=ie(e.params),m=$n(g,"expectedRevision"),d=Ye(g,"runId");return y.userInputs.dismiss(ce(g,"requestId"),m!==void 0||d!==void 0?{...m!==void 0?{expectedRevision:m}:{},...d!==void 0?{runId:d}:{}}:void 0)}case"credential.register":{let g=ie(e.params);return R.registerCredential({leaseId:ce(g,"leaseId"),providers:rg(g,"providers"),...Ye(g,"expiresAt")!==void 0?{expiresAt:Ye(g,"expiresAt")}:{}})}case"credential.get":return R.getCredential(Ee(e.params,"leaseId"));case"credential.revoke":return R.revokeCredential(Ee(e.params,"leaseId"));case"credential.supply":{let g=ie(e.params);return{ok:R.supplyCredential({requestId:ce(g,"requestId"),...Ye(g,"credential")!==void 0?{credential:Ye(g,"credential")}:{},...Ye(g,"error")!==void 0?{error:Ye(g,"error")}:{}})}}case"host_tool.register":{let g=ie(e.params);return R.registerHostTools({leaseId:ce(g,"leaseId"),tools:ig(g.tools)})}case"host_tool.get":return R.getHostTools(Ee(e.params,"leaseId"));case"host_tool.invocation.get":return R.getHostToolInvocation(Ee(e.params,"invocationId"));case"host_tool.revoke":return R.revokeHostTools(Ee(e.params,"leaseId"));case"host_tool.complete":{let g=ie(e.params);return{ok:R.completeHostTool({invocationId:ce(g,"invocationId"),...g.result!==void 0?{result:ie(g.result)}:{},...Ye(g,"error")!==void 0?{error:Ye(g,"error")}:{}})}}case"workflow.list":return y.workflows.list(Ne(e.params));case"workflow.get":return y.workflows.get(Ee(e.params,"runId"));case"workflow.subscribe":{let g=Ne(e.params)??{},m=Ne(g.filter),d=Uo(),I=y.workflows.subscribe(m??{},w=>{s(d,w)});return r(d,I),{subscriptionId:d}}case"workflow.unsubscribe":return{ok:o(Ee(e.params,"subscriptionId"))};case"workflow.pause":return y.workflows.pause(Ee(e.params,"runId"));case"workflow.resume":return y.workflows.resume(Ee(e.params,"runId"));case"workflow.stop":return y.workflows.stop(Ee(e.params,"runId"));case"learning.list":return Hn(y.learning,u).list(Ne(e.params));case"learning.get":return Hn(y.learning,u).get(Ee(e.params,"nameOrSlug"));case"learning.snapshot":return Hn(y.learning,u).getSnapshot();case"learning.events":return Hn(y.learning,u).events($n(Ne(e.params)??{},"afterRevision"));case"learning.acknowledge":return await Hn(y.learning,u).acknowledge(Ee(e.params,"nameOrSlug")),{ok:!0};case"learning.snooze":{let g=ie(e.params);return await Hn(y.learning,u).snooze(ce(g,"nameOrSlug"),ce(g,"until")),{ok:!0}}case"learning.reject":case"learning.disable":case"learning.rollback":case"learning.review":case"learning.trust":{let g=Hn(y.learning,u),m=Ee(e.params,"nameOrSlug");return e.method==="learning.reject"?await g.reject(m):e.method==="learning.disable"?await g.disable(m):e.method==="learning.rollback"?await g.rollback(m):e.method==="learning.review"?await g.review(m):await g.trust(m),{ok:!0}}case"learning.promote":{let g=ie(e.params),m=ce(g,"scope");if(m!=="user")throw ge("invalid_params","Learning promotion scope must be user.");return await Hn(y.learning,u).promote(ce(g,"nameOrSlug"),m),{ok:!0}}case"context.budget.get":return jo(a()),await Yn(y,Ye(Ne(e.params)??{},"sessionId")),Bo(y,"context.budget.snapshot",Ne(e.params));case"tool.exposure.preview":return jo(a()),await Yn(y,Ye(Ne(e.params)??{},"sessionId")),Bo(y,"tool.exposure.planned",Ne(e.params));case"provider.cache.diagnostics.get":return jo(a()),await Yn(y,Ye(Ne(e.params)??{},"sessionId")),Bo(y,"provider.cache.diagnostics",Ne(e.params));default:throw ge("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}i(qp,"dispatchRuntimeDaemonRequest");async function Uu(e){let n=Ne(e.params.credential),t=Ne(e.params.hostTools),r=n===void 0?void 0:await e.reverseBridge.acquireCredential({leaseId:ce(n,"leaseId"),provider:ce(n,"provider"),sessionId:e.sessionId,runId:e.trustedRunId}),o=t===void 0?void 0:e.reverseBridge.createHostToolRuntime({leaseId:ce(t,"leaseId"),sessionId:e.sessionId,runId:e.trustedRunId}),s=Pt(),a=o===void 0?void 0:s===null?o:og(o,s),u=Ne(e.params.options)??{},l=Ne(u.context),p=l===void 0?u:{...u,context:Object.fromEntries(Object.entries(l).filter(([R])=>R!=="configHome"&&R!=="memoryIdentity"))};return{...e.params,sessionId:e.sessionId,trustedRunId:e.trustedRunId,origin:{principalId:e.principalId,...e.clientName!==void 0?{clientName:e.clientName}:{},...e.clientVersion!==void 0?{clientVersion:e.clientVersion}:{},...e.operationId!==void 0?{operationId:e.operationId}:{}},...r!==void 0?{providerCredential:r}:{},...n!==void 0?{providerCredentialProvider:ce(n,"provider")}:{},...e.params.options!==void 0||a!==void 0?{options:{...p,...a===void 0?{}:{extensionRuntime:a}}}:{}}}i(Uu,"bindTrustedRunInput");function $p(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"}i($p,"isActiveRuntimeRunPhase");function jp(e){return on(e)?{...e.richEvents===!0?{richEvents:!0}:{},...e.permissionPrompts===!0?{permissionPrompts:!0}:{},...e.configAdmin===!0?{configAdmin:!0}:{},...e.commandCatalog===!0?{commandCatalog:!0}:{},...e.skillCatalog===!0?{skillCatalog:!0}:{},...e.artifactUpload===!0?{artifactUpload:!0}:{},...e.contextDiagnostics===!0?{contextDiagnostics:!0}:{},...e.operationDeduplication===!0?{operationDeduplication:!0}:{}}:{}}i(jp,"parseRuntimeClientCapabilities");function zu(e={},n=!1,t=!1,r=!1,o,s=!1,a=!1,u=!1,l=!1,p=!1){let R={...e};delete R.externalAgents,delete R.externalAgentAdmin,delete R.a2aConfigReconciler,delete R.actorControlPlane,delete R.integrationConfigResilience,delete R.managedRunDurability,delete R.daemonOrphanExit,delete R.runtimeEventCoalescing,delete R.runtimeAutoModeGuardrail,delete R.sandboxRuntime,delete R.runLifecycleControl;let v=Fo();return{events:!0,permissions:!0,workflows:!0,configAdmin:!0,commandCatalog:!0,skillCatalog:!0,artifactUpload:!0,contextDiagnostics:!0,hardDispose:!1,externalAgents:n,actorControlPlane:{version:1,methodNamespace:"agents"},sandboxRuntime:$r(),managedRunDurability:{version:1,initialInputBeforeExecution:!0,completedTurnBeforeEvent:!0,deliveredInputBeforeEvent:!0,persistenceFailure:"fail_closed"},...p?{runtimeEventCoalescing:{version:1}}:{},runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:Hr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...l?{daemonOrphanExit:{version:1,idleOnly:!0,bootstrapGrace:!0}}:{},...t?{externalAgentAdmin:{version:1,activation:!0,conditionalMutations:!0,managementOwner:!0}}:{},...r?{a2aConfigReconciler:{version:1}}:{},...o!==void 0?{operationDeduplication:{version:1,retentionMs:Number.MAX_SAFE_INTEGER},journalEpoch:o.journalEpoch,controlHealth:o.health}:{},sessionObservation:{version:1,maxBufferedEvents:256},sessionAdmission:{version:1,surfaces:Dp,legacySurface:!0,partnerDenied:!0},completeObservationSnapshot:{version:1,transcriptRevision:!0,managedTasks:!0,queuedInputs:!0},connectionLifecycle:{version:1},runLifecycleControl:{version:1,structuredStopReceipt:!0,protocolCancellation:!0,responseAcknowledgement:!0},typedRuntimeEvents:{version:1},daemonSafeRunInput:{version:1},integrationConfigResilience:{version:1,isolatedFailure:!0,legacySourceWatching:!0,lastKnownGood:!0,healthProjection:!0},...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:a,permissionGrants:!0,daemonPreflight:!0,terminalAcknowledgement:!1,terminalAcknowledgementOwner:"client"}}:{},afterTurnInput:{version:1},interruptInput:{version:1,availability:"per_run"},contextCompaction:{version:3,alwaysOn:!0,absoluteThreshold:!0,contextIdentity:!0,canonicalFinishedEvent:!0,durableBeforeEvict:!0,exactHistoryRecovery:!0},transcriptPaging:{version:1,maxPageBytes:512*1024},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},conversationHistory:{version:1,immutablePaging:!0,revisionedBoundaries:!0,ambiguityReporting:!0},learningCenter:{version:1},skillLearningLoop:{version:1,activation:"project_scoped_canary",immutableDecisions:!0,recordGatedDiscovery:!0,exactUseAttribution:!0,rollback:!0},askUserTransport:{version:1},permissionCas:{version:1},providerCredentialBroker:{version:1,registrationConnectionBound:!s,stableClientResume:s,runtimeRestartExpiresLease:!0,acquiredCredentialSurvivesDisconnect:!0,requestTimeoutMs:v.callTimeoutMs},runBoundHostTools:{version:1,registrationConnectionBound:!s,stableClientResume:s,invocationStatusQuery:s,invocationReplay:!1,invocationTimeoutMs:v.callTimeoutMs,maxResultBytes:v.maxResultBytes},coderOwnerFencing:{version:1},crashOutcomeModel:{version:1},coderFeatureMatrix:{version:1,managedRun:!0,transcriptSessions:!0,todoProjection:!0,managedTasks:!0,workflow:!0,mcp:!0,referenceExternalAgent:n,memory:!0,runtimeArtifacts:!0},...R}}i(zu,"runtimeDaemonCapabilities");function Wu(e){let n=e.capabilities?.runtimeEventCoalescing;return on(n)&&typeof n.version=="number"&&n.version>=1}i(Wu,"runtimeImplementsEventCoalescing");function Bp(e){return e?{...e}:{}}i(Bp,"publicOperationReceipt");function di(e){if(!e.agents.enabled)throw ge("method_not_found","Runtime external agent executor plane is not enabled.")}i(di,"requireExternalAgentsEnabled");function ui(e){if(e.allowAgentRegistrationAdmin!==!0)throw ge("permission_denied","Runtime daemon host denied Agent registration administration.")}i(ui,"requireAgentRegistrationAdmin");function Kp(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!nc(t))}i(Kp,"filterReplayForClientCapabilities");async function Yn(e,n){n!==void 0&&await e.sessions.transcript(n)}i(Yn,"assertAdmittedSessionId");function Xp(e,n){return{...e,runs:e.runs.map(t=>yt(t,n))}}i(Xp,"augmentObservationRunRequirements");function Up(e,n){return!on(e)||!Array.isArray(e.runs)?e:{...e,runs:e.runs.map(t=>ec(t)?yt(t,n):t)}}i(Up,"augmentStatusRunRequirements");function zp(e,n){return{...e,activeRuns:e.activeRuns.map(t=>yt(t,n)),queuedRuns:e.queuedRuns.map(t=>yt(t,n))}}i(zp,"augmentPreflightRunRequirements");function $o(e,n){return ec(e.payload)?{...e,payload:yt(e.payload,n)}:e}i($o,"augmentRuntimeEventRequirements");function yt(e,n){let t=n?.getRunRequirements(e.runId);return t===void 0?e:Wp(e.phase)?{...e,requirements:{...t.credential!==void 0?{credential:{...t.credential,state:"terminal"}}:{},...t.hostTools!==void 0?{hostTools:{...t.hostTools,state:"terminal"}}:{}}}:{...e,requirements:t}}i(yt,"augmentRunRequirements");function ec(e){return on(e)&&typeof e.runId=="string"&&typeof e.sessionId=="string"&&typeof e.phase=="string"&&typeof e.startedAt=="string"&&typeof e.provider=="string"}i(ec,"isRuntimeRunStatus");function Wp(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(Wp,"isTerminalRuntimeRunPhase");function jo(e){if(e.contextDiagnostics!==!0)throw ge("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}i(jo,"requireContextDiagnosticsCapability");function nc(e){return on(e)?e.type==="context.budget.snapshot"||e.type==="provider.cache.diagnostics"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}i(nc,"isContextDiagnosticRuntimeEvent");async function Bo(e,n,t){let r=t??{},o=r.contextKind==="root"||r.contextKind==="child"?r.contextKind:typeof r.agentId=="string"?void 0:"root",s=typeof r.agentId=="string"?r.agentId:void 0,a=o==="child"||s!==void 0,u={type:n,...!a&&typeof r.sessionId=="string"?{sessionId:r.sessionId}:{},...typeof r.runId=="string"?{runId:r.runId}:{}};return[...await e.events.replay(u)].reverse().find(R=>{let v=R.payload;if(v===null||typeof v!="object"||Array.isArray(v))return o===void 0&&s===void 0;let y=v,x=y.contextKind==="child"?"child":"root";if(o!==void 0&&x!==o||s!==void 0&&y.agentId!==s)return!1;if(!a||typeof r.sessionId!="string")return!0;let g=`${r.sessionId}/agent/`;return typeof y.contextId!="string"?!1:s===void 0?y.contextId.startsWith(g):y.contextId===`${g}${encodeURIComponent(s)}`})?.payload??null}i(Bo,"latestRuntimeDiagnosticPayload");async function Vu(e,n){let t=ie(n);return await e.runs.setModel(ce(t,"runId"),Ye(t,"model")),{ok:!0}}i(Vu,"setRunModel");async function Gu(e,n){let t=ie(n);return await e.runs.setReasoning(ce(t,"runId"),Ye(t,"reasoning")),{ok:!0}}i(Gu,"setRunReasoning");function Vp(e,n){let t=Array.isArray(e)?e:[],r=typeof n?.provider=="string"?n.provider:void 0;if(r!==void 0){let o=t.find(s=>on(s)&&s.name===r);return on(o)?{provider:r,models:Array.isArray(o.models)?o.models:[]}:{provider:r,models:[]}}return t.flatMap(o=>!on(o)||typeof o.name!="string"?[]:[{provider:o.name,models:Array.isArray(o.models)?o.models:[]}])}i(Vp,"listRuntimeModels");function zo(e){return Array.isArray(e)?e.map(n=>zo(n)):on(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Gp(n)?"[redacted]":zo(t)])):e}i(zo,"redactRuntimeConfig");function Gp(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(Gp,"isSensitiveConfigKey");function Ne(e){if(e!==void 0)return ie(e)}i(Ne,"optionalRecord");function tc(e,n){return ie(e[n])}i(tc,"requireRecordField");function Jp(e){let n=Ne(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}i(Jp,"parseModelListFilter");function Yp(e){let n=Ne(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}i(Yp,"parseMcpToolListFilter");function Qp(e){let n=Ne(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}i(Qp,"parseSkillListFilter");function Zp(e){let n=ie(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw ge("invalid_request","Expected artifact kind: image | file | video");let r=ce(n,"path");return{kind:t,path:r,...typeof n.mediaType=="string"?{mediaType:n.mediaType}:{},...typeof n.mimeType=="string"?{mimeType:n.mimeType}:{},...typeof n.name=="string"?{name:n.name}:{},...eg(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}i(Zp,"parseArtifactCreateInput");function eg(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}i(eg,"isRuntimeArtifactSource");function ng(e){return on(e)&&typeof e.name=="string"&&e.name.length>0?e.name:void 0}i(ng,"parseRuntimeClientName");function tg(e){return on(e)&&typeof e.version=="string"&&e.version.length>0?e.version:void 0}i(tg,"parseRuntimeClientVersion");function rg(e,n){let t=e[n];if(!Array.isArray(t)||t.some(r=>typeof r!="string"||r.length===0))throw ge("invalid_request",`Expected string array param: ${n}`);return t}i(rg,"requireStringArrayField");function ig(e){if(!Array.isArray(e))throw ge("invalid_request","Expected host tool descriptors array.");return e.map(n=>{let t=ie(n),r=ce(t,"sideEffect");if(r!=="none"&&r!=="idempotent"&&r!=="non_idempotent")throw ge("invalid_request",`Invalid host tool sideEffect: ${r}`);return{name:ce(t,"name"),description:ce(t,"description"),inputSchema:tc(t,"inputSchema"),sideEffect:r}})}i(ig,"parseRuntimeHostToolDescriptors");function og(e,n){return{hasCapabilityProvider(t){return e.hasCapabilityProvider?.(t)===!0||n.hasCapabilityProvider?.(t)===!0},async searchCapabilities(t,r,o){let[s,a]=await Promise.all([e.searchCapabilities(t,r,o),n.searchCapabilities(t,r,o)]),u=[...s,...a];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(og,"mergeExtensionRuntimeContracts");function on(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(on,"isRecord");function ie(e){if(!e||typeof e!="object"||Array.isArray(e))throw ge("invalid_request","Expected params to be an object.");return e}i(ie,"requireRecord");function Ee(e,n){return ce(ie(e),n)}i(Ee,"requireStringParam");function ce(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw ge("invalid_request",`Expected string param: ${n}`);return t}i(ce,"requireStringField");function sg(e,n){let t=e[n];if(typeof t!="boolean")throw ge("invalid_request",`Expected boolean param: ${n}`);return t}i(sg,"requireBooleanField");function Ye(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw ge("invalid_request",`Expected optional string param: ${n}`);return t}}i(Ye,"optionalStringField");function Ko(e){let n=e.expectedConfigurationRevision;if(n==null)return n;if(typeof n!="string"||n.length===0)throw ge("invalid_request","Expected optional string or null param: expectedConfigurationRevision");return n}i(Ko,"optionalExpectedConfigurationRevision");function Xo(e){let n=e.expectedManagementOwner;if(n==null)return n;if(typeof n!="string"||n.length===0)throw ge("invalid_request","Expected optional string or null param: expectedManagementOwner");return n}i(Xo,"optionalExpectedManagementOwner");function $n(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw ge("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}i($n,"optionalIntegerField");function qn(e,n){let t=$n(ie(e),"timeoutMs");return{signal:n,...t===void 0?{}:{timeoutMs:t}}}i(qn,"runtimeReadOptions");function ci(e,n){let t=$n(e,n);if(t===void 0)throw ge("invalid_request",`Expected non-negative integer param: ${n}`);return t}i(ci,"requireIntegerField");function ge(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(ge,"daemonError");function Uo(){return`sub_${zt().replace(/-/g,"").slice(0,12)}`}i(Uo,"createSubscriptionId");function Ju(e,n,t,r){let o=Xt(ai[e][n],t,n);if(o.length!==0)throw ge(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:o})}i(Ju,"validateDaemonMethodValue");function ag(e,n){return n===void 0?null:e!=="run.await"||!on(n)||!(n.error instanceof Error)?n:{...n,error:{name:n.error.name,message:n.error.message,...n.error.stack!==void 0?{stack:n.error.stack}:{}}}}i(ag,"serializeRuntimeDaemonMethodResult");function dg(e){if(e instanceof Error&&"code"in e&&e.code==="revision_conflict"){let n=e;return{code:"conflict",message:e.message,data:{conflict:"revision_conflict",expectedRevision:n.expectedRevision,currentRevision:n.currentRevision}}}if(e instanceof pa)return{code:"conflict",message:e.message,data:{agentId:e.agentId,conflict:e.code}};if(e instanceof Error){let n=e;return{code:typeof n.code=="string"&&ug(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}i(dg,"normalizeRuntimeDaemonError");function ug(e){return e==="invalid_frame"||e==="invalid_request"||e==="invalid_params"||e==="not_initialized"||e==="method_not_found"||e==="unauthorized"||e==="permission_denied"||e==="conflict"||e==="not_found"||e==="session_not_admitted"||e==="cancelled"||e==="overloaded"||e==="client_upgrade_required"||e==="operation_required"||e==="operation_epoch_mismatch"||e==="operation_id_reuse"||e==="operation_interrupted"||e==="operation_unknown"||e==="control_history_untrusted"||e==="resync_required"||e==="read_timeout"||e==="read_cancelled"||e==="data_changed"||e==="observation_invalidated"||e==="runtime_changed"||e==="data_corrupt"||e==="version_incompatible"||e==="credential_unavailable"||e==="host_tool_unavailable"||e==="host_tool_unknown"||e==="internal_error"}i(ug,"isRuntimeDaemonErrorCode");import{createHash as cg,randomUUID as oc}from"node:crypto";import*as ze from"node:fs";import rc from"node:path";var kn=class extends Error{static{i(this,"RuntimeControlJournalError")}code;constructor(n,t){super(t),this.name="RuntimeControlJournalError",this.code=n}};function sc(e){ze.mkdirSync(e.rootDir,{recursive:!0});let n=rc.join(e.rootDir,"journal-meta.json"),t=rc.join(e.rootDir,"control.jsonl"),r=hg(n),o=r.meta,s=Rg(t),a=s.records,u=new Map,l=s.trusted&&r.trusted?"healthy":"control_history_untrusted";return l==="healthy"&&yg(a,t),{journalEpoch:o.journalEpoch,get health(){return l},execute(p,R,v){if(l!=="healthy")return Promise.reject(new kn("control_history_untrusted","Runtime control history is untrusted; mutations are quarantined."));try{gg(p,o.journalEpoch);let y=vg(p.params),x=a.get(p.operationId);if(x){pg(x,p,y);let m=u.get(p.operationId);return m||fg(x)}let g=lg(t,a,p,y,R.externalEffect===!0,v,()=>{l="control_history_untrusted"});return u.set(p.operationId,g),g.finally(()=>u.delete(p.operationId)).catch(()=>{}),g}catch(y){return Promise.reject(y)}},get(p){return a.get(p)}}}i(sc,"createRuntimeControlJournal");async function lg(e,n,t,r,o,s,a){let u=mg(t,r,"accepted");ac(e,u),n.set(t.operationId,u),o&&li(e,n,u,"dispatched");let l;try{l=await s()}catch(p){let R=Sg(p);try{li(e,n,u,"rejected",{error:R})}catch{a()}throw p}try{return li(e,n,u,"applied",{result:l}).result}catch{throw a(),n.set(t.operationId,{...u,state:"unknown",updatedAt:new Date().toISOString()}),new kn("operation_unknown","Runtime operation completed but its durable outcome could not be recorded.")}}i(lg,"executeNewOperation");function li(e,n,t,r,o={}){let s={type:"operation",...t,state:r,...o,updatedAt:new Date().toISOString()};return ac(e,s),n.set(s.operationId,s),s}i(li,"updateOperation");function mg(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(mg,"operationRecord");function fg(e){if(e.state==="applied")return Promise.resolve(e.result);if(e.state==="rejected")return Promise.reject(new kn(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 kn(n,`Runtime operation is ${e.state}; it will not be replayed.`))}i(fg,"replayOperation");function pg(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 kn("operation_id_reuse","Runtime operation ID was already used for a different request or principal.")}i(pg,"assertMatchingOperation");function gg(e,n){if(e.journalEpoch!==n)throw new kn("operation_epoch_mismatch","Runtime operation belongs to a different control journal epoch.");if(!/^[A-Za-z0-9_.:-]{4,160}$/.test(e.operationId))throw new kn("invalid_operation_id","Runtime operation ID is invalid.");if(e.principalId.length===0||e.method.length===0)throw new kn("invalid_operation","Runtime operation identity is incomplete.")}i(gg,"validateOperationInput");function yg(e,n){for(let t of[...e.values()])t.state!=="accepted"&&t.state!=="dispatched"||li(n,e,t,t.state==="dispatched"?"unknown":"interrupted")}i(yg,"recoverUnfinished");function Rg(e){let n=new Map;if(!ze.existsSync(e))return{trusted:!0,records:n};let t=ze.readFileSync(e,"utf8").split(/\r?\n/);for(let r of t)if(r.length!==0)try{let o=JSON.parse(r);if(!kg(o))return{trusted:!1,records:n};n.set(o.operationId,o)}catch{return{trusted:!1,records:n}}return{trusted:!0,records:n}}i(Rg,"loadOperationRecords");function hg(e){if(ze.existsSync(e)){try{let t=JSON.parse(ze.readFileSync(e,"utf8"));if(Ig(t))return{meta:t,trusted:!0}}catch{}return{meta:ic(),trusted:!1}}let n=ic();return wg(e,n),{meta:n,trusted:!0}}i(hg,"loadOrCreateMeta");function ic(){return{version:1,journalEpoch:`je_${oc().replace(/-/g,"")}`,createdAt:new Date().toISOString()}}i(ic,"createJournalMeta");function ac(e,n){let t=`${JSON.stringify(n)}
22
+ `,r=ze.openSync(e,"a",384);try{ze.writeFileSync(r,t,"utf8"),ze.fsyncSync(r)}finally{ze.closeSync(r)}}i(ac,"appendRecord");function wg(e,n){let t=`${e}.${process.pid}.${oc()}.tmp`,r=ze.openSync(t,"wx",384);try{ze.writeFileSync(r,`${JSON.stringify(n,null,2)}
23
+ `,"utf8"),ze.fsyncSync(r)}finally{ze.closeSync(r)}ze.renameSync(t,e)}i(wg,"writeJsonAtomic");function vg(e){return cg("sha256").update(Vo(e)).digest("hex")}i(vg,"digestCanonical");function Vo(e){if(e===null||typeof e=="boolean"||typeof e=="string")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new kn("invalid_operation","Operation contains a non-finite number.");return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(Vo).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)}:${Vo(n[r])}`).join(",")}}`}throw new kn("invalid_operation","Operation contains a non-JSON value.")}i(Vo,"canonicalJson");function Sg(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(Sg,"normalizeOperationError");function Ig(e){return dc(e)?e.version===1&&typeof e.journalEpoch=="string"&&typeof e.createdAt=="string":!1}i(Ig,"isJournalMeta");function kg(e){return dc(e)?e.type==="operation"&&typeof e.operationId=="string"&&typeof e.journalEpoch=="string"&&typeof e.principalId=="string"&&typeof e.method=="string"&&typeof e.requestDigest=="string"&&bg(e.state)&&typeof e.updatedAt=="string":!1}i(kg,"isOperationRecord");function bg(e){return e==="accepted"||e==="dispatched"||e==="applied"||e==="rejected"||e==="interrupted"||e==="unknown"}i(bg,"isOperationState");function dc(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}i(dc,"isRecord");function uc(e){return new Go(e)}i(uc,"createRuntimeDaemonManagementController");var Go=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 gn("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 gn("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 Pg(r,this.clients.size)}throw gn("conflict","Runtime state changed while daemon preflight was being read.")}async inspect(){for(let n=0;n<8;n+=1){let t=this.revision,r=await this.preflight();if(t!==this.revision)continue;let o=Ue(this.input.paths.lockFile);if(o===void 0||o.runtimeId!==this.input.runtime.identity.runtimeId||o.kind!=="daemon")throw gn("conflict","Runtime daemon owner fence changed during inspection.");return{runtimeId:this.input.runtime.identity.runtimeId,revision:t,ownerPolicy:Sn(this.input.paths),owner:o,preflight:r,...this.input.integrationStatuses?{integrations:Eg(this.input.integrationStatuses())}:{}}}throw gn("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 gn("conflict","Runtime daemon instance changed before rollback commit.");this.beginDraining(n.expectedRevision);try{await this.assertStoppable(n.expectedRevision);let t=Jd(this.input.paths,n.expectedRuntimeId,n.expectedOwnerPolicyRevision);if(t.mode!=="inline")throw gn("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 gn("conflict","Runtime daemon management is closed.");if(this.draining)throw gn("conflict","Runtime daemon is already draining.");if(n!==void 0&&this.revision!==n)throw gn("conflict",`Runtime daemon management revision changed: expected ${n}, current ${this.revision}.`);if(this.activeMutations>0)throw gn("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 gn("conflict",`Runtime daemon state changed before stop commit: expected ${n}, current ${this.revision}.`);if(!t.canStop)throw gn("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{pn(this.input.paths,n,t,r)}catch{}}};function Eg(e){let n=structuredClone(e);return{state:n.some(t=>t.diagnostic!==void 0)?"degraded":"healthy",domains:n}}i(Eg,"integrationHealth");function Pg(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(Pg,"withLogicalClients");function gn(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}i(gn,"managementError");async function mc(e){fn(e.paths);let n=Qd();Zd(e.paths,n);let t=mi(e,"starting");Ft(e.paths,t),pn(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Bs(P=>{xg(e.paths,P)}),o,s,a=!1,u=i(()=>{if(s===void 0){a=!0;return}s()},"requestStop"),l=Wo(),p=sc({rootDir:cc.join(e.paths.rootDir,"control")}),R=qu({invocationStateFile:cc.join(e.paths.rootDir,"host-tool-invocations.json")}),v=uc({runtime:e.runtime,paths:e.paths,requestStop:u,...e.orphanExitMs!==void 0?{orphanExitMs:e.orphanExitMs}:{},...e.integrationStatuses?{integrationStatuses:e.integrationStatuses}:{}}),y;try{o=await cu({endpoint:e.endpoint,createDispatcher:i(T=>Zu({runtime:e.runtime,authToken:n,...e.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},...e.orphanExitMs!==void 0?{orphanExitEnabled:!0}:{},allowAgentRegistrationAdmin:!0,notify:T,runResults:l,controlJournal:p,reverseBridgeHub:R,management:v,durableHostToolInvocations:!0,requireOperationEnvelope:!0,logs:i(()=>({logFile:e.paths.logFile,entries:eu(e.paths)}),"logs")}),"createDispatcher")});let P=process.env.KODAX_INTERNAL_DAEMON_TEST_READY_DELAY_MS;P!==void 0&&await Cg(P),y=mi(e,"ready"),Ft(e.paths,y),v.armOrphanExitAfterReady(),pn(e.paths,"info","Runtime daemon ready.",{runtimeId:y.runtimeId,endpoint:y.endpoint})}catch(P){pn(e.paths,"error","Runtime daemon failed to start.",{error:bn(P).message});let T=!0;try{await o?.close()}catch(D){T=!1,pn(e.paths,"error","Runtime daemon transport cleanup failed.",{error:bn(D).message})}throw v.close(),l.clear(),R.close(),r(),T?await lc(e.paths,e.lock):Ft(e.paths,{...t,status:"unhealthy",lastError:"Runtime daemon transport cleanup failed."}),P}let x=!1,g,m=!1,d=!1,I=!1,w=!1,C,S=new Promise(P=>{C=P}),b=i(()=>{if(x)return Promise.resolve();if(g)return g;let P=(async()=>{let T=[];if(!w)try{Ft(e.paths,mi(e,"stopping")),pn(e.paths,"info","Runtime daemon stopping.")}catch(D){T.push(`state transition: ${bn(D).message}`)}if(!m)try{await o?.close(),m=!0}catch(D){T.push(`transport close: ${bn(D).message}`)}if(d||(v.close(),R.close(),l.clear(),d=!0),!I)try{await e.runtime.close(),I=!0}catch(D){T.push(`Runtime close: ${bn(D).message}`)}try{pn(e.paths,"info","Runtime daemon host stopped.")}catch(D){T.push(`stop log: ${bn(D).message}`)}if(r(),m&&I&&!w){let D=await lc(e.paths,e.lock),q=Ue(e.lock.file),re=q?.runtimeId===e.lock.owner.runtimeId&&q.pid===e.lock.owner.pid&&q.createdAt===e.lock.owner.createdAt;!D&&re?T.push("owner release: the daemon still owns its profile lock"):w=!0}else if(!m||!I)try{Ft(e.paths,{...mi(e,"unhealthy"),lastError:T.join("; ")})}catch(D){T.push(`unhealthy state: ${bn(D).message}`)}if(T.length>0){try{pn(e.paths,"error","Runtime daemon host stopped with cleanup failures.",{failures:T})}catch(D){T.push(`failure log: ${bn(D).message}`)}throw new Error(`Runtime daemon cleanup failed: ${T.join("; ")}`)}x=!0,C?.()})();return g=P,P.finally(()=>{g===P&&(g=void 0),r()}).catch(()=>{}),P},"closeHost");return s=i(()=>{try{pn(e.paths,"info","Runtime daemon stop requested.")}catch(T){fe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon stop request could not be logged.",detail:bn(T)})}setTimeout(()=>{b().catch(T=>{fe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon shutdown failed.",detail:bn(T)})})},0).unref?.()},"scheduleStop"),a&&s(),{endpoint:e.endpoint,state:y,closed:S,unref(){o?.unref()},close:b}}i(mc,"startRuntimeDaemonHost");async function lc(e,n){for(let t=0;t<50;t+=1){try{if(ru(e,n))return!0}catch(o){fe({source:"runtime.daemon.host",level:"warn",message:"Runtime daemon ownership release attempt failed.",detail:bn(o)})}let r=Ue(n.file);if(r===void 0||r.runtimeId!==n.owner.runtimeId||r.pid!==n.owner.pid||r.createdAt!==n.owner.createdAt||r.kind!==n.owner.kind)return!1;await new Promise(o=>{setTimeout(o,10)})}try{pn(e,"error","Runtime daemon ownership release timed out.")}catch(t){fe({source:"runtime.daemon.host",level:"error",message:"Runtime daemon ownership release timed out and could not be logged.",detail:bn(t)})}return!1}i(lc,"releaseHostOwnership");function xg(e,n){try{pn(e,n.level==="error"?"error":n.level==="warn"?"warn":"info",`[${n.source}] ${n.message}`,{level:n.level,source:n.source,...n.detail!==void 0?{detail:n.detail}:{}})}catch{}}i(xg,"appendRuntimeDiagnostic");function mi(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(mi,"createHostState");async function Cg(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(Cg,"delayInternalDaemonReadyForTest");function bn(e){return e instanceof Error?e:new Error(String(e))}i(bn,"normalizeHostError");async function fc(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=Dg(e.homeDir),r=Jo.resolve(e.configHome??Jo.join(t,".kodax")),o=ut(r,n);ii(o);let s=e.endpoint??Kt(n,Ht(t,r)),a={runtimeId:`rt_${Ag().replace(/-/g,"").slice(0,12)}`,pid:process.pid,createdAt:new Date().toISOString(),kind:"daemon"},u=await _o(o,a,e.healthCheck);if(u.kind==="attach"){let l=ft(u.state);return gc(o,l,e.connectTimeoutMs)}if(u.kind==="wait")return Mg(o,s,a,{...e,profile:n});if(u.kind==="unhealthy")throw new Error(`Runtime daemon is ${u.health}; refusing to take ownership.`);return pc(o,s,a,u.lock,e)}i(fc,"acquireRuntimeDaemonLease");function Dg(e){return Jo.resolve(e??Tg.homedir())}i(Dg,"resolveRuntimeDaemonHomeDir");async function Mg(e,n,t,r){let o=Date.now()+(r.startupTimeoutMs??5e3);for(;Date.now()<=o;){let s=await _o(e,t,r.healthCheck);if(s.kind==="attach")return gc(e,ft(s.state),r.connectTimeoutMs);if(s.kind==="claim")return pc(e,n,t,s.lock,r);if(s.kind==="unhealthy")throw new Error(`Runtime daemon is ${s.health}; refusing to take ownership.`);await Og(r.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${r.profile}" to become ready.`)}i(Mg,"waitForDaemonLease");async function pc(e,n,t,r,o){let s,a=!1;try{if(s=await o.createRuntime(t.runtimeId),s.identity.runtimeId!==t.runtimeId)throw new Error("Runtime factory returned an identity that does not match its owner fence.");a=!0;let u=await mc({runtime:s,paths:e,endpoint:n,lock:r,...o.orphanExitMs!==void 0?{orphanExitMs:o.orphanExitMs}:{},...o.ownsA2AConfigReconciler===!0?{ownsA2AConfigReconciler:!0}:{},...o.integrationStatuses?{integrationStatuses:o.integrationStatuses}:{}});try{let l=await Fn(n,{connectTimeoutMs:o.connectTimeoutMs});return _g(e,n,l,u)}catch(l){throw await u.close(),l}}catch(u){throw a||oi(r),await s?.close(),u}}i(pc,"createClaimedDaemonLease");async function gc(e,n,t){let r=await Fn(n,{connectTimeoutMs:t}),o=!1,s,a=!1,u,l=i(()=>{if(o)return Promise.resolve();if(s)return s;let p=Promise.resolve(r.close?.()).then(()=>{o=!0});return s=p,p.finally(()=>{s===p&&(s=void 0)}).catch(()=>{}),p},"closeTransport");return{transport:r,endpoint:n,paths:e,ownsHost:!1,close:l,shutdown(){if(u)return u;let p=(async()=>{a||(await r.request("runtime.shutdown"),a=!0),await l()})();return u=p,p.finally(()=>{u===p&&(u=void 0)}).catch(()=>{}),p}}}i(gc,"createAttachedLease");function _g(e,n,t,r){r.unref();let o=!1,s=!1,a,u;return{transport:t,endpoint:n,paths:e,ownsHost:!0,hostClosed:r.closed,close(){if(o)return Promise.resolve();if(a)return a;let l=Promise.resolve(t.close?.()).then(()=>{o=!0});return a=l,l.finally(()=>{a===l&&(a=void 0)}).catch(()=>{}),l},shutdown(){if(s)return Promise.resolve();if(u)return u;let l=r.close().then(()=>{s=!0});return u=l,l.finally(()=>{u===l&&(u=void 0)}).catch(()=>{}),l}}}i(_g,"createOwnedLease");function Og(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}i(Og,"delay");import{spawn as Ng}from"node:child_process";import{appendFileSync as nS,closeSync as vc,existsSync as fi,ftruncateSync as Lg,openSync as Sc,readSync as Hg,renameSync as Fg,statSync as Ic,unlinkSync as qg,writeSync as $g}from"node:fs";import{fileURLToPath as jg}from"node:url";import Bg from"node:os";import yn from"node:path";var pi=class extends Error{constructor(t){super(`Runtime daemon child ${t??"unknown"} process-tree cleanup could not be verified.`);this.pid=t;this.name="RuntimeDaemonProcessCleanupIncompleteError"}pid;static{i(this,"RuntimeDaemonProcessCleanupIncompleteError")}code="process_tree_cleanup_incomplete"},yc=1e3,kc=256*1024;function yi(e){return yn.join(e.rootDir,"bootstrap.log")}i(yi,"runtimeDaemonBootstrapLogPath");function Kg(e,n=kc){fn(e);let t=yi(e),r=Math.max(1,n),o=`${t}.1`;return Yo(o,r),fi(t)&&Ic(t).size>=r&&(Yo(t,r),fi(o)&&qg(o),Fg(t,o)),Sc(t,"a",384)}i(Kg,"openRuntimeDaemonBootstrapLog");function Xg(e,n=kc){Yo(yi(e),Math.max(1,n))}i(Xg,"capRuntimeDaemonBootstrapLog");function Yo(e,n){if(!fi(e))return;let t=Ic(e).size;if(t<=n)return;let r=Sc(e,"r+");try{let o=Buffer.allocUnsafe(n),s=0;for(;s<o.length;){let a=Hg(r,o,s,o.length-s,t-n+s);if(a===0)break;s+=a}Lg(r,0),s>0&&$g(r,o,0,s,0)}finally{vc(r)}}i(Yo,"capFileToTail");var jn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function bc(e){if(e.orphanExitMs!==void 0&&(!Number.isSafeInteger(e.orphanExitMs)||e.orphanExitMs<=0))throw new Error("orphanExitMs must be a positive safe integer.");let n=e.profile??"default",t=yn.resolve(e.homeDir??Bg.homedir()),r=yn.resolve(e.configHome??yn.join(t,".kodax")),o=ut(r,n);ii(o);let s=Kt(o.profile,Ht(t,r));if(e.endpoint&&e.endpoint.path!==s.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let a=await Rr(o,e.healthCheck),u=qt(a);if(u==="healthy"&&a.state){let v=a.state.status==="ready"?{...a,state:a.state}:await zg(o,e,a);return Rc(o,ft(v.state),!1,e)}if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let l=await Jg({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.orphanExitMs}),p=await Ug(o,e,l),R=ft(p.state);return Rc(o,R,p.state.pid===l.pid,e)}i(bc,"acquireRuntimeDaemonProcessLease");async function Rc(e,n,t,r){let o=await Fn(n,{connectTimeoutMs:r.connectTimeoutMs}),s=!1,a,u=!1,l,p=i(()=>{if(s)return Promise.resolve();if(a)return a;let R=(async()=>{await o.close?.(),s=!0})();return a=R,R.finally(()=>{a===R&&(a=void 0)}).catch(()=>{}),R},"closeTransport");return{transport:o,endpoint:n,paths:e,ownsHost:t,close:p,shutdown(){if(l)return l;let R=(async()=>{u||(await o.request("runtime.shutdown"),u=!0),await p()})();return l=R,R.finally(()=>{l===R&&(l=void 0)}).catch(()=>{}),R}}}i(Rc,"connectProcessLease");async function Ug(e,n,t,r=Rr){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let s=await Wg(e,n,t,r),a=qt(s);if(a==="healthy"&&s.state?.status==="ready")return s.state.pid===t.pid?t.unref():await Yg(t),{...s,state:s.state};if(a==="mismatch")throw new jn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=o-Date.now();if(u<=0)throw Pc(e);await Vg(Math.min(Math.max(1,n.pollIntervalMs??100),u),e,t,n.startupSignal)}}catch(s){try{await t.terminate()}catch(a){throw new AggregateError([s,a],"Runtime daemon startup failed and its child process could not be reclaimed.")}try{Xg(e)}catch{}throw s}}i(Ug,"waitForHealthyDaemonStartup");async function zg(e,n,t,r=Rr){let o=Date.now()+(n.startupTimeoutMs??6e4),s=t.state;if(s===void 0)throw new jn("Runtime daemon owner state disappeared before it reached ready.","identity_mismatch");let a=t;for(;;){let u=qt(a);if(a.state!==void 0&&(a.state.runtimeId!==s.runtimeId||a.state.pid!==s.pid||a.state.profile!==s.profile||a.state.endpoint!==s.endpoint))throw new jn("Runtime daemon owner identity changed before it reached ready.","identity_mismatch");if(u==="healthy"&&a.state?.status==="ready")return{...a,state:a.state};if(u==="mismatch")throw new jn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let l=o-Date.now();if(l<=0)throw Pc(e);await Rt(gi(Math.min(Math.max(1,n.pollIntervalMs??100),l)),n.startupSignal),a=await Rt(r(e,n.healthCheck),n.startupSignal)}}i(zg,"waitForReadyRuntimeDaemonOwner");async function Wg(e,n,t,r){let o=await Rt(Promise.race([r(e,n.healthCheck).then(s=>({kind:"health",observation:s})),t.exit.then(s=>({kind:"exit",exit:s}))]),n.startupSignal);if(o.kind==="exit"){if(Qo(e,t))return r(e,n.healthCheck);if(o.exit.code===0&&o.exit.signal===null){let s=Math.min(yc,n.startupTimeoutMs??yc),a=Date.now()+s;for(;Date.now()<=a;){let u=await Rt(r(e,n.healthCheck),n.startupSignal);if(qt(u)!=="missing"||Qo(e,t))return u;await Rt(gi(Math.min(n.pollIntervalMs??100,Math.max(1,a-Date.now()))),n.startupSignal)}}throw Ec(e,o.exit)}return o.observation}i(Wg,"observeStartupHealth");async function Vg(e,n,t,r){let o=await Rt(Promise.race([gi(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(Qo(n,t)){await Rt(gi(e),r);return}throw Ec(n,o)}}i(Vg,"waitForStartupPoll");function Qo(e,n){let t=Ue(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(Qo,"hasCompetingStartupOwner");function Ec(e,n){let t=n.signal!==null?`signal ${n.signal}`:`code ${n.code??"unknown"}`;return new jn(`Runtime daemon child exited before becoming healthy (${t}). See daemon bootstrap log: ${yi(e)}`,"child_exit")}i(Ec,"runtimeDaemonExitedEarly");function Pc(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new jn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n} See daemon bootstrap log: ${yi(e)}`,"timeout")}i(Pc,"runtimeDaemonStartupTimeout");function Gg(e,n,t=process.execArgv){let r=[...n!==void 0?ty(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(Gg,"buildRuntimeDaemonServeArgs");async function Jg(e){let n=ny();Zg(n);let t=Gg(e,n),r=zs({args:t,env:ey({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=ut(e.configHome,e.profile),s=Kg(o),a;try{a=Ng(process.execPath,r.args,{detached:!0,stdio:["ignore",s,s],windowsHide:!0,env:r.env})}finally{vc(s)}let u=new Promise(l=>{a.once("exit",(p,R)=>l({code:p,signal:R}))});return await new Promise((l,p)=>{a.once("spawn",l),a.once("error",p)}),Ws(a),Qg(a,u)}i(Jg,"spawnRuntimeDaemonServeProcess");async function Yg(e){if(e.hasExited?.()!==!0)try{await e.terminate()}catch(n){if(!(n instanceof pi)||!await xc(e.exit,1e3))throw n}}i(Yg,"terminateCompetingStartupChild");function Qg(e,n){return{pid:e.pid,exit:n,hasExited(){return $i(e)},unref(){e.unref()},async terminate(){let t=$i(e);if((await Vs(e)).status==="unknown"&&!t)throw new pi(e.pid);if(!await xc(n,1e3))throw new Error(`Runtime daemon child ${e.pid??"unknown"} did not exit after termination.`)}}}i(Qg,"createRuntimeDaemonStartupProcess");async function xc(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(xc,"didExitWithin");function Zg(e){if(e!==void 0&&!fi(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(Zg,"assertRuntimeDaemonCliEntryAvailable");function ey(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??yn.join(e.homeDir,".kodax")};return delete n[Us],n}i(ey,"createRuntimeDaemonServeEnvironment");function ny(){if(process.env.KODAX_BUNDLED==="true")return;let e=jg(import.meta.url);if(e.endsWith(".ts"))return yn.resolve(yn.dirname(e),"..","kodax_cli.ts");let n=yn.dirname(e),t=yn.basename(n)==="chunks"?yn.dirname(n):n;return yn.join(t,"kodax_cli.js")}i(ny,"resolveDaemonCliEntry");function ty(e,n){let t=[];for(let r=0;r<e.length;r+=1){let o=e[r]??"",s=o.toLowerCase();if(s==="--require"||s==="-r"){let a=e[r+1];a!==void 0&&(hc(a)&&t.push(o,a),r+=1)}else if(s.startsWith("--require=")){let a=o.slice(10);hc(a)&&t.push(o)}else(s.startsWith("--max-old-space-size")||s==="--enable-source-maps")&&t.push(o)}return n&&t.push("--import","tsx"),t}i(ty,"daemonServeExecArgv");function hc(e){return yn.resolve(e)===yn.resolve("scripts","production-env.cjs")}i(hc,"isKodaXProductionEnvPreload");function gi(e){return new Promise(n=>setTimeout(n,e))}i(gi,"delay");async function Rt(e,n){if(!n)return e;if(n.aborted)throw wc();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(wc()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(Rt,"raceRuntimeDaemonStartupStep");function wc(){return new jn("Runtime daemon startup cancelled.","cancelled")}i(wc,"runtimeDaemonStartupCancelled");import{Worker as ry}from"node:worker_threads";import{existsSync as iy}from"node:fs";import{basename as oy,dirname as Zo,join as Cc}from"node:path";import{fileURLToPath as Ac,pathToFileURL as Tc}from"node:url";var sy=3e4;function Dc(e,n={}){let t=uy(),r=new ry(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),o=new Map,s=new Map,a=new Set,u=0,l=!1,p=i(m=>{for(let d of o.values())d.cleanup(),d.reject(m);o.clear()},"rejectPending"),R=i(()=>{for(let m of s.values())clearTimeout(m.expiry);s.clear()},"clearLateResults"),v=i(m=>{let d=s.get(m);if(d!==void 0)return s.delete(m),clearTimeout(d.expiry),d.deliver},"removeLateResult"),y=i(m=>{l||(l=!0,p(m),R(),a.clear())},"markClosed"),x=i((m,d)=>{if(l)return;let I=m==="request.ack"?"ack":"cancel";try{r.postMessage(Mt(`worker_${I}_${++u}`,m,{requestId:d}))}catch(w){fe({source:"runtime.worker.transport",level:"warn",message:`Failed to send Worker ${m} lifecycle frame.`,detail:w})}},"sendRequestLifecycleFrame");return r.on("message",m=>{if(pr(m)){for(let w of a)w(m);return}if(!st(m)&&!Ot(m)||!m.id)return;let d=o.get(m.id);if(!d){if(st(m)){let w=v(m.id);if(w!==void 0)try{w(m.result)}catch(C){fe({source:"runtime.worker.transport",level:"warn",message:"Runtime Worker late-result handler failed.",detail:C})}}else v(m.id);return}if(o.delete(m.id),d.cleanup(),st(m)){x("request.ack",m.id),d.resolve(m.result);return}let I=new Error(m.error.message);I.code=m.error.code,m.error.data!==void 0&&(I.data=m.error.data),d.reject(I)}),r.on("error",m=>y(m)),r.on("exit",m=>y(new Error(`Runtime Worker exited with code ${m}.`))),{transport:{request(m,d,I,w){if(l)return Promise.reject(new Error("Runtime Worker transport is closed."));let C=`worker_${++u}`,S,b=!1,P=i(()=>{S!==void 0&&w?.signal?.removeEventListener("abort",S)},"cleanup"),T=new Promise((D,q)=>{let re={resolve:D,reject:q,cleanup:P};o.set(C,re),S=ay(w,()=>{if(o.get(C)===re){if(o.delete(C),P(),b&&x("request.cancel",C),w?.onLateResult!==void 0){let ne=setTimeout(()=>{s.delete(C)},sy);ne.unref?.(),s.set(C,{deliver:w.onLateResult,expiry:ne})}q(dy(w?.signal?.reason))}})});if(w?.signal?.aborted)return T;try{r.postMessage(Mt(C,m,d,I)),b=!0}catch(D){let q=o.get(C);q!==void 0&&(o.delete(C),q.cleanup(),q.reject(D instanceof Error?D:new Error(String(D))))}return T},subscribe(m){return l?{close(){}}:(a.add(m),{close:i(()=>a.delete(m),"close")})},async close(){l||(y(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){l||y(new Error("Runtime Worker terminated.")),await r.terminate()}}}i(Dc,"createRuntimeWorkerTransport");function ay(e,n){let t=e?.signal;if(t!==void 0)return t.addEventListener("abort",n,{once:!0}),t.aborted&&n(),n}i(ay,"attachWorkerRequestAbort");function dy(e){return e instanceof Error?e:new Error("Runtime Worker request cancelled.")}i(dy,"normalizeWorkerAbortReason");function uy(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return iy(Ac(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return Tc(Cc(Zo(process.execPath),"runtime-worker.js"));let e=Zo(Ac(import.meta.url)),n=oy(e)==="chunks"?Zo(e):e;return Tc(Cc(n,"runtime-worker.js"))}i(uy,"resolveRuntimeWorkerUrl");var Mn=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},wt=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function ks(e){let n=Q.resolve(e??Ei.homedir());return{homeDir:n,configHome:e===void 0?Q.resolve(eo):Q.join(n,".kodax")}}i(ks,"resolveRuntimeDaemonClientLocation");function ir(e,n="default"){let t=ks(e);return{...t,paths:ut(t.configHome,n)}}i(ir,"resolveRuntimeDaemonClientPaths");function jS(e={}){let{paths:n}=ir(e.homeDir,e.profile),t=`inline_${Je().replace(/-/g,"")}`,r=Yd(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline"},e.enableRollback===!0),o=!1;return{profile:n.profile,ownerId:t,ownerPolicy:Sn(n),close(){o||(o=!0,oi(r))}}}i(jS,"acquireKodaXInlineOwner");function BS(e={}){return Sn(ir(e.homeDir,e.profile).paths)}i(BS,"getKodaXRuntimeOwnerPolicy");function KS(e={}){let{paths:n}=ir(e.homeDir,e.profile),t=Ue(n.lockFile);return{profile:n.profile,policy:Sn(n),ownerStatus:t!==void 0?"owned":F.existsSync(n.lockFile)?"unreadable":"unowned",owner:t??null}}i(KS,"getKodaXRuntimeOwnerState");function XS(e={}){return ti(ir(e.homeDir,e.profile).paths)}i(XS,"enableKodaXDaemonOwner");function US(e){let{paths:n}=ir(e.homeDir,e.profile);if(Ue(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Gd(n,e.mode,e.expectedRevision)}i(US,"setKodaXRuntimeOwnerMode");var cy=["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"],ly=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),zS=Object.freeze({daemonOrphanExit:1,managedRunDurability:1,runtimeEventCoalescing:1});async function WS(e,n){return e.sessions.diagnostics(n)}i(WS,"captureRuntimeSessionDiagnostics");function my(e,n,t,r){let o=t.runs.flatMap(R=>{let v=_i(R);return v===void 0?[]:[v]}),s=n.runId===void 0?zl(o):o.find(R=>R.runId===n.runId),a=s?.activeSubtaskCount??null,u=[],l=i((R,v)=>{u.some(y=>y.code===R)||u.push({code:R,message:v})},"addError");if(s===void 0)l("run_control_unknown",n.runId===void 0?"No Run control record is available at this Session boundary.":`Run control record is unavailable: ${n.runId}`);else if(s.phase==="unknown"){let R=s.error==="owner_liveness_unconfirmed"?"owner_liveness_unconfirmed":s.error==="owner_recovery_required"?"owner_recovery_required":s.error==="stop_outcome_unconfirmed"?"stop_outcome_unconfirmed":"run_status_unknown";l(R,R==="owner_liveness_unconfirmed"?"The prior Runtime owner could not be confirmed alive or dead.":R==="owner_recovery_required"?"The prior Runtime owner is gone; explicit Run recovery is required.":R==="stop_outcome_unconfirmed"?"A Stop was requested, but executor termination is not confirmed.":"The authoritative Run state could not be confirmed.")}(s?.stop?.state==="unknown"||s?.stop?.outcome==="unknown")&&l("stop_outcome_unconfirmed","A Stop was requested, but executor termination is not confirmed."),s?.lifecycleError!==void 0&&l(s.lifecycleError.code,s.lifecycleError.message),s?.phase==="failed"&&l("run_failed",s.error??"The Run failed without a recorded error message."),s!==void 0&&Ae(s.phase)&&s.endedAt===void 0&&l("terminal_time_unknown","The Run is terminal, but its terminal time was not recorded.");let p=s?.activeSubtaskCount===void 0?"unknown":"run_status";return{schemaVersion:1,captureStartedAt:r,capturedAt:new Date().toISOString(),sdkVersion:qr,runtimeVersion:e.version,daemonVersion:e.mode==="daemon"?e.version:null,runtimeId:t.runtimeId,runtimeMode:e.mode,sessionId:n.sessionId,observation:{cursor:t.cursor,transcriptRevision:t.transcriptRevision},run:s===void 0?{controlRecord:"unknown",...n.runId!==void 0?{runId:n.runId}:{},state:"unknown",stage:"unknown",terminalTimeKnown:!1,activeSubtaskCount:a,activeSubtaskCountSource:p,errors:u}:{controlRecord:"present",runId:s.runId,...s.turnId!==void 0?{turnId:s.turnId}:{},state:s.phase==="queued"?"queued":s.phase==="unknown"?"unknown":Ae(s.phase)?"terminal":"active",phase:s.phase,stage:s.stage??(Ae(s.phase)?"terminal":"unknown"),...s.stageChangedAt!==void 0?{stageChangedAt:s.stageChangedAt}:{},...s.endedAt!==void 0?{terminalAt:s.endedAt}:{},terminalTimeKnown:Ae(s.phase)&&s.endedAt!==void 0,...s.terminal!==void 0?{terminal:s.terminal}:{},activeSubtaskCount:a,activeSubtaskCountSource:p,...s.stop!==void 0?{stop:s.stop}:{},...s.interruptInputs!==void 0?{interruptInputs:s.interruptInputs}:{},errors:u}}}i(my,"createRuntimeSessionDiagnosticsRecord");var Pi=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},Cr=class extends Error{static{i(this,"RuntimeEventCommitIndeterminateError")}constructor(n,t){super("Runtime event batch commit is indeterminate; automatic retry is disabled",{cause:new AggregateError([n,t],"Runtime event append and rollback both failed")}),this.name="RuntimeEventCommitIndeterminateError"}includeLockCleanupFailure(n){Object.defineProperty(this,"cause",{configurable:!0,value:new AggregateError([this.cause,n],"Runtime event commit and status-lock cleanup both failed")})}},St=class extends Error{constructor(t){super("Runtime status lock cleanup failed after the operation completed",{cause:t});this.cleanupError=t;this.name="RuntimeStatusLockCleanupError"}cleanupError;static{i(this,"RuntimeStatusLockCleanupError")}},xi=class extends Error{constructor(t){super(`Runtime status lock timed out: ${t}`);this.lockFile=t;this.name="RuntimeStatusLockTimeoutError"}lockFile;static{i(this,"RuntimeStatusLockTimeoutError")}},_c=5*6e4,Ci=1e4,fy=1024,Oc=1024*1024,_n=1e3,Ri=200,es=1e3,py=2*1024*1024,ns=512,Nc=256*1024*1024,gy=50,ps=8*1024,vl=16*1024*1024,yy=vl/2,Lc=128*1024,Hc=8,Ry=256,It=512*1024,Ai=128*1024,Er=256*1024,Sl=50,Il=200,hy=8,Pr=64*1024*1024,Ti=16,ts=4*1024,wy=256,vy=1024*1024,Sy=250,rs=5*6e4,Fc="kodax-transcript-snapshots-",Iy=5e3,ky=3e4,qc=[5,15],by="1970-01-01T00:00:00.000Z";function Ey(e,n,t){let r=null,o=t.map((s,a)=>{let l=`entry_${vt("sha256").update("kodax-runtime-legacy-lineage-v1\0").update(`${e}\0${n}\0${a}:`).update(JSON.stringify(s)).digest("hex").slice(0,12)}`,p={type:"message",id:l,parentId:r,logicalId:l,timestamp:s.timestamp??by,message:structuredClone(s)};return r=l,p});return{version:2,activeEntryId:r,entries:o}}i(Ey,"createDeterministicRuntimeLegacyLineage");var $c=1024,kl=new Set(["tool_call","tool_describe"]),Py=new Set(["image","file","video"]);function xy(e,n){let t=Q.relative(Ks(),e);return Q.isAbsolute(t)||t.startsWith("..")?e:Q.join(n,t)}i(xy,"rebaseAgentConfigPath");async function Cy(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 Ay(e);let k=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return bl({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:k,homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExitMs:e.daemonOrphanExitMs}:{},daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:k?{...e.requirements,managedRunDurability:1,runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return Ty(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:It},transcriptSearch:{version:1,defaultScope:"compacted",citedEntries:!0},conversationHistory:{version:1,immutablePaging:!0,revisionedBoundaries:!0,ambiguityReporting:!0},learningCenter:{version:1},skillLearningLoop:{version:1,activation:"project_scoped_canary",immutableDecisions:!0,recordGatedDiscovery:!0,exactUseAttribution:!0,rollback:!0},actorControlPlane:{version:1,methodNamespace:"agents"},sandboxRuntime:$r(),managedRunDurability:{version:1,initialInputBeforeExecution:!0,completedTurnBeforeEvent:!0,deliveredInputBeforeEvent:!0,persistenceFailure:"fail_closed"},runtimeEventCoalescing:{version:1},runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:Hr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};bs(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Je().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.80",isolation:"inline"},r=e.homeDir?Q.join(Q.resolve(e.homeDir),".kodax"):eo,o=hR(e),s=za(o?{sessionsDir:o,configHome:r}:{configHome:r}),a=BR(t.profile,s,e.sharedDaemonHost===!0),u=Hy(),l=ch(e);Bl(l);let p=await Pd({onError(k){fe({source:"runtime.owner",level:"error",message:`Runtime owner liveness endpoint failed for ${t.runtimeId}.`,detail:_e(k)})}}),R={ownerId:`runtime_${Je().replace(/-/g,"")}`,runtimeId:t.runtimeId,pid:process.pid,startedAt:t.startedAt,livenessId:p.id,livenessPort:p.port},v=aR(e,R),y;try{y=e.externalAgents?await ga({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:nd(Q.join(v.runtimeDir,"agents"))}):void 0}catch(k){throw await p.close(),k}let x=nR(v),g=Ly(v,x),m=TR(x,e.permissionTimeoutMs??_c,v),d=xR(x,e.permissionTimeoutMs??_c),I=Xy(),w=$y(),C=new Map,S=new Map,b=new Map,P=new Map,T=i((k,A)=>{let H=S.get(k)??A;return H.state!=="recovering"?Promise.resolve(H):new Promise(O=>{let j=b.get(k)??new Set;j.add(O),b.set(k,j)})},"waitForActorHealthResolution"),D=i(k=>{let A,H=new Promise(j=>{A=j}),O=P.get(k)??new Set;return O.add(A),P.set(k,O),{promise:H,close(){A!==void 0&&(O.delete(A),O.size===0&&P.delete(k),A=void 0)}}},"waitForActorHealthChange"),q=i((k,A)=>{S.set(k,A);let H=P.get(k);P.delete(k);for(let O of H??[])O(A);for(let O of C.values()){if(O.sessionId!==k||!O.ownedByRuntime||Ae(O.phase))continue;if(O.stop?.state==="unknown"){if(delete O.actorHealthBaseState,A.state==="unknown"){O.lifecycleError={code:A.code??"actor_settlement_not_persisted",message:A.message??"Actor executor settlement persistence is not confirmed.",retryable:!1},O.stageChangedAt=new Date().toISOString();let ee=sn(O),te=Un(x,v,O,ee);te===ee?x.emit("run.updated",ee,{sessionId:O.sessionId,runId:O.runId,...O.turnId!==void 0?{turnId:O.turnId}:{}}):te!==void 0&&ht(O,te)}continue}if(A.state==="healthy"){let ee=O.actorHealthBaseState;if(ee===void 0)continue;O.phase=ee.phase,O.stage=ee.stage,O.error=ee.error,O.lifecycleError=ee.lifecycleError,delete O.actorHealthBaseState}else O.actorHealthBaseState===void 0&&(O.actorHealthBaseState={phase:O.phase,stage:O.stage,error:O.error,lifecycleError:O.lifecycleError}),(O.phase!=="queued"||A.state==="unknown")&&(O.phase=A.state),O.stage=A.state,O.error=A.message,O.lifecycleError={code:A.code??"actor_settlement_retrying",message:A.message??"Actor executor settlement persistence is not confirmed.",retryable:A.state==="recovering"};O.stageChangedAt=new Date().toISOString();let j=sn(O),z=Un(x,v,O,j);z===j?x.emit("run.updated",j,{sessionId:O.sessionId,runId:O.runId,...O.turnId!==void 0?{turnId:O.turnId}:{}}):z!==void 0&&ht(O,z)}if(A.state!=="recovering"){let O=b.get(k);b.delete(k);for(let j of O??[])j(A)}},"onActorHealthChanged"),re=Wy(s,t,p,y,e.externalAgents?.defaultContext,q),ne=new Map,he=[..._h(v.loadRunStatuses())].sort((k,A)=>Xn(k.status,A.status)),ve=[];for(let k of he){let A=k.status,H=A.sessionOrder??(ne.get(A.sessionId)??0)+1;ne.set(A.sessionId,Math.max(ne.get(A.sessionId)??0,H));let O={...A,acceptedAt:A.acceptedAt??A.startedAt,sessionOrder:H};if(!Ae(A.phase)){let j=Dl(O,x,v);if(j!==void 0){C.set(j.runId,bi(j,!1,k.owner));continue}O=As(O,v.replay({runId:A.runId}))}ve.push({persisted:k,normalizedStatus:O})}let Ke=ve.flatMap(({persisted:k})=>!Ae(k.status.phase)&&k.owner!==void 0?[k.owner]:[]),Se=await xd(Ke),c=0;for(let{persisted:k,normalizedStatus:A}of ve){let H=k.status,O=Ae(H.phase)?"dead":k.owner===void 0?"unknown":Se[c++]??"unknown";if(!Ae(H.phase)&&O!=="dead"){C.set(H.runId,bi(A,!1,k.owner));continue}let j=Tl(A,x,v);C.set(j.runId,bi(j,!1,k.owner))}let E=!1,$,Y=!1,X=!1,L=y===void 0,K=!1,G=!1,J=i(()=>{if(E)throw new Error("KodaX runtime is closed")},"ensureOpen"),U=qy({bus:x,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,defaultConfigHome:r,ensureOpen:J,isClosed:i(()=>E,"isClosed"),artifacts:I,permissions:m,userInputs:d,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:v,runOwner:R,runs:C,sessionManager:s,sessionAdmission:a,sessionOperations:u,agentPlane:y,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:re,waitForActorHealthResolution:T,waitForActorHealthChange:D,settingsOwner:g}),se,me,Me=Fy(t,r,s,x,v,J,k=>Nh(k,C,v),g,k=>U.list({sessionId:k}),k=>U.inspect({sessionId:k}),k=>U.inspectOne(k),k=>m.service.listPending({sessionId:k}),k=>U.getAutoModeStats(k),u,(k,A,H)=>re.mutateSessionFile(k,A,H),k=>{U.releaseSession(k),m.releaseSession(k)},a,(k,A)=>{se=k,me=A}),$e=Q.join(e.homeDir?Q.resolve(e.homeDir):Ei.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),we=Id({configHome:r,managedWorkspaceRoot:$e,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:U,sessions:Me,createSkillScriptRunner:i(k=>Ga({...k,snapshotRoot:Q.join($e,"bindings")}),"createSkillScriptRunner")}),Xe=Td({rootDir:Q.join(r,"learned"),userSkillsRoot:Q.join(r,"skills"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[xy(ea(process.cwd()),r)]}),We=i(()=>{if($)return $;E=!0;let k=(async()=>{Y||(U.closeAll("runtime closed"),m.rejectAll("runtime closed"),m.releaseAllSessionGrants(),d.rejectAll("runtime closed"),Y=!0),se?.(),await u.close(),await me?.(),se=void 0,me=void 0,X||(await re.close("runtime closed"),X=!0),L||(await y.close(),L=!0),K||(await p.close(),K=!0),G||(x.close(),G=!0)})();return $=k,k.then(()=>{$===k&&($=void 0)},()=>{$===k&&($=void 0)}),k},"closeRuntime");return{identity:t,capabilities:n,sessions:Me,runs:U,events:x.service,permissions:m.service,userInputs:d.service,credentials:aw(),hostTools:dw(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:w,learning:Xe,config:jy(J,l),catalog:By(J,l),mcp:Ky(J,l),artifacts:I.service,status:Jy({identity:t,permissions:m,userInputs:d,listRuns:i(()=>U.list(),"listRuns"),sessionManager:s,sessionAdmission:a,workflows:w,actors:re}),diagnostics:Yy(x.service),admin:Gy(y),agents:Vy(y,we,re,a,u,J),close:We}}i(Cy,"createKodaXRuntime");async function Ay(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?xl(e.daemonEndpoint):void 0,r=ks(e.homeDir),o=await fc({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(s=>Cy({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 bl({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??gr(o.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),a=!1,u=!1,l,p=i(()=>{if(l)return l;let R=(async()=>{u||(o.ownsHost?await o.shutdown():await o.close(),u=!0),a||(await s.close(),a=!0)})();return l=R,R.then(()=>{l===R&&(l=void 0)},()=>{l===R&&(l=void 0)}),R},"closeHostedRuntime");return{...s,identity:{...s.identity,isolation:"inline"},close:p}}catch(s){let u=(await Promise.allSettled([o.ownsHost?o.shutdown():o.close()])).filter(l=>l.status==="rejected").map(l=>l.reason);throw u.length>0?new AggregateError([s,...u],"Hosted daemon initialization failed and cleanup was incomplete."):s}}i(Ay,"createInProcessExternalAgentDaemon");async function Ty(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=Dc({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,configuredA2A:e.worker?.configuredA2A},e.worker);try{let r=rr(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=Kl(r.identity);bs(r.capabilities,{...e.requirements,hardDispose:!0});let s=Zr({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:rr(r.capabilities)}),a=!1,u;return{...s,close:i(()=>{if(a)return Promise.resolve();if(u)return u;let p=(async()=>{let R;try{await Dy(t.transport.request("runtime.shutdown"),n)}catch(v){R=v}try{await t.terminate(),a=!0}catch(v){throw R!==void 0?new AggregateError([R,v],"Runtime Worker shutdown and forced termination both failed."):v}if(R!==void 0)throw R})();return u=p,p.finally(()=>{u===p&&(u=void 0)}).catch(()=>{}),p},"closeWorkerRuntime")}}catch(r){throw await t.terminate(),r}}i(Ty,"createWorkerHostedKodaXRuntime");function bs(e,n){if(!n?.hardDispose&&!n?.externalAgents&&n?.externalAgentAdmin===void 0&&n?.a2aConfigReconciler===void 0&&n?.operationDeduplication===void 0&&n?.sessionObservation===void 0&&n?.afterTurnInput===void 0&&n?.learningCenter===void 0&&n?.skillLearningLoop===void 0&&n?.interruptInput===void 0&&n?.askUserTransport===void 0&&n?.permissionCas===void 0&&n?.providerCredentialBroker===void 0&&n?.runBoundHostTools===void 0&&n?.coderOwnerFencing===void 0&&n?.crashOutcomeModel===void 0&&n?.coderFeatureMatrix===void 0&&n?.sessionAdmission===void 0&&n?.completeObservationSnapshot===void 0&&n?.contextCompaction===void 0&&n?.transcriptPaging===void 0&&n?.transcriptSearch===void 0&&n?.conversationHistory===void 0&&n?.connectionLifecycle===void 0&&n?.typedRuntimeEvents===void 0&&n?.daemonSafeRunInput===void 0&&n?.sharedSessionSettings===void 0&&n?.durableRecoveryQueries===void 0&&n?.managedRunDurability===void 0&&n?.daemonManagement===void 0&&n?.daemonOrphanExit===void 0&&n?.runtimeEventCoalescing===void 0&&n?.integrationConfigResilience===void 0&&n?.actorControlPlane===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=rr(e);if(n.hardDispose&&t.hardDispose!==!0)throw new Error("Runtime does not support the required hardDispose capability.");if(n.externalAgents&&t.externalAgents!==!0)throw new Error("Runtime does not support the required externalAgents capability.");n.operationDeduplication!==void 0&&jc(t,"operationDeduplication",n.operationDeduplication);let r=[["externalAgentAdmin",n.externalAgentAdmin],["a2aConfigReconciler",n.a2aConfigReconciler],["sessionObservation",n.sessionObservation],["afterTurnInput",n.afterTurnInput],["learningCenter",n.learningCenter],["skillLearningLoop",n.skillLearningLoop],["interruptInput",n.interruptInput],["askUserTransport",n.askUserTransport],["permissionCas",n.permissionCas],["providerCredentialBroker",n.providerCredentialBroker],["runBoundHostTools",n.runBoundHostTools],["coderOwnerFencing",n.coderOwnerFencing],["crashOutcomeModel",n.crashOutcomeModel],["coderFeatureMatrix",n.coderFeatureMatrix],["sessionAdmission",n.sessionAdmission],["completeObservationSnapshot",n.completeObservationSnapshot],["contextCompaction",n.contextCompaction],["transcriptPaging",n.transcriptPaging],["transcriptSearch",n.transcriptSearch],["conversationHistory",n.conversationHistory],["connectionLifecycle",n.connectionLifecycle],["typedRuntimeEvents",n.typedRuntimeEvents],["daemonSafeRunInput",n.daemonSafeRunInput],["sharedSessionSettings",n.sharedSessionSettings],["durableRecoveryQueries",n.durableRecoveryQueries],["managedRunDurability",n.managedRunDurability],["daemonManagement",n.daemonManagement],["daemonOrphanExit",n.daemonOrphanExit],["runtimeEventCoalescing",n.runtimeEventCoalescing],["integrationConfigResilience",n.integrationConfigResilience],["actorControlPlane",n.actorControlPlane],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,s]of r)s!==void 0&&jc(t,o,s)}i(bs,"assertRuntimeCapabilities");function jc(e,n,t){let r=e[n];if(!oe(r)||!Number.isSafeInteger(r.version)||Number(r.version)<t)throw new Error(`Runtime does not support the required ${n} capability.`)}i(jc,"assertVersionedRuntimeCapability");async function Dy(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(Dy,"settleWithin");async function bl(e={}){return Pl(e,!0)}i(bl,"connectKodaXRuntime");function El(e,n,t){let r=e[n];return oe(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i(El,"hasVersionedRuntimeCapability");async function My(e){if(!El(e.capabilities,"daemonManagement",1))throw new Mn("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=Zr({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 Mn(`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 Mn?o:new Mn("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=>{fe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:_e(s)})}),o||await e.lease.close().catch(s=>{fe({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:_e(s)})})}let r=Date.now()+e.startupTimeoutMs;try{for(;Ue(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new Mn("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{ti(e.lease.paths)}catch(s){throw new Mn("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{ti(e.lease.paths)}catch(o){throw new Mn("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(My,"replaceRuntimeDaemonForCapabilityUpgrade");async function Pl(e,n){is("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),is("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs),is("daemonOrphanExitMs",e.daemonOrphanExitMs);let t=e.endpoint!==void 0?xl(e.endpoint):void 0,r=ks(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await bc({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?Kt(e.profile??"default",Ht(r.homeDir,r.configHome)):void 0),a=e.transport??o?.transport??(s!==void 0?await Fn(s,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!a)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=Ny(e),l,p={},R,v,y=!1;try{let g={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Je().replace(/-/g,"")}`,...e.clientInfo?.instanceSecret!==void 0?{instanceSecret:e.clientInfo.instanceSecret}:{},...e.clientInfo?.title!==void 0?{title:e.clientInfo.title}:{},...e.clientInfo?.version!==void 0?{version:e.clientInfo.version}:{}},m=rr(await a.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:g,capabilities:{...e.capabilities,operationDeduplication:!0},...s!==void 0?{endpoint:s.path}:{}}));l=Kl(m.identity),p=m.capabilities===void 0?{}:rr(m.capabilities),R=typeof m.journalEpoch=="string"?m.journalEpoch:void 0,v=_y(m.grantedScopes);let d=e.autoStart===!0?{...e.requirements,managedRunDurability:1,runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:e.requirements,I=[{name:"managedRunDurability",version:d?.managedRunDurability},{name:"runtimeAutoModeGuardrail",version:d?.runtimeAutoModeGuardrail},{name:"runtimeEventCoalescing",version:d?.runtimeEventCoalescing},{name:"daemonOrphanExit",version:d?.daemonOrphanExit}].find(C=>C.version!==void 0&&!El(p,C.name,C.version));if(I!==void 0){if(!n||e.autoStart!==!0||o===void 0)throw new Mn(`Runtime daemon does not support ${I.name} v${I.version}. Stop all daemon work and restart it with a compatible KodaX installation.`,void 0,void 0,I.name);try{await My({identity:l,capabilities:p,transport:a,lease:o,...R!==void 0?{journalEpoch:R}:{},...v!==void 0?{grantedScopes:v}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredCapability:I.name,requiredVersion:I.version})}finally{y=!0}return Pl(e,!1)}bs(p,d);let w=e.profile??"default";if(l.profile!==w)throw new Error(`Runtime daemon profile mismatch: expected ${w}, got ${l.profile}`)}catch(g){throw y||(o!==void 0?await o.close():await a.close?.()),g}let x=Zr({identity:{...l,mode:"daemon",isolation:"process"},transport:a,capabilities:p,...R!==void 0?{journalEpoch:R}:{},...v!==void 0?{grantedScopes:v}:{}});return o?{...x,async close(){await x.close()}}:x}i(Pl,"connectKodaXRuntimeInternal");function is(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(is,"assertPositiveRuntimeTimeout");function _y(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&Oy(t));return n.length===e.length?n:void 0}i(_y,"parseRuntimeGrantedScopes");function Oy(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(Oy,"isRuntimeGrantedScope");function Ny(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return gr(ir(e.homeDir,e.profile).paths)}i(Ny,"resolveConnectDaemonToken");function xl(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(xl,"normalizeRuntimeDaemonEndpoint");function Ly(e,n){let t=new Map,r=new Map,o=new Set,s=i((u,l)=>{let R=(r.get(u)??Promise.resolve()).then(l),v=R.then(()=>{},()=>{});return r.set(u,v),v.then(()=>{r.get(u)===v&&r.delete(u)}),R},"enqueue"),a=i((u,l,p)=>{t.set(u,l);for(let R of o)R(u,l,p);n.emit("session.settings.updated",{sessionId:u,revision:l.revision,settings:l.value,patch:p},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let l=e.loadSessionSettingsVersioned(u);return t.set(u,l),l},peek(u){return t.get(u)},update(u,l,p,R){return s(u,()=>{let v=e.loadSessionSettingsVersioned(u);if(p!==void 0&&v.revision!==p)throw Kn(`Session settings revision ${p} is stale; current revision is ${v.revision}`,v.revision);let y=nh(v.value,l);R(y);let x={revision:v.revision+1,value:y};return e.saveSessionSettingsVersioned(u,x),a(u,x,l),x})},async persistAutoModeEngine(u,l){let p=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:p.revision,value:{...p.value,autoModeEngine:l}}),await s(u,()=>{let R=e.loadSessionSettingsVersioned(u);if(R.value.autoModeEngine===l){t.set(u,R);return}let v={revision:R.revision+1,value:{...R.value,autoModeEngine:l}};e.saveSessionSettingsVersioned(u,v),a(u,v,{autoModeEngine:l})})},subscribe(u){return o.add(u),{close:i(()=>{o.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}i(Ly,"createRuntimeSessionSettingsOwner");function Hy(){let e=new Map,n=!1;return{run(t,r){if(n)return Promise.reject(new Error("KodaX runtime is closed"));let s=(e.get(t)??Promise.resolve()).then(r),a=s.then(()=>{},()=>{});return e.set(t,a),a.then(()=>{e.get(t)===a&&e.delete(t)}),s},async close(){n=!0,await Promise.all([...e.values()])}}}i(Hy,"createRuntimeSessionOperationGate");function Fy(e,n,t,r,o,s,a,u,l,p,R,v,y,x,g,m,d,I){let w=new Set,C=i((f,N,_)=>({id:f,title:N.title,...N.gitRoot?{gitRoot:N.gitRoot}:{},...N.runtimeInfo?.workspaceRoot?{workspaceRoot:N.runtimeInfo.workspaceRoot}:{},...N.runtimeInfo?.surface?{surface:N.runtimeInfo.surface}:{},...N.runtimeInfo?.profileId?{profileId:N.runtimeInfo.profileId}:{},..._?{createdAt:_}:{}}),"toRuntimeSession"),S=i(f=>({revision:f.revision,sourceRevision:f.sourceRevision,status:f.status,issues:f.issues,entries:f.entries,hasMore:f.hasMore,...f.nextEnd!==void 0?{nextCursor:Oi({kind:"conversation_cache_page",view:"conversation",revision:f.revision,end:f.nextEnd})}:{}}),"toRuntimeConversationPage"),b=new Map,P=new Map,T=new Map,D=new Map,q=new Map,re=new Map,ne=0,he=new Map,ve=new Set,Ke=new Set,Se=0,c,E=0,$=!1,Y=!1,X=new Set,L=new Map,K,G=i(()=>{K!==void 0&&(clearInterval(K),K=void 0)},"clearTranscriptSnapshotLease"),J=i(()=>{if(c!==void 0)try{O(),H();let f=new Date;F.utimesSync(c,f,f)}catch(f){process.emitWarning(`Unable to refresh transcript snapshot lease: ${_e(f).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_LEASE_FAILED"})}},"refreshTranscriptSnapshotLease"),U=i(()=>{let f=Ei.tmpdir(),N=Date.now()-rs;try{for(let _ of F.readdirSync(f,{withFileTypes:!0})){if(!_.isDirectory()||!_.name.startsWith(Fc))continue;let B=Q.join(f,_.name);F.statSync(B).mtimeMs>N||F.rmSync(B,{recursive:!0,force:!0})}}catch(_){process.emitWarning(`Unable to prune expired transcript snapshots: ${_e(_).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"pruneStaleTranscriptSnapshotDirs"),se=i(f=>{let N=he.get(f);N!==void 0&&(he.delete(f),ne-=N)},"releaseTranscriptSnapshotBytes"),me=i(f=>(Ke.add(f),f.then(()=>Ke.delete(f),()=>Ke.delete(f)),f),"trackTranscriptSnapshotOperation"),Me=i(()=>{if($)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(Se>=Ti)throw iw();Se+=1;let f=!1;return()=>{f||(f=!0,Se-=1)}},"acquireTranscriptSnapshotIo"),$e=i(()=>{if($)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let f=c===void 0;if(c!==void 0)try{f=F.statSync(c).isDirectory()}catch(N){(!oe(N)||N.code!=="ENOENT"&&N.code!=="ENOTDIR")&&process.emitWarning(`Unable to inspect transcript snapshot directory: ${_e(N).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_DIRECTORY_FAILED"}),f=!1}if(!f){G(),b.clear(),P.clear();for(let N of[...he.keys()])if(!ve.has(N)){if((L.get(N)??0)>0){X.add(N);continue}se(N),X.delete(N)}c=void 0}return c===void 0&&(U(),c=F.mkdtempSync(Q.join(Ei.tmpdir(),Fc)),E+=1,K=setInterval(J,Math.floor(rs/2)),K.unref?.()),c},"ensureTranscriptSnapshotDir"),we=i((f,N,_)=>`${_}\0${f}\0${N}`,"transcriptSnapshotKey"),Xe=i((f,N,_)=>`${_}\0${f}\0${N}`,"transcriptSourceKey"),We=i(f=>{if((L.get(f)??0)>0){X.add(f);return}try{F.rmSync(f,{force:!0}),X.delete(f),se(f)}catch(N){X.add(f),process.emitWarning(`Unable to remove transcript snapshot: ${_e(N).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"removeTranscriptSnapshotFile"),nn=i((f,N)=>{if($)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let _=he.get(f)??0;if(_+N>Pr)throw Ii();for(;ne+N>Pr;){let B=b.keys().next().value;if(B===void 0)throw Ii();A(B)}he.set(f,_+N),ne+=N},"reserveTranscriptSnapshotBytes"),k=i(f=>{for(;he.size>=Ti;){let N=b.keys().next().value;if(N===void 0)throw Ii();A(N)}he.set(f,0);try{nn(f,ts)}catch(N){throw se(f),N}},"reserveTranscriptSnapshotFile"),A=i(f=>{let N=b.get(f);if(N===void 0)return;b.delete(f);let _=Xe(N.sessionId,N.sourceRevision,N.view);P.get(_)===N.revision&&P.delete(_),We(N.filePath)},"removeTranscriptSnapshot"),H=i(()=>{let f=Date.now();for(let[N,_]of b)_.expiresAt<=f&&A(N)},"pruneExpiredTranscriptSnapshots"),O=i(()=>{for(let f of X)We(f)},"retryDeferredTranscriptSnapshotCleanup"),j=i(f=>{L.set(f,(L.get(f)??0)+1);let N=!1;return()=>{if(N)return;N=!0;let _=(L.get(f)??1)-1;if(_>0){L.set(f,_);return}L.delete(f),X.has(f)&&We(f)}},"acquireTranscriptSnapshotReader"),z=i(async(f,N,_)=>{let B=j(f.filePath),W;try{W=Me()}catch(Re){throw B(),Re}let Z=me(Promise.resolve().then(_)),ue=i(()=>{B(),W?.()},"releaseResources");Z.then(ue,ue);try{return await xn(()=>Z,N)}catch(Re){if(rw(Re)){let Ie=[...b.entries()].find(([,Ce])=>Ce.filePath===f.filePath);Ie!==void 0&&A(Ie[0])}throw Re}},"readTranscriptSnapshot"),ee=i(async(f,N,_)=>{if(N.conversation===void 0)throw ke("Conversation snapshot metadata is unavailable");let B;try{B=await t.storage.readConversationPageBoundary(f,Pe(_))}catch(W){throw W instanceof rn&&W.code==="data_changed"?ke(W.message):W}if(B===null)throw ke("Session moved or was removed; request a fresh boundary");if(d.assertCachedIdentity(f,B.admission),B.boundaryRevision!==N.conversation.boundaryRevision)throw A(we(f,N.revision,"conversation")),ke("Conversation history changed; request a fresh boundary")},"assertConversationSnapshotCurrent"),te=i(async(f,N)=>{Pe(N);let _=T.get(f);if(_===void 0){let B=new AbortController,W=me(d.captureRequired(f,{signal:B.signal}));_={controller:B,promise:W,waiters:0,settled:!1},T.set(f,_);let Z=_,ue=i(()=>{Z.settled=!0,T.get(f)===Z&&T.delete(f)},"settle");W.then(ue,ue)}_.waiters+=1;try{return await xn(()=>_.promise,N)}finally{_.waiters-=1,_.waiters===0&&!_.settled&&(T.get(f)===_&&T.delete(f),_.controller.abort())}},"readSessionCaptureOnce"),le=i(async(f,N)=>{for(let _=0;_<=qc.length;_+=1)try{return await te(f,N)}catch(B){if(!(B instanceof rn)||B.code!=="data_changed")throw B;let W=qc[_];if(W===void 0)throw ke(B.message);await xn(()=>new Promise(Z=>setTimeout(Z,W)),N)}throw new Error("unreachable session capture retry state")},"readSessionCapture"),ye=i(async(f,N,_,B,W,Z="",ue)=>{if($)throw new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");H();let Re=ue===void 0?0:Buffer.byteLength(JSON.stringify(ue),"utf8"),Ie=$e(),Ce=E,be=Q.join(Ie,`${Je()}.entries`),Fe=Me(),pe=ts+Re;try{for(let je=0;je<N.length;je+=1)if(je>0&&je%256===0&&await Vt(B),Pe(B),pe+=Buffer.byteLength(JSON.stringify(N[je]),"utf8"),pe>Pr)throw Ii()}catch(je){throw Fe(),je}try{k(be);let je=pe-ts;je>0&&nn(be,je)}catch(je){throw se(be),Fe(),je}ve.add(be);let tn=me((async()=>{let je=[],hn=vt("sha256");hn.update(W==="transcript"?"kodax-transcript-entries-v1\0":"kodax-conversation-history-v1\0"),Z.length>0&&(hn.update(`${Buffer.byteLength(Z,"utf8")}:`),hn.update(Z));let Ns=await F.promises.open(be,"wx"),Ls=0,Et=[],or=0,Hs=i(async()=>{if(or===0)return;let et=Et.length===1?Et[0]:Buffer.concat(Et,or);Et=[],or=0,await eh(Ns,et),Pe(B)},"flushPendingWrites");try{for(let et=0;et<N.length;et+=1){et>0&&et%256===0&&await Vt(B),Pe(B);let Fs=N[et],Ln=Buffer.from(JSON.stringify(Fs),"utf8");hn.update(`${Ln.length}:`),hn.update(Ln);let qs=[];for(let Or=0;Or<Ln.length;Or+=Er)qs.push(vt("sha256").update(Ln.subarray(Or,Math.min(Ln.length,Or+Er))).digest("hex"));je.push({offset:Ls,byteLength:Ln.length,chunkDigests:qs,...JR(Fs)}),Ls+=Ln.length,Et.push(Ln),or+=Ln.length,(Et.length>=wy||or>=vy)&&await Hs()}await Hs()}finally{await Ns.close()}Pe(B);let Jl=W==="conversation"&&ue!==void 0?ro({sourceRevision:ue.sourceRevision,status:ue.status,issues:ue.issues,entries:N}):`sha256:${hn.digest("hex")}`;return{entries:je,revision:Jl}})());tn.then(()=>{ve.delete(be),Fe()},()=>{ve.delete(be),Fe()});let Qe;try{Qe=await xn(()=>tn,B),Pe(B)}catch(je){throw tn.then(()=>We(be),hn=>{hn!==je&&!Ni(je)&&!Ni(hn)&&process.emitWarning(`Transcript snapshot materialization failed after its caller stopped waiting: ${_e(hn).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_BACKGROUND_FAILED"}),We(be)}),ow(je,$)}let{entries:Ve,revision:Cn}=Qe;if($)throw We(be),new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(Ce!==E||!F.existsSync(be))throw We(be),ke("Transcript snapshot directory changed; request a fresh boundary");let _r=we(f,Cn,W);for(A(_r),b.set(_r,{sessionId:f,view:W,revision:Cn,sourceRevision:_,filePath:be,entries:Ve,...ue!==void 0?{conversation:ue}:{},expiresAt:Date.now()+rs}),P.set(Xe(f,_,W),Cn),J();b.size>hy;){let je=b.keys().next().value;if(je===void 0)break;A(je)}return Cn},"materializeTranscriptSnapshot"),He=i((f,N,_="transcript")=>{let B=we(f,N,_),W=b.get(B);if(W!==void 0){if(W.expiresAt<=Date.now()){A(B);return}if(!F.existsSync(W.filePath)){A(B);return}return b.delete(B),b.set(B,W),{revision:W.revision,view:W.view,sourceRevision:W.sourceRevision,filePath:W.filePath,entries:W.entries,...W.conversation!==void 0?{conversation:W.conversation}:{}}}},"getTranscriptSnapshot"),zn=i(async(f,N,_,B,W="transcript",Z="",ue)=>{Pe(B),H();let Re=Xe(f,_,W),Ie=P.get(Re);if(Ie!==void 0&&He(f,Ie,W)!==void 0)return Ie;let Ce=D.get(Re);if(Ce===void 0){let be=new AbortController,Fe=En({signal:be.signal}),pe=ye(f,N,_,Fe,W,Z,ue);Ce={controller:be,promise:pe,waiters:0,settled:!1},D.set(Re,Ce);let tn=Ce,Qe=i(()=>{tn.settled=!0,D.get(Re)===tn&&D.delete(Re)},"settle");pe.then(Qe,Qe)}Ce.waiters+=1;try{return await xn(()=>Ce.promise,B)}finally{Ce.waiters-=1,Ce.waiters===0&&!Ce.settled&&(D.get(Re)===Ce&&D.delete(Re),Ce.controller.abort())}},"rememberTranscriptSnapshot"),Oe=i(async(f,N)=>{Pe(N);let _=r.currentSessionSeq(f),B=re.get(f)??0,W=q.get(f);if(W!==void 0&&(W.sessionSeq!==_||W.sourceGeneration!==B)&&(q.delete(f),W=void 0),W===void 0){let Z=new AbortController,ue=En({signal:Z.signal}),Re=me((async()=>{let be=await le(f,ue),Fe=be.transcript.lineage??Ey(f,be.sourceRevision,be.transcript.messages),pe=be.transcript.lineage===void 0?Fe.entries.flatMap(Qe=>Qe.type==="message"?[{entryId:Qe.id,parentId:Qe.parentId,logicalId:Qe.logicalId??Qe.id,...Qe.sourceEntryId===void 0?{}:{sourceEntryId:Qe.sourceEntryId},timestamp:Qe.timestamp,type:"message",message:Qe.message,active:!0}]:[]):be.transcript.transcriptEntries,tn=await zn(f,pe,be.sourceRevision,ue);return{capture:be,revision:tn,lineage:Fe,transcriptEntries:pe}})());W={controller:Z,sessionSeq:_,sourceGeneration:B,promise:Re,waiters:0,settled:!1},q.set(f,W);let Ie=W,Ce=i(()=>{Ie.settled=!0,q.get(f)===Ie&&q.delete(f)},"settle");Re.then(Ce,Ce)}W.waiters+=1;try{return await xn(()=>W.promise,N)}finally{W.waiters-=1,W.waiters===0&&!W.settled&&(q.get(f)===W&&q.delete(f),W.controller.abort())}},"readMaterializedSessionCapture"),Wn=i(f=>{re.set(f,(re.get(f)??0)+1),q.delete(f)},"invalidateMaterializedSessionCapture"),Ms=i(()=>{if(!Y){for(let f of[...b.keys()])A(f);c!==void 0&&(F.rmSync(c,{recursive:!0,force:!0}),c=void 0),ne=0,he.clear(),P.clear(),ve.clear(),Se=0,L.clear(),X.clear(),Y=!0}},"finalizeTranscriptSnapshots"),_s=i((f=1)=>{try{Ms()}catch(N){if(process.emitWarning(`Deferred transcript snapshot cleanup failed: ${_e(N).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"}),f>=3)return;setTimeout(()=>_s(f+1),f*100).unref?.()}},"retryDeferredTranscriptSnapshotFinalization"),Os=i(()=>{$=!0,G();for(let f of T.values())f.controller.abort();T.clear();for(let f of D.values())f.controller.abort();D.clear();for(let f of q.values())f.controller.abort();q.clear(),re.clear()},"beginCloseTranscriptSnapshots");I(Os,i(async()=>{Os();let f=Promise.allSettled([...Ke]),N=!1;if(await Promise.race([f.then(()=>{N=!0}),new Promise(_=>{setTimeout(_,Sy).unref?.()})]),N){Ms();return}process.emitWarning("Runtime closed while transcript snapshot I/O was still pending; temporary files will be cleaned after the I/O settles.",{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLOSE_DEFERRED"}),f.then(()=>_s())},"disposeTranscriptSnapshots"));let Vl=i(async(f,N)=>{let _=En(N);for(let B=0;B<Hc;B+=1){let W=r.currentSessionSeq(f),[Z,ue,Re]=await Promise.all([Oe(f,_),xn(()=>l(f),_),xn(()=>v(f),_)]),Ie=await xn(()=>u.read(f),_),{capture:Ce,revision:be}=Z;Pe(_);let Fe=r.currentSessionSeq(f);if(W!==Fe)continue;let pe=He(f,be);if(pe===void 0)throw ke("Transcript snapshot is no longer retained; request a fresh boundary");let tn=await z(pe,_,()=>ls(pe,_));return{runtimeId:e.runtimeId,cursor:Fe,transcriptRevision:be,session:C(f,Ce.data),transcript:tn,settings:Ie,runs:ue,pendingPermissions:Re,live:r.projectSession(f)}}throw ke(`Session ${f} changed continuously while taking a snapshot`)},"captureObservationSnapshot"),Gl=i(async f=>{let N=En(f);for(let _=0;_<Hc;_+=1){let B=r.currentSessionSeq(f.sessionId),[W,Z]=await Promise.all([le(f.sessionId,N),xn(()=>f.runId===void 0?p(f.sessionId):R(f.runId).then(Re=>Re===void 0?[]:[Re]),N)]);Pe(N);let ue=r.currentSessionSeq(f.sessionId);if(B===ue)return{runtimeId:e.runtimeId,cursor:ue,transcriptRevision:XR(W.transcript),runs:Z.filter(Re=>Re.sessionId===f.sessionId)}}throw ke(`Session ${f.sessionId} changed continuously while taking a diagnostic snapshot`)},"captureDiagnosticBoundary"),bt=i((f,N)=>x.run(f,async()=>{s();let _=await d.loadExecutable(f);try{return await g(f,"mutate",()=>N(_))}finally{Wn(f)}}),"mutateActiveSession");return{async create(f={}){s(),d.assertCreate(f);let N=f.sessionId??await Vi();if(w.has(N))throw Object.assign(new Error(`Session already exists: ${N}`),{code:"conflict"});w.add(N);try{if(f.sessionId!==void 0&&await t.loadSession(N)!==null)throw Object.assign(new Error(`Session already exists: ${N}`),{code:"conflict"});let _=f.projectPath?Q.resolve(f.projectPath):void 0,B=f.gitRoot?Q.resolve(f.gitRoot):_,W=LR(f,_,B),Z={messages:[],title:f.title??"",gitRoot:B??"",...f.tag!==void 0?{tag:f.tag}:{},...W!==void 0?{runtimeInfo:W}:{},scope:"user"};f.sessionId===void 0?await t.storage.createGenerated(N,Z):await t.storage.save(N,Z);let ue=C(N,Z,new Date().toISOString());return r.emit("session.created",ue,{sessionId:N,runId:N}),ue}finally{w.delete(N)}},async load(f,N){s();let _=En(N),B=await d.loadRequired(f,Pe(_));return C(f,B)},async list(f){return s(),d.assertFilter(f),(await t.listSessions(f)).filter(d.admitsSummary).map(_l)},async status(f){s(),await d.loadRequired(f);let N=await l(f),_=zl(N);return{sessionId:f,runtimeId:e.runtimeId,observedAt:new Date().toISOString(),phase:_?.phase??"idle",..._!==void 0?{runId:_.runId}:{}}},async transcript(f,N){s();let _=En(N);return structuredClone((await le(f,_)).transcript)},async transcriptPage(f,N){s();let _=En(N);Pe(_);let B=f.cursor===void 0?void 0:xr(f.cursor).revision;if(B!==void 0){let Ce=He(f.sessionId,B);if(Ce===void 0)throw ke("Transcript snapshot is no longer retained; request a fresh boundary");return z(Ce,_,()=>ls(Ce,_,f.cursor,f.limit))}let W=await Oe(f.sessionId,_),ue=W.capture.transcript,Re=W.revision,Ie=He(f.sessionId,Re);if(Ie===void 0)throw ke("Transcript snapshot is no longer retained; request a fresh boundary");return z(Ie,_,()=>ls(Ie,_,void 0,f.limit))},async transcriptEntryChunk(f,N){s();let _=En(N);Pe(_);let B=He(f.sessionId,f.revision);if(B===void 0)throw ke("Transcript snapshot is no longer retained; request a fresh boundary");return z(B,_,()=>YR(f,B,_))},async transcriptSearch(f,N){s(),la(f.query);let _=En(N),B=await Oe(f.sessionId,_),Z=B.capture.transcript,ue=B.revision;await Vt(_);let Re=B.lineage,Ie=await ma(Re,{query:f.query,limit:f.limit,role:f.role,scope:f.scope},{revision:ue,checkpoint(){Pe(_)},yieldControl(){return Vt(_)}});Pe(_);let Ce=new Map;for(let Fe=0;Fe<B.transcriptEntries.length;Fe+=1){Fe%256===0&&await Vt(_);let pe=B.transcriptEntries[Fe]?.entryId;pe!==void 0&&Ce.set(pe,Fe)}Pe(_);let be=Ie.hits.flatMap(Fe=>{let pe=Ce.get(Fe.entryId);return pe===void 0?[]:[{...Fe,entryIndex:pe}]});return Pe(_),{revision:ue,hits:be}},async conversation(f,N){s();let _=En(N),B=await le(f,_);Pe(_);let W=oo(B,()=>Pe(_));await Vt(_);let Z=VR(W);Pe(_);let ue=structuredClone({...W,revision:Z});return Pe(_),ue},async conversationPage(f,N){s();let _=En(N);Pe(_);let B=f.limit??Sl;if(!Number.isSafeInteger(B)||B<=0)throw new Error("transcript page limit must be a positive safe integer");let W=Math.min(B,Il),Z=f.cursor===void 0?void 0:xr(f.cursor);if(Z===void 0||Z.kind==="conversation_cache_page")try{let pe=await t.storage.readConversationPageCache(f.sessionId,{...Z?.kind==="conversation_cache_page"?{expectedRevision:Z.revision,end:Z.end}:{},limit:W,maxPageBytes:It,maxInlineEntryBytes:Ai,reservedBytes:0,authorize:i(tn=>d.assertCachedIdentity(f.sessionId,tn),"authorize")},Pe(_));if(pe!==null)return S(pe)}catch(pe){throw pe instanceof io?Li():pe instanceof rn&&pe.code==="data_changed"?ke(pe.message):pe}let ue=Z===void 0?void 0:Z.revision;if(ue!==void 0){let pe=He(f.sessionId,ue,"conversation");if(pe===void 0)throw ke("Conversation snapshot is no longer retained; request a fresh boundary");return await ee(f.sessionId,pe,_),z(pe,_,()=>sl(pe,_,f.cursor,f.limit))}let Re=await le(f.sessionId,_);Pe(_);let Ie=oo(Re,()=>Pe(_));if(Re.transcript.lineage!==void 0)try{await t.storage.prepareConversationPageCache(f.sessionId,Ie,Re.transcript.lineage,Re.data.runtimeInfo,Re.boundaryRevision,Re.sourceRevisionState,Pe(_));let pe=await t.storage.readConversationPageCache(f.sessionId,{limit:W,maxPageBytes:It,maxInlineEntryBytes:Ai,reservedBytes:0,authorize:i(tn=>d.assertCachedIdentity(f.sessionId,tn),"authorize")},Pe(_));if(pe!==null)return S(pe)}catch(pe){if(pe instanceof io)throw Li();if(pe instanceof rn&&pe.code==="data_changed")throw ke(pe.message);process.emitWarning(`Unable to prepare bounded Conversation pages: ${_e(pe).message}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_FAILED"})}let Ce={sourceRevision:Ie.sourceRevision,status:Ie.status,issues:Ie.issues,boundaryRevision:Re.boundaryRevision},be=await zn(f.sessionId,Ie.entries,Ie.sourceRevision,_,"conversation",WR(Ie),Ce),Fe=He(f.sessionId,be,"conversation");if(Fe===void 0)throw ke("Conversation snapshot is no longer retained; request a fresh boundary");return z(Fe,_,()=>sl(Fe,_,void 0,f.limit))},async conversationEntryChunk(f,N){s();let _=En(N);if(Pe(_),!Number.isSafeInteger(f.entryIndex)||f.entryIndex<0)throw new Error(`Transcript entry index is out of range: ${f.entryIndex}`);let B=He(f.sessionId,f.revision,"conversation");if(B!==void 0)return await ee(f.sessionId,B,_),z(B,_,()=>QR(f,B,_));let W=0;if(f.cursor!==void 0){let Z=xr(f.cursor);if(Z.kind!=="entry"||Z.view!=="conversation"||Z.revision!==f.revision||Z.entryIndex!==f.entryIndex)throw ke("Conversation entry cursor is stale");W=Z.offset}try{let Z=await t.storage.readConversationPageCacheChunk(f.sessionId,{revision:f.revision,entryIndex:f.entryIndex,offset:W,authorize:i(ue=>d.assertCachedIdentity(f.sessionId,ue),"authorize")},Pe(_));if(Z!==null){let ue=Z.nextOffset!==void 0;return{revision:Z.revision,entryIndex:Z.entryIndex,...Z.boundaryId!==void 0?{boundaryId:Z.boundaryId}:{},encoding:"base64-json",data:Z.data.toString("base64"),hasMore:ue,...Z.nextOffset!==void 0?{nextCursor:Oi({kind:"entry",view:"conversation",revision:Z.revision,entryIndex:Z.entryIndex,offset:Z.nextOffset})}:{}}}}catch(Z){throw Z instanceof rn&&Z.code==="data_changed"?ke(Z.message):Z}throw ke("Conversation snapshot is no longer retained; request a fresh boundary")},async observe(f,N,_){s();let B=[],W,Z=!1,ue=!1,Re=!1,Ie=!1,Ce,be,Fe=new Promise(Ve=>{Ce=Ve}),pe=i((Ve,Cn)=>{Z||Ie||(Ie=!0,Qe.close(),be?.close(),Ce?.({code:"observation_invalidated",reason:Ve,runtimeId:e.runtimeId,message:Cn}))},"invalidate"),tn=i(Ve=>{if(!(Z||Ie)){if(W!==void 0&&Ve.seq<W){if(!ue)return;pe("event_order",`Session observation event order regressed from ${W} to ${Ve.seq}.`);return}if(!(W!==void 0&&Ve.seq===W)){W=Ve.seq;try{N(Ve)}catch(Cn){fe({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${Ve.type}`,detail:_e(Cn)}),pe("delivery_failed",`Session observation listener failed while delivering ${Ve.type}; discard local state and resync.`)}}}},"deliver"),Qe=r.service.subscribe({sessionId:f},Ve=>{if(ue)tn(Ve);else{if(B.length>=Ry){Re=!0,pe("event_overflow","Session observation handoff overflowed; acquire a fresh snapshot.");return}B.push(Ve)}});be=r.subscribeClose(()=>{pe("runtime_changed","Runtime closed; discard the observation and resync after reconnecting.")});try{let Ve=await Vl(f,_);if(Re)throw ke("Session observation handoff overflowed; acquire a fresh snapshot");W=Ve.cursor;let Cn={snapshot:Ve,invalidated:Fe,close(){Z||(Z=!0,B.length=0,Qe.close(),be?.close())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(Z||Ie)){for(;B.length>0;){let _r=B.splice(0).sort((je,hn)=>je.seq-hn.seq);for(let je of _r)tn(je)}ue=!0}})),Cn}catch(Ve){throw Z=!0,Qe.close(),be?.close(),Ve}},async diagnostics(f){s();let N=new Date().toISOString(),_=await Gl(f);return my(e,f,_,N)},async fork(f){if(s(),f.selector!==void 0&&f.historyBoundary!==void 0)throw new Error("fork accepts either selector or historyBoundary, not both");let N=await d.loadRequired(f.sessionId),_;try{_=f.historyBoundary===void 0?await t.forkSession(f.sessionId,{...f.selector!==void 0?{selector:f.selector}:{},...f.newSessionId!==void 0?{sessionId:f.newSessionId}:{},...f.title!==void 0?{title:f.title}:{}}):await t.storage.fork(f.sessionId,f.historyBoundary.entryId,{...f.newSessionId!==void 0?{sessionId:f.newSessionId}:{},...f.title!==void 0?{title:f.title}:{},historyBoundary:{sourceRevision:f.historyBoundary.sourceRevision}})}catch(W){throw hl(W)}if(!_&&f.historyBoundary!==void 0)return null;if(!_){let W=f.newSessionId??await Vi(),Z={...N,title:f.title??N.title,messages:N.messages.map(uw),actorSnapshot:void 0};await t.storage.save(W,Z);let ue=C(W,Z);return r.emit("session.created",ue,{sessionId:W,runId:W}),ue}let B=C(_.sessionId,_.data);return r.emit("session.created",B,{sessionId:_.sessionId,runId:_.sessionId}),B},async getSettingsVersioned(f){return s(),await d.loadRequired(f),u.read(f)},async getSettings(f){return(await this.getSettingsVersioned(f)).value},async getAutoModeStats(f){s(),await d.loadRequired(f);let N=(await u.read(f)).value;if(mn(N.permissionMode)!=="auto")return;let _=y(f);return{engine:N.autoModeEngine??_?.engine??"llm",...N.autoModeClassifierModel!==void 0?{classifierModel:N.autoModeClassifierModel}:{},classifierHealth:_?.classifierHealth??"healthy",denials:_?.denials??Qi(),breaker:_?.breaker??Zi()}},async updateSettings(f,N){return bt(f,async _=>(await u.update(f,N,void 0,B=>hs(_,B))).value)},async updateSettingsVersioned(f,N,_){return bt(f,B=>u.update(f,N,_.expectedRevision,W=>hs(B,W)))},async appendNotice(f){return bt(f.sessionId,async()=>{let N=await t.appendClientNotice(f.sessionId,{content:f.content,...f.source!==void 0?{source:f.source}:{}});return N&&r.emit("session.notice.appended",{sessionId:f.sessionId,entry:N},{sessionId:f.sessionId,runId:f.sessionId}),N})},async rewind(f){return bt(f.sessionId,async()=>{if(Jt(f.sessionId,a),f.selector!==void 0&&f.historyBoundary!==void 0)throw new Error("rewind accepts either selector or historyBoundary, not both");let N;try{N=f.historyBoundary===void 0?await t.rewindSession(f.sessionId,{...f.selector!==void 0?{selector:f.selector}:{}}):await t.storage.rewind(f.sessionId,f.historyBoundary.entryId,{historyBoundary:{sourceRevision:f.historyBoundary.sourceRevision}})}catch(B){throw hl(B)}if(!N)return null;let _=C(f.sessionId,N);return r.emit("session.rewound",{sessionId:f.sessionId,selector:f.selector,session:_},{sessionId:f.sessionId,runId:f.sessionId}),_})},async setActiveEntry(f){return bt(f.sessionId,async()=>{Jt(f.sessionId,a);let N=await t.setActiveEntry(f.sessionId,f.entryId);if(!N)return null;let _=C(f.sessionId,N);return r.emit("session.active_entry.updated",{sessionId:f.sessionId,entryId:f.entryId,session:_},{sessionId:f.sessionId,runId:f.sessionId}),_})},async compact(f){return bt(f.sessionId,async N=>{Jt(f.sessionId,a);let _=Date.now(),B=N.lineage?.entries.filter(Z=>Z.type==="compaction").length??0;r.emit("context.compaction.started",{meta:{contextId:f.sessionId,contextKind:"root",contextRevision:B}},{sessionId:f.sessionId,runId:f.sessionId});let W=B;try{let Z=(await u.read(f.sessionId)).value,ue=await t.compactSession(f.sessionId,{...f.provider!==void 0?{provider:f.provider}:{},...f.model!==void 0?{model:f.model}:{},...f.customInstructions!==void 0?{customInstructions:f.customInstructions}:{},...f.contextWindow!==void 0?{contextWindow:f.contextWindow}:{},...(f.triggerPercent??Z.compactionTriggerPercent)!==void 0?{triggerPercent:f.triggerPercent??Z.compactionTriggerPercent}:{},...(f.triggerTokens??Z.compactionTriggerTokens)!==void 0?{triggerTokens:f.triggerTokens??Z.compactionTriggerTokens}:{}}),Re=await t.loadSession(f.sessionId),Ie=Re?C(f.sessionId,Re):void 0;return W=Re?.lineage?.entries.filter(Ce=>Ce.type==="compaction").length??B,r.emit("context.compaction.finished",{contextId:f.sessionId,contextKind:"root",contextRevision:W,source:"manual",tokensBefore:ue.tokensBefore,tokensAfter:ue.tokensAfter,committed:ue.compacted,elapsedMs:Date.now()-_,beforeRevision:B,afterRevision:W,...ue.report??{},...ue.reason!==void 0?{reason:ue.reason}:{}},{sessionId:f.sessionId,runId:f.sessionId}),ue.compacted&&r.emit("session.compacted",{sessionId:f.sessionId,result:{compacted:ue.compacted,tokensBefore:ue.tokensBefore,tokensAfter:ue.tokensAfter},...Ie!==void 0?{session:Ie}:{}},{sessionId:f.sessionId,runId:f.sessionId}),{...ue,...Ie!==void 0?{session:Ie}:{}}}finally{r.emit("context.compaction.ended",{meta:{contextId:f.sessionId,contextKind:"root",contextRevision:W}},{sessionId:f.sessionId,runId:f.sessionId})}})},async archive(f){await x.run(f,async()=>{s(),await d.loadRequired(f),Jt(f,a),await g(f,"archive",async N=>{if(!N)throw new Error(`Actor owner is unavailable for Session archive: ${f}`);if(!await t.storage.archiveOwned(f,N))throw new Error(`Session not found or not archived: ${f}`)}),Wn(f)})},async unarchive(f){await x.run(f,async()=>{s(),await d.loadRequired(f),Jt(f,a),await g(f,"unarchive",async N=>{if(!N)throw new Error(`Actor owner is unavailable for Session unarchive: ${f}`);if(!await t.storage.unarchiveOwned(f,N))throw new Error(`Session not found or not unarchived: ${f}`)}),Wn(f)})},async delete(f){await x.run(f,async()=>{s(),await d.loadRequired(f),Jt(f,a),await g(f,"delete",async N=>{if(!N)throw new Error(`Actor owner is unavailable for Session deletion: ${f}`);let _=(await t.listRunningSessions()).find(B=>B.sessionId===f);_&&wl(f,{error:{code:"session_running",runningProcess:{pid:_.pid,startedAt:_.startedAt}}});try{await t.storage.deleteOwned(f,N)}catch(B){if(oe(B)&&(B.code==="actor_owner_conflict"||B.code==="actor_owner_unknown"))throw B;fe({source:"runtime.sessions",level:"error",message:"Owned Session deletion failed.",detail:{sessionId:f,error:B}}),wl(f,{error:{code:"delete_failed"}})}}),Wn(f),u.release(f),m(f)})}}}i(Fy,"createRuntimeSessionService");function qy(e){let n=new Map,t=new Map,r=new Map,o=new Map,s=new Map,a=i(c=>{let E=e.runs.get(c);if(!E)throw new Error(`Runtime run not found: ${c}`);return E},"getRecord"),u=i(async(c,E)=>{if(Ae(c.status.phase)||E?.ownedByRuntime===!0)return c.status;let $=c.owner??E?.observedOwner,Y=E===void 0?c.status:sn(E);if($===void 0)return{...Y,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let X=await mr($);if(X==="alive")return c.status;if(X==="unknown")return{...Y,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let L=Tl(c.status,e.bus,e.persistence);return e.runs.set(L.runId,bi(L,!1,$)),L},"observePersistedRun"),l=i(async(c,E)=>{if(E?.ownedByRuntime===!0)return sn(E);if(Ae(c.status.phase))return c.status;let $=c.owner??E?.observedOwner,Y=E===void 0?c.status:sn(E);if($===void 0)return{...Y,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let X=await mr($);return X==="alive"?c.status:{...Y,phase:"unknown",stage:"unknown",error:X==="dead"?"owner_recovery_required":"owner_liveness_unconfirmed"}},"inspectPersistedRun"),p=i(c=>{n.get(c.sessionId)===c.runId&&n.delete(c.sessionId)},"releaseActiveRun"),R=i(c=>{t.get(c.runId)?.(),t.delete(c.runId)},"releaseActiveQueueRoute"),v=i(c=>{c.releaseAbortSignalSubscription?.(),c.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),y=i(c=>{c.actorSession===void 0||t.has(c.runId)||t.set(c.runId,Js(ji(c.sessionId,"/root")))},"registerActiveQueueRoute"),x=i((c,E)=>{c.start?.resolve(E),c.start=void 0,delete c.providerCredential},"resolveRunStart"),g=i((c,E)=>(c.settlementFinished===!0||(c.settlementFinished=!0,v(c),e.permissions.rejectForRun(c.runId,"runtime run ended"),e.userInputs.rejectForRun(c.runId,"runtime run ended"),c.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),x(c,E),R(c),p(c),Oh(e.runs),q(c.sessionId)),E),"finishRun"),m=i((c,E)=>(c.settlementFinished===!0||(c.settlementFinished=!0,E.phase==="unknown"&&c.phase!=="unknown"&&(c.phase="unknown",c.stage="unknown",c.stageChangedAt=new Date().toISOString(),c.error=E.error?.message??"Actor settlement persistence is unknown.",ne(c)),v(c),e.permissions.rejectForRun(c.runId,"runtime run state is unknown"),e.userInputs.rejectForRun(c.runId,"runtime run state is unknown"),c.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),x(c,E),R(c)),E),"finishUnconfirmedRun"),d=i(async c=>{let E=c.actorFinalizationAbortController??=new AbortController,$=i(()=>({state:"unknown",code:"actor_settlement_not_persisted",message:"Actor finalization could not be confirmed within the bounded grace period."}),"finalizationTimedOut"),Y=new AbortController,X,L=Number.POSITIVE_INFINITY,K,G=new Promise(me=>{K=me}),J=i(me=>{let Me=Date.now()+me;Me>=L||(X!==void 0&&clearTimeout(X),L=Me,X=setTimeout(()=>{Y.abort(new Error("Actor finalization grace expired")),K?.($())},me),X.unref?.())},"scheduleFinalizationTimer"),U=i(()=>{J(Iy)},"startCancellationTimer");J(ky),E.signal.addEventListener("abort",U,{once:!0}),(E.signal.aborted||c.stop!==void 0||e.isClosed()||c.running?.aborted===!0||c.abortController?.signal.aborted===!0||c.start?.options.abortSignal?.aborted===!0)&&U();let se=i(async()=>{for(;;){if(Y.signal.aborted)return $();let me=c.actorSession;if(me===void 0)return{state:"healthy"};let Me=me.health();if(Me.state==="recovering"){let We=e.waitForActorHealthChange(c.sessionId),nn,k=new Promise(H=>{nn=H}),A=i(()=>nn?.(),"handleFinalizationAbort");Y.signal.addEventListener("abort",A,{once:!0});try{await Promise.race([We.promise,k])}finally{Y.signal.removeEventListener("abort",A),nn=void 0,We.close()}continue}if(Me.state==="unknown")return Me;let $e=me.rootControl(),we=$e.list();if(we.activeNonRootTurns>0){if(c.stop?.state!=="unknown"){let k=c.phase!=="waiting_agent",A=c.activeSubtaskCount!==we.activeNonRootTurns;k&&(c.phase="waiting_agent",c.stage="waiting_agent",c.stageChangedAt=new Date().toISOString()),c.activeSubtaskCount=we.activeNonRootTurns,(k||A)&&ne(c)}let We=$e.eventSnapshot().at(-1)?.sequence??0;if($e.list().activeNonRootTurns===0)continue;let nn=e.waitForActorHealthChange(c.sessionId);try{await Promise.race([$e.wait(We,void 0,Y.signal),nn.promise])}finally{nn.close()}continue}await Promise.resolve();let Xe=me.health();if(Xe.state!=="recovering"&&!($e.list().activeNonRootTurns>0))return Xe}},"finalize");try{return await Promise.race([se(),G])}finally{E.signal.removeEventListener("abort",U),X!==void 0&&clearTimeout(X),Y.abort()}},"awaitActorFinalization"),I=i((c,E)=>({runId:c.runId,sessionId:c.sessionId,phase:"unknown",...E!==void 0?{result:E}:{},error:new Error(c.lifecycleError?.message??c.error??"Actor settlement persistence is unknown."),...c.stop!==void 0?{stop:c.stop}:{}}),"unknownActorSettlementResult"),w=i((c,E)=>c.terminalEmitted?g(c,E):m(c,E),"finishAccordingToTerminalFact"),C=i((c,E,$)=>{c.terminalEmitted||c.executorTerminalSignal!==void 0||(c.interruptInputOpen=!1,c.executorTerminalSignal={signal:E,...$!==void 0?{error:$}:{},interruptedAtSignal:c.running?.aborted===!0||c.start?.options.abortSignal?.aborted===!0||c.abortController?.signal.aborted===!0},setImmediate(()=>{(async()=>{if(c.settlementFinished===!0)return;let Y=c.executorTerminalSignal;if(Y===void 0)return;if((await d(c)).state==="unknown"){m(c,I(c));return}if(Y.signal==="failed"){g(c,S(c,Y.error??new Error("Runtime executor reported failure")));return}c.terminalEmitted||Gt(e.bus,e.persistence,c,Y.interruptedAtSignal?"interrupted":"completed"),g(c,{runId:c.runId,sessionId:c.sessionId,phase:c.phase,...c.terminal!==void 0?{terminal:c.terminal}:{},...c.stop!==void 0?{stop:c.stop}:{}})})().catch(Y=>{fe({source:"runtime.run.finalization",level:"error",message:`Failed to settle Runtime run ${c.runId} after its executor terminal signal.`,detail:Y})})}))},"settleFromExecutorSignal"),S=i((c,E)=>{let $=$h(E,c),Y=qh(E),X=c.terminalEmitted?c.phase:Y.phase;return c.terminalEmitted||(c.error=$.message),Gt(e.bus,e.persistence,c,X,Y.terminal),{runId:c.runId,sessionId:c.sessionId,phase:c.phase,error:$,...c.stop!==void 0?{stop:c.stop}:{}}},"failedRunResult"),b=i(c=>{let E=c.actorSession;return E===void 0||E.health().state==="healthy"&&E.rootControl().list().activeNonRootTurns===0},"canApplyExecutorTerminalSignal"),P=i((c,E,$)=>{let Y=c.executorTerminalSignal;if(Y!==void 0&&!c.terminalEmitted&&b(c))return Y.signal==="failed"?S(c,Y.error??new Error("Runtime executor reported failure")):(Gt(e.bus,e.persistence,c,Y.interruptedAtSignal?"interrupted":"completed"),{runId:c.runId,sessionId:c.sessionId,phase:c.phase,...c.terminal!==void 0?{terminal:c.terminal}:{},...c.stop!==void 0?{stop:c.stop}:{}});if(Y!==void 0&&c.terminalEmitted)return{runId:c.runId,sessionId:c.sessionId,phase:c.phase,...c.terminal!==void 0?{terminal:c.terminal}:{},...c.stop!==void 0?{stop:c.stop}:{}};let X=c.phase==="queued";X&&Bc(s,c),delete c.actorHealthBaseState;let L=new Date().toISOString();if(c.stop??={requestedAt:L,state:X?"confirmed":"unknown",outcome:X?"cancelled":"unknown",reason:E,...X?{resolvedAt:L}:{}},v(c),c.running?.abort(new Error(E)),c.abortController?.abort(new Error(E)),c.actorFinalizationAbortController?.abort(new Error(E)),e.permissions.rejectForRun(c.runId,E),e.userInputs.rejectForRun(c.runId,E),c.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),!X){c.interruptInputOpen=!1,ws(c),c.phase="unknown",c.stage="unknown",c.stageChangedAt=L,c.error="stop_outcome_unconfirmed",c.lifecycleError?.retryable!==!1&&delete c.lifecycleError,ne(c);let G={runId:c.runId,sessionId:c.sessionId,phase:c.phase,...c.stop!==void 0?{stop:c.stop}:{}};return $||(x(c,G),R(c),p(c)),G}Gt(e.bus,e.persistence,c,"cancelled",{code:"cancelled",effectOutcome:"none",message:E});let K={runId:c.runId,sessionId:c.sessionId,phase:c.phase,...c.stop!==void 0?{stop:c.stop}:{}};return x(c,K),R(c),p(c),$&&!e.isClosed()&&q(c.sessionId),K},"cancelRun"),T=i(c=>{if(!c.start||e.isClosed()){P(c,"runtime closed",!1);return}c.phase="running",c.stage="executing",c.stageChangedAt=new Date().toISOString(),delete c.activeSubtaskCount,c.interruptInputOpen=c.actorSession!==void 0,c.queuedAt=void 0,c.runningAt=new Date().toISOString(),n.set(c.sessionId,c.runId);let E=sn(c),$=Un(e.bus,e.persistence,c,E);if($===void 0)throw p(c),new Error(`Failed to persist running Runtime run: ${c.runId}`);if($!==E)throw ht(c,$),p(c),Kn(`Runtime run already exists: ${c.runId}`,c.sessionOrder);e.bus.emit("run.started",E,{sessionId:c.sessionId,runId:c.runId});let Y=NR({bus:e.bus,original:c.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:c,onExecutorTerminal:i((U,se)=>C(c,U,se),"onExecutorTerminal"),onPhase:i(U=>{if(c.terminalEmitted||c.executorTerminalSignal!==void 0||c.phase==="unknown"||c.stop?.state==="unknown")return;let se=U==="running"?"executing":U==="waiting_agent"?"waiting_agent":U==="recovering"?"recovering":void 0,me=c.actorHealthBaseState;if(me!==void 0){me.phase=U,se!==void 0&&(me.stage=se);return}c.phase===U&&(se===void 0||c.stage===se)||(c.phase=U,se!==void 0&&c.stage!==se&&(c.stage=se,c.stageChangedAt=new Date().toISOString()),ne(c))},"onPhase"),onStage:i((U,se)=>{if(c.terminalEmitted||c.executorTerminalSignal!==void 0||c.phase==="unknown"||c.stop?.state==="unknown")return;let me=c.actorHealthBaseState;if(me!==void 0){me.stage=U,se===void 0?delete c.activeSubtaskCount:c.activeSubtaskCount=se;return}let Me=c.activeSubtaskCount!==se;c.stage===U&&!Me||(c.stage!==U&&(c.stage=U,c.stageChangedAt=new Date().toISOString()),se===void 0?delete c.activeSubtaskCount:c.activeSubtaskCount=se,ne(c))},"onStage"),onMidTurnUserMessages:i(U=>he(c,U),"onMidTurnUserMessages")}),X=Uy({agentPlane:e.agentPlane,defaultConfigHome:e.defaultConfigHome,events:Y,model:c.model,options:c.start.options,provider:c.provider,record:c,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:c.sessionId,runId:c.runId,provider:c.provider,...c.model!==void 0?{model:c.model}:{},...X.effort!==void 0?{effort:X.effort}:{},...X.thinking!==void 0?{thinking:X.thinking}:{},...X.reasoningMode!==void 0?{reasoningMode:X.reasoningMode}:{},...X.agentMode!==void 0?{agentMode:X.agentMode}:{},...c.permissionMode!==void 0?{permissionMode:c.permissionMode}:{},...c.autoModeEngine!==void 0?{autoModeEngine:c.autoModeEngine}:{},...c.autoModeClassifierModel!==void 0?{autoModeClassifierModel:c.autoModeClassifierModel}:{},...c.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:c.autoModeTimeoutMs}:{},...c.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:c.autoModeSpeculativeWindowMs}:{},...X.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:X.compaction.triggerPercent}:{},...X.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:X.compaction.triggerTokens}:{},...X.context?.executionCwd!==void 0?{executionCwd:X.context.executionCwd}:{},...X.context?.shellExecution!==void 0?{shellKind:X.context.shellExecution.shell.kind,shellExecutionFingerprint:Gi(X.context.shellExecution)}:{}},{sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{}}),c.mode==="managed_task"){let U=new AbortController;c.abortController=U;let se=X.abortSignal,me=i(()=>{c.releaseAbortSignalSubscription=void 0,c.interruptInputOpen=!1;let we=se?.reason;P(c,we instanceof Error?we.message:typeof we=="string"&&we.trim().length>0?we:"external abort requested",!0)},"handleUpstreamAbort");se?.aborted&&me();let Me=i(()=>Sa({...X,abortSignal:U.signal},c.start.prompt),"managedOperation"),$e=c.providerCredential!==void 0?qi(c.provider,c.providerCredential,Me):Me();se!==void 0&&!se.aborted?(se.addEventListener("abort",me,{once:!0}),c.releaseAbortSignalSubscription=()=>{se.removeEventListener("abort",me)}):se?.aborted&&!U.signal.aborted&&me(),y(c),$e.then(async we=>{let Xe=c.terminalEmitted?c.phase:we.interrupted?"interrupted":we.success?"completed":"failed",We=!we.success&&!we.interrupted&&we.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...we.signalReason!==void 0?{message:we.signalReason}:{}}:void 0;return(await d(c)).state==="unknown"?I(c,we):(Gt(e.bus,e.persistence,c,Xe,We),{runId:c.runId,sessionId:c.sessionId,phase:c.phase,result:we,...c.terminal!==void 0?{terminal:c.terminal}:{},...c.stop!==void 0?{stop:c.stop}:{}})}).catch(async we=>(await d(c)).state==="unknown"?I(c):S(c,we)).then(we=>w(c,we));return}let L=i(()=>va(X,c.start.prompt),"codingOperation"),K=c.providerCredential!==void 0?qi(c.provider,c.providerCredential,L):L();c.running=K;let G=X.abortSignal,J=i(()=>{c.releaseAbortSignalSubscription=void 0,c.interruptInputOpen=!1;let U=G?.reason;P(c,U instanceof Error?U.message:typeof U=="string"&&U.trim().length>0?U:"external abort requested",!0)},"handleUpstreamAbort");G?.aborted?J():G!==void 0&&(G.addEventListener("abort",J,{once:!0}),c.releaseAbortSignalSubscription=()=>{G.removeEventListener("abort",J)}),y(c),K.result.then(async U=>{let se=c.terminalEmitted?c.phase:U.interrupted?"interrupted":U.success?"completed":"failed";return(await d(c)).state==="unknown"?I(c,U):(Gt(e.bus,e.persistence,c,se),{runId:c.runId,sessionId:c.sessionId,phase:c.phase,result:U,...c.stop!==void 0?{stop:c.stop}:{}})}).catch(async U=>(await d(c)).state==="unknown"?I(c):S(c,U)).then(U=>w(c,U))},"launchRecord"),D=i(c=>{try{T(c);return}catch(E){return d(c).then($=>{if($.state==="unknown"){m(c,I(c));return}g(c,S(c,E))}),{error:E}}},"startRecord"),q=i(c=>{let E=s.get(c);if(!E||E.length===0||n.has(c))return;let $=E.shift();if(E.length===0&&s.delete(c),!$)return;let Y=e.runs.get($);if(!Y||Y.phase!=="queued"){q(c);return}D(Y)},"drainNext"),re=i(c=>{let E=sn(c),$=Un(e.bus,e.persistence,c,E);if($===void 0)throw new Error(`Failed to persist queued Runtime run: ${c.runId}`);if($!==E)throw ht(c,$),Kn(`Runtime run already exists: ${c.runId}`,c.sessionOrder);let Y=s.get(c.sessionId)??[];Y.push(c.runId),s.set(c.sessionId,Y),e.bus.emit("run.queued",E,{sessionId:c.sessionId,runId:c.runId})},"enqueue"),ne=i(c=>{let E=sn(c),$=Un(e.bus,e.persistence,c,E);if($!==void 0){if($!==E){ht(c,$);return}e.bus.emit("run.updated",E,{sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{}})}},"publishRunUpdate"),he=i((c,E)=>{let $=new Map;for(let J of c.interruptInputs)J.state==="queued"&&J.queueMessageId!==void 0&&$.set(J.queueMessageId,J);let Y=[],X=new Set;for(let J of E){if(X.has(J))continue;X.add(J);let U=$.get(J);U!==void 0&&Y.push(U)}if(Y.length===0)return;let L=new Date().toISOString(),K=Y.map(J=>{if(J.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${J.inputId}`);return{inputId:J.inputId,afterRunId:J.afterRunId,input:J.input,queuedAt:J.queuedAt,deliveredAt:L,...J.origin!==void 0?{origin:J.origin}:{}}}),G={sessionId:c.sessionId,runId:c.runId,...c.turnId!==void 0?{turnId:c.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:K},G,()=>{for(let J of Y)J.state="delivered",J.deliveredAt=L,delete J.queueMessageId})}catch(J){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${_e(J).message}`,inputIds:Y.map(U=>U.inputId)},G),J}ne(c)},"deliverInterruptInputs"),ve=e.settingsOwner.subscribe((c,E)=>{for(let $ of e.runs.values())$.sessionId!==c||$.phase!=="queued"&&!Rn($.phase)||($.permissionMode=E.value.permissionMode,$.autoModeEngine=mn(E.value.permissionMode)==="auto"?E.value.autoModeEngine??"llm":E.value.autoModeEngine,$.autoModeClassifierModel=E.value.autoModeClassifierModel,$.autoModeTimeoutMs=E.value.autoModeTimeoutMs,$.autoModeSpeculativeWindowMs=E.value.autoModeSpeculativeWindowMs,ne($))}),Ke=i(async(c,E)=>{e.ensureOpen();let $=il(c,e.artifacts,E),Y=await e.sessionAdmission.loadExecutable(c.sessionId),X=(await e.settingsOwner.read(c.sessionId)).value;hs(Y,X);let L=$R(c.options??{},X,$.inputArtifacts,Y),K=await e.actorRegistry.forSession(c.sessionId,L.maxConcurrentThreadsPerSession),G=L.agentMode==="sa"?void 0:K;if(G!==void 0){let z=G.health(),ee=z.state==="recovering"?await e.waitForActorHealthResolution(c.sessionId,z):z;if(ee.state==="unknown")throw Object.assign(new Error(ee.message??"Actor settlement persistence is unknown; the Session cannot start another Run."),{code:ee.code??"actor_settlement_not_persisted",retryable:!1})}let J=L.provider??e.defaultProvider;if(!J)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let U=c;if(U.providerCredential!==void 0&&U.providerCredentialProvider!==void 0&&U.providerCredentialProvider!==J)throw sw(`Credential lease is bound to ${U.providerCredentialProvider}, not ${J}.`);let se=L.modelOverride??L.model??e.defaultModel??js(J)[0]?.id,me=c.trustedRunId??Th();if(e.runs.has(me))throw Kn(`Runtime run already exists: ${me}`,0);let Me=e.enableSharedInteractions||mn(X.permissionMode)==="auto";if(sh(X,se),Me&&L.guardrails?.some(z=>z.kind==="tool"&&z.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let $e=Me?Gh({sessionId:c.sessionId,provider:J,model:se,options:L,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let z=n.get(c.sessionId);return z===void 0?void 0:e.runs.get(z)},"getRecord"),onPhase:i((z,ee)=>{z.terminalEmitted||z.executorTerminalSignal!==void 0||z.phase==="unknown"||z.stop?.state==="unknown"||z.phase===ee||(z.phase=ee,ne(z))},"onPhase"),onEngineChange:i(z=>{for(let ee of e.runs.values())ee.sessionId===c.sessionId&&(ee.phase==="queued"||Rn(ee.phase))&&ee.autoModeEngine!==z&&(ee.autoModeEngine=z,ne(ee));e.settingsOwner.persistAutoModeEngine(c.sessionId,z).catch(ee=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${_e(ee).message}`},{sessionId:c.sessionId,runId:c.sessionId})})},"onEngineChange")}):void 0;await $e?.prepare?.();let we=$e===void 0?L:{...L,guardrails:[...L.guardrails??[],$e]},Xe=new Date().toISOString(),We=i(()=>{},"resolveResult"),nn=new Promise(z=>{We=z}),k=c.requiredAfterRunId,A=k===void 0?void 0:a(k);if(A!==void 0){if(A.sessionId!==c.sessionId)throw new Error(`Runtime continuation target ${k} does not belong to session ${c.sessionId}`);if(!Rn(A.phase)&&A.phase!=="queued")throw new Pi(A.runId)}let H=e.persistence.nextSessionOrder(c.sessionId),O=A!==void 0||n.has(c.sessionId),j={runId:me,sessionId:c.sessionId,phase:O?"queued":"running",stage:O?"queued":"executing",stageChangedAt:Xe,startedAt:Xe,sessionOrder:H,...O?{queuedAt:Xe}:{},provider:J,...se!==void 0?{model:se}:{},...c.permissionBroker!==void 0?{permissionBroker:c.permissionBroker}:{},...X.permissionMode!==void 0?{permissionMode:X.permissionMode}:{},...X.autoModeClassifierModel!==void 0?{autoModeClassifierModel:X.autoModeClassifierModel}:{},...X.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:X.autoModeTimeoutMs}:{},...X.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:X.autoModeSpeculativeWindowMs}:{},...mn(X.permissionMode)==="auto"?{autoModeEngine:X.autoModeEngine??"llm"}:X.autoModeEngine!==void 0?{autoModeEngine:X.autoModeEngine}:{},...L.reasoningMode!==void 0?{reasoning:L.reasoningMode}:{},mode:c.mode??"coding",...c.providerCredential!==void 0?{providerCredential:c.providerCredential}:{},hadProviderCredential:c.providerCredential!==void 0,...c.origin!==void 0?{origin:c.origin}:{},...k!==void 0?{continuation:{inputId:me,afterRunId:k,delivery:"after_turn",contentPreview:al($.prompt)}}:{},interruptInputs:[],...c.agentContext??e.defaultAgentContext?{agentContext:c.agentContext??e.defaultAgentContext}:{},...G?{actorSession:G}:{},interruptInputOpen:!1,result:nn,start:{prompt:$.prompt,inputArtifacts:$.inputArtifacts,options:we,resolve:We},terminalEmitted:!1,ownedByRuntime:!0};if(e.runs.set(me,j),O)re(j);else{let z=D(j);if(z!==void 0)throw z.error}return{runId:me,sessionId:c.sessionId,get turnId(){return j.turnId},result:nn}},"startRun"),Se=i((c,E="runtime.runs.start")=>e.sessionOperations.run(c.sessionId,()=>Ke(c,E)),"start");return{start:Se,async submitInput(c){e.ensureOpen(),await e.sessionAdmission.loadRequired(c.sessionId);let E=a(c.afterRunId);if(E.sessionId!==c.sessionId)throw new Error(`Runtime continuation target ${c.afterRunId} does not belong to session ${c.sessionId}`);if(c.delivery==="interrupt"){if(E.actorSession===void 0&&Rn(E.phase)&&n.get(c.sessionId)===E.runId)return{accepted:!1,delivery:c.delivery,sessionId:c.sessionId,afterRunId:c.afterRunId,reason:"unsupported_capability"};if(!E.interruptInputOpen)return{accepted:!1,delivery:c.delivery,sessionId:c.sessionId,afterRunId:c.afterRunId,reason:"interrupt_window_closed"};if(!Rn(E.phase)||n.get(c.sessionId)!==E.runId)return{accepted:!1,delivery:c.delivery,sessionId:c.sessionId,afterRunId:c.afterRunId,reason:"stale_run"};if(c.credential!==void 0||c.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let L=il({sessionId:c.sessionId,input:c.input},e.artifacts,"runtime.runs.submitInput"),K=structuredClone(c.input),G=c,J=G.trustedInputId??Dh();if(E.interruptInputs.some(Me=>Me.inputId===J))throw Kn(`Runtime interrupt input already exists: ${J}`,0);let U=Ys({sessionId:c.sessionId,content:L.prompt,inputArtifacts:L.inputArtifacts,provider:E.provider,...E.model!==void 0?{model:E.model}:{}}),se=new Date().toISOString(),me={inputId:J,afterRunId:c.afterRunId,delivery:"interrupt",state:"queued",contentPreview:al(L.prompt),queuedAt:se,...G.origin!==void 0?{origin:G.origin}:{},input:K,queueMessageId:U};return E.interruptInputs.push(me),ne(E),e.bus.emit("run.input.queued",{input:Xl(me)},{sessionId:E.sessionId,runId:E.runId,...E.turnId!==void 0?{turnId:E.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:J,runId:E.runId,sessionId:c.sessionId,afterRunId:c.afterRunId,sessionOrder:E.sessionOrder}}if(!Rn(E.phase)&&E.phase!=="queued")return{accepted:!1,delivery:c.delivery,sessionId:c.sessionId,afterRunId:c.afterRunId,reason:"stale_run"};let $=c,Y;try{Y=await Se({sessionId:c.sessionId,input:c.input,...$.options!==void 0?{options:$.options}:{},...$.providerCredential!==void 0?{providerCredential:$.providerCredential}:{},...$.providerCredentialProvider!==void 0?{providerCredentialProvider:$.providerCredentialProvider}:{},...$.origin!==void 0?{origin:$.origin}:{},...$.trustedRunId!==void 0?{trustedRunId:$.trustedRunId}:{},requiredAfterRunId:c.afterRunId},"runtime.runs.submitInput")}catch(L){if(!(L instanceof Pi))throw L;return{accepted:!1,delivery:c.delivery,sessionId:c.sessionId,afterRunId:c.afterRunId,reason:"stale_run"}}let X=a(Y.runId).sessionOrder;return{accepted:!0,delivery:c.delivery,runId:Y.runId,sessionId:c.sessionId,afterRunId:c.afterRunId,sessionOrder:X}},async await(c){e.ensureOpen();let E=e.runs.get(c);if(E?.ownedByRuntime===!0)return await e.sessionAdmission.assertRunAccess(E.sessionId),E.result;let $=e.persistence.loadRunStatus(c);if($)return await e.sessionAdmission.assertRunAccess($.status.sessionId),Ul(await u($,e.runs.get(c)));if(E)return await e.sessionAdmission.assertRunAccess(E.sessionId),E.result;throw new Error(`Runtime run not found: ${c}`)},async get(c){e.ensureOpen();let E=e.runs.get(c),$=e.persistence.loadRunStatus(c);if($&&(await e.sessionAdmission.assertRunAccess($.status.sessionId),E===void 0||!E.ownedByRuntime||Ae($.status.phase)))return u($,E);if(E)return await e.sessionAdmission.assertRunAccess(E.sessionId),sn(E);throw new Error(`Runtime run not found: ${c}`)},async list(c){e.ensureOpen(),c?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(c.sessionId);let E=e.persistence.loadRunStatuses(),$=await Promise.all(E.map(L=>u(L,e.runs.get(L.status.runId)))),Y=new Map($.map(L=>[L.runId,L]));for(let L of e.runs.values()){let K=Y.get(L.runId);!L.ownedByRuntime||K!==void 0&&Ae(K.phase)||Y.set(L.runId,sn(L))}let X=[...Y.values()].filter(L=>ml(L,c));return ol(ll(cl(X)),e.sessionAdmission)},async inspect(c){e.ensureOpen(),c?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(c.sessionId);let E=e.persistence.loadRunStatuses(),$=await Promise.all(E.map(L=>l(L,e.runs.get(L.status.runId)))),Y=new Map($.map(L=>[L.runId,L]));for(let L of e.runs.values())!L.ownedByRuntime||Ae(L.phase)||Y.set(L.runId,sn(L));let X=[...Y.values()].filter(L=>ml(L,c));return ol(ll(cl(X)),e.sessionAdmission)},async inspectOne(c){e.ensureOpen();let E=e.runs.get(c),$=e.persistence.loadRunStatus(c);if($!==void 0)return await e.sessionAdmission.assertRunAccess($.status.sessionId),l($,E);if(E!==void 0)return await e.sessionAdmission.assertRunAccess(E.sessionId),sn(E)},async abort(c){e.ensureOpen();let E=e.runs.get(c),$=e.persistence.loadRunStatus(c),Y=E?.sessionId??$?.status.sessionId;if(Y===void 0)throw new Error(`Runtime run not found: ${c}`);if(await e.sessionAdmission.assertRunAccess(Y),E!==void 0&&Si(E,e.runOwner),E?.executorTerminalSignal!==void 0&&!E.terminalEmitted&&b(E)){P(E,"runtime run aborted",!1);let L=e.persistence.loadRunStatus(c);return fs({accepted:!1,status:L?.status??sn(E),revision:L?.revision??0})}let X=e.persistence.requestRunStop(c,"runtime run aborted");if(E===void 0)return fs(X);if(ht(E,X.status),X.status.stop!==void 0&&E.actorFinalizationAbortController?.abort(new Error("runtime run aborted")),X.status.stop?.state==="unknown"&&delete E.actorHealthBaseState,X.accepted){let L=X.status.phase==="cancelled";if(L&&Bc(s,E),v(E),E.running?.abort(new Error("runtime run aborted")),E.abortController?.abort(new Error("runtime run aborted")),e.permissions.rejectForRun(E.runId,"runtime run aborted"),e.userInputs.rejectForRun(E.runId,"runtime run aborted"),E.start?.options.guardrails?.find(Qt)?.clearAllowedCalls(),E.interruptInputOpen=!1,ws(E),L){e.bus.emit("run.cancelled",X.status,{sessionId:E.sessionId,runId:E.runId,...E.turnId!==void 0?{turnId:E.turnId}:{}});let K={runId:E.runId,sessionId:E.sessionId,phase:E.phase,...E.terminal!==void 0?{terminal:E.terminal}:{},...E.stop!==void 0?{stop:E.stop}:{}};x(E,K),R(E),p(E),e.isClosed()||q(E.sessionId)}else e.bus.emit("run.updated",X.status,{sessionId:E.sessionId,runId:E.runId,...E.turnId!==void 0?{turnId:E.turnId}:{}})}return fs(X)},async setModel(c,E){e.ensureOpen();let $=a(c);await e.sessionAdmission.assertRunAccess($.sessionId),Si($,e.runOwner),$.model=E,$.running?.setModel(E),ne($)},async setProvider(c,E){e.ensureOpen();let $=a(c);await e.sessionAdmission.assertRunAccess($.sessionId),Si($,e.runOwner),$.provider=E,$.running?.setProvider(E),ne($)},async setReasoning(c,E){e.ensureOpen();let $=a(c);await e.sessionAdmission.assertRunAccess($.sessionId),Si($,e.runOwner),$.reasoning=E,$.running?.setReasoning(E),ne($)},closeAll(c){ve.close();for(let E of e.runs.values())E.ownedByRuntime&&(E.phase==="queued"||Rn(E.phase)||E.phase==="unknown")&&P(E,c,!1);n.clear(),r.clear(),o.clear(),s.clear()},releaseSession(c){for(let E of r.get(c)?.values()??[])E.guardrail.clearAllowedCalls();r.delete(c),o.delete(c)},getAutoModeStats(c){let E=o.get(c);return E===void 0?void 0:{engine:E.engine,classifierHealth:xa(E.breaker,Date.now())?"degraded":"healthy",denials:E.denials,breaker:E.breaker}}}}i(qy,"createRuntimeRunService");function $y(){let e=fa();return{async list(n){let t=e.list(),r=n?.runId?t.filter(o=>o.runId===n.runId):t;return n?.limit===void 0?r:r.slice(0,n.limit)},async get(n){return e.getWorkflowProcessSnapshot(n)},subscribe(n,t){return{close:e.subscribeWorkflowProcess(o=>{n.runId&&o.snapshot.runId!==n.runId||n.activeOnly===!0&&Hh(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($y,"createRuntimeWorkflowService");function jy(e,n){return{async read(){return e(),Yt(Zn(n))},async patch(t){return e(),dh(t,"runtime.config.patch"),lh(n,uh(t)),Yt(Zn(n))},async reload(){return e(),n!==void 0?(Bl(n),{ok:!0,config:Yt(Zn(n))}):{ok:!0,config:Yt(Oa())}}}}i(jy,"createRuntimeConfigService");function By(e,n){return{async providers(){return e(),no()},async models(t){return e(),Ih(no(),t)},async commands(t){return e(),ul(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return ul(t.projectRoot).find(o=>o.name.trim().toLowerCase()===r||(o.aliases??[]).some(s=>s.trim().toLowerCase()===r))??null},async skills(t){e();let r=await zi(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(xh)},async describeSkill(t){e();let r=await zi(t.projectRoot);return r.has(t.name)?Ch(await r.loadFull(t.name)):null},async customProviders(){return e(),fh(n)},async upsertCustomProvider(t){return e(),ph(n,t)},async deleteCustomProvider(t){return e(),gh(n,t)},async extensions(){e();let t=Pt();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=Pt();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(By,"createRuntimeCatalogService");function Ky(e,n){return{async listServers(){return e(),ms(n)},async getServer(t){return e(),Rh(n,t)},async validateServer(t,r){e();try{return to(t,r),{ok:!0,config:structuredClone(r)}}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}},async upsertServer(t,r){return e(),hh(n,t,r)},async deleteServer(t){return e(),wh(n,t)},async reloadServers(){e();let t=Wi(ms(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=ms(n),o=t?.server!==void 0?[t.server]:Object.keys(r),s=Wi(r);try{let a=[];for(let u of o)a.push(await s.listTools(u,{forceRefresh:t?.forceRefresh===!0}));return a}finally{await s.dispose()}}}}i(Ky,"createRuntimeMcpService");function Xy(){let e=new Map;return{service:{async create(r){if(!qR(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=Q.resolve(r.path),s;try{s=await F.promises.stat(o)}catch(l){throw new Error(`Runtime artifact path is not readable: ${o}`,{cause:l})}if(!s.isFile())throw new Error(`Runtime artifact path must be a regular file: ${o}`);if(s.size>Nc)throw new Error(`Runtime artifact exceeds the ${Nc}-byte limit: ${o}`);let a=`art_${Je().replace(/-/g,"").slice(0,12)}`,u={id:a,kind:r.kind,path:o,sizeBytes:s.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(a,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(Xy,"createRuntimeArtifactStore");function Uy(e){let{agentPlane:n,events:t,model:r,options:o,provider:s,record:a,sessionManager:u}=e,l=o.events?.exitPlanMode===void 0,{configHome:p,memoryIdentity:R,shellSandbox:v,...y}=o.context??{},x=o.guardrails?.find(Qt),g=o.context?.gitRoot??o.context?.executionCwd,m=x!==void 0&&g!==void 0?Va({workspaceRoot:g,shouldSandbox:i(C=>x.consumeWorkspaceSandboxCall(C),"shouldSandbox")}):void 0,d=m!==void 0&&v!==void 0?{async prepare(C){let S,b=await m.prepare({...C,reportObservation:i(q=>{S=q},"reportObservation")});if(b!==void 0)return b;let P,T=await v.prepare({...C,reportObservation:i(q=>{P=q},"reportObservation")});if(T!==void 0)return T;let D=[P,S].find(q=>q?.state==="fallback")??P??S;D!==void 0&&C.reportObservation?.(D)}}:m??v,I=o.skillDynamicContext?.execute,w=o.skillDynamicContext?.disable===!0||I===void 0?{disable:!0}:{async execute(C,S){if(mn(a.permissionMode)==="plan")throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in Plan mode.");return I(C,S)}};return{...o,provider:s,skillDynamicContext:w,...r!==void 0?{modelOverride:r}:{},session:{...o.session??{},id:a.sessionId,storage:u.storage,persistedByHost:!1},events:t,context:{...y,configHome:e.defaultConfigHome,...d!==void 0?{shellSandbox:d}:{},...l?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...a.actorSession?{actorSession:a.actorSession,interruptInput:{closeInputWindow(){a.interruptInputOpen=!1},reopenInputWindow(){!a.terminalEmitted&&Rn(a.phase)&&o.abortSignal?.aborted!==!0&&(a.interruptInputOpen=!0)}}}:{},...n&&a.agentContext?{agentExecutorPlane:{plane:n,context:a.agentContext}}:{}}}}i(Uy,"buildRunOptions");function ki(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i(ki,"assertRuntimeAgentContext");function zy(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(zy,"localAgentReasons");function os(e){return ki(e),ar(e).map(n=>{let t=zy(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}i(os,"runtimeLocalListings");function Wy(e,n,t,r,o,s){let a=new Map,u=!1,l=i((R,v)=>{if(u)return Promise.reject(new Error("KodaX runtime is closed"));let y=a.get(R);if(y)return y.then(g=>{let m=g.rootControl().list().maxConcurrentThreads;if(v!==void 0&&v!==m)throw new Error(`Actor concurrency for ${R} is already ${m}; cannot change it to ${v}.`);return g});let x=(async()=>{let g=await e.storage.peek(R);if(!g)throw new Error(`Session not found: ${R}`);let m=g.actorSnapshot?.maxConcurrentThreads;if(m!==void 0&&v!==void 0&&m!==v)throw new Error(`Persisted Actor concurrency for ${R} is ${m}; requested ${v}.`);let d={async load(){return(await e.storage.peek(R))?.actorSnapshot},save(w,C){return e.storage.saveActorSnapshot(R,w,C)}},I=new ha({sessionId:R,store:d,maxConcurrentThreadsPerSession:v??m,owner:{ownerId:`actor_${Je().replace(/-/g,"")}`,runtimeId:n.runtimeId,pid:process.pid,startedAt:n.startedAt,livenessId:t.id,livenessPort:t.port},isOwnerAlive:ho,onHealthChanged:i(w=>s?.(R,w),"onHealthChanged"),...r?{executor:wa({plane:r,context:o??{actorId:`runtime:${R}`}})}:{}});try{return await I.initialize(),s?.(R,I.health()),I}catch(w){if(!I.ownsDurableFence())throw w;try{await I.close("Actor initialization cleanup")}catch(C){throw new AggregateError([w,C],`Actor session ${R} initialization and owner cleanup both failed.`)}throw w}})();return a.set(R,x),x.catch(()=>a.delete(R)),x},"claimSession"),p=i(async(R,v)=>{let y=l(R,v),x=a.get(R),g=await y;if(!await e.storage.isArchived(R))return g;throw await g.close("archived Session execution rejected"),a.get(R)===x&&a.delete(R),Is(R)},"forSession");return{forSession:p,async root(R){return(await p(R)).rootControl()},async activeTurns(R){return(await Promise.all(R.map(async y=>{if(await e.storage.isArchived(y))return;let x=a.get(y);if(x)return{sessionId:y,snapshot:(await x).rootControl().list()};let g=await e.storage.peek(y);if(g?.actorSnapshot&&!(g.actorSnapshot.schemaVersion===2&&g.actorSnapshot.owner!==void 0&&!await ho(g.actorSnapshot.owner)))return{sessionId:y,snapshot:g.actorSnapshot}}))).flatMap(y=>{if(!y)return[];let{sessionId:x,snapshot:g}=y;return g.actors.flatMap(m=>m.currentTurnId&&m.path!=="/root"?[{sessionId:x,actorPath:m.path,turnId:m.currentTurnId,kind:m.kind}]:[])})},async mutateSessionFile(R,v,y){if(u)throw new Error("KodaX runtime is closed");let x=a.get(R)??l(R),g=await x,d=g.rootControl().list();if(v==="mutate"&&await e.storage.isArchived(R))throw await g.close("archived Session mutation rejected"),a.get(R)===x&&a.delete(R),Is(R);let I=d.actors.some(C=>C.currentTurnId!==void 0);if((v==="archive"||v==="unarchive")&&I)throw Kn(`Session has active Agent turns and cannot be moved: ${R}`,d.revision);v==="delete"&&I&&await g.quiesce("session deleted");let w=await y(g.ownerId());return v==="delete"?g.disposeAfterStoreRemoval("session deleted"):v!=="mutate"&&await g.close(`session ${v}d`),v!=="mutate"&&a.get(R)===x&&a.delete(R),w},async close(R){u=!0;let v=await Promise.allSettled([...a.values()]),x=(await Promise.allSettled(v.flatMap(g=>g.status==="fulfilled"?[g.value.close(R)]:[]))).flatMap(g=>g.status==="rejected"?[g.reason]:[]);if(x.length===1)throw x[0];if(x.length>1)throw new AggregateError(x,"Actor registry cleanup failed.");a.clear()}}}i(Wy,"createRuntimeAgentActorRegistry");function Vy(e,n,t,r,o,s){let a=i((u,l)=>o.run(u,async()=>(s(),await r.loadExecutable(u),l(await t.root(u)))),"withRoot");return{execution:n,enabled:e!==void 0,async listDispatchable(u){s(),ki(u);let l=ar(u);return e?e.listDispatchable(u,l):os(u)},async describe(u,l){ki(l);let p=ar(l);return e?e.describe(u,l,p):os(l).find(R=>R.descriptor.agentId===u)},async preflight(u){ki(u.query);let l=ar(u.query);if(e)return e.preflight(u,l);let p=os(u.query).find(v=>v.descriptor.agentId===u.agentId),R=p?[]:["agent is not dispatchable"];return p&&u.expectedConfigurationRevision!==void 0&&p.descriptor.configurationRevision!==u.expectedConfigurationRevision&&R.push("configuration revision changed"),{ok:p!==void 0&&R.length===0,...p?{descriptor:p.descriptor}:{},dispatchability:p?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:R},reasons:R}},async tree(u){return a(u,l=>l.list())},async detail(u,l){return a(u,p=>p.get(l))},async spawn(u,l){return a(u,p=>p.spawn(l))},async send(u,l,p,R){await a(u,v=>v.send(l,p,R))},async followup(u,l,p,R){return a(u,v=>v.followup(l,p,void 0,R))},async interrupt(u,l,p){await a(u,R=>R.interrupt(l,p))},async output(u,l,p){return a(u,R=>R.output(l,p))},async events(u,l){return a(u,p=>p.eventSnapshot(l))},async wait(u,l,p,R){return(await a(u,y=>y)).wait(l,p,R?.signal)}}}i(Vy,"createRuntimeAgentService");function ss(){return new Error("Runtime external agent executor plane is not enabled.")}i(ss,"externalAgentsDisabled");function Gy(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw ss()},async setEnabled(){throw ss()},async remove(){throw ss()}}}}i(Gy,"createRuntimeAdminService");function Jy(e){return{async snapshot(){let n=await e.listRuns();return{runtimeId:e.identity.runtimeId,mode:e.identity.mode,profile:e.identity.profile,startedAt:e.identity.startedAt,sessions:(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(_l),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await e.listRuns(),t=n.filter(R=>Rn(R.phase)||R.phase==="unknown"),r=n.filter(R=>R.phase==="queued"),o=(await e.workflows.list({})).filter(R=>R.status!=="completed"&&R.status!=="failed"&&R.status!=="denied"&&R.status!=="stopped"),s=(await e.sessionManager.listSessions({includeArchived:!0})).filter(e.sessionAdmission.admitsSummary).map(R=>R.id),a=await e.actors.activeTurns(s),u=await e.permissions.service.listPending(),l=await e.userInputs.service.listPending(),p=[];return t.length>0&&p.push("active_runs"),r.length>0&&p.push("queued_runs"),o.length>0&&p.push("active_workflows"),a.length>0&&p.push("active_agent_turns"),a.length>0&&p.push("active_agent_tasks"),(u.length>0||l.length>0)&&p.push("pending_interactions"),{runtimeId:e.identity.runtimeId,clientCount:0,activeRuns:t,queuedRuns:r,activeWorkflows:o,activeAgentTurns:a,activeAgentTasks:a,pendingPermissions:u,pendingUserInputs:l,blockers:p,canStop:p.length===0}}}}i(Jy,"createRuntimeStatusService");function Yy(e){return{latestContextBudget(n){return as(e,"context.budget.snapshot",n)},latestToolExposure(n){return as(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return as(e,"provider.cache.diagnostics",n)}}}i(Yy,"createRuntimeDiagnosticsService");async function as(e,n,t){let r=t?.contextKind??(t?.agentId===void 0?"root":void 0),o=r==="child"||t?.agentId!==void 0,s={type:n,...!o&&t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return[...await e.replay(s)].reverse().find(l=>{let p=l.payload;if(p===null||typeof p!="object"||Array.isArray(p))return t?.contextKind===void 0&&t?.agentId===void 0;let R=p,v=R.contextKind==="child"?"child":"root";if(r!==void 0&&v!==r||t?.agentId!==void 0&&R.agentId!==t.agentId)return!1;if(!o||t?.sessionId===void 0)return!0;let y=`${t.sessionId}/agent/`;return typeof R.contextId!="string"?!1:t.agentId===void 0?R.contextId.startsWith(y):R.contextId===`${y}${encodeURIComponent(t.agentId)}`})?.payload??null}i(as,"latestRuntimeDiagnosticPayload");function Rn(e){return e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(Rn,"isActiveRunPhase");function Bc(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(Bc,"removeQueuedRun");function Qy(e,n,t){let r=oe(n)?n:void 0;if((e==="assistant.delta"||e==="thinking.delta")&&typeof r?.text=="string")return{key:vr(e,n,t),mode:"append_text",bytes:Buffer.byteLength(r.text,"utf-8")};if(e==="tool.progress"&&typeof r?.partialJson=="string"){let o=oe(r.meta)?r.meta:void 0,s=typeof o?.toolId=="string"?o.toolId:"";return s.length===0?void 0:{key:vr(e,n,t,`tool:${s}`),mode:"append_tool_input",bytes:Buffer.byteLength(r.partialJson,"utf-8")}}if(e==="tool.progress"&&oe(r?.update)){let o=typeof r.update.id=="string"?r.update.id:"";return o.length===0?void 0:{key:vr(e,n,t,`progress:${o}`),mode:"latest",bytes:ds(n),preserveFirst:!0}}if(e==="run.progress"&&r?.kind==="managed_task_status")return{key:vr(e,n,t),mode:"latest",bytes:ds(n)};if(e==="workflow.updated"){let o=oe(r?.snapshot)?r.snapshot:void 0,s=typeof o?.runId=="string"?o.runId:"";return s.length===0?void 0:{key:vr(e,n,t,`workflow:${s}`),mode:"latest",bytes:ds(n)}}}i(Qy,"runtimeEventMergePlan");function ds(e){try{return Buffer.byteLength(JSON.stringify(e)??"","utf-8")}catch{return ps}}i(ds,"runtimeEventPayloadBytes");function Wt(e){let n=JSON.stringify(e);if(n===void 0)throw new Error("Runtime event emission is not serializable");return Buffer.byteLength(n,"utf-8")}i(Wt,"runtimePendingEmissionBytes");function Zy(e){let n;try{n=JSON.stringify(e)}catch(t){throw new Error("Runtime event payload is not serializable",{cause:t})}if(n===void 0)throw new Error("Runtime event payload is not serializable");return JSON.parse(n)}i(Zy,"snapshotRuntimeEventPayload");function vr(e,n,t,r=""){let o=oe(n)?n:void 0,s=oe(o?.meta)?o.meta:void 0,a=oe(s?.workflowCorrelation)?s.workflowCorrelation:void 0,u=[s?.contextKind,s?.contextId,s?.parentContextId,s?.agentId,s?.childAgentId,s?.parentToolId,a?.workflowRunId,a?.childAgentId,s?.liveOnly===!0?"live":""].map(l=>typeof l=="string"?l:"").join("");return[t.sessionId,t.runId,t.turnId??"",e,u,r].join("\0")}i(vr,"runtimeEventMergeKey");function eR(e,n){let t=e.merge;if(t===void 0)return n;let r=t.mode,o=oe(e.payload)?e.payload:{},s=oe(n.payload)?n.payload:{};return r==="append_text"?{...e,payload:{...o,...s,text:`${o.text??""}${s.text??""}`},merge:{...t,bytes:t.bytes+(n.merge?.bytes??0)}}:r==="append_tool_input"?{...e,payload:{...o,...s,partialJson:`${o.partialJson??""}${s.partialJson??""}`},merge:{...t,bytes:t.bytes+(n.merge?.bytes??0)}}:n}i(eR,"mergeRuntimeEventEmissions");function nR(e){let n=!1,t=[],r=new Map,o=new Map,s=[],a=[],u=new Map,l=new Set,p=new Set,R=0,v,y=!1,x,g,m,d=!1,I=!1,w=0,C=0,S=i((L,K)=>K?!(K.sessionId!==void 0&&L.sessionId!==K.sessionId||K.runId!==void 0&&L.runId!==K.runId||K.type!==void 0&&!(Array.isArray(K.type)?K.type:[K.type]).includes(L.type)):!0,"matches"),b=i(L=>{t.push(L),t.length>Ci&&t.splice(0,t.length-Ci)},"remember"),P=i(L=>{for(let K of[...p])if(S(L,K.filter))try{K.listener(L)}catch(G){fe({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${L.type}`,detail:{eventId:L.id,error:_e(G)}})}},"notifyOne"),T=i(L=>{if(a.push(...L),!I){I=!0;try{for(;w<a.length;){let K=a[w];w+=1,K!==void 0&&P(K)}}finally{a.splice(0,w),w=0,I=!1}}},"notify"),D=i((L,K)=>L.length===0?[]:L.map((G,J)=>{let U=K+J;return{id:`evt_${U}_${Je().replace(/-/g,"").slice(0,8)}`,seq:U,time:G.time,sessionId:G.scope.sessionId,runId:G.scope.runId,...G.scope.turnId!==void 0?{turnId:G.scope.turnId}:{},type:G.type,payload:G.payload}}),"createEvents"),q=i((L,K)=>{if(x!==void 0)throw x;try{return e.commitEvents(L,K)}catch(G){throw G instanceof Cr&&(x=G,g=void 0,ne(),s.splice(0,s.length),R=0,C=0,u.clear()),G}},"commitEvents"),re=i(L=>{for(let K of L){o.set(K.sessionId,K.seq);let G=r.get(K.sessionId)??Kc();r.set(K.sessionId,G),tR(G,K),b(K),Es(K.type)&&u.delete(K.runId)}},"applyAndRemember"),ne=i(()=>{v!==void 0&&(clearTimeout(v),v=void 0)},"clearScheduledFlush"),he=i(()=>{let L=s[0]?.scope.runId;if(L===void 0)return 0;let K=0;for(;s[K]?.scope.runId===L;)K+=1;return K},"nextRunEmissionCount"),ve=i(()=>{if(ne(),x!==void 0)throw x;for(;s.length>0;){let L=he(),K=s.slice(0,L),G;try{G=q(L,J=>D(K,J))}catch(J){throw x===void 0&&(g=_e(J),ne()),J}g=void 0,s.splice(0,L),R=Math.max(0,R-K.reduce((J,U)=>J+(U.merge?.bytes??0),0)),C=Math.max(0,C-K.reduce((J,U)=>J+Wt(U),0)),d=!1,re(G),T(G)}},"flushPending"),Ke=i(()=>{n||x!==void 0||g!==void 0||v===void 0&&(v=setTimeout(()=>{if(v=void 0,!n)try{ve()}catch(L){d||(d=!0,fe({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:L}))}},gy),v.unref?.())},"scheduleFlush"),Se=i(()=>{try{ve()}catch(L){d||(d=!0,fe({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:L}))}},"flushPendingSafely"),c=i(L=>{let K=q(1,G=>D([L],G));re(K),T(K)},"commitEmissionDirectly"),E=i(L=>{let K=L.merge;if(K?.mode==="latest"){for(let G=s.length-1;G>=0;G-=1){let J=s[G];if(J?.merge===void 0)break;if(J.merge.mode==="latest"&&J.merge.key===K.key){s.splice(G,1),R=Math.max(0,R-J.merge.bytes),C=Math.max(0,C-Wt(J));break}}s.push(L),R+=K.bytes,C+=Wt(L)}},"replacePendingLatest"),$=i(L=>{let K=L.merge;if(K?.mode!=="latest"||K.preserveFirst!==!0)return!1;let G=u.get(L.scope.runId)??new Set;return G.has(K.key)?!1:(G.add(K.key),u.set(L.scope.runId,G),!0)},"shouldPreserveFirstLatest"),Y=i((L,K,G)=>{if(n)throw new Error("KodaX runtime event bus is closed");if(x!==void 0)throw x;if(g!==void 0)throw g;let J=Zy(K),U=Qy(L,J,G),se={type:L,payload:J,scope:G,time:new Date().toISOString(),...U!==void 0?{merge:U}:{}},me=Wt(se);if(me>Oc){ve(),c(se);return}if((s.length>=fy||C+me>Oc)&&ve(),U===void 0){s.push(se),C+=me,Se();return}if(U.mode==="latest"){if($(se)){s.push(se),R+=U.bytes,C+=me,Se();return}E(se)}else{let Me=s.at(-1),$e=Me?.merge?.key===U.key&&Me.merge.mode===U.mode;if($e&&Me.merge.bytes+U.bytes>ps){if(Se(),x!==void 0)throw x;if(g!==void 0)throw g;s.push(se),R+=U.bytes,C+=me}else if($e){let we=eR(Me,se);R+=(we.merge?.bytes??0)-Me.merge.bytes,C+=Wt(we)-Wt(Me),s[s.length-1]=we}else s.push(se),R+=U.bytes,C+=me}R>=ps?Se():Ke()},"enqueue");return{service:{subscribe(L,K){if(n)throw new Error("KodaX runtime event bus is closed");ve();let G={filter:L,listener:K};return p.add(G),{close(){p.delete(G),!y&&(y=!0,queueMicrotask(()=>{y=!1,n||Se()}))}}},async replay(L){ve();let K=e.replay(L),G=new Map;for(let U of K)G.set(U.id,U);for(let U of t)G.set(U.id,U);let J=[...G.values()].filter(U=>S(U,L)&&(L?.sinceSeq===void 0||U.seq>L.sinceSeq)).sort((U,se)=>U.seq-se.seq||U.time.localeCompare(se.time));return L?.limit===void 0?J:J.slice(-L.limit)}},subscribeClose(L){return n?(L(),{close(){}}):(l.add(L),{close(){l.delete(L)}})},emit(L,K,G){Y(L,K,G)},emitDurable(L,K,G,J){ve();let U={type:L,payload:K,scope:G,time:new Date().toISOString()},se=q(1,me=>D([U],me))[0];return J?.(),re([se]),T([se]),se},projectSession(L){ve();let K=r.get(L);return Xc(K===void 0?Kc():K)},currentSessionSeq(L){ve();let K=o.get(L);if(K!==void 0)return K;let G=sR(e.replay({sessionId:L}));return o.set(L,G),G},close(){if(n){if(m!==void 0)throw m;return}let L;try{ve()}catch(K){L=_e(K)}finally{n=!0,ne(),s.splice(0,s.length),R=0,C=0;for(let K of[...l])try{K()}catch(G){fe({source:"runtime.events",level:"error",message:"Runtime event close listener failed.",detail:_e(G)})}l.clear();try{e.close()}catch(K){let G=_e(K);L??=G,fe({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:G})}p.clear(),r.clear(),o.clear()}if(m=L,L!==void 0)throw L}}}i(nR,"createRuntimeEventBus");function Kc(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(Kc,"createRuntimeSessionLiveProjectionState");function tR(e,n){let t=oe(n.payload)?n.payload:void 0;if(!iR(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=hi(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=hi(n),o=e.activeTools.get(r)??Uc(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.sandbox"){let r=hi(n),o=e.activeTools.get(r)??Uc(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,sandbox:n.payload})}else if(n.type==="tool.finished"){let r=hi(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=oR(t.status);r!==void 0&&e.managedTasks.set(n.runId,{runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},status:r})}else if(n.type==="user_input.requested"&&(typeof t?.id=="string"||typeof t?.requestId=="string")){let r=typeof t?.id=="string"?t.id:t.requestId;e.pendingUserInputs.set(r,{requestId:r,runId:n.runId,...n.turnId!==void 0?{turnId:n.turnId}:{},detail:n.payload})}else if(n.type==="user_input.resolved"&&typeof t?.requestId=="string")e.pendingUserInputs.delete(t.requestId);else if(Es(n.type)){delete e.assistantTextByRun[n.runId],delete e.thinkingTextByRun[n.runId];for(let[r,o]of e.activeTools)o.runId===n.runId&&e.activeTools.delete(r);for(let[r,o]of e.pendingUserInputs)o.runId===n.runId&&e.pendingUserInputs.delete(r);e.managedTasks.delete(n.runId)}}}i(tR,"applyRuntimeSessionEvent");var rR=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","todo.updated"]);function iR(e,n){if(!rR.has(e))return!1;let t=oe(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=oe(t.workflowCorrelation)?t.workflowCorrelation:void 0;return typeof r?.workflowRunId=="string"&&r.workflowRunId.length>0||typeof r?.childAgentId=="string"&&r.childAgentId.length>0}i(iR,"isChildOwnedPrimaryLiveEvent");function Xc(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(Xc,"snapshotRuntimeSessionLiveProjection");function oR(e){if(!(!oe(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(oR,"parseRuntimeManagedTaskStatus");function sR(e){return e.at(-1)?.seq??0}i(sR,"latestRuntimeEventSeq");function hi(e){let n=oe(e.payload)?e.payload:void 0,t=oe(n?.meta)?n.meta:void 0,r=oe(n?.tool)?n.tool:void 0,o=oe(n?.update)?n.update:void 0,s=oe(n?.result)?n.result:void 0,a=t?.toolId??t?.toolCallId??t?.toolUseId??r?.id??o?.id??s?.id??s?.toolCallId;return typeof a=="string"&&a.length>0?`${e.runId}:${a}`:`${e.runId}:${e.turnId??"turn"}:${e.id}`}i(hi,"runtimeToolProjectionKey");function Uc(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(Uc,"latestActiveToolForRun");function Es(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(Es,"isTerminalRuntimeEvent");function aR(e,n){let t=e.homeDir?Q.resolve(e.homeDir):e.sessionsDir?Q.resolve(e.sessionsDir,".."):process.cwd(),r=e.sharedDaemonHost===!0?Q.join(t,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):Q.join(t,".kodax","runtime"),o=Q.join(r,"runs"),s=Q.join(r,"session-settings"),a=Q.join(r,"session-orders"),u=Q.join(r,"permission-grants.json"),l=Q.join(r,"event-sequence"),p=Q.join(r,"run-status-index.json"),R,v,y=i(k=>Q.join(o,encodeURIComponent(k)),"runDir"),x=i(k=>Q.join(y(k),"events.jsonl"),"eventFile"),g=i(k=>Q.join(y(k),"events.watermark"),"eventWatermarkFile"),m=i(k=>Q.join(y(k),"status.json"),"statusFile"),d=i(k=>Q.join(s,`${encodeURIComponent(k)}.json`),"sessionSettingsFile"),I=i(k=>Q.join(a,`${encodeURIComponent(k)}.json`),"sessionOrderFile"),w=[],C=new Set,S=i(()=>{if(F.existsSync(l))try{let k=Number.parseInt(F.readFileSync(l,"utf-8").trim(),10);if(Number.isSafeInteger(k)&&k>=0)return k}catch(k){fe({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:k})}},"readEventSequenceCursor"),b=i(()=>{let k=0;if(!F.existsSync(o))return k;for(let A of F.readdirSync(o,{withFileTypes:!0})){if(!A.isDirectory())continue;let H=Q.join(o,A.name,"events.jsonl");if(!F.existsSync(H))continue;let O=F.statSync(H).size,j=Math.min(O,Lc);for(;j>0;){let z=Buffer.allocUnsafe(j),ee=F.openSync(H,"r");try{F.readSync(ee,z,0,j,O-j)}finally{F.closeSync(ee)}let te=z.toString("utf-8").split(/\r?\n/);j<O&&te.shift();let le=!1;for(let ye of te)if(ye.trim())try{let He=JSON.parse(ye);Sr(He)&&Number.isSafeInteger(He.seq)&&(k=Math.max(k,He.seq),le=!0)}catch{}if(le||j===O)break;j=Math.min(O,j*2)}}return k},"findMaxPersistedEventSeq"),P=i(k=>{if(!Number.isSafeInteger(k)||k<=0)throw new Error("Runtime event sequence batch size must be positive");let A=S(),H=v===void 0||A===void 0?b():v;v=Math.max(A??0,H,v??0);let O=v+1,j=v+k;return Pn(l,j),v=j,R=j+1,O},"reserveEventSeqsLocked"),T=i(k=>(F.mkdirSync(r,{recursive:!0}),Dn(l,()=>P(k))),"reserveEventSeqs"),D=i(k=>{if(!F.existsSync(o))return 0;let A=0;for(let H of F.readdirSync(o,{withFileTypes:!0}))if(H.isDirectory())try{let O=wi(Q.join(o,H.name,"status.json"));if(O?.status.sessionId!==k)continue;A=Math.max(A,O.status.sessionOrder??0)}catch{}return A},"findMaxPersistedSessionOrder"),q=i((k,A,H)=>{if(C.has(k))return;C.add(k);let O=T(1),j={id:`evt_persist_warn_${O}_${Je().replace(/-/g,"").slice(0,8)}`,seq:O,time:new Date().toISOString(),sessionId:H.sessionId??"runtime",runId:H.runId??H.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:A,...H.file!==void 0?{file:H.file}:{}}};w.push(j),w.length>Ci&&w.splice(0,w.length-Ci)},"pushPersistenceWarning"),re=i((k,A)=>[...k,...w].filter(H=>wR(H,A)).sort((H,O)=>H.seq-O.seq||H.time.localeCompare(O.time)),"withPersistenceWarnings"),ne=i((k,A)=>{if(!F.existsSync(k))return[];let H=F.readFileSync(k,"utf-8"),O=[],j=H.split(/\r?\n/);for(let z=0;z<j.length;z+=1){let ee=j[z]??"";if(ee.trim())try{let te=JSON.parse(ee);Sr(te)?O.push(te):q(`${k}:${z+1}:shape`,`Skipped malformed runtime event record at ${Q.basename(k)}:${z+1}`,{runId:A,file:k})}catch(te){q(`${k}:${z+1}:parse`,`Skipped malformed runtime event record at ${Q.basename(k)}:${z+1}: ${_e(te).message}`,{runId:A,file:k})}}return O},"readEventsFromFile"),he=i((k,A)=>{if(F.statSync(k).size<=vl)return;let H=F.readFileSync(k,"utf-8").trimEnd().split(/\r?\n/),O=[],j=0,z=H.length;for(let ye=H.length-1;ye>=0;ye-=1){let He=H[ye]??"";if(!He)continue;let zn=Buffer.byteLength(He,"utf-8")+1;if(O.length>0&&j+zn>yy)break;O.push(He),j+=zn,z=ye}O.reverse();let ee=us(g(A)),te=ee.droppedThrough,le=ee.sessionId;for(let ye of H.slice(0,z))try{let He=JSON.parse(ye);Sr(He)&&(te=Math.max(te,He.seq),le??=He.sessionId)}catch{}if(le===void 0)for(let ye of O)try{let He=JSON.parse(ye);if(Sr(He)){le=He.sessionId;break}}catch{}Pn(g(A),{droppedThrough:te,...le!==void 0?{sessionId:le}:{}}),Di(k,O.length>0?`${O.join(`
24
+ `)}
25
+ `:"")},"trimEventFile"),ve=i(k=>{if(!F.existsSync(k))return 0;let A=F.openSync(k,"r"),H=0,O;try{if(H=F.fstatSync(A).size,H===0)return 0;let z=Buffer.allocUnsafe(1);if(F.readSync(A,z,0,1,H-1),z[0]===10)return H;let ee=Math.min(H,Lc);for(;O=Buffer.allocUnsafe(ee),F.readSync(A,O,0,ee,H-ee),!(O.lastIndexOf(10)>=0||ee===H);)ee=Math.min(H,ee*2)}finally{F.closeSync(A)}let j=H-O.length+O.lastIndexOf(10)+1;try{let z=JSON.parse(O.subarray(O.lastIndexOf(10)+1).toString("utf-8"));if(Sr(z))return F.appendFileSync(k,`
26
+ `,"utf-8"),H+1}catch{}return F.truncateSync(k,j),j},"repairIncompleteEventTail"),Ke=i(k=>{let A=k[0];if(A===void 0)return;if(k.some(z=>z.runId!==A.runId))throw new Error("Runtime event persistence batches must contain one Run");let H=y(A.runId),O=x(A.runId);F.mkdirSync(H,{recursive:!0});let j;try{Dn(O,()=>{let z=ve(O),ee=k.map(te=>`${JSON.stringify(te)}
27
+ `).join("");try{F.appendFileSync(O,ee,"utf-8")}catch(te){if(On(te)==="EISDIR")throw te;try{F.truncateSync(O,z)}catch(le){throw new Cr(te,le)}throw te}try{he(O,A.runId)}catch(te){j=te}})}catch(z){if(!(z instanceof St))throw z;j=j===void 0?z.cleanupError:new AggregateError([j,z.cleanupError],"Runtime event trim and status-lock cleanup both failed")}return j},"appendEventBatch"),Se=i((k,A)=>{F.mkdirSync(r,{recursive:!0});let H,O,j;try{j=Dn(l,()=>{let ee=P(k),te=A(ee);if(te.length!==k||te.some((le,ye)=>le.seq!==ee+ye))throw new Error("Runtime event batch must match its reserved sequence range");return H=Ke(te),O=te,te})}catch(ee){if(!(ee instanceof St)||O===void 0)throw ee;j=O,H=H===void 0?ee.cleanupError:new AggregateError([H,ee.cleanupError],"Runtime event file and sequence-lock cleanup both failed")}let z=j[0];if(H!==void 0&&z!==void 0){let ee=x(z.runId);try{q(`${ee}:trim`,`Failed to trim runtime event file: ${_e(H).message}`,{runId:z.runId,sessionId:z.sessionId,file:ee})}catch(te){fe({source:"runtime.persistence",level:"warn",message:"Runtime events committed, but their trim warning could not be recorded",detail:te})}}return j},"commitEventBatch"),c=i(k=>{if(k?.sinceSeq===void 0)return;let A=i(H=>{if(k.sinceSeq<H.droppedThrough)throw ke(`Runtime event history before sequence ${H.droppedThrough} is no longer retained`)},"assertWatermark");if(k.runId!==void 0){A(us(g(k.runId)));return}if(F.existsSync(o))for(let H of F.readdirSync(o,{withFileTypes:!0})){if(!H.isDirectory())continue;let O=us(Q.join(o,H.name,"events.watermark"));if(k.sessionId!==void 0)try{let j=wi(Q.join(o,H.name,"status.json"));if(j!==void 0&&j.status.sessionId!==k.sessionId||j===void 0&&O.sessionId!==void 0&&O.sessionId!==k.sessionId)continue}catch{if(O.sessionId!==void 0&&O.sessionId!==k.sessionId)continue}A(O)}},"assertReplayCursorRetained"),E=i(k=>{let A=m(k);if(F.existsSync(A))try{let H=Al(JSON.parse(F.readFileSync(A,"utf-8")));if(H)return H;q(`${A}:shape`,`Skipped malformed runtime status record at ${Q.basename(A)}`,{runId:k,file:A})}catch(H){q(`${A}:parse`,`Skipped malformed runtime status record at ${Q.basename(A)}: ${_e(H).message}`,{runId:k,file:A})}},"readIndexedRunStatus"),$=i(k=>{try{let A=F.statSync(k,{bigint:!0});return{dev:A.dev.toString(),ino:A.ino.toString(),size:A.size.toString(),mtimeNs:A.mtimeNs.toString(),ctimeNs:A.ctimeNs.toString()}}catch(A){if(On(A)==="ENOENT")return null;throw A}},"readRuntimePathIdentity"),Y=i((k,A)=>k===null||A===null?k===A:k.dev===A.dev&&k.ino===A.ino&&k.size===A.size&&k.mtimeNs===A.mtimeNs&&k.ctimeNs===A.ctimeNs,"sameRuntimePathIdentity"),X=i(()=>{if(!F.existsSync(o))return{statuses:[],pendingRunStatuses:[],pendingOverflow:!1};let k=[],A=[],H=!1;for(let O of F.readdirSync(o,{withFileTypes:!0})){if(!O.isDirectory())continue;let j;try{j=decodeURIComponent(O.name)}catch{continue}let z=E(j);if(z!==void 0){k.push(z);continue}if(A.length>=es){H=!0;continue}A.push({runId:j,identity:$(m(j))})}return{statuses:k,pendingRunStatuses:A,pendingOverflow:H}},"scanAllRunStatuses"),L=i((k,A)=>[...new Set(k)].filter(H=>Buffer.byteLength(H,"utf-8")<=ns).slice(-A),"boundedRunIds"),K=i((k,A,H=k.pendingOverflow)=>{let O=[...k.statuses].sort((j,z)=>Xn(j.status,z.status));return{version:2,activeRunIds:L(O.filter(j=>!Ae(j.status.phase)).map(j=>j.status.runId),_n),recentRunIds:L(O.map(j=>j.status.runId),Ri),runsDirectory:A,pendingRunStatuses:k.pendingRunStatuses,requiresRescan:H}},"createRunStatusIndex"),G=i(k=>{if(!oe(k)||k.version!==2||!Array.isArray(k.activeRunIds)||!Array.isArray(k.recentRunIds)||!Array.isArray(k.pendingRunStatuses)||typeof k.requiresRescan!="boolean")return;let A=i((te,le)=>{if(te.length>le||!te.every(He=>typeof He=="string"&&Buffer.byteLength(He,"utf-8")<=ns))return;let ye=te;return new Set(ye).size===ye.length?ye:void 0},"parseIds"),H=A(k.activeRunIds,_n),O=A(k.recentRunIds,Ri),j=i(te=>{if(te===null)return null;if(!(!oe(te)||![te.dev,te.ino,te.size,te.mtimeNs,te.ctimeNs].every(ye=>typeof ye=="string"&&/^\d{1,32}$/.test(ye))))return{dev:te.dev,ino:te.ino,size:te.size,mtimeNs:te.mtimeNs,ctimeNs:te.ctimeNs}},"parseIdentity"),z=j(k.runsDirectory);if(z===void 0||k.pendingRunStatuses.length>es)return;let ee=[];for(let te of k.pendingRunStatuses){if(!oe(te)||typeof te.runId!="string"||Buffer.byteLength(te.runId,"utf-8")>ns)return;let le=j(te.identity);if(le===void 0)return;ee.push({runId:te.runId,identity:le})}if(new Set(ee.map(te=>te.runId)).size===ee.length)return H===void 0||O===void 0?void 0:{version:2,activeRunIds:H,recentRunIds:O,runsDirectory:z,pendingRunStatuses:ee,requiresRescan:k.requiresRescan}},"parseRunStatusIndex"),J=i(()=>{if(!F.existsSync(p))return;let k;try{k=F.openSync(p,"r");let A=F.fstatSync(k).size;if(A>py)return;let H=Buffer.allocUnsafe(A),O=0;for(;O<A;){let j=F.readSync(k,H,O,A-O,O);if(j===0)return;O+=j}return G(JSON.parse(H.toString("utf-8")))}catch(A){On(A)!=="ENOENT"&&fe({source:"runtime.persistence",level:"warn",message:"Runtime run-status index is invalid; rebuilding it once",detail:A});return}finally{k!==void 0&&F.closeSync(k)}},"readRunStatusIndex"),U=i(k=>k.every(A=>Y(A.identity,$(m(A.runId)))),"pendingRunStatusesUnchanged"),se=i(k=>!k.requiresRescan&&Y(k.runsDirectory,$(o))&&U(k.pendingRunStatuses),"runStatusIndexIsCurrent"),me=i(()=>{let k,A=!1;for(let H=0;H<3;H+=1){let O=$(o),j=X();A||=j.pendingOverflow;let z=$(o),ee=Y(O,z)&&U(j.pendingRunStatuses);if(k=K(j,z,!ee||j.pendingOverflow),ee)break}return k===void 0&&(k=K({statuses:[],pendingRunStatuses:[],pendingOverflow:!0},$(o),!0)),A&&fe({source:"runtime.persistence",level:"warn",message:"Runtime run-status recovery found more than 1000 missing or malformed status files; startup performed one fail-closed compatibility scan",detail:{runsDir:o,trackedPendingLimit:es}}),Pn(p,k),k},"rebuildRunStatusIndexLocked"),Me=i(()=>{let k=J();return k!==void 0&&se(k)?k:me()},"ensureRunStatusIndexLocked"),$e=new Map,we,Xe=i(k=>{we=k.requiresRescan?$(p)??void 0:void 0},"rememberRunStatusIndexState"),We=i((k,A)=>{F.mkdirSync(r,{recursive:!0}),Dn(p,()=>{let H=J()??me();Xe(H);let O=[...$e.values()].filter(Oe=>Oe.runId!==k.runId).sort(Xn),j=new Set(O.map(Oe=>Oe.runId)),z=L([...H.recentRunIds.filter(Oe=>Oe!==k.runId&&!j.has(Oe)),...O.map(Oe=>Oe.runId),k.runId],Ri),ee=A?H.activeRunIds.filter(Oe=>Oe!==k.runId&&!j.has(Oe)):L([...H.activeRunIds.filter(Oe=>Oe!==k.runId&&!j.has(Oe)),k.runId],_n),te=H.pendingRunStatuses.filter(Oe=>Oe.runId!==k.runId&&!j.has(Oe.runId)),le=$(o),ye=H.requiresRescan||!Y(le,H.runsDirectory);if(ee.length===H.activeRunIds.length&&z.length===H.recentRunIds.length&&te.length===H.pendingRunStatuses.length&&Y(le,H.runsDirectory)&&ee.every((Oe,Wn)=>Oe===H.activeRunIds[Wn])&&z.every((Oe,Wn)=>Oe===H.recentRunIds[Wn])){for(let Oe of O)$e.delete(Oe.runId);return}let zn={version:2,activeRunIds:ee,recentRunIds:z,runsDirectory:le,pendingRunStatuses:te,requiresRescan:ye};Pn(p,zn),Xe(zn);for(let Oe of O)$e.delete(Oe.runId)})},"updateRunStatusIndex"),nn=i(k=>{if(Ae(k.phase)){$e.delete(k.runId),$e.set(k.runId,k),F.mkdirSync(r,{recursive:!0});try{Dn(p,()=>{if(we!==void 0&&Y(we,$(p)))return;let A=J()??me();if(A.requiresRescan)Xe(A);else{let H={...A,requiresRescan:!0};Pn(p,H),Xe(H)}})}catch(A){fe({source:"runtime.persistence",level:"warn",message:"Runtime terminal status committed, but its derived run-status index could not be marked dirty",detail:{runId:k.runId,error:A}})}}},"finalizeRunStatusIndex");return{runtimeDir:r,commitEvents(k,A){return Se(k,A)},close(){F.mkdirSync(r,{recursive:!0}),Dn(p,()=>{Xe(me())}),$e.clear()},nextSessionOrder(k){F.mkdirSync(a,{recursive:!0});let A=I(k);return Dn(A,()=>{let H;if(F.existsSync(A))try{let j=JSON.parse(F.readFileSync(A,"utf-8"));typeof j=="number"&&Number.isSafeInteger(j)&&j>=0&&(H=j)}catch{H=void 0}let O=(H??D(k))+1;return Pn(A,O),O})},currentEventSeq(){return v??=b(),Math.max(R===void 0?0:R-1,S()??0,v)},replay(k){if(c(k),k?.runId)return re(ne(x(k.runId),k.runId),k);if(!F.existsSync(o))return re([],k);let A=[];for(let H of F.readdirSync(o,{withFileTypes:!0}))H.isDirectory()&&A.push(...ne(Q.join(o,H.name,"events.jsonl"),H.name));return re(A,k)},saveRunStatus(k){let A=y(k.runId);F.mkdirSync(A,{recursive:!0});let H=m(k.runId);return Dn(H,()=>{let O=wi(H);return O&&Ae(O.status.phase)||O?.owner!==void 0&&O.owner.ownerId!==n.ownerId&&!Ae(k.phase)?O.status:(Pn(H,{...k,_runtime:{revision:(O?.revision??0)+1,owner:n}}),Ae(k.phase)?nn(k):O===void 0&&We(k,!1),k)})},requestRunStop(k,A){let H=m(k);return Dn(H,()=>{let O=wi(H);if(O===void 0)throw new Error(`Runtime run not found: ${k}`);if(O.owner!==void 0&&O.owner.ownerId!==n.ownerId&&!Ae(O.status.phase))throw Kn(`Runtime ${n.runtimeId} does not own run ${k}`,O.revision);let j=O.status;if(j.stop!==void 0||j.phase==="unknown"||Ae(j.phase)||j.phase!=="queued"&&!Rn(j.phase))return{accepted:!1,status:j,revision:O.revision};let z=new Date().toISOString(),{lifecycleError:ee,...te}=j,le=j.phase==="queued"?{...te,phase:"cancelled",stage:"terminal",stageChangedAt:z,activeSubtaskCount:0,endedAt:z,stop:{requestedAt:z,state:"confirmed",outcome:"cancelled",reason:A,resolvedAt:z},terminal:{revision:1,kind:"cancelled",code:"cancelled",effectOutcome:"none",message:A}}:{...te,phase:"unknown",stage:"unknown",stageChangedAt:z,error:"stop_outcome_unconfirmed",stop:{requestedAt:z,state:"unknown",outcome:"unknown",reason:A}},ye=O.revision+1;return Pn(H,{...le,_runtime:{revision:ye,owner:n}}),nn(le),{accepted:!0,status:le,revision:ye}})},loadRunStatus(k){return E(k)},loadRunStatuses(){return F.mkdirSync(r,{recursive:!0}),Dn(p,()=>{let k=Me(),H=[...new Set([...k.activeRunIds,...k.recentRunIds])].flatMap(le=>{let ye=E(le);return ye===void 0?[]:[ye]}),O=new Map(H.map(le=>[le.status.runId,le])),j=k.activeRunIds.filter(le=>{let ye=O.get(le);return ye!==void 0&&!Ae(ye.status.phase)}),z=k.activeRunIds.flatMap(le=>{let ye=O.get(le);return ye!==void 0&&Ae(ye.status.phase)?[ye]:[]}).sort((le,ye)=>Xn(le.status,ye.status)),ee=new Set(z.map(le=>le.status.runId)),te=L([...k.recentRunIds.filter(le=>O.has(le)&&!ee.has(le)),...z.map(le=>le.status.runId)],Ri);if(j.length!==k.activeRunIds.length||te.length!==k.recentRunIds.length||j.some((le,ye)=>le!==k.activeRunIds[ye])||te.some((le,ye)=>le!==k.recentRunIds[ye])){let le={...k,activeRunIds:j,recentRunIds:te};Pn(p,le),Xe(le)}else Xe(k);return H})},loadSessionSettingsVersioned(k){let A=d(k);if(!F.existsSync(A))return{revision:0,value:{}};try{let H=JSON.parse(F.readFileSync(A,"utf-8"));return oe(H)&&Number.isSafeInteger(H.revision)&&typeof H.revision=="number"&&H.revision>=0&&oe(H.value)?{revision:H.revision,value:dl(H.value)}:{revision:0,value:dl(H)}}catch(H){return q(`${A}:parse`,`Skipped malformed runtime session settings at ${Q.basename(A)}: ${_e(H).message}`,{sessionId:k,file:A}),{revision:0,value:{}}}},loadSessionSettings(k){return this.loadSessionSettingsVersioned(k).value},saveSessionSettingsVersioned(k,A){F.mkdirSync(s,{recursive:!0});let H=d(k);Pn(H,{revision:A.revision,value:Ah(A.value)})},saveSessionSettings(k,A){let H=this.loadSessionSettingsVersioned(k);this.saveSessionSettingsVersioned(k,{revision:H.revision+1,value:A})},loadPermissionGrants(){if(!F.existsSync(u))return{revision:0,value:[]};try{let k=JSON.parse(F.readFileSync(u,"utf-8"));if(!oe(k)||!Number.isSafeInteger(k.revision)||!Array.isArray(k.value))throw new Error("invalid permission grant store shape");return{revision:k.revision,value:k.value.map(ah)}}catch(k){throw new Error(`Permission grant store is untrusted: ${_e(k).message}`)}},savePermissionGrants(k){F.mkdirSync(r,{recursive:!0}),Pn(u,k)}}}i(aR,"createRuntimePersistence");function Pn(e,n){Di(e,`${JSON.stringify(n,null,2)}
28
+ `)}i(Pn,"writeRuntimeJsonAtomic");function Di(e,n){let t=`${e}.${process.pid}.${Je()}.tmp`,r,o=!1,s;try{r=F.openSync(t,"wx",384),F.writeFileSync(r,n,"utf-8"),F.fsyncSync(r),F.closeSync(r),r=void 0,F.renameSync(t,e),o=!0}catch(u){s=u}let a=[];if(r!==void 0)try{F.closeSync(r)}catch(u){a.push(u)}try{F.rmSync(t,{force:!0})}catch(u){a.push(u)}if(!o)throw a.length>0?new AggregateError([s,...a],`Runtime atomic write and cleanup both failed: ${e}`):s;if(a.length===1)throw a[0];if(a.length>1)throw new AggregateError(a,`Runtime atomic-write cleanup failed: ${e}`)}i(Di,"writeRuntimeTextAtomic");function Dn(e,n){let t=`${e}.lock`,r=performance.now()+2e3,o=new Int32Array(new SharedArrayBuffer(4)),s=Je();fR(t),pR(t,r);let a=`${t}.reclaim`,u=!F.existsSync(a)&&!F.existsSync(`${a}.cleanup`)&&!lR(t)&&zc(t,s);for(;!u;){try{u=uR(t,r,()=>{if(!mR(t,r))return!1;if(F.existsSync(t)){if(Ps(t,xs(r))!=="gone")return!1;let y=Nn(t);if(y===void 0||(Cs(t,y.token),F.existsSync(t)))return!1}return zc(t,s)})}catch(y){if(Nn(t)?.token===s)try{Tr(t,s)}catch(x){throw tr(t,t,s,"blocking"),new AggregateError([y,x],"Runtime status lock acquisition and cleanup both failed")}throw y}if(u)break;if(performance.now()>=r)throw new xi(t);Atomics.wait(o,0,0,10)}let l=!1,p,R;try{p=n(),l=!0}catch(y){R=y}let v;try{Tr(t,s)}catch(y){tr(t,t,s,"blocking"),v=y}if(!l)throw v!==void 0&&(R instanceof Cr?R.includeLockCleanupFailure(v):R=new AggregateError([R,v],"Runtime status operation and lock cleanup both failed")),R;if(v!==void 0)throw new St(v);return p}i(Dn,"withRuntimeStatusFileLock");var gs=Cl(process.pid),Bn=new Map,Ar=new Set,Zt=new Set;function tr(e,n,t,r,o){Bn.set(e,{family:n,token:t,kind:r,...o===void 0?{}:{fileIdentity:o}}),r==="candidate"&&Ar.add(n)}i(tr,"rememberAbandonedRuntimeLockFile");function Mi(e,n){return{pid:process.pid,createdAt:Date.now(),token:e,...gs===void 0?{}:{processStartIdentity:gs},...n===void 0?{}:{ticket:n}}}i(Mi,"runtimeStatusLockRecord");function Nn(e){try{let n=JSON.parse(F.readFileSync(e,"utf-8"));return!oe(n)||!Number.isSafeInteger(n.pid)||typeof n.pid!="number"||n.pid<=0||!Number.isFinite(n.createdAt)||typeof n.createdAt!="number"||typeof n.token!="string"||n.processStartIdentity!==void 0&&typeof n.processStartIdentity!="string"||n.ticket!==void 0&&(typeof n.ticket!="number"||!Number.isSafeInteger(n.ticket)||n.ticket<=0)?void 0:{pid:n.pid,createdAt:n.createdAt,token:n.token,...n.processStartIdentity===void 0?{}:{processStartIdentity:n.processStartIdentity},...n.ticket===void 0?{}:{ticket:n.ticket}}}catch{return}}i(Nn,"readRuntimeStatusLockRecord");function Ps(e,n=1e3){let t=Nn(e);if(t===void 0)return"unknown";try{try{process.kill(t.pid,0)}catch(o){return On(o)==="ESRCH"?"gone":"unknown"}if(typeof t.processStartIdentity!="string")return"alive";let r=t.pid===process.pid?gs:Cl(t.pid,n);return r===void 0?"unknown":r===t.processStartIdentity?"alive":"gone"}catch{return"unknown"}}i(Ps,"runtimeStatusLockOwnerState");function zc(e,n,t){if(Ar.has(e))return Wc(e,n,t);let r=`${e}.candidate.${process.pid}.${Je()}`,o,s=!1,a,u=!1,l=!1;try{o=F.openSync(r,"wx",384),F.writeFileSync(o,JSON.stringify(Mi(n,t)),"utf-8"),F.fsyncSync(o),F.closeSync(o),o=void 0;try{F.linkSync(r,e),u=!0,s=!0}catch(R){let v=On(R);if(v==="EEXIST")s=!0;else if(dR(v))s=!0,l=!0;else throw R}}catch(R){a=R}let p=[];if(o!==void 0)try{F.closeSync(o)}catch(R){p.push(R)}try{F.rmSync(r,{force:!0})}catch(R){tr(r,e,n,"candidate"),p.push(R)}if(!s)throw p.length>0?new AggregateError([a,...p],`Runtime status lock publication and cleanup both failed: ${e}`):a;return p.length>0&&(Zt.has(e)||(Zt.add(e),fe({source:"runtime.status.lock",level:"warn",message:"Runtime status lock candidate cleanup was deferred; using exclusive creation for this lock family.",detail:{lockFile:e,cleanupErrors:p}}))),l?Wc(e,n,t):u}i(zc,"createRuntimeStatusLockFile");function dR(e){return e==="EACCES"||e==="EPERM"||e==="ENOTSUP"||e==="EOPNOTSUPP"||e==="ENOSYS"||e==="EXDEV"}i(dR,"runtimeStatusHardLinkUnavailable");function Wc(e,n,t){let r,o=!1,s,a;try{return r=F.openSync(e,"wx",384),o=!0,s=gR(r),F.writeFileSync(r,JSON.stringify(Mi(n,t)),"utf-8"),F.fsyncSync(r),F.closeSync(r),r=void 0,!0}catch(l){if(!o&&On(l)==="EEXIST")return!1;a=l}let u=[];if(r!==void 0)try{F.closeSync(r)}catch(l){u.push(l)}if(o)try{F.rmSync(e,{force:!0})}catch(l){tr(e,e,n,"unpublished",s),u.push(l)}throw u.length>0?new AggregateError([a,...u],`Runtime fallback status lock creation and cleanup both failed: ${e}`):a}i(Wc,"createRuntimeStatusLockFileByExclusiveWrite");function uR(e,n,t){let r=Je(),o=`${e}.choosing.${r}`,s=`${e}.claim.${r}`,a=!1,u,l;try{Di(o,JSON.stringify(Mi(r)));let R=ys(e,"claim").map(y=>Nn(y)?.ticket).filter(y=>y!==void 0),v=Math.max(0,...R)+1;if(!Number.isSafeInteger(v))throw new Error(`Runtime status lock ticket overflow: ${e}`);Di(s,JSON.stringify(Mi(r,v))),Tr(o,r),cR(e,s,v,r,n),u=t(),a=!0}catch(R){l=R}let p=[];for(let R of[s,o])if(F.existsSync(R))try{Tr(R,r)}catch(v){tr(R,e,r,"blocking"),p.push(v)}if(!a)throw p.length>0?new AggregateError([l,...p],"Runtime status acquisition and gate cleanup both failed"):l;if(p.length===1)throw p[0];if(p.length>1)throw new AggregateError(p,"Runtime status acquisition gate cleanup failed");return u}i(uR,"withRuntimeStatusAcquisitionGate");function cR(e,n,t,r,o){let s=new Int32Array(new SharedArrayBuffer(4));for(;;){let a=!1;for(let u of ys(e,"choosing"))u!==`${e}.choosing.${r}`&&(Rs(u,o)||(a=!0));for(let u of ys(e,"claim")){if(u===n)continue;let l=Nn(u);if(l?.ticket===void 0){a=!0;continue}l.ticket>t||l.ticket===t&&l.token.localeCompare(r)>0||Rs(u,o)||(a=!0)}if(!a)return;if(performance.now()>=o)throw new xi(e);Atomics.wait(s,0,0,10)}}i(cR,"waitForRuntimeStatusGateTurn");function ys(e,n){let t=Q.dirname(e),r=`${Q.basename(e)}.${n}.`;try{return F.readdirSync(t).filter(o=>o.startsWith(r)&&/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(o.slice(r.length))).map(o=>Q.join(t,o))}catch(o){if(On(o)==="ENOENT")return[];throw o}}i(ys,"runtimeStatusGateFiles");function lR(e){let n=Q.dirname(e),t=Q.basename(e),r=[`${t}.choosing.`,`${t}.claim.`];try{return F.readdirSync(n).some(o=>r.some(s=>o.startsWith(s)&&/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(o.slice(s.length))))}catch(o){if(On(o)==="ENOENT")return!1;throw o}}i(lR,"hasRuntimeStatusAcquisitionGateFiles");function Rs(e,n){if(!F.existsSync(e))return!0;if(Ps(e,xs(n))!=="gone")return!1;let t=Nn(e);return t===void 0?!1:(Cs(e,t.token),!F.existsSync(e))}i(Rs,"removeGoneRuntimeStatusGateFile");function mR(e,n){let t=`${e}.reclaim`;for(let r of[`${t}.cleanup`,t])if(F.existsSync(r)&&!Rs(r,n))return!1;return!0}i(mR,"clearLegacyRuntimeReclaimGates");function fR(e){for(let[t,r]of[...Bn]){if(r.family!==e)continue;if(!F.existsSync(t)){Bn.delete(t);continue}if(r.kind==="unpublished"){if(r.fileIdentity===void 0)throw new St(new Error(`Runtime unpublished lock identity is unavailable: ${t}`));let s=yR(t);if(!RR(s,r.fileIdentity)){Bn.delete(t);continue}try{F.rmSync(t,{force:!0}),Bn.delete(t)}catch(a){throw new St(a)}continue}if(Nn(t)?.token!==r.token){Bn.delete(t);continue}try{Tr(t,r.token),Bn.delete(t)}catch(s){if(r.kind==="blocking")throw s}}[...Bn.values()].some(t=>t.family===e&&t.kind==="candidate")||(Ar.delete(e),Zt.delete(e))}i(fR,"retryAbandonedRuntimeLockCleanup");function pR(e,n){let t=Vc(e);for(let o of t){let s=Nn(o);if(!(s===void 0||Ps(o,xs(n))!=="gone"))try{Cs(o,s.token)}catch(a){tr(o,e,s.token,"candidate"),Zt.has(e)||(Zt.add(e),fe({source:"runtime.status.lock",level:"warn",message:"A prior Runtime lock candidate could not be removed; using exclusive creation for this lock family.",detail:{lockFile:e,candidate:o,error:a}}))}}Vc(e).length>0?Ar.add(e):[...Bn.values()].some(o=>o.family===e&&o.kind==="candidate")||(Ar.delete(e),Zt.delete(e))}i(pR,"reconcileRuntimeStatusLockCandidates");function Vc(e){let n=Q.dirname(e),t=`${Q.basename(e)}.candidate.`;try{return F.readdirSync(n).filter(r=>r.startsWith(t)&&/^\d+\.[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(r.slice(t.length))).map(r=>Q.join(n,r))}catch(r){if(On(r)==="ENOENT")return[];throw r}}i(Vc,"runtimeStatusLockCandidateFiles");function gR(e){let n=F.fstatSync(e,{bigint:!0});return{device:n.dev,inode:n.ino}}i(gR,"runtimeStatusLockDescriptorIdentity");function yR(e){try{let n=F.statSync(e,{bigint:!0});return{device:n.dev,inode:n.ino}}catch(n){if(On(n)==="ENOENT")return;throw n}}i(yR,"runtimeStatusLockPathIdentity");function RR(e,n){return e!==void 0&&e.device===n.device&&e.inode===n.inode}i(RR,"runtimeStatusLockFileIdentityEquals");function xs(e){return Math.max(0,Math.min(1e3,Math.floor(e-performance.now())))}i(xs,"runtimeLockProbeBudget");function Cs(e,n){return!F.existsSync(e)||Nn(e)?.token!==n?!1:(F.rmSync(e,{force:!0}),!0)}i(Cs,"tryRemoveRuntimeStatusLockOwnedBy");function Tr(e,n){if(!F.existsSync(e))throw new Error(`Runtime status lock ownership disappeared: ${e}`);if(Nn(e)?.token!==n)throw new Error(`Runtime status lock ownership changed: ${e}`);F.rmSync(e,{force:!0})}i(Tr,"removeRuntimeStatusLockOwnedBy");function Cl(e,n=1e3){if(n<=0)return;if(process.platform==="linux")try{let o=F.readFileSync(`/proc/${e}/stat`,"utf-8"),s=o.slice(o.lastIndexOf(")")+2).trim().split(/\s+/);return s[19]===void 0?void 0:`linux:${s[19]}`}catch{return}if(process.platform==="win32"){let o=Mc("powershell.exe",["-NoProfile","-NonInteractive","-Command",`([DateTimeOffset](Get-Process -Id ${e} -ErrorAction Stop).StartTime).ToUnixTimeMilliseconds()`],{encoding:"utf-8",timeout:n,windowsHide:!0}),s=o.status===0?o.stdout.trim():"";return/^\d+$/.test(s)?`windows:${s}`:void 0}let t=Mc("ps",["-o","lstart=","-p",String(e)],{encoding:"utf-8",timeout:n,windowsHide:!0}),r=t.status===0?t.stdout.trim():"";return r===""?void 0:`${process.platform}:${r}`}i(Cl,"readRuntimeProcessStartIdentity");function On(e){return oe(e)&&typeof e.code=="string"?e.code:void 0}i(On,"runtimeErrorCode");function wi(e){if(!F.existsSync(e))return;let n=JSON.parse(F.readFileSync(e,"utf-8")),t=Al(n);if(!t)throw new Error(`Runtime status record is malformed: ${e}`);return t}i(wi,"readPersistedRuntimeRunStatus");function us(e){if(!F.existsSync(e))return{droppedThrough:0};try{let n=F.readFileSync(e,"utf-8").trim(),t=JSON.parse(n);return oe(t)&&Number.isSafeInteger(t.droppedThrough)&&typeof t.droppedThrough=="number"&&t.droppedThrough>=0&&(t.sessionId===void 0||typeof t.sessionId=="string")?{droppedThrough:t.droppedThrough,...t.sessionId!==void 0?{sessionId:t.sessionId}:{}}:typeof t=="number"&&Number.isSafeInteger(t)&&t>=0?{droppedThrough:t}:{droppedThrough:0}}catch{return{droppedThrough:0}}}i(us,"readRuntimeEventWatermark");function hR(e){if(e.sessionsDir!==void 0)return Q.resolve(e.sessionsDir);if(e.homeDir!==void 0)return Q.join(Q.resolve(e.homeDir),".kodax","sessions")}i(hR,"resolveRuntimeSessionsDir");function wR(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(wR,"eventMatchesReplayFilter");function Sr(e){return oe(e)?typeof e.id=="string"&&typeof e.seq=="number"&&typeof e.time=="string"&&typeof e.sessionId=="string"&&typeof e.runId=="string"&&typeof e.type=="string"&&"payload"in e:!1}i(Sr,"isRuntimeEvent");function _i(e){if(oe(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!IR(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,...kR(e.stage)?{stage:e.stage}:{},...typeof e.stageChangedAt=="string"?{stageChangedAt:e.stageChangedAt}:{},...Number.isSafeInteger(e.activeSubtaskCount)&&typeof e.activeSubtaskCount=="number"&&e.activeSubtaskCount>=0?{activeSubtaskCount:e.activeSubtaskCount}:{},startedAt:e.startedAt,...typeof e.acceptedAt=="string"?{acceptedAt:e.acceptedAt}:{},...Number.isSafeInteger(e.sessionOrder)&&typeof e.sessionOrder=="number"?{sessionOrder:e.sessionOrder}:{},...typeof e.queuedAt=="string"?{queuedAt:e.queuedAt}:{},...typeof e.runningAt=="string"?{runningAt:e.runningAt}:{},...typeof e.executionStartedAt=="string"?{executionStartedAt:e.executionStartedAt}:{},...typeof e.endedAt=="string"?{endedAt:e.endedAt}:{},provider:e.provider,...e.mode==="coding"||e.mode==="managed_task"?{mode:e.mode}:{},...oe(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}:{},...Qc(e.lifecycleError)!==void 0?{lifecycleError:Qc(e.lifecycleError)}:{},...Zc(e.terminal)!==void 0?{terminal:Zc(e.terminal)}:{},...Gc(e.continuation)!==void 0?{continuation:Gc(e.continuation)}:{},...Jc(e.interruptInputs)!==void 0?{interruptInputs:Jc(e.interruptInputs)}:{},...Yc(e.stop)!==void 0?{stop:Yc(e.stop)}:{}}}i(_i,"parseRuntimeRunStatus");function Al(e){let n=_i(e);if(!n)return;let t=oe(e)&&oe(e._runtime)?e._runtime:void 0,r=vR(t?.owner),o=t!==void 0&&Number.isSafeInteger(t.revision)&&typeof t.revision=="number"&&t.revision>=0?t.revision:0;return{status:n,revision:o,...r!==void 0?{owner:r}:{}}}i(Al,"parsePersistedRuntimeRunStatus");function vR(e){if(!(!oe(e)||typeof e.ownerId!="string"||typeof e.runtimeId!="string"||!Number.isSafeInteger(e.pid)||typeof e.pid!="number"||e.pid<=0||typeof e.startedAt!="string"||e.livenessId!==void 0&&typeof e.livenessId!="string"||e.livenessPort!==void 0&&(!Number.isSafeInteger(e.livenessPort)||typeof e.livenessPort!="number")))return{ownerId:e.ownerId,runtimeId:e.runtimeId,pid:e.pid,startedAt:e.startedAt,...typeof e.livenessId=="string"?{livenessId:e.livenessId}:{},...typeof e.livenessPort=="number"?{livenessPort:e.livenessPort}:{}}}i(vR,"parseRuntimeRunOwner");function Gc(e){if(!(!oe(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(Gc,"parseRuntimeContinuationStatus");function Jc(e){if(e===void 0||!Array.isArray(e))return;let n=e.map(SR);return n.every(t=>t!==void 0)?n:void 0}i(Jc,"parseRuntimeInterruptInputStatuses");function Yc(e){if(!(!oe(e)||typeof e.requestedAt!="string"||e.state!=="unknown"&&e.state!=="confirmed"||e.outcome!=="unknown"&&e.outcome!=="cancelled"&&e.outcome!=="interrupted"&&e.outcome!=="completed"&&e.outcome!=="failed"||typeof e.reason!="string"))return{requestedAt:e.requestedAt,state:e.state,outcome:e.outcome,reason:e.reason,...typeof e.resolvedAt=="string"?{resolvedAt:e.resolvedAt}:{}}}i(Yc,"parseRuntimeRunStopStatus");function Qc(e){if(!(!oe(e)||e.code!=="actor_settlement_retrying"&&e.code!=="actor_settlement_not_persisted"||typeof e.message!="string"||typeof e.retryable!="boolean"))return{code:e.code,message:e.message,retryable:e.retryable}}i(Qc,"parseRuntimeRunLifecycleError");function SR(e){if(!oe(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=oe(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(SR,"parseRuntimeInterruptInputStatus");function IR(e){return e==="queued"||e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"||e==="unknown"||e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(IR,"isRuntimeRunPhase");function kR(e){return e==="queued"||e==="executing"||e==="waiting_agent"||e==="recovering"||e==="finalizing"||e==="terminal"||e==="unknown"||e==="starting"||e==="routing"||e==="preflight"||e==="round"||e==="worker"||e==="upgrade"||e==="verifying"}i(kR,"isRuntimeRunStage");function Zc(e){if(oe(e)&&!(!Number.isSafeInteger(e.revision)||typeof e.revision!="number"||!bR(e.kind)||!ER(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(Zc,"parseRuntimeTerminalFact");function bR(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(bR,"isRuntimeTerminalKind");function ER(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(ER,"isRuntimeTerminalCode");function bi(e,n,t){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,...e.stage!==void 0?{stage:e.stage}:{},...e.stageChangedAt!==void 0?{stageChangedAt:e.stageChangedAt}:{},...e.activeSubtaskCount!==void 0?{activeSubtaskCount:e.activeSubtaskCount}:{},startedAt:e.startedAt,sessionOrder:e.sessionOrder??0,...e.queuedAt!==void 0?{queuedAt:e.queuedAt}:{},...e.runningAt!==void 0?{runningAt:e.runningAt}:{},...e.endedAt!==void 0?{endedAt:e.endedAt}:{},provider:e.provider,...e.origin!==void 0?{origin:e.origin}:{},...e.model!==void 0?{model:e.model}:{},...e.reasoning!==void 0?{reasoning:e.reasoning}:{},...e.error!==void 0?{error:e.error}:{},...e.lifecycleError!==void 0?{lifecycleError:e.lifecycleError}:{},...e.terminal!==void 0?{terminal:e.terminal}:{},...e.stop!==void 0?{stop:e.stop}:{},...e.continuation!==void 0?{continuation:{inputId:e.continuation.inputId,afterRunId:e.continuation.afterRunId,delivery:e.continuation.delivery,contentPreview:e.continuation.contentPreview}}:{},interruptInputs:(e.interruptInputs??[]).map(r=>({...r})),interruptInputOpen:!1,mode:e.mode??"coding",hadProviderCredential:!1,result:Promise.resolve(Ul(e)),terminalEmitted:Ae(e.phase),ownedByRuntime:n,...t!==void 0?{observedOwner:t}:{}}}i(bi,"recordFromPersistedStatus");function Tl(e,n,t){let r=Dl(e,n,t);if(r!==void 0)return r;let o=[...t.replay({runId:e.runId})],s=As(e,o);if(Ae(s.phase))return s!==e&&Un(n,t,void 0,s),s;let a=s.phase==="queued"?"runtime_restarted":"daemon_crashed",u=new Date().toISOString(),l={...s,phase:"interrupted",stage:"terminal",stageChangedAt:u,activeSubtaskCount:0,endedAt:u,error:a,...s.stop!==void 0?{stop:{...s.stop,state:"confirmed",outcome:"interrupted",resolvedAt:u}}:{},...s.interruptInputs!==void 0?{interruptInputs:s.interruptInputs.map(R=>R.state==="queued"?{...R,state:"terminal"}:R)}:{},terminal:{revision:1,kind:"interrupted",code:a,effectOutcome:s.phase==="queued"?"none":"unknown",message:"Runtime process restarted before this run reached a durable terminal state."}},p=Un(n,t,void 0,l);return p===void 0?{...s,phase:"unknown",stage:"unknown",error:"terminal_recovery_not_persisted"}:(p!==l||n.emit("run.interrupted",p,{sessionId:p.sessionId,runId:p.runId,...p.turnId!==void 0?{turnId:p.turnId}:{}}),p)}i(Tl,"interruptPersistedNonTerminalRun");function Dl(e,n,t){let r=[...t.replay({runId:e.runId})],o=[...r].reverse().find(u=>{if(!Es(u.type))return!1;let l=_i(u.payload);return l?.runId===e.runId&&l.sessionId===e.sessionId&&l.phase===PR(u.type)});if(o===void 0)return;let s=_i(o.payload);if(s===void 0)return;let a=As(s,r);return Un(n,t,void 0,a),a}i(Dl,"recoverPersistedDurableTerminal");function As(e,n){if(e.interruptInputs===void 0)return e;let t=new Map;for(let s of n){if(s.type!=="run.input.delivered"||s.runId!==e.runId||s.sessionId!==e.sessionId||!oe(s.payload))continue;let a=s.payload.inputs;if(Array.isArray(a))for(let u of a)oe(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 a=t.get(s.inputId);return s.state!=="queued"||a===void 0?s:(r=!0,{...s,state:"delivered",deliveredAt:a})});return r?{...e,interruptInputs:o}:e}i(As,"reconcilePersistedInterruptDeliveries");function PR(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(PR,"terminalPhaseFromEvent");function el(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(el,"resolvePermissionTimeoutMs");function xR(e,n){let t=new Map,r=i((u,l,p,R)=>{let v=t.get(u);return!v||p?.runId!==void 0&&v.request.runId!==p.runId||p?.expectedRevision!==void 0&&v.request.revision!==p.expectedRevision?{requestId:u,accepted:!1,status:"already_resolved"}:(l.status==="answered"&&CR(v.request.kind,l.answer),t.delete(u),clearTimeout(v.timer),v.resolve(l),e.emit("user_input.resolved",{requestId:u,kind:v.request.kind,status:l.status,...R!==void 0?{reason:R}:{}},{sessionId:v.request.sessionId,runId:v.request.runId,...v.request.turnId!==void 0?{turnId:v.request.turnId}:{}}),{requestId:u,accepted:!0,status:l.status})},"resolvePending"),o=i((u,l=n)=>{let p=`input_${Je().replace(/-/g,"").slice(0,12)}`,R=new Date,v={id:p,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()+l).toISOString()},y=i(()=>{},"resolveResponse"),x=new Promise(m=>{y=m}),g=setTimeout(()=>{r(p,{status:"dismissed"},void 0,"timeout")},Math.max(1,l));return g.unref?.(),t.set(p,{request:v,resolve:y,timer:g}),e.emit("user_input.requested",v,{sessionId:v.sessionId,runId:v.runId,...v.turnId!==void 0?{turnId:v.turnId}:{}}),{request:v,response:x}},"trackAndWait"),s=i((u,l)=>{for(let p of[...t.values()])u(p.request)&&r(p.request.id,{status:"dismissed"},void 0,l)},"dismissMatching");return{service:{async listPending(u){return[...t.values()].map(l=>l.request).filter(l=>(u?.sessionId===void 0||l.sessionId===u.sessionId)&&(u?.runId===void 0||l.runId===u.runId))},async respond(u,l,p){return r(u,{status:"answered",answer:l},p)},async dismiss(u,l){return r(u,{status:"dismissed"},l,"client_dismissed")}},trackAndWait:o,resolve:r,rejectForRun(u,l){s(p=>p.runId===u,l)},rejectAll(u){s(()=>!0,u)}}}i(xR,"createRuntimeUserInputRegistry");function CR(e,n){if(!(e==="askUser"?Ml(n):e==="askUserMulti"?AR(n):typeof n=="string"))throw Wl(`Invalid answer for ${e}`)}i(CR,"assertRuntimeUserInputAnswer");function Ml(e){return Array.isArray(e)?e.every(nl):nl(e)}i(Ml,"isAskUserAnswer");function nl(e){return typeof e=="string"||oe(e)&&e.kind==="customInput"&&typeof e.value=="string"}i(nl,"isAskUserSelectionAnswer");function AR(e){return oe(e)&&Object.values(e).every(Ml)}i(AR,"isAskUserMultiAnswer");function TR(e,n,t){let r=new Map,o=new Map,s=0,a=i((w,C=n,S)=>{let b=i(()=>{},"resolveResponse"),P=new Promise(D=>{b=D});return{request:I(w,[b],el(w.expiresAt,C),S),response:P}},"trackAndWait"),u=i((w,C,S)=>{let b=r.get(w);if(!b||S!==void 0&&b.request.runId!==S)return!1;if(C.type==="allow_session"||C.type==="allow_always"){let P=g(b,C);m(P,b.request)}r.delete(w),b.timer&&clearTimeout(b.timer);for(let P of b.waiters)P(C);return e.emit("permission.resolved",{requestId:w,decision:C},{sessionId:b.request.sessionId,runId:b.request.runId,...b.request.turnId!==void 0?{turnId:b.request.turnId}:{}}),!0},"resolvePending"),l=i((w,C)=>{let S=[...r.values()].filter(b=>w(b.request)).map(b=>b.request.id);for(let b of S)u(b,C)},"resolveMatching"),p={request(w){return R(w)},async listPending(w){return[...r.values()].map(C=>C.request).filter(C=>jh(C,w))},async respond(w,C,S){return u(w,C,S?.runId)},async listGrants(){let w=v();return{revision:s,value:[...w.value,...o.values()]}},async revokeGrant(w,C){let S=v();if(s!==C)throw Kn(`Permission grant revision ${C} is stale; current revision is ${s}`,s);let b=o.get(w);if(b!==void 0)return o.delete(w),s+=1,t.savePermissionGrants({revision:s,value:S.value}),d("revoked",b,s),!0;let P=S.value.find(D=>D.id===w),T=S.value.filter(D=>D.id!==w);return T.length===S.value.length?!1:(s+=1,t.savePermissionGrants({revision:s,value:T}),P!==void 0&&d("revoked",P,s),!0)}};function R(w,C){let S=C??(w.toolInput!==void 0?{toolInput:w.toolInput}:void 0),b=y(w.sessionId,w.toolName,S?.toolInput,w.executionCwd,S?.shell,S?.shellContractFingerprint);if(b!==void 0)return b.persistence==="session"?Promise.resolve({type:"allow_session",suggestionId:b.id}):Promise.resolve({type:"allow_always",suggestionId:b.id});let{toolInput:P,...T}=w,D=S===void 0?T.inputPreview:nr(S.toolInput),q={sessionId:T.sessionId,runId:T.runId,...T.turnId!==void 0?{turnId:T.turnId}:{},...T.toolCallId!==void 0?{toolCallId:T.toolCallId}:{},toolName:T.toolName,...T.reason!==void 0?{reason:T.reason}:{},...T.risk!==void 0?{risk:T.risk}:{},...D!==void 0?{inputPreview:D}:{},...T.executionCwd!==void 0?{executionCwd:T.executionCwd}:{},...T.autoModeDiagnostics!==void 0?{autoModeDiagnostics:T.autoModeDiagnostics}:{},...T.expiresAt!==void 0?{expiresAt:T.expiresAt}:{}},re=S===void 0?void 0:x(q,S);return re!==void 0?re:a(q,T.timeoutMs??n,S).response}i(R,"requestPermission");function v(){let w=t.loadPermissionGrants();return s=Math.max(s,w.revision),w}i(v,"loadPersistentPermissionGrants");function y(w,C,S,b,P,T){let D=v().value;return[...o.values(),...D].find(q=>q.scope.sessionId!==void 0&&q.scope.sessionId!==w||q.scope.toolName!==void 0&&q.scope.toolName!==C||q.scope.matcher===void 0||S===void 0||q.persistence!=="session"&&q.scope.matcher.kind==="exact-command"&&typeof S.command=="string"&&co(S.command,P??(Br()==="win32"?"cmd":"posix"))?!1:Ja(q.scope.matcher,{toolName:C,toolInput:S,executionCwd:b??process.cwd(),...P!==void 0?{shell:P}:{},...T!==void 0?{shellContractFingerprint:T}:{}}))}i(y,"findPermissionGrant");function x(w,C){let S=tl(w,C);if(S.length===0)return;let b=[...r.values()].find(P=>P.request.sessionId===w.sessionId&&P.request.runId===w.runId&&P.grantCandidates.length===S.length&&S.every(T=>P.grantCandidates.some(D=>D.persistence===T.persistence&&cs(D.scope,T.scope))));if(b)return new Promise(P=>{b.waiters.push(P)})}i(x,"joinMatchingPendingPermission");function g(w,C){let S=C.type==="allow_session"?"session":"persistent",b="suggestionId"in C?w.grantCandidates.find(P=>P.suggestion.id===C.suggestionId&&P.persistence===S):DR(w,C.scope,S);if(!b)throw Wl("Permission decision does not select a Runtime-issued grant suggestion.");return b}i(g,"resolveRuntimePermissionGrantCandidate");function m(w,C){let S={id:`grant_${Je().replace(/-/g,"").slice(0,12)}`,scope:w.scope,createdAt:new Date().toISOString(),persistence:w.persistence,label:w.suggestion.label,sourcePermissionId:C.id};if(w.persistence==="session"){if([...o.values()].some(T=>cs(T.scope,S.scope)))return;let P=v();s+=1,o.set(S.id,S),t.savePermissionGrants({revision:s,value:P.value}),d("created",S,s,C);return}let b=v();b.value.some(P=>cs(P.scope,S.scope))||(s+=1,t.savePermissionGrants({revision:s,value:[...b.value,S]}),d("created",S,s,C))}i(m,"saveRuntimePermissionCandidate");function d(w,C,S,b){e.emit("permission.grant.changed",{action:w,grant:C,revision:S},{sessionId:b?.sessionId??C.scope.sessionId??"runtime",runId:b?.runId??"permission-grants",...b?.turnId!==void 0?{turnId:b.turnId}:{}})}return i(d,"emitPermissionGrantChanged"),{service:p,requestOwned(w,C){return R(w,C)},track(w){return I(w,[],el(w.expiresAt,n))},trackAndWait(w,C=n,S){return a(w,C,S)},resolve(w,C){u(w,C)},isGranted(w,C,S,b,P,T){return y(w,C,S,b,P,T)!==void 0},rejectForRun(w,C){l(S=>S.runId===w,{type:"reject",reason:C})},rejectAll(w){l(()=>!0,{type:"reject",reason:w})},releaseSession(w){let C=v(),S=[...o.values()].filter(b=>b.scope.sessionId===w);if(S.length!==0){for(let b of S)o.delete(b.id);s+=1,t.savePermissionGrants({revision:s,value:C.value});for(let b of S)d("expired",b,s)}},releaseAllSessionGrants(){if(o.size===0)return;let w=v(),C=[...o.values()];o.clear(),s+=1,t.savePermissionGrants({revision:s,value:w.value});for(let S of C)d("expired",S,s)}};function I(w,C,S=n,b){let P=w.inputPreview===void 0?void 0:tw(w.inputPreview),T=b===void 0?[]:tl(w,b),D=new Date,q={...w,...P!==void 0?{inputPreview:P}:{},executionCwd:Q.resolve(w.executionCwd??process.cwd()),id:`perm_${Je().replace(/-/g,"").slice(0,12)}`,createdAt:D.toISOString(),...w.expiresAt===void 0&&S>0?{expiresAt:new Date(D.getTime()+S).toISOString()}:{},...T.length>0?{grantSuggestions:T.map(ne=>ne.suggestion)}:{}},re=S>0?setTimeout(()=>{let ne=r.get(q.id);if(!ne)return;r.delete(q.id);let he={type:"reject",reason:"permission request timed out",cause:"approval_timeout"};for(let ve of ne.waiters)ve(he);e.emit("permission.resolved",{requestId:q.id,decision:he},{sessionId:q.sessionId,runId:q.runId,...q.turnId!==void 0?{turnId:q.turnId}:{}})},S):void 0;return re?.unref?.(),r.set(q.id,{request:q,waiters:C,grantCandidates:T,...re!==void 0?{timer:re}:{}}),e.emit("permission.requested",q,{sessionId:q.sessionId,runId:q.runId,...q.turnId!==void 0?{turnId:q.turnId}:{}}),q}i(I,"createPendingPermission")}i(TR,"createRuntimePermissionRegistry");function DR(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(DR,"resolveLegacyRuntimePermissionGrantCandidate");function tl(e,n){let t=Q.resolve(e.executionCwd??process.cwd()),r=uo({toolName:e.toolName,toolInput:n.toolInput,executionCwd:t,...n.shell!==void 0?{shell:n.shell}:{},...n.shellContractFingerprint!==void 0?{shellContractFingerprint:n.shellContractFingerprint}:{}});if(r.kind==="exact-command"&&(typeof n.toolInput.command!="string"||n.toolInput.command.trim().length===0))return[];let o=_R(r,n.toolInput),s=[{suggestion:{id:`scope_${Je().replace(/-/g,"").slice(0,16)}`,kind:"session",label:rl(r,o,e.toolName,"session")},scope:{toolName:e.toolName,sessionId:e.sessionId,matcher:r},persistence:"session"}];return r.kind!=="exact-call"&&MR(e,n,t)&&s.push({suggestion:{id:`scope_${Je().replace(/-/g,"").slice(0,16)}`,kind:"persistent",label:rl(r,o,e.toolName,"persistent")},scope:{toolName:e.toolName,matcher:r},persistence:"persistent"}),s}i(tl,"createRuntimePermissionGrantCandidates");function MR(e,n,t){if(e.risk==="high")return!1;let r={id:e.toolCallId??"permission-scope",name:e.toolName,input:n.toolInput},o=Q.resolve(n.projectRoot??t);if(Aa(r,o,t).denied||[...n.signals??[],...Ta.collect(r,o,t)].some(a=>a.kind==="dangerous_pattern"))return!1;if(e.toolName==="bash"){let a=typeof n.toolInput.command=="string"?n.toolInput.command:"";if(co(a,n.shell??(Br()==="win32"?"cmd":"posix")))return!1}return!0}i(MR,"isPersistentRuntimePermissionSafe");function _R(e,n){let t=e.kind==="exact-command"?typeof n.command=="string"?n.command:e.toolName:e.kind==="exact-path"?e.path:e.toolName,r=Ss(t.slice(0,Dr)).replace(/\s+/g," ").trim();return r.length<=120?r:`${r.slice(0,117)}...`}i(_R,"runtimePermissionGrantLabel");function rl(e,n,t,r){return e.kind==="exact-command"?r==="session"?`Allow this exact command for this Runtime session: ${n}`:`Always allow this exact command: ${n}`:e.kind==="exact-path"?r==="session"?`Allow ${t} on this path for this Runtime session: ${n}`:`Always allow ${t} on this path: ${n}`:`Allow this exact ${t} call for this Runtime session`}i(rl,"runtimePermissionGrantSuggestionLabel");function OR(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(OR,"childParentContextId");function vi(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?OR(n,e.agentId):void 0);return{...e,contextId:r,contextKind:t,...o!==void 0?{parentContextId:o}:{}}}i(vi,"withRuntimeDiagnosticIdentity");function cs(e,n){return e.toolName===n.toolName&&e.sessionId===n.sessionId&&e.matcher?.kind===n.matcher?.kind&&e.matcher?.fingerprint===n.matcher?.fingerprint}i(cs,"permissionScopesEqual");function NR(e){let{bus:n,original:t,permissions:r,userInputs:o,enableSharedInteractions:s,record:a,onExecutorTerminal:u,onPhase:l,onStage:p,onMidTurnUserMessages:R}=e,v=i(m=>({sessionId:m?.sessionId??a.sessionId,runId:a.runId,turnId:m?.turnId??a.turnId}),"scopeFromMeta"),y=i((m,d,I)=>{n.emit(m,nt(d),v(I))},"emit"),x=i(()=>{(a.phase==="waiting_agent"||a.phase==="recovering")&&l("running")},"resumeFromTransientPhase"),g=i(async(m,d,I,w,C)=>{let S=a.phase;if(a.phase==="running"&&l("waiting_user_input"),s){let P=o.trackAndWait({sessionId:I?.sessionId??a.sessionId,runId:a.runId,...I?.turnId??a.turnId?{turnId:I?.turnId??a.turnId}:{},kind:m,options:d});try{let T=w===void 0?await P.response:await Promise.race([P.response,w().then(D=>({status:D===void 0?"dismissed":"answered",...D!==void 0?{answer:D}:{}})).then(D=>(o.resolve(P.request.id,D),D))]);return T.status==="answered"?T.answer:C}finally{a.phase==="waiting_user_input"&&l(S)}}let b=`input_${Je().replace(/-/g,"").slice(0,12)}`;y("user_input.requested",{requestId:b,kind:m,options:d},I);try{if(w===void 0)return C;let P=await w();return y("user_input.resolved",{requestId:b,kind:m,status:P===void 0?"dismissed":"answered"},I),P}catch(P){throw y("user_input.resolved",{requestId:b,kind:m,status:"failed",error:_e(P).message},I),P}finally{a.phase==="waiting_user_input"&&l(S)}},"runWithUserInputPhase");return{...t,onTextDelta(m,d){x(),y("assistant.delta",{text:m,meta:d},d),t?.onTextDelta?.(m,d)},onThinkingDelta(m,d){x(),y("thinking.delta",{text:m,meta:d},d),t?.onThinkingDelta?.(m,d)},onThinkingEnd(m,d){y("thinking.finished",{thinking:m,meta:d},d),t?.onThinkingEnd?.(m,d)},onToolUseStart(m,d){l(m.name==="wait_agent"?"waiting_agent":"running"),y("tool.started",{tool:m,meta:d},d),t?.onToolUseStart?.(m,d)},onToolProgress(m,d){y("tool.progress",{update:m,meta:d},d),t?.onToolProgress?.(m,d)},onToolSandboxObservation(m,d){y("tool.sandbox",{update:m,meta:d},d),t?.onToolSandboxObservation?.(m,d)},onToolInputDelta(m,d,I){y("tool.progress",{toolName:m,partialJson:d,meta:I},I),t?.onToolInputDelta?.(m,d,I)},onToolResult(m,d){m.name==="wait_agent"&&l("running"),y("tool.finished",{result:m,meta:d},d),t?.onToolResult?.(m,d)},onStreamEnd(m){y("run.progress",{kind:"stream_end",meta:m},m),t?.onStreamEnd?.(m)},onChildActivityEnd(m){y("child_activity.finished",{meta:m},m),t?.onChildActivityEnd?.(m)},onSessionStart(m){a.provider=m.provider,n.emit("session.loaded",nt(m),{sessionId:m.sessionId,runId:a.runId,turnId:m.turnId??a.turnId}),t?.onSessionStart?.(m)},onTurnStarted(m){a.turnId=m.turnId,n.emit("turn.started",nt(m),{sessionId:m.sessionId,runId:a.runId,turnId:m.turnId}),t?.onTurnStarted?.(m)},onTurnCompleted(m){n.emit("turn.completed",nt(m),{sessionId:m.sessionId,runId:a.runId,turnId:m.turnId}),t?.onTurnCompleted?.(m)},onTurnFailed(m){n.emit("turn.failed",nt(m),{sessionId:m.sessionId,runId:a.runId,turnId:m.turnId}),t?.onTurnFailed?.(m)},onIterationStart(m,d,I){y("run.progress",{kind:"iteration_start",iter:m,maxIter:d,meta:I},I),t?.onIterationStart?.(m,d,I)},onIterationEnd(m){y("run.progress",{kind:"iteration_end",info:m},m),t?.onIterationEnd?.(m)},onCompactStart(m){y("context.compaction.started",{meta:m},m),t?.onCompactStart?.(m)},onCompact(m,d){t?.onCompact?.(m,d)},onCompactStats(m){y("context.compaction.stats",m,m),t?.onCompactStats?.(m)},async onCompactedMessages(m,d,I){let w=d===void 0?void 0:{hasAnchor:d.anchor!==void 0,...d.anchor?.tokensBefore!==void 0?{tokensBefore:d.anchor.tokensBefore}:{},...d.anchor?.tokensAfter!==void 0?{tokensAfter:d.anchor.tokensAfter}:{},...d.anchor?.entriesRemoved!==void 0?{entriesRemoved:d.anchor.entriesRemoved}:{},...d.anchor?.reason!==void 0?{reason:d.anchor.reason}:{},artifactLedgerEntryCount:d.artifactLedger?.length??0,postCompactAttachmentCount:d.postCompactAttachments?.length??0,exactSnapshotAvailable:d.preCompactionMessages!==void 0};y("context.compaction.messages",{messageCount:m.length,update:w,meta:I},I),await t?.onCompactedMessages?.(m,d,I)},onContextCompactionFinished(m){let d=m.contextRevision??0;y("context.compaction.finished",{...m,contextId:m.contextId??a.sessionId,contextKind:m.contextKind??"root",contextRevision:d,beforeRevision:Math.max(0,d-1),afterRevision:d},m),t?.onContextCompactionFinished?.(m)},onCompactEnd(m){y("context.compaction.ended",{meta:m},m),t?.onCompactEnd?.(m)},onMidTurnUserMessages(m,d){R(d?.queuedMessageIds??[]),y("run.progress",{kind:"mid_turn_user_messages",contents:m,meta:d},d),t?.onMidTurnUserMessages?.(m,d)},onRetry(m,d,I,w){y("provider.retry",{reason:m,attempt:d,maxAttempts:I,meta:w},w),t?.onRetry?.(m,d,I,w)},onProviderRateLimit(m,d,I,w){y("provider.retry",{reason:"rate_limit",attempt:m,maxAttempts:d,delayMs:I,meta:w},w),t?.onProviderRateLimit?.(m,d,I,w)},onRetryAfter(m,d){y("provider.retry",{retryAfter:m,meta:d},d),t?.onRetryAfter?.(m,d)},onReasoningEffortRejected(m){y("provider.recovery",{kind:"reasoning_effort_rejected",event:m},m),t?.onReasoningEffortRejected?.(m)},onRepoIntelligenceTrace(m){y("repo_intelligence.trace",m,m),t?.onRepoIntelligenceTrace?.(m)},onContextBudgetSnapshot(m){let d=vi(m,a.sessionId);y("context.budget.snapshot",d,d),t?.onContextBudgetSnapshot?.(d)},onPromptCacheDiagnostics(m){let d=vi(m,a.sessionId);y("provider.cache.diagnostics",d,d),t?.onPromptCacheDiagnostics?.(d)},onToolExposurePlanned(m){let d=vi(m,a.sessionId);y("tool.exposure.planned",d,d),t?.onToolExposurePlanned?.(d)},onContextCompactionSkipped(m){let d=vi(m,a.sessionId);y("context.compaction.skipped",d,d),t?.onContextCompactionSkipped?.(d)},onSidecarMessage(m){y("sidecar.message",m,m),t?.onSidecarMessage?.(m)},onTodoUpdate(m,d){y("todo.updated",{items:m,meta:d},d),t?.onTodoUpdate?.(m,d)},onTodoDriftWarning(m){y("todo.warning",m,m),t?.onTodoDriftWarning?.(m)},onProviderRecovery(m,d){l("recovering"),y("provider.recovery",{event:m,meta:d},d),t?.onProviderRecovery?.(m,d)},onEffectiveConfig(m){y("config.effective",m,m),t?.onEffectiveConfig?.(m)},onWorkflowProcessEvent(m){let d=Lh(m);n.emit(d,nt(m),{sessionId:m.snapshot.hostMetadata?.sessionId??a.sessionId,runId:a.runId,turnId:a.turnId}),t?.onWorkflowProcessEvent?.(m)},onComplete(m){a.interruptInputOpen=!1,u("completed"),y("run.progress",{kind:"complete",meta:m},m),t?.onComplete?.(m)},onError(m,d){a.interruptInputOpen=!1,u("failed",m),y("runtime.warning",{source:"coding",severity:"error",message:m.message},d),t?.onError?.(m,d)},onManagedTaskStatus(m){if(a.mode==="managed_task"&&m.phase==="completed")a.interruptInputOpen=!1,l("running"),p("finalizing",0);else if(a.mode==="managed_task"){l(m.idleWaiting===!0?"waiting_agent":"running");let d=m.idleWaitingPendingCount??(m.phase==="verifying"?0:void 0);p(m.phase??(m.idleWaiting===!0?"waiting_agent":"executing"),d)}y("run.progress",{kind:"managed_task_status",status:m},m),t?.onManagedTaskStatus?.(m)},beforeToolExecute:i(async(m,d,I)=>{let w=zh(a),C=a.autoModeEngine;if(w!==void 0&&mn(a.permissionMode)==="auto"&&(C==="llm"||C==="rules")){if(kl.has(m))return!0;let q=await t?.beforeToolExecute?.(m,d,I);return q!==void 0&&q!==!0?q:I?.toolId!==void 0&&w.consumeAllowedCall({id:I.toolId,name:m,input:d})?!0:"[Blocked] Runtime auto mode did not classify this concrete tool call."}if(mn(a.permissionMode)==="plan"){let q=gl(a,m,d);if(q!==!0&&q!==void 0)return q}let b=Uh(a);if(r.isGranted(I?.sessionId??a.sessionId,m,d,vs(a),b?.shell,b?.shellContractFingerprint))return!0;let P=t?.beforeToolExecute===void 0?gl(a,m,d):void 0;if(P!==void 0)return P;let T=a.phase;a.phase==="running"&&l("waiting_permission");let D=r.trackAndWait({sessionId:I?.sessionId??a.sessionId,runId:a.runId,...I?.turnId??a.turnId?{turnId:I?.turnId??a.turnId}:{},...I?.toolId?{toolCallId:I.toolId}:{},toolName:m,inputPreview:nr(d),executionCwd:vs(a)},void 0,{toolInput:d,...b??{},...typeof a.start?.options.context?.gitRoot=="string"?{projectRoot:a.start.options.context.gitRoot}:{}});try{if(!t?.beforeToolExecute){let he=await D.response;return yl(he)}let q=Promise.resolve(t.beforeToolExecute(m,d,I)).then(he=>({source:"hook",decision:he})),re=D.response.then(he=>({source:"runtime",decision:yl(he)})),ne=await Promise.race([q,re]);return ne.source==="hook"&&r.resolve(D.request.id,Bh(ne.decision)),ne.decision}catch(q){throw r.resolve(D.request.id,{type:"reject",reason:_e(q).message}),q}finally{a.phase==="waiting_permission"&&l(T==="queued"?"running":T)}},"beforeToolExecute"),...t?.askUser||s?{askUser:i((m,d)=>g("askUser",m,d,t?.askUser?()=>t.askUser(m,d):void 0,""),"askUser")}:{},...t?.askUserMulti||s?{askUserMulti:i((m,d)=>g("askUserMulti",m,d,t?.askUserMulti?()=>t.askUserMulti(m,d):void 0,void 0),"askUserMulti")}:{},...t?.askUserInput||s?{askUserInput:i((m,d)=>g("askUserInput",m,d,t?.askUserInput?()=>t.askUserInput(m,d):void 0,void 0),"askUserInput")}:{}}}i(NR,"wrapKodaXEvents");function LR(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(LR,"buildSessionRuntimeInfo");function _l(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(_l,"toRuntimeSessionSummary");function il(e,n,t){let r=e.input===void 0?[]:Array.isArray(e.input)?[...e.input]:[e.input],o=r.filter(a=>a.type==="text");if(e.prompt!==void 0&&o.length>0)throw new Error(`${t} accepts either prompt or text input, not both`);if(o.length>1)throw new Error(`${t} accepts at most one text input item`);let s=e.prompt??o[0]?.text;if(s===void 0)throw new Error(`${t} requires prompt or text input`);return{prompt:s,inputArtifacts:r.flatMap(a=>HR(a,n))}}i(il,"normalizeRuntimeRunInput");function HR(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return FR(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(HR,"runtimeInputToArtifacts");function FR(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(FR,"runtimeArtifactToInputArtifacts");function qR(e){return typeof e=="string"&&Py.has(e)}i(qR,"isRuntimeArtifactKind");function $R(e,n,t,r){let o=r.runtimeInfo?.canonicalRepoRoot??(r.gitRoot?r.gitRoot:void 0),s=o===void 0?void 0:Q.resolve(o),a=r.runtimeInfo?.executionCwd??r.runtimeInfo?.workspaceRoot??s,u={...s!==void 0?{gitRoot:s}:{},...n.executionCwd!==void 0?{executionCwd:Q.resolve(n.executionCwd)}:a!==void 0?{executionCwd:Q.resolve(a)}:{},...n.shellExecution!==void 0?{shellExecution:n.shellExecution}:{}},l=e.context,p={...l??{}};delete p.shellExecution;let R=l?.shellExecution===void 0?void 0:sr(l.shellExecution),v=typeof l?.gitRoot=="string"?Q.resolve(l.gitRoot):void 0;if(s!==void 0&&v!==void 0&&!(Lr(s,v)&&Lr(v,s)))throw new Error("gitRoot must match the session repository safety boundary");let y=l?.executionCwd===void 0?void 0:Q.resolve(l.executionCwd),x=y??u.executionCwd,g=r.runtimeInfo?.workspaceRoot??s;y!==void 0&&g!==void 0&&Fl(y,g,"executionCwd");let m=[...l?.inputArtifacts??[],...t],d={...u,...p,...s!==void 0?{gitRoot:s}:v!==void 0?{gitRoot:v}:{},...x!==void 0?{executionCwd:x}:{},...R!==void 0?{shellExecution:R}:{},...m.length>0?{inputArtifacts:m}:{}},I=e.provider??n.provider,w=e.model??n.model,C=e.effort??n.effort,S=e.thinking??n.thinking,b=e.reasoningMode??n.reasoningMode,P=e.agentMode??n.agentMode,T=P==="amaw"?"ama":P,D=e.compaction!==void 0||n.compactionTriggerPercent!==void 0||n.compactionTriggerTokens!==void 0?{...n.compactionTriggerPercent!==void 0?{triggerPercent:n.compactionTriggerPercent}:{},...n.compactionTriggerTokens!==void 0?{triggerTokens:n.compactionTriggerTokens}:{},...e.compaction??{}}:void 0;return{...e,...I!==void 0?{provider:I}:{},...w!==void 0?{model:w}:{},...C!==void 0?{effort:C}:{},...S!==void 0?{thinking:S}:{},...b!==void 0?{reasoningMode:b}:{},...T!==void 0?{agentMode:T}:{},...D!==void 0?{compaction:D}:{},...Object.keys(d).length>0?{context:d}:{}}}i($R,"buildEffectiveRuntimeOptions");async function jR(e,n,t){let r=await e.storage.read(n,t);if(!r)throw new Error(`Session not found: ${n}`);return r}i(jR,"loadRequiredSession");function En(e){if(e?.timeoutMs!==void 0&&(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0))throw new Error("Runtime read timeoutMs must be a positive finite number");return{...e?.timeoutMs!==void 0?{deadline:Date.now()+e.timeoutMs}:{},...e?.signal!==void 0?{signal:e.signal}:{}}}i(En,"createRuntimeReadBudget");function Pe(e){if(e.signal?.aborted)throw new rn("read_cancelled","Runtime history read cancelled");if(e.deadline===void 0)return e.signal===void 0?{}:{signal:e.signal};let n=e.deadline-Date.now();if(n<=0)throw new rn("read_timeout","Runtime history read timed out");return{timeoutMs:n,...e.signal!==void 0?{signal:e.signal}:{}}}i(Pe,"sessionReadOptionsFromBudget");function xn(e,n){let t=Pe(n),r=Promise.resolve().then(e);if(t.timeoutMs===void 0&&t.signal===void 0)return r;let o,s,a=[];return t.timeoutMs!==void 0&&a.push(new Promise((u,l)=>{o=setTimeout(()=>l(new rn("read_timeout","Runtime history read timed out")),t.timeoutMs),o.unref?.()})),t.signal!==void 0&&a.push(new Promise((u,l)=>{s=i(()=>l(new rn("read_cancelled","Runtime history read cancelled")),"onAbort"),t.signal?.addEventListener("abort",s,{once:!0}),t.signal?.aborted&&s()})),Promise.race([r,...a]).finally(()=>{o!==void 0&&clearTimeout(o),s!==void 0&&t.signal?.removeEventListener("abort",s)})}i(xn,"awaitRuntimeReadOperation");async function Vt(e){await xn(()=>new Promise(n=>setImmediate(n)),e),Pe(e)}i(Vt,"yieldToRuntimeReadBudget");function BR(e,n,t){let r=i((a,u)=>t?KR(a,u)?!1:a===void 0||ly.has(a.toLowerCase()):!0,"admitted"),o=i(a=>{throw Object.assign(new Error(`Session is not admitted by shared Runtime profile ${e}: ${a}`),{code:"session_not_admitted"})},"reject"),s=i(async(a,u,l=!1)=>{let p=l?await n.loadSession(a):await jR(n,a,u);if(p===null)throw new Error(`Session not found: ${a}`);return r(p.runtimeInfo?.surface,p.runtimeInfo?.profileId)||o(a),p},"loadAdmitted");return{assertCreate(a){r(a.surface,a.profileId)||o(a.sessionId??"<new>")},assertFilter(a){a?.surface!==void 0&&!r(a.surface,void 0)&&o("<list>")},admitsData(a){return r(a.runtimeInfo?.surface,a.runtimeInfo?.profileId)},admitsSummary(a){return r(a.runtimeInfo?.surface,a.runtimeInfo?.profileId)},assertCachedIdentity(a,u){r(u.surface,u.profileId)||o(a)},async admitsSession(a){if(!t)return!0;let u=await n.storage.peek(a);return u!==null&&r(u.runtimeInfo?.surface,u.runtimeInfo?.profileId)},async assertRunAccess(a){t&&await s(a)},async loadRequired(a,u){return s(a,u)},async captureRequired(a,u){let l=await n.readSessionCapture(a,u);if(l===null)throw new Error(`Session not found: ${a}`);return r(l.data.runtimeInfo?.surface,l.data.runtimeInfo?.profileId)||o(a),l},async loadExecutable(a){let u=await s(a,void 0,!0);if(await n.storage.isArchived(a))throw Is(a);return u}}}i(BR,"createRuntimeSessionAdmission");async function ol(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(ol,"filterAdmittedRunStatuses");function KR(e,n){let t=i(r=>r?.toLowerCase().split(/[^a-z0-9]+/).includes("partner")===!0,"hasPartnerToken");return t(e)||t(n)}i(KR,"isPartnerSessionIdentity");function XR(e){return e===null?GR("null"):UR(e.transcriptEntries)}i(XR,"createRuntimeTranscriptRevision");function UR(e,n){return zR(e,"kodax-transcript-entries-v1\0","",n)}i(UR,"createRuntimeTranscriptEntriesRevision");function zR(e,n,t,r){let o=vt("sha256");o.update(n),t.length>0&&(o.update(`${Buffer.byteLength(t,"utf8")}:`),o.update(t));for(let s of e){let a=Buffer.from(JSON.stringify(s),"utf8");o.update(`${a.length}:`),o.update(a),r?.(s,a)}return`sha256:${o.digest("hex")}`}i(zR,"createRuntimeHistoryEntriesRevision");function WR(e){return JSON.stringify({sourceRevision:e.sourceRevision,status:e.status,issues:e.issues})}i(WR,"runtimeConversationRevisionContext");function VR(e){return ro(e)}i(VR,"createRuntimeConversationHistoryRevision");function GR(e){return`sha256:${vt("sha256").update(e).digest("hex")}`}i(GR,"createRuntimeTranscriptRevisionFromSerialized");function JR(e){return"entryId"in e&&typeof e.entryId=="string"?{entryId:e.entryId}:"boundaryId"in e&&typeof e.boundaryId=="string"?{boundaryId:e.boundaryId}:{}}i(JR,"runtimeHistoryEntryDescriptorIdentity");function Oi(e){return Buffer.from(JSON.stringify(e),"utf8").toString("base64url")}i(Oi,"encodeRuntimeTranscriptCursor");function xr(e){let n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch(r){throw ke(`Invalid transcript cursor: ${_e(r).message}`)}if(!oe(n)||typeof n.revision!="string")throw ke("Invalid transcript cursor payload");let t=n.view===void 0||n.view==="transcript"?"transcript":n.view==="conversation"?"conversation":void 0;if(t===void 0)throw ke("Invalid transcript cursor view");if(n.kind==="conversation_cache_page"&&t==="conversation"&&Number.isSafeInteger(n.end)&&Number(n.end)>=0)return{kind:"conversation_cache_page",view:t,revision:n.revision,end:Number(n.end)};if(n.kind==="page"&&Number.isSafeInteger(n.end)&&Number(n.end)>=0)return{kind:"page",view:t,revision:n.revision,end:Number(n.end)};if(n.kind==="entry"&&Number.isSafeInteger(n.entryIndex)&&Number(n.entryIndex)>=0&&Number.isSafeInteger(n.offset)&&Number(n.offset)>=0)return{kind:"entry",view:t,revision:n.revision,entryIndex:Number(n.entryIndex),offset:Number(n.offset)};throw ke("Invalid transcript cursor payload")}i(xr,"decodeRuntimeTranscriptCursor");async function ls(e,n,t,r){if(e.view!=="transcript")throw ke("Transcript snapshot view does not match the request");let o=await Ol(e,n,t,r);return{revision:e.revision,entries:o.entries.map(s=>({index:s.index,...s.entryId!==void 0?{entryId:s.entryId}:{},byteLength:s.byteLength,oversized:s.oversized,...s.entry!==void 0?{entry:s.entry}:{}})),hasMore:o.hasMore,...o.nextCursor!==void 0?{nextCursor:o.nextCursor}:{}}}i(ls,"createRuntimeTranscriptSlice");async function Ol(e,n,t,r,o=0){let s=r??Sl;if(!Number.isSafeInteger(s)||s<=0)throw new Error("transcript page limit must be a positive safe integer");let a=Math.min(s,Il);if(o>It)throw Li();let u=e.entries.length;if(t!==void 0){let y=xr(t);if(y.kind!=="page"||y.revision!==e.revision||y.view!==e.view)throw ke("Transcript cursor is stale; request a fresh observation snapshot");u=Math.min(y.end,e.entries.length)}let l=[],p=o,R=u;for(let y=u-1;y>=0&&(Pe(n),!(l.length>=a));y-=1){let x=e.entries[y],g=x.byteLength,m=g<=Ai?await ZR(e,x,n):void 0,d={index:y,...x.entryId!==void 0?{entryId:x.entryId}:{},...x.boundaryId!==void 0?{boundaryId:x.boundaryId}:{},byteLength:g,oversized:g>Ai,...m!==void 0?{entry:m}:{}},I=Buffer.byteLength(JSON.stringify(d),"utf8");if(p+I>It){if(l.length===0)throw Li();break}l.unshift(d),p+=I,R=y}Pe(n);let v=R>0;return{entries:l,hasMore:v,...v?{nextCursor:Oi({kind:"page",view:e.view,revision:e.revision,end:R})}:{}}}i(Ol,"createRuntimeHistorySlice");async function sl(e,n,t,r){if(e.view!=="conversation"||e.conversation===void 0)throw ke("Conversation snapshot view does not match the request");let o=await Ol(e,n,t,r,Buffer.byteLength(JSON.stringify({revision:e.revision,sourceRevision:e.conversation.sourceRevision,status:e.conversation.status,issues:e.conversation.issues}),"utf8"));return{revision:e.revision,sourceRevision:e.conversation.sourceRevision,status:e.conversation.status,issues:structuredClone(e.conversation.issues),entries:o.entries.map(s=>({index:s.index,...s.boundaryId!==void 0?{boundaryId:s.boundaryId}:{},byteLength:s.byteLength,oversized:s.oversized,...s.entry!==void 0?{entry:s.entry}:{}})),hasMore:o.hasMore,...o.nextCursor!==void 0?{nextCursor:o.nextCursor}:{}}}i(sl,"createRuntimeConversationHistorySlice");async function YR(e,n,t){if(n.view!=="transcript")throw ke("Transcript snapshot view does not match the request");let r=await Nl(e,n,t);return{revision:r.revision,entryIndex:r.entryIndex,...r.entryId!==void 0?{entryId:r.entryId}:{},encoding:"base64-json",data:r.data,hasMore:r.hasMore,...r.nextCursor!==void 0?{nextCursor:r.nextCursor}:{}}}i(YR,"createRuntimeTranscriptEntryChunkFromSnapshot");async function Nl(e,n,t){if(e.revision!==n.revision)throw ke("Transcript revision changed; request a fresh observation snapshot");let r=n.entries[e.entryIndex];if(r===void 0)throw new Error(`Transcript entry index is out of range: ${e.entryIndex}`);let o=0;if(e.cursor!==void 0){let l=xr(e.cursor);if(l.kind!=="entry"||l.revision!==n.revision||l.view!==n.view||l.entryIndex!==e.entryIndex)throw ke("Transcript entry cursor is stale; restart entry retrieval");o=l.offset}if(o>r.byteLength||o%Er!==0)throw ke("Transcript entry cursor offset is invalid");let s=Math.min(r.byteLength,o+Er),a=await Ll(n.filePath,r.offset+o,s-o,t);Hl(a,r.chunkDigests[o/Er]),Pe(t);let u=s<r.byteLength;return{revision:n.revision,entryIndex:e.entryIndex,...r.entryId!==void 0?{entryId:r.entryId}:{},...r.boundaryId!==void 0?{boundaryId:r.boundaryId}:{},data:a.toString("base64"),hasMore:u,...u?{nextCursor:Oi({kind:"entry",view:n.view,revision:n.revision,entryIndex:e.entryIndex,offset:s})}:{}}}i(Nl,"createRuntimeHistoryEntryChunkFromSnapshot");async function QR(e,n,t){if(n.view!=="conversation")throw ke("Conversation snapshot view does not match the request");let r=await Nl(e,n,t);return{revision:r.revision,entryIndex:r.entryIndex,...r.boundaryId!==void 0?{boundaryId:r.boundaryId}:{},encoding:"base64-json",data:r.data,hasMore:r.hasMore,...r.nextCursor!==void 0?{nextCursor:r.nextCursor}:{}}}i(QR,"createRuntimeConversationEntryChunkFromSnapshot");async function ZR(e,n,t){let r=await Ll(e.filePath,n.offset,n.byteLength,t);Hl(r,n.chunkDigests[0]);try{return JSON.parse(r.toString("utf8"))}catch(o){throw Ds(`Transcript snapshot entry is corrupt: ${_e(o).message}`)}}i(ZR,"parseRuntimeTranscriptSnapshotEntry");async function Ll(e,n,t,r){let o=Buffer.allocUnsafe(t),s;try{s=await F.promises.open(e,"r");let a=0;for(;a<t;){let u=await s.read(o,a,t-a,n+a);if(u.bytesRead===0)throw new Error("Transcript snapshot ended unexpectedly.");a+=u.bytesRead,Pe(r)}return o}catch(a){throw Ni(a)?a:Ds(`Transcript snapshot is unavailable: ${_e(a).message}`)}finally{s!==void 0&&await s.close()}}i(Ll,"readRuntimeTranscriptSnapshotBytes");async function eh(e,n){let t=0;for(;t<n.length;){let r=await e.write(n,t,n.length-t,null);if(r.bytesWritten===0)throw new Error("Transcript snapshot write made no progress.");t+=r.bytesWritten}}i(eh,"writeFileHandleFully");function Ni(e){return oe(e)?e.code==="read_timeout"||e.code==="read_cancelled":!1}i(Ni,"isExpectedRuntimeReadTermination");function Hl(e,n){let t=vt("sha256").update(e).digest("hex");if(n===void 0||t!==n)throw Ds("Transcript snapshot integrity check failed; request a fresh boundary")}i(Hl,"assertRuntimeTranscriptSnapshotDigest");function al(e){return e.length<=$c?e:`${e.slice(0,$c-1)}\u2026`}i(al,"previewQueuedInput");function hs(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&Fl(n.executionCwd,t,"executionCwd")}i(hs,"assertSessionSettingsAllowed");function Fl(e,n,t){if(!Lr(e,n))throw new Error(`${t} must stay within the session workspace root`)}i(Fl,"assertPathWithinRoot");function nh(e,n){let t={...e};return Ir(t,"provider",n.provider),Ir(t,"model",n.model),Ir(t,"permissionMode",n.permissionMode),Ir(t,"executionCwd",n.executionCwd,!0),th(t,n.shellExecution),Ir(t,"autoModeClassifierModel",n.autoModeClassifierModel),kr(t,"effort",n.effort),kr(t,"thinking",n.thinking),kr(t,"reasoningMode",n.reasoningMode),kr(t,"agentMode",n.agentMode),kr(t,"autoModeEngine",n.autoModeEngine),ih(t,"autoModeTimeoutMs",n.autoModeTimeoutMs),oh(t,"autoModeSpeculativeWindowMs",n.autoModeSpeculativeWindowMs),ql(t,n.compactionTriggerPercent),rh(t,n.compactionTriggerTokens),t}i(nh,"applySessionSettingsPatch");function ql(e,n){if(n!==void 0){if(n===null){kt(e,"compactionTriggerPercent");return}if(!Number.isFinite(n))throw new Error("compactionTriggerPercent must be a finite number");Le(e,"compactionTriggerPercent",ca({triggerPercent:n}).triggerPercent)}}i(ql,"applyNullableCompactionPercentPatch");function th(e,n){if(n!==void 0){if(n===null){kt(e,"shellExecution");return}Le(e,"shellExecution",sr(n))}}i(th,"applyNullableShellExecutionPatch");function rh(e,n){if(n!==void 0){if(n===null||n===0){kt(e,"compactionTriggerTokens");return}if(!Number.isSafeInteger(n)||n<0)throw new Error("compactionTriggerTokens must be a positive safe integer or zero");Le(e,"compactionTriggerTokens",n)}}i(rh,"applyNullableCompactionTokensPatch");function ih(e,n,t){if(t!==void 0){if(t===null){kt(e,n);return}if(!Number.isSafeInteger(t)||t<=0)throw new Error(`${n} must be a positive safe integer`);Le(e,n,t)}}i(ih,"applyNullablePositiveIntegerPatch");function oh(e,n,t){if(t!==void 0){if(t===null){kt(e,n);return}if(!Number.isSafeInteger(t)||t<0)throw new Error(`${n} must be a non-negative safe integer`);Le(e,n,t)}}i(oh,"applyNullableNonNegativeIntegerPatch");function Ir(e,n,t,r=!1){if(t===void 0)return;if(t===null){kt(e,n);return}if(r&&!Q.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);let o=n==="autoModeClassifierModel"?$l(t):t;Le(e,n,o)}i(Ir,"applyNullableStringPatch");function $l(e){let n=e.trim();if(n.length===0)throw new wt("autoModeClassifierModel must be a non-empty classifier model spec.");try{Ca(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw new wt(`autoModeClassifierModel must be a valid classifier model spec: ${r}`)}return n}i($l,"validateRuntimeAutoModeClassifierModel");function jl(e,n){if(!(mn(e.permissionMode)!=="auto"||(e.autoModeEngine??"llm")!=="llm")){if(e.autoModeClassifierModel!==void 0){try{$l(e.autoModeClassifierModel)}catch(t){return t instanceof wt?t:new wt("Auto LLM classifier model configuration is invalid.")}return}if(!n?.trim().length)return new wt("Auto LLM requires a classifier model. Set autoModeClassifierModel, the Session/run model, or runtime defaultModel.")}}i(jl,"runtimeAutoModeClassifierModelError");function sh(e,n){let t=jl(e,n);if(t)throw t}i(sh,"assertRuntimeAutoModeClassifierModelConfigured");function kr(e,n,t){if(t!==void 0){if(t===null){kt(e,n);return}Le(e,n,t)}}i(kr,"applyNullablePatch");function Le(e,n,t){e[n]=t}i(Le,"setMutableSetting");function kt(e,n){delete e[n]}i(kt,"deleteMutableSetting");function dl(e){if(!oe(e))return{};let n={};return Qn(n,"provider",e.provider),Qn(n,"model",e.model),Qn(n,"permissionMode",e.permissionMode),Qn(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Le(n,"shellExecution",sr(e.shellExecution)),Qn(n,"autoModeClassifierModel",e.autoModeClassifierModel),Qn(n,"effort",e.effort),typeof e.thinking=="boolean"&&Le(n,"thinking",e.thinking),Qn(n,"reasoningMode",e.reasoningMode),Qn(n,"agentMode",e.agentMode),(e.autoModeEngine==="llm"||e.autoModeEngine==="rules")&&Le(n,"autoModeEngine",e.autoModeEngine),Number.isSafeInteger(e.autoModeTimeoutMs)&&Number(e.autoModeTimeoutMs)>0&&Le(n,"autoModeTimeoutMs",Number(e.autoModeTimeoutMs)),Number.isSafeInteger(e.autoModeSpeculativeWindowMs)&&Number(e.autoModeSpeculativeWindowMs)>=0&&Le(n,"autoModeSpeculativeWindowMs",Number(e.autoModeSpeculativeWindowMs)),typeof e.compactionTriggerPercent=="number"&&ql(n,e.compactionTriggerPercent),Number.isSafeInteger(e.compactionTriggerTokens)&&Number(e.compactionTriggerTokens)>0&&Le(n,"compactionTriggerTokens",Number(e.compactionTriggerTokens)),n}i(dl,"parseRuntimeSessionSettings");function ah(e){if(!oe(e)||!oe(e.scope))throw new Error("invalid permission grant");let n=e.scope.toolName,t=e.scope.sessionId,r=e.scope.matcher,o=e.persistence,s=e.label,a=e.sourcePermissionId;if(typeof e.id!="string"||typeof e.createdAt!="string"||n!==void 0&&typeof n!="string"||t!==void 0&&typeof t!="string"||o!==void 0&&o!=="session"&&o!=="persistent"||s!==void 0&&typeof s!="string"||a!==void 0&&typeof a!="string")throw new Error("invalid permission grant");return{id:e.id,createdAt:e.createdAt,persistence:o??"persistent",...s!==void 0?{label:s}:{},...a!==void 0?{sourcePermissionId:a}:{},scope:{...n!==void 0?{toolName:n}:{},...t!==void 0?{sessionId:t}:{},...r!==void 0?{matcher:Ya(r)}:{}}}}i(ah,"parseRuntimePermissionGrant");function Qn(e,n,t){typeof t=="string"&&t.length>0&&Le(e,n,t)}i(Qn,"setStringIfPresent");function oe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(oe,"isRecord");function dh(e,n){if(!oe(e))throw new Error(`${n} requires a plain object`)}i(dh,"assertPlainObject");function uh(e){let n=new Set(cy);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(uh,"sanitizeRuntimeConfigPatch");function ch(e){if(e.homeDir!==void 0)return Q.join(Q.resolve(e.homeDir),".kodax","config.json")}i(ch,"resolveRuntimeConfigFile");function Zn(e){if(e===void 0)return _a();if(!F.existsSync(e))return{};try{let n=JSON.parse(F.readFileSync(e,"utf8"));return oe(n)?n:{}}catch{return{}}}i(Zn,"readRuntimeConfig");function lh(e,n){if(e===void 0){Na(n);return}Mr(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(lh,"patchRuntimeConfig");function mh(e,n){F.mkdirSync(Q.dirname(e),{recursive:!0}),F.writeFileSync(e,`${JSON.stringify(n,null,2)}
29
+ `,"utf8")}i(mh,"writeRuntimeConfigUnlocked");function Mr(e,n){return Ma(e,()=>{let t=n(Zn(e));return t.config&&mh(e,t.config),t.result})}i(Mr,"mutateRuntimeConfig");function fh(e){return e===void 0?qa():yh(Hi(Zn(e)))}i(fh,"listRuntimeCustomProviders");function ph(e,n){if(e===void 0)return $a(n);$s(n);let t=Mr(e,r=>{let o=Sh(Hi(r),n,s=>s.name===n.name);return{config:{...r,customProviders:o},result:o}});return Nr(t),structuredClone(n)}i(ph,"upsertRuntimeCustomProvider");function gh(e,n){if(e===void 0)return ja(n);if(typeof n!="string"||n.length===0)return!1;let t=Mr(e,r=>{let o=Hi(r),s=o.filter(a=>a.name!==n);return s.length===o.length?{result:void 0}:{config:{...r,customProviders:s},result:s}});return t?(Nr(t),!0):!1}i(gh,"removeRuntimeCustomProvider");function Bl(e){e!==void 0&&Nr(Hi(Zn(e)))}i(Bl,"registerRuntimeConfiguredCustomProviders");function Hi(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}i(Hi,"extractRuntimeCustomProviders");function yh(e){return structuredClone(e)}i(yh,"cloneCustomProviders");function ms(e){return e===void 0?Ba():vh(Fi(Zn(e)))}i(ms,"listRuntimeMcpServers");function Rh(e,n){if(e===void 0)return Ka(n);let t=Fi(Zn(e))[n];return t===void 0?void 0:structuredClone(t)}i(Rh,"getRuntimeMcpServer");function hh(e,n,t){return e===void 0?Xa(n,t):(to(n,t),Mr(e,r=>{let o={...Fi(r),[n]:structuredClone(t)};return{config:{...r,mcpServers:o},result:void 0}}),structuredClone(t))}i(hh,"upsertRuntimeMcpServer");function wh(e,n){return e===void 0?Ua(n):Mr(e,t=>{let r=Fi(t);if(!(n in r))return{result:!1};let o={...r};return delete o[n],{config:{...t,mcpServers:o},result:!0}})}i(wh,"removeRuntimeMcpServer");function Fi(e){return oe(e.mcpServers)?structuredClone(e.mcpServers):{}}i(Fi,"extractRuntimeMcpServers");function vh(e){return structuredClone(e)}i(vh,"cloneMcpServers");function Sh(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(Sh,"upsertConfigEntry");function Ih(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(o=>oe(o)&&o.name===n.provider);return oe(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!oe(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}i(Ih,"listRuntimeModels");function ul(e){let n=kh(e).map(bh),t=Pt()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(Eh)??[];return[...n,...t].sort((r,o)=>r.name.localeCompare(o.name))}i(ul,"listRuntimeCommands");function kh(e){let n=Wa;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):Ha().getAll()}i(kh,"listReplCommands");function bh(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(bh,"replCommandToRuntimeCommandInfo");function Eh(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(Eh,"extensionCommandToRuntimeCommandInfo");function Yt(e){return Array.isArray(e)?e.map(n=>Yt(n)):oe(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Ph(n)?"[redacted]":Yt(t)])):e}i(Yt,"redactRuntimeConfig");function Ph(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(Ph,"isSensitiveConfigKey");function xh(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(xh,"toRuntimeSkillSummary");function Ch(e){return{name:e.name,description:e.description,userInvocable:e.userInvocable??!0,...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},path:e.path,source:e.source,disableModelInvocation:e.disableModelInvocation??!1,content:e.content,skillFilePath:e.skillFilePath,...e.scripts!==void 0?{scripts:e.scripts.map(br)}:{},...e.references!==void 0?{references:e.references.map(br)}:{},...e.assets!==void 0?{assets:e.assets.map(br)}:{},...e.templates!==void 0?{templates:e.templates.map(br)}:{},...e.resources!==void 0?{resources:e.resources.map(br)}:{}}}i(Ch,"toRuntimeSkillDescription");function br(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}i(br,"toRuntimeSkillFileSummary");function rr(e){if(!oe(e))throw new Error("Invalid runtime daemon response: expected object");return e}i(rr,"requireRuntimeRecord");function Kl(e){let n=rr(e);if(typeof n.runtimeId!="string"||typeof n.mode!="string"||typeof n.profile!="string"||typeof n.startedAt!="string"||typeof n.version!="string")throw new Error("Invalid runtime daemon response: missing identity fields");return{runtimeId:n.runtimeId,mode:n.mode==="daemon"?"daemon":"embedded",profile:n.profile,startedAt:n.startedAt,version:n.version,...n.isolation==="inline"||n.isolation==="worker"||n.isolation==="process"?{isolation:n.isolation}:{},...typeof n.workerThreadId=="number"?{workerThreadId:n.workerThreadId}:{}}}i(Kl,"parseRuntimeIdentity");function Ah(e){let n={};return e.provider!==void 0&&Le(n,"provider",e.provider),e.model!==void 0&&Le(n,"model",e.model),e.effort!==void 0&&Le(n,"effort",e.effort),e.thinking!==void 0&&Le(n,"thinking",e.thinking),e.reasoningMode!==void 0&&Le(n,"reasoningMode",e.reasoningMode),e.permissionMode!==void 0&&Le(n,"permissionMode",e.permissionMode),e.executionCwd!==void 0&&Le(n,"executionCwd",e.executionCwd),e.shellExecution!==void 0&&Le(n,"shellExecution",sr(e.shellExecution)),e.agentMode!==void 0&&Le(n,"agentMode",e.agentMode),e.autoModeEngine!==void 0&&Le(n,"autoModeEngine",e.autoModeEngine),e.autoModeClassifierModel!==void 0&&Le(n,"autoModeClassifierModel",e.autoModeClassifierModel),e.autoModeTimeoutMs!==void 0&&Le(n,"autoModeTimeoutMs",e.autoModeTimeoutMs),e.autoModeSpeculativeWindowMs!==void 0&&Le(n,"autoModeSpeculativeWindowMs",e.autoModeSpeculativeWindowMs),e.compactionTriggerPercent!==void 0&&Le(n,"compactionTriggerPercent",e.compactionTriggerPercent),e.compactionTriggerTokens!==void 0&&Le(n,"compactionTriggerTokens",e.compactionTriggerTokens),n}i(Ah,"serializeSessionSettings");function Th(){return`run_${Date.now().toString(36)}_${Je().replace(/-/g,"").slice(0,8)}`}i(Th,"createRunId");function Dh(){return`input_${Date.now().toString(36)}_${Je().replace(/-/g,"").slice(0,8)}`}i(Dh,"createInputId");function Xl(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(Xl,"runtimeInterruptInputStatus");function sn(e){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,...e.stage!==void 0?{stage:e.stage}:{},...e.stageChangedAt!==void 0?{stageChangedAt:e.stageChangedAt}:{},...e.activeSubtaskCount!==void 0?{activeSubtaskCount:e.activeSubtaskCount}:{},startedAt:e.startedAt,acceptedAt:e.startedAt,sessionOrder:e.sessionOrder,...e.queuedAt!==void 0?{queuedAt:e.queuedAt}:{},...e.runningAt!==void 0?{runningAt:e.runningAt}:{},...e.runningAt!==void 0?{executionStartedAt:e.runningAt}:{},...e.endedAt!==void 0?{endedAt:e.endedAt}:{},provider:e.provider,mode:e.mode,...e.origin!==void 0?{origin:e.origin}:{},...e.model!==void 0?{model:e.model}:{},...e.reasoning!==void 0?{reasoning:e.reasoning}:{},...e.error!==void 0?{error:e.error}:{},...e.lifecycleError!==void 0?{lifecycleError:e.lifecycleError}:{},...e.terminal!==void 0?{terminal:e.terminal}:{},...e.stop!==void 0?{stop:e.stop}:{},...e.continuation!==void 0?{continuation:{...e.continuation,state:Mh(e.phase)}}:{},...e.interruptInputs.length>0?{interruptInputs:e.interruptInputs.map(Xl)}:{}}}i(sn,"statusFromRecord");function Mh(e){return e==="queued"?"queued":Ae(e)?"terminal":"delivered"}i(Mh,"runtimeContinuationState");function Ul(e){return{runId:e.runId,sessionId:e.sessionId,phase:e.phase,...e.error!==void 0?{error:new Error(e.error)}:{},...e.terminal!==void 0?{terminal:e.terminal}:{},...e.stop!==void 0?{stop:e.stop}:{}}}i(Ul,"resultFromStatus");function fs(e){let n=e.status.stop,t=n?.outcome??(e.status.phase==="completed"?"completed":e.status.phase==="failed"?"failed":e.status.phase==="cancelled"?"cancelled":e.status.phase==="interrupted"?"interrupted":"unknown");return{runId:e.status.runId,sessionId:e.status.sessionId,accepted:e.accepted,state:n?.state??(Ae(e.status.phase)?"confirmed":"unknown"),outcome:t,phase:e.status.phase,revision:e.revision}}i(fs,"runtimeRunStopReceipt");function _h(e){if(e.length<=_n)return e;let n=e.filter(o=>!Ae(o.status.phase)).sort((o,s)=>Xn(o.status,s.status)).slice(-_n),t=_n-n.length,r=t===0?[]:e.filter(o=>Ae(o.status.phase)).sort((o,s)=>Xn(o.status,s.status)).slice(-t);return[...n,...r]}i(_h,"recentRunStatuses");function cl(e){if(e.length<=_n)return e;let n=e.filter(o=>!Ae(o.phase)),t=Math.max(0,_n-n.length),r=t===0?[]:e.filter(o=>Ae(o.phase)).sort(Xn).slice(-t);return[...n,...r]}i(cl,"boundedRuntimeRunStatuses");function ll(e){return[...e].sort((n,t)=>{let r=(n.acceptedAt??n.startedAt).localeCompare(t.acceptedAt??t.startedAt);if(r!==0)return r;let o=n.sessionId.localeCompare(t.sessionId);if(o!==0)return o;let s=(n.sessionOrder??0)-(t.sessionOrder??0);return s!==0?s:n.runId.localeCompare(t.runId)})}i(ll,"canonicalRuntimeRunStatuses");function Oh(e){if(e.size<=_n)return;let n=[...e.values()].filter(t=>Ae(t.phase)).sort((t,r)=>Xn(sn(t),sn(r)));for(let t of n){if(e.size<=_n)return;e.delete(t.runId)}}i(Oh,"pruneTerminalRuns");function Xn(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(Xn,"compareRunStatusRecency");function ml(e,n){return n?n.sessionId!==void 0&&e.sessionId!==n.sessionId?!1:n.phase===void 0?!0:(Array.isArray(n.phase)?n.phase:[n.phase]).includes(e.phase):!0}i(ml,"runStatusMatchesFilter");function zl(e){return[...e].sort((n,t)=>{let r=fl(n.phase),o=fl(t.phase);if(r!==o)return o-r;let s=n.sessionOrder??0,a=t.sessionOrder??0;return s!==a?a-s:Xn(t,n)})[0]}i(zl,"authoritativeSessionRun");function fl(e){return e==="unknown"?4:Rn(e)?3:e==="queued"?2:1}i(fl,"runtimeSessionRunPriority");function Si(e,n){if(!(e.ownedByRuntime||Ae(e.phase)))throw Kn(`Run ${e.runId} is owned by another live Runtime; ${n.runtimeId} may observe but not mutate it.`,e.sessionOrder)}i(Si,"assertRuntimeOwnsRun");function Nh(e,n,t){return[...n.values()].some(s=>s.sessionId===e&&s.ownedByRuntime&&(s.phase==="queued"||Rn(s.phase)||s.phase==="unknown"||s.start!==void 0&&s.settlementFinished!==!0))?"local":t.loadRunStatuses().some(({status:s})=>s.sessionId===e&&(s.phase==="queued"||Rn(s.phase)||s.phase==="unknown"))?"foreign":void 0}i(Nh,"runtimeSessionActiveRunOwner");function Gt(e,n,t,r,o){if(t.terminalEmitted)return;delete t.actorHealthBaseState,t.interruptInputOpen=!1,ws(t),t.phase=r;let s=new Date().toISOString();t.stage="terminal",t.stageChangedAt=s,t.activeSubtaskCount=0,t.endedAt=s,t.stop!==void 0&&(t.stop={...t.stop,state:"confirmed",outcome:r==="completed"?"completed":r==="failed"?"failed":r==="interrupted"?"interrupted":"cancelled",resolvedAt:s}),t.terminalEmitted=!0;let a=r==="completed"?"completed":r==="cancelled"?"cancelled":r==="interrupted"?"interrupted":"failed";t.terminal={revision:1,kind:a,code:o?.code??Fh(a),effectOutcome:o?.effectOutcome??(a==="interrupted"?"unknown":"known"),...o?.message!==void 0?{message:o.message}:{}};let u=r==="completed"?"run.completed":r==="cancelled"?"run.cancelled":r==="interrupted"?"run.interrupted":"run.failed",l=sn(t),p=Un(e,n,t,l);if(p!==void 0&&p!==l){ht(t,p);return}e.emit(u,sn(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}})}i(Gt,"markRunTerminal");function ws(e){for(let n of e.interruptInputs)n.state==="queued"&&(n.queueMessageId!==void 0&&(Gs().dequeue({agentId:ji(e.sessionId,"/root"),maxPriority:"user",mode:"prompt",id:n.queueMessageId}),delete n.queueMessageId),n.state="terminal")}i(ws,"terminalizeQueuedInterruptInputs");function Un(e,n,t,r){try{return n.saveRunStatus(r)}catch(o){let s=t?.turnId??r.turnId;e.emit("runtime.warning",{message:`Failed to save runtime run status for ${r.runId}: ${_e(o).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...s!==void 0?{turnId:s}:{}});return}}i(Un,"saveRunStatusSafely");function ht(e,n){e.phase=n.phase,e.stage=n.stage,e.stageChangedAt=n.stageChangedAt,e.activeSubtaskCount=n.activeSubtaskCount,e.provider=n.provider,e.queuedAt=n.queuedAt,e.runningAt=n.runningAt,e.endedAt=n.endedAt,e.model=n.model,e.reasoning=n.reasoning,e.error=n.error,e.lifecycleError=n.lifecycleError,e.terminal=n.terminal,e.stop=n.stop,e.terminalEmitted=Ae(n.phase),e.interruptInputOpen=!1}i(ht,"applyAuthoritativeRunStatus");function Ae(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}i(Ae,"isTerminalRunPhase");function Lh(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}i(Lh,"workflowEventType");function Hh(e){return e==="completed"||e==="failed"||e==="cancelled"}i(Hh,"isFinalWorkflowStatus");function Fh(e){return e==="completed"?"completed":e==="failed"?"run_failed":e==="cancelled"?"cancelled":"interrupted"}i(Fh,"defaultRuntimeTerminalCode");function qh(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(qh,"classifyRuntimeRunFailure");function $h(e,n){if(!n.hadProviderCredential)return _e(e);let t=new Error("Provider run failed while using a run-scoped credential.");return t.name="KodaXProviderRunError",t}i($h,"normalizeRuntimeRunError");function jh(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(jh,"permissionMatchesFilter");function Bh(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}i(Bh,"decisionToPermissionDecision");function Kh(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(Kh,"autoModeEscalationRisk");var Xh=8;function vs(e){return Q.resolve(e.start?.options.context?.executionCwd??e.start?.options.context?.gitRoot??process.cwd())}i(vs,"resolveRuntimeExecutionCwd");function Uh(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:Gi(n)}}i(Uh,"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 zh(e){if(mn(e.permissionMode)==="auto")return e.start?.options.guardrails?.find(Qt)}i(zh,"getRuntimeAutoModeGuardrail");function Ts(e,n=new Set){if(e===null)return"null";if(typeof e=="string")return`string:${e.length}:${e}`;if(typeof e=="boolean")return e?"boolean:true":"boolean:false";if(typeof e>"u")return"undefined";if(typeof e=="bigint")return`bigint:${e.toString()};`;if(typeof e=="number")return Number.isNaN(e)?"number:NaN":Object.is(e,-0)?"number:-0":`number:${String(e)};`;if(typeof e!="object")throw new Error("Tool input must contain data values only.");if(n.has(e))throw new Error("Tool input must not be circular.");let t=Object.getPrototypeOf(e);if(!Array.isArray(e)&&t!==Object.prototype&&t!==null)throw new Error("Tool input must be a plain object.");n.add(e);try{let r=Reflect.ownKeys(e);if(r.some(s=>typeof s=="symbol"))throw new Error("Tool input must not contain symbol properties.");if(Array.isArray(e)){let s=r.filter(a=>a!=="length"&&typeof a=="string").map(a=>{let u=Number(a);if(!Number.isInteger(u)||u<0||u>=e.length||String(u)!==a)throw new Error("Tool input arrays must not contain named properties.");return{index:u,key:a}}).sort((a,u)=>a.index-u.index);return`array:${e.length}:[${s.map(({key:a})=>`${a}:${pl(e,a,n)}`).join("")}]`}return`object:{${r.filter(s=>typeof s=="string").sort().map(s=>`${Ts(s,n)}${pl(e,s,n)}`).join("")}}`}finally{n.delete(e)}}i(Ts,"serializeRuntimeToolInput");function pl(e,n,t){let r=Object.getOwnPropertyDescriptor(e,n);if(!r||!r.enumerable||!("value"in r))throw new Error("Tool input must contain enumerable data properties only.");return Ts(r.value,t)}i(pl,"serializeRuntimeDataProperty");function er(e){try{let n=Ts(e.input);return vt("sha256").update(`${e.id}\0${e.name}\0${n}`).digest("hex")}catch{return}}i(er,"runtimeAutoModeDecisionKey");function Wh(e){if(process.platform!=="win32")return!1;let n=Q.resolve(process.env.SystemRoot??"C:\\Windows","Temp"),t=i(r=>{if(!Q.isAbsolute(r))return!1;let o=Q.relative(n,Q.resolve(r));return o===""||!o.startsWith("..")&&!Q.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(Wh,"reviewTouchesProtectedWindowsSystemTemp");function Vh(e,n){let t=new Set;return{...e,beforeTool:i(async(r,o)=>{if(!e.beforeTool)return{action:"block",reason:"Runtime auto-mode guardrail has no beforeTool hook."};let s=await e.beforeTool(r,o);if(s.action==="allow"){let a=Ji(r),u=a?.ok?a.call:r,l=er(u);l!==void 0&&t.add(l)}return s},"beforeTool"),consumeAllowedCall(r){let o=er(r);return o===void 0||!t.has(o)?!1:(t.delete(o),!0)},consumeWorkspaceSandboxCall(r){let o=er(r);return o===void 0||!n.has(o)?!1:(n.delete(o),!0)},clearAllowedCalls(){t.clear(),n.clear()}}}i(Vh,"createRuntimeOwnedAutoModeGuardrail");function Gh(e){let n=new Set,t,r,o=i(async()=>{let s=(await e.settingsOwner.read(e.sessionId)).value,a=e.getRecord();if(a&&(a.permissionMode=s.permissionMode,a.autoModeEngine=mn(s.permissionMode)==="auto"?s.autoModeEngine??"llm":s.autoModeEngine,a.autoModeClassifierModel=s.autoModeClassifierModel,a.autoModeTimeoutMs=s.autoModeTimeoutMs,a.autoModeSpeculativeWindowMs=s.autoModeSpeculativeWindowMs),r=jl(s,a?.model??e.model),r){t=void 0;return}let u=await Yh({...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,a){let u=await o();if(!u?.beforeTool)return r?{action:"block",reason:r.message}:{action:"allow"};t=u;let l=await u.beforeTool(s,a);if(l.action==="allow"){let p=Ji(s),R=p?.ok?p.call:s;u.consumeAllowedCall(R);let v=er(R);v!==void 0&&n.add(v)}return l},getEngine(){if(t)return t.getEngine();let s=e.settingsOwner.peek(e.sessionId)?.value;return mn(s?.permissionMode)==="auto"?s?.autoModeEngine??"llm":"rules"},consumeAllowedCall(s){let a=er(s);return a===void 0||!n.has(a)?!1:(n.delete(a),!0)},consumeWorkspaceSandboxCall(s){return t?.consumeWorkspaceSandboxCall(s)??!1},clearAllowedCalls(){n.clear(),t?.clearAllowedCalls()}}}i(Gh,"createRuntimeSessionAutoModeGuardrail");function Jh(e){if(e===void 0)return!0;if((e.shell.profile??"default")!=="none")return!1;let n=e.environment;return n?.setup!==void 0||(n?.denyPatterns?.length??0)>0?!1:!Object.keys(n?.set??{}).some(t=>["TEMP","TMP","TMPDIR"].includes(t.toUpperCase()))}i(Jh,"runtimeShellUsesProcessEnvironmentPathAliases");async function Yh(e){if(mn(e.settings.permissionMode)!=="auto")return;let n=e.settings.autoModeEngine??"llm",t=e.states.get(e.sessionId);t===void 0?(t={engine:n,denials:Qi(),breaker:Zi()},e.states.set(e.sessionId,t)):t.engine=n;let r=Q.resolve(e.options.context?.executionCwd??e.settings.executionCwd??e.options.context?.gitRoot??process.cwd()),o=Q.resolve(e.options.context?.gitRoot??r),s=Jh(e.options.context?.shellExecution),a=JSON.stringify([process.platform==="win32"?o.toLowerCase():o,process.platform==="win32"?r.toLowerCase():r,n,e.settings.autoModeClassifierModel??null,e.settings.autoModeTimeoutMs??null,e.settings.autoModeSpeculativeWindowMs??null,s]),u=e.cache.get(e.sessionId)??new Map;e.cache.set(e.sessionId,u);let l=u.get(a);if(l?.engine===n)return l.guardrail;l&&u.delete(a);let p,R=new Set,v=await Fa({askUser:i(async(x,g,m,d)=>{let I=e.getRecord();if(!I)return"block";let w=I.phase;I.phase==="running"&&e.onPhase(I,"waiting_permission");try{let C=await e.permissions.requestOwned({sessionId:e.sessionId,runId:I.runId,...I.turnId!==void 0?{turnId:I.turnId}:{},toolCallId:x.id,toolName:x.name,reason:g.slice(0,512),risk:Kh(m),inputPreview:nr(x.input),executionCwd:r,...d!==void 0?{autoModeDiagnostics:d}:{}},{toolInput:x.input,projectRoot:o,...m!==void 0?{signals:m}:{}});return C.type==="reject"&&C.cause==="approval_timeout"?"timeout":C.type==="allow_once"||C.type==="allow_session"||C.type==="allow_always"?"allow":"block"}finally{I.phase==="waiting_permission"&&e.onPhase(I,w==="queued"?"running":w)}},"askUser"),projectRoot:o,executionCwd:r,trustProcessEnvironmentPathExpansion:s,admitWorkspaceSandboxCall:i((x,g)=>{if(Wh(g))return;let m=er(x);m!==void 0&&R.add(m)},"admitWorkspaceSandboxCall"),getCurrentProviderName:i(()=>e.getRecord()?.provider??e.provider,"getCurrentProviderName"),getCurrentModel:i(()=>e.getRecord()?.model??e.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>"auto","getCurrentPermissionMode"),autoModeSettings:{engine:n,...e.settings.autoModeClassifierModel!==void 0?{classifierModel:e.settings.autoModeClassifierModel}:{},...e.settings.autoModeTimeoutMs!==void 0?{timeoutMs:e.settings.autoModeTimeoutMs}:{},...e.settings.autoModeSpeculativeWindowMs!==void 0?{speculativeWindowMs:e.settings.autoModeSpeculativeWindowMs}:{}},sharedState:t,extraCollectors:[La],onEngineChange:i(x=>{p&&(p.engine=x),e.onEngineChange(x)},"onEngineChange")}),y=Vh(v.getGuardrail(),R);for(p={projectRoot:o,executionCwd:r,engine:y.getEngine(),...e.settings.autoModeClassifierModel!==void 0?{classifierModel:e.settings.autoModeClassifierModel}:{},...e.settings.autoModeTimeoutMs!==void 0?{timeoutMs:e.settings.autoModeTimeoutMs}:{},...e.settings.autoModeSpeculativeWindowMs!==void 0?{speculativeWindowMs:e.settings.autoModeSpeculativeWindowMs}:{},guardrail:y},u.set(a,p);u.size>Xh;){let x=u.keys().next().value;if(x===void 0||x===a)break;u.get(x)?.guardrail.clearAllowedCalls(),u.delete(x)}return y}i(Yh,"createRuntimeAutoModeGuardrail");function gl(e,n,t){if(kl.has(n))return!0;let r=mn(e.permissionMode);if(r===void 0)return;let o=e.start?.options.context?.gitRoot??e.start?.options.context?.executionCwd,s=o===void 0?void 0:Q.resolve(o),a=vs(e);if(r==="plan"){let u=Pa(n,t,s,a);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(ka(u))return!0;if(s&&Ea(u,s,a))return}if(s&&Ia.has(n)){let u=typeof t.path=="string"?t.path:void 0;if(u&&ba(Xs(u,a),s))return}return Da(r).has(n)?void 0:!0}i(gl,"resolveRuntimePermissionPolicy");function yl(e){return e?e.type==="allow_once"||e.type==="allow_session"||e.type==="allow_always"?!0:e.reason??!1:!1}i(yl,"decisionToToolDecision");var Qh=8192,Dr=16384,Rl=16,Zh={command:2048,description:1024,file_path:1024,path:1024,paths:1024,cwd:1024,url:1024,preview:2048},ew=/(?:api[_-]?key|authorization|cookie|credential|password|secret|token)/i;function Ss(e){return e.replace(/-----BEGIN ([A-Z0-9][A-Z0-9 _-]{0,63})-----[\s\S]*?(?:-----END \1-----|$)/gi,"[REDACTED_PEM]").replace(/^([ \t]*(?:api[_-]?key|access[_-]?key|access[_-]?token|auth(?:orization)?[_-]?token|client[_-]?secret|cookie|credential|password|private[_-]?key|refresh[_-]?token|secret|token)\s*:\s*[>|][-+0-9]*[ \t]*\r?\n)(?:(?:[ \t]+[^\r\n]*(?:\r?\n|$)))+/gim,`$1 [REDACTED]
30
+ `).replace(/\b((?=[a-z0-9_]*(?:api[_-]?key|access[_-]?key|access[_-]?token|auth[_-]?token|client[_-]?secret|password|private[_-]?key|refresh[_-]?token|secret|token))[a-z_][a-z0-9_]*)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s;&|]+)/gi,"$1=[REDACTED]").replace(/((?:["']?(?:api[_-]?key|access[_-]?key|access[_-]?token|auth(?:orization)?[_-]?token|client[_-]?secret|cookie|credential|password|private[_-]?key|refresh[_-]?token|secret|token)["']?)\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}\]]+)/gi,'$1"[REDACTED]"').replace(/(--(?:(?:api|access|auth|id|refresh)[_-]?(?:key|token)|authorization|client[_-]?secret|password|private[_-]?key|secret|token))(?:=|\s+)(?:"[^"]*"|'[^']*'|[^\s;&|]+)/gi,"$1=[REDACTED]").replace(/\b((?:proxy-)?authorization|cookie|x-api-key)(\s*:\s*)(?:bearer\s+|basic\s+)?[^\s"';&|]+/gi,"$1$2[REDACTED]").replace(/(https?:\/\/)[^\s/:@]+:[^\s/@]+@/gi,"$1[REDACTED]@")}i(Ss,"redactPermissionPreviewString");function nr(e){try{return nw(e)}catch{return'{"__truncated":true}'}}i(nr,"previewInput");function nw(e){let n={},t=!0;for(let[o,s]of Object.entries(Zh)){let a=Object.getOwnPropertyDescriptor(e,o);if(!a||!a.enumerable||!("value"in a))continue;if(ew.test(o)){n[o]="[REDACTED]";continue}let u=a.value;if(typeof u=="string"){let l=u.slice(0,Dr),p=Ss(l);n[o]=p.length<=s?p:`${p.slice(0,Math.max(0,s-1))}\u2026`,t||=u.length>l.length||p.length>s;continue}if(o==="paths"&&Array.isArray(u)){let l=[];for(let p of u.slice(0,Rl)){if(typeof p!="string"){t=!0;continue}let R=p.slice(0,Dr),v=Ss(R);l.push(v.slice(0,s)),t||=p.length>R.length||v.length>s}t||=u.length>Rl,n[o]=l;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<=Qh?r:'{"__truncated":true}'}i(nw,"buildPermissionInputPreview");function tw(e){if(e.length>Dr)return nr({preview:e.slice(0,Dr)});try{let n=JSON.parse(e);return nr(oe(n)?n:{value:n})}catch{return nr({preview:e})}}i(tw,"normalizePermissionInputPreview");function _e(e){return e instanceof Error?e:new Error(String(e))}i(_e,"normalizeError");function Kn(e,n){return Object.assign(new Error(e),{code:"conflict",currentRevision:n})}i(Kn,"createRuntimeConflictError");function Is(e){return Object.assign(new Error(`Session is archived and cannot execute until it is unarchived: ${e}`),{code:"session_archived"})}i(Is,"createSessionArchivedError");function ke(e){return Object.assign(new Error(e),{code:"resync_required"})}i(ke,"createRuntimeResyncError");function hl(e){return e instanceof rn&&e.code==="data_changed"?ke("Conversation history changed; acquire a fresh history boundary"):_e(e)}i(hl,"normalizeConversationBoundaryMutationError");function Ds(e){return Object.assign(ke(e),{snapshotInvalid:!0})}i(Ds,"createRuntimeTranscriptSnapshotInvalidError");function rw(e){return oe(e)&&e.snapshotInvalid===!0}i(rw,"isRuntimeTranscriptSnapshotInvalidError");function Ii(){return Object.assign(new Error(`Transcript snapshot storage limit exceeded (${Pr} bytes)`),{code:"overloaded",data:{limitBytes:Pr}})}i(Ii,"createRuntimeSnapshotCapacityError");function Li(){return Object.assign(new Error(`Runtime history page limit exceeded (${It} bytes)`),{code:"overloaded",data:{limitBytes:It}})}i(Li,"createRuntimeHistoryPageCapacityError");function iw(){return Object.assign(new Error(`Transcript snapshot I/O limit exceeded (${Ti} operations)`),{code:"overloaded",data:{resource:"transcript_snapshot_io",limit:Ti}})}i(iw,"createRuntimeSnapshotIoCapacityError");function ow(e,n){return Ni(e)?e:oe(e)&&(e.code==="overloaded"||e.code==="resync_required")?e instanceof Error?e:Object.assign(new Error("Transcript snapshot operation failed"),e):n?new rn("read_cancelled","Runtime history read cancelled because the Runtime is closing"):oe(e)&&(e.code==="ENOENT"||e.code==="ENOTDIR")?ke("Transcript snapshot storage changed; request a fresh boundary"):Object.assign(new Error("Unable to materialize the transcript snapshot",{cause:e}),{code:"internal_error"})}i(ow,"normalizeRuntimeSnapshotMaterializationError");function Wl(e){return Object.assign(new Error(e),{code:"invalid_input"})}i(Wl,"createRuntimeInvalidInputError");function sw(e){return Object.assign(new Error(e),{code:"credential_unavailable"})}i(sw,"createRuntimeCredentialUnavailableError");function aw(){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(aw,"createUnsupportedCredentialService");function dw(){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(dw,"createUnsupportedHostToolService");function Jt(e,n){let t=n(e);if(t===void 0)return;let r=new Error(`Session has an active run and cannot be mutated: ${e}`);throw Object.defineProperty(r,"code",{configurable:!0,enumerable:!0,value:t==="foreign"?"actor_owner_conflict":"conflict"}),r}i(Jt,"assertSessionMutationAllowed");function wl(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(wl,"assertDeleteSucceeded");function uw(e){return structuredClone(e)}i(uw,"cloneMessage");export{wo as a,Vn as b,vo as c,Dt as d,dt as e,Qr as f,ai as g,bu as h,Eu as i,Bf as j,Kf as k,Mn as l,wt as m,jS as n,BS as o,KS as p,XS as q,US as r,zS as s,WS as t,Cy as u,bl as v};