@kodax-ai/kodax 0.7.86 → 0.7.87

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 (86) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +16 -4
  3. package/README_CN.md +6 -4
  4. package/dist/chunks/{agent-IO6TXNCV.js → agent-Z64QF7KG.js} +1 -1
  5. package/dist/chunks/argument-completer-HIJBXRUT.js +2 -0
  6. package/dist/chunks/{chunk-Q6UAGROD.js → chunk-3PGNESV3.js} +2 -2
  7. package/dist/chunks/{chunk-B36G256E.js → chunk-4OLXWSCQ.js} +2 -2
  8. package/dist/chunks/{chunk-2RAXDUC7.js → chunk-7XTUXMAI.js} +2 -2
  9. package/dist/chunks/{chunk-AAFFS6RU.js → chunk-ASFCAPIG.js} +3 -3
  10. package/dist/chunks/{chunk-XA4ENCAH.js → chunk-BCYJIACJ.js} +2 -2
  11. package/dist/chunks/{chunk-U6HNMLNN.js → chunk-DB4O33RR.js} +5 -5
  12. package/dist/chunks/{chunk-GVGLYVG4.js → chunk-GRJ7NKWP.js} +1 -1
  13. package/dist/chunks/{chunk-G5FGIRDJ.js → chunk-ITP7J5HX.js} +1 -1
  14. package/dist/chunks/{chunk-HTVLCHWH.js → chunk-JS4RSF4B.js} +1 -1
  15. package/dist/chunks/chunk-SKELDH3G.js +123 -0
  16. package/dist/chunks/{chunk-A5VQGXH2.js → chunk-U44C5STU.js} +1 -1
  17. package/dist/chunks/{chunk-R4EHASEN.js → chunk-UWKM3HNY.js} +4 -4
  18. package/dist/chunks/chunk-XH7UM4GO.js +92 -0
  19. package/dist/chunks/{chunk-UKCDCVMD.js → chunk-XKLVC7F6.js} +1 -1
  20. package/dist/chunks/{chunk-MFCPQZ7E.js → chunk-YB7YVAPL.js} +1 -1
  21. package/dist/chunks/{chunk-XUKLF26Q.js → chunk-ZQNOEKOB.js} +2 -2
  22. package/dist/chunks/compaction-config-E4TFBCDJ.js +2 -0
  23. package/dist/chunks/{construction-bootstrap-4DGAYOWH.js → construction-bootstrap-YTFOT4M2.js} +1 -1
  24. package/dist/chunks/{dist-DFW7MXT7.js → dist-M3JV4PNA.js} +1 -1
  25. package/dist/chunks/{dist-WWL2DNIJ.js → dist-X55TWIK4.js} +1 -1
  26. package/dist/chunks/host-SJHHJBPB.js +2 -0
  27. package/dist/chunks/run-manager-T5QGWNON.js +2 -0
  28. package/dist/chunks/{utils-LV7FHKYN.js → utils-2FHVIO6X.js} +1 -1
  29. package/dist/index.d.ts +19 -19
  30. package/dist/index.js +1 -1
  31. package/dist/kodax_bootstrap.js +1 -1
  32. package/dist/kodax_cli.js +762 -762
  33. package/dist/kodax_resume.js +1 -1
  34. package/dist/provider-capabilities.json +239 -133
  35. package/dist/runtime-worker.js +716 -716
  36. package/dist/sandbox-workspace-session.js +4 -4
  37. package/dist/sdk-a2a.d.ts +12 -12
  38. package/dist/sdk-a2a.js +1 -1
  39. package/dist/sdk-agent.d.ts +17 -17
  40. package/dist/sdk-agent.js +1 -1
  41. package/dist/sdk-coding.d.ts +21 -21
  42. package/dist/sdk-coding.js +1 -1
  43. package/dist/sdk-experimental-memory.d.ts +4 -4
  44. package/dist/sdk-experimental-memory.js +1 -1
  45. package/dist/sdk-llm.d.ts +7 -7
  46. package/dist/sdk-llm.js +1 -1
  47. package/dist/sdk-mcp.js +1 -1
  48. package/dist/sdk-media.d.ts +1 -1
  49. package/dist/sdk-media.js +1 -1
  50. package/dist/sdk-repl.d.ts +16 -16
  51. package/dist/sdk-repl.js +1 -1
  52. package/dist/sdk-runtime.d.ts +13 -13
  53. package/dist/sdk-runtime.js +1 -1
  54. package/dist/sdk-sandbox.js +1 -1
  55. package/dist/sdk-session.d.ts +7 -7
  56. package/dist/sdk-session.js +1 -1
  57. package/dist/sdk-skills.js +1 -1
  58. package/dist/semantic-worker.js +1 -1
  59. package/dist/types-chunks/{base.d-DxG0m09Z.d.ts → base.d-vopO1rml.d.ts} +1 -1
  60. package/dist/types-chunks/{bash-prefix-extractor.d-QqKtuLZm.d.ts → bash-prefix-extractor.d-B36OQwNA.d.ts} +4 -4
  61. package/dist/types-chunks/{capability-learning.d-iPSiAmc_.d.ts → capability-learning.d-CE1tm29C.d.ts} +1 -1
  62. package/dist/types-chunks/{capsule.d-CN_iMqAS.d.ts → capsule.d-DEncDNzD.d.ts} +3 -3
  63. package/dist/types-chunks/{controller.d-A73Kf6tH.d.ts → controller.d-C1YdP_pQ.d.ts} +1 -1
  64. package/dist/types-chunks/{controller.d-Dzxz22X-.d.ts → controller.d-Dif9pbC9.d.ts} +2 -2
  65. package/dist/types-chunks/{guardrail.d-Y_AIh8-I.d.ts → guardrail.d-DhpnJv4Y.d.ts} +5 -5
  66. package/dist/types-chunks/{history-retrieval.d-Debbzn1z.d.ts → history-retrieval.d-YJQpQt7h.d.ts} +2 -2
  67. package/dist/types-chunks/{public-api.d-Cg-4GTbK.d.ts → public-api.d-D4q3WxKq.d.ts} +4 -4
  68. package/dist/types-chunks/{repl.d-Bhrbueab.d.ts → repl.d-D4ye29Kk.d.ts} +5 -5
  69. package/dist/types-chunks/{resolver.d-C9IW4fmU.d.ts → resolver.d-RyPo99tB.d.ts} +2 -2
  70. package/dist/types-chunks/{review-inbox.d-DuZqFX-z.d.ts → review-inbox.d-C1_xZ-yg.d.ts} +1 -1
  71. package/dist/types-chunks/{run-manager.d-BS4lJfL3.d.ts → run-manager.d-D30IvnwV.d.ts} +1 -1
  72. package/dist/types-chunks/{sdk-session-fQ_KENev.d.ts → sdk-session-DIU6sHa2.d.ts} +3 -3
  73. package/dist/types-chunks/{shell-command-sets.d-DRGjd_7Q.d.ts → shell-command-sets.d-rIHkZ_VR.d.ts} +1 -1
  74. package/dist/types-chunks/{side-query.d-CP1LiRiH.d.ts → side-query.d-iH0P9ASy.d.ts} +2 -2
  75. package/dist/types-chunks/{types.d-BRrJU4pb.d.ts → types.d-Bz5Y-PD9.d.ts} +4 -4
  76. package/dist/types-chunks/{types.d-CgrXrFrq.d.ts → types.d-CK9A9rpP.d.ts} +1 -1
  77. package/dist/types-chunks/{types.d-Bo4fyMLu.d.ts → types.d-COhAF5Xo.d.ts} +2 -2
  78. package/dist/types-chunks/{types.d-DlLBRqZ9.d.ts → types.d-sW-OqiFt.d.ts} +1 -1
  79. package/dist/types-chunks/{utils.d-BIhh_BqE.d.ts → utils.d-B65ozSTV.d.ts} +6 -6
  80. package/package.json +1 -1
  81. package/dist/chunks/argument-completer-JMICSGL6.js +0 -2
  82. package/dist/chunks/chunk-TRNAWSXP.js +0 -123
  83. package/dist/chunks/chunk-UH5WNJXF.js +0 -92
  84. package/dist/chunks/compaction-config-5RMG22CY.js +0 -2
  85. package/dist/chunks/host-6MMHYTI5.js +0 -2
  86. package/dist/chunks/run-manager-ISQSWCAM.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{b as ei,h as gd,i as yd,j as Rd}from"./chunk-MFCPQZ7E.js";import{Cb as sd,Eb as ad,Fb as dd,Gb as ud,Hb as cd,Ib as ld,Jb as md,Kb as vo,Ob as So,Pb as Io,Qb as mn,Wa as od,Zb as bo,jc as fd,kc as pd}from"./chunk-R4EHASEN.js";import{Aa as id,k as Qa,m as vn,y as rd}from"./chunk-B36G256E.js";import{O as wo,Q as ed,X as nd,Y as td,f as Za,q as ho,y as Zr}from"./chunk-AAFFS6RU.js";import{e as Ga,w as Ya}from"./chunk-XA4ENCAH.js";import{$b as Yr,Bb as Ba,Cb as Ka,Jb as Xa,Qb as Ua,Sb as Wa,Xb as Ja,fc as yo,hb as $a,hc as za,j as La,kc as Ro,pc as Va,sc as Qr,yb as qa}from"./chunk-Q6UAGROD.js";import{Ib as hr,Vc as Fa,_b as po,ed as Lt,le as ja,m as Rr,n as fo,ne as Ha,ud as go}from"./chunk-U6HNMLNN.js";import{Aa as Vr,Ta as da,a as eo,c as sa,ya as aa}from"./chunk-TRNAWSXP.js";import{$c as oo,Dc as va,Ed as uo,Gd as co,Ia as no,Ka as yr,La as ca,Lg as _a,Me as lo,Pg as Oa,Qf as mo,Qg as Na,Tf as Da,Uf as Ma,Vb as ha,Wa as la,Xc as Sa,_a as ma,bb as to,cd as Ia,db as ro,dd as ba,df as Ta,eb as Gr,fb as fa,ib as pa,jd as ka,kc as wa,kd as so,pd as Ea,qd as Pa,rd as xa,s as ua,sd as Ca,t as we,td as Aa,ud as ao}from"./chunk-G5FGIRDJ.js";import{L as Ra,h as ga,j as io,k as ya}from"./chunk-UH5WNJXF.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as Dt,randomUUID as Qe}from"node:crypto";import{spawnSync as ml}from"node:child_process";import*as $ from"node:fs";import qr from"node:os";import Y from"node:path";import{createHash as _m}from"node:crypto";import wr from"node:path";var Om=["path","file_path"],Nm=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function Po(e){let n=e.platform??ti();if(e.toolName==="bash")return Fm(e,n);let t=Nm.has(e.toolName)?Om.map(s=>e.toolInput[s]).find(s=>typeof s=="string"&&s.length>0):void 0;if(t!==void 0)return Hm(e.toolName,t,e.executionCwd,n);let r=Co(e.executionCwd,e.executionCwd,n),o=ut(Bm(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:ut({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(Po,"createRuntimePermissionMatcher");function hd(e,n){if(e.toolName!==n.toolName)return!1;let t=Po(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(hd,"runtimePermissionMatcherMatches");function wd(e){if(!Km(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"||!ni(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!ni(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!ni(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 ko(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 ko(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&ni(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return ko(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(wd,"parseRuntimePermissionMatcher");function ko(e,n){if(ut(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(ko,"assertMatcherFingerprint");function Lm(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(Lm,"hasDynamicShellExpansion");function xo(e,n){return Lm(e,n==="posix"?"posix":"win32")}i(xo,"hasDynamicExpansionForPermissionShell");function ti(){return process.platform==="win32"?"win32":"posix"}i(ti,"runtimePermissionHostPlatform");function Fm(e,n){let t=e.toolInput.command,r=typeof t=="string"?$m(t):"",o=Co(e.executionCwd,e.executionCwd,n),s=e.toolInput.run_in_background===!0,a=e.shell??(n==="win32"?"cmd":"posix"),u=qm(r,a),c=jm(u?.[0],n),p=u&&u.length>1?ut(u.slice(1)):void 0,R=ut(r),I={version:1,kind:"exact-command",toolName:e.toolName,shell:a,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:R,cwd:o,...c!==void 0?{executable:c}:{},...p!==void 0?{argvFingerprint:p}:{},background:s};return{...I,fingerprint:ut(I)}}i(Fm,"createExactCommandMatcher");function jm(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?wr.win32.basename(e.replaceAll("/","\\")):wr.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(jm,"safeExecutableMetadata");function Hm(e,n,t,r){let o=Co(n,t,r),s={version:1,kind:"exact-path",toolName:e,path:o};return{...s,fingerprint:ut(s)}}i(Hm,"createExactPathMatcher");function $m(e){return e.replace(/\r\n?/g,`
2
+ import{b as ei,h as gd,i as yd,j as Rd}from"./chunk-YB7YVAPL.js";import{Cb as sd,Eb as ad,Fb as dd,Gb as ud,Hb as cd,Ib as ld,Jb as md,Kb as vo,Ob as So,Pb as Io,Qb as mn,Wa as od,Zb as bo,jc as fd,kc as pd}from"./chunk-UWKM3HNY.js";import{Aa as id,k as Qa,m as vn,y as rd}from"./chunk-4OLXWSCQ.js";import{O as wo,Q as ed,X as nd,Y as td,f as Za,q as ho,y as Zr}from"./chunk-ASFCAPIG.js";import{e as Ga,w as Ya}from"./chunk-BCYJIACJ.js";import{$b as Yr,Bb as Ba,Cb as Ka,Jb as Xa,Qb as Ua,Sb as Wa,Xb as Ja,fc as yo,hb as $a,hc as za,j as La,kc as Ro,pc as Va,sc as Qr,yb as qa}from"./chunk-3PGNESV3.js";import{Ib as hr,Vc as Fa,_b as po,ed as Lt,le as ja,m as Rr,n as fo,ne as Ha,ud as go}from"./chunk-DB4O33RR.js";import{Aa as Vr,Ta as da,a as eo,c as sa,ya as aa}from"./chunk-SKELDH3G.js";import{$c as oo,Dc as va,Ed as uo,Gd as co,Ia as no,Ka as yr,La as ca,Lg as _a,Me as lo,Pg as Oa,Qf as mo,Qg as Na,Tf as Da,Uf as Ma,Vb as ha,Wa as la,Xc as Sa,_a as ma,bb as to,cd as Ia,db as ro,dd as ba,df as Ta,eb as Gr,fb as fa,ib as pa,jd as ka,kc as wa,kd as so,pd as Ea,qd as Pa,rd as xa,s as ua,sd as Ca,t as we,td as Aa,ud as ao}from"./chunk-ITP7J5HX.js";import{L as Ra,h as ga,j as io,k as ya}from"./chunk-XH7UM4GO.js";import{a as i}from"./chunk-ONUPGMER.js";import{createHash as Dt,randomUUID as Qe}from"node:crypto";import{spawnSync as ml}from"node:child_process";import*as $ from"node:fs";import qr from"node:os";import Y from"node:path";import{createHash as _m}from"node:crypto";import wr from"node:path";var Om=["path","file_path"],Nm=new Set(["read","write","edit","multi_edit","insert_after_anchor"]);function Po(e){let n=e.platform??ti();if(e.toolName==="bash")return Fm(e,n);let t=Nm.has(e.toolName)?Om.map(s=>e.toolInput[s]).find(s=>typeof s=="string"&&s.length>0):void 0;if(t!==void 0)return Hm(e.toolName,t,e.executionCwd,n);let r=Co(e.executionCwd,e.executionCwd,n),o=ut(Bm(e.toolInput));return{version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o,fingerprint:ut({version:1,kind:"exact-call",toolName:e.toolName,cwd:r,inputFingerprint:o})}}i(Po,"createRuntimePermissionMatcher");function hd(e,n){if(e.toolName!==n.toolName)return!1;let t=Po(n);return e.kind===t.kind&&e.fingerprint===t.fingerprint}i(hd,"runtimePermissionMatcherMatches");function wd(e){if(!Km(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"||!ni(e.commandFingerprint)||typeof e.cwd!="string"||typeof e.background!="boolean"||e.shellContractFingerprint!==void 0&&!ni(e.shellContractFingerprint)||e.executable!==void 0&&typeof e.executable!="string"||e.argvFingerprint!==void 0&&!ni(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 ko(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 ko(n,{version:1,kind:"exact-path",toolName:n.toolName,path:n.path}),n}if(e.kind==="exact-call"&&typeof e.cwd=="string"&&ni(e.inputFingerprint)){let n={version:1,kind:"exact-call",toolName:e.toolName,fingerprint:e.fingerprint,cwd:e.cwd,inputFingerprint:e.inputFingerprint};return ko(n,{version:1,kind:"exact-call",toolName:n.toolName,cwd:n.cwd,inputFingerprint:n.inputFingerprint}),n}throw new Error("invalid Runtime permission matcher")}i(wd,"parseRuntimePermissionMatcher");function ko(e,n){if(ut(n)!==e.fingerprint)throw new Error("Runtime permission matcher fingerprint does not match its scope.")}i(ko,"assertMatcherFingerprint");function Lm(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(Lm,"hasDynamicShellExpansion");function xo(e,n){return Lm(e,n==="posix"?"posix":"win32")}i(xo,"hasDynamicExpansionForPermissionShell");function ti(){return process.platform==="win32"?"win32":"posix"}i(ti,"runtimePermissionHostPlatform");function Fm(e,n){let t=e.toolInput.command,r=typeof t=="string"?$m(t):"",o=Co(e.executionCwd,e.executionCwd,n),s=e.toolInput.run_in_background===!0,a=e.shell??(n==="win32"?"cmd":"posix"),u=qm(r,a),c=jm(u?.[0],n),p=u&&u.length>1?ut(u.slice(1)):void 0,R=ut(r),I={version:1,kind:"exact-command",toolName:e.toolName,shell:a,...e.shellContractFingerprint!==void 0?{shellContractFingerprint:e.shellContractFingerprint}:{},commandFingerprint:R,cwd:o,...c!==void 0?{executable:c}:{},...p!==void 0?{argvFingerprint:p}:{},background:s};return{...I,fingerprint:ut(I)}}i(Fm,"createExactCommandMatcher");function jm(e,n){if(e===void 0||e.includes("=")||e.length>512)return;let t=n==="win32"?wr.win32.basename(e.replaceAll("/","\\")):wr.posix.basename(e);return t.length>0&&t.length<=128?t:void 0}i(jm,"safeExecutableMetadata");function Hm(e,n,t,r){let o=Co(n,t,r),s={version:1,kind:"exact-path",toolName:e,path:o};return{...s,fingerprint:ut(s)}}i(Hm,"createExactPathMatcher");function $m(e){return e.replace(/\r\n?/g,`
3
3
  `).trim()}i($m,"normalizeCommand");function Co(e,n,t){if(t==="win32"){let r=wr.win32.resolve(n.replaceAll("/","\\"));return wr.win32.resolve(r,e.replaceAll("/","\\")).toLowerCase()}return wr.posix.resolve(n,e)}i(Co,"normalizePermissionPath");function qm(e,n){if(e.length===0||e.includes("\0")||e.includes(`
4
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(qm,"tokenizeShellCommand");function Bm(e){return Object.fromEntries(Object.entries(e).sort(([n],[t])=>n.localeCompare(t)))}i(Bm,"normalizeGenericInput");function ut(e){return _m("sha256").update(Eo(e)).digest("hex")}i(ut,"stableFingerprint");function Eo(e){if(e===null||typeof e!="object")return JSON.stringify(e)??"undefined";if(Array.isArray(e))return`[${e.map(Eo).join(",")}]`;let n=e;return`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${Eo(n[t])}`).join(",")}}`}i(Eo,"stableSerialize");function ni(e){return typeof e=="string"&&/^[a-f0-9]{64}$/.test(e)}i(ni,"isSha256");function Km(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Km,"isRecord");import{createHash as Xm}from"node:crypto";import Mn from"node:fs";import Dn from"node:path";function Ft(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}i(Ft,"isRecord");function vd(e){return Ft(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"&&Ft(e.capabilities)&&Ft(e.effects):!1}i(vd,"isRegistration");function Um(e){return Ft(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"&&Ft(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}i(Um,"isTask");function Wm(e){return Ft(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}i(Wm,"isEvent");function Id(e){try{return JSON.parse(Mn.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(Id,"parseJson");function Sd(e,n){if(!Mn.existsSync(e))return[];let t=Id(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(Sd,"readList");function Ao(e,n){Mn.mkdirSync(Dn.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;Mn.writeFileSync(t,`${JSON.stringify(n,null,2)}
5
5
  `,{encoding:"utf8",mode:384}),Mn.renameSync(t,e)}i(Ao,"writeJsonAtomic");function ri(e,n){let t=Xm("sha256").update(n).digest("hex");return Dn.join(e,t)}i(ri,"taskDirectory");function Jm(e,n){if(!Mn.existsSync(e))return[];let t=Mn.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 c=u instanceof Error?u.message:String(u);throw new Error(`Invalid Runtime agent event at ${e}:${s+1}: ${c}`)}if(!Wm(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(Jm,"readEvents");function bd(e){let n=Dn.resolve(e),t=Dn.join(n,"registrations.json"),r=Dn.join(n,"task-registration-snapshots.json"),o=Dn.join(n,"tasks");return{async loadRegistrations(){return Sd(t,vd)},async saveRegistrations(s){Ao(t,s)},async loadTaskRegistrationSnapshots(){return Sd(r,vd)},async saveTaskRegistrationSnapshots(s){Ao(r,s)},async loadTasks(){if(!Mn.existsSync(o))return[];let s=[];for(let u of Mn.readdirSync(o,{withFileTypes:!0})){if(!u.isDirectory())continue;let c=Dn.join(o,u.name,"snapshot.json");if(!Mn.existsSync(c))continue;let p=Id(c);if(!Um(p))throw new Error(`Invalid Runtime agent task shape: ${c}`);s.push({directoryName:u.name,file:c,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:c,task:p}of s){let R=Dn.basename(ri(o,p.taskId));if(u!==R)throw new Error(`Runtime agent task directory does not match taskId hash: ${c}`)}return s.map(({task:u})=>u)},async saveTask(s){Ao(Dn.join(ri(o,s.taskId),"snapshot.json"),s)},async loadEvents(s){return Jm(Dn.join(ri(o,s),"events.jsonl"),s)},async appendEvent(s){let a=Dn.join(ri(o,s.taskId),"events.jsonl");Mn.mkdirSync(Dn.dirname(a),{recursive:!0}),Mn.appendFileSync(a,`${JSON.stringify(s)}
@@ -369,7 +369,7 @@ ${Ay}
369
369
  [IO.File]::WriteAllText($readyFile, 'ERROR:' + $_.Exception.Message)
370
370
  exit 1
371
371
  }
372
- `;function Dy(e){return e.length>0&&!/[\s"]/u.test(e)?e:`"${e.replace(/(\\*)"/gu,'$1$1\\"').replace(/(\\+)$/u,"$1$1")}"`}i(Dy,"quoteWindowsCommandLineArg");function My(e,n){return[e,...n].map(Dy).join(" ")}i(My,"buildWindowsCommandLine");async function Gc(e){if(process.platform!=="win32")throw new Error("Windows Job containment is available only on Windows.");let n=Jc.join(Wc.tmpdir(),`kodax-daemon-job-${ys()}.ready`),t=Jc.join(Wc.tmpdir(),`kodax-daemon-job-${ys()}.ps1`);Py(t,Ty,{encoding:"utf8",flag:"wx",mode:384});let r=Buffer.from(JSON.stringify({executable:e.executable,commandLine:My(e.executable,e.args),cwd:e.cwd,readyFile:n,logFile:e.logFile,jobName:`KodaXDaemonJob-${ys()}`}),"utf8").toString("base64"),o={...e.env};delete o.KODAX_DAEMON_JOB_CONTAINED,delete o.KODAX_DAEMON_JOB_SUPERVISOR_PID,delete o.KODAX_DAEMON_JOB_NAME;let s;try{s=ky(process.execPath,["-e",Cy],{cwd:e.cwd,detached:!0,windowsHide:!0,stdio:["ignore","ignore","ignore","ipc"],env:{...o,[Rs]:r,[Ci]:n,[hs]:t}})}catch(u){throw xi(n,{force:!0}),xi(t,{force:!0}),u}let a=await _y(s,n,e.startupTimeoutMs??xy).catch(async u=>{try{await Vc(s)}catch(c){throw new AggregateError([u,c],"Windows Job supervisor startup failed and its process tree was not reclaimed.")}throw u}).finally(()=>{xi(n,{force:!0}),xi(t,{force:!0})});return{...a,supervisor:s,release:i(()=>Oy(s),"release"),terminate:i(()=>Vc(s,a.processPid),"terminate")}}i(Gc,"spawnWindowsJobContainedProcess");async function _y(e,n,t){let r,o,s=i(c=>{r=c},"captureLaunchError"),a=i(c=>{c!==null&&typeof c=="object"&&"kind"in c&&c.kind==="owner"&&"pid"in c&&Number.isSafeInteger(c.pid)&&Number(c.pid)>0&&(o=Number(c.pid))},"captureOwner");e.once("error",s),e.on("message",a);let u=Date.now()+t;try{for(;;){if(r!==void 0)throw r;try{let c=Ey(n,"utf8").trim();if(c.startsWith("ERROR:"))throw new Error(`Windows Job supervisor startup failed: ${c.slice(6)}`);let p=JSON.parse(c);if(!Number.isSafeInteger(p.processPid)||Number(p.processPid)<=0||!Number.isSafeInteger(p.containmentSupervisorPid)||Number(p.containmentSupervisorPid)<=0)throw new Error("Windows Job supervisor wrote invalid readiness identities.");if(o!==void 0){if(Number(p.containmentSupervisorPid)!==o)throw new Error("Windows Job supervisor readiness owner identities do not match.");return{processPid:Number(p.processPid),containmentSupervisorPid:o}}}catch(c){if(c.code!=="ENOENT")throw c}if(e.exitCode!==null||e.signalCode!==null)throw new Error(`Windows Job supervisor exited before daemon readiness (code ${e.exitCode??"unknown"}).`);if(Date.now()>=u)throw new Error("Windows Job supervisor did not report daemon readiness in time.");await new Promise(c=>setTimeout(c,10))}}finally{e.off("error",s),e.off("message",a)}}i(_y,"waitForSupervisorReadiness");function Oy(e){e.connected&&e.disconnect(),e.unref()}i(Oy,"releaseSupervisor");async function Vc(e,n){if(e.pid!==void 0){if(e.exitCode===null&&e.signalCode===null){if(!e.connected)throw new Error("Windows Job supervisor control channel is unavailable during startup.");await new Promise((t,r)=>{e.send({kind:"terminate"},o=>{o?r(o):t()})})}await Ny(e),n!==void 0&&await Ly(n,2e3)}}i(Vc,"terminateSupervisor");async function Ny(e){let n=Date.now()+2e3;for(;e.exitCode===null&&e.signalCode===null;){if(Date.now()>=n)throw new Error("Windows Job supervisor did not exit after startup cleanup.");await new Promise(t=>setTimeout(t,10))}}i(Ny,"waitForWrapperExit");async function Ly(e,n){let t=Date.now()+n;for(;Fy(e);){if(Date.now()>=t)throw new Error(`Process ${e} did not exit after termination.`);await new Promise(r=>setTimeout(r,10))}}i(Ly,"waitForPidExit");function Fy(e){try{return process.kill(e,0),!0}catch(n){if(n.code==="ESRCH")return!1;throw n}}i(Fy,"isPidAlive");var Ti=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,il=256*1024;function Dr(e){return Cn.join(e.rootDir,"bootstrap.log")}i(Dr,"runtimeDaemonBootstrapLogPath");function Wy(e,n=il){En(e);let t=Dr(e),r=Math.max(1,n),o=`${t}.1`;return ws(o,r),Ai(t)&&rl(t).size>=r&&(ws(t,r),Ai(o)&&By(o),qy(t,o)),tl(t,"a",384)}i(Wy,"openRuntimeDaemonBootstrapLog");function Jy(e,n=il){ws(Dr(e),Math.max(1,n))}i(Jy,"capRuntimeDaemonBootstrapLog");function ws(e,n){if(!Ai(e))return;let t=rl(e).size;if(t<=n)return;let r=tl(e,"r+");try{let o=Buffer.allocUnsafe(n),s=0;for(;s<o.length;){let a=$y(r,o,s,o.length-s,t-n+s);if(a===0)break;s+=a}Hy(r,0),s>0&&Ky(r,o,0,s,0)}finally{nl(r)}}i(ws,"capFileToTail");var Yn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function ol(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=Cn.resolve(e.homeDir??Uy.homedir()),r=Cn.resolve(e.configHome??Cn.join(t,".kodax")),o=Jn(r,n);hi(o);let s=nr(o.profile,Vt(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 Cr(o,e.healthCheck),u=Yt(a);if(u==="healthy"&&a.state){let I=a.state.status==="ready"?{...a,state:a.state}:await Vy(o,e,a);return Qc(o,wt(I.state),!1,e)}if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let c=await Zy({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.orphanExitMs,startupTimeoutMs:e.startupTimeoutMs}),p=await zy(o,e,c),R=wt(p.state);return Qc(o,R,p.state.pid===c.pid,e)}i(ol,"acquireRuntimeDaemonProcessLease");async function Qc(e,n,t,r){let o=await zn(n,{connectTimeoutMs:r.connectTimeoutMs}),s=!1,a,u=!1,c,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(c)return c;let R=(async()=>{u||(await o.request("runtime.shutdown"),u=!0),await p()})();return c=R,R.finally(()=>{c===R&&(c=void 0)}).catch(()=>{}),R}}}i(Qc,"connectProcessLease");async function zy(e,n,t,r=Cr){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let s=await Gy(e,n,t,r),a=Yt(s);if(a==="healthy"&&s.state?.status==="ready")return s.state.pid===t.pid?t.unref():await eR(t),{...s,state:s.state};if(a==="mismatch")throw new Yn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=o-Date.now();if(u<=0)throw al(e);await Yy(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{Jy(e)}catch{}throw s}}i(zy,"waitForHealthyDaemonStartup");async function Vy(e,n,t,r=Cr){let o=Date.now()+(n.startupTimeoutMs??6e4),s=t.state;if(s===void 0)throw new Yn("Runtime daemon owner state disappeared before it reached ready.","identity_mismatch");let a=t;for(;;){let u=Yt(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 Yn("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 Yn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let c=o-Date.now();if(c<=0)throw al(e);await bt(Di(Math.min(Math.max(1,n.pollIntervalMs??100),c)),n.startupSignal),a=await bt(r(e,n.healthCheck),n.startupSignal)}}i(Vy,"waitForReadyRuntimeDaemonOwner");async function Gy(e,n,t,r){let o=await bt(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(vs(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 bt(r(e,n.healthCheck),n.startupSignal);if(Yt(u)!=="missing"||vs(e,t))return u;await bt(Di(Math.min(n.pollIntervalMs??100,Math.max(1,a-Date.now()))),n.startupSignal)}}throw sl(e,o.exit)}return o.observation}i(Gy,"observeStartupHealth");async function Yy(e,n,t,r){let o=await bt(Promise.race([Di(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(vs(n,t)){await bt(Di(e),r);return}throw sl(n,o)}}i(Yy,"waitForStartupPoll");function vs(e,n){let t=ze(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(vs,"hasCompetingStartupOwner");function sl(e,n){let t=n.signal!==null?`signal ${n.signal}`:`code ${n.code??"unknown"}`;return new Yn(`Runtime daemon child exited before becoming healthy (${t}). See daemon bootstrap log: ${Dr(e)}`,"child_exit")}i(sl,"runtimeDaemonExitedEarly");function al(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Yn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n} See daemon bootstrap log: ${Dr(e)}`,"timeout")}i(al,"runtimeDaemonStartupTimeout");function Qy(e,n,t=process.execArgv){let r=[...n!==void 0?oR(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(Qy,"buildRuntimeDaemonServeArgs");async function Zy(e){let n=iR();tR(n);let t=Qy(e,n),r=ma({args:t,env:rR({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=Jn(e.configHome,e.profile),s=Wy(o),a,u,c,p;try{if(process.platform==="win32"){let I=await Gc({executable:process.execPath,args:r.args,cwd:process.cwd(),env:r.env,logFile:Dr(o),startupTimeoutMs:e.startupTimeoutMs});a=I.supervisor,u=I.processPid,c=I.terminate,p=I.release}else a=jy(process.execPath,r.args,{detached:!0,stdio:["ignore",s,s],windowsHide:!0,env:r.env})}finally{nl(s)}let R=a.exitCode!==null||a.signalCode!==null?Promise.resolve({code:a.exitCode,signal:a.signalCode}):new Promise(I=>{a.once("exit",(g,x)=>I({code:g,signal:x}))});return u===void 0&&await new Promise((I,g)=>{a.once("spawn",I),a.once("error",g)}),fa(a),nR(a,R,u,c,p)}i(Zy,"spawnRuntimeDaemonServeProcess");async function eR(e){if(e.hasExited?.()!==!0)try{await e.terminate()}catch(n){if(!(n instanceof Ti)||!await Ss(e.exit,1e3))throw n}}i(eR,"terminateCompetingStartupChild");function nR(e,n,t=e.pid,r,o){return{pid:t,exit:n,hasExited(){return to(e)},unref(){o!==void 0?o():e.unref()},async terminate(){if(r!==void 0){if(await r(),!await Ss(n,1e3))throw new Error(`Runtime daemon Job supervisor ${e.pid??"unknown"} did not exit after termination.`);return}let s=to(e);if((await pa(e)).status==="unknown"&&!s)throw new Ti(t);if(!await Ss(n,1e3))throw new Error(`Runtime daemon child ${t??"unknown"} did not exit after termination.`)}}}i(nR,"createRuntimeDaemonStartupProcess");async function Ss(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(Ss,"didExitWithin");function tR(e){if(e!==void 0&&!Ai(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(tR,"assertRuntimeDaemonCliEntryAvailable");function rR(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Cn.join(e.homeDir,".kodax")};return delete n[la],n}i(rR,"createRuntimeDaemonServeEnvironment");function iR(){if(process.env.KODAX_BUNDLED==="true")return;let e=Xy(import.meta.url);if(e.endsWith(".ts"))return Cn.resolve(Cn.dirname(e),"..","kodax_cli.ts");let n=Cn.dirname(e),t=Cn.basename(n)==="chunks"?Cn.dirname(n):n;return Cn.join(t,"kodax_cli.js")}i(iR,"resolveDaemonCliEntry");function oR(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&&(Zc(a)&&t.push(o,a),r+=1)}else if(s.startsWith("--require=")){let a=o.slice(10);Zc(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(oR,"daemonServeExecArgv");function Zc(e){return Cn.resolve(e)===Cn.resolve("scripts","production-env.cjs")}i(Zc,"isKodaXProductionEnvPreload");function Di(e){return new Promise(n=>setTimeout(n,e))}i(Di,"delay");async function bt(e,n){if(!n)return e;if(n.aborted)throw el();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(el()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(bt,"raceRuntimeDaemonStartupStep");function el(){return new Yn("Runtime daemon startup cancelled.","cancelled")}i(el,"runtimeDaemonStartupCancelled");var sR=15e3,aR=25;async function Is(e){if(!Number.isSafeInteger(e.owner.pid)||e.owner.pid<=0)throw new Error("Runtime daemon shutdown verification requires a positive owner PID.");let n=e.timeoutMs??sR,t=e.pollIntervalMs??aR;if(!Number.isSafeInteger(n)||n<=0)throw new Error("Runtime daemon shutdown verification timeout must be positive.");if(!Number.isSafeInteger(t)||t<=0)throw new Error("Runtime daemon shutdown verification poll interval must be positive.");if(e.owner.processContainment==="windows-job"&&(!Number.isSafeInteger(e.owner.supervisorPid)||e.owner.supervisorPid<=0))throw new Error("Windows Job containment requires a positive supervisor PID.");let r=Jn(e.configHome,e.profile??"default"),o=Date.now()+n,s="outcome_missing";for(;;){let a=ze(r.lockFile),u=a?.kind==="daemon"&&tr(a.pid)&&(a.runtimeId!==e.owner.runtimeId||a.pid!==e.owner.pid)?a:void 0,c=Tu(r,e.owner),p=tr(e.owner.pid),R=e.owner.processContainment==="windows-job"&&tr(e.owner.supervisorPid);if(c?.status==="failed")return{status:"failed",outcome:c};if(process.platform==="win32"&&e.owner.processContainment!=="windows-job")return{status:"unverified",reason:"containment_unavailable"};if(c?.status==="succeeded"&&!p&&!R)return u!==void 0?{status:"replacement_running",runtimeId:u.runtimeId,pid:u.pid}:{status:"succeeded",outcome:c};if(s=p?"daemon_active":R?"containment_active":"outcome_missing",Date.now()>=o)return{status:"unverified",reason:s};await dR(Math.min(t,Math.max(1,o-Date.now())))}}i(Is,"waitForRuntimeDaemonShutdown");function dR(e){return new Promise(n=>setTimeout(n,e))}i(dR,"delay");import{Worker as uR}from"node:worker_threads";import{existsSync as cR}from"node:fs";import{basename as lR,dirname as bs,join as dl}from"node:path";import{fileURLToPath as ul,pathToFileURL as cl}from"node:url";var mR=3e4;function ll(e,n={}){let t=gR(),r=new uR(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,c=!1,p=i(C=>{for(let m of o.values())m.cleanup(),m.reject(C);o.clear()},"rejectPending"),R=i(()=>{for(let C of s.values())clearTimeout(C.expiry);s.clear()},"clearLateResults"),I=i(C=>{let m=s.get(C);if(m!==void 0)return s.delete(C),clearTimeout(m.expiry),m.deliver},"removeLateResult"),g=i(C=>{c||(c=!0,p(C),R(),a.clear())},"markClosed"),x=i((C,m)=>{if(c)return;let k=C==="request.ack"?"ack":"cancel";try{r.postMessage(Kt(`worker_${k}_${++u}`,C,{requestId:m}))}catch(l){we({source:"runtime.worker.transport",level:"warn",message:`Failed to send Worker ${C} lifecycle frame.`,detail:l})}},"sendRequestLifecycleFrame");return r.on("message",C=>{if(Er(C)){for(let l of a)l(C);return}if(!ft(C)&&!Ut(C)||!C.id)return;let m=o.get(C.id);if(!m){if(ft(C)){let l=I(C.id);if(l!==void 0)try{l(C.result)}catch(v){we({source:"runtime.worker.transport",level:"warn",message:"Runtime Worker late-result handler failed.",detail:v})}}else I(C.id);return}if(o.delete(C.id),m.cleanup(),ft(C)){x("request.ack",C.id),m.resolve(C.result);return}let k=new Error(C.error.message);k.code=C.error.code,C.error.data!==void 0&&(k.data=C.error.data),m.reject(k)}),r.on("error",C=>g(C)),r.on("exit",C=>g(new Error(`Runtime Worker exited with code ${C}.`))),{transport:{request(C,m,k,l){if(c)return Promise.reject(new Error("Runtime Worker transport is closed."));let v=`worker_${++u}`,h,P=!1,T=i(()=>{h!==void 0&&l?.signal?.removeEventListener("abort",h)},"cleanup"),_=new Promise((N,q)=>{let te={resolve:N,reject:q,cleanup:T};o.set(v,te),h=fR(l,()=>{if(o.get(v)===te){if(o.delete(v),T(),P&&x("request.cancel",v),l?.onLateResult!==void 0){let de=setTimeout(()=>{s.delete(v)},mR);de.unref?.(),s.set(v,{deliver:l.onLateResult,expiry:de})}q(pR(l?.signal?.reason))}})});if(l?.signal?.aborted)return _;try{r.postMessage(Kt(v,C,m,k)),P=!0}catch(N){let q=o.get(v);q!==void 0&&(o.delete(v),q.cleanup(),q.reject(N instanceof Error?N:new Error(String(N))))}return _},subscribe(C){return c?{close(){}}:(a.add(C),{close:i(()=>a.delete(C),"close")})},async close(){c||(g(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){c||g(new Error("Runtime Worker terminated.")),await r.terminate()}}}i(ll,"createRuntimeWorkerTransport");function fR(e,n){let t=e?.signal;if(t!==void 0)return t.addEventListener("abort",n,{once:!0}),t.aborted&&n(),n}i(fR,"attachWorkerRequestAbort");function pR(e){return e instanceof Error?e:new Error("Runtime Worker request cancelled.")}i(pR,"normalizeWorkerAbortReason");function gR(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return cR(ul(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return cl(dl(bs(process.execPath),"runtime-worker.js"));let e=bs(ul(import.meta.url)),n=lR(e)==="chunks"?bs(e):e;return cl(dl(n,"runtime-worker.js"))}i(gR,"resolveRuntimeWorkerUrl");var wn=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},Tt=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function Ws(e){let n=Y.resolve(e??qr.homedir());return{homeDir:n,configHome:e===void 0?Y.resolve(ho):Y.join(n,".kodax")}}i(Ws,"resolveRuntimeDaemonClientLocation");function pr(e,n="default"){let t=Ws(e);return{...t,paths:Jn(t.configHome,n)}}i(pr,"resolveRuntimeDaemonClientPaths");function fb(e={}){let{paths:n}=pr(e.homeDir,e.profile),t=`inline_${Qe().replace(/-/g,"")}`,r=zt(process.pid),o=ku(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline",...r===void 0?{}:{processStartIdentity:r}},e.enableRollback===!0),s=!1;return{profile:n.profile,ownerId:t,ownerPolicy:_n(n),close(){if(!s){if(!wi(o))throw new Error(`Failed to release inline owner "${t}"; retry close before changing owner mode.`);s=!0}}}}i(fb,"acquireKodaXInlineOwner");function pb(e={}){return _n(pr(e.homeDir,e.profile).paths)}i(pb,"getKodaXRuntimeOwnerPolicy");function gb(e={}){let{paths:n}=pr(e.homeDir,e.profile),t=ze(n.lockFile);return{profile:n.profile,policy:_n(n),ownerStatus:t!==void 0?"owned":$.existsSync(n.lockFile)?"unreadable":"unowned",owner:t===void 0?null:{runtimeId:t.runtimeId,pid:t.pid,createdAt:t.createdAt,...t.kind===void 0?{}:{kind:t.kind},...t.processContainment===void 0?{}:{processContainment:t.processContainment},...t.supervisorPid===void 0?{}:{supervisorPid:t.supervisorPid}}}}i(gb,"getKodaXRuntimeOwnerState");function yb(e={}){return yi(pr(e.homeDir,e.profile).paths)}i(yb,"enableKodaXDaemonOwner");function Rb(e){let{paths:n}=pr(e.homeDir,e.profile);if(ze(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Iu(n,e.mode,e.expectedRevision)}i(Rb,"setKodaXRuntimeOwnerMode");var yR=["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"],RR=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),hb=Object.freeze({actorSettlementConvergence:1,daemonOrphanExit:1,daemonShutdownVerification:1,managedRunDurability:1,sandboxRuntime:3,sessionEventJournal:1,runtimeEventCoalescing:1});async function wb(e,n){return e.sessions.diagnostics(n)}i(wb,"captureRuntimeSessionDiagnostics");function hR(e,n,t,r){let o=t.runs.flatMap(R=>{let I=zi(R);return I===void 0?[]:[I]}),s=n.runId===void 0?Cm(o):o.find(R=>R.runId===n.runId),a=s?.activeSubtaskCount??null,u=[],c=i((R,I)=>{u.some(g=>g.code===R)||u.push({code:R,message:I})},"addError");if(s===void 0)c("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";c(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")&&c("stop_outcome_unconfirmed","A Stop was requested, but executor termination is not confirmed."),s?.lifecycleError!==void 0&&c(s.lifecycleError.code,s.lifecycleError.message),s?.phase==="failed"&&c("run_failed",s.error??"The Run failed without a recorded error message."),s!==void 0&&Ne(s.phase)&&s.endedAt===void 0&&c("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:Zr,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":Ne(s.phase)?"terminal":"active",phase:s.phase,stage:s.stage??(Ne(s.phase)?"terminal":"unknown"),...s.stageChangedAt!==void 0?{stageChangedAt:s.stageChangedAt}:{},...s.endedAt!==void 0?{terminalAt:s.endedAt}:{},terminalTimeKnown:Ne(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(hR,"createRuntimeSessionDiagnosticsRecord");var Fr=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},Br=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")})}},Mt=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")}},Bi=class extends Error{constructor(t){super(`Runtime status lock timed out: ${t}`);this.lockFile=t;this.name="RuntimeStatusLockTimeoutError"}lockFile;static{i(this,"RuntimeStatusLockTimeoutError")}},fl=5*6e4,Ki=1e4,wR=1024,pl=1024*1024,Bn=1e3,Mi=200,ks=1e3,vR=2*1024*1024,Es=512,gl=256*1024*1024,SR=50,Fs=8*1024,tm=16*1024*1024,IR=tm/2,yl=128*1024,Rl=8,bR=256,_t=512*1024,Xi=128*1024,jr=256*1024,rm=50,im=200,kR=8,Hr=64*1024*1024,Ui=16,Ps=4*1024,ER=256,PR=1024*1024,xR=250,xs=5*6e4,hl="kodax-transcript-snapshots-",CR=5e3,AR=3e4,TR=100,DR=3e4,wl=[5,15],MR="1970-01-01T00:00:00.000Z";function _R(e,n,t){let r=null,o=t.map((s,a)=>{let c=`entry_${Dt("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:c,parentId:r,logicalId:c,timestamp:s.timestamp??MR,message:structuredClone(s)};return r=c,p});return{version:2,activeEntryId:r,entries:o}}i(_R,"createDeterministicRuntimeLegacyLineage");var vl=1024,om=new Set(["tool_call","tool_describe"]),OR=new Set(["image","file","video"]);function NR(e,n){let t=Y.relative(no(),e);return Y.isAbsolute(t)||t.startsWith("..")?e:Y.join(n,t)}i(NR,"rebaseAgentConfigPath");async function LR(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 FR(e);let D=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return sm({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:D,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:{...e.requirements,sessionEventJournal:1,...D?{actorSettlementConvergence:1,managedRunDurability:1,...process.platform==="win32"?{daemonShutdownVerification:1,sandboxRuntime:3}:{},runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:{}}})}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 jR(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:_t},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:ei(),managedRunDurability:{version:1,initialInputBeforeExecution:!0,completedTurnBeforeEvent:!0,deliveredInputBeforeEvent:!0,persistenceFailure:"fail_closed"},actorSettlementConvergence:{version:1,rootFence:"fail_closed",sameOwnerRepair:"automatic",unknownAfterTurnQueue:!0,terminal:"failed"},sessionEventJournal:{version:1,sequenceScope:"session",cursor:"session_epoch_sequence",scopedAccessRequired:!0},runtimeEventCoalescing:{version:1},runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:Yr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};Js(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Qe().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.86",isolation:"inline"},r=e.homeDir?Y.join(Y.resolve(e.homeDir),".kodax"):ho,o=Eh(e),s=fd(o?{sessionsDir:o,configHome:r}:{configHome:r}),a=Qh(t.profile,s,e.sharedDaemonHost===!0),u=UR(),c=vw(e);km(c);let p=await Vd({onError(D){we({source:"runtime.owner",level:"error",message:`Runtime owner liveness endpoint failed for ${t.runtimeId}.`,detail:$e(D)})}}),R={ownerId:`runtime_${Qe().replace(/-/g,"")}`,runtimeId:t.runtimeId,pid:process.pid,startedAt:t.startedAt,livenessId:p.id,livenessPort:p.port},I=ph(e,R),g;try{g=e.externalAgents?await Na({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:bd(Y.join(I.runtimeDir,"agents"))}):void 0}catch(D){throw await p.close(),D}let x=uh(I),f=XR(I,x),C=$h(x,e.permissionTimeoutMs??fl,I),m=Fh(x,e.permissionTimeoutMs??fl),k=QR(),l=zR(),v=new Map,h=new Map,P=new Map,T=new Map,_=i((D,U)=>{let le=h.get(D)??U;return le.state!=="recovering"?Promise.resolve(le):new Promise(G=>{let he=P.get(D)??new Set;he.add(G),P.set(D,he)})},"waitForActorHealthResolution"),N=i(D=>{let U,le=new Promise(he=>{U=he}),G=T.get(D)??new Set;return G.add(U),T.set(D,G),{promise:le,close(){U!==void 0&&(G.delete(U),G.size===0&&T.delete(D),U=void 0)}}},"waitForActorHealthChange"),q=i(()=>{},"fenceRunAfterActorSettlementUnknown"),te=i((D,U)=>{h.set(D,U);let le=T.get(D);T.delete(D);for(let G of le??[])G(U);for(let G of v.values()){if(G.sessionId!==D||!G.ownedByRuntime||Ne(G.phase))continue;if(U.state==="unknown"&&q(G,U),G.stop?.state==="unknown"){if(delete G.actorHealthBaseState,U.state==="unknown"){G.lifecycleError={code:U.code??"actor_settlement_not_persisted",message:U.message??"Actor executor settlement persistence is not confirmed.",retryable:!1},G.stageChangedAt=new Date().toISOString();let M=un(G),O=nt(x,I,G,M);O===M?x.emit("run.updated",M,{sessionId:G.sessionId,runId:G.runId,...G.turnId!==void 0?{turnId:G.turnId}:{}}):O!==void 0&&At(G,O)}continue}if(U.state==="healthy"){if(G.actorDurabilityFailure!==void 0){delete G.actorHealthBaseState;continue}let M=G.actorHealthBaseState;if(M===void 0)continue;G.phase=M.phase,G.stage=M.stage,G.error=M.error,G.lifecycleError=M.lifecycleError,delete G.actorHealthBaseState}else G.actorHealthBaseState===void 0&&(G.actorHealthBaseState={phase:G.phase,stage:G.stage,error:G.error,lifecycleError:G.lifecycleError}),G.phase!=="queued"&&(G.phase=U.state),G.stage=U.state,G.error=U.message,G.lifecycleError={code:U.code??"actor_settlement_retrying",message:U.message??"Actor executor settlement persistence is not confirmed.",retryable:U.state==="recovering"};G.stageChangedAt=new Date().toISOString();let he=un(G),S=nt(x,I,G,he);S===he?x.emit("run.updated",he,{sessionId:G.sessionId,runId:G.runId,...G.turnId!==void 0?{turnId:G.turnId}:{}}):S!==void 0&&At(G,S)}if(U.state!=="recovering"){let G=P.get(D);P.delete(D);for(let he of G??[])he(U)}},"onActorHealthChanged"),de=nh(s,t,p,g,e.externalAgents?.defaultContext,te),Ie=new Map,Te=[...Kw(I.loadRunStatuses())].sort((D,U)=>et(D.status,U.status)),Pe=[];for(let D of Te){let U=D.status,le=U.sessionOrder??(Ie.get(U.sessionId)??0)+1;Ie.set(U.sessionId,Math.max(Ie.get(U.sessionId)??0,le));let G={...U,acceptedAt:U.acceptedAt??U.startedAt,sessionOrder:le};if(Ne(U.phase)&&!U.interruptInputs?.some(he=>he.state==="queued")){v.set(U.runId,Lr(G,!1,D.owner));continue}if(!Ne(U.phase)){let he=fm(G,x,I);if(he!==void 0){v.set(he.runId,Lr(he,!1,D.owner));continue}G=Qs(G,I.replay({runId:U.runId}))}Pe.push({persisted:D,normalizedStatus:G})}let be=Pe.flatMap(({persisted:D})=>!Ne(D.status.phase)&&D.owner!==void 0?[D.owner]:[]),ve=await Gd(be),Fe=0;for(let{persisted:D,normalizedStatus:U}of Pe){let le=D.status,G=Ne(le.phase)?"dead":D.owner===void 0?"unknown":ve[Fe++]??"unknown";if(!Ne(le.phase)&&G!=="dead"){v.set(le.runId,Lr(U,!1,D.owner));continue}let he=mm(U,x,I);v.set(he.runId,Lr(he,!1,D.owner))}let Ce=!1,je,Ge=!1,cn=!1,an=g===void 0,bn=!1,rn=!1,nn=i(()=>{if(Ce)throw new Error("KodaX runtime is closed")},"ensureOpen"),d=JR({bus:x,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,defaultConfigHome:r,ensureOpen:nn,isClosed:i(()=>Ce,"isClosed"),artifacts:k,permissions:C,userInputs:m,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:I,runOwner:R,runs:v,sessionManager:s,sessionAdmission:a,sessionOperations:u,agentPlane:g,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:de,setActorSettlementFenceHandler(D){q=D},waitForActorHealthResolution:_,waitForActorHealthChange:N,settingsOwner:f}),b,B,E=WR(t,r,s,x,I,nn,D=>Uw(D,v,I),f,D=>d.list({sessionId:D}),D=>d.inspect({sessionId:D}),D=>d.inspectOne(D),D=>C.service.listPending({sessionId:D}),D=>d.getAutoModeStats(D),u,(D,U,le)=>de.mutateSessionFile(D,U,le),D=>{d.releaseSession(D),C.releaseSession(D)},a,(D,U)=>{b=D,B=U}),A=Y.join(e.homeDir?Y.resolve(e.homeDir):qr.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),H=Ud({configHome:r,managedWorkspaceRoot:A,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:d,sessions:E,createSkillScriptRunner:i(D=>Rd({...D,snapshotRoot:Y.join(A,"bindings")}),"createSkillScriptRunner")}),X=Zd({rootDir:Y.join(r,"learned"),userSkillsRoot:Y.join(r,"skills"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[NR(va(process.cwd()),r)]}),ee=i(()=>{if(je)return je;Ce=!0;let D=(async()=>{Ge||(d.closeAll("runtime closed"),C.rejectAll("runtime closed"),C.releaseAllSessionGrants(),m.rejectAll("runtime closed"),Ge=!0),b?.(),await u.close(),await B?.(),b=void 0,B=void 0,cn||(await de.close("runtime closed"),cn=!0),an||(await g.close(),an=!0),bn||(await p.close(),bn=!0),e.sharedDaemonHost&&await gd(),rn||(x.close(),rn=!0)})();return je=D,D.then(()=>{je===D&&(je=void 0)},()=>{je===D&&(je=void 0)}),D},"closeRuntime");return{identity:t,capabilities:n,sessions:E,runs:d,events:x.scopedService,permissions:C.service,userInputs:m.service,credentials:wv(),hostTools:vv(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:l,learning:X,config:VR(nn,c),catalog:GR(nn,c),mcp:YR(nn,c),artifacts:k.service,status:ih({identity:t,permissions:C,userInputs:m,listRuns:i(()=>d.list(),"listRuns"),sessionManager:s,sessionAdmission:a,workflows:l,actors:de}),diagnostics:oh(x.service),admin:rh(g),agents:th(g,H,de,a,u,nn),close:ee}}i(LR,"createKodaXRuntime");async function FR(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?dm(e.daemonEndpoint):void 0,r=Ws(e.homeDir),o=await Kc({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(s=>LR({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 sm({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??Pr(o.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),a=!1,u=!1,c,p=i(()=>{if(c)return c;let R=(async()=>{u||(o.ownsHost?await o.shutdown():await o.close(),u=!0),a||(await s.close(),a=!0)})();return c=R,R.then(()=>{c===R&&(c=void 0)},()=>{c===R&&(c=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(c=>c.status==="rejected").map(c=>c.reason);throw u.length>0?new AggregateError([s,...u],"Hosted daemon initialization failed and cleanup was incomplete."):s}}i(FR,"createInProcessExternalAgentDaemon");async function jR(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=ll({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=fr(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=Em(r.identity);Js(r.capabilities,{...e.requirements,hardDispose:!0});let s=fi({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:fr(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 HR(t.transport.request("runtime.shutdown"),n)}catch(I){R=I}try{await t.terminate(),a=!0}catch(I){throw R!==void 0?new AggregateError([R,I],"Runtime Worker shutdown and forced termination both failed."):I}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(jR,"createWorkerHostedKodaXRuntime");function Js(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?.actorSettlementConvergence===void 0&&n?.sessionEventJournal===void 0&&n?.daemonManagement===void 0&&n?.daemonOrphanExit===void 0&&n?.daemonShutdownVerification===void 0&&n?.runtimeEventCoalescing===void 0&&n?.integrationConfigResilience===void 0&&n?.actorControlPlane===void 0&&n?.sandboxRuntime===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=fr(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&&Sl(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],["actorSettlementConvergence",n.actorSettlementConvergence],["sessionEventJournal",n.sessionEventJournal],["daemonManagement",n.daemonManagement],["daemonOrphanExit",n.daemonOrphanExit],["daemonShutdownVerification",n.daemonShutdownVerification],["runtimeEventCoalescing",n.runtimeEventCoalescing],["integrationConfigResilience",n.integrationConfigResilience],["actorControlPlane",n.actorControlPlane],["sandboxRuntime",n.sandboxRuntime],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,s]of r)s!==void 0&&Sl(t,o,s)}i(Js,"assertRuntimeCapabilities");function Sl(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(Sl,"assertVersionedRuntimeCapability");async function HR(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(HR,"settleWithin");async function sm(e={}){return am(e,!0)}i(sm,"connectKodaXRuntime");function js(e,n,t){let r=e[n];return oe(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i(js,"hasVersionedRuntimeCapability");async function $R(e){if(!js(e.capabilities,"daemonManagement",1))throw new wn("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);if(process.platform==="win32"&&!js(e.capabilities,"daemonShutdownVerification",1))throw new wn("The running Windows daemon predates authoritative process containment. Stop it explicitly before upgrading; it cannot be migrated safely in place.",void 0,void 0,e.requiredCapability);let n=fi({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(),process.platform==="win32"&&(t.owner.processContainment!=="windows-job"||!Number.isSafeInteger(t.owner.supervisorPid)||t.owner.supervisorPid<=0))throw new wn("The running Windows daemon did not provide an authoritative Job containment owner. Stop it explicitly before upgrading; it cannot be migrated safely in place.",t.preflight,void 0,e.requiredCapability);if(!t.preflight.canStop)throw new wn(`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(r){throw r instanceof wn?r:new wn("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:r},e.requiredCapability)}finally{let r=!1;await n.close().then(()=>{r=!0}).catch(o=>{we({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:$e(o)})}),r||await e.lease.close().catch(o=>{we({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:$e(o)})})}try{if(process.platform==="win32"){if(t===void 0)throw new wn("The legacy Windows daemon stopped without a verifiable owner identity.",void 0,void 0,e.requiredCapability);let r=await Is({configHome:e.lease.paths.configHome,profile:e.lease.paths.profile,owner:t.owner,timeoutMs:e.startupTimeoutMs});if(r.status!=="succeeded"){let o=r.status==="unverified"?r.reason:r.status;throw new wn(`The legacy Windows daemon accepted the upgrade stop, but its process-tree shutdown was not verified (${o}). Stop it explicitly and retry.`,void 0,void 0,e.requiredCapability)}}else{let r=Date.now()+e.startupTimeoutMs;for(;ze(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new wn("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(r){if(process.platform==="win32")throw new wn("The legacy Windows daemon did not prove that its process tree stopped. Daemon ownership remains disabled; stop every legacy KodaX process, then call `enableKodaXDaemonOwner(...)` and retry.",void 0,{cause:r},e.requiredCapability);try{yi(e.lease.paths)}catch(o){throw new wn("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([r,o])},e.requiredCapability)}throw r}try{yi(e.lease.paths)}catch(r){throw new wn("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:r},e.requiredCapability)}}i($R,"replaceRuntimeDaemonForCapabilityUpgrade");async function am(e,n){Cs("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),Cs("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs),Cs("daemonOrphanExitMs",e.daemonOrphanExitMs);let t=e.endpoint!==void 0?dm(e.endpoint):void 0,r=Ws(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await ol({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?nr(e.profile??"default",Vt(r.homeDir,r.configHome)):void 0),a=e.transport??o?.transport??(s!==void 0?await zn(s,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!a)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=KR(e),c,p={},R,I,g=!1;try{let f={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Qe().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}:{}},C=fr(await a.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:f,capabilities:{...e.capabilities,operationDeduplication:!0},...s!==void 0?{endpoint:s.path}:{}}));c=Em(C.identity),p=C.capabilities===void 0?{}:fr(C.capabilities),R=typeof C.journalEpoch=="string"?C.journalEpoch:void 0,I=qR(C.grantedScopes);let m={...e.requirements,sessionEventJournal:1,...e.autoStart===!0?{actorSettlementConvergence:1,managedRunDurability:1,...process.platform==="win32"?{daemonShutdownVerification:1,sandboxRuntime:3}:{},runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:{}},k=[{name:"actorSettlementConvergence",version:m?.actorSettlementConvergence},{name:"managedRunDurability",version:m?.managedRunDurability},{name:"sessionEventJournal",version:m?.sessionEventJournal},{name:"runtimeAutoModeGuardrail",version:m?.runtimeAutoModeGuardrail},{name:"runtimeEventCoalescing",version:m?.runtimeEventCoalescing},{name:"daemonShutdownVerification",version:m?.daemonShutdownVerification},{name:"sandboxRuntime",version:m?.sandboxRuntime},{name:"daemonOrphanExit",version:m?.daemonOrphanExit}].find(v=>v.version!==void 0&&!js(p,v.name,v.version));if(k!==void 0){if(!n||e.autoStart!==!0||o===void 0)throw new wn(`Runtime daemon does not support ${k.name} v${k.version}. Stop all daemon work and restart it with a compatible KodaX installation.`,void 0,void 0,k.name);if(k.name==="daemonShutdownVerification")throw new wn("The running Windows daemon predates authoritative process containment. Stop it explicitly before requiring daemonShutdownVerification v1; it cannot be migrated safely in place.",void 0,void 0,k.name);try{await $R({identity:c,capabilities:p,transport:a,lease:o,...R!==void 0?{journalEpoch:R}:{},...I!==void 0?{grantedScopes:I}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredCapability:k.name,requiredVersion:k.version})}finally{g=!0}return am(e,!1)}Js(p,m);let l=e.profile??"default";if(c.profile!==l)throw new Error(`Runtime daemon profile mismatch: expected ${l}, got ${c.profile}`)}catch(f){throw g||(o!==void 0?await o.close():await a.close?.()),f}let x=fi({identity:{...c,mode:"daemon",isolation:"process"},transport:a,capabilities:p,...R!==void 0?{journalEpoch:R}:{},...I!==void 0?{grantedScopes:I}:{}});return o?{...x,async close(){await x.close()}}:x}i(am,"connectKodaXRuntimeInternal");function Cs(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(Cs,"assertPositiveRuntimeTimeout");function qR(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&BR(t));return n.length===e.length?n:void 0}i(qR,"parseRuntimeGrantedScopes");function BR(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(BR,"isRuntimeGrantedScope");function KR(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Pr(pr(e.homeDir,e.profile).paths)}i(KR,"resolveConnectDaemonToken");function dm(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(dm,"normalizeRuntimeDaemonEndpoint");function XR(e,n){let t=new Map,r=new Map,o=new Set,s=i((u,c)=>{let R=(r.get(u)??Promise.resolve()).then(c),I=R.then(()=>{},()=>{});return r.set(u,I),I.then(()=>{r.get(u)===I&&r.delete(u)}),R},"enqueue"),a=i((u,c,p)=>{t.set(u,c);for(let R of o)R(u,c,p);n.emit("session.settings.updated",{sessionId:u,revision:c.revision,settings:c.value,patch:p},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let c=e.loadSessionSettingsVersioned(u);return t.set(u,c),c},peek(u){return t.get(u)},update(u,c,p,R){return s(u,()=>{let I=e.loadSessionSettingsVersioned(u);if(p!==void 0&&I.revision!==p)throw Zn(`Session settings revision ${p} is stale; current revision is ${I.revision}`,I.revision);let g=lw(I.value,c);R(g);let x={revision:I.revision+1,value:g};return e.saveSessionSettingsVersioned(u,x),a(u,x,c),x})},async persistAutoModeEngine(u,c){let p=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:p.revision,value:{...p.value,autoModeEngine:c}}),await s(u,()=>{let R=e.loadSessionSettingsVersioned(u);if(R.value.autoModeEngine===c){t.set(u,R);return}let I={revision:R.revision+1,value:{...R.value,autoModeEngine:c}};e.saveSessionSettingsVersioned(u,I),a(u,I,{autoModeEngine:c})})},subscribe(u){return o.add(u),{close:i(()=>{o.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}i(XR,"createRuntimeSessionSettingsOwner");function UR(){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(UR,"createRuntimeSessionOperationGate");function WR(e,n,t,r,o,s,a,u,c,p,R,I,g,x,f,C,m,k){let l=new Set,v=i((y,F,j)=>({id:y,title:F.title,...F.gitRoot?{gitRoot:F.gitRoot}:{},...F.runtimeInfo?.workspaceRoot?{workspaceRoot:F.runtimeInfo.workspaceRoot}:{},...F.runtimeInfo?.surface?{surface:F.runtimeInfo.surface}:{},...F.runtimeInfo?.profileId?{profileId:F.runtimeInfo.profileId}:{},...j?{createdAt:j}:{}}),"toRuntimeSession"),h=i(y=>({revision:y.revision,sourceRevision:y.sourceRevision,status:y.status,issues:y.issues,entries:y.entries,hasMore:y.hasMore,...y.nextEnd!==void 0?{nextCursor:Vi({kind:"conversation_cache_page",view:"conversation",revision:y.revision,end:y.nextEnd})}:{}}),"toRuntimeConversationPage"),P=new Map,T=new Map,_=new Map,N=new Map,q=new Map,te=new Map,de=0,Ie=new Map,Te=new Set,Pe=new Set,be=0,ve,Fe=0,Ce=!1,je=!1,Ge=new Set,cn=new Map,an,bn=i(()=>{an!==void 0&&(clearInterval(an),an=void 0)},"clearTranscriptSnapshotLease"),rn=i(()=>{if(ve!==void 0)try{le(),U();let y=new Date;$.utimesSync(ve,y,y)}catch(y){process.emitWarning(`Unable to refresh transcript snapshot lease: ${$e(y).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_LEASE_FAILED"})}},"refreshTranscriptSnapshotLease"),nn=i(()=>{let y=qr.tmpdir(),F=Date.now()-xs;try{for(let j of $.readdirSync(y,{withFileTypes:!0})){if(!j.isDirectory()||!j.name.startsWith(hl))continue;let J=Y.join(y,j.name);$.statSync(J).mtimeMs>F||$.rmSync(J,{recursive:!0,force:!0})}}catch(j){process.emitWarning(`Unable to prune expired transcript snapshots: ${$e(j).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"pruneStaleTranscriptSnapshotDirs"),d=i(y=>{let F=Ie.get(y);F!==void 0&&(Ie.delete(y),de-=F)},"releaseTranscriptSnapshotBytes"),b=i(y=>(Pe.add(y),y.then(()=>Pe.delete(y),()=>Pe.delete(y)),y),"trackTranscriptSnapshotOperation"),B=i(()=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(be>=Ui)throw yv();be+=1;let y=!1;return()=>{y||(y=!0,be-=1)}},"acquireTranscriptSnapshotIo"),E=i(()=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let y=ve===void 0;if(ve!==void 0)try{y=$.statSync(ve).isDirectory()}catch(F){(!oe(F)||F.code!=="ENOENT"&&F.code!=="ENOTDIR")&&process.emitWarning(`Unable to inspect transcript snapshot directory: ${$e(F).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_DIRECTORY_FAILED"}),y=!1}if(!y){bn(),P.clear(),T.clear();for(let F of[...Ie.keys()])if(!Te.has(F)){if((cn.get(F)??0)>0){Ge.add(F);continue}d(F),Ge.delete(F)}ve=void 0}return ve===void 0&&(nn(),ve=$.mkdtempSync(Y.join(qr.tmpdir(),hl)),Fe+=1,an=setInterval(rn,Math.floor(xs/2)),an.unref?.()),ve},"ensureTranscriptSnapshotDir"),A=i((y,F,j)=>`${j}\0${y}\0${F}`,"transcriptSnapshotKey"),H=i((y,F,j)=>`${j}\0${y}\0${F}`,"transcriptSourceKey"),X=i(y=>{if((cn.get(y)??0)>0){Ge.add(y);return}try{$.rmSync(y,{force:!0}),Ge.delete(y),d(y)}catch(F){Ge.add(y),process.emitWarning(`Unable to remove transcript snapshot: ${$e(F).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"removeTranscriptSnapshotFile"),ee=i((y,F)=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let j=Ie.get(y)??0;if(j+F>Hr)throw Hi();for(;de+F>Hr;){let J=P.keys().next().value;if(J===void 0)throw Hi();D(J)}Ie.set(y,j+F),de+=F},"reserveTranscriptSnapshotBytes"),ge=i(y=>{for(;Ie.size>=Ui;){let F=P.keys().next().value;if(F===void 0)throw Hi();D(F)}Ie.set(y,0);try{ee(y,Ps)}catch(F){throw d(y),F}},"reserveTranscriptSnapshotFile"),D=i(y=>{let F=P.get(y);if(F===void 0)return;P.delete(y);let j=H(F.sessionId,F.sourceRevision,F.view);T.get(j)===F.revision&&T.delete(j),X(F.filePath)},"removeTranscriptSnapshot"),U=i(()=>{let y=Date.now();for(let[F,j]of P)j.expiresAt<=y&&D(F)},"pruneExpiredTranscriptSnapshots"),le=i(()=>{for(let y of Ge)X(y)},"retryDeferredTranscriptSnapshotCleanup"),G=i(y=>{cn.set(y,(cn.get(y)??0)+1);let F=!1;return()=>{if(F)return;F=!0;let j=(cn.get(y)??1)-1;if(j>0){cn.set(y,j);return}cn.delete(y),Ge.has(y)&&X(y)}},"acquireTranscriptSnapshotReader"),he=i(async(y,F,j)=>{let J=G(y.filePath),V;try{V=B()}catch(Ee){throw J(),Ee}let ie=b(Promise.resolve().then(j)),ye=i(()=>{J(),V?.()},"releaseResources");ie.then(ye,ye);try{return await jn(()=>ie,F)}catch(Ee){if(gv(Ee)){let De=[...P.entries()].find(([,He])=>He.filePath===y.filePath);De!==void 0&&D(De[0])}throw Ee}},"readTranscriptSnapshot"),S=i(async(y,F,j)=>{if(F.conversation===void 0)throw xe("Conversation snapshot metadata is unavailable");let J;try{J=await t.storage.readConversationPageBoundary(y,Oe(j))}catch(V){throw V instanceof mn&&V.code==="data_changed"?xe(V.message):V}if(J===null)throw xe("Session moved or was removed; request a fresh boundary");if(m.assertCachedIdentity(y,J.admission),J.boundaryRevision!==F.conversation.boundaryRevision)throw D(A(y,F.revision,"conversation")),xe("Conversation history changed; request a fresh boundary")},"assertConversationSnapshotCurrent"),M=i(async(y,F)=>{Oe(F);let j=_.get(y);if(j===void 0){let J=new AbortController,V=b(m.captureRequired(y,{signal:J.signal}));j={controller:J,promise:V,waiters:0,settled:!1},_.set(y,j);let ie=j,ye=i(()=>{ie.settled=!0,_.get(y)===ie&&_.delete(y)},"settle");V.then(ye,ye)}j.waiters+=1;try{return await jn(()=>j.promise,F)}finally{j.waiters-=1,j.waiters===0&&!j.settled&&(_.get(y)===j&&_.delete(y),j.controller.abort())}},"readSessionCaptureOnce"),O=i(async(y,F)=>{for(let j=0;j<=wl.length;j+=1)try{return await M(y,F)}catch(J){if(!(J instanceof mn)||J.code!=="data_changed")throw J;let V=wl[j];if(V===void 0)throw xe(J.message);await jn(()=>new Promise(ie=>setTimeout(ie,V)),F)}throw new Error("unreachable session capture retry state")},"readSessionCapture"),K=i(async(y,F,j,J,V,ie="",ye)=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");U();let Ee=ye===void 0?0:Buffer.byteLength(JSON.stringify(ye),"utf8"),De=E(),He=Fe,Me=Y.join(De,`${Qe()}.entries`),Ue=B(),Se=Ps+Ee;try{for(let Je=0;Je<F.length;Je+=1)if(Je>0&&Je%256===0&&await sr(J),Oe(J),Se+=Buffer.byteLength(JSON.stringify(F[Je]),"utf8"),Se>Hr)throw Hi()}catch(Je){throw Ue(),Je}try{ge(Me);let Je=Se-Ps;Je>0&&ee(Me,Je)}catch(Je){throw d(Me),Ue(),Je}Te.add(Me);let ln=b((async()=>{let Je=[],Tn=Dt("sha256");Tn.update(V==="transcript"?"kodax-transcript-entries-v1\0":"kodax-conversation-history-v1\0"),ie.length>0&&(Tn.update(`${Buffer.byteLength(ie,"utf8")}:`),Tn.update(ie));let na=await $.promises.open(Me,"wx"),ta=0,Nt=[],gr=0,ra=i(async()=>{if(gr===0)return;let dt=Nt.length===1?Nt[0]:Buffer.concat(Nt,gr);Nt=[],gr=0,await cw(na,dt),Oe(J)},"flushPendingWrites");try{for(let dt=0;dt<F.length;dt+=1){dt>0&&dt%256===0&&await sr(J),Oe(J);let ia=F[dt],Un=Buffer.from(JSON.stringify(ia),"utf8");Tn.update(`${Un.length}:`),Tn.update(Un);let oa=[];for(let zr=0;zr<Un.length;zr+=jr)oa.push(Dt("sha256").update(Un.subarray(zr,Math.min(Un.length,zr+jr))).digest("hex"));Je.push({offset:ta,byteLength:Un.length,chunkDigests:oa,...sw(ia)}),ta+=Un.length,Nt.push(Un),gr+=Un.length,(Nt.length>=ER||gr>=PR)&&await ra()}await ra()}finally{await na.close()}Oe(J);let Mm=V==="conversation"&&ye!==void 0?So({sourceRevision:ye.sourceRevision,status:ye.status,issues:ye.issues,entries:F}):`sha256:${Tn.digest("hex")}`;return{entries:Je,revision:Mm}})());ln.then(()=>{Te.delete(Me),Ue()},()=>{Te.delete(Me),Ue()});let on;try{on=await jn(()=>ln,J),Oe(J)}catch(Je){throw ln.then(()=>X(Me),Tn=>{Tn!==Je&&!Gi(Je)&&!Gi(Tn)&&process.emitWarning(`Transcript snapshot materialization failed after its caller stopped waiting: ${$e(Tn).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_BACKGROUND_FAILED"}),X(Me)}),Rv(Je,Ce)}let{entries:Ye,revision:Hn}=on;if(Ce)throw X(Me),new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(He!==Fe||!$.existsSync(Me))throw X(Me),xe("Transcript snapshot directory changed; request a fresh boundary");let Jr=A(y,Hn,V);for(D(Jr),P.set(Jr,{sessionId:y,view:V,revision:Hn,sourceRevision:j,filePath:Me,entries:Ye,...ye!==void 0?{conversation:ye}:{},expiresAt:Date.now()+xs}),T.set(H(y,j,V),Hn),rn();P.size>kR;){let Je=P.keys().next().value;if(Je===void 0)break;D(Je)}return Hn},"materializeTranscriptSnapshot"),W=i((y,F,j="transcript")=>{let J=A(y,F,j),V=P.get(J);if(V!==void 0){if(V.expiresAt<=Date.now()){D(J);return}if(!$.existsSync(V.filePath)){D(J);return}return P.delete(J),P.set(J,V),{revision:V.revision,view:V.view,sourceRevision:V.sourceRevision,filePath:V.filePath,entries:V.entries,...V.conversation!==void 0?{conversation:V.conversation}:{}}}},"getTranscriptSnapshot"),Z=i(async(y,F,j,J,V="transcript",ie="",ye)=>{Oe(J),U();let Ee=H(y,j,V),De=T.get(Ee);if(De!==void 0&&W(y,De,V)!==void 0)return De;let He=N.get(Ee);if(He===void 0){let Me=new AbortController,Ue=Fn({signal:Me.signal}),Se=K(y,F,j,Ue,V,ie,ye);He={controller:Me,promise:Se,waiters:0,settled:!1},N.set(Ee,He);let ln=He,on=i(()=>{ln.settled=!0,N.get(Ee)===ln&&N.delete(Ee)},"settle");Se.then(on,on)}He.waiters+=1;try{return await jn(()=>He.promise,J)}finally{He.waiters-=1,He.waiters===0&&!He.settled&&(N.get(Ee)===He&&N.delete(Ee),He.controller.abort())}},"rememberTranscriptSnapshot"),re=i(async(y,F)=>{Oe(F);let j=r.currentSessionCursor(y),J=te.get(y)??0,V=q.get(y);if(V!==void 0&&(!_s(V.sessionCursor,j)||V.sourceGeneration!==J)&&(q.delete(y),V=void 0),V===void 0){let ie=new AbortController,ye=Fn({signal:ie.signal}),Ee=b((async()=>{let Me=await O(y,ye),Ue=Me.transcript.lineage??_R(y,Me.sourceRevision,Me.transcript.messages),Se=Me.transcript.lineage===void 0?Ue.entries.flatMap(on=>on.type==="message"?[{entryId:on.id,parentId:on.parentId,logicalId:on.logicalId??on.id,...on.sourceEntryId===void 0?{}:{sourceEntryId:on.sourceEntryId},timestamp:on.timestamp,type:"message",message:on.message,active:!0}]:[]):Me.transcript.transcriptEntries,ln=await Z(y,Se,Me.sourceRevision,ye);return{capture:Me,revision:ln,lineage:Ue,transcriptEntries:Se}})());V={controller:ie,sessionCursor:j,sourceGeneration:J,promise:Ee,waiters:0,settled:!1},q.set(y,V);let De=V,He=i(()=>{De.settled=!0,q.get(y)===De&&q.delete(y)},"settle");Ee.then(He,He)}V.waiters+=1;try{return await jn(()=>V.promise,F)}finally{V.waiters-=1,V.waiters===0&&!V.settled&&(q.get(y)===V&&q.delete(y),V.controller.abort())}},"readMaterializedSessionCapture"),ne=i(y=>{te.set(y,(te.get(y)??0)+1),q.delete(y)},"invalidateMaterializedSessionCapture"),z=i(()=>{if(!je){for(let y of[...P.keys()])D(y);ve!==void 0&&($.rmSync(ve,{recursive:!0,force:!0}),ve=void 0),de=0,Ie.clear(),T.clear(),Te.clear(),be=0,cn.clear(),Ge.clear(),je=!0}},"finalizeTranscriptSnapshots"),se=i((y=1)=>{try{z()}catch(F){if(process.emitWarning(`Deferred transcript snapshot cleanup failed: ${$e(F).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"}),y>=3)return;setTimeout(()=>se(y+1),y*100).unref?.()}},"retryDeferredTranscriptSnapshotFinalization"),ae=i(()=>{Ce=!0,bn();for(let y of _.values())y.controller.abort();_.clear();for(let y of N.values())y.controller.abort();N.clear();for(let y of q.values())y.controller.abort();q.clear(),te.clear()},"beginCloseTranscriptSnapshots");k(ae,i(async()=>{ae();let y=Promise.allSettled([...Pe]),F=!1;if(await Promise.race([y.then(()=>{F=!0}),new Promise(j=>{setTimeout(j,xR).unref?.()})]),F){z();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"}),y.then(()=>se())},"disposeTranscriptSnapshots"));let fe=i(async(y,F)=>{let j=Fn(F);for(let J=0;J<Rl;J+=1){let V=r.currentSessionCursor(y),[ie,ye,Ee]=await Promise.all([re(y,j),jn(()=>c(y),j),jn(()=>I(y),j)]),De=await jn(()=>u.read(y),j),{capture:He,revision:Me}=ie;Oe(j);let Ue=r.currentSessionCursor(y);if(!_s(V,Ue))continue;let Se=W(y,Me);if(Se===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");let ln=await he(Se,j,()=>Ns(Se,j));return{runtimeId:e.runtimeId,cursor:Ue,transcriptRevision:Me,session:v(y,He.data),transcript:ln,settings:De,runs:ye,pendingPermissions:Ee,live:r.projectSession(y)}}throw xe(`Session ${y} changed continuously while taking a snapshot`)},"captureObservationSnapshot"),Be=i(async y=>{let F=Fn(y);for(let j=0;j<Rl;j+=1){let J=r.currentSessionCursor(y.sessionId),[V,ie]=await Promise.all([O(y.sessionId,F),jn(()=>y.runId===void 0?p(y.sessionId):R(y.runId).then(Ee=>Ee===void 0?[]:[Ee]),F)]);Oe(F);let ye=r.currentSessionCursor(y.sessionId);if(_s(J,ye))return{runtimeId:e.runtimeId,cursor:ye,transcriptRevision:ew(V.transcript),runs:ie.filter(Ee=>Ee.sessionId===y.sessionId)}}throw xe(`Session ${y.sessionId} changed continuously while taking a diagnostic snapshot`)},"captureDiagnosticBoundary"),yn=i((y,F)=>x.run(y,async()=>{s();let j=await m.loadExecutable(y);try{return await f(y,"mutate",()=>F(j))}finally{ne(y)}}),"mutateActiveSession");return{async create(y={}){s(),m.assertCreate(y);let F=y.sessionId??await mo();if(l.has(F))throw Object.assign(new Error(`Session already exists: ${F}`),{code:"conflict"});l.add(F);try{if(y.sessionId!==void 0&&await t.loadSession(F)!==null)throw Object.assign(new Error(`Session already exists: ${F}`),{code:"conflict"});let j=y.projectPath?Y.resolve(y.projectPath):void 0,J=y.gitRoot?Y.resolve(y.gitRoot):j,V=Wh(y,j,J),ie={messages:[],title:y.title??"",gitRoot:J??"",...y.tag!==void 0?{tag:y.tag}:{},...V!==void 0?{runtimeInfo:V}:{},scope:"user"};r.prepareSessionJournal(F),y.sessionId===void 0?await t.storage.createGenerated(F,ie):await t.storage.save(F,ie);let ye=v(F,ie,new Date().toISOString());return r.emit("session.created",ye,{sessionId:F,runId:F}),ye}finally{l.delete(F)}},async load(y,F){s();let j=Fn(F),J=await m.loadRequired(y,Oe(j));return v(y,J)},async list(y){return s(),m.assertFilter(y),(await t.listSessions(y)).filter(m.admitsSummary).map(gm)},async status(y){s(),await m.loadRequired(y);let F=await c(y),j=Cm(F);return{sessionId:y,runtimeId:e.runtimeId,observedAt:new Date().toISOString(),phase:j?.phase??"idle",...j!==void 0?{runId:j.runId}:{}}},async transcript(y,F){s();let j=Fn(F);return structuredClone((await O(y,j)).transcript)},async transcriptPage(y,F){s();let j=Fn(F);Oe(j);let J=y.cursor===void 0?void 0:$r(y.cursor).revision;if(J!==void 0){let He=W(y.sessionId,J);if(He===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");return he(He,j,()=>Ns(He,j,y.cursor,y.limit))}let V=await re(y.sessionId,j),ye=V.capture.transcript,Ee=V.revision,De=W(y.sessionId,Ee);if(De===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");return he(De,j,()=>Ns(De,j,void 0,y.limit))},async transcriptEntryChunk(y,F){s();let j=Fn(F);Oe(j);let J=W(y.sessionId,y.revision);if(J===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");return he(J,j,()=>aw(y,J,j))},async transcriptSearch(y,F){s(),Da(y.query);let j=Fn(F),J=await re(y.sessionId,j),ie=J.capture.transcript,ye=J.revision;await sr(j);let Ee=J.lineage,De=await Ma(Ee,{query:y.query,limit:y.limit,role:y.role,scope:y.scope},{revision:ye,checkpoint(){Oe(j)},yieldControl(){return sr(j)}});Oe(j);let He=new Map;for(let Ue=0;Ue<J.transcriptEntries.length;Ue+=1){Ue%256===0&&await sr(j);let Se=J.transcriptEntries[Ue]?.entryId;Se!==void 0&&He.set(Se,Ue)}Oe(j);let Me=De.hits.flatMap(Ue=>{let Se=He.get(Ue.entryId);return Se===void 0?[]:[{...Ue,entryIndex:Se}]});return Oe(j),{revision:ye,hits:Me}},async conversation(y,F){s();let j=Fn(F),J=await O(y,j);Oe(j);let V=bo(J,()=>Oe(j));await sr(j);let ie=iw(V);Oe(j);let ye=structuredClone({...V,revision:ie});return Oe(j),ye},async conversationPage(y,F){s();let j=Fn(F);Oe(j);let J=y.limit??rm;if(!Number.isSafeInteger(J)||J<=0)throw new Error("transcript page limit must be a positive safe integer");let V=Math.min(J,im),ie=y.cursor===void 0?void 0:$r(y.cursor);if(ie===void 0||ie.kind==="conversation_cache_page")try{let Se=await t.storage.readConversationPageCache(y.sessionId,{...ie?.kind==="conversation_cache_page"?{expectedRevision:ie.revision,end:ie.end}:{},limit:V,maxPageBytes:_t,maxInlineEntryBytes:Xi,reservedBytes:0,authorize:i(ln=>m.assertCachedIdentity(y.sessionId,ln),"authorize")},Oe(j));if(Se!==null)return h(Se)}catch(Se){throw Se instanceof Io?Yi():Se instanceof mn&&Se.code==="data_changed"?xe(Se.message):Se}let ye=ie===void 0?void 0:ie.revision;if(ye!==void 0){let Se=W(y.sessionId,ye,"conversation");if(Se===void 0)throw xe("Conversation snapshot is no longer retained; request a fresh boundary");return await S(y.sessionId,Se,j),he(Se,j,()=>Bl(Se,j,y.cursor,y.limit))}let Ee=await O(y.sessionId,j);Oe(j);let De=bo(Ee,()=>Oe(j));if(Ee.transcript.lineage!==void 0)try{await t.storage.prepareConversationPageCache(y.sessionId,De,Ee.transcript.lineage,Ee.data.runtimeInfo,Ee.boundaryRevision,Ee.sourceRevisionState,Oe(j));let Se=await t.storage.readConversationPageCache(y.sessionId,{limit:V,maxPageBytes:_t,maxInlineEntryBytes:Xi,reservedBytes:0,authorize:i(ln=>m.assertCachedIdentity(y.sessionId,ln),"authorize")},Oe(j));if(Se!==null)return h(Se)}catch(Se){if(Se instanceof Io)throw Yi();if(Se instanceof mn&&Se.code==="data_changed")throw xe(Se.message);process.emitWarning(`Unable to prepare bounded Conversation pages: ${$e(Se).message}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_FAILED"})}let He={sourceRevision:De.sourceRevision,status:De.status,issues:De.issues,boundaryRevision:Ee.boundaryRevision},Me=await Z(y.sessionId,De.entries,De.sourceRevision,j,"conversation",rw(De),He),Ue=W(y.sessionId,Me,"conversation");if(Ue===void 0)throw xe("Conversation snapshot is no longer retained; request a fresh boundary");return he(Ue,j,()=>Bl(Ue,j,void 0,y.limit))},async conversationEntryChunk(y,F){s();let j=Fn(F);if(Oe(j),!Number.isSafeInteger(y.entryIndex)||y.entryIndex<0)throw new Error(`Transcript entry index is out of range: ${y.entryIndex}`);let J=W(y.sessionId,y.revision,"conversation");if(J!==void 0)return await S(y.sessionId,J,j),he(J,j,()=>dw(y,J,j));let V=0;if(y.cursor!==void 0){let ie=$r(y.cursor);if(ie.kind!=="entry"||ie.view!=="conversation"||ie.revision!==y.revision||ie.entryIndex!==y.entryIndex)throw xe("Conversation entry cursor is stale");V=ie.offset}try{let ie=await t.storage.readConversationPageCacheChunk(y.sessionId,{revision:y.revision,entryIndex:y.entryIndex,offset:V,authorize:i(ye=>m.assertCachedIdentity(y.sessionId,ye),"authorize")},Oe(j));if(ie!==null){let ye=ie.nextOffset!==void 0;return{revision:ie.revision,entryIndex:ie.entryIndex,...ie.boundaryId!==void 0?{boundaryId:ie.boundaryId}:{},encoding:"base64-json",data:ie.data.toString("base64"),hasMore:ye,...ie.nextOffset!==void 0?{nextCursor:Vi({kind:"entry",view:"conversation",revision:ie.revision,entryIndex:ie.entryIndex,offset:ie.nextOffset})}:{}}}}catch(ie){throw ie instanceof mn&&ie.code==="data_changed"?xe(ie.message):ie}throw xe("Conversation snapshot is no longer retained; request a fresh boundary")},async observe(y,F,j){s();let J=[],V,ie=!1,ye=!1,Ee=!1,De=!1,He,Me,Ue=new Promise(Ye=>{He=Ye}),Se=i((Ye,Hn)=>{ie||De||(De=!0,on.close(),Me?.close(),He?.({code:"observation_invalidated",reason:Ye,runtimeId:e.runtimeId,message:Hn}))},"invalidate"),ln=i(Ye=>{if(!(ie||De)){if(V!==void 0&&(Ye.cursor.sessionId!==V.sessionId||Ye.cursor.journalEpoch!==V.journalEpoch)){Se("runtime_changed","Session event journal changed; discard local state and resync.");return}if(V!==void 0&&Ye.seq<V.seq){if(!ye)return;Se("event_order",`Session observation event order regressed from ${V.seq} to ${Ye.seq}.`);return}if(!(V!==void 0&&Ye.seq===V.seq)){V=Ye.cursor;try{F(Ye)}catch(Hn){we({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${Ye.type}`,detail:$e(Hn)}),Se("delivery_failed",`Session observation listener failed while delivering ${Ye.type}; discard local state and resync.`)}}}},"deliver"),on=r.service.subscribe({sessionId:y},Ye=>{if(ye)ln(Ye);else{if(J.length>=bR){Ee=!0,Se("event_overflow","Session observation handoff overflowed; acquire a fresh snapshot.");return}J.push(Ye)}});Me=r.subscribeClose(()=>{Se("runtime_changed","Runtime closed; discard the observation and resync after reconnecting.")});try{let Ye=await fe(y,j);if(Ee)throw xe("Session observation handoff overflowed; acquire a fresh snapshot");V=Ye.cursor;let Hn={snapshot:Ye,invalidated:Ue,close(){ie||(ie=!0,J.length=0,on.close(),Me?.close())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(ie||De)){for(;J.length>0;){let Jr=J.splice(0).sort((Je,Tn)=>Je.seq-Tn.seq);for(let Je of Jr)ln(Je)}ye=!0}})),Hn}catch(Ye){throw ie=!0,on.close(),Me?.close(),Ye}},async diagnostics(y){s();let F=new Date().toISOString(),j=await Be(y);return hR(e,y,j,F)},async fork(y){if(s(),y.selector!==void 0&&y.historyBoundary!==void 0)throw new Error("fork accepts either selector or historyBoundary, not both");let F=await m.loadRequired(y.sessionId),j;try{j=y.historyBoundary===void 0?await t.forkSession(y.sessionId,{...y.selector!==void 0?{selector:y.selector}:{},...y.newSessionId!==void 0?{sessionId:y.newSessionId}:{},...y.title!==void 0?{title:y.title}:{}}):await t.storage.fork(y.sessionId,y.historyBoundary.entryId,{...y.newSessionId!==void 0?{sessionId:y.newSessionId}:{},...y.title!==void 0?{title:y.title}:{},historyBoundary:{sourceRevision:y.historyBoundary.sourceRevision}})}catch(V){throw em(V)}if(!j&&y.historyBoundary!==void 0)return null;if(!j){let V=y.newSessionId??await mo(),ie={...F,title:y.title??F.title,messages:F.messages.map(Sv),actorSnapshot:void 0};await t.storage.save(V,ie);let ye=v(V,ie);return r.emit("session.created",ye,{sessionId:V,runId:V}),ye}let J=v(j.sessionId,j.data);return r.emit("session.created",J,{sessionId:j.sessionId,runId:j.sessionId}),J},async getSettingsVersioned(y){return s(),await m.loadRequired(y),u.read(y)},async getSettings(y){return(await this.getSettingsVersioned(y)).value},async getAutoModeStats(y){s(),await m.loadRequired(y);let F=(await u.read(y)).value;if(vn(F.permissionMode)!=="auto")return;let j=g(y);return{engine:F.autoModeEngine??j?.engine??"llm",...F.autoModeClassifierModel!==void 0?{classifierModel:F.autoModeClassifierModel}:{},classifierHealth:j?.classifierHealth??"healthy",denials:j?.denials??Ro(),breaker:j?.breaker??yo()}},async updateSettings(y,F){return yn(y,async j=>(await u.update(y,F,void 0,J=>Bs(j,J))).value)},async updateSettingsVersioned(y,F,j){return yn(y,J=>u.update(y,F,j.expectedRevision,V=>Bs(J,V)))},async appendNotice(y){return yn(y.sessionId,async()=>{let F=await t.appendClientNotice(y.sessionId,{content:y.content,...y.source!==void 0?{source:y.source}:{}});return F&&r.emit("session.notice.appended",{sessionId:y.sessionId,entry:F},{sessionId:y.sessionId,runId:y.sessionId}),F})},async rewind(y){return yn(y.sessionId,async()=>{if(ar(y.sessionId,a),y.selector!==void 0&&y.historyBoundary!==void 0)throw new Error("rewind accepts either selector or historyBoundary, not both");let F;try{F=y.historyBoundary===void 0?await t.rewindSession(y.sessionId,{...y.selector!==void 0?{selector:y.selector}:{}}):await t.storage.rewind(y.sessionId,y.historyBoundary.entryId,{historyBoundary:{sourceRevision:y.historyBoundary.sourceRevision}})}catch(J){throw em(J)}if(!F)return null;let j=v(y.sessionId,F);return r.emit("session.rewound",{sessionId:y.sessionId,selector:y.selector,session:j},{sessionId:y.sessionId,runId:y.sessionId}),j})},async setActiveEntry(y){return yn(y.sessionId,async()=>{ar(y.sessionId,a);let F=await t.setActiveEntry(y.sessionId,y.entryId);if(!F)return null;let j=v(y.sessionId,F);return r.emit("session.active_entry.updated",{sessionId:y.sessionId,entryId:y.entryId,session:j},{sessionId:y.sessionId,runId:y.sessionId}),j})},async compact(y){return yn(y.sessionId,async F=>{ar(y.sessionId,a);let j=Date.now(),J=F.lineage?.entries.filter(ie=>ie.type==="compaction").length??0;r.emit("context.compaction.started",{meta:{contextId:y.sessionId,contextKind:"root",contextRevision:J}},{sessionId:y.sessionId,runId:y.sessionId});let V=J;try{let ie=(await u.read(y.sessionId)).value,ye=await t.compactSession(y.sessionId,{...y.provider!==void 0?{provider:y.provider}:{},...y.model!==void 0?{model:y.model}:{},...y.customInstructions!==void 0?{customInstructions:y.customInstructions}:{},...y.contextWindow!==void 0?{contextWindow:y.contextWindow}:{},...(y.triggerPercent??ie.compactionTriggerPercent)!==void 0?{triggerPercent:y.triggerPercent??ie.compactionTriggerPercent}:{},...(y.triggerTokens??ie.compactionTriggerTokens)!==void 0?{triggerTokens:y.triggerTokens??ie.compactionTriggerTokens}:{}}),Ee=await t.loadSession(y.sessionId),De=Ee?v(y.sessionId,Ee):void 0;return V=Ee?.lineage?.entries.filter(He=>He.type==="compaction").length??J,r.emit("context.compaction.finished",{contextId:y.sessionId,contextKind:"root",contextRevision:V,source:"manual",tokensBefore:ye.tokensBefore,tokensAfter:ye.tokensAfter,committed:ye.compacted,elapsedMs:Date.now()-j,beforeRevision:J,afterRevision:V,...ye.report??{},...ye.reason!==void 0?{reason:ye.reason}:{}},{sessionId:y.sessionId,runId:y.sessionId}),ye.compacted&&r.emit("session.compacted",{sessionId:y.sessionId,result:{compacted:ye.compacted,tokensBefore:ye.tokensBefore,tokensAfter:ye.tokensAfter},...De!==void 0?{session:De}:{}},{sessionId:y.sessionId,runId:y.sessionId}),{...ye,...De!==void 0?{session:De}:{}}}finally{r.emit("context.compaction.ended",{meta:{contextId:y.sessionId,contextKind:"root",contextRevision:V}},{sessionId:y.sessionId,runId:y.sessionId})}})},async archive(y){await x.run(y,async()=>{s(),await m.loadRequired(y),ar(y,a),await f(y,"archive",async F=>{if(!F)throw new Error(`Actor owner is unavailable for Session archive: ${y}`);if(!await t.storage.archiveOwned(y,F))throw new Error(`Session not found or not archived: ${y}`)}),ne(y)})},async unarchive(y){await x.run(y,async()=>{s(),await m.loadRequired(y),ar(y,a),await f(y,"unarchive",async F=>{if(!F)throw new Error(`Actor owner is unavailable for Session unarchive: ${y}`);if(!await t.storage.unarchiveOwned(y,F))throw new Error(`Session not found or not unarchived: ${y}`)}),ne(y)})},async delete(y){await x.run(y,async()=>{s(),await m.loadRequired(y),ar(y,a),await f(y,"delete",async F=>{if(!F)throw new Error(`Actor owner is unavailable for Session deletion: ${y}`);let j=(await t.listRunningSessions()).find(J=>J.sessionId===y);j&&nm(y,{error:{code:"session_running",runningProcess:{pid:j.pid,startedAt:j.startedAt}}}),r.retireSessionJournal(y);try{await t.storage.deleteOwned(y,F)}catch(J){try{r.restoreSessionJournal(y)}catch(V){throw new AggregateError([J,V],`Session deletion failed and its event journal could not be restored: ${y}`)}if(oe(J)&&(J.code==="actor_owner_conflict"||J.code==="actor_owner_unknown"))throw J;we({source:"runtime.sessions",level:"error",message:"Owned Session deletion failed.",detail:{sessionId:y,error:J}}),nm(y,{error:{code:"delete_failed"}})}}),ne(y),u.release(y),C(y)})}}}i(WR,"createRuntimeSessionService");function JR(e){let n=new Map,t=new Map,r=new Map,o=new Map,s=new Map,a=i(d=>{let b=e.runs.get(d);if(!b)throw new Error(`Runtime run not found: ${d}`);return b},"getRecord"),u=i(async(d,b)=>{if(Ne(d.status.phase)||b?.ownedByRuntime===!0)return d.status;let B=d.owner??b?.observedOwner,E=b===void 0?d.status:un(b);if(B===void 0)return{...E,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let A=await br(B);if(A==="alive")return d.status;if(A==="unknown")return{...E,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let H=mm(d.status,e.bus,e.persistence);return e.runs.set(H.runId,Lr(H,!1,B)),H},"observePersistedRun"),c=i(async(d,b)=>{if(b?.ownedByRuntime===!0)return un(b);if(Ne(d.status.phase))return d.status;let B=d.owner??b?.observedOwner,E=b===void 0?d.status:un(b);if(B===void 0)return{...E,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let A=await br(B);return A==="alive"?d.status:{...E,phase:"unknown",stage:"unknown",error:A==="dead"?"owner_recovery_required":"owner_liveness_unconfirmed"}},"inspectPersistedRun"),p=i(d=>{n.get(d.sessionId)===d.runId&&n.delete(d.sessionId)},"releaseActiveRun"),R=i(d=>{t.get(d.runId)?.(),t.delete(d.runId)},"releaseActiveQueueRoute"),I=i(d=>{d.releaseAbortSignalSubscription?.(),d.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),g=i(d=>{d.actorSession===void 0||t.has(d.runId)||t.set(d.runId,ya(io(d.sessionId,"/root")))},"registerActiveQueueRoute"),x=i((d,b)=>{d.start?.resolve(b),d.start=void 0,delete d.providerCredential},"resolveRunStart"),f=i((d,b)=>(d.settlementFinished===!0&&d.unconfirmedResult===void 0||(d.settlementFinished=!0,delete d.unconfirmedResult,delete d.unconfirmedFailure,I(d),e.permissions.rejectForRun(d.runId,"runtime run ended"),e.userInputs.rejectForRun(d.runId,"runtime run ended"),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),x(d,b),R(d),p(d),Xw(e.runs),Fe(d.sessionId)),b),"finishRun"),C=i((d,b)=>d.settlementFinished===!0?(b.phase==="unknown"&&b.result!==void 0&&(d.unconfirmedResult=b),b):(d.settlementFinished=!0,d.unconfirmedResult=b,b.phase==="unknown"&&d.phase!=="unknown"&&(d.phase="unknown",d.stage="unknown",d.stageChangedAt=new Date().toISOString(),d.error=b.error?.message??"Actor settlement persistence is unknown.",je(d)),I(d),e.permissions.rejectForRun(d.runId,"runtime run state is unknown"),e.userInputs.rejectForRun(d.runId,"runtime run state is unknown"),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),x(d,b),R(d),b),"finishUnconfirmedRun"),m=i(d=>{let b=d.actorSession,B=d.actorTurnBaseline;return b===void 0||B===void 0?[]:b.rootControl().list().actors.flatMap(E=>E.path!=="/root"&&E.currentTurnId!==void 0&&!B.has(E.currentTurnId)?[E.currentTurnId]:[])},"activeManagedActorTurnIds"),k=i((d,b)=>{let B=d.actorSession,E=d.actorTurnBaseline;if(B===void 0||E===void 0)return Promise.resolve({});let H=(d.actorCancellation??Promise.resolve()).then(()=>B.quiesce(b,E)).then(()=>({})).catch(X=>{let ee=$e(X);return we({source:"runtime.run.actor-cancellation",level:"error",message:`Failed to cooperatively cancel Actor descendants for Runtime run ${d.runId}.`,detail:ee}),{error:ee}});return d.actorCancellation=H.then(()=>{}),H},"requestManagedActorCancellation"),l=i(d=>d.actorDurabilityFailure!==void 0&&d.actorDurabilityPreservesExecutorFact!==!0,"actorDurabilityFailureApplies"),v=i(d=>d.capturedExecutorResult!==void 0||d.capturedExecutorFailure!==void 0,"executorPromiseSettled"),h=i(async(d,b)=>{let B=TR;for(;;){let E=await k(d,b);if(e.isClosed()||d.terminalEmitted||d.actorDurabilityFailure===void 0||d.actorSession?.health().state==="healthy"||E.error?.name==="AgentOwnerConflictError"||E.error?.name==="AgentSettlementPersistenceError")return;await new Promise(A=>{setTimeout(A,B).unref?.()}),B=Math.min(B*2,DR)}},"recoverActorDurability");e.setActorSettlementFenceHandler((d,b)=>{if(d.phase==="queued"||d.actorDurabilityFailure!==void 0||d.terminalEmitted)return;let B=b.message??"Actor settlement persistence is unknown; Runtime stopped the owning Run.",E=new Error(B);E.name="AgentSettlementPersistenceError",d.actorDurabilityFailure={phase:"failed",error:E,terminal:{code:"actor_settlement_not_persisted",effectOutcome:"unknown",message:B}},d.actorDurabilityPreservesExecutorFact=d.capturedExecutorResult!==void 0||d.capturedExecutorFailure!==void 0,d.interruptInputOpen=!1,qi(d),I(d),d.running?.abort(E),d.abortController?.abort(E),e.permissions.rejectForRun(d.runId,B),e.userInputs.rejectForRun(d.runId,B),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls();let A=h(d,B);d.actorDurabilityRecovery=A,A.then(()=>{d.actorDurabilityRecovery===A&&(d.actorDurabilityRecovery=void 0),d.actorSession?.health().state==="healthy"&&Pe(d)})});let P=i(async d=>{let b=d.actorFinalizationAbortController??=new AbortController,B=i(()=>({state:"unknown",code:"actor_settlement_not_persisted",message:"Actor finalization could not be confirmed within the bounded grace period."}),"finalizationTimedOut"),E=new AbortController,A,H=Number.POSITIVE_INFINITY,X,ee=new Promise(le=>{X=le}),ge=i(le=>{let G=Date.now()+le;G>=H||(A!==void 0&&clearTimeout(A),H=G,A=setTimeout(()=>{E.abort(new Error("Actor finalization grace expired")),X?.(B())},le),A.unref?.())},"scheduleFinalizationTimer"),D=i(()=>{ge(CR)},"startCancellationTimer");ge(AR),b.signal.addEventListener("abort",D,{once:!0}),(b.signal.aborted||d.stop!==void 0||e.isClosed()||d.running?.aborted===!0||d.abortController?.signal.aborted===!0||d.start?.options.abortSignal?.aborted===!0)&&D();let U=i(async()=>{for(;;){if(E.signal.aborted)return B();let le=d.actorSession;if(le===void 0)return{state:"healthy"};if(d.stop!==void 0&&d.actorTurnBaseline!==void 0&&(await k(d,d.stop.reason),E.signal.aborted))return B();let G=le.health();if(G.state==="recovering"){let re=e.waitForActorHealthChange(d.sessionId),ne,z=new Promise(ae=>{ne=ae}),se=i(()=>ne?.(),"handleFinalizationAbort");E.signal.addEventListener("abort",se,{once:!0});try{await Promise.race([re.promise,z])}finally{E.signal.removeEventListener("abort",se),ne=void 0,re.close()}continue}if(G.state==="unknown"&&d.actorDurabilityRecovery!==void 0){await d.actorDurabilityRecovery;continue}if(G.state==="unknown")return G;let he=le.rootControl(),S=he.list(),M=d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length:S.activeNonRootTurns;if(M>0){if(d.stop?.state!=="unknown"){let me=d.phase!=="waiting_agent",fe=d.activeSubtaskCount!==M;me&&(d.phase="waiting_agent",d.stage="waiting_agent",d.stageChangedAt=new Date().toISOString()),d.activeSubtaskCount=M,(me||fe)&&je(d)}let re=he.eventSnapshot().at(-1)?.sequence??0;if(d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length===0:he.list().activeNonRootTurns===0)continue;let ne=e.waitForActorHealthChange(d.sessionId),z,se=new Promise(me=>{z=me}),ae=i(()=>z?.(),"handleCancellation");b.signal.aborted?ae():b.signal.addEventListener("abort",ae,{once:!0});try{await Promise.race([he.wait(re,void 0,E.signal),ne.promise,se])}finally{b.signal.removeEventListener("abort",ae),z=void 0,ne.close()}continue}let O=S.admissionRevision;await Promise.resolve();let K=le.health();if(K.state==="recovering")continue;let W=he.list();if(!((d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length:W.activeNonRootTurns)>0)&&!(O!==void 0&&W.admissionRevision!==O))return K}},"finalize");try{return await Promise.race([U(),ee])}finally{b.signal.removeEventListener("abort",D),A!==void 0&&clearTimeout(A),E.abort()}},"awaitActorFinalization"),T=i((d,b)=>({runId:d.runId,sessionId:d.sessionId,phase:"unknown",...b!==void 0?{result:b}:{},error:new Error(d.lifecycleError?.message??d.error??"Actor settlement persistence is unknown."),...d.stop!==void 0?{stop:d.stop}:{}}),"unknownActorSettlementResult"),_=i((d,b)=>d.terminalEmitted?f(d,b):C(d,b),"finishAccordingToTerminalFact"),N=i((d,b,B)=>{d.terminalEmitted||d.executorTerminalSignal!==void 0||(d.interruptInputOpen=!1,d.executorTerminalSignal={signal:b,...B!==void 0?{error:B}:{},...b==="failed"?{failure:q(d,B??new Error("Runtime executor reported failure"))}:{},interruptedAtSignal:d.running?.aborted===!0||d.start?.options.abortSignal?.aborted===!0||d.abortController?.signal.aborted===!0},setImmediate(()=>{(async()=>{if(d.settlementFinished===!0)return;let E=d.executorTerminalSignal;if(E===void 0)return;if((await P(d)).state==="unknown"){C(d,T(d));return}if(l(d)){if(!v(d))return;f(d,te(d,d.actorDurabilityFailure));return}if(E.signal==="failed"){f(d,te(d,E.failure??q(d,E.error??new Error("Runtime executor reported failure"))));return}d.terminalEmitted||xt(e.bus,e.persistence,d,E.interruptedAtSignal?"interrupted":"completed"),f(d,{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}})})().catch(E=>{we({source:"runtime.run.finalization",level:"error",message:`Failed to settle Runtime run ${d.runId} after its executor terminal signal.`,detail:E})})}))},"settleFromExecutorSignal"),q=i((d,b)=>{if(l(d))return d.actorDurabilityFailure;if(d.mode==="managed_task"&&d.stop!==void 0&&d.abortController?.signal.aborted===!0&&b instanceof Error&&b.name==="AbortError")return{phase:"interrupted",terminal:{code:"interrupted",effectOutcome:"unknown",message:d.stop.reason}};let E=Am(b,d),A=Vw(b),H=new Error(E.message);return H.name=E.name,{phase:A.phase,error:H,terminal:A.terminal}},"captureRunFailureFact"),te=i((d,b)=>{let B=d.terminalEmitted?d.phase:b.phase;return d.terminalEmitted||(b.error===void 0?delete d.error:d.error=b.error.message),xt(e.bus,e.persistence,d,B,b.terminal),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...b.error!==void 0?{error:b.error}:{},...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}}},"applyRunFailureFact"),de=i((d,b)=>te(d,q(d,b)),"failedRunResult"),Ie=i(d=>{let b=d.actorSession;return b===void 0||b.health().state==="healthy"&&(d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length===0:b.rootControl().list().activeNonRootTurns===0)},"canApplyExecutorTerminalSignal"),Te=i((d,b,B)=>{if(l(d)&&v(d)&&Ie(d))return te(d,d.actorDurabilityFailure);let E=d.executorTerminalSignal;if(E!==void 0&&(d.actorDurabilityFailure===void 0||v(d))&&!d.terminalEmitted&&Ie(d))return E.signal==="failed"?te(d,E.failure??q(d,E.error??new Error("Runtime executor reported failure"))):(xt(e.bus,e.persistence,d,E.interruptedAtSignal?"interrupted":"completed"),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}});if(E!==void 0&&d.terminalEmitted)return{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}};let A=d.phase==="queued";A&&Il(s,d),delete d.actorHealthBaseState;let H=new Date().toISOString();if(d.stop??={requestedAt:H,state:A?"confirmed":"unknown",outcome:A?"cancelled":"unknown",reason:b,...A?{resolvedAt:H}:{}},I(d),d.running?.abort(new Error(b)),d.abortController?.abort(new Error(b)),k(d,b),d.actorFinalizationAbortController?.abort(new Error(b)),e.permissions.rejectForRun(d.runId,b),e.userInputs.rejectForRun(d.runId,b),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),!A){d.interruptInputOpen=!1,qi(d),d.phase="unknown",d.stage="unknown",d.stageChangedAt=H,d.error="stop_outcome_unconfirmed",d.lifecycleError?.retryable!==!1&&delete d.lifecycleError,je(d);let ee={runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.stop!==void 0?{stop:d.stop}:{}},ge=l(d)&&!v(d);return!B&&!ge&&(x(d,ee),R(d),p(d)),ee}xt(e.bus,e.persistence,d,"cancelled",{code:"cancelled",effectOutcome:"none",message:b});let X={runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.stop!==void 0?{stop:d.stop}:{}};return x(d,X),R(d),p(d),B&&!e.isClosed()&&Fe(d.sessionId),X},"cancelRun"),Pe=i(d=>{let b=d.unconfirmedResult;if(d.terminalEmitted||!Ie(d))return;if(l(d)){if((d.activeEffectCount??0)>0){d.finishAfterEffectDrain=()=>Pe(d);return}d.finishAfterEffectDrain=void 0,f(d,te(d,d.actorDurabilityFailure));return}let B=d.capturedExecutorResult??b?.result;if(B!==void 0){let A=B.interrupted?"interrupted":B.success?"completed":"failed",H=!B.success&&!B.interrupted&&B.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...B.signalReason!==void 0?{message:B.signalReason}:{}}:void 0;xt(e.bus,e.persistence,d,A,H),f(d,{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:B,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}});return}let E=d.capturedExecutorFailure??d.unconfirmedFailure;if(E!==void 0){f(d,te(d,E));return}d.executorTerminalSignal!==void 0&&f(d,Te(d,d.stop?.reason??"runtime run recovered",!1))},"finishRecoveredUnconfirmedRun"),be=i(d=>{if(!d.start||e.isClosed()){Te(d,"runtime closed",!1);return}d.phase="running",d.stage="executing",d.stageChangedAt=new Date().toISOString(),delete d.activeSubtaskCount,d.interruptInputOpen=d.actorSession!==void 0,d.queuedAt=void 0,d.runningAt=new Date().toISOString(),d.actorSession!==void 0&&(d.actorTurnBaseline=new Set(d.actorSession.rootControl().list().actors.flatMap(D=>D.currentTurnId===void 0?[]:[D.currentTurnId]))),n.set(d.sessionId,d.runId);let b=un(d),B=nt(e.bus,e.persistence,d,b);if(B===void 0)throw p(d),new Error(`Failed to persist running Runtime run: ${d.runId}`);if(B!==b)throw At(d,B),p(d),Zn(`Runtime run already exists: ${d.runId}`,d.sessionOrder);e.bus.emit("run.started",b,{sessionId:d.sessionId,runId:d.runId});let E=Uh({bus:e.bus,original:d.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:d,onExecutorTerminal:i((D,U)=>N(d,D,U),"onExecutorTerminal"),onPhase:i(D=>{if(d.terminalEmitted||d.executorTerminalSignal!==void 0||d.phase==="unknown"||d.stop?.state==="unknown")return;let U=D==="running"?"executing":D==="waiting_agent"?"waiting_agent":D==="recovering"?"recovering":void 0,le=d.actorHealthBaseState;if(le!==void 0){le.phase=D,U!==void 0&&(le.stage=U);return}d.phase===D&&(U===void 0||d.stage===U)||(d.phase=D,U!==void 0&&d.stage!==U&&(d.stage=U,d.stageChangedAt=new Date().toISOString()),je(d))},"onPhase"),onStage:i((D,U)=>{if(d.terminalEmitted||d.executorTerminalSignal!==void 0||d.phase==="unknown"||d.stop?.state==="unknown")return;let le=d.actorHealthBaseState;if(le!==void 0){le.stage=D,U===void 0?delete d.activeSubtaskCount:d.activeSubtaskCount=U;return}let G=d.activeSubtaskCount!==U;d.stage===D&&!G||(d.stage!==D&&(d.stage=D,d.stageChangedAt=new Date().toISOString()),U===void 0?delete d.activeSubtaskCount:d.activeSubtaskCount=U,je(d))},"onStage"),onMidTurnUserMessages:i((D,U)=>Ge(d,D,U),"onMidTurnUserMessages")}),A=ZR({agentPlane:e.agentPlane,defaultConfigHome:e.defaultConfigHome,events:E,model:d.model,options:d.start.options,provider:d.provider,record:d,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:d.sessionId,runId:d.runId,provider:d.provider,...d.model!==void 0?{model:d.model}:{},...A.effort!==void 0?{effort:A.effort}:{},...A.thinking!==void 0?{thinking:A.thinking}:{},...A.reasoningMode!==void 0?{reasoningMode:A.reasoningMode}:{},...A.agentMode!==void 0?{agentMode:A.agentMode}:{},...d.permissionMode!==void 0?{permissionMode:d.permissionMode}:{},...d.autoModeEngine!==void 0?{autoModeEngine:d.autoModeEngine}:{},...d.autoModeClassifierModel!==void 0?{autoModeClassifierModel:d.autoModeClassifierModel}:{},...d.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:d.autoModeTimeoutMs}:{},...d.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:d.autoModeSpeculativeWindowMs}:{},...A.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:A.compaction.triggerPercent}:{},...A.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:A.compaction.triggerTokens}:{},...A.context?.executionCwd!==void 0?{executionCwd:A.context.executionCwd}:{},...A.context?.shellExecution!==void 0?{shellKind:A.context.shellExecution.shell.kind,shellExecutionFingerprint:fo(A.context.shellExecution)}:{}},{sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}}),d.mode==="managed_task"){let D=new AbortController;d.abortController=D;let U=A.abortSignal,le=i(()=>{d.releaseAbortSignalSubscription=void 0,d.interruptInputOpen=!1;let S=U?.reason;Te(d,S instanceof Error?S.message:typeof S=="string"&&S.trim().length>0?S:"external abort requested",!0)},"handleUpstreamAbort");U?.aborted&&le();let G=i(()=>Ya({...A,abortSignal:D.signal},d.start.prompt),"managedOperation"),he=d.providerCredential!==void 0?eo(d.provider,d.providerCredential,G):G();U!==void 0&&!U.aborted?(U.addEventListener("abort",le,{once:!0}),d.releaseAbortSignalSubscription=()=>{U.removeEventListener("abort",le)}):U?.aborted&&!D.signal.aborted&&le(),g(d),he.then(async S=>{d.capturedExecutorResult=S;let M=d.terminalEmitted?d.phase:S.interrupted?"interrupted":S.success?"completed":"failed",O=!S.success&&!S.interrupted&&S.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...S.signalReason!==void 0?{message:S.signalReason}:{}}:void 0;return(await P(d)).state==="unknown"?T(d,S):l(d)?te(d,d.actorDurabilityFailure):(xt(e.bus,e.persistence,d,M,O),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:S,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}})}).catch(async S=>{let M=q(d,S);return d.capturedExecutorFailure=M,(await P(d)).state==="unknown"?(d.unconfirmedFailure=M,T(d)):te(d,M)}).then(S=>_(d,S));return}let H=i(()=>Ga(A,d.start.prompt),"codingOperation"),X=d.providerCredential!==void 0?eo(d.provider,d.providerCredential,H):H();d.running=X;let ee=A.abortSignal,ge=i(()=>{d.releaseAbortSignalSubscription=void 0,d.interruptInputOpen=!1;let D=ee?.reason;Te(d,D instanceof Error?D.message:typeof D=="string"&&D.trim().length>0?D:"external abort requested",!0)},"handleUpstreamAbort");ee?.aborted?ge():ee!==void 0&&(ee.addEventListener("abort",ge,{once:!0}),d.releaseAbortSignalSubscription=()=>{ee.removeEventListener("abort",ge)}),g(d),X.result.then(async D=>{d.capturedExecutorResult=D;let U=d.terminalEmitted?d.phase:D.interrupted?"interrupted":D.success?"completed":"failed";return(await P(d)).state==="unknown"?T(d,D):l(d)?te(d,d.actorDurabilityFailure):(xt(e.bus,e.persistence,d,U),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:D,...d.stop!==void 0?{stop:d.stop}:{}})}).catch(async D=>{let U=q(d,D);return d.capturedExecutorFailure=U,(await P(d)).state==="unknown"?(d.unconfirmedFailure=U,T(d)):te(d,U)}).then(D=>_(d,D))},"launchRecord"),ve=i(d=>{try{be(d);return}catch(b){let B=q(d,b);return d.capturedExecutorFailure=B,P(d).then(E=>{if(E.state==="unknown"){d.unconfirmedFailure=B,C(d,T(d));return}f(d,te(d,B))}),{error:b}}},"startRecord"),Fe=i(d=>{let b=s.get(d);if(!b||b.length===0||n.has(d))return;let B=b.shift();if(b.length===0&&s.delete(d),!B)return;let E=e.runs.get(B);if(!E||E.phase!=="queued"){Fe(d);return}if(E.inheritModeAfterDurabilityRepair===!0){let A=E.continuation===void 0?void 0:e.runs.get(E.continuation.afterRunId);A?.actorDurabilityFailure!==void 0&&(E.mode=A.mode,je(E))}ve(E)},"drainNext"),Ce=i(d=>{let b=un(d),B=nt(e.bus,e.persistence,d,b);if(B===void 0)throw new Error(`Failed to persist queued Runtime run: ${d.runId}`);if(B!==b)throw At(d,B),Zn(`Runtime run already exists: ${d.runId}`,d.sessionOrder);let E=s.get(d.sessionId)??[];E.push(d.runId),s.set(d.sessionId,E),e.bus.emit("run.queued",b,{sessionId:d.sessionId,runId:d.runId})},"enqueue"),je=i(d=>{let b=un(d),B=nt(e.bus,e.persistence,d,b);if(B!==void 0){if(B!==b){At(d,B);return}e.bus.emit("run.updated",b,{sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}})}},"publishRunUpdate"),Ge=i((d,b,B)=>{let E=new Map;for(let D of d.interruptInputs)D.state==="queued"&&D.queueMessageId!==void 0&&E.set(D.queueMessageId,D);let A=[],H=new Set;for(let D of b){if(H.has(D))continue;H.add(D);let U=E.get(D);U!==void 0&&A.push(U)}if(A.length===0)return;let X=new Date().toISOString(),ee=A.map(D=>{if(D.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${D.inputId}`);let U=D.queueMessageId===void 0?void 0:B?.[D.queueMessageId];if(typeof U!="string"||U.length===0)throw new Error(`Runtime interrupt input is missing its canonical entry reference: ${D.inputId}`);let le={inputId:D.inputId,afterRunId:D.afterRunId,input:D.input,queuedAt:D.queuedAt,deliveredAt:X,entryId:U,...D.origin!==void 0?{origin:D.origin}:{}};return{record:D,entryId:U,eventInput:le}}),ge={sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:ee.map(D=>D.eventInput)},ge,()=>{for(let D of ee)D.record.state="delivered",D.record.deliveredAt=X,D.record.entryId=D.entryId,delete D.record.queueMessageId})}catch(D){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${$e(D).message}`,inputIds:A.map(U=>U.inputId)},ge),D}je(d)},"deliverInterruptInputs"),cn=e.settingsOwner.subscribe((d,b)=>{for(let B of e.runs.values())B.sessionId!==d||B.phase!=="queued"&&!An(B.phase)||(B.permissionMode=b.value.permissionMode,B.autoModeEngine=vn(b.value.permissionMode)==="auto"?b.value.autoModeEngine??"llm":b.value.autoModeEngine,B.autoModeClassifierModel=b.value.autoModeClassifierModel,B.autoModeTimeoutMs=b.value.autoModeTimeoutMs,B.autoModeSpeculativeWindowMs=b.value.autoModeSpeculativeWindowMs,je(B))}),an=i(async(d,b=!1)=>{let B=d.admittedSessionContext;if(d.ownedByRuntime&&B!==void 0&&(b||!Ne(d.phase))){e.sessionAdmission.assertCachedIdentity(d.sessionId,{surface:B.runtimeInfo?.surface,profileId:B.runtimeInfo?.profileId});return}await e.sessionAdmission.assertRunAccess(d.sessionId)},"assertRunRecordAccess"),bn=i((d,b)=>{if(d.sessionId!==b)throw new Error(`Runtime continuation target ${d.runId} does not belong to session ${b}`);let B=d.phase==="unknown"&&d.actorDurabilityFailure!==void 0&&!d.terminalEmitted;if(!An(d.phase)&&d.phase!=="queued"&&!B)throw new Fr(d.runId)},"assertContinuationTarget"),rn=i(async(d,b)=>{e.ensureOpen();let B=d,E=B.requiredAfterRunId,A=E===void 0?void 0:a(E);A!==void 0&&(bn(A,d.sessionId),await an(A));let H=$l(d,e.artifacts,b),X=A?.admittedSessionContext;if(A!==void 0&&X===void 0)throw new Fr(A.runId);if(X===void 0){let ae=await e.sessionAdmission.loadExecutable(d.sessionId);X={gitRoot:ae.gitRoot,...ae.runtimeInfo!==void 0?{runtimeInfo:structuredClone(ae.runtimeInfo)}:{}}}let ee=(await e.settingsOwner.read(d.sessionId)).value;Bs(X,ee);let ge=Gh(d.options??{},ee,H.inputArtifacts,X),D=await e.actorRegistry.forSession(d.sessionId,ge.maxConcurrentThreadsPerSession),U=ge.agentMode==="sa"?void 0:D,le=A?.phase==="unknown"&&A.actorDurabilityFailure!==void 0&&!A.terminalEmitted;if(U!==void 0){let ae=U.health(),me=ae.state==="recovering"?await e.waitForActorHealthResolution(d.sessionId,ae):ae;if(me.state==="unknown"&&!le)throw Object.assign(new Error(me.message??"Actor settlement persistence is unknown; the Session cannot start another Run."),{code:me.code??"actor_settlement_not_persisted",retryable:!1})}let G=ge.provider??e.defaultProvider;if(!G)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");if(B.providerCredential!==void 0&&B.providerCredentialProvider!==void 0&&B.providerCredentialProvider!==G)throw hv(`Credential lease is bound to ${B.providerCredentialProvider}, not ${G}.`);let he=ge.modelOverride??ge.model??e.defaultModel??da(G)[0]?.id,S=d.trustedRunId??$w();if(e.runs.has(S))throw Zn(`Runtime run already exists: ${S}`,0);let M=e.enableSharedInteractions||vn(ee.permissionMode)==="auto";if(yw(ee,he),M&&ge.guardrails?.some(ae=>ae.kind==="tool"&&ae.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let O=M?av({sessionId:d.sessionId,provider:G,model:he,options:ge,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let ae=n.get(d.sessionId);return ae===void 0?void 0:e.runs.get(ae)},"getRecord"),onPhase:i((ae,me)=>{ae.terminalEmitted||ae.executorTerminalSignal!==void 0||ae.phase==="unknown"||ae.stop?.state==="unknown"||ae.phase===me||(ae.phase=me,je(ae))},"onPhase"),onEngineChange:i(ae=>{for(let me of e.runs.values())me.sessionId===d.sessionId&&(me.phase==="queued"||An(me.phase))&&me.autoModeEngine!==ae&&(me.autoModeEngine=ae,je(me));e.settingsOwner.persistAutoModeEngine(d.sessionId,ae).catch(me=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${$e(me).message}`},{sessionId:d.sessionId,runId:d.sessionId})})},"onEngineChange")}):void 0;await O?.prepare?.();let K=O===void 0?ge:{...ge,guardrails:[...ge.guardrails??[],O]},W=new Date().toISOString(),Z=i(()=>{},"resolveResult"),re=new Promise(ae=>{Z=ae});A!==void 0&&bn(A,d.sessionId);let ne=e.persistence.nextSessionOrder(d.sessionId),z=A!==void 0||n.has(d.sessionId),se={runId:S,sessionId:d.sessionId,phase:z?"queued":"running",stage:z?"queued":"executing",stageChangedAt:W,startedAt:W,sessionOrder:ne,...z?{queuedAt:W}:{},provider:G,...he!==void 0?{model:he}:{},...d.permissionBroker!==void 0?{permissionBroker:d.permissionBroker}:{},...ee.permissionMode!==void 0?{permissionMode:ee.permissionMode}:{},...ee.autoModeClassifierModel!==void 0?{autoModeClassifierModel:ee.autoModeClassifierModel}:{},...ee.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:ee.autoModeTimeoutMs}:{},...ee.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:ee.autoModeSpeculativeWindowMs}:{},...vn(ee.permissionMode)==="auto"?{autoModeEngine:ee.autoModeEngine??"llm"}:ee.autoModeEngine!==void 0?{autoModeEngine:ee.autoModeEngine}:{},...ge.reasoningMode!==void 0?{reasoning:ge.reasoningMode}:{},mode:d.mode??(le?A?.mode:void 0)??"coding",...A!==void 0&&d.mode===void 0?{inheritModeAfterDurabilityRepair:!0}:{},...d.providerCredential!==void 0?{providerCredential:d.providerCredential}:{},hadProviderCredential:d.providerCredential!==void 0,...d.origin!==void 0?{origin:d.origin}:{},...E!==void 0?{continuation:{inputId:S,afterRunId:E,delivery:"after_turn",contentPreview:Kl(H.prompt)}}:{},interruptInputs:[],...d.agentContext??e.defaultAgentContext?{agentContext:d.agentContext??e.defaultAgentContext}:{},...U?{actorSession:U}:{},admittedSessionContext:X,interruptInputOpen:!1,result:re,start:{prompt:H.prompt,inputArtifacts:H.inputArtifacts,options:K,resolve:Z},terminalEmitted:!1,ownedByRuntime:!0};if(e.runs.set(S,se),z)Ce(se);else{let ae=ve(se);if(ae!==void 0)throw ae.error}return{runId:S,sessionId:d.sessionId,get turnId(){return se.turnId},result:re}},"startRun"),nn=i((d,b="runtime.runs.start")=>e.sessionOperations.run(d.sessionId,()=>rn(d,b)),"start");return{start:nn,async submitInput(d){e.ensureOpen();let b=a(d.afterRunId);if(b.sessionId!==d.sessionId)throw new Error(`Runtime continuation target ${d.afterRunId} does not belong to session ${d.sessionId}`);if(await an(b,!0),d.delivery==="interrupt"){if(b.actorSession===void 0&&An(b.phase)&&n.get(d.sessionId)===b.runId)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"unsupported_capability"};if(!b.interruptInputOpen)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"interrupt_window_closed"};if(!An(b.phase)||n.get(d.sessionId)!==b.runId)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"};if(d.credential!==void 0||d.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let X=$l({sessionId:d.sessionId,input:d.input},e.artifacts,"runtime.runs.submitInput"),ee=structuredClone(d.input),ge=d,D=ge.trustedInputId??qw();if(b.interruptInputs.some(he=>he.inputId===D))throw Zn(`Runtime interrupt input already exists: ${D}`,0);let U=Ra({sessionId:d.sessionId,content:X.prompt,inputArtifacts:X.inputArtifacts,provider:b.provider,...b.model!==void 0?{model:b.model}:{}}),le=new Date().toISOString(),G={inputId:D,afterRunId:d.afterRunId,delivery:"interrupt",state:"queued",contentPreview:Kl(X.prompt),queuedAt:le,...ge.origin!==void 0?{origin:ge.origin}:{},input:ee,queueMessageId:U};return b.interruptInputs.push(G),je(b),e.bus.emit("run.input.queued",{input:Pm(G)},{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:D,runId:b.runId,sessionId:d.sessionId,afterRunId:d.afterRunId,sessionOrder:b.sessionOrder}}let B=b.phase==="unknown"&&b.actorDurabilityFailure!==void 0&&!b.terminalEmitted;if(!An(b.phase)&&b.phase!=="queued"&&!B)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"};let E=d,A;try{A=await nn({sessionId:d.sessionId,input:d.input,...E.options!==void 0?{options:E.options}:{},...E.providerCredential!==void 0?{providerCredential:E.providerCredential}:{},...E.providerCredentialProvider!==void 0?{providerCredentialProvider:E.providerCredentialProvider}:{},...E.origin!==void 0?{origin:E.origin}:{},...E.trustedRunId!==void 0?{trustedRunId:E.trustedRunId}:{},requiredAfterRunId:d.afterRunId},"runtime.runs.submitInput")}catch(X){if(!(X instanceof Fr))throw X;return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"}}let H=a(A.runId).sessionOrder;return{accepted:!0,delivery:d.delivery,runId:A.runId,sessionId:d.sessionId,afterRunId:d.afterRunId,sessionOrder:H}},async await(d){e.ensureOpen();let b=e.runs.get(d);if(b?.ownedByRuntime===!0)return await an(b),b.result;let B=e.persistence.loadRunStatus(d);if(B)return await e.sessionAdmission.assertRunAccess(B.status.sessionId),xm(await u(B,e.runs.get(d)));if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),b.result;throw new Error(`Runtime run not found: ${d}`)},async get(d){e.ensureOpen();let b=e.runs.get(d),B=e.persistence.loadRunStatus(d);if(B&&(b!==void 0?await an(b):await e.sessionAdmission.assertRunAccess(B.status.sessionId),b===void 0||!b.ownedByRuntime||Ne(B.status.phase)))return u(B,b);if(b)return await an(b),un(b);throw new Error(`Runtime run not found: ${d}`)},async list(d){e.ensureOpen(),d?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(d.sessionId);let b=e.persistence.loadRunStatuses(),B=await Promise.all(b.map(H=>u(H,e.runs.get(H.status.runId)))),E=new Map(B.map(H=>[H.runId,H]));for(let H of e.runs.values()){let X=E.get(H.runId);!H.ownedByRuntime||X!==void 0&&Ne(X.phase)||E.set(H.runId,un(H))}let A=[...E.values()].filter(H=>zl(H,d));return ql(Jl(Wl(A)),e.sessionAdmission)},async inspect(d){e.ensureOpen(),d?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(d.sessionId);let b=e.persistence.loadRunStatuses(),B=await Promise.all(b.map(H=>c(H,e.runs.get(H.status.runId)))),E=new Map(B.map(H=>[H.runId,H]));for(let H of e.runs.values())!H.ownedByRuntime||Ne(H.phase)||E.set(H.runId,un(H));let A=[...E.values()].filter(H=>zl(H,d));return ql(Jl(Wl(A)),e.sessionAdmission)},async inspectOne(d){e.ensureOpen();let b=e.runs.get(d),B=e.persistence.loadRunStatus(d);if(B!==void 0)return await e.sessionAdmission.assertRunAccess(B.status.sessionId),c(B,b);if(b!==void 0)return await e.sessionAdmission.assertRunAccess(b.sessionId),un(b)},async abort(d){e.ensureOpen();let b=e.runs.get(d),B=e.persistence.loadRunStatus(d),E=b?.sessionId??B?.status.sessionId;if(E===void 0)throw new Error(`Runtime run not found: ${d}`);if(await e.sessionAdmission.assertRunAccess(E),b!==void 0&&ji(b,e.runOwner),b?.terminalEmitted===!0&&B?.owner?.ownerId===e.runOwner.ownerId)return Fi({accepted:!1,effectDeliveryAllowed:!1,status:un(b),revision:B.revision});if(b?.executorTerminalSignal!==void 0&&!b.terminalEmitted&&Ie(b)){Te(b,"runtime run aborted",!1);let X=e.persistence.loadRunStatus(d);return Fi({accepted:!1,effectDeliveryAllowed:!1,status:X?.status??un(b),revision:X?.revision??0})}let A=e.persistence.requestRunStop(d,"runtime run aborted",b?.ownedByRuntime===!0?e.runOwner.ownerId:void 0);if(b===void 0)return Fi(A);if(At(b,A.status),A.status.stop!==void 0&&b.actorFinalizationAbortController?.abort(new Error("runtime run aborted")),A.status.stop?.state==="unknown"&&delete b.actorHealthBaseState,A.accepted||A.effectDeliveryAllowed){let X=A.status.phase==="cancelled";if(X&&Il(s,b),I(b),b.running?.abort(new Error("runtime run aborted")),b.abortController?.abort(new Error("runtime run aborted")),k(b,"runtime run aborted").then(ge=>{ge.error===void 0&&Pe(b)}),e.permissions.rejectForRun(b.runId,"runtime run aborted"),e.userInputs.rejectForRun(b.runId,"runtime run aborted"),b.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),b.interruptInputOpen=!1,qi(b),A.accepted&&X){e.bus.emit("run.cancelled",A.status,{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}});let ge={runId:b.runId,sessionId:b.sessionId,phase:b.phase,...b.terminal!==void 0?{terminal:b.terminal}:{},...b.stop!==void 0?{stop:b.stop}:{}};x(b,ge),R(b),p(b),e.isClosed()||Fe(b.sessionId)}else A.accepted&&e.bus.emit("run.updated",A.status,{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}})}return Fi(A)},async setModel(d,b){e.ensureOpen();let B=a(d);await e.sessionAdmission.assertRunAccess(B.sessionId),ji(B,e.runOwner),B.model=b,B.running?.setModel(b),je(B)},async setProvider(d,b){e.ensureOpen();let B=a(d);await e.sessionAdmission.assertRunAccess(B.sessionId),ji(B,e.runOwner),B.provider=b,B.running?.setProvider(b),je(B)},async setReasoning(d,b){e.ensureOpen();let B=a(d);await e.sessionAdmission.assertRunAccess(B.sessionId),ji(B,e.runOwner),B.reasoning=b,B.running?.setReasoning(b),je(B)},closeAll(d){cn.close();for(let b of e.runs.values())b.ownedByRuntime&&(b.phase==="queued"||An(b.phase)||b.phase==="unknown")&&Te(b,d,!1);n.clear(),r.clear(),o.clear(),s.clear()},releaseSession(d){for(let b of r.get(d)?.values()??[])b.guardrail.clearAllowedCalls();r.delete(d),o.delete(d)},getAutoModeStats(d){let b=o.get(d);return b===void 0?void 0:{engine:b.engine,classifierHealth:za(b.breaker,Date.now())?"degraded":"healthy",denials:b.denials,breaker:b.breaker}}}}i(JR,"createRuntimeRunService");function zR(){let e=_a();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&&Jw(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(zR,"createRuntimeWorkflowService");function VR(e,n){return{async read(){return e(),dr(at(n))},async patch(t){return e(),hw(t,"runtime.config.patch"),Sw(n,ww(t)),dr(at(n))},async reload(){return e(),n!==void 0?(km(n),{ok:!0,config:dr(at(n))}):{ok:!0,config:dr(nd())}}}}i(VR,"createRuntimeConfigService");function GR(e,n){return{async providers(){return e(),wo()},async models(t){return e(),Mw(wo(),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 co(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(Fw)},async describeSkill(t){e();let r=await co(t.projectRoot);return r.has(t.name)?jw(await r.loadFull(t.name)):null},async customProviders(){return e(),bw(n)},async upsertCustomProvider(t){return e(),kw(n,t)},async deleteCustomProvider(t){return e(),Ew(n,t)},async extensions(){e();let t=Lt();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=Lt();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(GR,"createRuntimeCatalogService");function YR(e,n){return{async listServers(){return e(),Ls(n)},async getServer(t){return e(),xw(n,t)},async validateServer(t,r){e();try{return vo(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(),Cw(n,t,r)},async deleteServer(t){return e(),Aw(n,t)},async reloadServers(){e();let t=lo(Ls(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=Ls(n),o=t?.server!==void 0?[t.server]:Object.keys(r),s=lo(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(YR,"createRuntimeMcpService");function QR(){let e=new Map;return{service:{async create(r){if(!Vh(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=Y.resolve(r.path),s;try{s=await $.promises.stat(o)}catch(c){throw new Error(`Runtime artifact path is not readable: ${o}`,{cause:c})}if(!s.isFile())throw new Error(`Runtime artifact path must be a regular file: ${o}`);if(s.size>gl)throw new Error(`Runtime artifact exceeds the ${gl}-byte limit: ${o}`);let a=`art_${Qe().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(QR,"createRuntimeArtifactStore");function ZR(e){let{agentPlane:n,events:t,model:r,options:o,provider:s,record:a,sessionManager:u}=e,c=o.events?.exitPlanMode===void 0,{configHome:p,memoryIdentity:R,shellSandbox:I,...g}=o.context??{},x=o.guardrails?.find(Ct),f=o.context?.gitRoot??o.context?.executionCwd??process.cwd(),C=o.context?.executionCwd??f,m=yd({workspaceRoot:f,shouldSandbox:i(async h=>{let P=vn(a.permissionMode)==="auto",T;if(P&&x!==void 0){if(T=x.consumeWorkspaceSandboxCall(h),T===void 0)return!1}else try{T=await Ua(h,{projectRoot:f,executionCwd:C,signals:[]})}catch{}return{agentHomeAccess:T===void 0?void 0:iv(T,C),filesystemAccess:T===void 0?void 0:rv(T,C)}},"shouldSandbox")}),k=m!==void 0&&I!==void 0?{processTreeContainment:m.processTreeContainment,async prepare(h){let P,T=await m.prepare({...h,reportObservation:i(te=>{P=te},"reportObservation")});if(T!==void 0)return T;let _,N=await I.prepare({...h,reportObservation:i(te=>{_=te},"reportObservation")});if(N!==void 0)return N;let q=[_,P].find(te=>te?.state==="fallback")??_??P;q!==void 0&&h.reportObservation?.(q)}}:m??I,l=o.skillDynamicContext?.execute,v=o.skillDynamicContext?.disable===!0||l===void 0?{disable:!0}:{async execute(h,P){if(vn(a.permissionMode)==="plan")throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in Plan mode.");return l(h,P)}};return{...o,provider:s,skillDynamicContext:v,...r!==void 0?{modelOverride:r}:{},session:{...o.session??{},id:a.sessionId,storage:u.storage,persistedByHost:!1},events:t,context:{...g,configHome:e.defaultConfigHome,...k!==void 0?{shellSandbox:k}:{},...c?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...a.actorSession?{actorSession:a.actorSession,interruptInput:{closeInputWindow(){a.interruptInputOpen=!1},reopenInputWindow(){!a.terminalEmitted&&An(a.phase)&&o.abortSignal?.aborted!==!0&&(a.interruptInputOpen=!0)}}}:{},...n&&a.agentContext?{agentExecutorPlane:{plane:n,context:a.agentContext}}:{}}}}i(ZR,"buildRunOptions");function $i(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i($i,"assertRuntimeAgentContext");function eh(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(eh,"localAgentReasons");function As(e){return $i(e),hr(e).map(n=>{let t=eh(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(As,"runtimeLocalListings");function nh(e,n,t,r,o,s){let a=new Map,u=!1,c=i((R,I)=>{if(u)return Promise.reject(new Error("KodaX runtime is closed"));let g=a.get(R);if(g)return g.then(f=>{let C=f.rootControl().list().maxConcurrentThreads;if(I!==void 0&&I!==C)throw new Error(`Actor concurrency for ${R} is already ${C}; cannot change it to ${I}.`);return f});let x=(async()=>{let f=await e.storage.peek(R);if(!f)throw new Error(`Session not found: ${R}`);let C=f.actorSnapshot?.maxConcurrentThreads;if(C!==void 0&&I!==void 0&&C!==I)throw new Error(`Persisted Actor concurrency for ${R} is ${C}; requested ${I}.`);let m={async load(){return(await e.storage.peek(R))?.actorSnapshot},save(l,v){return e.storage.saveActorSnapshot(R,l,v)}},k=new ja({sessionId:R,store:m,maxConcurrentThreadsPerSession:I??C,owner:{ownerId:`actor_${Qe().replace(/-/g,"")}`,runtimeId:n.runtimeId,pid:process.pid,startedAt:n.startedAt,livenessId:t.id,livenessPort:t.port},isOwnerAlive:No,onHealthChanged:i(l=>s?.(R,l),"onHealthChanged"),...r?{executor:Ha({plane:r,context:o??{actorId:`runtime:${R}`}})}:{}});try{return await k.initialize(),s?.(R,k.health()),k}catch(l){if(!k.ownsDurableFence())throw l;try{await k.close("Actor initialization cleanup")}catch(v){throw new AggregateError([l,v],`Actor session ${R} initialization and owner cleanup both failed.`)}throw l}})();return a.set(R,x),x.catch(()=>a.delete(R)),x},"claimSession"),p=i(async(R,I)=>{let g=c(R,I),x=a.get(R),f=await g;if(!await e.storage.isArchived(R))return f;throw await f.close("archived Session execution rejected"),a.get(R)===x&&a.delete(R),Us(R)},"forSession");return{forSession:p,async root(R){return(await p(R)).rootControl()},async activeTurns(R){return(await Promise.all(R.map(async g=>{if(await e.storage.isArchived(g))return;let x=a.get(g);if(x)return{sessionId:g,snapshot:(await x).rootControl().list()};let f=await e.storage.peek(g);if(f?.actorSnapshot&&!(f.actorSnapshot.schemaVersion===2&&f.actorSnapshot.owner!==void 0&&!await No(f.actorSnapshot.owner)))return{sessionId:g,snapshot:f.actorSnapshot}}))).flatMap(g=>{if(!g)return[];let{sessionId:x,snapshot:f}=g;return f.actors.flatMap(C=>C.currentTurnId&&C.path!=="/root"?[{sessionId:x,actorPath:C.path,turnId:C.currentTurnId,kind:C.kind}]:[])})},async mutateSessionFile(R,I,g){if(u)throw new Error("KodaX runtime is closed");let x=a.get(R)??c(R),f=await x,m=f.rootControl().list();if(I==="mutate"&&await e.storage.isArchived(R))throw await f.close("archived Session mutation rejected"),a.get(R)===x&&a.delete(R),Us(R);let k=m.actors.some(v=>v.currentTurnId!==void 0);if((I==="archive"||I==="unarchive")&&k)throw Zn(`Session has active Agent turns and cannot be moved: ${R}`,m.revision);I==="delete"&&k&&await f.quiesce("session deleted");let l=await g(f.ownerId());return I==="delete"?f.disposeAfterStoreRemoval("session deleted"):I!=="mutate"&&await f.close(`session ${I}d`),I!=="mutate"&&a.get(R)===x&&a.delete(R),l},async close(R){u=!0;let I=await Promise.allSettled([...a.values()]),x=(await Promise.allSettled(I.flatMap(f=>f.status==="fulfilled"?[f.value.close(R)]:[]))).flatMap(f=>f.status==="rejected"?[f.reason]:[]);if(x.length===1)throw x[0];if(x.length>1)throw new AggregateError(x,"Actor registry cleanup failed.");a.clear()}}}i(nh,"createRuntimeAgentActorRegistry");function th(e,n,t,r,o,s){let a=i((u,c)=>o.run(u,async()=>(s(),await r.loadExecutable(u),c(await t.root(u)))),"withRoot");return{execution:n,enabled:e!==void 0,async listDispatchable(u){s(),$i(u);let c=hr(u);return e?e.listDispatchable(u,c):As(u)},async describe(u,c){$i(c);let p=hr(c);return e?e.describe(u,c,p):As(c).find(R=>R.descriptor.agentId===u)},async preflight(u){$i(u.query);let c=hr(u.query);if(e)return e.preflight(u,c);let p=As(u.query).find(I=>I.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,c=>c.list())},async detail(u,c){return a(u,p=>p.get(c))},async spawn(u,c){return a(u,p=>p.spawn(c))},async send(u,c,p,R){await a(u,I=>I.send(c,p,R))},async followup(u,c,p,R){return a(u,I=>I.followup(c,p,void 0,R))},async interrupt(u,c,p){await a(u,R=>R.interrupt(c,p))},async output(u,c,p){return a(u,R=>R.output(c,p))},async events(u,c){return a(u,p=>p.eventSnapshot(c))},async wait(u,c,p,R){return(await a(u,g=>g)).wait(c,p,R?.signal)}}}i(th,"createRuntimeAgentService");function Ts(){return new Error("Runtime external agent executor plane is not enabled.")}i(Ts,"externalAgentsDisabled");function rh(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw Ts()},async setEnabled(){throw Ts()},async remove(){throw Ts()}}}}i(rh,"createRuntimeAdminService");function ih(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(gm),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await e.listRuns(),t=n.filter(R=>An(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(),c=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||c.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:c,blockers:p,canStop:p.length===0}}}}i(ih,"createRuntimeStatusService");function oh(e){return{latestContextBudget(n){return Ds(e,"context.budget.snapshot",n)},latestToolExposure(n){return Ds(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return Ds(e,"provider.cache.diagnostics",n)}}}i(oh,"createRuntimeDiagnosticsService");async function Ds(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?{aggregateSessions:!0}:{},...o&&t?.sessionId!==void 0?{aggregateRootSessionId:t.sessionId}:{},...!o&&t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return[...await e.replay(s)].reverse().find(c=>{let p=c.payload;if(p===null||typeof p!="object"||Array.isArray(p))return t?.contextKind===void 0&&t?.agentId===void 0;let R=p,I=R.contextKind==="child"?"child":"root";if(r!==void 0&&I!==r||t?.agentId!==void 0&&R.agentId!==t.agentId)return!1;if(!o||t?.sessionId===void 0)return!0;let g=`${t.sessionId}/agent/`;return typeof R.contextId!="string"?!1:t.agentId===void 0?R.contextId.startsWith(g):R.contextId===`${g}${encodeURIComponent(t.agentId)}`})?.payload??null}i(Ds,"latestRuntimeDiagnosticPayload");function An(e){return e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(An,"isActiveRunPhase");function Il(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(Il,"removeQueuedRun");function sh(e,n,t){let r=oe(n)?n:void 0;if((e==="assistant.delta"||e==="thinking.delta")&&typeof r?.text=="string")return{key:Mr(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:Mr(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:Mr(e,n,t,`progress:${o}`),mode:"latest",bytes:Ms(n),preserveFirst:!0}}if(e==="run.progress"&&r?.kind==="managed_task_status")return{key:Mr(e,n,t),mode:"latest",bytes:Ms(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:Mr(e,n,t,`workflow:${s}`),mode:"latest",bytes:Ms(n)}}}i(sh,"runtimeEventMergePlan");function Ms(e){try{return Buffer.byteLength(JSON.stringify(e)??"","utf-8")}catch{return Fs}}i(Ms,"runtimeEventPayloadBytes");function kt(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(kt,"runtimePendingEmissionBytes");function ah(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(ah,"snapshotRuntimeEventPayload");function Mr(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(c=>typeof c=="string"?c:"").join("");return[t.sessionId,t.runId,t.turnId??"",e,u,r].join("\0")}i(Mr,"runtimeEventMergeKey");function dh(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(dh,"mergeRuntimeEventEmissions");function uh(e){let n=!1,t=[],r=new Map,o=new Map,s=[],a=[],u=new Map,c=new Set,p=new Set,R=0,I,g=new Map,x=new Map,f,C=!1,m=!1,k=0,l=0,v=i((E,A)=>`${E}\0${A}`,"runtimeRunProjectionKey"),h=i((E,A)=>A?!(A.sessionId!==void 0&&E.sessionId!==A.sessionId||A.runId!==void 0&&E.runId!==A.runId||A.type!==void 0&&!(Array.isArray(A.type)?A.type:[A.type]).includes(E.type)):!0,"matches"),P=i(E=>{t.push(E),t.length>Ki&&t.splice(0,t.length-Ki)},"remember"),T=i(E=>{for(let A of[...p])if(h(E,A.filter))try{A.listener(E)}catch(H){we({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${E.type}`,detail:{eventId:E.id,error:$e(H)}})}},"notifyOne"),_=i(E=>{if(a.push(...E),!m){m=!0;try{for(;k<a.length;){let A=a[k];k+=1,A!==void 0&&T(A)}}finally{a.splice(0,k),k=0,m=!1}}},"notify"),N=i((E,A,H)=>E.length===0?[]:E.map((X,ee)=>{let ge=A+ee;return{id:`evt_${ge}_${Qe().replace(/-/g,"").slice(0,8)}`,seq:ge,cursor:{sessionId:X.scope.sessionId,journalEpoch:H,seq:ge},time:X.time,sessionId:X.scope.sessionId,runId:X.scope.runId,...X.scope.turnId!==void 0?{turnId:X.scope.turnId}:{},type:X.type,payload:X.payload}}),"createEvents"),q=i((E,A,H)=>{let X=g.get(E);if(X!==void 0)throw X;try{return e.commitEvents(E,A,H)}catch(ee){throw ee instanceof Br&&(g.set(E,ee),x.delete(E),de(),Te(E),Pe(E),s.some(ge=>!g.has(ge.scope.sessionId)&&!x.has(ge.scope.sessionId))&&je()),ee}},"commitEvents"),te=i(E=>{for(let A of E){o.set(A.sessionId,A.cursor);let H=r.get(A.sessionId)??bl();r.set(A.sessionId,H),ch(H,A),P(A),zs(A.type)&&u.delete(v(A.sessionId,A.runId))}},"applyAndRemember"),de=i(()=>{I!==void 0&&(clearTimeout(I),I=void 0)},"clearScheduledFlush"),Ie=i(E=>{let A=E.map(H=>s[H]).filter(H=>H!==void 0);for(let H of[...E].sort((X,ee)=>ee-X))s.splice(H,1);return R=Math.max(0,R-A.reduce((H,X)=>H+(X.merge?.bytes??0),0)),l=Math.max(0,l-A.reduce((H,X)=>H+kt(X),0)),A},"removePendingIndices"),Te=i(E=>{Ie(s.flatMap((A,H)=>A.scope.sessionId===E?[H]:[]))},"removePendingSession"),Pe=i(E=>{let A=`${E}\0`;for(let H of u.keys())H.startsWith(A)&&u.delete(H)},"clearPreservedLatestKeys"),be=i(()=>[...new Set(s.map(E=>E.scope.sessionId))],"pendingSessionIds"),ve=i(E=>{let A=[],H;for(let X=0;X<s.length;X+=1){let ee=s[X];if(ee?.scope.sessionId===E){if(H??=ee.scope.runId,ee.scope.runId!==H)break;A.push(X)}}return{indices:A,emissions:A.map(X=>s[X])}},"nextSessionRunBatch"),Fe=i(E=>{let A=g.get(E);if(A!==void 0)throw A;for(;;){let H=ve(E);if(H.emissions.length===0)return;let X;try{X=q(E,H.emissions.length,(ee,ge)=>N(H.emissions,ee,ge))}catch(ee){throw g.has(E)||(x.set(E,$e(ee)),de()),ee}x.delete(E),Ie(H.indices),C=!1,te(X),_(X)}},"flushSession"),Ce=i((E,A=!0)=>{de();let H=E===void 0?be():[E],X;for(let ee of H)if(!(!A&&(g.has(ee)||x.has(ee))))try{Fe(ee)}catch(ge){X??=ge}if(s.some(ee=>!g.has(ee.scope.sessionId)&&!x.has(ee.scope.sessionId))&&je(),X!==void 0)throw X},"flushPending"),je=i(()=>{n||I===void 0&&(I=setTimeout(()=>{if(I=void 0,!n)try{Ce(void 0,!1)}catch(E){C||(C=!0,we({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:E}))}},SR),I.unref?.())},"scheduleFlush"),Ge=i(E=>{try{Ce(E)}catch(A){C||(C=!0,we({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:A}))}},"flushPendingSafely"),cn=i(E=>{let A=q(E.scope.sessionId,1,(H,X)=>N([E],H,X));te(A),_(A)},"commitEmissionDirectly"),an=i(E=>{let A=E.merge;if(A?.mode==="latest"){for(let H=s.length-1;H>=0;H-=1){let X=s[H];if(X?.merge===void 0||X.scope.sessionId!==E.scope.sessionId||X.scope.runId!==E.scope.runId)break;if(X.merge.mode==="latest"&&X.merge.key===A.key){s.splice(H,1),R=Math.max(0,R-X.merge.bytes),l=Math.max(0,l-kt(X));break}}s.push(E),R+=A.bytes,l+=kt(E)}},"replacePendingLatest"),bn=i(E=>{let A=E.merge;if(A?.mode!=="latest"||A.preserveFirst!==!0)return!1;let H=v(E.scope.sessionId,E.scope.runId),X=u.get(H)??new Set;return X.has(A.key)?!1:(X.add(A.key),u.set(H,X),!0)},"shouldPreserveFirstLatest"),rn=i(E=>{let A=0,H=0,X=0;for(let ee of s)ee.scope.sessionId===E&&(A+=1,H+=kt(ee),X+=ee.merge?.bytes??0);return{count:A,bytes:H,mergeBytes:X}},"pendingSessionMetrics"),nn=i((E,A,H)=>{if(n)throw new Error("KodaX runtime event bus is closed");let X=g.get(H.sessionId);if(X!==void 0)throw X;let ee=x.get(H.sessionId);if(ee!==void 0)throw ee;let ge=ah(A),D=sh(E,ge,H),U={type:E,payload:ge,scope:H,time:new Date().toISOString(),...D!==void 0?{merge:D}:{}},le=kt(U);if(le>pl){Ce(H.sessionId),cn(U);return}let G=rn(H.sessionId);if((G.count>=wR||G.bytes+le>pl)&&Ce(H.sessionId),D===void 0){s.push(U),l+=le,Ge(H.sessionId);return}if(D.mode==="latest"){if(bn(U)){s.push(U),R+=D.bytes,l+=le,Ge(H.sessionId);return}an(U)}else{let he=s.at(-1),S=he?.merge?.key===D.key&&he.merge.mode===D.mode&&he.scope.sessionId===H.sessionId&&he.scope.runId===H.runId;if(S&&he.merge.bytes+D.bytes>Fs){Ge(H.sessionId);let M=g.get(H.sessionId);if(M!==void 0)throw M;let O=x.get(H.sessionId);if(O!==void 0)throw O;s.push(U),R+=D.bytes,l+=le}else if(S){let M=dh(he,U);R+=(M.merge?.bytes??0)-he.merge.bytes,l+=kt(M)-kt(he),s[s.length-1]=M}else s.push(U),R+=D.bytes,l+=le}G.mergeBytes+D.bytes>=Fs?Ge(H.sessionId):je()},"enqueue"),d=i(E=>{if(E===void 0){Ce();return}let A=new Set;for(let X of s)E.sessionId!==void 0?X.scope.sessionId===E.sessionId&&A.add(X.scope.sessionId):E.runId!==void 0&&X.scope.runId===E.runId&&A.add(X.scope.sessionId);if(E.sessionId!==void 0)A.add(E.sessionId);else if(E.runId!==void 0&&E.aggregateSessions!==!0&&(g.size>0||x.size>0)){let X=e.eventRunSessionId(E.runId);X!==void 0&&A.add(X)}let H;for(let X of A)try{Ce(X)}catch(ee){H??=ee}if(H!==void 0)throw H},"flushEventFilter"),b={subscribe(E,A){if(n)throw new Error("KodaX runtime event bus is closed");d(E);let H={filter:E,listener:A};return p.add(H),{close(){p.delete(H),queueMicrotask(()=>{if(!n)try{d(E)}catch(X){C||(C=!0,we({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:X}))}})}}},async replay(E){d(E);let A=e.replay(E),H=E?.aggregateSessions===!0?void 0:E?.sessionId??E?.after?.sessionId??(E?.runId!==void 0?A.find(D=>h(D,E))?.sessionId??t.find(D=>h(D,E))?.sessionId:void 0),X=H===void 0?void 0:e.currentSessionCursor(H),ee=new Map;for(let D of A)ee.set(D.id,D);if(E?.aggregateSessions!==!0)for(let D of t)ee.set(D.id,D);let ge=[...ee.values()].filter(D=>h(D,E)&&(X===void 0||D.cursor.sessionId===X.sessionId&&D.cursor.journalEpoch===X.journalEpoch)&&(E?.after===void 0||D.seq>E.after.seq)).sort((D,U)=>cm(D,U,E));return E?.limit===void 0?ge:E.after===void 0?ge.slice(-E.limit):ge.slice(0,E.limit)}};return{service:b,scopedService:{subscribe(E,A){let H=Tl(E,e);return b.subscribe({...E,sessionId:H},A)},async replay(E){Ah(E?.limit);let A=Tl(E,e);return Ch(E?.after),b.replay({...E,sessionId:A})}},subscribeClose(E){return n?(E(),{close(){}}):(c.add(E),{close(){c.delete(E)}})},emit(E,A,H){nn(E,A,H)},emitDurable(E,A,H,X){Ce(H.sessionId);let ee={type:E,payload:A,scope:H,time:new Date().toISOString()},ge=q(H.sessionId,1,(D,U)=>N([ee],D,U))[0];return X?.(),te([ge]),_([ge]),ge},projectSession(E){Ce(E);let A=r.get(E);return kl(A===void 0?bl():A)},currentSessionCursor(E){Ce(E);let A=o.get(E);if(A!==void 0)return A;let H=e.currentSessionCursor(E);return o.set(E,H),H},close(){if(n){if(f!==void 0)throw f;return}let E;try{Ce()}catch(A){E=$e(A)}finally{n=!0,de(),s.splice(0,s.length),R=0,l=0;for(let A of[...c])try{A()}catch(H){we({source:"runtime.events",level:"error",message:"Runtime event close listener failed.",detail:$e(H)})}c.clear();try{e.close()}catch(A){let H=$e(A);E??=H,we({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:H})}p.clear(),r.clear(),o.clear()}if(f=E,E!==void 0)throw E},retireSessionJournal(E){g.has(E)||Ce(E),e.retireSessionEventJournal(E),o.delete(E),r.delete(E)},restoreSessionJournal(E){e.restoreSessionEventJournal(E)},prepareSessionJournal(E){if(e.prepareSessionEventJournal(E)){g.delete(E),x.delete(E),o.delete(E),r.delete(E),Pe(E);for(let A=t.length-1;A>=0;A-=1)t[A]?.sessionId===E&&t.splice(A,1)}}}}i(uh,"createRuntimeEventBus");function bl(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(bl,"createRuntimeSessionLiveProjectionState");function ch(e,n){let t=oe(n.payload)?n.payload:void 0;if(!mh(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=_i(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=_i(n),o=e.activeTools.get(r)??El(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.sandbox"){let r=_i(n),o=e.activeTools.get(r)??El(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,sandbox:n.payload})}else if(n.type==="tool.finished"){let r=_i(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=fh(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(zs(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(ch,"applyRuntimeSessionEvent");var lh=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","todo.updated"]);function mh(e,n){if(!lh.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(mh,"isChildOwnedPrimaryLiveEvent");function kl(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(kl,"snapshotRuntimeSessionLiveProjection");function fh(e){if(!(!oe(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(fh,"parseRuntimeManagedTaskStatus");function _s(e,n){return e.sessionId===n.sessionId&&e.journalEpoch===n.journalEpoch&&e.seq===n.seq}i(_s,"sameRuntimeSessionCursor");function _i(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(_i,"runtimeToolProjectionKey");function El(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(El,"latestActiveToolForRun");function zs(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(zs,"isTerminalRuntimeEvent");function ph(e,n){let t=e.homeDir?Y.resolve(e.homeDir):e.sessionsDir?Y.resolve(e.sessionsDir,".."):process.cwd(),r=e.sharedDaemonHost===!0?Y.join(t,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):Y.join(t,".kodax","runtime"),o=Y.join(r,"runs"),s=Y.join(r,"session-events"),a=Y.join(r,"session-settings"),u=Y.join(r,"session-orders"),c=Y.join(r,"permission-grants.json"),p=Y.join(r,"run-status-index.json"),R=new Map,I=i(S=>Y.join(o,encodeURIComponent(S)),"runDir"),g=i(S=>Y.join(I(S),"events.jsonl"),"eventFile"),x=i(S=>Y.join(I(S),"events.watermark"),"eventWatermarkFile"),f=i(S=>Y.join(I(S),"event-journals.json"),"eventJournalsFile"),C=i(S=>Y.join(I(S),"status.json"),"statusFile"),m=i(S=>Y.join(a,`${encodeURIComponent(S)}.json`),"sessionSettingsFile"),k=i(S=>Y.join(u,`${encodeURIComponent(S)}.json`),"sessionOrderFile"),l=i(S=>Y.join(s,Ph(S)),"sessionEventDir"),v=i(S=>Y.join(l(S),"sequence"),"sessionEventSequenceFile"),h=i(S=>Y.join(l(S),"journal.json"),"sessionEventJournalFile"),P=[],T=new Set,_=i(S=>{let M=v(S);if($.existsSync(M))try{let O=JSON.parse($.readFileSync(M,"utf-8"));if(Number.isSafeInteger(O)&&O>=0)return O}catch(O){we({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:O})}},"readEventSequenceCursor"),N=i((S,M)=>{let O=0;if(!$.existsSync(o))return O;for(let K of $.readdirSync(o,{withFileTypes:!0})){if(!K.isDirectory())continue;let W=Y.join(o,K.name,"events.jsonl");if(!$.existsSync(W))continue;let Z=$.statSync(W).size,re=Math.min(Z,yl);for(;re>0;){let ne=Buffer.allocUnsafe(re),z=$.openSync(W,"r");try{$.readSync(z,ne,0,re,Z-re)}finally{$.closeSync(z)}let se=ne.toString("utf-8").split(/\r?\n/);re<Z&&se.shift();let ae=!1;for(let me of se)if(me.trim())try{let fe=JSON.parse(me);Ni(fe)&&fe.sessionId===S&&Pt(fe)&&fe.cursor.journalEpoch===M&&Number.isSafeInteger(fe.seq)&&(O=Math.max(O,fe.seq),ae=!0)}catch{}if(ae||re===Z)break;re=Math.min(Z,re*2)}}return O},"findMaxPersistedEventSeq"),q=i(S=>{let M=h(S);if($.existsSync(M)){let K;try{K=JSON.parse($.readFileSync(M,"utf-8"))}catch(W){we({source:"runtime.persistence",level:"warn",message:`Failed to read Session event journal metadata for ${S}; creating a new cursor epoch`,detail:W})}if(oe(K)&&K.version===1&&K.sessionId===S&&typeof K.journalEpoch=="string"&&K.journalEpoch.length>0)return K.journalEpoch}let O=Qe();return gn(M,{version:1,sessionId:S,journalEpoch:O}),O},"readSessionJournalEpochLocked"),te=i((S,M)=>{if(!Number.isSafeInteger(M)||M<=0)throw new Error("Runtime event sequence batch size must be positive");let O=q(S),K=_(S),W=R.get(S)??K??N(S,O),Z=Math.max(K??0,W),re=Z+1,ne=Z+M;return gn(v(S),ne),R.set(S,ne),{firstSeq:re,journalEpoch:O}},"reserveEventSeqsLocked"),de=i((S,M)=>($.mkdirSync(l(S),{recursive:!0}),kn(v(S),()=>te(S,M))),"reserveEventSeqs"),Ie=i(S=>($.mkdirSync(l(S),{recursive:!0}),kn(v(S),()=>{let M=q(S),O=_(S),K=Math.max(O??0,R.get(S)??O??N(S,M));return R.set(S,K),{sessionId:S,journalEpoch:M,seq:K}})),"readCurrentSessionCursor"),Te=i(S=>{let M=h(S);if($.existsSync(M))try{let O=JSON.parse($.readFileSync(M,"utf-8"));if(oe(O)&&O.version===1&&O.sessionId===S&&typeof O.journalEpoch=="string"&&O.journalEpoch.length>0&&(O.retired===void 0||O.retired===!0))return O.retired===!0?void 0:O.journalEpoch;we({source:"runtime.persistence",level:"warn",message:`Invalid active Session event journal metadata for ${S}; excluding it from aggregate event replay`,detail:{file:M}});return}catch(O){we({source:"runtime.persistence",level:"warn",message:`Failed to read active Session event journal metadata for ${S}; excluding it from aggregate event replay`,detail:{file:M,error:$e(O)}});return}},"readActiveSessionJournalEpoch"),Pe=i(S=>{if(!$.existsSync(o))return 0;let M=0;for(let O of $.readdirSync(o,{withFileTypes:!0}))if(O.isDirectory())try{let K=Et(Y.join(o,O.name,"status.json"));if(K?.status.sessionId!==S)continue;M=Math.max(M,K.status.sessionOrder??0)}catch{}return M},"findMaxPersistedSessionOrder"),be=i((S,M,O)=>{if(T.has(S))return;T.add(S);let K=O.sessionId??"runtime",W=de(K,1),Z=W.firstSeq,re={id:`evt_persist_warn_${Z}_${Qe().replace(/-/g,"").slice(0,8)}`,seq:Z,cursor:{sessionId:K,journalEpoch:W.journalEpoch,seq:Z},time:new Date().toISOString(),sessionId:K,runId:O.runId??O.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:M,...O.file!==void 0?{file:O.file}:{}}};P.push(re),P.length>Ki&&P.splice(0,P.length-Ki)},"pushPersistenceWarning"),ve=i((S,M,O)=>[...S,...P].filter(K=>O===void 0||Pt(K)&&K.cursor.sessionId===O.sessionId&&K.cursor.journalEpoch===O.journalEpoch).filter(K=>xh(K,M)).sort((K,W)=>cm(K,W,M)),"withPersistenceWarnings"),Fe=i((S,M,O)=>{if(!$.existsSync(S))return[];let K=$.readFileSync(S,"utf-8"),W=[],Z=K.split(/\r?\n/);for(let re=0;re<Z.length;re+=1){let ne=Z[re]??"";if(ne.trim())try{let z=JSON.parse(ne);if(Ni(z)){if(!("cursor"in z))continue;if(!Pt(z)){be(`${S}:${re+1}:cursor`,`Skipped runtime event with an invalid Session cursor at ${Y.basename(S)}:${re+1}`,{runId:M,sessionId:z.sessionId,file:S});continue}if(O!==void 0&&(z.cursor.sessionId!==O.sessionId||z.cursor.journalEpoch!==O.journalEpoch))continue;W.push(z)}else be(`${S}:${re+1}:shape`,`Skipped malformed runtime event record at ${Y.basename(S)}:${re+1}`,{runId:M,file:S})}catch(z){be(`${S}:${re+1}:parse`,`Skipped malformed runtime event record at ${Y.basename(S)}:${re+1}: ${$e(z).message}`,{runId:M,file:S})}}return W},"readEventsFromFile"),Ce=i((S,M)=>{if($.statSync(S).size<=tm)return;let O=$.readFileSync(S,"utf-8").trimEnd().split(/\r?\n/),K=[],W=0,Z=O.length;for(let z=O.length-1;z>=0;z-=1){let se=O[z]??"";if(!se)continue;let ae=Buffer.byteLength(se,"utf-8")+1;if(K.length>0&&W+ae>IR)break;K.push(se),W+=ae,Z=z}K.reverse();let re=Oi(x(M));if(re.invalid)throw new Error("Runtime event retention watermark is malformed");let ne=new Map(re.journals.map(z=>[JSON.stringify([z.sessionId,z.journalEpoch]),z]));for(let z of O.slice(0,Z))try{let se=JSON.parse(z);if(Ni(se)&&Pt(se)){let ae=JSON.stringify([se.cursor.sessionId,se.cursor.journalEpoch]),me=ne.get(ae);ne.set(ae,{sessionId:se.cursor.sessionId,journalEpoch:se.cursor.journalEpoch,droppedThrough:Math.max(me?.droppedThrough??0,se.seq)})}}catch{}gn(x(M),{version:2,journals:[...ne.values()].sort((z,se)=>z.sessionId.localeCompare(se.sessionId)||z.journalEpoch.localeCompare(se.journalEpoch))}),Wi(S,K.length>0?`${K.join(`
372
+ `;function Dy(e){return e.length>0&&!/[\s"]/u.test(e)?e:`"${e.replace(/(\\*)"/gu,'$1$1\\"').replace(/(\\+)$/u,"$1$1")}"`}i(Dy,"quoteWindowsCommandLineArg");function My(e,n){return[e,...n].map(Dy).join(" ")}i(My,"buildWindowsCommandLine");async function Gc(e){if(process.platform!=="win32")throw new Error("Windows Job containment is available only on Windows.");let n=Jc.join(Wc.tmpdir(),`kodax-daemon-job-${ys()}.ready`),t=Jc.join(Wc.tmpdir(),`kodax-daemon-job-${ys()}.ps1`);Py(t,Ty,{encoding:"utf8",flag:"wx",mode:384});let r=Buffer.from(JSON.stringify({executable:e.executable,commandLine:My(e.executable,e.args),cwd:e.cwd,readyFile:n,logFile:e.logFile,jobName:`KodaXDaemonJob-${ys()}`}),"utf8").toString("base64"),o={...e.env};delete o.KODAX_DAEMON_JOB_CONTAINED,delete o.KODAX_DAEMON_JOB_SUPERVISOR_PID,delete o.KODAX_DAEMON_JOB_NAME;let s;try{s=ky(process.execPath,["-e",Cy],{cwd:e.cwd,detached:!0,windowsHide:!0,stdio:["ignore","ignore","ignore","ipc"],env:{...o,[Rs]:r,[Ci]:n,[hs]:t}})}catch(u){throw xi(n,{force:!0}),xi(t,{force:!0}),u}let a=await _y(s,n,e.startupTimeoutMs??xy).catch(async u=>{try{await Vc(s)}catch(c){throw new AggregateError([u,c],"Windows Job supervisor startup failed and its process tree was not reclaimed.")}throw u}).finally(()=>{xi(n,{force:!0}),xi(t,{force:!0})});return{...a,supervisor:s,release:i(()=>Oy(s),"release"),terminate:i(()=>Vc(s,a.processPid),"terminate")}}i(Gc,"spawnWindowsJobContainedProcess");async function _y(e,n,t){let r,o,s=i(c=>{r=c},"captureLaunchError"),a=i(c=>{c!==null&&typeof c=="object"&&"kind"in c&&c.kind==="owner"&&"pid"in c&&Number.isSafeInteger(c.pid)&&Number(c.pid)>0&&(o=Number(c.pid))},"captureOwner");e.once("error",s),e.on("message",a);let u=Date.now()+t;try{for(;;){if(r!==void 0)throw r;try{let c=Ey(n,"utf8").trim();if(c.startsWith("ERROR:"))throw new Error(`Windows Job supervisor startup failed: ${c.slice(6)}`);let p=JSON.parse(c);if(!Number.isSafeInteger(p.processPid)||Number(p.processPid)<=0||!Number.isSafeInteger(p.containmentSupervisorPid)||Number(p.containmentSupervisorPid)<=0)throw new Error("Windows Job supervisor wrote invalid readiness identities.");if(o!==void 0){if(Number(p.containmentSupervisorPid)!==o)throw new Error("Windows Job supervisor readiness owner identities do not match.");return{processPid:Number(p.processPid),containmentSupervisorPid:o}}}catch(c){if(c.code!=="ENOENT")throw c}if(e.exitCode!==null||e.signalCode!==null)throw new Error(`Windows Job supervisor exited before daemon readiness (code ${e.exitCode??"unknown"}).`);if(Date.now()>=u)throw new Error("Windows Job supervisor did not report daemon readiness in time.");await new Promise(c=>setTimeout(c,10))}}finally{e.off("error",s),e.off("message",a)}}i(_y,"waitForSupervisorReadiness");function Oy(e){e.connected&&e.disconnect(),e.unref()}i(Oy,"releaseSupervisor");async function Vc(e,n){if(e.pid!==void 0){if(e.exitCode===null&&e.signalCode===null){if(!e.connected)throw new Error("Windows Job supervisor control channel is unavailable during startup.");await new Promise((t,r)=>{e.send({kind:"terminate"},o=>{o?r(o):t()})})}await Ny(e),n!==void 0&&await Ly(n,2e3)}}i(Vc,"terminateSupervisor");async function Ny(e){let n=Date.now()+2e3;for(;e.exitCode===null&&e.signalCode===null;){if(Date.now()>=n)throw new Error("Windows Job supervisor did not exit after startup cleanup.");await new Promise(t=>setTimeout(t,10))}}i(Ny,"waitForWrapperExit");async function Ly(e,n){let t=Date.now()+n;for(;Fy(e);){if(Date.now()>=t)throw new Error(`Process ${e} did not exit after termination.`);await new Promise(r=>setTimeout(r,10))}}i(Ly,"waitForPidExit");function Fy(e){try{return process.kill(e,0),!0}catch(n){if(n.code==="ESRCH")return!1;throw n}}i(Fy,"isPidAlive");var Ti=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,il=256*1024;function Dr(e){return Cn.join(e.rootDir,"bootstrap.log")}i(Dr,"runtimeDaemonBootstrapLogPath");function Wy(e,n=il){En(e);let t=Dr(e),r=Math.max(1,n),o=`${t}.1`;return ws(o,r),Ai(t)&&rl(t).size>=r&&(ws(t,r),Ai(o)&&By(o),qy(t,o)),tl(t,"a",384)}i(Wy,"openRuntimeDaemonBootstrapLog");function Jy(e,n=il){ws(Dr(e),Math.max(1,n))}i(Jy,"capRuntimeDaemonBootstrapLog");function ws(e,n){if(!Ai(e))return;let t=rl(e).size;if(t<=n)return;let r=tl(e,"r+");try{let o=Buffer.allocUnsafe(n),s=0;for(;s<o.length;){let a=$y(r,o,s,o.length-s,t-n+s);if(a===0)break;s+=a}Hy(r,0),s>0&&Ky(r,o,0,s,0)}finally{nl(r)}}i(ws,"capFileToTail");var Yn=class extends Error{constructor(t,r){super(t);this.reason=r;this.name="RuntimeDaemonStartupError"}reason;static{i(this,"RuntimeDaemonStartupError")}};async function ol(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=Cn.resolve(e.homeDir??Uy.homedir()),r=Cn.resolve(e.configHome??Cn.join(t,".kodax")),o=Jn(r,n);hi(o);let s=nr(o.profile,Vt(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 Cr(o,e.healthCheck),u=Yt(a);if(u==="healthy"&&a.state){let I=a.state.status==="ready"?{...a,state:a.state}:await Vy(o,e,a);return Qc(o,wt(I.state),!1,e)}if(u==="unhealthy"||u==="mismatch")throw new Error(`Runtime daemon is ${u}; refusing to start a competing owner.`);let c=await Zy({profile:o.profile,homeDir:t,configHome:r,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,orphanExitMs:e.orphanExitMs,startupTimeoutMs:e.startupTimeoutMs}),p=await zy(o,e,c),R=wt(p.state);return Qc(o,R,p.state.pid===c.pid,e)}i(ol,"acquireRuntimeDaemonProcessLease");async function Qc(e,n,t,r){let o=await zn(n,{connectTimeoutMs:r.connectTimeoutMs}),s=!1,a,u=!1,c,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(c)return c;let R=(async()=>{u||(await o.request("runtime.shutdown"),u=!0),await p()})();return c=R,R.finally(()=>{c===R&&(c=void 0)}).catch(()=>{}),R}}}i(Qc,"connectProcessLease");async function zy(e,n,t,r=Cr){let o=Date.now()+(n.startupTimeoutMs??6e4);try{for(;;){let s=await Gy(e,n,t,r),a=Yt(s);if(a==="healthy"&&s.state?.status==="ready")return s.state.pid===t.pid?t.unref():await eR(t),{...s,state:s.state};if(a==="mismatch")throw new Yn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let u=o-Date.now();if(u<=0)throw al(e);await Yy(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{Jy(e)}catch{}throw s}}i(zy,"waitForHealthyDaemonStartup");async function Vy(e,n,t,r=Cr){let o=Date.now()+(n.startupTimeoutMs??6e4),s=t.state;if(s===void 0)throw new Yn("Runtime daemon owner state disappeared before it reached ready.","identity_mismatch");let a=t;for(;;){let u=Yt(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 Yn("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 Yn("Runtime daemon endpoint identity does not match its persisted owner state.","identity_mismatch");let c=o-Date.now();if(c<=0)throw al(e);await bt(Di(Math.min(Math.max(1,n.pollIntervalMs??100),c)),n.startupSignal),a=await bt(r(e,n.healthCheck),n.startupSignal)}}i(Vy,"waitForReadyRuntimeDaemonOwner");async function Gy(e,n,t,r){let o=await bt(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(vs(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 bt(r(e,n.healthCheck),n.startupSignal);if(Yt(u)!=="missing"||vs(e,t))return u;await bt(Di(Math.min(n.pollIntervalMs??100,Math.max(1,a-Date.now()))),n.startupSignal)}}throw sl(e,o.exit)}return o.observation}i(Gy,"observeStartupHealth");async function Yy(e,n,t,r){let o=await bt(Promise.race([Di(e).then(()=>{}),t.exit]),r);if(o!==void 0){if(vs(n,t)){await bt(Di(e),r);return}throw sl(n,o)}}i(Yy,"waitForStartupPoll");function vs(e,n){let t=ze(e.lockFile);return t!==void 0&&t.pid!==n.pid}i(vs,"hasCompetingStartupOwner");function sl(e,n){let t=n.signal!==null?`signal ${n.signal}`:`code ${n.code??"unknown"}`;return new Yn(`Runtime daemon child exited before becoming healthy (${t}). See daemon bootstrap log: ${Dr(e)}`,"child_exit")}i(sl,"runtimeDaemonExitedEarly");function al(e){let n=process.versions.electron===void 0?"":" Packaged Electron auto-start requires the RunAsNode fuse to remain enabled.";return new Yn(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.${n} See daemon bootstrap log: ${Dr(e)}`,"timeout")}i(al,"runtimeDaemonStartupTimeout");function Qy(e,n,t=process.execArgv){let r=[...n!==void 0?oR(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(Qy,"buildRuntimeDaemonServeArgs");async function Zy(e){let n=iR();tR(n);let t=Qy(e,n),r=ma({args:t,env:rR({homeDir:e.homeDir,configHome:e.configHome,parentEnv:process.env}),isElectron:process.versions.electron!==void 0}),o=Jn(e.configHome,e.profile),s=Wy(o),a,u,c,p;try{if(process.platform==="win32"){let I=await Gc({executable:process.execPath,args:r.args,cwd:process.cwd(),env:r.env,logFile:Dr(o),startupTimeoutMs:e.startupTimeoutMs});a=I.supervisor,u=I.processPid,c=I.terminate,p=I.release}else a=jy(process.execPath,r.args,{detached:!0,stdio:["ignore",s,s],windowsHide:!0,env:r.env})}finally{nl(s)}let R=a.exitCode!==null||a.signalCode!==null?Promise.resolve({code:a.exitCode,signal:a.signalCode}):new Promise(I=>{a.once("exit",(g,x)=>I({code:g,signal:x}))});return u===void 0&&await new Promise((I,g)=>{a.once("spawn",I),a.once("error",g)}),fa(a),nR(a,R,u,c,p)}i(Zy,"spawnRuntimeDaemonServeProcess");async function eR(e){if(e.hasExited?.()!==!0)try{await e.terminate()}catch(n){if(!(n instanceof Ti)||!await Ss(e.exit,1e3))throw n}}i(eR,"terminateCompetingStartupChild");function nR(e,n,t=e.pid,r,o){return{pid:t,exit:n,hasExited(){return to(e)},unref(){o!==void 0?o():e.unref()},async terminate(){if(r!==void 0){if(await r(),!await Ss(n,1e3))throw new Error(`Runtime daemon Job supervisor ${e.pid??"unknown"} did not exit after termination.`);return}let s=to(e);if((await pa(e)).status==="unknown"&&!s)throw new Ti(t);if(!await Ss(n,1e3))throw new Error(`Runtime daemon child ${t??"unknown"} did not exit after termination.`)}}}i(nR,"createRuntimeDaemonStartupProcess");async function Ss(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(Ss,"didExitWithin");function tR(e){if(e!==void 0&&!Ai(e))throw new Error(`Runtime daemon CLI entry is unavailable at "${e}". Keep the published KodaX dist files external to the embedder bundle.`)}i(tR,"assertRuntimeDaemonCliEntryAvailable");function rR(e){let n={...e.parentEnv,KODAX_DAEMON_SERVE:"1",KODAX_HOME:e.configHome??Cn.join(e.homeDir,".kodax")};return delete n[la],n}i(rR,"createRuntimeDaemonServeEnvironment");function iR(){if(process.env.KODAX_BUNDLED==="true")return;let e=Xy(import.meta.url);if(e.endsWith(".ts"))return Cn.resolve(Cn.dirname(e),"..","kodax_cli.ts");let n=Cn.dirname(e),t=Cn.basename(n)==="chunks"?Cn.dirname(n):n;return Cn.join(t,"kodax_cli.js")}i(iR,"resolveDaemonCliEntry");function oR(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&&(Zc(a)&&t.push(o,a),r+=1)}else if(s.startsWith("--require=")){let a=o.slice(10);Zc(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(oR,"daemonServeExecArgv");function Zc(e){return Cn.resolve(e)===Cn.resolve("scripts","production-env.cjs")}i(Zc,"isKodaXProductionEnvPreload");function Di(e){return new Promise(n=>setTimeout(n,e))}i(Di,"delay");async function bt(e,n){if(!n)return e;if(n.aborted)throw el();let t;try{return await Promise.race([e,new Promise((r,o)=>{t=i(()=>o(el()),"cancel"),n.addEventListener("abort",t,{once:!0})})])}finally{t&&n.removeEventListener("abort",t)}}i(bt,"raceRuntimeDaemonStartupStep");function el(){return new Yn("Runtime daemon startup cancelled.","cancelled")}i(el,"runtimeDaemonStartupCancelled");var sR=15e3,aR=25;async function Is(e){if(!Number.isSafeInteger(e.owner.pid)||e.owner.pid<=0)throw new Error("Runtime daemon shutdown verification requires a positive owner PID.");let n=e.timeoutMs??sR,t=e.pollIntervalMs??aR;if(!Number.isSafeInteger(n)||n<=0)throw new Error("Runtime daemon shutdown verification timeout must be positive.");if(!Number.isSafeInteger(t)||t<=0)throw new Error("Runtime daemon shutdown verification poll interval must be positive.");if(e.owner.processContainment==="windows-job"&&(!Number.isSafeInteger(e.owner.supervisorPid)||e.owner.supervisorPid<=0))throw new Error("Windows Job containment requires a positive supervisor PID.");let r=Jn(e.configHome,e.profile??"default"),o=Date.now()+n,s="outcome_missing";for(;;){let a=ze(r.lockFile),u=a?.kind==="daemon"&&tr(a.pid)&&(a.runtimeId!==e.owner.runtimeId||a.pid!==e.owner.pid)?a:void 0,c=Tu(r,e.owner),p=tr(e.owner.pid),R=e.owner.processContainment==="windows-job"&&tr(e.owner.supervisorPid);if(c?.status==="failed")return{status:"failed",outcome:c};if(process.platform==="win32"&&e.owner.processContainment!=="windows-job")return{status:"unverified",reason:"containment_unavailable"};if(c?.status==="succeeded"&&!p&&!R)return u!==void 0?{status:"replacement_running",runtimeId:u.runtimeId,pid:u.pid}:{status:"succeeded",outcome:c};if(s=p?"daemon_active":R?"containment_active":"outcome_missing",Date.now()>=o)return{status:"unverified",reason:s};await dR(Math.min(t,Math.max(1,o-Date.now())))}}i(Is,"waitForRuntimeDaemonShutdown");function dR(e){return new Promise(n=>setTimeout(n,e))}i(dR,"delay");import{Worker as uR}from"node:worker_threads";import{existsSync as cR}from"node:fs";import{basename as lR,dirname as bs,join as dl}from"node:path";import{fileURLToPath as ul,pathToFileURL as cl}from"node:url";var mR=3e4;function ll(e,n={}){let t=gR(),r=new uR(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,c=!1,p=i(C=>{for(let m of o.values())m.cleanup(),m.reject(C);o.clear()},"rejectPending"),R=i(()=>{for(let C of s.values())clearTimeout(C.expiry);s.clear()},"clearLateResults"),I=i(C=>{let m=s.get(C);if(m!==void 0)return s.delete(C),clearTimeout(m.expiry),m.deliver},"removeLateResult"),g=i(C=>{c||(c=!0,p(C),R(),a.clear())},"markClosed"),x=i((C,m)=>{if(c)return;let k=C==="request.ack"?"ack":"cancel";try{r.postMessage(Kt(`worker_${k}_${++u}`,C,{requestId:m}))}catch(l){we({source:"runtime.worker.transport",level:"warn",message:`Failed to send Worker ${C} lifecycle frame.`,detail:l})}},"sendRequestLifecycleFrame");return r.on("message",C=>{if(Er(C)){for(let l of a)l(C);return}if(!ft(C)&&!Ut(C)||!C.id)return;let m=o.get(C.id);if(!m){if(ft(C)){let l=I(C.id);if(l!==void 0)try{l(C.result)}catch(v){we({source:"runtime.worker.transport",level:"warn",message:"Runtime Worker late-result handler failed.",detail:v})}}else I(C.id);return}if(o.delete(C.id),m.cleanup(),ft(C)){x("request.ack",C.id),m.resolve(C.result);return}let k=new Error(C.error.message);k.code=C.error.code,C.error.data!==void 0&&(k.data=C.error.data),m.reject(k)}),r.on("error",C=>g(C)),r.on("exit",C=>g(new Error(`Runtime Worker exited with code ${C}.`))),{transport:{request(C,m,k,l){if(c)return Promise.reject(new Error("Runtime Worker transport is closed."));let v=`worker_${++u}`,h,P=!1,T=i(()=>{h!==void 0&&l?.signal?.removeEventListener("abort",h)},"cleanup"),_=new Promise((N,q)=>{let te={resolve:N,reject:q,cleanup:T};o.set(v,te),h=fR(l,()=>{if(o.get(v)===te){if(o.delete(v),T(),P&&x("request.cancel",v),l?.onLateResult!==void 0){let de=setTimeout(()=>{s.delete(v)},mR);de.unref?.(),s.set(v,{deliver:l.onLateResult,expiry:de})}q(pR(l?.signal?.reason))}})});if(l?.signal?.aborted)return _;try{r.postMessage(Kt(v,C,m,k)),P=!0}catch(N){let q=o.get(v);q!==void 0&&(o.delete(v),q.cleanup(),q.reject(N instanceof Error?N:new Error(String(N))))}return _},subscribe(C){return c?{close(){}}:(a.add(C),{close:i(()=>a.delete(C),"close")})},async close(){c||(g(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){c||g(new Error("Runtime Worker terminated.")),await r.terminate()}}}i(ll,"createRuntimeWorkerTransport");function fR(e,n){let t=e?.signal;if(t!==void 0)return t.addEventListener("abort",n,{once:!0}),t.aborted&&n(),n}i(fR,"attachWorkerRequestAbort");function pR(e){return e instanceof Error?e:new Error("Runtime Worker request cancelled.")}i(pR,"normalizeWorkerAbortReason");function gR(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return cR(ul(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return cl(dl(bs(process.execPath),"runtime-worker.js"));let e=bs(ul(import.meta.url)),n=lR(e)==="chunks"?bs(e):e;return cl(dl(n,"runtime-worker.js"))}i(gR,"resolveRuntimeWorkerUrl");var wn=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},Tt=class extends Error{static{i(this,"RuntimeAutoModeConfigurationError")}code="auto_mode_classifier_model_required";recoverable=!0;constructor(n){super(n),this.name="RuntimeAutoModeConfigurationError"}};function Ws(e){let n=Y.resolve(e??qr.homedir());return{homeDir:n,configHome:e===void 0?Y.resolve(ho):Y.join(n,".kodax")}}i(Ws,"resolveRuntimeDaemonClientLocation");function pr(e,n="default"){let t=Ws(e);return{...t,paths:Jn(t.configHome,n)}}i(pr,"resolveRuntimeDaemonClientPaths");function fb(e={}){let{paths:n}=pr(e.homeDir,e.profile),t=`inline_${Qe().replace(/-/g,"")}`,r=zt(process.pid),o=ku(n,{runtimeId:t,pid:process.pid,createdAt:new Date().toISOString(),kind:"inline",...r===void 0?{}:{processStartIdentity:r}},e.enableRollback===!0),s=!1;return{profile:n.profile,ownerId:t,ownerPolicy:_n(n),close(){if(!s){if(!wi(o))throw new Error(`Failed to release inline owner "${t}"; retry close before changing owner mode.`);s=!0}}}}i(fb,"acquireKodaXInlineOwner");function pb(e={}){return _n(pr(e.homeDir,e.profile).paths)}i(pb,"getKodaXRuntimeOwnerPolicy");function gb(e={}){let{paths:n}=pr(e.homeDir,e.profile),t=ze(n.lockFile);return{profile:n.profile,policy:_n(n),ownerStatus:t!==void 0?"owned":$.existsSync(n.lockFile)?"unreadable":"unowned",owner:t===void 0?null:{runtimeId:t.runtimeId,pid:t.pid,createdAt:t.createdAt,...t.kind===void 0?{}:{kind:t.kind},...t.processContainment===void 0?{}:{processContainment:t.processContainment},...t.supervisorPid===void 0?{}:{supervisorPid:t.supervisorPid}}}}i(gb,"getKodaXRuntimeOwnerState");function yb(e={}){return yi(pr(e.homeDir,e.profile).paths)}i(yb,"enableKodaXDaemonOwner");function Rb(e){let{paths:n}=pr(e.homeDir,e.profile);if(ze(n.lockFile)!==void 0)throw new Error("Cannot change Runtime owner mode while an owner lock exists.");return Iu(n,e.mode,e.expectedRevision)}i(Rb,"setKodaXRuntimeOwnerMode");var yR=["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"],RR=new Set(["code","cli","repl","acp","a2a","sdk","ide","space-desktop"]),hb=Object.freeze({actorSettlementConvergence:1,daemonOrphanExit:1,daemonShutdownVerification:1,managedRunDurability:1,sandboxRuntime:3,sessionEventJournal:1,runtimeEventCoalescing:1});async function wb(e,n){return e.sessions.diagnostics(n)}i(wb,"captureRuntimeSessionDiagnostics");function hR(e,n,t,r){let o=t.runs.flatMap(R=>{let I=zi(R);return I===void 0?[]:[I]}),s=n.runId===void 0?Cm(o):o.find(R=>R.runId===n.runId),a=s?.activeSubtaskCount??null,u=[],c=i((R,I)=>{u.some(g=>g.code===R)||u.push({code:R,message:I})},"addError");if(s===void 0)c("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";c(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")&&c("stop_outcome_unconfirmed","A Stop was requested, but executor termination is not confirmed."),s?.lifecycleError!==void 0&&c(s.lifecycleError.code,s.lifecycleError.message),s?.phase==="failed"&&c("run_failed",s.error??"The Run failed without a recorded error message."),s!==void 0&&Ne(s.phase)&&s.endedAt===void 0&&c("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:Zr,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":Ne(s.phase)?"terminal":"active",phase:s.phase,stage:s.stage??(Ne(s.phase)?"terminal":"unknown"),...s.stageChangedAt!==void 0?{stageChangedAt:s.stageChangedAt}:{},...s.endedAt!==void 0?{terminalAt:s.endedAt}:{},terminalTimeKnown:Ne(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(hR,"createRuntimeSessionDiagnosticsRecord");var Fr=class extends Error{constructor(t){super(`Runtime continuation target is already terminal: ${t}`);this.afterRunId=t;this.name="RuntimeContinuationStaleError"}afterRunId;static{i(this,"RuntimeContinuationStaleError")}},Br=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")})}},Mt=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")}},Bi=class extends Error{constructor(t){super(`Runtime status lock timed out: ${t}`);this.lockFile=t;this.name="RuntimeStatusLockTimeoutError"}lockFile;static{i(this,"RuntimeStatusLockTimeoutError")}},fl=5*6e4,Ki=1e4,wR=1024,pl=1024*1024,Bn=1e3,Mi=200,ks=1e3,vR=2*1024*1024,Es=512,gl=256*1024*1024,SR=50,Fs=8*1024,tm=16*1024*1024,IR=tm/2,yl=128*1024,Rl=8,bR=256,_t=512*1024,Xi=128*1024,jr=256*1024,rm=50,im=200,kR=8,Hr=64*1024*1024,Ui=16,Ps=4*1024,ER=256,PR=1024*1024,xR=250,xs=5*6e4,hl="kodax-transcript-snapshots-",CR=5e3,AR=3e4,TR=100,DR=3e4,wl=[5,15],MR="1970-01-01T00:00:00.000Z";function _R(e,n,t){let r=null,o=t.map((s,a)=>{let c=`entry_${Dt("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:c,parentId:r,logicalId:c,timestamp:s.timestamp??MR,message:structuredClone(s)};return r=c,p});return{version:2,activeEntryId:r,entries:o}}i(_R,"createDeterministicRuntimeLegacyLineage");var vl=1024,om=new Set(["tool_call","tool_describe"]),OR=new Set(["image","file","video"]);function NR(e,n){let t=Y.relative(no(),e);return Y.isAbsolute(t)||t.startsWith("..")?e:Y.join(n,t)}i(NR,"rebaseAgentConfigPath");async function LR(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 FR(e);let D=e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0);return sm({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:D,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:{...e.requirements,sessionEventJournal:1,...D?{actorSettlementConvergence:1,managedRunDurability:1,...process.platform==="win32"?{daemonShutdownVerification:1,sandboxRuntime:3}:{},runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:{}}})}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 jR(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:_t},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:ei(),managedRunDurability:{version:1,initialInputBeforeExecution:!0,completedTurnBeforeEvent:!0,deliveredInputBeforeEvent:!0,persistenceFailure:"fail_closed"},actorSettlementConvergence:{version:1,rootFence:"fail_closed",sameOwnerRepair:"automatic",unknownAfterTurnQueue:!0,terminal:"failed"},sessionEventJournal:{version:1,sequenceScope:"session",cursor:"session_epoch_sequence",scopedAccessRequired:!0},runtimeEventCoalescing:{version:1},runtimeAutoModeGuardrail:{version:4,owner:"session-runtime",escalationCreatesPermission:!0,fallbackPersistsEngine:!1,defaultClassifierTimeoutMs:Yr,defaultSpeculativeWindowMs:500,boundedClassifierInput:!0,diagnosticsVersion:1,permissionGrantSuggestions:!0,concretePermissionMatchers:!0,clientScopeExpansion:!1},...e.externalAgents!==void 0?{externalAgentAdmin:{version:1}}:{}};Js(n,e.requirements);let t={runtimeId:e.daemonHostRuntimeId??`rt_${Qe().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.87",isolation:"inline"},r=e.homeDir?Y.join(Y.resolve(e.homeDir),".kodax"):ho,o=Eh(e),s=fd(o?{sessionsDir:o,configHome:r}:{configHome:r}),a=Qh(t.profile,s,e.sharedDaemonHost===!0),u=UR(),c=vw(e);km(c);let p=await Vd({onError(D){we({source:"runtime.owner",level:"error",message:`Runtime owner liveness endpoint failed for ${t.runtimeId}.`,detail:$e(D)})}}),R={ownerId:`runtime_${Qe().replace(/-/g,"")}`,runtimeId:t.runtimeId,pid:process.pid,startedAt:t.startedAt,livenessId:p.id,livenessPort:p.port},I=ph(e,R),g;try{g=e.externalAgents?await Na({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:bd(Y.join(I.runtimeDir,"agents"))}):void 0}catch(D){throw await p.close(),D}let x=uh(I),f=XR(I,x),C=$h(x,e.permissionTimeoutMs??fl,I),m=Fh(x,e.permissionTimeoutMs??fl),k=QR(),l=zR(),v=new Map,h=new Map,P=new Map,T=new Map,_=i((D,U)=>{let le=h.get(D)??U;return le.state!=="recovering"?Promise.resolve(le):new Promise(G=>{let he=P.get(D)??new Set;he.add(G),P.set(D,he)})},"waitForActorHealthResolution"),N=i(D=>{let U,le=new Promise(he=>{U=he}),G=T.get(D)??new Set;return G.add(U),T.set(D,G),{promise:le,close(){U!==void 0&&(G.delete(U),G.size===0&&T.delete(D),U=void 0)}}},"waitForActorHealthChange"),q=i(()=>{},"fenceRunAfterActorSettlementUnknown"),te=i((D,U)=>{h.set(D,U);let le=T.get(D);T.delete(D);for(let G of le??[])G(U);for(let G of v.values()){if(G.sessionId!==D||!G.ownedByRuntime||Ne(G.phase))continue;if(U.state==="unknown"&&q(G,U),G.stop?.state==="unknown"){if(delete G.actorHealthBaseState,U.state==="unknown"){G.lifecycleError={code:U.code??"actor_settlement_not_persisted",message:U.message??"Actor executor settlement persistence is not confirmed.",retryable:!1},G.stageChangedAt=new Date().toISOString();let M=un(G),O=nt(x,I,G,M);O===M?x.emit("run.updated",M,{sessionId:G.sessionId,runId:G.runId,...G.turnId!==void 0?{turnId:G.turnId}:{}}):O!==void 0&&At(G,O)}continue}if(U.state==="healthy"){if(G.actorDurabilityFailure!==void 0){delete G.actorHealthBaseState;continue}let M=G.actorHealthBaseState;if(M===void 0)continue;G.phase=M.phase,G.stage=M.stage,G.error=M.error,G.lifecycleError=M.lifecycleError,delete G.actorHealthBaseState}else G.actorHealthBaseState===void 0&&(G.actorHealthBaseState={phase:G.phase,stage:G.stage,error:G.error,lifecycleError:G.lifecycleError}),G.phase!=="queued"&&(G.phase=U.state),G.stage=U.state,G.error=U.message,G.lifecycleError={code:U.code??"actor_settlement_retrying",message:U.message??"Actor executor settlement persistence is not confirmed.",retryable:U.state==="recovering"};G.stageChangedAt=new Date().toISOString();let he=un(G),S=nt(x,I,G,he);S===he?x.emit("run.updated",he,{sessionId:G.sessionId,runId:G.runId,...G.turnId!==void 0?{turnId:G.turnId}:{}}):S!==void 0&&At(G,S)}if(U.state!=="recovering"){let G=P.get(D);P.delete(D);for(let he of G??[])he(U)}},"onActorHealthChanged"),de=nh(s,t,p,g,e.externalAgents?.defaultContext,te),Ie=new Map,Te=[...Kw(I.loadRunStatuses())].sort((D,U)=>et(D.status,U.status)),Pe=[];for(let D of Te){let U=D.status,le=U.sessionOrder??(Ie.get(U.sessionId)??0)+1;Ie.set(U.sessionId,Math.max(Ie.get(U.sessionId)??0,le));let G={...U,acceptedAt:U.acceptedAt??U.startedAt,sessionOrder:le};if(Ne(U.phase)&&!U.interruptInputs?.some(he=>he.state==="queued")){v.set(U.runId,Lr(G,!1,D.owner));continue}if(!Ne(U.phase)){let he=fm(G,x,I);if(he!==void 0){v.set(he.runId,Lr(he,!1,D.owner));continue}G=Qs(G,I.replay({runId:U.runId}))}Pe.push({persisted:D,normalizedStatus:G})}let be=Pe.flatMap(({persisted:D})=>!Ne(D.status.phase)&&D.owner!==void 0?[D.owner]:[]),ve=await Gd(be),Fe=0;for(let{persisted:D,normalizedStatus:U}of Pe){let le=D.status,G=Ne(le.phase)?"dead":D.owner===void 0?"unknown":ve[Fe++]??"unknown";if(!Ne(le.phase)&&G!=="dead"){v.set(le.runId,Lr(U,!1,D.owner));continue}let he=mm(U,x,I);v.set(he.runId,Lr(he,!1,D.owner))}let Ce=!1,je,Ge=!1,cn=!1,an=g===void 0,bn=!1,rn=!1,nn=i(()=>{if(Ce)throw new Error("KodaX runtime is closed")},"ensureOpen"),d=JR({bus:x,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,defaultConfigHome:r,ensureOpen:nn,isClosed:i(()=>Ce,"isClosed"),artifacts:k,permissions:C,userInputs:m,enableSharedInteractions:e.sharedDaemonHost===!0,persistence:I,runOwner:R,runs:v,sessionManager:s,sessionAdmission:a,sessionOperations:u,agentPlane:g,defaultAgentContext:e.externalAgents?.defaultContext,actorRegistry:de,setActorSettlementFenceHandler(D){q=D},waitForActorHealthResolution:_,waitForActorHealthChange:N,settingsOwner:f}),b,B,E=WR(t,r,s,x,I,nn,D=>Uw(D,v,I),f,D=>d.list({sessionId:D}),D=>d.inspect({sessionId:D}),D=>d.inspectOne(D),D=>C.service.listPending({sessionId:D}),D=>d.getAutoModeStats(D),u,(D,U,le)=>de.mutateSessionFile(D,U,le),D=>{d.releaseSession(D),C.releaseSession(D)},a,(D,U)=>{b=D,B=U}),A=Y.join(e.homeDir?Y.resolve(e.homeDir):qr.homedir(),"kodax_a2a_server_workspace",encodeURIComponent(t.profile)),H=Ud({configHome:r,managedWorkspaceRoot:A,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,runs:d,sessions:E,createSkillScriptRunner:i(D=>Rd({...D,snapshotRoot:Y.join(A,"bindings")}),"createSkillScriptRunner")}),X=Zd({rootDir:Y.join(r,"learned"),userSkillsRoot:Y.join(r,"skills"),defaultClientIdentity:e.clientInfo?.instanceId??`inline_${t.runtimeId}`,proposalStores:[NR(va(process.cwd()),r)]}),ee=i(()=>{if(je)return je;Ce=!0;let D=(async()=>{Ge||(d.closeAll("runtime closed"),C.rejectAll("runtime closed"),C.releaseAllSessionGrants(),m.rejectAll("runtime closed"),Ge=!0),b?.(),await u.close(),await B?.(),b=void 0,B=void 0,cn||(await de.close("runtime closed"),cn=!0),an||(await g.close(),an=!0),bn||(await p.close(),bn=!0),e.sharedDaemonHost&&await gd(),rn||(x.close(),rn=!0)})();return je=D,D.then(()=>{je===D&&(je=void 0)},()=>{je===D&&(je=void 0)}),D},"closeRuntime");return{identity:t,capabilities:n,sessions:E,runs:d,events:x.scopedService,permissions:C.service,userInputs:m.service,credentials:wv(),hostTools:vv(),operations:{async get(){throw new Error("Embedded Runtime does not persist daemon operation receipts.")}},workflows:l,learning:X,config:VR(nn,c),catalog:GR(nn,c),mcp:YR(nn,c),artifacts:k.service,status:ih({identity:t,permissions:C,userInputs:m,listRuns:i(()=>d.list(),"listRuns"),sessionManager:s,sessionAdmission:a,workflows:l,actors:de}),diagnostics:oh(x.service),admin:rh(g),agents:th(g,H,de,a,u,nn),close:ee}}i(LR,"createKodaXRuntime");async function FR(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?dm(e.daemonEndpoint):void 0,r=Ws(e.homeDir),o=await Kc({homeDir:r.homeDir,configHome:r.configHome,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:i(s=>LR({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 sm({profile:e.profile,transport:o.transport,daemonToken:e.daemonToken??Pr(o.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0,externalAgentAdmin:1}}),a=!1,u=!1,c,p=i(()=>{if(c)return c;let R=(async()=>{u||(o.ownsHost?await o.shutdown():await o.close(),u=!0),a||(await s.close(),a=!0)})();return c=R,R.then(()=>{c===R&&(c=void 0)},()=>{c===R&&(c=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(c=>c.status==="rejected").map(c=>c.reason);throw u.length>0?new AggregateError([s,...u],"Hosted daemon initialization failed and cleanup was incomplete."):s}}i(FR,"createInProcessExternalAgentDaemon");async function jR(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=ll({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=fr(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),o=Em(r.identity);Js(r.capabilities,{...e.requirements,hardDispose:!0});let s=fi({identity:{...o,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:fr(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 HR(t.transport.request("runtime.shutdown"),n)}catch(I){R=I}try{await t.terminate(),a=!0}catch(I){throw R!==void 0?new AggregateError([R,I],"Runtime Worker shutdown and forced termination both failed."):I}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(jR,"createWorkerHostedKodaXRuntime");function Js(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?.actorSettlementConvergence===void 0&&n?.sessionEventJournal===void 0&&n?.daemonManagement===void 0&&n?.daemonOrphanExit===void 0&&n?.daemonShutdownVerification===void 0&&n?.runtimeEventCoalescing===void 0&&n?.integrationConfigResilience===void 0&&n?.actorControlPlane===void 0&&n?.sandboxRuntime===void 0&&n?.runtimeAutoModeGuardrail===void 0)return;let t=fr(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&&Sl(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],["actorSettlementConvergence",n.actorSettlementConvergence],["sessionEventJournal",n.sessionEventJournal],["daemonManagement",n.daemonManagement],["daemonOrphanExit",n.daemonOrphanExit],["daemonShutdownVerification",n.daemonShutdownVerification],["runtimeEventCoalescing",n.runtimeEventCoalescing],["integrationConfigResilience",n.integrationConfigResilience],["actorControlPlane",n.actorControlPlane],["sandboxRuntime",n.sandboxRuntime],["runtimeAutoModeGuardrail",n.runtimeAutoModeGuardrail]];for(let[o,s]of r)s!==void 0&&Sl(t,o,s)}i(Js,"assertRuntimeCapabilities");function Sl(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(Sl,"assertVersionedRuntimeCapability");async function HR(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(HR,"settleWithin");async function sm(e={}){return am(e,!0)}i(sm,"connectKodaXRuntime");function js(e,n,t){let r=e[n];return oe(r)&&Number.isSafeInteger(r.version)&&Number(r.version)>=t}i(js,"hasVersionedRuntimeCapability");async function $R(e){if(!js(e.capabilities,"daemonManagement",1))throw new wn("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);if(process.platform==="win32"&&!js(e.capabilities,"daemonShutdownVerification",1))throw new wn("The running Windows daemon predates authoritative process containment. Stop it explicitly before upgrading; it cannot be migrated safely in place.",void 0,void 0,e.requiredCapability);let n=fi({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(),process.platform==="win32"&&(t.owner.processContainment!=="windows-job"||!Number.isSafeInteger(t.owner.supervisorPid)||t.owner.supervisorPid<=0))throw new wn("The running Windows daemon did not provide an authoritative Job containment owner. Stop it explicitly before upgrading; it cannot be migrated safely in place.",t.preflight,void 0,e.requiredCapability);if(!t.preflight.canStop)throw new wn(`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(r){throw r instanceof wn?r:new wn("The running daemon changed while preparing its safe capability upgrade. Retry after active and queued work has settled.",t?.preflight,{cause:r},e.requiredCapability)}finally{let r=!1;await n.close().then(()=>{r=!0}).catch(o=>{we({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon client after upgrade attempt.",detail:$e(o)})}),r||await e.lease.close().catch(o=>{we({source:"runtime.daemon.upgrade",level:"warn",message:"Failed to close the legacy daemon process lease after client cleanup failed.",detail:$e(o)})})}try{if(process.platform==="win32"){if(t===void 0)throw new wn("The legacy Windows daemon stopped without a verifiable owner identity.",void 0,void 0,e.requiredCapability);let r=await Is({configHome:e.lease.paths.configHome,profile:e.lease.paths.profile,owner:t.owner,timeoutMs:e.startupTimeoutMs});if(r.status!=="succeeded"){let o=r.status==="unverified"?r.reason:r.status;throw new wn(`The legacy Windows daemon accepted the upgrade stop, but its process-tree shutdown was not verified (${o}). Stop it explicitly and retry.`,void 0,void 0,e.requiredCapability)}}else{let r=Date.now()+e.startupTimeoutMs;for(;ze(e.lease.paths.lockFile)!==void 0;){if(Date.now()>=r)throw new wn("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(r){if(process.platform==="win32")throw new wn("The legacy Windows daemon did not prove that its process tree stopped. Daemon ownership remains disabled; stop every legacy KodaX process, then call `enableKodaXDaemonOwner(...)` and retry.",void 0,{cause:r},e.requiredCapability);try{yi(e.lease.paths)}catch(o){throw new wn("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([r,o])},e.requiredCapability)}throw r}try{yi(e.lease.paths)}catch(r){throw new wn("The legacy daemon stopped, but daemon ownership could not be re-enabled automatically. Call `enableKodaXDaemonOwner(...)` from the SDK and retry.",void 0,{cause:r},e.requiredCapability)}}i($R,"replaceRuntimeDaemonForCapabilityUpgrade");async function am(e,n){Cs("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),Cs("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs),Cs("daemonOrphanExitMs",e.daemonOrphanExitMs);let t=e.endpoint!==void 0?dm(e.endpoint):void 0,r=Ws(e.homeDir),o=e.transport===void 0&&e.autoStart===!0?await ol({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?nr(e.profile??"default",Vt(r.homeDir,r.configHome)):void 0),a=e.transport??o?.transport??(s!==void 0?await zn(s,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!a)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let u=KR(e),c,p={},R,I,g=!1;try{let f={name:e.clientInfo?.name??"kodax-sdk",instanceId:e.clientInfo?.instanceId??`sdk_${Qe().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}:{}},C=fr(await a.request("initialize",{profile:e.profile??"default",connectionPurpose:"client",autoStart:e.autoStart===!0,...u!==void 0?{token:u}:{},clientInfo:f,capabilities:{...e.capabilities,operationDeduplication:!0},...s!==void 0?{endpoint:s.path}:{}}));c=Em(C.identity),p=C.capabilities===void 0?{}:fr(C.capabilities),R=typeof C.journalEpoch=="string"?C.journalEpoch:void 0,I=qR(C.grantedScopes);let m={...e.requirements,sessionEventJournal:1,...e.autoStart===!0?{actorSettlementConvergence:1,managedRunDurability:1,...process.platform==="win32"?{daemonShutdownVerification:1,sandboxRuntime:3}:{},runtimeAutoModeGuardrail:4,runtimeEventCoalescing:1,...e.daemonOrphanExitMs!==void 0?{daemonOrphanExit:1}:{}}:{}},k=[{name:"actorSettlementConvergence",version:m?.actorSettlementConvergence},{name:"managedRunDurability",version:m?.managedRunDurability},{name:"sessionEventJournal",version:m?.sessionEventJournal},{name:"runtimeAutoModeGuardrail",version:m?.runtimeAutoModeGuardrail},{name:"runtimeEventCoalescing",version:m?.runtimeEventCoalescing},{name:"daemonShutdownVerification",version:m?.daemonShutdownVerification},{name:"sandboxRuntime",version:m?.sandboxRuntime},{name:"daemonOrphanExit",version:m?.daemonOrphanExit}].find(v=>v.version!==void 0&&!js(p,v.name,v.version));if(k!==void 0){if(!n||e.autoStart!==!0||o===void 0)throw new wn(`Runtime daemon does not support ${k.name} v${k.version}. Stop all daemon work and restart it with a compatible KodaX installation.`,void 0,void 0,k.name);if(k.name==="daemonShutdownVerification")throw new wn("The running Windows daemon predates authoritative process containment. Stop it explicitly before requiring daemonShutdownVerification v1; it cannot be migrated safely in place.",void 0,void 0,k.name);try{await $R({identity:c,capabilities:p,transport:a,lease:o,...R!==void 0?{journalEpoch:R}:{},...I!==void 0?{grantedScopes:I}:{},startupTimeoutMs:e.daemonStartupTimeoutMs??6e4,requiredCapability:k.name,requiredVersion:k.version})}finally{g=!0}return am(e,!1)}Js(p,m);let l=e.profile??"default";if(c.profile!==l)throw new Error(`Runtime daemon profile mismatch: expected ${l}, got ${c.profile}`)}catch(f){throw g||(o!==void 0?await o.close():await a.close?.()),f}let x=fi({identity:{...c,mode:"daemon",isolation:"process"},transport:a,capabilities:p,...R!==void 0?{journalEpoch:R}:{},...I!==void 0?{grantedScopes:I}:{}});return o?{...x,async close(){await x.close()}}:x}i(am,"connectKodaXRuntimeInternal");function Cs(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}i(Cs,"assertPositiveRuntimeTimeout");function qR(e){if(!Array.isArray(e))return;let n=e.filter(t=>typeof t=="string"&&BR(t));return n.length===e.length?n:void 0}i(qR,"parseRuntimeGrantedScopes");function BR(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(BR,"isRuntimeGrantedScope");function KR(e){if(e.daemonToken!==void 0)return e.daemonToken;if(!(e.transport!==void 0&&e.autoStart!==!0))return Pr(pr(e.homeDir,e.profile).paths)}i(KR,"resolveConnectDaemonToken");function dm(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}i(dm,"normalizeRuntimeDaemonEndpoint");function XR(e,n){let t=new Map,r=new Map,o=new Set,s=i((u,c)=>{let R=(r.get(u)??Promise.resolve()).then(c),I=R.then(()=>{},()=>{});return r.set(u,I),I.then(()=>{r.get(u)===I&&r.delete(u)}),R},"enqueue"),a=i((u,c,p)=>{t.set(u,c);for(let R of o)R(u,c,p);n.emit("session.settings.updated",{sessionId:u,revision:c.revision,settings:c.value,patch:p},{sessionId:u,runId:u})},"publish");return{async read(u){await(r.get(u)??Promise.resolve());let c=e.loadSessionSettingsVersioned(u);return t.set(u,c),c},peek(u){return t.get(u)},update(u,c,p,R){return s(u,()=>{let I=e.loadSessionSettingsVersioned(u);if(p!==void 0&&I.revision!==p)throw Zn(`Session settings revision ${p} is stale; current revision is ${I.revision}`,I.revision);let g=lw(I.value,c);R(g);let x={revision:I.revision+1,value:g};return e.saveSessionSettingsVersioned(u,x),a(u,x,c),x})},async persistAutoModeEngine(u,c){let p=t.get(u)??e.loadSessionSettingsVersioned(u);t.set(u,{revision:p.revision,value:{...p.value,autoModeEngine:c}}),await s(u,()=>{let R=e.loadSessionSettingsVersioned(u);if(R.value.autoModeEngine===c){t.set(u,R);return}let I={revision:R.revision+1,value:{...R.value,autoModeEngine:c}};e.saveSessionSettingsVersioned(u,I),a(u,I,{autoModeEngine:c})})},subscribe(u){return o.add(u),{close:i(()=>{o.delete(u)},"close")}},release(u){t.delete(u),r.delete(u)}}}i(XR,"createRuntimeSessionSettingsOwner");function UR(){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(UR,"createRuntimeSessionOperationGate");function WR(e,n,t,r,o,s,a,u,c,p,R,I,g,x,f,C,m,k){let l=new Set,v=i((y,F,j)=>({id:y,title:F.title,...F.gitRoot?{gitRoot:F.gitRoot}:{},...F.runtimeInfo?.workspaceRoot?{workspaceRoot:F.runtimeInfo.workspaceRoot}:{},...F.runtimeInfo?.surface?{surface:F.runtimeInfo.surface}:{},...F.runtimeInfo?.profileId?{profileId:F.runtimeInfo.profileId}:{},...j?{createdAt:j}:{}}),"toRuntimeSession"),h=i(y=>({revision:y.revision,sourceRevision:y.sourceRevision,status:y.status,issues:y.issues,entries:y.entries,hasMore:y.hasMore,...y.nextEnd!==void 0?{nextCursor:Vi({kind:"conversation_cache_page",view:"conversation",revision:y.revision,end:y.nextEnd})}:{}}),"toRuntimeConversationPage"),P=new Map,T=new Map,_=new Map,N=new Map,q=new Map,te=new Map,de=0,Ie=new Map,Te=new Set,Pe=new Set,be=0,ve,Fe=0,Ce=!1,je=!1,Ge=new Set,cn=new Map,an,bn=i(()=>{an!==void 0&&(clearInterval(an),an=void 0)},"clearTranscriptSnapshotLease"),rn=i(()=>{if(ve!==void 0)try{le(),U();let y=new Date;$.utimesSync(ve,y,y)}catch(y){process.emitWarning(`Unable to refresh transcript snapshot lease: ${$e(y).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_LEASE_FAILED"})}},"refreshTranscriptSnapshotLease"),nn=i(()=>{let y=qr.tmpdir(),F=Date.now()-xs;try{for(let j of $.readdirSync(y,{withFileTypes:!0})){if(!j.isDirectory()||!j.name.startsWith(hl))continue;let J=Y.join(y,j.name);$.statSync(J).mtimeMs>F||$.rmSync(J,{recursive:!0,force:!0})}}catch(j){process.emitWarning(`Unable to prune expired transcript snapshots: ${$e(j).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"pruneStaleTranscriptSnapshotDirs"),d=i(y=>{let F=Ie.get(y);F!==void 0&&(Ie.delete(y),de-=F)},"releaseTranscriptSnapshotBytes"),b=i(y=>(Pe.add(y),y.then(()=>Pe.delete(y),()=>Pe.delete(y)),y),"trackTranscriptSnapshotOperation"),B=i(()=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(be>=Ui)throw yv();be+=1;let y=!1;return()=>{y||(y=!0,be-=1)}},"acquireTranscriptSnapshotIo"),E=i(()=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let y=ve===void 0;if(ve!==void 0)try{y=$.statSync(ve).isDirectory()}catch(F){(!oe(F)||F.code!=="ENOENT"&&F.code!=="ENOTDIR")&&process.emitWarning(`Unable to inspect transcript snapshot directory: ${$e(F).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_DIRECTORY_FAILED"}),y=!1}if(!y){bn(),P.clear(),T.clear();for(let F of[...Ie.keys()])if(!Te.has(F)){if((cn.get(F)??0)>0){Ge.add(F);continue}d(F),Ge.delete(F)}ve=void 0}return ve===void 0&&(nn(),ve=$.mkdtempSync(Y.join(qr.tmpdir(),hl)),Fe+=1,an=setInterval(rn,Math.floor(xs/2)),an.unref?.()),ve},"ensureTranscriptSnapshotDir"),A=i((y,F,j)=>`${j}\0${y}\0${F}`,"transcriptSnapshotKey"),H=i((y,F,j)=>`${j}\0${y}\0${F}`,"transcriptSourceKey"),X=i(y=>{if((cn.get(y)??0)>0){Ge.add(y);return}try{$.rmSync(y,{force:!0}),Ge.delete(y),d(y)}catch(F){Ge.add(y),process.emitWarning(`Unable to remove transcript snapshot: ${$e(F).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"})}},"removeTranscriptSnapshotFile"),ee=i((y,F)=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");let j=Ie.get(y)??0;if(j+F>Hr)throw Hi();for(;de+F>Hr;){let J=P.keys().next().value;if(J===void 0)throw Hi();D(J)}Ie.set(y,j+F),de+=F},"reserveTranscriptSnapshotBytes"),ge=i(y=>{for(;Ie.size>=Ui;){let F=P.keys().next().value;if(F===void 0)throw Hi();D(F)}Ie.set(y,0);try{ee(y,Ps)}catch(F){throw d(y),F}},"reserveTranscriptSnapshotFile"),D=i(y=>{let F=P.get(y);if(F===void 0)return;P.delete(y);let j=H(F.sessionId,F.sourceRevision,F.view);T.get(j)===F.revision&&T.delete(j),X(F.filePath)},"removeTranscriptSnapshot"),U=i(()=>{let y=Date.now();for(let[F,j]of P)j.expiresAt<=y&&D(F)},"pruneExpiredTranscriptSnapshots"),le=i(()=>{for(let y of Ge)X(y)},"retryDeferredTranscriptSnapshotCleanup"),G=i(y=>{cn.set(y,(cn.get(y)??0)+1);let F=!1;return()=>{if(F)return;F=!0;let j=(cn.get(y)??1)-1;if(j>0){cn.set(y,j);return}cn.delete(y),Ge.has(y)&&X(y)}},"acquireTranscriptSnapshotReader"),he=i(async(y,F,j)=>{let J=G(y.filePath),V;try{V=B()}catch(Ee){throw J(),Ee}let ie=b(Promise.resolve().then(j)),ye=i(()=>{J(),V?.()},"releaseResources");ie.then(ye,ye);try{return await jn(()=>ie,F)}catch(Ee){if(gv(Ee)){let De=[...P.entries()].find(([,He])=>He.filePath===y.filePath);De!==void 0&&D(De[0])}throw Ee}},"readTranscriptSnapshot"),S=i(async(y,F,j)=>{if(F.conversation===void 0)throw xe("Conversation snapshot metadata is unavailable");let J;try{J=await t.storage.readConversationPageBoundary(y,Oe(j))}catch(V){throw V instanceof mn&&V.code==="data_changed"?xe(V.message):V}if(J===null)throw xe("Session moved or was removed; request a fresh boundary");if(m.assertCachedIdentity(y,J.admission),J.boundaryRevision!==F.conversation.boundaryRevision)throw D(A(y,F.revision,"conversation")),xe("Conversation history changed; request a fresh boundary")},"assertConversationSnapshotCurrent"),M=i(async(y,F)=>{Oe(F);let j=_.get(y);if(j===void 0){let J=new AbortController,V=b(m.captureRequired(y,{signal:J.signal}));j={controller:J,promise:V,waiters:0,settled:!1},_.set(y,j);let ie=j,ye=i(()=>{ie.settled=!0,_.get(y)===ie&&_.delete(y)},"settle");V.then(ye,ye)}j.waiters+=1;try{return await jn(()=>j.promise,F)}finally{j.waiters-=1,j.waiters===0&&!j.settled&&(_.get(y)===j&&_.delete(y),j.controller.abort())}},"readSessionCaptureOnce"),O=i(async(y,F)=>{for(let j=0;j<=wl.length;j+=1)try{return await M(y,F)}catch(J){if(!(J instanceof mn)||J.code!=="data_changed")throw J;let V=wl[j];if(V===void 0)throw xe(J.message);await jn(()=>new Promise(ie=>setTimeout(ie,V)),F)}throw new Error("unreachable session capture retry state")},"readSessionCapture"),K=i(async(y,F,j,J,V,ie="",ye)=>{if(Ce)throw new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");U();let Ee=ye===void 0?0:Buffer.byteLength(JSON.stringify(ye),"utf8"),De=E(),He=Fe,Me=Y.join(De,`${Qe()}.entries`),Ue=B(),Se=Ps+Ee;try{for(let Je=0;Je<F.length;Je+=1)if(Je>0&&Je%256===0&&await sr(J),Oe(J),Se+=Buffer.byteLength(JSON.stringify(F[Je]),"utf8"),Se>Hr)throw Hi()}catch(Je){throw Ue(),Je}try{ge(Me);let Je=Se-Ps;Je>0&&ee(Me,Je)}catch(Je){throw d(Me),Ue(),Je}Te.add(Me);let ln=b((async()=>{let Je=[],Tn=Dt("sha256");Tn.update(V==="transcript"?"kodax-transcript-entries-v1\0":"kodax-conversation-history-v1\0"),ie.length>0&&(Tn.update(`${Buffer.byteLength(ie,"utf8")}:`),Tn.update(ie));let na=await $.promises.open(Me,"wx"),ta=0,Nt=[],gr=0,ra=i(async()=>{if(gr===0)return;let dt=Nt.length===1?Nt[0]:Buffer.concat(Nt,gr);Nt=[],gr=0,await cw(na,dt),Oe(J)},"flushPendingWrites");try{for(let dt=0;dt<F.length;dt+=1){dt>0&&dt%256===0&&await sr(J),Oe(J);let ia=F[dt],Un=Buffer.from(JSON.stringify(ia),"utf8");Tn.update(`${Un.length}:`),Tn.update(Un);let oa=[];for(let zr=0;zr<Un.length;zr+=jr)oa.push(Dt("sha256").update(Un.subarray(zr,Math.min(Un.length,zr+jr))).digest("hex"));Je.push({offset:ta,byteLength:Un.length,chunkDigests:oa,...sw(ia)}),ta+=Un.length,Nt.push(Un),gr+=Un.length,(Nt.length>=ER||gr>=PR)&&await ra()}await ra()}finally{await na.close()}Oe(J);let Mm=V==="conversation"&&ye!==void 0?So({sourceRevision:ye.sourceRevision,status:ye.status,issues:ye.issues,entries:F}):`sha256:${Tn.digest("hex")}`;return{entries:Je,revision:Mm}})());ln.then(()=>{Te.delete(Me),Ue()},()=>{Te.delete(Me),Ue()});let on;try{on=await jn(()=>ln,J),Oe(J)}catch(Je){throw ln.then(()=>X(Me),Tn=>{Tn!==Je&&!Gi(Je)&&!Gi(Tn)&&process.emitWarning(`Transcript snapshot materialization failed after its caller stopped waiting: ${$e(Tn).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_BACKGROUND_FAILED"}),X(Me)}),Rv(Je,Ce)}let{entries:Ye,revision:Hn}=on;if(Ce)throw X(Me),new mn("read_cancelled","Runtime history read cancelled because the Runtime is closing");if(He!==Fe||!$.existsSync(Me))throw X(Me),xe("Transcript snapshot directory changed; request a fresh boundary");let Jr=A(y,Hn,V);for(D(Jr),P.set(Jr,{sessionId:y,view:V,revision:Hn,sourceRevision:j,filePath:Me,entries:Ye,...ye!==void 0?{conversation:ye}:{},expiresAt:Date.now()+xs}),T.set(H(y,j,V),Hn),rn();P.size>kR;){let Je=P.keys().next().value;if(Je===void 0)break;D(Je)}return Hn},"materializeTranscriptSnapshot"),W=i((y,F,j="transcript")=>{let J=A(y,F,j),V=P.get(J);if(V!==void 0){if(V.expiresAt<=Date.now()){D(J);return}if(!$.existsSync(V.filePath)){D(J);return}return P.delete(J),P.set(J,V),{revision:V.revision,view:V.view,sourceRevision:V.sourceRevision,filePath:V.filePath,entries:V.entries,...V.conversation!==void 0?{conversation:V.conversation}:{}}}},"getTranscriptSnapshot"),Z=i(async(y,F,j,J,V="transcript",ie="",ye)=>{Oe(J),U();let Ee=H(y,j,V),De=T.get(Ee);if(De!==void 0&&W(y,De,V)!==void 0)return De;let He=N.get(Ee);if(He===void 0){let Me=new AbortController,Ue=Fn({signal:Me.signal}),Se=K(y,F,j,Ue,V,ie,ye);He={controller:Me,promise:Se,waiters:0,settled:!1},N.set(Ee,He);let ln=He,on=i(()=>{ln.settled=!0,N.get(Ee)===ln&&N.delete(Ee)},"settle");Se.then(on,on)}He.waiters+=1;try{return await jn(()=>He.promise,J)}finally{He.waiters-=1,He.waiters===0&&!He.settled&&(N.get(Ee)===He&&N.delete(Ee),He.controller.abort())}},"rememberTranscriptSnapshot"),re=i(async(y,F)=>{Oe(F);let j=r.currentSessionCursor(y),J=te.get(y)??0,V=q.get(y);if(V!==void 0&&(!_s(V.sessionCursor,j)||V.sourceGeneration!==J)&&(q.delete(y),V=void 0),V===void 0){let ie=new AbortController,ye=Fn({signal:ie.signal}),Ee=b((async()=>{let Me=await O(y,ye),Ue=Me.transcript.lineage??_R(y,Me.sourceRevision,Me.transcript.messages),Se=Me.transcript.lineage===void 0?Ue.entries.flatMap(on=>on.type==="message"?[{entryId:on.id,parentId:on.parentId,logicalId:on.logicalId??on.id,...on.sourceEntryId===void 0?{}:{sourceEntryId:on.sourceEntryId},timestamp:on.timestamp,type:"message",message:on.message,active:!0}]:[]):Me.transcript.transcriptEntries,ln=await Z(y,Se,Me.sourceRevision,ye);return{capture:Me,revision:ln,lineage:Ue,transcriptEntries:Se}})());V={controller:ie,sessionCursor:j,sourceGeneration:J,promise:Ee,waiters:0,settled:!1},q.set(y,V);let De=V,He=i(()=>{De.settled=!0,q.get(y)===De&&q.delete(y)},"settle");Ee.then(He,He)}V.waiters+=1;try{return await jn(()=>V.promise,F)}finally{V.waiters-=1,V.waiters===0&&!V.settled&&(q.get(y)===V&&q.delete(y),V.controller.abort())}},"readMaterializedSessionCapture"),ne=i(y=>{te.set(y,(te.get(y)??0)+1),q.delete(y)},"invalidateMaterializedSessionCapture"),z=i(()=>{if(!je){for(let y of[...P.keys()])D(y);ve!==void 0&&($.rmSync(ve,{recursive:!0,force:!0}),ve=void 0),de=0,Ie.clear(),T.clear(),Te.clear(),be=0,cn.clear(),Ge.clear(),je=!0}},"finalizeTranscriptSnapshots"),se=i((y=1)=>{try{z()}catch(F){if(process.emitWarning(`Deferred transcript snapshot cleanup failed: ${$e(F).message}`,{code:"KODAX_TRANSCRIPT_SNAPSHOT_CLEANUP_FAILED"}),y>=3)return;setTimeout(()=>se(y+1),y*100).unref?.()}},"retryDeferredTranscriptSnapshotFinalization"),ae=i(()=>{Ce=!0,bn();for(let y of _.values())y.controller.abort();_.clear();for(let y of N.values())y.controller.abort();N.clear();for(let y of q.values())y.controller.abort();q.clear(),te.clear()},"beginCloseTranscriptSnapshots");k(ae,i(async()=>{ae();let y=Promise.allSettled([...Pe]),F=!1;if(await Promise.race([y.then(()=>{F=!0}),new Promise(j=>{setTimeout(j,xR).unref?.()})]),F){z();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"}),y.then(()=>se())},"disposeTranscriptSnapshots"));let fe=i(async(y,F)=>{let j=Fn(F);for(let J=0;J<Rl;J+=1){let V=r.currentSessionCursor(y),[ie,ye,Ee]=await Promise.all([re(y,j),jn(()=>c(y),j),jn(()=>I(y),j)]),De=await jn(()=>u.read(y),j),{capture:He,revision:Me}=ie;Oe(j);let Ue=r.currentSessionCursor(y);if(!_s(V,Ue))continue;let Se=W(y,Me);if(Se===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");let ln=await he(Se,j,()=>Ns(Se,j));return{runtimeId:e.runtimeId,cursor:Ue,transcriptRevision:Me,session:v(y,He.data),transcript:ln,settings:De,runs:ye,pendingPermissions:Ee,live:r.projectSession(y)}}throw xe(`Session ${y} changed continuously while taking a snapshot`)},"captureObservationSnapshot"),Be=i(async y=>{let F=Fn(y);for(let j=0;j<Rl;j+=1){let J=r.currentSessionCursor(y.sessionId),[V,ie]=await Promise.all([O(y.sessionId,F),jn(()=>y.runId===void 0?p(y.sessionId):R(y.runId).then(Ee=>Ee===void 0?[]:[Ee]),F)]);Oe(F);let ye=r.currentSessionCursor(y.sessionId);if(_s(J,ye))return{runtimeId:e.runtimeId,cursor:ye,transcriptRevision:ew(V.transcript),runs:ie.filter(Ee=>Ee.sessionId===y.sessionId)}}throw xe(`Session ${y.sessionId} changed continuously while taking a diagnostic snapshot`)},"captureDiagnosticBoundary"),yn=i((y,F)=>x.run(y,async()=>{s();let j=await m.loadExecutable(y);try{return await f(y,"mutate",()=>F(j))}finally{ne(y)}}),"mutateActiveSession");return{async create(y={}){s(),m.assertCreate(y);let F=y.sessionId??await mo();if(l.has(F))throw Object.assign(new Error(`Session already exists: ${F}`),{code:"conflict"});l.add(F);try{if(y.sessionId!==void 0&&await t.loadSession(F)!==null)throw Object.assign(new Error(`Session already exists: ${F}`),{code:"conflict"});let j=y.projectPath?Y.resolve(y.projectPath):void 0,J=y.gitRoot?Y.resolve(y.gitRoot):j,V=Wh(y,j,J),ie={messages:[],title:y.title??"",gitRoot:J??"",...y.tag!==void 0?{tag:y.tag}:{},...V!==void 0?{runtimeInfo:V}:{},scope:"user"};r.prepareSessionJournal(F),y.sessionId===void 0?await t.storage.createGenerated(F,ie):await t.storage.save(F,ie);let ye=v(F,ie,new Date().toISOString());return r.emit("session.created",ye,{sessionId:F,runId:F}),ye}finally{l.delete(F)}},async load(y,F){s();let j=Fn(F),J=await m.loadRequired(y,Oe(j));return v(y,J)},async list(y){return s(),m.assertFilter(y),(await t.listSessions(y)).filter(m.admitsSummary).map(gm)},async status(y){s(),await m.loadRequired(y);let F=await c(y),j=Cm(F);return{sessionId:y,runtimeId:e.runtimeId,observedAt:new Date().toISOString(),phase:j?.phase??"idle",...j!==void 0?{runId:j.runId}:{}}},async transcript(y,F){s();let j=Fn(F);return structuredClone((await O(y,j)).transcript)},async transcriptPage(y,F){s();let j=Fn(F);Oe(j);let J=y.cursor===void 0?void 0:$r(y.cursor).revision;if(J!==void 0){let He=W(y.sessionId,J);if(He===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");return he(He,j,()=>Ns(He,j,y.cursor,y.limit))}let V=await re(y.sessionId,j),ye=V.capture.transcript,Ee=V.revision,De=W(y.sessionId,Ee);if(De===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");return he(De,j,()=>Ns(De,j,void 0,y.limit))},async transcriptEntryChunk(y,F){s();let j=Fn(F);Oe(j);let J=W(y.sessionId,y.revision);if(J===void 0)throw xe("Transcript snapshot is no longer retained; request a fresh boundary");return he(J,j,()=>aw(y,J,j))},async transcriptSearch(y,F){s(),Da(y.query);let j=Fn(F),J=await re(y.sessionId,j),ie=J.capture.transcript,ye=J.revision;await sr(j);let Ee=J.lineage,De=await Ma(Ee,{query:y.query,limit:y.limit,role:y.role,scope:y.scope},{revision:ye,checkpoint(){Oe(j)},yieldControl(){return sr(j)}});Oe(j);let He=new Map;for(let Ue=0;Ue<J.transcriptEntries.length;Ue+=1){Ue%256===0&&await sr(j);let Se=J.transcriptEntries[Ue]?.entryId;Se!==void 0&&He.set(Se,Ue)}Oe(j);let Me=De.hits.flatMap(Ue=>{let Se=He.get(Ue.entryId);return Se===void 0?[]:[{...Ue,entryIndex:Se}]});return Oe(j),{revision:ye,hits:Me}},async conversation(y,F){s();let j=Fn(F),J=await O(y,j);Oe(j);let V=bo(J,()=>Oe(j));await sr(j);let ie=iw(V);Oe(j);let ye=structuredClone({...V,revision:ie});return Oe(j),ye},async conversationPage(y,F){s();let j=Fn(F);Oe(j);let J=y.limit??rm;if(!Number.isSafeInteger(J)||J<=0)throw new Error("transcript page limit must be a positive safe integer");let V=Math.min(J,im),ie=y.cursor===void 0?void 0:$r(y.cursor);if(ie===void 0||ie.kind==="conversation_cache_page")try{let Se=await t.storage.readConversationPageCache(y.sessionId,{...ie?.kind==="conversation_cache_page"?{expectedRevision:ie.revision,end:ie.end}:{},limit:V,maxPageBytes:_t,maxInlineEntryBytes:Xi,reservedBytes:0,authorize:i(ln=>m.assertCachedIdentity(y.sessionId,ln),"authorize")},Oe(j));if(Se!==null)return h(Se)}catch(Se){throw Se instanceof Io?Yi():Se instanceof mn&&Se.code==="data_changed"?xe(Se.message):Se}let ye=ie===void 0?void 0:ie.revision;if(ye!==void 0){let Se=W(y.sessionId,ye,"conversation");if(Se===void 0)throw xe("Conversation snapshot is no longer retained; request a fresh boundary");return await S(y.sessionId,Se,j),he(Se,j,()=>Bl(Se,j,y.cursor,y.limit))}let Ee=await O(y.sessionId,j);Oe(j);let De=bo(Ee,()=>Oe(j));if(Ee.transcript.lineage!==void 0)try{await t.storage.prepareConversationPageCache(y.sessionId,De,Ee.transcript.lineage,Ee.data.runtimeInfo,Ee.boundaryRevision,Ee.sourceRevisionState,Oe(j));let Se=await t.storage.readConversationPageCache(y.sessionId,{limit:V,maxPageBytes:_t,maxInlineEntryBytes:Xi,reservedBytes:0,authorize:i(ln=>m.assertCachedIdentity(y.sessionId,ln),"authorize")},Oe(j));if(Se!==null)return h(Se)}catch(Se){if(Se instanceof Io)throw Yi();if(Se instanceof mn&&Se.code==="data_changed")throw xe(Se.message);process.emitWarning(`Unable to prepare bounded Conversation pages: ${$e(Se).message}`,{code:"KODAX_CONVERSATION_PAGE_CACHE_FAILED"})}let He={sourceRevision:De.sourceRevision,status:De.status,issues:De.issues,boundaryRevision:Ee.boundaryRevision},Me=await Z(y.sessionId,De.entries,De.sourceRevision,j,"conversation",rw(De),He),Ue=W(y.sessionId,Me,"conversation");if(Ue===void 0)throw xe("Conversation snapshot is no longer retained; request a fresh boundary");return he(Ue,j,()=>Bl(Ue,j,void 0,y.limit))},async conversationEntryChunk(y,F){s();let j=Fn(F);if(Oe(j),!Number.isSafeInteger(y.entryIndex)||y.entryIndex<0)throw new Error(`Transcript entry index is out of range: ${y.entryIndex}`);let J=W(y.sessionId,y.revision,"conversation");if(J!==void 0)return await S(y.sessionId,J,j),he(J,j,()=>dw(y,J,j));let V=0;if(y.cursor!==void 0){let ie=$r(y.cursor);if(ie.kind!=="entry"||ie.view!=="conversation"||ie.revision!==y.revision||ie.entryIndex!==y.entryIndex)throw xe("Conversation entry cursor is stale");V=ie.offset}try{let ie=await t.storage.readConversationPageCacheChunk(y.sessionId,{revision:y.revision,entryIndex:y.entryIndex,offset:V,authorize:i(ye=>m.assertCachedIdentity(y.sessionId,ye),"authorize")},Oe(j));if(ie!==null){let ye=ie.nextOffset!==void 0;return{revision:ie.revision,entryIndex:ie.entryIndex,...ie.boundaryId!==void 0?{boundaryId:ie.boundaryId}:{},encoding:"base64-json",data:ie.data.toString("base64"),hasMore:ye,...ie.nextOffset!==void 0?{nextCursor:Vi({kind:"entry",view:"conversation",revision:ie.revision,entryIndex:ie.entryIndex,offset:ie.nextOffset})}:{}}}}catch(ie){throw ie instanceof mn&&ie.code==="data_changed"?xe(ie.message):ie}throw xe("Conversation snapshot is no longer retained; request a fresh boundary")},async observe(y,F,j){s();let J=[],V,ie=!1,ye=!1,Ee=!1,De=!1,He,Me,Ue=new Promise(Ye=>{He=Ye}),Se=i((Ye,Hn)=>{ie||De||(De=!0,on.close(),Me?.close(),He?.({code:"observation_invalidated",reason:Ye,runtimeId:e.runtimeId,message:Hn}))},"invalidate"),ln=i(Ye=>{if(!(ie||De)){if(V!==void 0&&(Ye.cursor.sessionId!==V.sessionId||Ye.cursor.journalEpoch!==V.journalEpoch)){Se("runtime_changed","Session event journal changed; discard local state and resync.");return}if(V!==void 0&&Ye.seq<V.seq){if(!ye)return;Se("event_order",`Session observation event order regressed from ${V.seq} to ${Ye.seq}.`);return}if(!(V!==void 0&&Ye.seq===V.seq)){V=Ye.cursor;try{F(Ye)}catch(Hn){we({source:"runtime.sessions.observe",level:"error",message:`Session observation listener failed for ${Ye.type}`,detail:$e(Hn)}),Se("delivery_failed",`Session observation listener failed while delivering ${Ye.type}; discard local state and resync.`)}}}},"deliver"),on=r.service.subscribe({sessionId:y},Ye=>{if(ye)ln(Ye);else{if(J.length>=bR){Ee=!0,Se("event_overflow","Session observation handoff overflowed; acquire a fresh snapshot.");return}J.push(Ye)}});Me=r.subscribeClose(()=>{Se("runtime_changed","Runtime closed; discard the observation and resync after reconnecting.")});try{let Ye=await fe(y,j);if(Ee)throw xe("Session observation handoff overflowed; acquire a fresh snapshot");V=Ye.cursor;let Hn={snapshot:Ye,invalidated:Ue,close(){ie||(ie=!0,J.length=0,on.close(),Me?.close())}};return queueMicrotask(()=>queueMicrotask(()=>{if(!(ie||De)){for(;J.length>0;){let Jr=J.splice(0).sort((Je,Tn)=>Je.seq-Tn.seq);for(let Je of Jr)ln(Je)}ye=!0}})),Hn}catch(Ye){throw ie=!0,on.close(),Me?.close(),Ye}},async diagnostics(y){s();let F=new Date().toISOString(),j=await Be(y);return hR(e,y,j,F)},async fork(y){if(s(),y.selector!==void 0&&y.historyBoundary!==void 0)throw new Error("fork accepts either selector or historyBoundary, not both");let F=await m.loadRequired(y.sessionId),j;try{j=y.historyBoundary===void 0?await t.forkSession(y.sessionId,{...y.selector!==void 0?{selector:y.selector}:{},...y.newSessionId!==void 0?{sessionId:y.newSessionId}:{},...y.title!==void 0?{title:y.title}:{}}):await t.storage.fork(y.sessionId,y.historyBoundary.entryId,{...y.newSessionId!==void 0?{sessionId:y.newSessionId}:{},...y.title!==void 0?{title:y.title}:{},historyBoundary:{sourceRevision:y.historyBoundary.sourceRevision}})}catch(V){throw em(V)}if(!j&&y.historyBoundary!==void 0)return null;if(!j){let V=y.newSessionId??await mo(),ie={...F,title:y.title??F.title,messages:F.messages.map(Sv),actorSnapshot:void 0};await t.storage.save(V,ie);let ye=v(V,ie);return r.emit("session.created",ye,{sessionId:V,runId:V}),ye}let J=v(j.sessionId,j.data);return r.emit("session.created",J,{sessionId:j.sessionId,runId:j.sessionId}),J},async getSettingsVersioned(y){return s(),await m.loadRequired(y),u.read(y)},async getSettings(y){return(await this.getSettingsVersioned(y)).value},async getAutoModeStats(y){s(),await m.loadRequired(y);let F=(await u.read(y)).value;if(vn(F.permissionMode)!=="auto")return;let j=g(y);return{engine:F.autoModeEngine??j?.engine??"llm",...F.autoModeClassifierModel!==void 0?{classifierModel:F.autoModeClassifierModel}:{},classifierHealth:j?.classifierHealth??"healthy",denials:j?.denials??Ro(),breaker:j?.breaker??yo()}},async updateSettings(y,F){return yn(y,async j=>(await u.update(y,F,void 0,J=>Bs(j,J))).value)},async updateSettingsVersioned(y,F,j){return yn(y,J=>u.update(y,F,j.expectedRevision,V=>Bs(J,V)))},async appendNotice(y){return yn(y.sessionId,async()=>{let F=await t.appendClientNotice(y.sessionId,{content:y.content,...y.source!==void 0?{source:y.source}:{}});return F&&r.emit("session.notice.appended",{sessionId:y.sessionId,entry:F},{sessionId:y.sessionId,runId:y.sessionId}),F})},async rewind(y){return yn(y.sessionId,async()=>{if(ar(y.sessionId,a),y.selector!==void 0&&y.historyBoundary!==void 0)throw new Error("rewind accepts either selector or historyBoundary, not both");let F;try{F=y.historyBoundary===void 0?await t.rewindSession(y.sessionId,{...y.selector!==void 0?{selector:y.selector}:{}}):await t.storage.rewind(y.sessionId,y.historyBoundary.entryId,{historyBoundary:{sourceRevision:y.historyBoundary.sourceRevision}})}catch(J){throw em(J)}if(!F)return null;let j=v(y.sessionId,F);return r.emit("session.rewound",{sessionId:y.sessionId,selector:y.selector,session:j},{sessionId:y.sessionId,runId:y.sessionId}),j})},async setActiveEntry(y){return yn(y.sessionId,async()=>{ar(y.sessionId,a);let F=await t.setActiveEntry(y.sessionId,y.entryId);if(!F)return null;let j=v(y.sessionId,F);return r.emit("session.active_entry.updated",{sessionId:y.sessionId,entryId:y.entryId,session:j},{sessionId:y.sessionId,runId:y.sessionId}),j})},async compact(y){return yn(y.sessionId,async F=>{ar(y.sessionId,a);let j=Date.now(),J=F.lineage?.entries.filter(ie=>ie.type==="compaction").length??0;r.emit("context.compaction.started",{meta:{contextId:y.sessionId,contextKind:"root",contextRevision:J}},{sessionId:y.sessionId,runId:y.sessionId});let V=J;try{let ie=(await u.read(y.sessionId)).value,ye=await t.compactSession(y.sessionId,{...y.provider!==void 0?{provider:y.provider}:{},...y.model!==void 0?{model:y.model}:{},...y.customInstructions!==void 0?{customInstructions:y.customInstructions}:{},...y.contextWindow!==void 0?{contextWindow:y.contextWindow}:{},...(y.triggerPercent??ie.compactionTriggerPercent)!==void 0?{triggerPercent:y.triggerPercent??ie.compactionTriggerPercent}:{},...(y.triggerTokens??ie.compactionTriggerTokens)!==void 0?{triggerTokens:y.triggerTokens??ie.compactionTriggerTokens}:{}}),Ee=await t.loadSession(y.sessionId),De=Ee?v(y.sessionId,Ee):void 0;return V=Ee?.lineage?.entries.filter(He=>He.type==="compaction").length??J,r.emit("context.compaction.finished",{contextId:y.sessionId,contextKind:"root",contextRevision:V,source:"manual",tokensBefore:ye.tokensBefore,tokensAfter:ye.tokensAfter,committed:ye.compacted,elapsedMs:Date.now()-j,beforeRevision:J,afterRevision:V,...ye.report??{},...ye.reason!==void 0?{reason:ye.reason}:{}},{sessionId:y.sessionId,runId:y.sessionId}),ye.compacted&&r.emit("session.compacted",{sessionId:y.sessionId,result:{compacted:ye.compacted,tokensBefore:ye.tokensBefore,tokensAfter:ye.tokensAfter},...De!==void 0?{session:De}:{}},{sessionId:y.sessionId,runId:y.sessionId}),{...ye,...De!==void 0?{session:De}:{}}}finally{r.emit("context.compaction.ended",{meta:{contextId:y.sessionId,contextKind:"root",contextRevision:V}},{sessionId:y.sessionId,runId:y.sessionId})}})},async archive(y){await x.run(y,async()=>{s(),await m.loadRequired(y),ar(y,a),await f(y,"archive",async F=>{if(!F)throw new Error(`Actor owner is unavailable for Session archive: ${y}`);if(!await t.storage.archiveOwned(y,F))throw new Error(`Session not found or not archived: ${y}`)}),ne(y)})},async unarchive(y){await x.run(y,async()=>{s(),await m.loadRequired(y),ar(y,a),await f(y,"unarchive",async F=>{if(!F)throw new Error(`Actor owner is unavailable for Session unarchive: ${y}`);if(!await t.storage.unarchiveOwned(y,F))throw new Error(`Session not found or not unarchived: ${y}`)}),ne(y)})},async delete(y){await x.run(y,async()=>{s(),await m.loadRequired(y),ar(y,a),await f(y,"delete",async F=>{if(!F)throw new Error(`Actor owner is unavailable for Session deletion: ${y}`);let j=(await t.listRunningSessions()).find(J=>J.sessionId===y);j&&nm(y,{error:{code:"session_running",runningProcess:{pid:j.pid,startedAt:j.startedAt}}}),r.retireSessionJournal(y);try{await t.storage.deleteOwned(y,F)}catch(J){try{r.restoreSessionJournal(y)}catch(V){throw new AggregateError([J,V],`Session deletion failed and its event journal could not be restored: ${y}`)}if(oe(J)&&(J.code==="actor_owner_conflict"||J.code==="actor_owner_unknown"))throw J;we({source:"runtime.sessions",level:"error",message:"Owned Session deletion failed.",detail:{sessionId:y,error:J}}),nm(y,{error:{code:"delete_failed"}})}}),ne(y),u.release(y),C(y)})}}}i(WR,"createRuntimeSessionService");function JR(e){let n=new Map,t=new Map,r=new Map,o=new Map,s=new Map,a=i(d=>{let b=e.runs.get(d);if(!b)throw new Error(`Runtime run not found: ${d}`);return b},"getRecord"),u=i(async(d,b)=>{if(Ne(d.status.phase)||b?.ownedByRuntime===!0)return d.status;let B=d.owner??b?.observedOwner,E=b===void 0?d.status:un(b);if(B===void 0)return{...E,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let A=await br(B);if(A==="alive")return d.status;if(A==="unknown")return{...E,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let H=mm(d.status,e.bus,e.persistence);return e.runs.set(H.runId,Lr(H,!1,B)),H},"observePersistedRun"),c=i(async(d,b)=>{if(b?.ownedByRuntime===!0)return un(b);if(Ne(d.status.phase))return d.status;let B=d.owner??b?.observedOwner,E=b===void 0?d.status:un(b);if(B===void 0)return{...E,phase:"unknown",stage:"unknown",error:"owner_liveness_unconfirmed"};let A=await br(B);return A==="alive"?d.status:{...E,phase:"unknown",stage:"unknown",error:A==="dead"?"owner_recovery_required":"owner_liveness_unconfirmed"}},"inspectPersistedRun"),p=i(d=>{n.get(d.sessionId)===d.runId&&n.delete(d.sessionId)},"releaseActiveRun"),R=i(d=>{t.get(d.runId)?.(),t.delete(d.runId)},"releaseActiveQueueRoute"),I=i(d=>{d.releaseAbortSignalSubscription?.(),d.releaseAbortSignalSubscription=void 0},"releaseAbortSignalSubscription"),g=i(d=>{d.actorSession===void 0||t.has(d.runId)||t.set(d.runId,ya(io(d.sessionId,"/root")))},"registerActiveQueueRoute"),x=i((d,b)=>{d.start?.resolve(b),d.start=void 0,delete d.providerCredential},"resolveRunStart"),f=i((d,b)=>(d.settlementFinished===!0&&d.unconfirmedResult===void 0||(d.settlementFinished=!0,delete d.unconfirmedResult,delete d.unconfirmedFailure,I(d),e.permissions.rejectForRun(d.runId,"runtime run ended"),e.userInputs.rejectForRun(d.runId,"runtime run ended"),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),x(d,b),R(d),p(d),Xw(e.runs),Fe(d.sessionId)),b),"finishRun"),C=i((d,b)=>d.settlementFinished===!0?(b.phase==="unknown"&&b.result!==void 0&&(d.unconfirmedResult=b),b):(d.settlementFinished=!0,d.unconfirmedResult=b,b.phase==="unknown"&&d.phase!=="unknown"&&(d.phase="unknown",d.stage="unknown",d.stageChangedAt=new Date().toISOString(),d.error=b.error?.message??"Actor settlement persistence is unknown.",je(d)),I(d),e.permissions.rejectForRun(d.runId,"runtime run state is unknown"),e.userInputs.rejectForRun(d.runId,"runtime run state is unknown"),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),x(d,b),R(d),b),"finishUnconfirmedRun"),m=i(d=>{let b=d.actorSession,B=d.actorTurnBaseline;return b===void 0||B===void 0?[]:b.rootControl().list().actors.flatMap(E=>E.path!=="/root"&&E.currentTurnId!==void 0&&!B.has(E.currentTurnId)?[E.currentTurnId]:[])},"activeManagedActorTurnIds"),k=i((d,b)=>{let B=d.actorSession,E=d.actorTurnBaseline;if(B===void 0||E===void 0)return Promise.resolve({});let H=(d.actorCancellation??Promise.resolve()).then(()=>B.quiesce(b,E)).then(()=>({})).catch(X=>{let ee=$e(X);return we({source:"runtime.run.actor-cancellation",level:"error",message:`Failed to cooperatively cancel Actor descendants for Runtime run ${d.runId}.`,detail:ee}),{error:ee}});return d.actorCancellation=H.then(()=>{}),H},"requestManagedActorCancellation"),l=i(d=>d.actorDurabilityFailure!==void 0&&d.actorDurabilityPreservesExecutorFact!==!0,"actorDurabilityFailureApplies"),v=i(d=>d.capturedExecutorResult!==void 0||d.capturedExecutorFailure!==void 0,"executorPromiseSettled"),h=i(async(d,b)=>{let B=TR;for(;;){let E=await k(d,b);if(e.isClosed()||d.terminalEmitted||d.actorDurabilityFailure===void 0||d.actorSession?.health().state==="healthy"||E.error?.name==="AgentOwnerConflictError"||E.error?.name==="AgentSettlementPersistenceError")return;await new Promise(A=>{setTimeout(A,B).unref?.()}),B=Math.min(B*2,DR)}},"recoverActorDurability");e.setActorSettlementFenceHandler((d,b)=>{if(d.phase==="queued"||d.actorDurabilityFailure!==void 0||d.terminalEmitted)return;let B=b.message??"Actor settlement persistence is unknown; Runtime stopped the owning Run.",E=new Error(B);E.name="AgentSettlementPersistenceError",d.actorDurabilityFailure={phase:"failed",error:E,terminal:{code:"actor_settlement_not_persisted",effectOutcome:"unknown",message:B}},d.actorDurabilityPreservesExecutorFact=d.capturedExecutorResult!==void 0||d.capturedExecutorFailure!==void 0,d.interruptInputOpen=!1,qi(d),I(d),d.running?.abort(E),d.abortController?.abort(E),e.permissions.rejectForRun(d.runId,B),e.userInputs.rejectForRun(d.runId,B),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls();let A=h(d,B);d.actorDurabilityRecovery=A,A.then(()=>{d.actorDurabilityRecovery===A&&(d.actorDurabilityRecovery=void 0),d.actorSession?.health().state==="healthy"&&Pe(d)})});let P=i(async d=>{let b=d.actorFinalizationAbortController??=new AbortController,B=i(()=>({state:"unknown",code:"actor_settlement_not_persisted",message:"Actor finalization could not be confirmed within the bounded grace period."}),"finalizationTimedOut"),E=new AbortController,A,H=Number.POSITIVE_INFINITY,X,ee=new Promise(le=>{X=le}),ge=i(le=>{let G=Date.now()+le;G>=H||(A!==void 0&&clearTimeout(A),H=G,A=setTimeout(()=>{E.abort(new Error("Actor finalization grace expired")),X?.(B())},le),A.unref?.())},"scheduleFinalizationTimer"),D=i(()=>{ge(CR)},"startCancellationTimer");ge(AR),b.signal.addEventListener("abort",D,{once:!0}),(b.signal.aborted||d.stop!==void 0||e.isClosed()||d.running?.aborted===!0||d.abortController?.signal.aborted===!0||d.start?.options.abortSignal?.aborted===!0)&&D();let U=i(async()=>{for(;;){if(E.signal.aborted)return B();let le=d.actorSession;if(le===void 0)return{state:"healthy"};if(d.stop!==void 0&&d.actorTurnBaseline!==void 0&&(await k(d,d.stop.reason),E.signal.aborted))return B();let G=le.health();if(G.state==="recovering"){let re=e.waitForActorHealthChange(d.sessionId),ne,z=new Promise(ae=>{ne=ae}),se=i(()=>ne?.(),"handleFinalizationAbort");E.signal.addEventListener("abort",se,{once:!0});try{await Promise.race([re.promise,z])}finally{E.signal.removeEventListener("abort",se),ne=void 0,re.close()}continue}if(G.state==="unknown"&&d.actorDurabilityRecovery!==void 0){await d.actorDurabilityRecovery;continue}if(G.state==="unknown")return G;let he=le.rootControl(),S=he.list(),M=d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length:S.activeNonRootTurns;if(M>0){if(d.stop?.state!=="unknown"){let me=d.phase!=="waiting_agent",fe=d.activeSubtaskCount!==M;me&&(d.phase="waiting_agent",d.stage="waiting_agent",d.stageChangedAt=new Date().toISOString()),d.activeSubtaskCount=M,(me||fe)&&je(d)}let re=he.eventSnapshot().at(-1)?.sequence??0;if(d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length===0:he.list().activeNonRootTurns===0)continue;let ne=e.waitForActorHealthChange(d.sessionId),z,se=new Promise(me=>{z=me}),ae=i(()=>z?.(),"handleCancellation");b.signal.aborted?ae():b.signal.addEventListener("abort",ae,{once:!0});try{await Promise.race([he.wait(re,void 0,E.signal),ne.promise,se])}finally{b.signal.removeEventListener("abort",ae),z=void 0,ne.close()}continue}let O=S.admissionRevision;await Promise.resolve();let K=le.health();if(K.state==="recovering")continue;let W=he.list();if(!((d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length:W.activeNonRootTurns)>0)&&!(O!==void 0&&W.admissionRevision!==O))return K}},"finalize");try{return await Promise.race([U(),ee])}finally{b.signal.removeEventListener("abort",D),A!==void 0&&clearTimeout(A),E.abort()}},"awaitActorFinalization"),T=i((d,b)=>({runId:d.runId,sessionId:d.sessionId,phase:"unknown",...b!==void 0?{result:b}:{},error:new Error(d.lifecycleError?.message??d.error??"Actor settlement persistence is unknown."),...d.stop!==void 0?{stop:d.stop}:{}}),"unknownActorSettlementResult"),_=i((d,b)=>d.terminalEmitted?f(d,b):C(d,b),"finishAccordingToTerminalFact"),N=i((d,b,B)=>{d.terminalEmitted||d.executorTerminalSignal!==void 0||(d.interruptInputOpen=!1,d.executorTerminalSignal={signal:b,...B!==void 0?{error:B}:{},...b==="failed"?{failure:q(d,B??new Error("Runtime executor reported failure"))}:{},interruptedAtSignal:d.running?.aborted===!0||d.start?.options.abortSignal?.aborted===!0||d.abortController?.signal.aborted===!0},setImmediate(()=>{(async()=>{if(d.settlementFinished===!0)return;let E=d.executorTerminalSignal;if(E===void 0)return;if((await P(d)).state==="unknown"){C(d,T(d));return}if(l(d)){if(!v(d))return;f(d,te(d,d.actorDurabilityFailure));return}if(E.signal==="failed"){f(d,te(d,E.failure??q(d,E.error??new Error("Runtime executor reported failure"))));return}d.terminalEmitted||xt(e.bus,e.persistence,d,E.interruptedAtSignal?"interrupted":"completed"),f(d,{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}})})().catch(E=>{we({source:"runtime.run.finalization",level:"error",message:`Failed to settle Runtime run ${d.runId} after its executor terminal signal.`,detail:E})})}))},"settleFromExecutorSignal"),q=i((d,b)=>{if(l(d))return d.actorDurabilityFailure;if(d.mode==="managed_task"&&d.stop!==void 0&&d.abortController?.signal.aborted===!0&&b instanceof Error&&b.name==="AbortError")return{phase:"interrupted",terminal:{code:"interrupted",effectOutcome:"unknown",message:d.stop.reason}};let E=Am(b,d),A=Vw(b),H=new Error(E.message);return H.name=E.name,{phase:A.phase,error:H,terminal:A.terminal}},"captureRunFailureFact"),te=i((d,b)=>{let B=d.terminalEmitted?d.phase:b.phase;return d.terminalEmitted||(b.error===void 0?delete d.error:d.error=b.error.message),xt(e.bus,e.persistence,d,B,b.terminal),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...b.error!==void 0?{error:b.error}:{},...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}}},"applyRunFailureFact"),de=i((d,b)=>te(d,q(d,b)),"failedRunResult"),Ie=i(d=>{let b=d.actorSession;return b===void 0||b.health().state==="healthy"&&(d.stop!==void 0&&d.actorTurnBaseline!==void 0?m(d).length===0:b.rootControl().list().activeNonRootTurns===0)},"canApplyExecutorTerminalSignal"),Te=i((d,b,B)=>{if(l(d)&&v(d)&&Ie(d))return te(d,d.actorDurabilityFailure);let E=d.executorTerminalSignal;if(E!==void 0&&(d.actorDurabilityFailure===void 0||v(d))&&!d.terminalEmitted&&Ie(d))return E.signal==="failed"?te(d,E.failure??q(d,E.error??new Error("Runtime executor reported failure"))):(xt(e.bus,e.persistence,d,E.interruptedAtSignal?"interrupted":"completed"),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}});if(E!==void 0&&d.terminalEmitted)return{runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}};let A=d.phase==="queued";A&&Il(s,d),delete d.actorHealthBaseState;let H=new Date().toISOString();if(d.stop??={requestedAt:H,state:A?"confirmed":"unknown",outcome:A?"cancelled":"unknown",reason:b,...A?{resolvedAt:H}:{}},I(d),d.running?.abort(new Error(b)),d.abortController?.abort(new Error(b)),k(d,b),d.actorFinalizationAbortController?.abort(new Error(b)),e.permissions.rejectForRun(d.runId,b),e.userInputs.rejectForRun(d.runId,b),d.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),!A){d.interruptInputOpen=!1,qi(d),d.phase="unknown",d.stage="unknown",d.stageChangedAt=H,d.error="stop_outcome_unconfirmed",d.lifecycleError?.retryable!==!1&&delete d.lifecycleError,je(d);let ee={runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.stop!==void 0?{stop:d.stop}:{}},ge=l(d)&&!v(d);return!B&&!ge&&(x(d,ee),R(d),p(d)),ee}xt(e.bus,e.persistence,d,"cancelled",{code:"cancelled",effectOutcome:"none",message:b});let X={runId:d.runId,sessionId:d.sessionId,phase:d.phase,...d.stop!==void 0?{stop:d.stop}:{}};return x(d,X),R(d),p(d),B&&!e.isClosed()&&Fe(d.sessionId),X},"cancelRun"),Pe=i(d=>{let b=d.unconfirmedResult;if(d.terminalEmitted||!Ie(d))return;if(l(d)){if((d.activeEffectCount??0)>0){d.finishAfterEffectDrain=()=>Pe(d);return}d.finishAfterEffectDrain=void 0,f(d,te(d,d.actorDurabilityFailure));return}let B=d.capturedExecutorResult??b?.result;if(B!==void 0){let A=B.interrupted?"interrupted":B.success?"completed":"failed",H=!B.success&&!B.interrupted&&B.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...B.signalReason!==void 0?{message:B.signalReason}:{}}:void 0;xt(e.bus,e.persistence,d,A,H),f(d,{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:B,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}});return}let E=d.capturedExecutorFailure??d.unconfirmedFailure;if(E!==void 0){f(d,te(d,E));return}d.executorTerminalSignal!==void 0&&f(d,Te(d,d.stop?.reason??"runtime run recovered",!1))},"finishRecoveredUnconfirmedRun"),be=i(d=>{if(!d.start||e.isClosed()){Te(d,"runtime closed",!1);return}d.phase="running",d.stage="executing",d.stageChangedAt=new Date().toISOString(),delete d.activeSubtaskCount,d.interruptInputOpen=d.actorSession!==void 0,d.queuedAt=void 0,d.runningAt=new Date().toISOString(),d.actorSession!==void 0&&(d.actorTurnBaseline=new Set(d.actorSession.rootControl().list().actors.flatMap(D=>D.currentTurnId===void 0?[]:[D.currentTurnId]))),n.set(d.sessionId,d.runId);let b=un(d),B=nt(e.bus,e.persistence,d,b);if(B===void 0)throw p(d),new Error(`Failed to persist running Runtime run: ${d.runId}`);if(B!==b)throw At(d,B),p(d),Zn(`Runtime run already exists: ${d.runId}`,d.sessionOrder);e.bus.emit("run.started",b,{sessionId:d.sessionId,runId:d.runId});let E=Uh({bus:e.bus,original:d.start.options.events,permissions:e.permissions,userInputs:e.userInputs,enableSharedInteractions:e.enableSharedInteractions,record:d,onExecutorTerminal:i((D,U)=>N(d,D,U),"onExecutorTerminal"),onPhase:i(D=>{if(d.terminalEmitted||d.executorTerminalSignal!==void 0||d.phase==="unknown"||d.stop?.state==="unknown")return;let U=D==="running"?"executing":D==="waiting_agent"?"waiting_agent":D==="recovering"?"recovering":void 0,le=d.actorHealthBaseState;if(le!==void 0){le.phase=D,U!==void 0&&(le.stage=U);return}d.phase===D&&(U===void 0||d.stage===U)||(d.phase=D,U!==void 0&&d.stage!==U&&(d.stage=U,d.stageChangedAt=new Date().toISOString()),je(d))},"onPhase"),onStage:i((D,U)=>{if(d.terminalEmitted||d.executorTerminalSignal!==void 0||d.phase==="unknown"||d.stop?.state==="unknown")return;let le=d.actorHealthBaseState;if(le!==void 0){le.stage=D,U===void 0?delete d.activeSubtaskCount:d.activeSubtaskCount=U;return}let G=d.activeSubtaskCount!==U;d.stage===D&&!G||(d.stage!==D&&(d.stage=D,d.stageChangedAt=new Date().toISOString()),U===void 0?delete d.activeSubtaskCount:d.activeSubtaskCount=U,je(d))},"onStage"),onMidTurnUserMessages:i((D,U)=>Ge(d,D,U),"onMidTurnUserMessages")}),A=ZR({agentPlane:e.agentPlane,defaultConfigHome:e.defaultConfigHome,events:E,model:d.model,options:d.start.options,provider:d.provider,record:d,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:d.sessionId,runId:d.runId,provider:d.provider,...d.model!==void 0?{model:d.model}:{},...A.effort!==void 0?{effort:A.effort}:{},...A.thinking!==void 0?{thinking:A.thinking}:{},...A.reasoningMode!==void 0?{reasoningMode:A.reasoningMode}:{},...A.agentMode!==void 0?{agentMode:A.agentMode}:{},...d.permissionMode!==void 0?{permissionMode:d.permissionMode}:{},...d.autoModeEngine!==void 0?{autoModeEngine:d.autoModeEngine}:{},...d.autoModeClassifierModel!==void 0?{autoModeClassifierModel:d.autoModeClassifierModel}:{},...d.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:d.autoModeTimeoutMs}:{},...d.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:d.autoModeSpeculativeWindowMs}:{},...A.compaction?.triggerPercent!==void 0?{compactionTriggerPercent:A.compaction.triggerPercent}:{},...A.compaction?.triggerTokens!==void 0?{compactionTriggerTokens:A.compaction.triggerTokens}:{},...A.context?.executionCwd!==void 0?{executionCwd:A.context.executionCwd}:{},...A.context?.shellExecution!==void 0?{shellKind:A.context.shellExecution.shell.kind,shellExecutionFingerprint:fo(A.context.shellExecution)}:{}},{sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}}),d.mode==="managed_task"){let D=new AbortController;d.abortController=D;let U=A.abortSignal,le=i(()=>{d.releaseAbortSignalSubscription=void 0,d.interruptInputOpen=!1;let S=U?.reason;Te(d,S instanceof Error?S.message:typeof S=="string"&&S.trim().length>0?S:"external abort requested",!0)},"handleUpstreamAbort");U?.aborted&&le();let G=i(()=>Ya({...A,abortSignal:D.signal},d.start.prompt),"managedOperation"),he=d.providerCredential!==void 0?eo(d.provider,d.providerCredential,G):G();U!==void 0&&!U.aborted?(U.addEventListener("abort",le,{once:!0}),d.releaseAbortSignalSubscription=()=>{U.removeEventListener("abort",le)}):U?.aborted&&!D.signal.aborted&&le(),g(d),he.then(async S=>{d.capturedExecutorResult=S;let M=d.terminalEmitted?d.phase:S.interrupted?"interrupted":S.success?"completed":"failed",O=!S.success&&!S.interrupted&&S.signal==="BLOCKED"?{code:"blocked",effectOutcome:"known",...S.signalReason!==void 0?{message:S.signalReason}:{}}:void 0;return(await P(d)).state==="unknown"?T(d,S):l(d)?te(d,d.actorDurabilityFailure):(xt(e.bus,e.persistence,d,M,O),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:S,...d.terminal!==void 0?{terminal:d.terminal}:{},...d.stop!==void 0?{stop:d.stop}:{}})}).catch(async S=>{let M=q(d,S);return d.capturedExecutorFailure=M,(await P(d)).state==="unknown"?(d.unconfirmedFailure=M,T(d)):te(d,M)}).then(S=>_(d,S));return}let H=i(()=>Ga(A,d.start.prompt),"codingOperation"),X=d.providerCredential!==void 0?eo(d.provider,d.providerCredential,H):H();d.running=X;let ee=A.abortSignal,ge=i(()=>{d.releaseAbortSignalSubscription=void 0,d.interruptInputOpen=!1;let D=ee?.reason;Te(d,D instanceof Error?D.message:typeof D=="string"&&D.trim().length>0?D:"external abort requested",!0)},"handleUpstreamAbort");ee?.aborted?ge():ee!==void 0&&(ee.addEventListener("abort",ge,{once:!0}),d.releaseAbortSignalSubscription=()=>{ee.removeEventListener("abort",ge)}),g(d),X.result.then(async D=>{d.capturedExecutorResult=D;let U=d.terminalEmitted?d.phase:D.interrupted?"interrupted":D.success?"completed":"failed";return(await P(d)).state==="unknown"?T(d,D):l(d)?te(d,d.actorDurabilityFailure):(xt(e.bus,e.persistence,d,U),{runId:d.runId,sessionId:d.sessionId,phase:d.phase,result:D,...d.stop!==void 0?{stop:d.stop}:{}})}).catch(async D=>{let U=q(d,D);return d.capturedExecutorFailure=U,(await P(d)).state==="unknown"?(d.unconfirmedFailure=U,T(d)):te(d,U)}).then(D=>_(d,D))},"launchRecord"),ve=i(d=>{try{be(d);return}catch(b){let B=q(d,b);return d.capturedExecutorFailure=B,P(d).then(E=>{if(E.state==="unknown"){d.unconfirmedFailure=B,C(d,T(d));return}f(d,te(d,B))}),{error:b}}},"startRecord"),Fe=i(d=>{let b=s.get(d);if(!b||b.length===0||n.has(d))return;let B=b.shift();if(b.length===0&&s.delete(d),!B)return;let E=e.runs.get(B);if(!E||E.phase!=="queued"){Fe(d);return}if(E.inheritModeAfterDurabilityRepair===!0){let A=E.continuation===void 0?void 0:e.runs.get(E.continuation.afterRunId);A?.actorDurabilityFailure!==void 0&&(E.mode=A.mode,je(E))}ve(E)},"drainNext"),Ce=i(d=>{let b=un(d),B=nt(e.bus,e.persistence,d,b);if(B===void 0)throw new Error(`Failed to persist queued Runtime run: ${d.runId}`);if(B!==b)throw At(d,B),Zn(`Runtime run already exists: ${d.runId}`,d.sessionOrder);let E=s.get(d.sessionId)??[];E.push(d.runId),s.set(d.sessionId,E),e.bus.emit("run.queued",b,{sessionId:d.sessionId,runId:d.runId})},"enqueue"),je=i(d=>{let b=un(d),B=nt(e.bus,e.persistence,d,b);if(B!==void 0){if(B!==b){At(d,B);return}e.bus.emit("run.updated",b,{sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}})}},"publishRunUpdate"),Ge=i((d,b,B)=>{let E=new Map;for(let D of d.interruptInputs)D.state==="queued"&&D.queueMessageId!==void 0&&E.set(D.queueMessageId,D);let A=[],H=new Set;for(let D of b){if(H.has(D))continue;H.add(D);let U=E.get(D);U!==void 0&&A.push(U)}if(A.length===0)return;let X=new Date().toISOString(),ee=A.map(D=>{if(D.input===void 0)throw new Error(`Runtime interrupt input is unavailable: ${D.inputId}`);let U=D.queueMessageId===void 0?void 0:B?.[D.queueMessageId];if(typeof U!="string"||U.length===0)throw new Error(`Runtime interrupt input is missing its canonical entry reference: ${D.inputId}`);let le={inputId:D.inputId,afterRunId:D.afterRunId,input:D.input,queuedAt:D.queuedAt,deliveredAt:X,entryId:U,...D.origin!==void 0?{origin:D.origin}:{}};return{record:D,entryId:U,eventInput:le}}),ge={sessionId:d.sessionId,runId:d.runId,...d.turnId!==void 0?{turnId:d.turnId}:{}};try{e.bus.emitDurable("run.input.delivered",{inputs:ee.map(D=>D.eventInput)},ge,()=>{for(let D of ee)D.record.state="delivered",D.record.deliveredAt=X,D.record.entryId=D.entryId,delete D.record.queueMessageId})}catch(D){throw e.bus.emit("runtime.warning",{source:"run.input.delivered",message:`Failed to persist interrupt input delivery: ${$e(D).message}`,inputIds:A.map(U=>U.inputId)},ge),D}je(d)},"deliverInterruptInputs"),cn=e.settingsOwner.subscribe((d,b)=>{for(let B of e.runs.values())B.sessionId!==d||B.phase!=="queued"&&!An(B.phase)||(B.permissionMode=b.value.permissionMode,B.autoModeEngine=vn(b.value.permissionMode)==="auto"?b.value.autoModeEngine??"llm":b.value.autoModeEngine,B.autoModeClassifierModel=b.value.autoModeClassifierModel,B.autoModeTimeoutMs=b.value.autoModeTimeoutMs,B.autoModeSpeculativeWindowMs=b.value.autoModeSpeculativeWindowMs,je(B))}),an=i(async(d,b=!1)=>{let B=d.admittedSessionContext;if(d.ownedByRuntime&&B!==void 0&&(b||!Ne(d.phase))){e.sessionAdmission.assertCachedIdentity(d.sessionId,{surface:B.runtimeInfo?.surface,profileId:B.runtimeInfo?.profileId});return}await e.sessionAdmission.assertRunAccess(d.sessionId)},"assertRunRecordAccess"),bn=i((d,b)=>{if(d.sessionId!==b)throw new Error(`Runtime continuation target ${d.runId} does not belong to session ${b}`);let B=d.phase==="unknown"&&d.actorDurabilityFailure!==void 0&&!d.terminalEmitted;if(!An(d.phase)&&d.phase!=="queued"&&!B)throw new Fr(d.runId)},"assertContinuationTarget"),rn=i(async(d,b)=>{e.ensureOpen();let B=d,E=B.requiredAfterRunId,A=E===void 0?void 0:a(E);A!==void 0&&(bn(A,d.sessionId),await an(A));let H=$l(d,e.artifacts,b),X=A?.admittedSessionContext;if(A!==void 0&&X===void 0)throw new Fr(A.runId);if(X===void 0){let ae=await e.sessionAdmission.loadExecutable(d.sessionId);X={gitRoot:ae.gitRoot,...ae.runtimeInfo!==void 0?{runtimeInfo:structuredClone(ae.runtimeInfo)}:{}}}let ee=(await e.settingsOwner.read(d.sessionId)).value;Bs(X,ee);let ge=Gh(d.options??{},ee,H.inputArtifacts,X),D=await e.actorRegistry.forSession(d.sessionId,ge.maxConcurrentThreadsPerSession),U=ge.agentMode==="sa"?void 0:D,le=A?.phase==="unknown"&&A.actorDurabilityFailure!==void 0&&!A.terminalEmitted;if(U!==void 0){let ae=U.health(),me=ae.state==="recovering"?await e.waitForActorHealthResolution(d.sessionId,ae):ae;if(me.state==="unknown"&&!le)throw Object.assign(new Error(me.message??"Actor settlement persistence is unknown; the Session cannot start another Run."),{code:me.code??"actor_settlement_not_persisted",retryable:!1})}let G=ge.provider??e.defaultProvider;if(!G)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");if(B.providerCredential!==void 0&&B.providerCredentialProvider!==void 0&&B.providerCredentialProvider!==G)throw hv(`Credential lease is bound to ${B.providerCredentialProvider}, not ${G}.`);let he=ge.modelOverride??ge.model??e.defaultModel??da(G)[0]?.id,S=d.trustedRunId??$w();if(e.runs.has(S))throw Zn(`Runtime run already exists: ${S}`,0);let M=e.enableSharedInteractions||vn(ee.permissionMode)==="auto";if(yw(ee,he),M&&ge.guardrails?.some(ae=>ae.kind==="tool"&&ae.name==="auto-mode"))throw new Error("Runtime owns the auto-mode guardrail for shared Session permission state.");let O=M?av({sessionId:d.sessionId,provider:G,model:he,options:ge,permissions:e.permissions,cache:r,states:o,settingsOwner:e.settingsOwner,getRecord:i(()=>{let ae=n.get(d.sessionId);return ae===void 0?void 0:e.runs.get(ae)},"getRecord"),onPhase:i((ae,me)=>{ae.terminalEmitted||ae.executorTerminalSignal!==void 0||ae.phase==="unknown"||ae.stop?.state==="unknown"||ae.phase===me||(ae.phase=me,je(ae))},"onPhase"),onEngineChange:i(ae=>{for(let me of e.runs.values())me.sessionId===d.sessionId&&(me.phase==="queued"||An(me.phase))&&me.autoModeEngine!==ae&&(me.autoModeEngine=ae,je(me));e.settingsOwner.persistAutoModeEngine(d.sessionId,ae).catch(me=>{e.bus.emit("runtime.warning",{source:"runtime.auto-mode",severity:"error",message:`Failed to persist Session auto-mode engine: ${$e(me).message}`},{sessionId:d.sessionId,runId:d.sessionId})})},"onEngineChange")}):void 0;await O?.prepare?.();let K=O===void 0?ge:{...ge,guardrails:[...ge.guardrails??[],O]},W=new Date().toISOString(),Z=i(()=>{},"resolveResult"),re=new Promise(ae=>{Z=ae});A!==void 0&&bn(A,d.sessionId);let ne=e.persistence.nextSessionOrder(d.sessionId),z=A!==void 0||n.has(d.sessionId),se={runId:S,sessionId:d.sessionId,phase:z?"queued":"running",stage:z?"queued":"executing",stageChangedAt:W,startedAt:W,sessionOrder:ne,...z?{queuedAt:W}:{},provider:G,...he!==void 0?{model:he}:{},...d.permissionBroker!==void 0?{permissionBroker:d.permissionBroker}:{},...ee.permissionMode!==void 0?{permissionMode:ee.permissionMode}:{},...ee.autoModeClassifierModel!==void 0?{autoModeClassifierModel:ee.autoModeClassifierModel}:{},...ee.autoModeTimeoutMs!==void 0?{autoModeTimeoutMs:ee.autoModeTimeoutMs}:{},...ee.autoModeSpeculativeWindowMs!==void 0?{autoModeSpeculativeWindowMs:ee.autoModeSpeculativeWindowMs}:{},...vn(ee.permissionMode)==="auto"?{autoModeEngine:ee.autoModeEngine??"llm"}:ee.autoModeEngine!==void 0?{autoModeEngine:ee.autoModeEngine}:{},...ge.reasoningMode!==void 0?{reasoning:ge.reasoningMode}:{},mode:d.mode??(le?A?.mode:void 0)??"coding",...A!==void 0&&d.mode===void 0?{inheritModeAfterDurabilityRepair:!0}:{},...d.providerCredential!==void 0?{providerCredential:d.providerCredential}:{},hadProviderCredential:d.providerCredential!==void 0,...d.origin!==void 0?{origin:d.origin}:{},...E!==void 0?{continuation:{inputId:S,afterRunId:E,delivery:"after_turn",contentPreview:Kl(H.prompt)}}:{},interruptInputs:[],...d.agentContext??e.defaultAgentContext?{agentContext:d.agentContext??e.defaultAgentContext}:{},...U?{actorSession:U}:{},admittedSessionContext:X,interruptInputOpen:!1,result:re,start:{prompt:H.prompt,inputArtifacts:H.inputArtifacts,options:K,resolve:Z},terminalEmitted:!1,ownedByRuntime:!0};if(e.runs.set(S,se),z)Ce(se);else{let ae=ve(se);if(ae!==void 0)throw ae.error}return{runId:S,sessionId:d.sessionId,get turnId(){return se.turnId},result:re}},"startRun"),nn=i((d,b="runtime.runs.start")=>e.sessionOperations.run(d.sessionId,()=>rn(d,b)),"start");return{start:nn,async submitInput(d){e.ensureOpen();let b=a(d.afterRunId);if(b.sessionId!==d.sessionId)throw new Error(`Runtime continuation target ${d.afterRunId} does not belong to session ${d.sessionId}`);if(await an(b,!0),d.delivery==="interrupt"){if(b.actorSession===void 0&&An(b.phase)&&n.get(d.sessionId)===b.runId)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"unsupported_capability"};if(!b.interruptInputOpen)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"interrupt_window_closed"};if(!An(b.phase)||n.get(d.sessionId)!==b.runId)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"};if(d.credential!==void 0||d.hostTools!==void 0)throw new Error("runtime.runs.submitInput interrupt delivery cannot replace active-run credential or host-tool bindings");let X=$l({sessionId:d.sessionId,input:d.input},e.artifacts,"runtime.runs.submitInput"),ee=structuredClone(d.input),ge=d,D=ge.trustedInputId??qw();if(b.interruptInputs.some(he=>he.inputId===D))throw Zn(`Runtime interrupt input already exists: ${D}`,0);let U=Ra({sessionId:d.sessionId,content:X.prompt,inputArtifacts:X.inputArtifacts,provider:b.provider,...b.model!==void 0?{model:b.model}:{}}),le=new Date().toISOString(),G={inputId:D,afterRunId:d.afterRunId,delivery:"interrupt",state:"queued",contentPreview:Kl(X.prompt),queuedAt:le,...ge.origin!==void 0?{origin:ge.origin}:{},input:ee,queueMessageId:U};return b.interruptInputs.push(G),je(b),e.bus.emit("run.input.queued",{input:Pm(G)},{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}}),{accepted:!0,delivery:"interrupt",inputId:D,runId:b.runId,sessionId:d.sessionId,afterRunId:d.afterRunId,sessionOrder:b.sessionOrder}}let B=b.phase==="unknown"&&b.actorDurabilityFailure!==void 0&&!b.terminalEmitted;if(!An(b.phase)&&b.phase!=="queued"&&!B)return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"};let E=d,A;try{A=await nn({sessionId:d.sessionId,input:d.input,...E.options!==void 0?{options:E.options}:{},...E.providerCredential!==void 0?{providerCredential:E.providerCredential}:{},...E.providerCredentialProvider!==void 0?{providerCredentialProvider:E.providerCredentialProvider}:{},...E.origin!==void 0?{origin:E.origin}:{},...E.trustedRunId!==void 0?{trustedRunId:E.trustedRunId}:{},requiredAfterRunId:d.afterRunId},"runtime.runs.submitInput")}catch(X){if(!(X instanceof Fr))throw X;return{accepted:!1,delivery:d.delivery,sessionId:d.sessionId,afterRunId:d.afterRunId,reason:"stale_run"}}let H=a(A.runId).sessionOrder;return{accepted:!0,delivery:d.delivery,runId:A.runId,sessionId:d.sessionId,afterRunId:d.afterRunId,sessionOrder:H}},async await(d){e.ensureOpen();let b=e.runs.get(d);if(b?.ownedByRuntime===!0)return await an(b),b.result;let B=e.persistence.loadRunStatus(d);if(B)return await e.sessionAdmission.assertRunAccess(B.status.sessionId),xm(await u(B,e.runs.get(d)));if(b)return await e.sessionAdmission.assertRunAccess(b.sessionId),b.result;throw new Error(`Runtime run not found: ${d}`)},async get(d){e.ensureOpen();let b=e.runs.get(d),B=e.persistence.loadRunStatus(d);if(B&&(b!==void 0?await an(b):await e.sessionAdmission.assertRunAccess(B.status.sessionId),b===void 0||!b.ownedByRuntime||Ne(B.status.phase)))return u(B,b);if(b)return await an(b),un(b);throw new Error(`Runtime run not found: ${d}`)},async list(d){e.ensureOpen(),d?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(d.sessionId);let b=e.persistence.loadRunStatuses(),B=await Promise.all(b.map(H=>u(H,e.runs.get(H.status.runId)))),E=new Map(B.map(H=>[H.runId,H]));for(let H of e.runs.values()){let X=E.get(H.runId);!H.ownedByRuntime||X!==void 0&&Ne(X.phase)||E.set(H.runId,un(H))}let A=[...E.values()].filter(H=>zl(H,d));return ql(Jl(Wl(A)),e.sessionAdmission)},async inspect(d){e.ensureOpen(),d?.sessionId!==void 0&&await e.sessionAdmission.assertRunAccess(d.sessionId);let b=e.persistence.loadRunStatuses(),B=await Promise.all(b.map(H=>c(H,e.runs.get(H.status.runId)))),E=new Map(B.map(H=>[H.runId,H]));for(let H of e.runs.values())!H.ownedByRuntime||Ne(H.phase)||E.set(H.runId,un(H));let A=[...E.values()].filter(H=>zl(H,d));return ql(Jl(Wl(A)),e.sessionAdmission)},async inspectOne(d){e.ensureOpen();let b=e.runs.get(d),B=e.persistence.loadRunStatus(d);if(B!==void 0)return await e.sessionAdmission.assertRunAccess(B.status.sessionId),c(B,b);if(b!==void 0)return await e.sessionAdmission.assertRunAccess(b.sessionId),un(b)},async abort(d){e.ensureOpen();let b=e.runs.get(d),B=e.persistence.loadRunStatus(d),E=b?.sessionId??B?.status.sessionId;if(E===void 0)throw new Error(`Runtime run not found: ${d}`);if(await e.sessionAdmission.assertRunAccess(E),b!==void 0&&ji(b,e.runOwner),b?.terminalEmitted===!0&&B?.owner?.ownerId===e.runOwner.ownerId)return Fi({accepted:!1,effectDeliveryAllowed:!1,status:un(b),revision:B.revision});if(b?.executorTerminalSignal!==void 0&&!b.terminalEmitted&&Ie(b)){Te(b,"runtime run aborted",!1);let X=e.persistence.loadRunStatus(d);return Fi({accepted:!1,effectDeliveryAllowed:!1,status:X?.status??un(b),revision:X?.revision??0})}let A=e.persistence.requestRunStop(d,"runtime run aborted",b?.ownedByRuntime===!0?e.runOwner.ownerId:void 0);if(b===void 0)return Fi(A);if(At(b,A.status),A.status.stop!==void 0&&b.actorFinalizationAbortController?.abort(new Error("runtime run aborted")),A.status.stop?.state==="unknown"&&delete b.actorHealthBaseState,A.accepted||A.effectDeliveryAllowed){let X=A.status.phase==="cancelled";if(X&&Il(s,b),I(b),b.running?.abort(new Error("runtime run aborted")),b.abortController?.abort(new Error("runtime run aborted")),k(b,"runtime run aborted").then(ge=>{ge.error===void 0&&Pe(b)}),e.permissions.rejectForRun(b.runId,"runtime run aborted"),e.userInputs.rejectForRun(b.runId,"runtime run aborted"),b.start?.options.guardrails?.find(Ct)?.clearAllowedCalls(),b.interruptInputOpen=!1,qi(b),A.accepted&&X){e.bus.emit("run.cancelled",A.status,{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}});let ge={runId:b.runId,sessionId:b.sessionId,phase:b.phase,...b.terminal!==void 0?{terminal:b.terminal}:{},...b.stop!==void 0?{stop:b.stop}:{}};x(b,ge),R(b),p(b),e.isClosed()||Fe(b.sessionId)}else A.accepted&&e.bus.emit("run.updated",A.status,{sessionId:b.sessionId,runId:b.runId,...b.turnId!==void 0?{turnId:b.turnId}:{}})}return Fi(A)},async setModel(d,b){e.ensureOpen();let B=a(d);await e.sessionAdmission.assertRunAccess(B.sessionId),ji(B,e.runOwner),B.model=b,B.running?.setModel(b),je(B)},async setProvider(d,b){e.ensureOpen();let B=a(d);await e.sessionAdmission.assertRunAccess(B.sessionId),ji(B,e.runOwner),B.provider=b,B.running?.setProvider(b),je(B)},async setReasoning(d,b){e.ensureOpen();let B=a(d);await e.sessionAdmission.assertRunAccess(B.sessionId),ji(B,e.runOwner),B.reasoning=b,B.running?.setReasoning(b),je(B)},closeAll(d){cn.close();for(let b of e.runs.values())b.ownedByRuntime&&(b.phase==="queued"||An(b.phase)||b.phase==="unknown")&&Te(b,d,!1);n.clear(),r.clear(),o.clear(),s.clear()},releaseSession(d){for(let b of r.get(d)?.values()??[])b.guardrail.clearAllowedCalls();r.delete(d),o.delete(d)},getAutoModeStats(d){let b=o.get(d);return b===void 0?void 0:{engine:b.engine,classifierHealth:za(b.breaker,Date.now())?"degraded":"healthy",denials:b.denials,breaker:b.breaker}}}}i(JR,"createRuntimeRunService");function zR(){let e=_a();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&&Jw(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(zR,"createRuntimeWorkflowService");function VR(e,n){return{async read(){return e(),dr(at(n))},async patch(t){return e(),hw(t,"runtime.config.patch"),Sw(n,ww(t)),dr(at(n))},async reload(){return e(),n!==void 0?(km(n),{ok:!0,config:dr(at(n))}):{ok:!0,config:dr(nd())}}}}i(VR,"createRuntimeConfigService");function GR(e,n){return{async providers(){return e(),wo()},async models(t){return e(),Mw(wo(),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 co(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(Fw)},async describeSkill(t){e();let r=await co(t.projectRoot);return r.has(t.name)?jw(await r.loadFull(t.name)):null},async customProviders(){return e(),bw(n)},async upsertCustomProvider(t){return e(),kw(n,t)},async deleteCustomProvider(t){return e(),Ew(n,t)},async extensions(){e();let t=Lt();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=Lt();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}i(GR,"createRuntimeCatalogService");function YR(e,n){return{async listServers(){return e(),Ls(n)},async getServer(t){return e(),xw(n,t)},async validateServer(t,r){e();try{return vo(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(),Cw(n,t,r)},async deleteServer(t){return e(),Aw(n,t)},async reloadServers(){e();let t=lo(Ls(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=Ls(n),o=t?.server!==void 0?[t.server]:Object.keys(r),s=lo(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(YR,"createRuntimeMcpService");function QR(){let e=new Map;return{service:{async create(r){if(!Vh(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let o=Y.resolve(r.path),s;try{s=await $.promises.stat(o)}catch(c){throw new Error(`Runtime artifact path is not readable: ${o}`,{cause:c})}if(!s.isFile())throw new Error(`Runtime artifact path must be a regular file: ${o}`);if(s.size>gl)throw new Error(`Runtime artifact exceeds the ${gl}-byte limit: ${o}`);let a=`art_${Qe().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(QR,"createRuntimeArtifactStore");function ZR(e){let{agentPlane:n,events:t,model:r,options:o,provider:s,record:a,sessionManager:u}=e,c=o.events?.exitPlanMode===void 0,{configHome:p,memoryIdentity:R,shellSandbox:I,...g}=o.context??{},x=o.guardrails?.find(Ct),f=o.context?.gitRoot??o.context?.executionCwd??process.cwd(),C=o.context?.executionCwd??f,m=yd({workspaceRoot:f,shouldSandbox:i(async h=>{let P=vn(a.permissionMode)==="auto",T;if(P&&x!==void 0){if(T=x.consumeWorkspaceSandboxCall(h),T===void 0)return!1}else try{T=await Ua(h,{projectRoot:f,executionCwd:C,signals:[]})}catch{}return{agentHomeAccess:T===void 0?void 0:iv(T,C),filesystemAccess:T===void 0?void 0:rv(T,C)}},"shouldSandbox")}),k=m!==void 0&&I!==void 0?{processTreeContainment:m.processTreeContainment,async prepare(h){let P,T=await m.prepare({...h,reportObservation:i(te=>{P=te},"reportObservation")});if(T!==void 0)return T;let _,N=await I.prepare({...h,reportObservation:i(te=>{_=te},"reportObservation")});if(N!==void 0)return N;let q=[_,P].find(te=>te?.state==="fallback")??_??P;q!==void 0&&h.reportObservation?.(q)}}:m??I,l=o.skillDynamicContext?.execute,v=o.skillDynamicContext?.disable===!0||l===void 0?{disable:!0}:{async execute(h,P){if(vn(a.permissionMode)==="plan")throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in Plan mode.");return l(h,P)}};return{...o,provider:s,skillDynamicContext:v,...r!==void 0?{modelOverride:r}:{},session:{...o.session??{},id:a.sessionId,storage:u.storage,persistedByHost:!1},events:t,context:{...g,configHome:e.defaultConfigHome,...k!==void 0?{shellSandbox:k}:{},...c?{excludeTools:[...new Set([...o.context?.excludeTools??[],"exit_plan_mode"])]}:{},...a.actorSession?{actorSession:a.actorSession,interruptInput:{closeInputWindow(){a.interruptInputOpen=!1},reopenInputWindow(){!a.terminalEmitted&&An(a.phase)&&o.abortSignal?.aborted!==!0&&(a.interruptInputOpen=!0)}}}:{},...n&&a.agentContext?{agentExecutorPlane:{plane:n,context:a.agentContext}}:{}}}}i(ZR,"buildRunOptions");function $i(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}i($i,"assertRuntimeAgentContext");function eh(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(eh,"localAgentReasons");function As(e){return $i(e),hr(e).map(n=>{let t=eh(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(As,"runtimeLocalListings");function nh(e,n,t,r,o,s){let a=new Map,u=!1,c=i((R,I)=>{if(u)return Promise.reject(new Error("KodaX runtime is closed"));let g=a.get(R);if(g)return g.then(f=>{let C=f.rootControl().list().maxConcurrentThreads;if(I!==void 0&&I!==C)throw new Error(`Actor concurrency for ${R} is already ${C}; cannot change it to ${I}.`);return f});let x=(async()=>{let f=await e.storage.peek(R);if(!f)throw new Error(`Session not found: ${R}`);let C=f.actorSnapshot?.maxConcurrentThreads;if(C!==void 0&&I!==void 0&&C!==I)throw new Error(`Persisted Actor concurrency for ${R} is ${C}; requested ${I}.`);let m={async load(){return(await e.storage.peek(R))?.actorSnapshot},save(l,v){return e.storage.saveActorSnapshot(R,l,v)}},k=new ja({sessionId:R,store:m,maxConcurrentThreadsPerSession:I??C,owner:{ownerId:`actor_${Qe().replace(/-/g,"")}`,runtimeId:n.runtimeId,pid:process.pid,startedAt:n.startedAt,livenessId:t.id,livenessPort:t.port},isOwnerAlive:No,onHealthChanged:i(l=>s?.(R,l),"onHealthChanged"),...r?{executor:Ha({plane:r,context:o??{actorId:`runtime:${R}`}})}:{}});try{return await k.initialize(),s?.(R,k.health()),k}catch(l){if(!k.ownsDurableFence())throw l;try{await k.close("Actor initialization cleanup")}catch(v){throw new AggregateError([l,v],`Actor session ${R} initialization and owner cleanup both failed.`)}throw l}})();return a.set(R,x),x.catch(()=>a.delete(R)),x},"claimSession"),p=i(async(R,I)=>{let g=c(R,I),x=a.get(R),f=await g;if(!await e.storage.isArchived(R))return f;throw await f.close("archived Session execution rejected"),a.get(R)===x&&a.delete(R),Us(R)},"forSession");return{forSession:p,async root(R){return(await p(R)).rootControl()},async activeTurns(R){return(await Promise.all(R.map(async g=>{if(await e.storage.isArchived(g))return;let x=a.get(g);if(x)return{sessionId:g,snapshot:(await x).rootControl().list()};let f=await e.storage.peek(g);if(f?.actorSnapshot&&!(f.actorSnapshot.schemaVersion===2&&f.actorSnapshot.owner!==void 0&&!await No(f.actorSnapshot.owner)))return{sessionId:g,snapshot:f.actorSnapshot}}))).flatMap(g=>{if(!g)return[];let{sessionId:x,snapshot:f}=g;return f.actors.flatMap(C=>C.currentTurnId&&C.path!=="/root"?[{sessionId:x,actorPath:C.path,turnId:C.currentTurnId,kind:C.kind}]:[])})},async mutateSessionFile(R,I,g){if(u)throw new Error("KodaX runtime is closed");let x=a.get(R)??c(R),f=await x,m=f.rootControl().list();if(I==="mutate"&&await e.storage.isArchived(R))throw await f.close("archived Session mutation rejected"),a.get(R)===x&&a.delete(R),Us(R);let k=m.actors.some(v=>v.currentTurnId!==void 0);if((I==="archive"||I==="unarchive")&&k)throw Zn(`Session has active Agent turns and cannot be moved: ${R}`,m.revision);I==="delete"&&k&&await f.quiesce("session deleted");let l=await g(f.ownerId());return I==="delete"?f.disposeAfterStoreRemoval("session deleted"):I!=="mutate"&&await f.close(`session ${I}d`),I!=="mutate"&&a.get(R)===x&&a.delete(R),l},async close(R){u=!0;let I=await Promise.allSettled([...a.values()]),x=(await Promise.allSettled(I.flatMap(f=>f.status==="fulfilled"?[f.value.close(R)]:[]))).flatMap(f=>f.status==="rejected"?[f.reason]:[]);if(x.length===1)throw x[0];if(x.length>1)throw new AggregateError(x,"Actor registry cleanup failed.");a.clear()}}}i(nh,"createRuntimeAgentActorRegistry");function th(e,n,t,r,o,s){let a=i((u,c)=>o.run(u,async()=>(s(),await r.loadExecutable(u),c(await t.root(u)))),"withRoot");return{execution:n,enabled:e!==void 0,async listDispatchable(u){s(),$i(u);let c=hr(u);return e?e.listDispatchable(u,c):As(u)},async describe(u,c){$i(c);let p=hr(c);return e?e.describe(u,c,p):As(c).find(R=>R.descriptor.agentId===u)},async preflight(u){$i(u.query);let c=hr(u.query);if(e)return e.preflight(u,c);let p=As(u.query).find(I=>I.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,c=>c.list())},async detail(u,c){return a(u,p=>p.get(c))},async spawn(u,c){return a(u,p=>p.spawn(c))},async send(u,c,p,R){await a(u,I=>I.send(c,p,R))},async followup(u,c,p,R){return a(u,I=>I.followup(c,p,void 0,R))},async interrupt(u,c,p){await a(u,R=>R.interrupt(c,p))},async output(u,c,p){return a(u,R=>R.output(c,p))},async events(u,c){return a(u,p=>p.eventSnapshot(c))},async wait(u,c,p,R){return(await a(u,g=>g)).wait(c,p,R?.signal)}}}i(th,"createRuntimeAgentService");function Ts(){return new Error("Runtime external agent executor plane is not enabled.")}i(Ts,"externalAgentsDisabled");function rh(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw Ts()},async setEnabled(){throw Ts()},async remove(){throw Ts()}}}}i(rh,"createRuntimeAdminService");function ih(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(gm),runs:n,pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}},async preflight(){let n=await e.listRuns(),t=n.filter(R=>An(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(),c=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||c.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:c,blockers:p,canStop:p.length===0}}}}i(ih,"createRuntimeStatusService");function oh(e){return{latestContextBudget(n){return Ds(e,"context.budget.snapshot",n)},latestToolExposure(n){return Ds(e,"tool.exposure.planned",n)},latestProviderCacheDiagnostic(n){return Ds(e,"provider.cache.diagnostics",n)}}}i(oh,"createRuntimeDiagnosticsService");async function Ds(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?{aggregateSessions:!0}:{},...o&&t?.sessionId!==void 0?{aggregateRootSessionId:t.sessionId}:{},...!o&&t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return[...await e.replay(s)].reverse().find(c=>{let p=c.payload;if(p===null||typeof p!="object"||Array.isArray(p))return t?.contextKind===void 0&&t?.agentId===void 0;let R=p,I=R.contextKind==="child"?"child":"root";if(r!==void 0&&I!==r||t?.agentId!==void 0&&R.agentId!==t.agentId)return!1;if(!o||t?.sessionId===void 0)return!0;let g=`${t.sessionId}/agent/`;return typeof R.contextId!="string"?!1:t.agentId===void 0?R.contextId.startsWith(g):R.contextId===`${g}${encodeURIComponent(t.agentId)}`})?.payload??null}i(Ds,"latestRuntimeDiagnosticPayload");function An(e){return e==="running"||e==="waiting_agent"||e==="recovering"||e==="waiting_permission"||e==="waiting_user_input"}i(An,"isActiveRunPhase");function Il(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(Il,"removeQueuedRun");function sh(e,n,t){let r=oe(n)?n:void 0;if((e==="assistant.delta"||e==="thinking.delta")&&typeof r?.text=="string")return{key:Mr(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:Mr(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:Mr(e,n,t,`progress:${o}`),mode:"latest",bytes:Ms(n),preserveFirst:!0}}if(e==="run.progress"&&r?.kind==="managed_task_status")return{key:Mr(e,n,t),mode:"latest",bytes:Ms(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:Mr(e,n,t,`workflow:${s}`),mode:"latest",bytes:Ms(n)}}}i(sh,"runtimeEventMergePlan");function Ms(e){try{return Buffer.byteLength(JSON.stringify(e)??"","utf-8")}catch{return Fs}}i(Ms,"runtimeEventPayloadBytes");function kt(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(kt,"runtimePendingEmissionBytes");function ah(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(ah,"snapshotRuntimeEventPayload");function Mr(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(c=>typeof c=="string"?c:"").join("");return[t.sessionId,t.runId,t.turnId??"",e,u,r].join("\0")}i(Mr,"runtimeEventMergeKey");function dh(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(dh,"mergeRuntimeEventEmissions");function uh(e){let n=!1,t=[],r=new Map,o=new Map,s=[],a=[],u=new Map,c=new Set,p=new Set,R=0,I,g=new Map,x=new Map,f,C=!1,m=!1,k=0,l=0,v=i((E,A)=>`${E}\0${A}`,"runtimeRunProjectionKey"),h=i((E,A)=>A?!(A.sessionId!==void 0&&E.sessionId!==A.sessionId||A.runId!==void 0&&E.runId!==A.runId||A.type!==void 0&&!(Array.isArray(A.type)?A.type:[A.type]).includes(E.type)):!0,"matches"),P=i(E=>{t.push(E),t.length>Ki&&t.splice(0,t.length-Ki)},"remember"),T=i(E=>{for(let A of[...p])if(h(E,A.filter))try{A.listener(E)}catch(H){we({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${E.type}`,detail:{eventId:E.id,error:$e(H)}})}},"notifyOne"),_=i(E=>{if(a.push(...E),!m){m=!0;try{for(;k<a.length;){let A=a[k];k+=1,A!==void 0&&T(A)}}finally{a.splice(0,k),k=0,m=!1}}},"notify"),N=i((E,A,H)=>E.length===0?[]:E.map((X,ee)=>{let ge=A+ee;return{id:`evt_${ge}_${Qe().replace(/-/g,"").slice(0,8)}`,seq:ge,cursor:{sessionId:X.scope.sessionId,journalEpoch:H,seq:ge},time:X.time,sessionId:X.scope.sessionId,runId:X.scope.runId,...X.scope.turnId!==void 0?{turnId:X.scope.turnId}:{},type:X.type,payload:X.payload}}),"createEvents"),q=i((E,A,H)=>{let X=g.get(E);if(X!==void 0)throw X;try{return e.commitEvents(E,A,H)}catch(ee){throw ee instanceof Br&&(g.set(E,ee),x.delete(E),de(),Te(E),Pe(E),s.some(ge=>!g.has(ge.scope.sessionId)&&!x.has(ge.scope.sessionId))&&je()),ee}},"commitEvents"),te=i(E=>{for(let A of E){o.set(A.sessionId,A.cursor);let H=r.get(A.sessionId)??bl();r.set(A.sessionId,H),ch(H,A),P(A),zs(A.type)&&u.delete(v(A.sessionId,A.runId))}},"applyAndRemember"),de=i(()=>{I!==void 0&&(clearTimeout(I),I=void 0)},"clearScheduledFlush"),Ie=i(E=>{let A=E.map(H=>s[H]).filter(H=>H!==void 0);for(let H of[...E].sort((X,ee)=>ee-X))s.splice(H,1);return R=Math.max(0,R-A.reduce((H,X)=>H+(X.merge?.bytes??0),0)),l=Math.max(0,l-A.reduce((H,X)=>H+kt(X),0)),A},"removePendingIndices"),Te=i(E=>{Ie(s.flatMap((A,H)=>A.scope.sessionId===E?[H]:[]))},"removePendingSession"),Pe=i(E=>{let A=`${E}\0`;for(let H of u.keys())H.startsWith(A)&&u.delete(H)},"clearPreservedLatestKeys"),be=i(()=>[...new Set(s.map(E=>E.scope.sessionId))],"pendingSessionIds"),ve=i(E=>{let A=[],H;for(let X=0;X<s.length;X+=1){let ee=s[X];if(ee?.scope.sessionId===E){if(H??=ee.scope.runId,ee.scope.runId!==H)break;A.push(X)}}return{indices:A,emissions:A.map(X=>s[X])}},"nextSessionRunBatch"),Fe=i(E=>{let A=g.get(E);if(A!==void 0)throw A;for(;;){let H=ve(E);if(H.emissions.length===0)return;let X;try{X=q(E,H.emissions.length,(ee,ge)=>N(H.emissions,ee,ge))}catch(ee){throw g.has(E)||(x.set(E,$e(ee)),de()),ee}x.delete(E),Ie(H.indices),C=!1,te(X),_(X)}},"flushSession"),Ce=i((E,A=!0)=>{de();let H=E===void 0?be():[E],X;for(let ee of H)if(!(!A&&(g.has(ee)||x.has(ee))))try{Fe(ee)}catch(ge){X??=ge}if(s.some(ee=>!g.has(ee.scope.sessionId)&&!x.has(ee.scope.sessionId))&&je(),X!==void 0)throw X},"flushPending"),je=i(()=>{n||I===void 0&&(I=setTimeout(()=>{if(I=void 0,!n)try{Ce(void 0,!1)}catch(E){C||(C=!0,we({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:E}))}},SR),I.unref?.())},"scheduleFlush"),Ge=i(E=>{try{Ce(E)}catch(A){C||(C=!0,we({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:A}))}},"flushPendingSafely"),cn=i(E=>{let A=q(E.scope.sessionId,1,(H,X)=>N([E],H,X));te(A),_(A)},"commitEmissionDirectly"),an=i(E=>{let A=E.merge;if(A?.mode==="latest"){for(let H=s.length-1;H>=0;H-=1){let X=s[H];if(X?.merge===void 0||X.scope.sessionId!==E.scope.sessionId||X.scope.runId!==E.scope.runId)break;if(X.merge.mode==="latest"&&X.merge.key===A.key){s.splice(H,1),R=Math.max(0,R-X.merge.bytes),l=Math.max(0,l-kt(X));break}}s.push(E),R+=A.bytes,l+=kt(E)}},"replacePendingLatest"),bn=i(E=>{let A=E.merge;if(A?.mode!=="latest"||A.preserveFirst!==!0)return!1;let H=v(E.scope.sessionId,E.scope.runId),X=u.get(H)??new Set;return X.has(A.key)?!1:(X.add(A.key),u.set(H,X),!0)},"shouldPreserveFirstLatest"),rn=i(E=>{let A=0,H=0,X=0;for(let ee of s)ee.scope.sessionId===E&&(A+=1,H+=kt(ee),X+=ee.merge?.bytes??0);return{count:A,bytes:H,mergeBytes:X}},"pendingSessionMetrics"),nn=i((E,A,H)=>{if(n)throw new Error("KodaX runtime event bus is closed");let X=g.get(H.sessionId);if(X!==void 0)throw X;let ee=x.get(H.sessionId);if(ee!==void 0)throw ee;let ge=ah(A),D=sh(E,ge,H),U={type:E,payload:ge,scope:H,time:new Date().toISOString(),...D!==void 0?{merge:D}:{}},le=kt(U);if(le>pl){Ce(H.sessionId),cn(U);return}let G=rn(H.sessionId);if((G.count>=wR||G.bytes+le>pl)&&Ce(H.sessionId),D===void 0){s.push(U),l+=le,Ge(H.sessionId);return}if(D.mode==="latest"){if(bn(U)){s.push(U),R+=D.bytes,l+=le,Ge(H.sessionId);return}an(U)}else{let he=s.at(-1),S=he?.merge?.key===D.key&&he.merge.mode===D.mode&&he.scope.sessionId===H.sessionId&&he.scope.runId===H.runId;if(S&&he.merge.bytes+D.bytes>Fs){Ge(H.sessionId);let M=g.get(H.sessionId);if(M!==void 0)throw M;let O=x.get(H.sessionId);if(O!==void 0)throw O;s.push(U),R+=D.bytes,l+=le}else if(S){let M=dh(he,U);R+=(M.merge?.bytes??0)-he.merge.bytes,l+=kt(M)-kt(he),s[s.length-1]=M}else s.push(U),R+=D.bytes,l+=le}G.mergeBytes+D.bytes>=Fs?Ge(H.sessionId):je()},"enqueue"),d=i(E=>{if(E===void 0){Ce();return}let A=new Set;for(let X of s)E.sessionId!==void 0?X.scope.sessionId===E.sessionId&&A.add(X.scope.sessionId):E.runId!==void 0&&X.scope.runId===E.runId&&A.add(X.scope.sessionId);if(E.sessionId!==void 0)A.add(E.sessionId);else if(E.runId!==void 0&&E.aggregateSessions!==!0&&(g.size>0||x.size>0)){let X=e.eventRunSessionId(E.runId);X!==void 0&&A.add(X)}let H;for(let X of A)try{Ce(X)}catch(ee){H??=ee}if(H!==void 0)throw H},"flushEventFilter"),b={subscribe(E,A){if(n)throw new Error("KodaX runtime event bus is closed");d(E);let H={filter:E,listener:A};return p.add(H),{close(){p.delete(H),queueMicrotask(()=>{if(!n)try{d(E)}catch(X){C||(C=!0,we({source:"runtime.persistence",level:"error",message:"Failed to persist coalesced runtime events",detail:X}))}})}}},async replay(E){d(E);let A=e.replay(E),H=E?.aggregateSessions===!0?void 0:E?.sessionId??E?.after?.sessionId??(E?.runId!==void 0?A.find(D=>h(D,E))?.sessionId??t.find(D=>h(D,E))?.sessionId:void 0),X=H===void 0?void 0:e.currentSessionCursor(H),ee=new Map;for(let D of A)ee.set(D.id,D);if(E?.aggregateSessions!==!0)for(let D of t)ee.set(D.id,D);let ge=[...ee.values()].filter(D=>h(D,E)&&(X===void 0||D.cursor.sessionId===X.sessionId&&D.cursor.journalEpoch===X.journalEpoch)&&(E?.after===void 0||D.seq>E.after.seq)).sort((D,U)=>cm(D,U,E));return E?.limit===void 0?ge:E.after===void 0?ge.slice(-E.limit):ge.slice(0,E.limit)}};return{service:b,scopedService:{subscribe(E,A){let H=Tl(E,e);return b.subscribe({...E,sessionId:H},A)},async replay(E){Ah(E?.limit);let A=Tl(E,e);return Ch(E?.after),b.replay({...E,sessionId:A})}},subscribeClose(E){return n?(E(),{close(){}}):(c.add(E),{close(){c.delete(E)}})},emit(E,A,H){nn(E,A,H)},emitDurable(E,A,H,X){Ce(H.sessionId);let ee={type:E,payload:A,scope:H,time:new Date().toISOString()},ge=q(H.sessionId,1,(D,U)=>N([ee],D,U))[0];return X?.(),te([ge]),_([ge]),ge},projectSession(E){Ce(E);let A=r.get(E);return kl(A===void 0?bl():A)},currentSessionCursor(E){Ce(E);let A=o.get(E);if(A!==void 0)return A;let H=e.currentSessionCursor(E);return o.set(E,H),H},close(){if(n){if(f!==void 0)throw f;return}let E;try{Ce()}catch(A){E=$e(A)}finally{n=!0,de(),s.splice(0,s.length),R=0,l=0;for(let A of[...c])try{A()}catch(H){we({source:"runtime.events",level:"error",message:"Runtime event close listener failed.",detail:$e(H)})}c.clear();try{e.close()}catch(A){let H=$e(A);E??=H,we({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:H})}p.clear(),r.clear(),o.clear()}if(f=E,E!==void 0)throw E},retireSessionJournal(E){g.has(E)||Ce(E),e.retireSessionEventJournal(E),o.delete(E),r.delete(E)},restoreSessionJournal(E){e.restoreSessionEventJournal(E)},prepareSessionJournal(E){if(e.prepareSessionEventJournal(E)){g.delete(E),x.delete(E),o.delete(E),r.delete(E),Pe(E);for(let A=t.length-1;A>=0;A-=1)t[A]?.sessionId===E&&t.splice(A,1)}}}}i(uh,"createRuntimeEventBus");function bl(){return{assistantTextByRun:{},thinkingTextByRun:{},activeTools:new Map,pendingUserInputs:new Map,managedTasks:new Map,todo:void 0}}i(bl,"createRuntimeSessionLiveProjectionState");function ch(e,n){let t=oe(n.payload)?n.payload:void 0;if(!mh(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=_i(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=_i(n),o=e.activeTools.get(r)??El(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,progress:n.payload})}else if(n.type==="tool.sandbox"){let r=_i(n),o=e.activeTools.get(r)??El(e.activeTools,n.runId);o&&e.activeTools.set(o.key,{...o,sandbox:n.payload})}else if(n.type==="tool.finished"){let r=_i(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=fh(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(zs(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(ch,"applyRuntimeSessionEvent");var lh=new Set(["assistant.delta","thinking.delta","thinking.finished","tool.started","tool.progress","tool.sandbox","tool.finished","todo.updated"]);function mh(e,n){if(!lh.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(mh,"isChildOwnedPrimaryLiveEvent");function kl(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(kl,"snapshotRuntimeSessionLiveProjection");function fh(e){if(!(!oe(e)||typeof e.agentMode!="string"||typeof e.harnessProfile!="string"))return e}i(fh,"parseRuntimeManagedTaskStatus");function _s(e,n){return e.sessionId===n.sessionId&&e.journalEpoch===n.journalEpoch&&e.seq===n.seq}i(_s,"sameRuntimeSessionCursor");function _i(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(_i,"runtimeToolProjectionKey");function El(e,n){return[...e.values()].reverse().find(t=>t.runId===n)}i(El,"latestActiveToolForRun");function zs(e){return e==="run.completed"||e==="run.failed"||e==="run.cancelled"||e==="run.interrupted"}i(zs,"isTerminalRuntimeEvent");function ph(e,n){let t=e.homeDir?Y.resolve(e.homeDir):e.sessionsDir?Y.resolve(e.sessionsDir,".."):process.cwd(),r=e.sharedDaemonHost===!0?Y.join(t,".kodax","runtime","profiles",encodeURIComponent(e.profile??"default")):Y.join(t,".kodax","runtime"),o=Y.join(r,"runs"),s=Y.join(r,"session-events"),a=Y.join(r,"session-settings"),u=Y.join(r,"session-orders"),c=Y.join(r,"permission-grants.json"),p=Y.join(r,"run-status-index.json"),R=new Map,I=i(S=>Y.join(o,encodeURIComponent(S)),"runDir"),g=i(S=>Y.join(I(S),"events.jsonl"),"eventFile"),x=i(S=>Y.join(I(S),"events.watermark"),"eventWatermarkFile"),f=i(S=>Y.join(I(S),"event-journals.json"),"eventJournalsFile"),C=i(S=>Y.join(I(S),"status.json"),"statusFile"),m=i(S=>Y.join(a,`${encodeURIComponent(S)}.json`),"sessionSettingsFile"),k=i(S=>Y.join(u,`${encodeURIComponent(S)}.json`),"sessionOrderFile"),l=i(S=>Y.join(s,Ph(S)),"sessionEventDir"),v=i(S=>Y.join(l(S),"sequence"),"sessionEventSequenceFile"),h=i(S=>Y.join(l(S),"journal.json"),"sessionEventJournalFile"),P=[],T=new Set,_=i(S=>{let M=v(S);if($.existsSync(M))try{let O=JSON.parse($.readFileSync(M,"utf-8"));if(Number.isSafeInteger(O)&&O>=0)return O}catch(O){we({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:O})}},"readEventSequenceCursor"),N=i((S,M)=>{let O=0;if(!$.existsSync(o))return O;for(let K of $.readdirSync(o,{withFileTypes:!0})){if(!K.isDirectory())continue;let W=Y.join(o,K.name,"events.jsonl");if(!$.existsSync(W))continue;let Z=$.statSync(W).size,re=Math.min(Z,yl);for(;re>0;){let ne=Buffer.allocUnsafe(re),z=$.openSync(W,"r");try{$.readSync(z,ne,0,re,Z-re)}finally{$.closeSync(z)}let se=ne.toString("utf-8").split(/\r?\n/);re<Z&&se.shift();let ae=!1;for(let me of se)if(me.trim())try{let fe=JSON.parse(me);Ni(fe)&&fe.sessionId===S&&Pt(fe)&&fe.cursor.journalEpoch===M&&Number.isSafeInteger(fe.seq)&&(O=Math.max(O,fe.seq),ae=!0)}catch{}if(ae||re===Z)break;re=Math.min(Z,re*2)}}return O},"findMaxPersistedEventSeq"),q=i(S=>{let M=h(S);if($.existsSync(M)){let K;try{K=JSON.parse($.readFileSync(M,"utf-8"))}catch(W){we({source:"runtime.persistence",level:"warn",message:`Failed to read Session event journal metadata for ${S}; creating a new cursor epoch`,detail:W})}if(oe(K)&&K.version===1&&K.sessionId===S&&typeof K.journalEpoch=="string"&&K.journalEpoch.length>0)return K.journalEpoch}let O=Qe();return gn(M,{version:1,sessionId:S,journalEpoch:O}),O},"readSessionJournalEpochLocked"),te=i((S,M)=>{if(!Number.isSafeInteger(M)||M<=0)throw new Error("Runtime event sequence batch size must be positive");let O=q(S),K=_(S),W=R.get(S)??K??N(S,O),Z=Math.max(K??0,W),re=Z+1,ne=Z+M;return gn(v(S),ne),R.set(S,ne),{firstSeq:re,journalEpoch:O}},"reserveEventSeqsLocked"),de=i((S,M)=>($.mkdirSync(l(S),{recursive:!0}),kn(v(S),()=>te(S,M))),"reserveEventSeqs"),Ie=i(S=>($.mkdirSync(l(S),{recursive:!0}),kn(v(S),()=>{let M=q(S),O=_(S),K=Math.max(O??0,R.get(S)??O??N(S,M));return R.set(S,K),{sessionId:S,journalEpoch:M,seq:K}})),"readCurrentSessionCursor"),Te=i(S=>{let M=h(S);if($.existsSync(M))try{let O=JSON.parse($.readFileSync(M,"utf-8"));if(oe(O)&&O.version===1&&O.sessionId===S&&typeof O.journalEpoch=="string"&&O.journalEpoch.length>0&&(O.retired===void 0||O.retired===!0))return O.retired===!0?void 0:O.journalEpoch;we({source:"runtime.persistence",level:"warn",message:`Invalid active Session event journal metadata for ${S}; excluding it from aggregate event replay`,detail:{file:M}});return}catch(O){we({source:"runtime.persistence",level:"warn",message:`Failed to read active Session event journal metadata for ${S}; excluding it from aggregate event replay`,detail:{file:M,error:$e(O)}});return}},"readActiveSessionJournalEpoch"),Pe=i(S=>{if(!$.existsSync(o))return 0;let M=0;for(let O of $.readdirSync(o,{withFileTypes:!0}))if(O.isDirectory())try{let K=Et(Y.join(o,O.name,"status.json"));if(K?.status.sessionId!==S)continue;M=Math.max(M,K.status.sessionOrder??0)}catch{}return M},"findMaxPersistedSessionOrder"),be=i((S,M,O)=>{if(T.has(S))return;T.add(S);let K=O.sessionId??"runtime",W=de(K,1),Z=W.firstSeq,re={id:`evt_persist_warn_${Z}_${Qe().replace(/-/g,"").slice(0,8)}`,seq:Z,cursor:{sessionId:K,journalEpoch:W.journalEpoch,seq:Z},time:new Date().toISOString(),sessionId:K,runId:O.runId??O.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:M,...O.file!==void 0?{file:O.file}:{}}};P.push(re),P.length>Ki&&P.splice(0,P.length-Ki)},"pushPersistenceWarning"),ve=i((S,M,O)=>[...S,...P].filter(K=>O===void 0||Pt(K)&&K.cursor.sessionId===O.sessionId&&K.cursor.journalEpoch===O.journalEpoch).filter(K=>xh(K,M)).sort((K,W)=>cm(K,W,M)),"withPersistenceWarnings"),Fe=i((S,M,O)=>{if(!$.existsSync(S))return[];let K=$.readFileSync(S,"utf-8"),W=[],Z=K.split(/\r?\n/);for(let re=0;re<Z.length;re+=1){let ne=Z[re]??"";if(ne.trim())try{let z=JSON.parse(ne);if(Ni(z)){if(!("cursor"in z))continue;if(!Pt(z)){be(`${S}:${re+1}:cursor`,`Skipped runtime event with an invalid Session cursor at ${Y.basename(S)}:${re+1}`,{runId:M,sessionId:z.sessionId,file:S});continue}if(O!==void 0&&(z.cursor.sessionId!==O.sessionId||z.cursor.journalEpoch!==O.journalEpoch))continue;W.push(z)}else be(`${S}:${re+1}:shape`,`Skipped malformed runtime event record at ${Y.basename(S)}:${re+1}`,{runId:M,file:S})}catch(z){be(`${S}:${re+1}:parse`,`Skipped malformed runtime event record at ${Y.basename(S)}:${re+1}: ${$e(z).message}`,{runId:M,file:S})}}return W},"readEventsFromFile"),Ce=i((S,M)=>{if($.statSync(S).size<=tm)return;let O=$.readFileSync(S,"utf-8").trimEnd().split(/\r?\n/),K=[],W=0,Z=O.length;for(let z=O.length-1;z>=0;z-=1){let se=O[z]??"";if(!se)continue;let ae=Buffer.byteLength(se,"utf-8")+1;if(K.length>0&&W+ae>IR)break;K.push(se),W+=ae,Z=z}K.reverse();let re=Oi(x(M));if(re.invalid)throw new Error("Runtime event retention watermark is malformed");let ne=new Map(re.journals.map(z=>[JSON.stringify([z.sessionId,z.journalEpoch]),z]));for(let z of O.slice(0,Z))try{let se=JSON.parse(z);if(Ni(se)&&Pt(se)){let ae=JSON.stringify([se.cursor.sessionId,se.cursor.journalEpoch]),me=ne.get(ae);ne.set(ae,{sessionId:se.cursor.sessionId,journalEpoch:se.cursor.journalEpoch,droppedThrough:Math.max(me?.droppedThrough??0,se.seq)})}}catch{}gn(x(M),{version:2,journals:[...ne.values()].sort((z,se)=>z.sessionId.localeCompare(se.sessionId)||z.journalEpoch.localeCompare(se.journalEpoch))}),Wi(S,K.length>0?`${K.join(`
373
373
  `)}
374
374
  `:"")},"trimEventFile"),je=i(S=>{if(!$.existsSync(S))return 0;let M=$.openSync(S,"r"),O=0,K;try{if(O=$.fstatSync(M).size,O===0)return 0;let Z=Buffer.allocUnsafe(1);if($.readSync(M,Z,0,1,O-1),Z[0]===10)return O;let re=Math.min(O,yl);for(;K=Buffer.allocUnsafe(re),$.readSync(M,K,0,re,O-re),!(K.lastIndexOf(10)>=0||re===O);)re=Math.min(O,re*2)}finally{$.closeSync(M)}let W=O-K.length+K.lastIndexOf(10)+1;try{let Z=JSON.parse(K.subarray(K.lastIndexOf(10)+1).toString("utf-8"));if(Ni(Z))return $.appendFileSync(S,`
375
375
  `,"utf-8"),O+1}catch{}return $.truncateSync(S,W),W},"repairIncompleteEventTail"),Ge=i(S=>{let M=S[0];if(M===void 0)return;if(S.some(Z=>Z.runId!==M.runId))throw new Error("Runtime event persistence batches must contain one Run");let O=I(M.runId),K=g(M.runId);$.mkdirSync(O,{recursive:!0});let W;try{kn(K,()=>{let Z=je(K),re=f(M.runId),ne=Al(re);if(ne.invalid)throw new Error("Runtime Run event journal index is malformed");let z=new Map,se=!ne.exists;if(ne.exists)for(let me of ne.journals)z.set(JSON.stringify([me.sessionId,me.journalEpoch]),me);else{let me=Oi(x(M.runId));if(me.invalid)throw new Error("Runtime Run event journal index cannot be recovered from a malformed watermark");for(let fe of me.journals)z.set(JSON.stringify([fe.sessionId,fe.journalEpoch]),fe);for(let fe of Fe(K,M.runId))Pt(fe)&&z.set(JSON.stringify([fe.cursor.sessionId,fe.cursor.journalEpoch]),{sessionId:fe.cursor.sessionId,journalEpoch:fe.cursor.journalEpoch})}for(let me of S){let fe=JSON.stringify([me.cursor.sessionId,me.cursor.journalEpoch]);z.has(fe)||(z.set(fe,{sessionId:me.cursor.sessionId,journalEpoch:me.cursor.journalEpoch}),se=!0)}se&&gn(re,{version:1,journals:[...z.values()].sort((me,fe)=>me.sessionId.localeCompare(fe.sessionId)||me.journalEpoch.localeCompare(fe.journalEpoch))});let ae=S.map(me=>`${JSON.stringify(me)}