@kodax-ai/kodax 0.7.97-beta.1 → 0.7.97-beta.2

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 (138) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +28 -2
  3. package/README_CN.md +18 -1
  4. package/dist/chunks/agent-DS7M57WD.js +2 -0
  5. package/dist/chunks/agent-adapter-TLWGGK3V.js +2 -0
  6. package/dist/chunks/argument-completer-OGCXKTRQ.js +2 -0
  7. package/dist/chunks/{cell-ABNYMGXV.js → cell-LV7MNPNQ.js} +1 -1
  8. package/dist/chunks/{chunk-KQ3XVHKK.js → chunk-2HH5AS7E.js} +55 -55
  9. package/dist/chunks/{chunk-6VHO36HK.js → chunk-3CP7AUWY.js} +1 -1
  10. package/dist/chunks/{chunk-ADIWJDFS.js → chunk-53CJDQS2.js} +1 -1
  11. package/dist/chunks/{chunk-3ZEJRVNA.js → chunk-5MUVRFMU.js} +1 -1
  12. package/dist/chunks/{chunk-KJBS6L7Q.js → chunk-6TITQQAI.js} +155 -155
  13. package/dist/chunks/{chunk-HA4IKFUK.js → chunk-BBZWF2EA.js} +1 -1
  14. package/dist/chunks/{chunk-W6MHQ7ED.js → chunk-C6JGLEYD.js} +1 -1
  15. package/dist/chunks/{chunk-NM3AINLH.js → chunk-D36OIMV7.js} +29 -29
  16. package/dist/chunks/{chunk-LWOGHKTL.js → chunk-D425EZGC.js} +1 -1
  17. package/dist/chunks/{chunk-7SX7CHYP.js → chunk-DCE7XQUG.js} +1 -1
  18. package/dist/chunks/{chunk-N2B6A3CX.js → chunk-DV5YPYLW.js} +1 -1
  19. package/dist/chunks/{chunk-5MDNQCAV.js → chunk-EISRVOBJ.js} +2 -2
  20. package/dist/chunks/chunk-EPK6EWRI.js +12 -0
  21. package/dist/chunks/{chunk-G2IMBA3R.js → chunk-F6GJXQNA.js} +5 -5
  22. package/dist/chunks/chunk-GJXOTOZB.js +465 -0
  23. package/dist/chunks/{chunk-F7H6CDJN.js → chunk-I325ER7D.js} +1 -1
  24. package/dist/chunks/{chunk-E2Z754K5.js → chunk-J2L2NK6E.js} +57 -57
  25. package/dist/chunks/chunk-JAF2YLZO.js +14 -0
  26. package/dist/chunks/{chunk-A3SLNYBB.js → chunk-KDSO7V4O.js} +1 -1
  27. package/dist/chunks/{chunk-654JOM24.js → chunk-MCDZNQWD.js} +4 -4
  28. package/dist/chunks/{chunk-KDRYQKT7.js → chunk-NSR4RW2F.js} +1 -1
  29. package/dist/chunks/chunk-OGTRDK4Q.js +359 -0
  30. package/dist/chunks/{chunk-GYNAAIZP.js → chunk-P55RJIOG.js} +1 -1
  31. package/dist/chunks/chunk-QSZCR5GC.js +190 -0
  32. package/dist/chunks/chunk-R2HTPDI7.js +2 -0
  33. package/dist/chunks/chunk-R42S4BLA.js +2 -0
  34. package/dist/chunks/chunk-RYBUYHDL.js +5 -0
  35. package/dist/chunks/{chunk-XGUGEVCK.js → chunk-SDPZFH6M.js} +1 -1
  36. package/dist/chunks/chunk-SK3RRGHJ.js +142 -0
  37. package/dist/chunks/chunk-TQ475LOI.js +2 -0
  38. package/dist/chunks/{chunk-ZT2LR3KD.js → chunk-UL6YIT4M.js} +1 -1
  39. package/dist/chunks/{chunk-7U2BL7CM.js → chunk-V2XJSFFE.js} +1 -1
  40. package/dist/chunks/{chunk-TXI6SHDO.js → chunk-W2CWO4PQ.js} +1 -1
  41. package/dist/chunks/{chunk-SCGXZ2QT.js → chunk-WWPVEK6B.js} +1 -1
  42. package/dist/chunks/{chunk-FMZN5F3Q.js → chunk-X5M7TLJV.js} +1 -1
  43. package/dist/chunks/{chunk-FZZMHNDB.js → chunk-XDMNJW6J.js} +5 -5
  44. package/dist/chunks/{chunk-VT35IZEZ.js → chunk-XZSFUGPN.js} +1 -1
  45. package/dist/chunks/{client-3JEK33QQ.js → client-LTIFNED5.js} +1 -1
  46. package/dist/chunks/compaction-config-ECMOFP5H.js +2 -0
  47. package/dist/chunks/{construction-bootstrap-HCRLORKG.js → construction-bootstrap-OAZKGI5Y.js} +1 -1
  48. package/dist/chunks/dist-5J53DGAO.js +2 -0
  49. package/dist/chunks/{google-native-45I4S26I.js → google-native-WLL27OV7.js} +1 -1
  50. package/dist/chunks/host-65E5NM5P.js +2 -0
  51. package/dist/chunks/model-DZF6URW3.js +2 -0
  52. package/dist/chunks/{permission-MTSFSB74.js → permission-YVVMLQ5I.js} +1 -1
  53. package/dist/chunks/readline-helpers-UZXWBRXQ.js +2 -0
  54. package/dist/chunks/run-manager-ZFACIZM2.js +2 -0
  55. package/dist/chunks/running-session-Q5Y6A2QV.js +2 -0
  56. package/dist/chunks/{skills-V7T55I4F.js → skills-TJP6BLZJ.js} +1 -1
  57. package/dist/chunks/{tool-dispatch-ZVIDGKB4.js → tool-dispatch-MLM3QTSU.js} +1 -1
  58. package/dist/chunks/{utils-WGRFGT7S.js → utils-2QNMYRGA.js} +1 -1
  59. package/dist/index.d.ts +18 -18
  60. package/dist/index.js +2 -2
  61. package/dist/kodax_bootstrap.js +1 -1
  62. package/dist/kodax_cli.js +1534 -1532
  63. package/dist/kodax_doctor.js +1 -1
  64. package/dist/manual-topics.json +17 -2
  65. package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
  66. package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
  67. package/dist/native/win32-x64/manifest.json +2 -2
  68. package/dist/one-shot-task.js +1 -1
  69. package/dist/provider-auth-cli.js +1 -1
  70. package/dist/runtime-daemon-schema.json +1 -1
  71. package/dist/sandbox-network-broker.js +77 -77
  72. package/dist/script-cell.js +1 -1
  73. package/dist/script-worker.cjs +30 -7
  74. package/dist/sdk-a2a.d.ts +11 -11
  75. package/dist/sdk-a2a.js +1 -1
  76. package/dist/sdk-agent.d.ts +13 -9
  77. package/dist/sdk-agent.js +1 -1
  78. package/dist/sdk-client.d.ts +5 -5
  79. package/dist/sdk-client.js +1 -1
  80. package/dist/sdk-coding.d.ts +57 -16
  81. package/dist/sdk-coding.js +1 -1
  82. package/dist/sdk-experimental-memory.js +1 -1
  83. package/dist/sdk-llm.js +1 -1
  84. package/dist/sdk-mcp.js +1 -1
  85. package/dist/sdk-media.d.ts +11 -11
  86. package/dist/sdk-media.js +1 -1
  87. package/dist/sdk-repl.d.ts +15 -15
  88. package/dist/sdk-repl.js +1 -1
  89. package/dist/sdk-runtime.d.ts +14 -14
  90. package/dist/sdk-runtime.js +1 -1
  91. package/dist/sdk-sandbox.js +1 -1
  92. package/dist/sdk-session.d.ts +6 -6
  93. package/dist/sdk-session.js +1 -1
  94. package/dist/sdk-skills.js +1 -1
  95. package/dist/semantic-worker.js +70 -70
  96. package/dist/static-text.json +50 -2
  97. package/dist/storage-repair-cli.js +1 -1
  98. package/dist/types-chunks/{bash-prefix-extractor.d-RblzA9kO.d.ts → bash-prefix-extractor.d-CJliu5-D.d.ts} +43 -2
  99. package/dist/types-chunks/{capsule.d-C-saon3X.d.ts → capsule.d-EMwSALqK.d.ts} +3 -3
  100. package/dist/types-chunks/{client-contract-D8HXN_iu.d.ts → client-contract-B7q69yMA.d.ts} +19 -3
  101. package/dist/types-chunks/{controller.d-pXik2EIy.d.ts → controller.d-D-hPLKaA.d.ts} +1 -1
  102. package/dist/types-chunks/{manifest.d-r74es7yq.d.ts → manifest.d-YE3-AIeO.d.ts} +1 -1
  103. package/dist/types-chunks/{public-api.d-CvDSMmN2.d.ts → public-api.d-BhDU643p.d.ts} +3 -3
  104. package/dist/types-chunks/{review-packet.d-C0NYHPdq.d.ts → review-packet.d-ChOfJaNI.d.ts} +1 -1
  105. package/dist/types-chunks/{run-manager.d-COrEJ-hn.d.ts → run-manager.d-ChzguipG.d.ts} +12 -6
  106. package/dist/types-chunks/{runtime-client-info-DJ9srk4O.d.ts → runtime-client-info-P_mRDG7j.d.ts} +6 -1
  107. package/dist/types-chunks/{runtime-event-B24TGIxk.d.ts → runtime-event-BW5Pla7a.d.ts} +1 -1
  108. package/dist/types-chunks/{sdk-runtime-CBPScTNR.d.ts → sdk-runtime-cDe7qmN3.d.ts} +18 -10
  109. package/dist/types-chunks/{sdk-session-D_bf_sN2.d.ts → sdk-session-D3pcSbnA.d.ts} +1 -1
  110. package/dist/types-chunks/{skill-invocation-error.d-FJ6ZujRz.d.ts → skill-invocation-error.d-gsNNDnnt.d.ts} +2 -2
  111. package/dist/types-chunks/{trusted-repl-entry-9i4hUuj-.d.ts → trusted-repl-entry-Bbkd2HlO.d.ts} +6 -6
  112. package/dist/types-chunks/{types.d-CTo0NiAM.d.ts → types.d-BlXTogOo.d.ts} +2 -0
  113. package/dist/types-chunks/{utils.d-BhoGV3yv.d.ts → utils.d-CxHyBvO6.d.ts} +5 -5
  114. package/docs/SDK_MIGRATION.md +264 -1
  115. package/docs/SPACE_SDK_SEAMS.md +1 -1
  116. package/package.json +1 -1
  117. package/public_docs/README.md +8 -3
  118. package/public_docs/sdk/embedder-guide.md +1 -1
  119. package/dist/chunks/agent-OY4U4WOU.js +0 -2
  120. package/dist/chunks/agent-adapter-NDH3DMPG.js +0 -2
  121. package/dist/chunks/argument-completer-Q6GMPJ74.js +0 -2
  122. package/dist/chunks/chunk-4KR4VUZK.js +0 -142
  123. package/dist/chunks/chunk-5WZ5FUUD.js +0 -14
  124. package/dist/chunks/chunk-7OTOH4PT.js +0 -465
  125. package/dist/chunks/chunk-BZF7WPRK.js +0 -357
  126. package/dist/chunks/chunk-ED7D73C3.js +0 -2
  127. package/dist/chunks/chunk-LPHKXPF7.js +0 -190
  128. package/dist/chunks/chunk-MJ4IGUD4.js +0 -5
  129. package/dist/chunks/chunk-NQ4XK3B2.js +0 -2
  130. package/dist/chunks/chunk-PRH5G5J7.js +0 -12
  131. package/dist/chunks/chunk-YB24NTBC.js +0 -2
  132. package/dist/chunks/compaction-config-NKDAUZNH.js +0 -2
  133. package/dist/chunks/dist-NTS7CJG3.js +0 -2
  134. package/dist/chunks/host-RHJ3VGYE.js +0 -2
  135. package/dist/chunks/model-WCSO7VEC.js +0 -2
  136. package/dist/chunks/readline-helpers-KZQCE3NH.js +0 -2
  137. package/dist/chunks/run-manager-MWEV42C5.js +0 -2
  138. package/dist/chunks/running-session-3BYAXGLK.js +0 -2
@@ -1,9 +1,9 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{a as Pe,b as K,p as Be,q as He,r as A,s as We}from"./chunk-FZZMHNDB.js";import{f as je,g as Le}from"./chunk-ISLK6R2P.js";import{Ld as Me,Nd as $e,Sd as $,a as z,ca as Y,cc as J,da as Ee,ec as Q,ee as _e,fe as Oe,he as De,la as Se,ob as Te,uc as Ce,wc as Ae,xc as Re}from"./chunk-BZF7WPRK.js";import{a as Z,b as _,c as Ne}from"./chunk-TXI6SHDO.js";import{c as he}from"./chunk-GZUWQZJD.js";import{ff as Ie,qf as be}from"./chunk-KQ3XVHKK.js";import{D as X,h as S,q as ye,w as ke}from"./chunk-E2Z754K5.js";import{b as q,d as D}from"./chunk-A3SLNYBB.js";import{N as xe,q as ve}from"./chunk-KE2NBMAP.js";import{D as pe,E as B,F as we,G as H,H as W,n as me}from"./chunk-V5RCDBKU.js";import{a}from"./chunk-V4WSBIXB.js";function ee(t){if(t.workMode!==void 0&&!["coding","agent","script"].includes(t.workMode))throw new Error(`Unsupported work mode: ${String(t.workMode)}. Supported modes: agent, coding, script.`);let e=t.context;if(e?.workModePolicy!==void 0&&e.workModePolicy!=="intersect")throw new Error(`Unsupported work mode policy: ${String(e.workModePolicy)}. Supported policy: intersect.`);return e?.currentAgentId||e?.workModePolicy!=="intersect"&&(e?.agentProfile||e?.systemPromptOverride||e?.toolVisibilityPolicy)?"coding":t.workMode??"coding"}a(ee,"resolveWorkMode");async function wn(t){if(ee(t)!=="script")return;let{runScriptCell:e}=await import("./cell-ABNYMGXV.js"),{SCRIPT_MODEL_LIMITS:r}=await import("./model-WCSO7VEC.js");try{let n=await e({code:"return true;",toolNames:[],limits:{...r,timeoutMs:5e3},invoke:a(async()=>{throw new Error("Script readiness check has no tool authority.")},"invoke")});if(n.status!=="completed"||n.value!==!0)throw new Error(n.error??n.status)}catch(n){throw new Error(`Script executor unavailable: ${n instanceof Error?n.message:String(n)}`,{cause:n})}}a(wn,"assertWorkModeAvailable");var yt=Object.freeze({1:"ERROR",2:"WARN",3:"INFO",4:"HINT"});function kt(t){let e=yt[t.severity??1]??"ERROR",r=t.range.start.line+1,n=t.range.start.character+1;return`${e} [${r}:${n}] ${t.message}`}a(kt,"pretty");function qe(t,e){let r=e.filter(s=>(s.severity??1)===1);if(r.length===0)return"";let n=r.slice(0,20),i=r.length-20,o=i>0?`
2
+ import{a as Pe,b as K,p as Be,q as He,r as A,s as We}from"./chunk-XDMNJW6J.js";import{f as je,g as Le}from"./chunk-ISLK6R2P.js";import{Nd as Me,Pd as $e,Ud as $,a as z,ca as Y,da as Ee,ec as J,gc as Q,ge as _e,he as Oe,je as De,la as Se,ob as Te,wc as Ce,yc as Ae,zc as Re}from"./chunk-OGTRDK4Q.js";import{c as be}from"./chunk-GZUWQZJD.js";import{a as Z,b as _,c as Ne}from"./chunk-W2CWO4PQ.js";import{ff as ke,qf as Ie}from"./chunk-2HH5AS7E.js";import{D as X,h as S,q as xe,w as ye}from"./chunk-J2L2NK6E.js";import{b as q,d as D}from"./chunk-KDSO7V4O.js";import{N as ve,q as we}from"./chunk-KE2NBMAP.js";import{D as me,E as B,F as pe,G as H,H as W,n as he}from"./chunk-V5RCDBKU.js";import{a}from"./chunk-V4WSBIXB.js";function ee(t){if(t.workMode!==void 0&&!["coding","agent","script"].includes(t.workMode))throw new Error(`Unsupported work mode: ${String(t.workMode)}. Supported modes: agent, coding, script.`);let e=t.context;if(e?.workModePolicy!==void 0&&e.workModePolicy!=="intersect")throw new Error(`Unsupported work mode policy: ${String(e.workModePolicy)}. Supported policy: intersect.`);return e?.currentAgentId||e?.workModePolicy!=="intersect"&&(e?.agentProfile||e?.systemPromptOverride||e?.toolVisibilityPolicy)?"coding":t.workMode??"coding"}a(ee,"resolveWorkMode");async function wn(t){if(ee(t)!=="script")return;let{runScriptCell:e}=await import("./cell-LV7MNPNQ.js"),{SCRIPT_MODEL_LIMITS:r}=await import("./model-DZF6URW3.js");try{let n=await e({code:"return true;",toolNames:[],limits:{...r,timeoutMs:5e3},invoke:a(async()=>{throw new Error("Script readiness check has no tool authority.")},"invoke")});if(n.status!=="completed"||n.value!==!0)throw new Error(n.error??n.status)}catch(n){throw new Error(`Script executor unavailable: ${n instanceof Error?n.message:String(n)}`,{cause:n})}}a(wn,"assertWorkModeAvailable");var yt=Object.freeze({1:"ERROR",2:"WARN",3:"INFO",4:"HINT"});function kt(t){let e=yt[t.severity??1]??"ERROR",r=t.range.start.line+1,n=t.range.start.character+1;return`${e} [${r}:${n}] ${t.message}`}a(kt,"pretty");function qe(t,e){let r=e.filter(s=>(s.severity??1)===1);if(r.length===0)return"";let n=r.slice(0,20),i=r.length-20,o=i>0?`
3
3
  ... and ${i} more`:"";return`<diagnostics file="${t}">
4
4
  ${n.map(kt).join(`
5
5
  `)}${o}
6
- </diagnostics>`}a(qe,"report");import{existsSync as ze,readFileSync as It,statSync as bt}from"fs";import T from"path";import{createRequire as Fe}from"module";var Pt=process.platform==="win32",Et=Pt?(process.env.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""];function Ge(t){try{return ze(t)&&bt(t).isFile()}catch{return!1}}a(Ge,"isFile");function Ue(t){let e=(process.env.PATH??"").split(T.delimiter).filter(Boolean);for(let r of e)for(let n of Et){let i=n&&t.toLowerCase().endsWith(n.toLowerCase()),o=T.join(r,i?t:t+n);if(Ge(o))return o}}a(Ue,"whichGlobal");function Ve(t){return Fe(T.join(t,"__kodax_lsp_resolve__.js"))}a(Ve,"requireFrom");function te(t,e,r){let n;try{n=Ve(e).resolve(`${t}/package.json`)}catch{return}let i;try{i=JSON.parse(It(n,"utf8")).bin}catch{return}let o;if(typeof i=="string")o=i;else if(i&&typeof i=="object"){let c=i;o=r&&c[r]||c[t]||Object.values(c)[0]}if(!o)return;let s=T.join(T.dirname(n),o);if(Ge(s))return{command:process.execPath,args:[s],kind:"javascript"}}a(te,"resolveNodePackageBin");function Xe(t,e){try{return Ve(t).resolve("typescript/lib/tsserver.js")}catch{}if(e)try{return Fe(e).resolve("typescript/lib/tsserver.js")}catch{return}}a(Xe,"resolveTsserver");function ne(t,e,r){let n=T.resolve(r),i=_(n),o=T.dirname(T.resolve(t));if(!_(o).startsWith(i))return n;for(;;){for(let c of e)if(ze(T.join(o,c)))return o;if(_(o)===i)return n;let s=T.dirname(o);if(s===o)return n;o=s}}a(ne,"findNearestRoot");function re(){return process.env.KODAX_LSP_DOWNLOAD==="1"&&process.env.KODAX_LSP_NO_DOWNLOAD!=="1"}a(re,"isAutoInstallEnabled");var St=5*6e4;function Ke(t,e={}){return e.signal?.aborted?Promise.resolve(!1):new Promise(r=>{let n=!1,i,o,s=a(f=>{n||(n=!0,o&&clearTimeout(o),i&&e.signal?.removeEventListener("abort",i),r(f))},"done"),c=Ne(t.command,t.args,{stdio:"ignore",env:process.env,detached:process.platform!=="win32"});ke(c),i=a(()=>{X(c),s(!1)},"onAbort"),e.signal?.addEventListener("abort",i,{once:!0}),o=setTimeout(()=>{X(c),e.debug?.(`install timed out: ${t.command} ${t.args.join(" ")}`),s(!1)},e.timeoutMs??St),c.on("error",f=>{e.debug?.(`install failed to start: ${f.message}`),s(!1)}),c.on("exit",f=>s(f===0))})}a(Ke,"runInstallCommand");function j(t,e=[]){let r=Ue(t);return r?{command:r,args:e}:void 0}a(j,"globalLaunch");function Tt({root:t,moduleUrl:e}){let r=Xe(t,e);if(!r)return;let i=te("typescript-language-server",t,"typescript-language-server")??j("typescript-language-server");if(i)return{command:i.command,args:[...i.args,"--stdio"],kind:i.kind,initializationOptions:{tsserver:{path:r}}}}a(Tt,"discoverTypescript");var Ct={id:"typescript",languageIds:["typescript","typescriptreact","javascript","javascriptreact"],rootMarkers:["tsconfig.json","jsconfig.json","package.json",".git"],discover:Tt,installGuidance:"Install the TypeScript language server for in-editor diagnostics: `npm i -D typescript typescript-language-server` (project-local, recommended) or `npm i -g typescript-language-server`."};function At({root:t}){let r=te("pyright",t,"pyright-langserver")??j("pyright-langserver");if(r)return{command:r.command,args:[...r.args,"--stdio"],kind:r.kind}}a(At,"discoverPyright");var Rt={id:"pyright",languageIds:["python"],rootMarkers:["pyproject.toml","setup.py","setup.cfg","requirements.txt","Pipfile",".git"],discover:At,installGuidance:"Install pyright for Python diagnostics: `npm i -g pyright` (or `pip install pyright`)."};function Ye(){return j("gopls")}a(Ye,"discoverGopls");var Mt={id:"gopls",languageIds:["go"],rootMarkers:["go.mod","go.work",".git"],discover:Ye,async acquire({signal:t,onProgress:e,debug:r}){return e?.("Installing gopls via `go install`\u2026"),await Ke({command:"go",args:["install","golang.org/x/tools/gopls@latest"]},{signal:t,debug:r})?Ye():void 0},installGuidance:"Install gopls for Go diagnostics: `go install golang.org/x/tools/gopls@latest` (requires the Go toolchain; ensure GOBIN is on PATH)."};function $t(){return j("rust-analyzer")}a($t,"discoverRustAnalyzer");var _t={id:"rust-analyzer",languageIds:["rust"],rootMarkers:["Cargo.toml","Cargo.lock","rust-project.json",".git"],discover:$t,installGuidance:"Install rust-analyzer for Rust diagnostics: `rustup component add rust-analyzer` (or download a release from https://github.com/rust-lang/rust-analyzer/releases)."};function Ot(){return j("jdtls")}a(Ot,"discoverJdtls");var Dt={id:"jdtls",languageIds:["java"],rootMarkers:["pom.xml","build.gradle","build.gradle.kts","settings.gradle",".git"],discover:Ot,installGuidance:"Install the Eclipse JDT language server (jdtls) for Java diagnostics and put its launcher on PATH; it requires a Java 21+ runtime. See https://github.com/eclipse-jdtls/eclipse.jdt.ls."},Je=Object.freeze([Ct,Rt,Mt,_t,Dt]);import x from"path";import{fileURLToPath as jt}from"url";function oe(t){try{return jt(t)}catch{return t}}a(oe,"uriToPath");function G(t,e){return t.length===0?e:t.map(r=>`${oe(r.uri)}:${r.range.start.line+1}:${r.range.start.character+1}`).join(`
6
+ </diagnostics>`}a(qe,"report");import{existsSync as ze,readFileSync as It,statSync as bt}from"fs";import T from"path";import{createRequire as Fe}from"module";var Pt=process.platform==="win32",Et=Pt?(process.env.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""];function Ge(t){try{return ze(t)&&bt(t).isFile()}catch{return!1}}a(Ge,"isFile");function Ue(t){let e=(process.env.PATH??"").split(T.delimiter).filter(Boolean);for(let r of e)for(let n of Et){let i=n&&t.toLowerCase().endsWith(n.toLowerCase()),o=T.join(r,i?t:t+n);if(Ge(o))return o}}a(Ue,"whichGlobal");function Ve(t){return Fe(T.join(t,"__kodax_lsp_resolve__.js"))}a(Ve,"requireFrom");function te(t,e,r){let n;try{n=Ve(e).resolve(`${t}/package.json`)}catch{return}let i;try{i=JSON.parse(It(n,"utf8")).bin}catch{return}let o;if(typeof i=="string")o=i;else if(i&&typeof i=="object"){let c=i;o=r&&c[r]||c[t]||Object.values(c)[0]}if(!o)return;let s=T.join(T.dirname(n),o);if(Ge(s))return{command:process.execPath,args:[s],kind:"javascript"}}a(te,"resolveNodePackageBin");function Xe(t,e){try{return Ve(t).resolve("typescript/lib/tsserver.js")}catch{}if(e)try{return Fe(e).resolve("typescript/lib/tsserver.js")}catch{return}}a(Xe,"resolveTsserver");function ne(t,e,r){let n=T.resolve(r),i=_(n),o=T.dirname(T.resolve(t));if(!_(o).startsWith(i))return n;for(;;){for(let c of e)if(ze(T.join(o,c)))return o;if(_(o)===i)return n;let s=T.dirname(o);if(s===o)return n;o=s}}a(ne,"findNearestRoot");function re(){return process.env.KODAX_LSP_DOWNLOAD==="1"&&process.env.KODAX_LSP_NO_DOWNLOAD!=="1"}a(re,"isAutoInstallEnabled");var St=5*6e4;function Ke(t,e={}){return e.signal?.aborted?Promise.resolve(!1):new Promise(r=>{let n=!1,i,o,s=a(f=>{n||(n=!0,o&&clearTimeout(o),i&&e.signal?.removeEventListener("abort",i),r(f))},"done"),c=Ne(t.command,t.args,{stdio:"ignore",env:process.env,detached:process.platform!=="win32"});ye(c),i=a(()=>{X(c),s(!1)},"onAbort"),e.signal?.addEventListener("abort",i,{once:!0}),o=setTimeout(()=>{X(c),e.debug?.(`install timed out: ${t.command} ${t.args.join(" ")}`),s(!1)},e.timeoutMs??St),c.on("error",f=>{e.debug?.(`install failed to start: ${f.message}`),s(!1)}),c.on("exit",f=>s(f===0))})}a(Ke,"runInstallCommand");function j(t,e=[]){let r=Ue(t);return r?{command:r,args:e}:void 0}a(j,"globalLaunch");function Tt({root:t,moduleUrl:e}){let r=Xe(t,e);if(!r)return;let i=te("typescript-language-server",t,"typescript-language-server")??j("typescript-language-server");if(i)return{command:i.command,args:[...i.args,"--stdio"],kind:i.kind,initializationOptions:{tsserver:{path:r}}}}a(Tt,"discoverTypescript");var Ct={id:"typescript",languageIds:["typescript","typescriptreact","javascript","javascriptreact"],rootMarkers:["tsconfig.json","jsconfig.json","package.json",".git"],discover:Tt,installGuidance:"Install the TypeScript language server for in-editor diagnostics: `npm i -D typescript typescript-language-server` (project-local, recommended) or `npm i -g typescript-language-server`."};function At({root:t}){let r=te("pyright",t,"pyright-langserver")??j("pyright-langserver");if(r)return{command:r.command,args:[...r.args,"--stdio"],kind:r.kind}}a(At,"discoverPyright");var Rt={id:"pyright",languageIds:["python"],rootMarkers:["pyproject.toml","setup.py","setup.cfg","requirements.txt","Pipfile",".git"],discover:At,installGuidance:"Install pyright for Python diagnostics: `npm i -g pyright` (or `pip install pyright`)."};function Ye(){return j("gopls")}a(Ye,"discoverGopls");var Mt={id:"gopls",languageIds:["go"],rootMarkers:["go.mod","go.work",".git"],discover:Ye,async acquire({signal:t,onProgress:e,debug:r}){return e?.("Installing gopls via `go install`\u2026"),await Ke({command:"go",args:["install","golang.org/x/tools/gopls@latest"]},{signal:t,debug:r})?Ye():void 0},installGuidance:"Install gopls for Go diagnostics: `go install golang.org/x/tools/gopls@latest` (requires the Go toolchain; ensure GOBIN is on PATH)."};function $t(){return j("rust-analyzer")}a($t,"discoverRustAnalyzer");var _t={id:"rust-analyzer",languageIds:["rust"],rootMarkers:["Cargo.toml","Cargo.lock","rust-project.json",".git"],discover:$t,installGuidance:"Install rust-analyzer for Rust diagnostics: `rustup component add rust-analyzer` (or download a release from https://github.com/rust-lang/rust-analyzer/releases)."};function Ot(){return j("jdtls")}a(Ot,"discoverJdtls");var Dt={id:"jdtls",languageIds:["java"],rootMarkers:["pom.xml","build.gradle","build.gradle.kts","settings.gradle",".git"],discover:Ot,installGuidance:"Install the Eclipse JDT language server (jdtls) for Java diagnostics and put its launcher on PATH; it requires a Java 21+ runtime. See https://github.com/eclipse-jdtls/eclipse.jdt.ls."},Je=Object.freeze([Ct,Rt,Mt,_t,Dt]);import x from"path";import{fileURLToPath as jt}from"url";function oe(t){try{return jt(t)}catch{return t}}a(oe,"uriToPath");function G(t,e){return t.length===0?e:t.map(r=>`${oe(r.uri)}:${r.range.start.line+1}:${r.range.start.character+1}`).join(`
7
7
  `)}a(G,"formatLocations");function Qe(t){return typeof t=="string"?t:t.value}a(Qe,"markedToString");function Ze(t){if(!t)return"No hover information.";let e=t.contents;return typeof e=="string"?e.trim()||"No hover information.":Array.isArray(e)?e.map(Qe).join(`
8
8
  `).trim()||"No hover information.":"kind"in e?e.value.trim()||"No hover information.":Qe(e).trim()||"No hover information."}a(Ze,"formatHover");var Lt=Object.freeze({1:"File",2:"Module",3:"Namespace",4:"Package",5:"Class",6:"Method",7:"Property",8:"Field",9:"Constructor",10:"Enum",11:"Interface",12:"Function",13:"Variable",14:"Constant",22:"EnumMember",23:"Struct",26:"TypeParameter"});function F(t){return Lt[t]??"Symbol"}a(F,"kindName");function ie(t){return`${t.start.line+1}:${t.start.character+1}`}a(ie,"rangeStart");function Nt(t){let e=oe(t.uri);return"range"in t?`${e}:${ie(t.range)}`:e}a(Nt,"locationText");function et(t,e){if(t.length===0)return e;let r=[],n=a((i,o)=>{for(let s of i){let c=" ".repeat(o);"location"in s?r.push(`${c}${F(s.kind)} ${s.name} (${s.location.range.start.line+1})`):(r.push(`${c}${F(s.kind)} ${s.name} (${s.range.start.line+1})`),s.children&&s.children.length>0&&n(s.children,o+1))}},"walk");return n(t,0),r.join(`
9
9
  `)}a(et,"formatSymbols");function tt(t,e){return t.length===0?e:t.map(r=>{let n=r.containerName?` in ${r.containerName}`:"";return`${F(r.kind)} ${r.name}${n} ${Nt(r.location)}`}).join(`
@@ -14,10 +14,10 @@ ${n.map(kt).join(`
14
14
 
15
15
  LSP errors detected in this file, please fix:
16
16
  ${h}`:""}async getDefinition(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.definition(x.resolve(e),r).catch(()=>[]);return G(o,"No definition found at that position.")}async getHover(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.hover(x.resolve(e),r).catch(()=>null);return Ze(o)}async getReferences(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.references(x.resolve(e),r).catch(()=>[]);return G(o,"No references found at that position.")}async getDocumentSymbols(e,r={}){let n=await this.navClient(e,r);if(n.kind!=="client")return n.message;let i=await n.client.documentSymbols(x.resolve(e)).catch(()=>[]);return et(i,"No symbols found in this file.")}async getWorkspaceSymbols(e,r={}){let n=await this.workspaceClients(r);if(n.length===0)return"No language server is available for workspace symbol search.";let i=await Promise.all(n.map(o=>o.workspaceSymbols(e).catch(()=>[])));return tt(i.flat(),"No workspace symbols found for that query.")}async getImplementation(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.implementation(x.resolve(e),r).catch(()=>[]);return G(o,"No implementation found at that position.")}async getPrepareCallHierarchy(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=await i.client.prepareCallHierarchy(x.resolve(e),r).catch(()=>[]);return rt(o,"No call hierarchy item found at that position.")}async getIncomingCalls(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=x.resolve(e),s=await i.client.prepareCallHierarchy(o,r).catch(()=>[]);if(s.length===0)return"No call hierarchy item found at that position.";let c=await Promise.all(s.map(f=>i.client.incomingCalls(f).catch(()=>[])));return ot(c.flat(),"No incoming calls found for that symbol.")}async getOutgoingCalls(e,r,n={}){let i=await this.navClient(e,n);if(i.kind!=="client")return i.message;let o=x.resolve(e),s=await i.client.prepareCallHierarchy(o,r).catch(()=>[]);if(s.length===0)return"No call hierarchy item found at that position.";let c=await Promise.all(s.map(f=>i.client.outgoingCalls(f).catch(()=>[])));return it(c.flat(),"No outgoing calls found for that symbol.")}async navClient(e,r){let n=Z(e);if(!n)return{kind:"message",message:`No language server is configured for ${x.basename(e)}.`};let i=this.servers.filter(c=>c.languageIds.includes(n));if(i.length===0)return{kind:"message",message:`No language server is configured for ${x.basename(e)}.`};let o=x.resolve(e),s=r.gitRoot??x.dirname(o);for(let c of i){let f=ne(o,c.rootMarkers,s),u=await this.getClient(c,f,r);if(u)return await u.notifyOpenOrChange(o).catch(()=>{}),{kind:"client",client:u}}return{kind:"message",message:i.map(c=>c.installGuidance).join(`
17
- `)}}async workspaceClients(e){let r=x.resolve(e.gitRoot??process.cwd()),n=[];for(let i of this.servers){let o=await this.getClient(i,r,e);o&&n.push(o)}return n}async shutdownAll(){this.shuttingDown=!0;try{await Promise.all([...this.spawning.values()].map(r=>r.catch(()=>{})));let e=[...this.clients.values()];this.clients.clear(),this.broken.clear(),await Promise.all(e.map(r=>r.shutdown().catch(()=>{})))}finally{this.shuttingDown=!1}}killAllSync(){for(let e of this.clients.values())e.killSync();this.clients.clear()}resetBroken(e){e?this.broken.delete(e):this.broken.clear()}async getClient(e,r,n){let i=`${_(r)}|${e.id}`,o=this.clients.get(i);if(o)return o;if(this.broken.has(i))return;let s=this.spawning.get(i);if(s)return s;let c=this.spawnClient(e,r,i,n);this.spawning.set(i,c);try{return await c}finally{this.spawning.delete(i)}}async spawnClient(e,r,n,i){try{let o=e.discover({root:r,moduleUrl:this.config.moduleUrl});if(o||(o=await this.acquireIfEnabled(e,r,i)),!o){this.broken.add(n),this.config.debug?.(`${e.id} not installed at ${r} \u2014 ${e.installGuidance}`);return}i.onProgress?.(`Starting ${e.id} language server\u2026`);let c=await(this.config.createClient??(await import("./client-3JEK33QQ.js")).createLspClient)({serverId:e.id,root:r,launch:o,debug:this.config.debug});if(this.shuttingDown){await c.shutdown().catch(()=>{});return}return this.clients.set(n,c),c}catch(o){this.broken.add(n),this.config.debug?.(`${e.id} failed to start at ${r}: ${o.message}`);return}}async acquireIfEnabled(e,r,n){if(!(!e.acquire||!re()))try{return await e.acquire({root:r,signal:n.signal,onProgress:n.onProgress,debug:this.config.debug})}catch(i){this.config.debug?.(`${e.id} auto-install failed: ${i.message}`);return}}},L,at=!1;function st(){let t=ve()?.lsp;if(!(t===!1||t===void 0&&process.env.KODAX_LSP==="0"))return L||(L=new se({moduleUrl:import.meta.url,debug:process.env.KODAX_DEBUG_LSP?e=>S({source:"coding:lsp",level:"debug",message:e}):void 0}),!at&&!ye()&&(at=!0,process.once("exit",()=>L?.killAllSync()))),L}a(st,"getDefaultLspService");async function Kn(){await L?.shutdownAll()}a(Kn,"shutdownDefaultLspService");import{createHash as Ht}from"node:crypto";var ct=200;function ht(t,e){let r=t.checkpoint;if(!(!r||typeof r!="object"||Array.isArray(r)||!("kind"in r)||r.kind!=="generation"||r.actorPath!==e||r.actorTurnId!==t.turnId))return Pe(r.history)}a(ht,"readActorGenerationCheckpoint");var N=class{static{a(this,"CodingActorSession")}sessionOptions;controller;turnExecutors=new Map;turnCredentialAccess=new Map;turnEnvironments=new Map;environmentsByActor=new Map;clientTurnOwners=new Map;executingTurns=new Map;environment;activeBudget;constructor(e={}){this.sessionOptions=e,this.activeBudget=e.budget;let r={execute:a(n=>{let i=a(()=>{let s=a(async()=>{let m=this.turnEnvironments.get(n.turn.turnId);this.turnEnvironments.delete(n.turn.turnId);let l=P(n.turn.metadata?.executionKey),p=l?this.turnExecutors.get(l):void 0;if(p&&m===void 0)return p.execute(n);if(n.actor.kind==="external"&&e.executor)return e.executor.execute(n);let y;for(let g=n.actor.parentPath;g&&(y=this.environmentsByActor.get(g),!y);g=g.slice(0,g.lastIndexOf("/")));let w=m===void 0?y??this.environment:await m(n);if(!w)throw new Error("Actor session is not attached to an active KodaX run.");m!==void 0&&this.environmentsByActor.set(n.actor.path,w);try{n.turn.checkpoint&&w.options.context?.runtimeRunId&&await this.resumeGenerationChildren(w.options.context.runtimeRunId,n.actor.path);let g={...n,signal:w.signal?AbortSignal.any([n.signal,w.signal]):n.signal,actor:w.tools===void 0?n.actor:{...n.actor,capabilities:{...n.actor.capabilities,tools:w.tools.filter(b=>n.actor.capabilities.tools.includes("*")||n.actor.capabilities.tools.includes(b))}}},v=a(async()=>l?p?p.execute(g):(await import("./agent-adapter-NDH3DMPG.js")).resumeWorkflowGenerationTurn(g,{...w.parentCtx,actorHost:this,actorControl:this.controller.bind(n.actor.parentPath??"/root")},w.options):Gt(g,w.parentCtx,w.options,this.controller.bind(n.actor.path)),"operation"),I=await(m!==void 0&&w.run?w.run(v):v());return m!==void 0&&w.release?.(I),I}catch(g){throw m!==void 0&&w.release?.(void 0,g),g}},"executeTurn"),c=this.turnCredentialAccess.get(n.turn.turnId);if(this.turnCredentialAccess.delete(n.turn.turnId),n.actor.kind==="external"){if(c!==void 0)throw new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef.");return we(s)}if(c!==void 0)return zt(n,c.allowedProviders),lt(pe(c),n.signal,s);let f=W();if(f===void 0)return s();let u=n.actor.capabilities.providers,h=f.filter(m=>u.includes("*")||u.includes(m)),d=H(h,{kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId});return d===void 0?s():lt(d,n.signal,s)},"dispatch"),o=me({kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId},i);return this.executingTurns.set(n.turn.turnId,{actorPath:n.actor.path,principalId:this.clientTurnOwners.get(n.turn.turnId)??this.turnOwner(n.actor.path),settled:o}),o.then(()=>this.executingTurns.delete(n.turn.turnId),()=>this.executingTurns.delete(n.turn.turnId)),o},"execute")};this.controller=new be({validateCheckpoint:a(async(n,i)=>{let o=ht(i,n.path);return!o||!e.historyStorage?!1:(await K(e.historyStorage,o)).scope==="managed-task-worker"},"validateCheckpoint"),maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,store:e.store,owner:e.owner,isOwnerAlive:e.isOwnerAlive,executor:r,budget:{admit:a(n=>this.activeBudget?.admit(n)??Promise.resolve({admitted:!0}),"admit"),refund:a(n=>this.activeBudget?.refund?.(n)??Promise.resolve(),"refund"),snapshot:a(()=>this.activeBudget?.snapshot?.(),"snapshot")},warn:a(n=>S({source:"coding:actors",level:"warn",message:n}),"warn"),onBackgroundError:a(n=>S({source:"coding:actors",level:"error",message:n instanceof Error?n.message:String(n)}),"onBackgroundError"),onHealthChanged:e.onHealthChanged,onMessageCommitted:a(n=>Ft(this.controller,n,e.sessionId),"onMessageCommitted")})}async initialize(){await this.controller.initialize()}attach(e,r,n="/root"){return this.environment={parentCtx:e,options:r},this.activeBudget=r.context?.managedWorkBudget?nn(r.context.managedWorkBudget):this.sessionOptions.budget,this.controller.bind(n)}rootControl(){return this.controller.bind("/root")}async resumeCheckpointTurn(e,r,n,i,o){let s=this.controller.get("/root",e).actor,c=this.controller.get("/root",e).turns.find(d=>d.turnId===r),f=P(c?.metadata?.executionKey),u=c?.checkpoint;if(f&&!this.turnExecutors.has(f)&&(!u||typeof u!="object"||Array.isArray(u)||!("workflow"in u)||!u.workflow||typeof u.workflow!="object"||Array.isArray(u.workflow)||!("customExecutor"in u.workflow)||u.workflow.customExecutor!==!1))throw new Error("Actor recovery requires its original executor binding.");let h=!1;try{return await this.controller.resumeCheckpointTurn(e,r,()=>{let d=n?.({actorPath:e,turnId:r,providers:s.capabilities.providers});if(d&&!s.capabilities.providers.includes("*")&&d.allowedProviders.some(m=>!s.capabilities.providers.includes(m)))throw new Error("Actor recovery credentials exceed the original provider ceiling.");h=!0,d&&this.turnCredentialAccess.set(r,d),i&&this.turnEnvironments.set(r,i),o&&this.clientTurnOwners.set(r,o)}),{actorPath:e,turnId:r,state:"running"}}catch(d){throw h&&(this.turnCredentialAccess.delete(r),this.turnEnvironments.delete(r),this.clientTurnOwners.delete(r)),d}}async resumeGenerationChildren(e,r="/root"){for(let n of this.rootControl().list().actors){if(n.parentPath!==r)continue;if(n.kind==="workflow"){await this.resumeGenerationChildren(e,n.path);continue}if(!n.currentTurnId)continue;let o=this.rootControl().get(n.path).turns.find(s=>s.turnId===n.currentTurnId)?.checkpoint;o&&typeof o=="object"&&"ownerRunId"in o&&o.ownerRunId===e&&await this.resumeCheckpointTurn(n.path,n.currentTurnId)}}spawnRoot(e,r,n,i){let o;return this.controller.spawn("/root",e,{...r,...n===void 0&&r?.executionPrincipalId===void 0?{}:{beforeLaunch:a(c=>{if(n!==void 0&&c.actor.kind==="external")throw dt();o=c.turn.turnId,r?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(c.turn.turnId,r.executionPrincipalId),i!==void 0&&this.turnEnvironments.set(c.turn.turnId,i),n!==void 0&&this.turnCredentialAccess.set(c.turn.turnId,n({actorPath:c.actor.path,turnId:c.turn.turnId,providers:c.actor.capabilities.providers})),c.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(c.turn.turnId),{once:!0})},"beforeLaunch")}}).catch(c=>{throw o!==void 0&&this.turnCredentialAccess.delete(o),o!==void 0&&this.turnEnvironments.delete(o),o!==void 0&&this.clientTurnOwners.delete(o),c})}followupRoot(e,r,n,i,o=!1,s){let c,f=i===void 0?o?d=>{if(d.kind!=="external"&&d.currentTurnId===void 0)throw qt()}:void 0:d=>{if(d.kind==="external")throw dt();if(d.currentTurnId!==void 0)throw Wt(d.path)},u=i===void 0&&n?.executionPrincipalId===void 0?void 0:d=>{c=d.turn.turnId,n?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(d.turn.turnId,n.executionPrincipalId),s!==void 0&&this.turnEnvironments.set(d.turn.turnId,s),i!==void 0&&this.turnCredentialAccess.set(d.turn.turnId,i({actorPath:d.actor.path,turnId:d.turn.turnId,providers:d.actor.capabilities.providers})),d.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(d.turn.turnId),{once:!0})};return this.controller.followup("/root",e,r,void 0,{...n,...i===void 0?{}:{requireNewTurn:!0},...f===void 0?{}:{validateTarget:f},...u===void 0?{}:{beforeLaunch:u}}).catch(d=>{throw c!==void 0&&this.turnCredentialAccess.delete(c),c!==void 0&&this.turnEnvironments.delete(c),c!==void 0&&this.clientTurnOwners.delete(c),d})}health(){return this.controller.healthSnapshot()}turnOwner(e){let r=new Map(this.rootControl().list().actors.map(n=>[n.path,n]));for(let n=r.get(e);n;n=n.parentPath?r.get(n.parentPath):void 0){let i=n.currentTurnId??n.turnIds.at(-1),o=i===void 0?void 0:this.clientTurnOwners.get(i);if(o!==void 0)return o}}independentTurnIds(){return new Set(this.rootControl().list().actors.flatMap(e=>e.currentTurnId&&(this.executingTurns.get(e.currentTurnId)?.principalId??this.turnOwner(e.path))!==void 0?[e.currentTurnId]:[]))}async quiesceClient(e){let r=this.rootControl().list(),n=new Map(r.actors.flatMap(s=>s.currentTurnId&&(this.executingTurns.get(s.currentTurnId)?.principalId??this.turnOwner(s.path))===e?[[s.currentTurnId,{actorPath:s.path,turnId:s.currentTurnId}]]:[]));for(let[s,c]of this.executingTurns)c.principalId===e&&n.set(s,{actorPath:c.actorPath,turnId:s});if(n.size===0)return{turns:[],unsettledTurnIds:[]};let i=new Set(r.actors.flatMap(s=>s.currentTurnId&&!n.has(s.currentTurnId)?[s.currentTurnId]:[]));await this.controller.quiesce("client exit requested",i);let o;try{await Promise.race([Promise.allSettled([...n.keys()].flatMap(s=>this.executingTurns.get(s)?.settled??[])),new Promise(s=>{o=setTimeout(s,1e3)})])}finally{o&&clearTimeout(o)}return{turns:[...n.values()],unsettledTurnIds:[...n.keys()].filter(s=>this.executingTurns.has(s))}}ownerId(){return this.sessionOptions.owner?.ownerId}ownsDurableFence(){return this.controller.ownsDurableFence()}createWorkflowOwner(e,r){return this.controller.createProtocolOwner(e,r)}workflowOwnerSignal(e){return this.controller.protocolOwnerSignal(e)}settleWorkflowOwner(e,r,n){return this.controller.settleProtocolOwner(e,r,n)}bindActor(e){return this.controller.bind(e)}closeActor(e,r){return this.controller.close("/root",e,r)}registerTurnExecutor(e,r){if(this.turnExecutors.has(e))throw new Error(`Actor turn executor is already registered: ${e}`);return this.turnExecutors.set(e,r),()=>{this.turnExecutors.get(e)===r&&this.turnExecutors.delete(e)}}async waitForAgentCapacity(e){let r=this.controller.bind("/root"),n=r.eventSnapshot().at(-1)?.sequence??0;for(;;){if(e?.aborted)return!1;let i=r.list();if(i.maxConcurrentThreads<=1)return!1;if(i.activeNonRootTurns<i.maxConcurrentThreads-1)return!0;let o=await r.wait(n,250);o&&(n=o.sequence)}}async close(e="runtime closed"){await this.controller.shutdown(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}quiesce(e="runtime quiesced",r){return this.controller.quiesce(e,r)}disposeAfterStoreRemoval(e="session removed"){this.controller.disposeAfterStoreRemoval(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}};function lt(t,e,r){let n=a(()=>t.close("Agent turn cancelled"),"closeOnAbort");return e.aborted?n():e.addEventListener("abort",n,{once:!0}),B(t,async()=>{try{return await r()}finally{e.removeEventListener("abort",n),t.close("Agent turn settled")}})}a(lt,"runActorTurnInCredentialScope");function dt(){return Object.assign(new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef."),{code:"invalid_params"})}a(dt,"externalCredentialBindingError");function Wt(t){return Object.assign(new Error(`${t} already has a credential-bound turn; follow-up credentials cannot replace it.`),{code:"invalid_params"})}a(Wt,"currentTurnCredentialBindingError");function qt(){return Object.assign(new Error("A new internal Agent turn requires an explicit scoped credential binding."),{code:"credential_unavailable"})}a(qt,"missingAgentCredentialBindingError");function zt(t,e){if(t.actor.capabilities.providers.includes("*"))return;let r=e.find(n=>!t.actor.capabilities.providers.includes(n));if(r!==void 0)throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${r}.`)}a(zt,"assertCredentialProvidersAllowed");function ar(t,e){return new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:t.sessionId}).attach(t,e)}a(ar,"createLocalCodingActorControl");function sr(t){return{execute(e){if(e.actor.kind!=="external")throw new Error("Detached Runtime Actor execution only supports external actors.");return mt(e,t)}}}a(sr,"createExternalActorTurnExecutor");function Ft(t,e,r){if(e.recipientPath!=="/root")return;if(e.kind!=="completion"||!e.turnId){q().enqueue({priority:e.kind==="followup"?"user":"background",mode:"agent-message",agentId:D(r,"/root"),content:ce(e)});return}let n=t.output("/root",e.senderPath,e.turnId),i=q(),o=D(r,"/root");if(i.has({agentId:o,maxPriority:"background",mode:"task-notification",predicate:a(f=>f.taskResult?.source==="child_task"&&f.taskResult.taskId===e.turnId,"predicate")}))return;let s=n.state==="completed"?"completed":n.state==="failed"?"failed":"cancelled",c=[n.terminationReason?n.error:void 0,n.output??n.error??s].filter(Boolean).join(`
17
+ `)}}async workspaceClients(e){let r=x.resolve(e.gitRoot??process.cwd()),n=[];for(let i of this.servers){let o=await this.getClient(i,r,e);o&&n.push(o)}return n}async shutdownAll(){this.shuttingDown=!0;try{await Promise.all([...this.spawning.values()].map(r=>r.catch(()=>{})));let e=[...this.clients.values()];this.clients.clear(),this.broken.clear(),await Promise.all(e.map(r=>r.shutdown().catch(()=>{})))}finally{this.shuttingDown=!1}}killAllSync(){for(let e of this.clients.values())e.killSync();this.clients.clear()}resetBroken(e){e?this.broken.delete(e):this.broken.clear()}async getClient(e,r,n){let i=`${_(r)}|${e.id}`,o=this.clients.get(i);if(o)return o;if(this.broken.has(i))return;let s=this.spawning.get(i);if(s)return s;let c=this.spawnClient(e,r,i,n);this.spawning.set(i,c);try{return await c}finally{this.spawning.delete(i)}}async spawnClient(e,r,n,i){try{let o=e.discover({root:r,moduleUrl:this.config.moduleUrl});if(o||(o=await this.acquireIfEnabled(e,r,i)),!o){this.broken.add(n),this.config.debug?.(`${e.id} not installed at ${r} \u2014 ${e.installGuidance}`);return}i.onProgress?.(`Starting ${e.id} language server\u2026`);let c=await(this.config.createClient??(await import("./client-LTIFNED5.js")).createLspClient)({serverId:e.id,root:r,launch:o,debug:this.config.debug});if(this.shuttingDown){await c.shutdown().catch(()=>{});return}return this.clients.set(n,c),c}catch(o){this.broken.add(n),this.config.debug?.(`${e.id} failed to start at ${r}: ${o.message}`);return}}async acquireIfEnabled(e,r,n){if(!(!e.acquire||!re()))try{return await e.acquire({root:r,signal:n.signal,onProgress:n.onProgress,debug:this.config.debug})}catch(i){this.config.debug?.(`${e.id} auto-install failed: ${i.message}`);return}}},L,at=!1;function st(){let t=we()?.lsp;if(!(t===!1||t===void 0&&process.env.KODAX_LSP==="0"))return L||(L=new se({moduleUrl:import.meta.url,debug:process.env.KODAX_DEBUG_LSP?e=>S({source:"coding:lsp",level:"debug",message:e}):void 0}),!at&&!xe()&&(at=!0,process.once("exit",()=>L?.killAllSync()))),L}a(st,"getDefaultLspService");async function Kn(){await L?.shutdownAll()}a(Kn,"shutdownDefaultLspService");import{createHash as Ht}from"node:crypto";var ct=200;function ht(t,e){let r=t.checkpoint;if(!(!r||typeof r!="object"||Array.isArray(r)||!("kind"in r)||r.kind!=="generation"||r.actorPath!==e||r.actorTurnId!==t.turnId))return Pe(r.history)}a(ht,"readActorGenerationCheckpoint");var N=class{static{a(this,"CodingActorSession")}sessionOptions;controller;turnExecutors=new Map;turnCredentialAccess=new Map;turnEnvironments=new Map;environmentsByActor=new Map;clientTurnOwners=new Map;executingTurns=new Map;environment;activeBudget;constructor(e={}){this.sessionOptions=e,this.activeBudget=e.budget;let r={execute:a(n=>{let i=a(()=>{let s=a(async()=>{let m=this.turnEnvironments.get(n.turn.turnId);this.turnEnvironments.delete(n.turn.turnId);let l=P(n.turn.metadata?.executionKey),p=l?this.turnExecutors.get(l):void 0;if(p&&m===void 0)return p.execute(n);if(n.actor.kind==="external"&&e.executor)return e.executor.execute(n);let y;for(let g=n.actor.parentPath;g&&(y=this.environmentsByActor.get(g),!y);g=g.slice(0,g.lastIndexOf("/")));let w=m===void 0?y??this.environment:await m(n);if(!w)throw new Error("Actor session is not attached to an active KodaX run.");m!==void 0&&this.environmentsByActor.set(n.actor.path,w);try{n.turn.checkpoint&&w.options.context?.runtimeRunId&&await this.resumeGenerationChildren(w.options.context.runtimeRunId,n.actor.path);let g={...n,signal:w.signal?AbortSignal.any([n.signal,w.signal]):n.signal,actor:w.tools===void 0?n.actor:{...n.actor,capabilities:{...n.actor.capabilities,tools:w.tools.filter(b=>n.actor.capabilities.tools.includes("*")||n.actor.capabilities.tools.includes(b))}}},v=a(async()=>l?p?p.execute(g):(await import("./agent-adapter-TLWGGK3V.js")).resumeWorkflowGenerationTurn(g,{...w.parentCtx,actorHost:this,actorControl:this.controller.bind(n.actor.parentPath??"/root")},w.options):Gt(g,w.parentCtx,w.options,this.controller.bind(n.actor.path)),"operation"),I=await(m!==void 0&&w.run?w.run(v):v());return m!==void 0&&w.release?.(I),I}catch(g){throw m!==void 0&&w.release?.(void 0,g),g}},"executeTurn"),c=this.turnCredentialAccess.get(n.turn.turnId);if(this.turnCredentialAccess.delete(n.turn.turnId),n.actor.kind==="external"){if(c!==void 0)throw new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef.");return pe(s)}if(c!==void 0)return zt(n,c.allowedProviders),lt(me(c),n.signal,s);let f=W();if(f===void 0)return s();let u=n.actor.capabilities.providers,h=f.filter(m=>u.includes("*")||u.includes(m)),d=H(h,{kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId});return d===void 0?s():lt(d,n.signal,s)},"dispatch"),o=he({kind:"actor_turn",actorPath:n.actor.path,turnId:n.turn.turnId},i);return this.executingTurns.set(n.turn.turnId,{actorPath:n.actor.path,principalId:this.clientTurnOwners.get(n.turn.turnId)??this.turnOwner(n.actor.path),settled:o}),o.then(()=>this.executingTurns.delete(n.turn.turnId),()=>this.executingTurns.delete(n.turn.turnId)),o},"execute")};this.controller=new Ie({validateCheckpoint:a(async(n,i)=>{let o=ht(i,n.path);return!o||!e.historyStorage?!1:(await K(e.historyStorage,o)).scope==="managed-task-worker"},"validateCheckpoint"),maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,store:e.store,owner:e.owner,isOwnerAlive:e.isOwnerAlive,executor:r,budget:{admit:a(n=>this.activeBudget?.admit(n)??Promise.resolve({admitted:!0}),"admit"),refund:a(n=>this.activeBudget?.refund?.(n)??Promise.resolve(),"refund"),snapshot:a(()=>this.activeBudget?.snapshot?.(),"snapshot")},warn:a(n=>S({source:"coding:actors",level:"warn",message:n}),"warn"),onBackgroundError:a(n=>S({source:"coding:actors",level:"error",message:n instanceof Error?n.message:String(n)}),"onBackgroundError"),onHealthChanged:e.onHealthChanged,onMessageCommitted:a(n=>Ft(this.controller,n,e.sessionId),"onMessageCommitted")})}async initialize(){await this.controller.initialize()}attach(e,r,n="/root"){return this.environment={parentCtx:e,options:r},this.activeBudget=r.context?.managedWorkBudget?nn(r.context.managedWorkBudget):this.sessionOptions.budget,this.controller.bind(n)}rootControl(){return this.controller.bind("/root")}async resumeCheckpointTurn(e,r,n,i,o){let s=this.controller.get("/root",e).actor,c=this.controller.get("/root",e).turns.find(d=>d.turnId===r),f=P(c?.metadata?.executionKey),u=c?.checkpoint;if(f&&!this.turnExecutors.has(f)&&(!u||typeof u!="object"||Array.isArray(u)||!("workflow"in u)||!u.workflow||typeof u.workflow!="object"||Array.isArray(u.workflow)||!("customExecutor"in u.workflow)||u.workflow.customExecutor!==!1))throw new Error("Actor recovery requires its original executor binding.");let h=!1;try{return await this.controller.resumeCheckpointTurn(e,r,()=>{let d=n?.({actorPath:e,turnId:r,providers:s.capabilities.providers});if(d&&!s.capabilities.providers.includes("*")&&d.allowedProviders.some(m=>!s.capabilities.providers.includes(m)))throw new Error("Actor recovery credentials exceed the original provider ceiling.");h=!0,d&&this.turnCredentialAccess.set(r,d),i&&this.turnEnvironments.set(r,i),o&&this.clientTurnOwners.set(r,o)}),{actorPath:e,turnId:r,state:"running"}}catch(d){throw h&&(this.turnCredentialAccess.delete(r),this.turnEnvironments.delete(r),this.clientTurnOwners.delete(r)),d}}async resumeGenerationChildren(e,r="/root"){for(let n of this.rootControl().list().actors){if(n.parentPath!==r)continue;if(n.kind==="workflow"){await this.resumeGenerationChildren(e,n.path);continue}if(!n.currentTurnId)continue;let o=this.rootControl().get(n.path).turns.find(s=>s.turnId===n.currentTurnId)?.checkpoint;o&&typeof o=="object"&&"ownerRunId"in o&&o.ownerRunId===e&&await this.resumeCheckpointTurn(n.path,n.currentTurnId)}}spawnRoot(e,r,n,i){let o;return this.controller.spawn("/root",e,{...r,...n===void 0&&r?.executionPrincipalId===void 0?{}:{beforeLaunch:a(c=>{if(n!==void 0&&c.actor.kind==="external")throw dt();o=c.turn.turnId,r?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(c.turn.turnId,r.executionPrincipalId),i!==void 0&&this.turnEnvironments.set(c.turn.turnId,i),n!==void 0&&this.turnCredentialAccess.set(c.turn.turnId,n({actorPath:c.actor.path,turnId:c.turn.turnId,providers:c.actor.capabilities.providers})),c.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(c.turn.turnId),{once:!0})},"beforeLaunch")}}).catch(c=>{throw o!==void 0&&this.turnCredentialAccess.delete(o),o!==void 0&&this.turnEnvironments.delete(o),o!==void 0&&this.clientTurnOwners.delete(o),c})}followupRoot(e,r,n,i,o=!1,s){let c,f=i===void 0?o?d=>{if(d.kind!=="external"&&d.currentTurnId===void 0)throw qt()}:void 0:d=>{if(d.kind==="external")throw dt();if(d.currentTurnId!==void 0)throw Wt(d.path)},u=i===void 0&&n?.executionPrincipalId===void 0?void 0:d=>{c=d.turn.turnId,n?.executionPrincipalId!==void 0&&this.clientTurnOwners.set(d.turn.turnId,n.executionPrincipalId),s!==void 0&&this.turnEnvironments.set(d.turn.turnId,s),i!==void 0&&this.turnCredentialAccess.set(d.turn.turnId,i({actorPath:d.actor.path,turnId:d.turn.turnId,providers:d.actor.capabilities.providers})),d.abortController.signal.addEventListener("abort",()=>this.turnCredentialAccess.delete(d.turn.turnId),{once:!0})};return this.controller.followup("/root",e,r,void 0,{...n,...i===void 0?{}:{requireNewTurn:!0},...f===void 0?{}:{validateTarget:f},...u===void 0?{}:{beforeLaunch:u}}).catch(d=>{throw c!==void 0&&this.turnCredentialAccess.delete(c),c!==void 0&&this.turnEnvironments.delete(c),c!==void 0&&this.clientTurnOwners.delete(c),d})}health(){return this.controller.healthSnapshot()}turnOwner(e){let r=new Map(this.rootControl().list().actors.map(n=>[n.path,n]));for(let n=r.get(e);n;n=n.parentPath?r.get(n.parentPath):void 0){let i=n.currentTurnId??n.turnIds.at(-1),o=i===void 0?void 0:this.clientTurnOwners.get(i);if(o!==void 0)return o}}independentTurnIds(){return new Set(this.rootControl().list().actors.flatMap(e=>e.currentTurnId&&(this.executingTurns.get(e.currentTurnId)?.principalId??this.turnOwner(e.path))!==void 0?[e.currentTurnId]:[]))}async quiesceClient(e){let r=this.rootControl().list(),n=new Map(r.actors.flatMap(s=>s.currentTurnId&&(this.executingTurns.get(s.currentTurnId)?.principalId??this.turnOwner(s.path))===e?[[s.currentTurnId,{actorPath:s.path,turnId:s.currentTurnId}]]:[]));for(let[s,c]of this.executingTurns)c.principalId===e&&n.set(s,{actorPath:c.actorPath,turnId:s});if(n.size===0)return{turns:[],unsettledTurnIds:[]};let i=new Set(r.actors.flatMap(s=>s.currentTurnId&&!n.has(s.currentTurnId)?[s.currentTurnId]:[]));await this.controller.quiesce("client exit requested",i);let o;try{await Promise.race([Promise.allSettled([...n.keys()].flatMap(s=>this.executingTurns.get(s)?.settled??[])),new Promise(s=>{o=setTimeout(s,1e3)})])}finally{o&&clearTimeout(o)}return{turns:[...n.values()],unsettledTurnIds:[...n.keys()].filter(s=>this.executingTurns.has(s))}}ownerId(){return this.sessionOptions.owner?.ownerId}ownsDurableFence(){return this.controller.ownsDurableFence()}createWorkflowOwner(e,r){return this.controller.createProtocolOwner(e,r)}workflowOwnerSignal(e){return this.controller.protocolOwnerSignal(e)}async waitForWorkflowExecutors(e,r){r.throwIfAborted();let n=`/root/workflow:${e}/`,i,o=new Promise((s,c)=>{i=a(()=>c(r.reason??new Error("Workflow resource settlement aborted.")),"abort"),r.addEventListener("abort",i,{once:!0})});try{for(;;){r.throwIfAborted();let s=[...this.executingTurns.values()].filter(c=>c.actorPath.startsWith(n));if(s.length===0)return;await Promise.race([Promise.allSettled(s.map(c=>c.settled)),o])}}finally{i&&r.removeEventListener("abort",i)}}settleWorkflowOwner(e,r,n){return this.controller.settleProtocolOwner(e,r,n)}bindActor(e){return this.controller.bind(e)}closeActor(e,r){return this.controller.close("/root",e,r)}registerTurnExecutor(e,r){if(this.turnExecutors.has(e))throw new Error(`Actor turn executor is already registered: ${e}`);return this.turnExecutors.set(e,r),()=>{this.turnExecutors.get(e)===r&&this.turnExecutors.delete(e)}}async waitForAgentCapacity(e){let r=this.controller.bind("/root"),n=r.eventSnapshot().at(-1)?.sequence??0;for(;;){if(e?.aborted)return!1;let i=r.list();if(i.maxConcurrentThreads<=1)return!1;if(i.activeNonRootTurns<i.maxConcurrentThreads-1)return!0;let o=await r.wait(n,250);o&&(n=o.sequence)}}async close(e="runtime closed"){await this.controller.shutdown(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}quiesce(e="runtime quiesced",r){return this.controller.quiesce(e,r)}disposeAfterStoreRemoval(e="session removed"){this.controller.disposeAfterStoreRemoval(e),this.turnExecutors.clear(),this.turnCredentialAccess.clear(),this.turnEnvironments.clear(),this.environmentsByActor.clear(),this.clientTurnOwners.clear(),this.environment=void 0}};function lt(t,e,r){let n=a(()=>t.close("Agent turn cancelled"),"closeOnAbort");return e.aborted?n():e.addEventListener("abort",n,{once:!0}),B(t,async()=>{try{return await r()}finally{e.removeEventListener("abort",n),t.close("Agent turn settled")}})}a(lt,"runActorTurnInCredentialScope");function dt(){return Object.assign(new Error("External Agent turns cannot bind Runtime Provider credentials; use credentialRef."),{code:"invalid_params"})}a(dt,"externalCredentialBindingError");function Wt(t){return Object.assign(new Error(`${t} already has a credential-bound turn; follow-up credentials cannot replace it.`),{code:"invalid_params"})}a(Wt,"currentTurnCredentialBindingError");function qt(){return Object.assign(new Error("A new internal Agent turn requires an explicit scoped credential binding."),{code:"credential_unavailable"})}a(qt,"missingAgentCredentialBindingError");function zt(t,e){if(t.actor.capabilities.providers.includes("*"))return;let r=e.find(n=>!t.actor.capabilities.providers.includes(n));if(r!==void 0)throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${r}.`)}a(zt,"assertCredentialProvidersAllowed");function ar(t,e){return new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:t.sessionId}).attach(t,e)}a(ar,"createLocalCodingActorControl");function sr(t){return{execute(e){if(e.actor.kind!=="external")throw new Error("Detached Runtime Actor execution only supports external actors.");return mt(e,t)}}}a(sr,"createExternalActorTurnExecutor");function Ft(t,e,r){if(e.recipientPath!=="/root")return;if(e.kind!=="completion"||!e.turnId){q().enqueue({priority:e.kind==="followup"?"user":"background",mode:"agent-message",agentId:D(r,"/root"),content:ce(e)});return}let n=t.output("/root",e.senderPath,e.turnId),i=q(),o=D(r,"/root");if(i.has({agentId:o,maxPriority:"background",mode:"task-notification",predicate:a(f=>f.taskResult?.source==="child_task"&&f.taskResult.taskId===e.turnId,"predicate")}))return;let s=n.state==="completed"?"completed":n.state==="failed"?"failed":"cancelled",c=[n.terminationReason?n.error:void 0,n.output??n.error??s].filter(Boolean).join(`
18
18
  `);i.enqueue({priority:"background",mode:"task-notification",agentId:o,content:`<agent-completed id="${k(e.messageId)}" path="${k(e.senderPath)}" turn_id="${k(e.turnId)}" state="${s}">
19
19
  ${k(c)}
20
- </agent-completed>`,taskResult:{type:"task_result",source:"child_task",taskId:e.turnId,status:s,summary:c,title:e.senderPath,...n.artifacts.length>0?{artifactRefs:[...n.artifacts]}:{}}})}a(Ft,"publishRootMailboxMessage");async function Gt(t,e,r,n){if(t.actor.kind==="external"){let g=`external-actor:${t.turn.turnId}`,v=ut(t,"External Actor"),I={childAgentId:t.actor.path,childAgentName:t.actor.taskName,toolId:g,liveOnly:!0};try{return await mt(t,e.agentExecutorPlane,b=>{v.report(b),e.reportToolProgress?.(`[agent ${t.actor.path}] ${b}`),e.parentEvents?.onToolProgress?.({id:g,message:b},I)})}finally{v.finish(),e.parentEvents?.onChildActivityEnd?.(I)}}let i=Yt(t),o=e.parentAgentConfig;tn(t,i.provider??o?.provider??r.provider);let s=ht(t.turn,t.actor.path);if(s){if(!r.session?.storage)throw new Error("Actor recovery requires its original worker history storage.");await K(r.session.storage,s),await t.reportCheckpoint?.(void 0)}let c=s?[]:await t.drainMailbox(),f=s?[]:[...Jt(t.priorTurns,t.turn.forkTurns),...c.map(g=>Qt(g,pt(n,g)))],u=ut(t,"Actor"),h=new AbortController,d=Zt(t,e.sessionId,n,h.signal),m;try{m=await We([i],e,{maxParallel:1,maxIterationsPerChild:ct,abortSignal:t.signal,...r.session?.storage!==void 0?{historyStorage:r.session.storage}:{},parentOptions:{provider:o?.provider??r.provider,model:o?.model??r.modelOverride??r.model,effort:o?.effort??r.effort,reasoningMode:o?.reasoningMode??r.reasoningMode,thinking:o?.thinking??r.thinking,repoIntelligenceMode:o?.repoIntelligenceMode,repoIntelligenceTrace:o?.repoIntelligenceTrace,compaction:o?.compaction??r.compaction,contextDiagnostics:o?.contextDiagnostics??r.context?.contextDiagnostics,disablePromptCache:o?.disablePromptCache??r.disablePromptCache,shellExecution:o?.shellExecution??r.context?.shellExecution,sandbox:o?.sandbox??r.sandbox,permissionIntent:o?.permissionIntent??r.context?.permissionIntent,extensionRuntime:e.extensionRuntime,events:e.parentEvents?.onContextCapacityBlocked?{...e.parentEvents,onContextCapacityBlocked:a(async(g,v,I)=>{g.checkpoint&&await t.reportCheckpoint?.(A({kind:"generation",actorPath:t.actor.path,actorTurnId:t.turn.turnId,history:g.checkpoint,...r.context?.runtimeRunId?{ownerRunId:r.context.runtimeRunId}:{}}));let b=await e.parentEvents.onContextCapacityBlocked(g,v,I);return v?.throwIfAborted(),await t.reportCheckpoint?.(void 0),b},"onContextCapacityBlocked")}:e.parentEvents},parentRole:"worker",parentHarness:"tool-dispatch",planModeBlockCheck:e.planModeBlockCheck,guardrails:e.guardrails,actorControl:n,actorHost:e.actorHost,...t.actor.parentPath!==void 0&&t.actor.parentPath!=="/root"?{actorParentAgentId:t.actor.parentPath}:{},actorTurnId:t.turn.turnId,...s?{generationCheckpoint:s}:{},initialMessages:f,actorCapabilities:t.actor.capabilities,onIteration:a(g=>u.report(`Iteration ${g.current}${g.max>0?`/${g.max}`:""}`,g),"onIteration"),onProgress:a(g=>{u.report(g),e.reportToolProgress?.(`[agent ${t.actor.path}] ${g}`)},"onProgress")})}finally{h.abort(),u.finish(),await d}let l=m.results[0];if(l?.limitReached)return{output:l.summary,artifacts:l.artifactPaths??[],...l.structured===void 0?{}:{structured:A(l.structured)},terminationReason:"iteration_limit",turnMetadata:{...l.provider===void 0?{}:{effectiveProvider:l.provider},...l.model===void 0?{}:{effectiveModel:l.model}},...l.iteration?{iteration:l.iteration}:l.actualIterations!==void 0?{iteration:{current:l.actualIterations,max:ct}}:{}};if(!l||l.status!=="completed"){let g=l?.failure?.provider??l?.provider,v=l?.failure?.model??l?.model,I={...g===void 0?{}:{effectiveProvider:g},...v===void 0?{}:{effectiveModel:v},...l?.failure===void 0?{}:{executionFailure:A(l.failure)??null}},b=l?.failure?.message||l?.failure?.safeMessage||l?.summary||`Agent turn ${t.turn.turnId} failed without output.`;throw new Ie(b,I)}let p=Q(t.turn.metadata?.qualityStrategy),y=p===void 0?{structured:A(l.structured),degradedReasons:[]}:await Ut(l.structured,p,e,n);p!==void 0&&S({source:"coding:actors",level:"debug",message:[`strategy stage=${p.stageId}`,`pattern=${p.pattern}`,`role=${p.role}`,`turn=${t.turn.turnId}`,`status=${y.degradedReasons.length===0?"completed":"degraded"}`].join(" ")});let w={...l.provider===void 0?{}:{effectiveProvider:l.provider},...l.model===void 0?{}:{effectiveModel:l.model},...y.degradedReasons.length===0?{}:{qualityStrategyDegradedReasons:y.degradedReasons}};return{output:l.summary,...l.iteration?{iteration:l.iteration}:{},...l.artifactPaths&&l.artifactPaths.length>0?{artifacts:l.artifactPaths}:{},...y.structured===void 0?{}:{structured:y.structured},...Object.keys(w).length===0?{}:{turnMetadata:w}}}a(Gt,"executeCodingActorTurn");function ut(t,e){let r=!1,n=a((i,o)=>{t.reportProgress({kind:"status",summary:i,...o?{iteration:o}:{}}).catch(s=>{S({source:"coding:actors",level:"warn",message:`${e} progress projection failed: ${s instanceof Error?s.message:String(s)}`})})},"report");return{report(i,o){r||n(i,o)},finish(){r=!0}}}a(ut,"createDurableProgressProjector");async function Ut(t,e,r,n){let i=He(t);if(i===void 0)return{structured:A(t),degradedReasons:[]};let o=new Set(e.targetEvidenceRefs??[]),s=new Set,c=[],f={...r,actorControl:n};for(let h of i.outcomes){let d="evidenceRef"in h.target?h.target.evidenceRef:`agent-turn:${h.target.actorPath}#turn=${h.target.turnId}`;if(!o.has(d)){s.add("undeclared_disposition_target");continue}try{await J(d,r);for(let m of h.evidenceRefs)await J(m,f);c.push(h)}catch{s.add("invalid_disposition_evidence")}}let u={schemaVersion:1,outcomes:c,assertedCoverage:s.size===0?i.assertedCoverage:[]};return{structured:A(u),degradedReasons:[...s].sort()}}a(Ut,"validatePatternDispositionResult");async function mt(t,e,r){let n=P(t.turn.metadata?.agentId);if(!e||!n)throw new Error("External Agent execution is not bound to this Runtime.");if(t.signal.aborted)throw new Error("External Agent execution was interrupted before start.");let i=Kt(e.context.actorId,t.turn.turnId),o,s,c=a(()=>{if(s)return s;let u=e.plane.tasks.cancel(i,String(t.signal.reason??"interrupted"));return s=u,u.catch(()=>{s===u&&(s=void 0)}),u},"requestCancellation"),f=a(()=>{o!==void 0&&O(o.state)||c().catch(u=>S({source:"coding:actors",level:"warn",message:`External Agent cancellation failed: ${u instanceof Error?u.message:String(u)}`}))},"cancel");t.signal.addEventListener("abort",f,{once:!0}),t.signal.aborted&&f();try{try{o=await e.plane.tasks.start({taskId:i,agentId:n,objective:t.turn.objective,context:{...e.context,parentTaskId:t.actor.parentPath??e.context.parentTaskId,...P(t.turn.metadata?.workflowRunId)?{workflowId:P(t.turn.metadata?.workflowRunId)}:{}},readOnly:t.turn.metadata?.readOnly!==!1,...P(t.turn.metadata?.expectedConfigurationRevision)?{expectedConfigurationRevision:P(t.turn.metadata?.expectedConfigurationRevision)}:{}},t.signal)}catch(h){if(t.signal.aborted)try{await c()}catch(d){S({source:"coding:actors",level:"warn",message:`External Agent cancellation after an ambiguous start failed: ${d instanceof Error?d.message:String(d)}`})}throw h}if(o.state==="failed"||o.state==="rejected")throw new Error(o.error??`External Agent entered ${o.state}.`);if(t.signal.aborted&&Vt(o.cancellation))throw new Error(o.cancellationError??`External Agent cancellation cannot converge (${o.cancellation}).`);let u=ft(o.progress,void 0,r);for(;!O(o.state);){if(t.signal.aborted&&(o=await c(),!O(o.state)&&o.cancellation!=="requested"&&o.cancellation!=="confirmed"))throw new Error(`External Agent cancellation was not accepted (${o.cancellation}).`);if(!t.signal.aborted)for(let h of await t.drainMailbox()){if(t.signal.aborted)break;h.kind!=="completion"&&(o=await e.plane.tasks.sendInput(i,{content:h.content}))}O(o.state)||(await new Promise(h=>setTimeout(h,25)),o=await e.plane.tasks.get(i),u=ft(o.progress,u,r),t.signal.aborted&&!O(o.state)&&Xt(o))}if(o.state!=="completed")throw new Error(o.error??o.cancellationError??`External Agent ended in ${o.state}.`);return{output:o.output??"",...o.artifacts&&o.artifacts.length>0?{artifacts:o.artifacts.map(h=>h.uri??h.name),artifactDetails:o.artifacts.map(h=>({...h}))}:{}}}finally{t.signal.removeEventListener("abort",f)}}a(mt,"executeExternalActorTurn");function O(t){return t==="completed"||t==="failed"||t==="canceled"||t==="rejected"}a(O,"isExternalTerminal");function Vt(t){return t==="unknown"||t==="failed"||t==="unsupported"}a(Vt,"isExternalCancellationFailure");function Xt(t){if(!(O(t.state)||t.cancellation==="requested"||t.cancellation==="confirmed"))throw new Error(t.cancellationError??`External Agent cancellation was not accepted (${t.cancellation}).`)}a(Xt,"assertExternalCancellationAccepted");function ft(t,e,r){let n=t?.message?.trim()||(t?.percent===void 0?void 0:`${t.percent}% complete`);return!n||n===e?e:(r?.(n),n)}a(ft,"reportExternalProgress");function Kt(t,e){return`actor-${Ht("sha256").update(`${t}\0${e}`).digest("hex").slice(0,24)}`}a(Kt,"externalTaskId");function Yt(t){let e=t.turn.metadata??{},r=Q(e.qualityStrategy),n=r?.role==="filter"||r?.role==="judge"||r?.role==="challenger";return{id:t.actor.path,fanoutClass:"evidence-scan",objective:t.turn.objective,scopeSummary:P(e.scope),evidenceRefs:[...new Set([...gt(e.evidenceRefs),...r?.targetEvidenceRefs??[]])],constraints:gt(e.constraints),readOnly:t.actor.capabilities.filesystem!=="write",modelHint:on(e.modelHint),isolation:e.isolation==="worktree"?"worktree":void 0,specialistName:rn(e,t),provider:P(e.provider),model:P(e.model),effort:an(e.effort),...n?{outputSchema:Be,structuredOutputContract:"pattern-disposition-parse-only"}:{}}}a(Yt,"actorBundle");function Jt(t,e){return(e==="none"?[]:e==="all"?t:t.slice(-e)).flatMap(n=>{let i=n.output??n.error??n.state;return[{role:"user",content:`<actor-prior-turn id="${k(n.turnId)}">
20
+ </agent-completed>`,taskResult:{type:"task_result",source:"child_task",taskId:e.turnId,status:s,summary:c,title:e.senderPath,...n.artifacts.length>0?{artifactRefs:[...n.artifacts]}:{}}})}a(Ft,"publishRootMailboxMessage");async function Gt(t,e,r,n){if(t.actor.kind==="external"){let g=`external-actor:${t.turn.turnId}`,v=ut(t,"External Actor"),I={childAgentId:t.actor.path,childAgentName:t.actor.taskName,toolId:g,liveOnly:!0};try{return await mt(t,e.agentExecutorPlane,b=>{v.report(b),e.reportToolProgress?.(`[agent ${t.actor.path}] ${b}`),e.parentEvents?.onToolProgress?.({id:g,message:b},I)})}finally{v.finish(),e.parentEvents?.onChildActivityEnd?.(I)}}let i=Yt(t),o=e.parentAgentConfig;tn(t,i.provider??o?.provider??r.provider);let s=ht(t.turn,t.actor.path);if(s){if(!r.session?.storage)throw new Error("Actor recovery requires its original worker history storage.");await K(r.session.storage,s),await t.reportCheckpoint?.(void 0)}let c=s?[]:await t.drainMailbox(),f=s?[]:[...Jt(t.priorTurns,t.turn.forkTurns),...c.map(g=>Qt(g,pt(n,g)))],u=ut(t,"Actor"),h=new AbortController,d=Zt(t,e.sessionId,n,h.signal),m;try{m=await We([i],e,{maxParallel:1,maxIterationsPerChild:ct,abortSignal:t.signal,...r.session?.storage!==void 0?{historyStorage:r.session.storage}:{},parentOptions:{provider:o?.provider??r.provider,model:o?.model??r.modelOverride??r.model,effort:o?.effort??r.effort,reasoningMode:o?.reasoningMode??r.reasoningMode,thinking:o?.thinking??r.thinking,repoIntelligenceMode:o?.repoIntelligenceMode,repoIntelligenceTrace:o?.repoIntelligenceTrace,compaction:o?.compaction??r.compaction,contextDiagnostics:o?.contextDiagnostics??r.context?.contextDiagnostics,disablePromptCache:o?.disablePromptCache??r.disablePromptCache,shellExecution:o?.shellExecution??r.context?.shellExecution,sandbox:o?.sandbox??r.sandbox,permissionIntent:o?.permissionIntent??r.context?.permissionIntent,extensionRuntime:e.extensionRuntime,events:e.parentEvents?.onContextCapacityBlocked?{...e.parentEvents,onContextCapacityBlocked:a(async(g,v,I)=>{g.checkpoint&&await t.reportCheckpoint?.(A({kind:"generation",actorPath:t.actor.path,actorTurnId:t.turn.turnId,history:g.checkpoint,...r.context?.runtimeRunId?{ownerRunId:r.context.runtimeRunId}:{}}));let b=await e.parentEvents.onContextCapacityBlocked(g,v,I);return v?.throwIfAborted(),await t.reportCheckpoint?.(void 0),b},"onContextCapacityBlocked")}:e.parentEvents},parentRole:"worker",parentHarness:"tool-dispatch",planModeBlockCheck:e.planModeBlockCheck,guardrails:e.guardrails,actorControl:n,actorHost:e.actorHost,...t.actor.parentPath!==void 0&&t.actor.parentPath!=="/root"?{actorParentAgentId:t.actor.parentPath}:{},actorTurnId:t.turn.turnId,...s?{generationCheckpoint:s}:{},initialMessages:f,actorCapabilities:t.actor.capabilities,onIteration:a(g=>u.report(`Iteration ${g.current}${g.max>0?`/${g.max}`:""}`,g),"onIteration"),onProgress:a(g=>{u.report(g),e.reportToolProgress?.(`[agent ${t.actor.path}] ${g}`)},"onProgress")})}finally{h.abort(),u.finish(),await d}let l=m.results[0];if(l?.limitReached)return{output:l.summary,artifacts:l.artifactPaths??[],...l.structured===void 0?{}:{structured:A(l.structured)},terminationReason:"iteration_limit",turnMetadata:{...l.provider===void 0?{}:{effectiveProvider:l.provider},...l.model===void 0?{}:{effectiveModel:l.model}},...l.iteration?{iteration:l.iteration}:l.actualIterations!==void 0?{iteration:{current:l.actualIterations,max:ct}}:{}};if(!l||l.status!=="completed"){let g=l?.failure?.provider??l?.provider,v=l?.failure?.model??l?.model,I={...g===void 0?{}:{effectiveProvider:g},...v===void 0?{}:{effectiveModel:v},...l?.failure===void 0?{}:{executionFailure:A(l.failure)??null}},b=l?.failure?.message||l?.failure?.safeMessage||l?.summary||`Agent turn ${t.turn.turnId} failed without output.`;throw new ke(b,I)}let p=Q(t.turn.metadata?.qualityStrategy),y=p===void 0?{structured:A(l.structured),degradedReasons:[]}:await Ut(l.structured,p,e,n);p!==void 0&&S({source:"coding:actors",level:"debug",message:[`strategy stage=${p.stageId}`,`pattern=${p.pattern}`,`role=${p.role}`,`turn=${t.turn.turnId}`,`status=${y.degradedReasons.length===0?"completed":"degraded"}`].join(" ")});let w={...l.provider===void 0?{}:{effectiveProvider:l.provider},...l.model===void 0?{}:{effectiveModel:l.model},...y.degradedReasons.length===0?{}:{qualityStrategyDegradedReasons:y.degradedReasons}};return{output:l.summary,...l.iteration?{iteration:l.iteration}:{},...l.artifactPaths&&l.artifactPaths.length>0?{artifacts:l.artifactPaths}:{},...y.structured===void 0?{}:{structured:y.structured},...Object.keys(w).length===0?{}:{turnMetadata:w}}}a(Gt,"executeCodingActorTurn");function ut(t,e){let r=!1,n=a((i,o)=>{t.reportProgress({kind:"status",summary:i,...o?{iteration:o}:{}}).catch(s=>{S({source:"coding:actors",level:"warn",message:`${e} progress projection failed: ${s instanceof Error?s.message:String(s)}`})})},"report");return{report(i,o){r||n(i,o)},finish(){r=!0}}}a(ut,"createDurableProgressProjector");async function Ut(t,e,r,n){let i=He(t);if(i===void 0)return{structured:A(t),degradedReasons:[]};let o=new Set(e.targetEvidenceRefs??[]),s=new Set,c=[],f={...r,actorControl:n};for(let h of i.outcomes){let d="evidenceRef"in h.target?h.target.evidenceRef:`agent-turn:${h.target.actorPath}#turn=${h.target.turnId}`;if(!o.has(d)){s.add("undeclared_disposition_target");continue}try{await J(d,r);for(let m of h.evidenceRefs)await J(m,f);c.push(h)}catch{s.add("invalid_disposition_evidence")}}let u={schemaVersion:1,outcomes:c,assertedCoverage:s.size===0?i.assertedCoverage:[]};return{structured:A(u),degradedReasons:[...s].sort()}}a(Ut,"validatePatternDispositionResult");async function mt(t,e,r){let n=P(t.turn.metadata?.agentId);if(!e||!n)throw new Error("External Agent execution is not bound to this Runtime.");if(t.signal.aborted)throw new Error("External Agent execution was interrupted before start.");let i=Kt(e.context.actorId,t.turn.turnId),o,s,c=a(()=>{if(s)return s;let u=e.plane.tasks.cancel(i,String(t.signal.reason??"interrupted"));return s=u,u.catch(()=>{s===u&&(s=void 0)}),u},"requestCancellation"),f=a(()=>{o!==void 0&&O(o.state)||c().catch(u=>S({source:"coding:actors",level:"warn",message:`External Agent cancellation failed: ${u instanceof Error?u.message:String(u)}`}))},"cancel");t.signal.addEventListener("abort",f,{once:!0}),t.signal.aborted&&f();try{try{o=await e.plane.tasks.start({taskId:i,agentId:n,objective:t.turn.objective,context:{...e.context,parentTaskId:t.actor.parentPath??e.context.parentTaskId,...P(t.turn.metadata?.workflowRunId)?{workflowId:P(t.turn.metadata?.workflowRunId)}:{}},readOnly:t.turn.metadata?.readOnly!==!1,...P(t.turn.metadata?.expectedConfigurationRevision)?{expectedConfigurationRevision:P(t.turn.metadata?.expectedConfigurationRevision)}:{}},t.signal)}catch(h){if(t.signal.aborted)try{await c()}catch(d){S({source:"coding:actors",level:"warn",message:`External Agent cancellation after an ambiguous start failed: ${d instanceof Error?d.message:String(d)}`})}throw h}if(o.state==="failed"||o.state==="rejected")throw new Error(o.error??`External Agent entered ${o.state}.`);if(t.signal.aborted&&Vt(o.cancellation))throw new Error(o.cancellationError??`External Agent cancellation cannot converge (${o.cancellation}).`);let u=ft(o.progress,void 0,r);for(;!O(o.state);){if(t.signal.aborted&&(o=await c(),!O(o.state)&&o.cancellation!=="requested"&&o.cancellation!=="confirmed"))throw new Error(`External Agent cancellation was not accepted (${o.cancellation}).`);if(!t.signal.aborted)for(let h of await t.drainMailbox()){if(t.signal.aborted)break;h.kind!=="completion"&&(o=await e.plane.tasks.sendInput(i,{content:h.content}))}O(o.state)||(await new Promise(h=>setTimeout(h,25)),o=await e.plane.tasks.get(i),u=ft(o.progress,u,r),t.signal.aborted&&!O(o.state)&&Xt(o))}if(o.state!=="completed")throw new Error(o.error??o.cancellationError??`External Agent ended in ${o.state}.`);return{output:o.output??"",...o.artifacts&&o.artifacts.length>0?{artifacts:o.artifacts.map(h=>h.uri??h.name),artifactDetails:o.artifacts.map(h=>({...h}))}:{}}}finally{t.signal.removeEventListener("abort",f)}}a(mt,"executeExternalActorTurn");function O(t){return t==="completed"||t==="failed"||t==="canceled"||t==="rejected"}a(O,"isExternalTerminal");function Vt(t){return t==="unknown"||t==="failed"||t==="unsupported"}a(Vt,"isExternalCancellationFailure");function Xt(t){if(!(O(t.state)||t.cancellation==="requested"||t.cancellation==="confirmed"))throw new Error(t.cancellationError??`External Agent cancellation was not accepted (${t.cancellation}).`)}a(Xt,"assertExternalCancellationAccepted");function ft(t,e,r){let n=t?.message?.trim()||(t?.percent===void 0?void 0:`${t.percent}% complete`);return!n||n===e?e:(r?.(n),n)}a(ft,"reportExternalProgress");function Kt(t,e){return`actor-${Ht("sha256").update(`${t}\0${e}`).digest("hex").slice(0,24)}`}a(Kt,"externalTaskId");function Yt(t){let e=t.turn.metadata??{},r=Q(e.qualityStrategy),n=r?.role==="filter"||r?.role==="judge"||r?.role==="challenger";return{id:t.actor.path,fanoutClass:"evidence-scan",objective:t.turn.objective,scopeSummary:P(e.scope),evidenceRefs:[...new Set([...gt(e.evidenceRefs),...r?.targetEvidenceRefs??[]])],constraints:gt(e.constraints),readOnly:t.actor.capabilities.filesystem!=="write",modelHint:on(e.modelHint),isolation:e.isolation==="worktree"?"worktree":void 0,specialistName:rn(e,t),provider:P(e.provider),model:P(e.model),effort:an(e.effort),...n?{outputSchema:Be,structuredOutputContract:"pattern-disposition-parse-only"}:{}}}a(Yt,"actorBundle");function Jt(t,e){return(e==="none"?[]:e==="all"?t:t.slice(-e)).flatMap(n=>{let i=n.output??n.error??n.state;return[{role:"user",content:`<actor-prior-turn id="${k(n.turnId)}">
21
21
  ${k(n.objective)}
22
22
  </actor-prior-turn>`},{role:"assistant",content:`<actor-prior-result state="${n.state}">
23
23
  ${k(i)}
@@ -26,4 +26,4 @@ ${k(i)}
26
26
  ${k(e?.summary??t.content)}
27
27
  </agent-completed>`}return`<agent-message id="${k(t.messageId)}" from="${k(t.senderPath)}" classification="${t.classification}">
28
28
  ${k(t.content)}
29
- </agent-message>`}a(ce,"renderMailboxMessage");function tn(t,e){if(!(!e||t.actor.capabilities.providers.includes("*"))&&!t.actor.capabilities.providers.includes(e))throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${e}.`)}a(tn,"assertProviderAuthority");function k(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}a(k,"escapeXml");function nn(t){return{async admit(e){return t.spentBudget+e.units>t.totalBudget?{admitted:!1,fact:{code:"agent_budget_exhausted",retryable:!1,reason:`shared root work budget exhausted (${t.spentBudget}/${t.totalBudget})`}}:(t.spentBudget+=e.units,{admitted:!0})},async refund(){t.spentBudget=Math.max(0,t.spentBudget-1)},snapshot:a(()=>({...t}),"snapshot")}}a(nn,"managedWorkBudgetPort");function rn(t,e){let r=P(t.specialistName);if(r)return r;let n=P(t.agentId);if(!(!n||e.actor.kind==="native"))throw new Error(`Agent selector ${n} was not resolved before execution.`)}a(rn,"specialistName");function on(t){return t==="fast"||t==="balanced"||t==="deep"?t:void 0}a(on,"modelHint");function an(t){let e=P(t);if(!e)return;let r=xe(e);return r==="auto"?void 0:r}a(an,"effort");function P(t){return typeof t=="string"&&t.length>0?t:void 0}a(P,"metadataString");function gt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}a(gt,"metadataStringArray");import wt from"node:path";var sn=80;function cn(t){let e=t.trim().replace(/[^A-Za-z0-9._-]+/g,"_").replace(/^_+|_+$/g,"").slice(0,sn);return!e||e==="."||e===".."?"session":e}a(cn,"sanitizeScratchSessionId");function vt(t){let e=t.session?.id?.trim();if(!e)return;let r=t.context?.gitRoot?.trim(),n=r?wt.resolve(r):z(t.context);return wt.resolve(n,".agent","tmp","sessions",cn(e))}a(vt,"getSessionScratchDir");function ln(t){let e=new Set(t.map(r=>r.name));return t.filter(r=>{let n=r.name==="multi_edit"?["edit"]:r.name==="changed_diff_bundle"?["changed_diff"]:r.name==="tool_describe"?["tool_search"]:r.name==="todo_get"?["todo_list"]:r.name==="lsp_prepare_call_hierarchy"?["lsp_incoming_calls","lsp_outgoing_calls"]:[];return n.length===0||$(r.name)?.source.kind!=="builtin"||!n.every(i=>e.has(i)&&$(i)?.source.kind==="builtin")})}a(ln,"filterModelToolAliases");function Ir(t){return de(le(t.extensionRuntime?.getDefaults?.().activeTools??["skill"],t.context?.excludeTools),t.context?.toolVisibilityPolicy).includes("skill")?t.context?.skillsPrompt?.trim():void 0}a(Ir,"getModelSkillCatalog");function le(t,e){if(!e||e.length===0)return t;let r=new Set(e);return t.filter(n=>!r.has(n))}a(le,"filterExcludedTools");function de(t,e,r){return e?t.filter(n=>{let i=$(n)??r?.get(n);return i?e({name:i.name,sideEffect:i.sideEffect,planModeAllowed:i.planModeAllowed===!0}):!1}):t}a(de,"applyToolVisibilityPolicy");function dn(t,e,r=!1,n,i=!1){let o=Te(e)==="off"?Oe(t):t;return r||(o=De(o)),o=Me(o,n),o=$e(o,n),i||(o=o.filter(s=>s!=="list_dispatchable_agents")),o}a(dn,"getRuntimeActiveToolNames");function br(t,e,r=!1,n=!1,i,o,s,c=!1,f){let u=_e(),h=new Set(u.map(l=>l.name)),d=[...u,...(f??[]).filter(l=>!h.has(l.name)).map(Ce)];if(t.length===0)return[];let m=new Set(dn(t,e,n,i,c));return ln(d.filter(l=>m.has(l.name)&&(r||!je(l.name)))).map(l=>{let p=Se(he(l,$(l.name)?.source),s);if(!Re(p.name)||$(p.name)?.source.kind!=="builtin"||o&&o.has(p.name))return p;let y=Ae[p.name];return y?{...p,description:y}:p})}a(br,"getActiveToolDefinitions");import{randomUUID as un}from"node:crypto";import{join as fn}from"node:path";function gn(t,e){if(e&&/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(e)&&!e.includes(".."))return fn(t,e)}a(gn,"resolveResumeFromRunDir");function Nr(t){let{options:e,runtime:r,managedProtocolPayloadRef:n,sessionId:i}=t,o=ee(e),s=e.events??{},c=z(e.context),f=vt(e),u=e.context?.lspService??st(),h=de(le([...Y],e.context?.excludeTools),e.context?.toolVisibilityPolicy),d=Y.every(l=>h.includes(l))?Ee({sessionId:i,currentAgentId:e.context?.currentAgentId,sessionScope:e.session?.scope,storage:e.session?.storage}):void 0,m={workMode:o,configHome:e.context?.configHome,runtimeRunId:e.context?.runtimeRunId,registerShellCleanup:e.events?.registerShellCleanup,backups:new Map,actorControl:e.context?.actorControl,actorQueueAgentId:e.context?.actorQueueAgentId,contextIdentitySessionId:e.context?.contextIdentitySessionId??i,actorHost:e.context?.actorHost,managedWorkBudget:e.context?.managedWorkBudget,permissionIntent:e.context?.permissionIntent,gitRoot:e.context?.gitRoot??void 0,sessionId:i,...d!==void 0?{loadSessionHistory:d}:{},taskSurface:e.context?.taskSurface,agentProfile:e.context?.agentProfile,agentScope:e.context?.agentScope,agentExecutorPlane:e.context?.agentExecutorPlane,selfManual:e.selfManual,skillDynamicContext:e.skillDynamicContext,skillRegistry:e.context?.skillRegistry,activateModelSkill:e.context?.activateModelSkill,admitLearnedSkillInvocation:e.context?.admitLearnedSkillInvocation,skillScriptRunner:e.context?.skillScriptRunner,isPagedContentRecoveryAllowed:e.context?.isPagedContentRecoveryAllowed,toolResultRecovery:e.context?.toolResultRecovery,assertReadablePath:e.context?.assertReadablePath,toolVisibilityPolicy:e.context?.toolVisibilityPolicy,excludeTools:e.context?.excludeTools,lspService:u,lspNavigationDisabled:u===void 0,executionCwd:c,shellExecution:e.context?.shellExecution,sandbox:e.sandbox,shellSandbox:e.context?.shellSandbox,resolveShellPermissionMode:e.context?.resolveShellPermissionMode,authorizeShellHostExecution:e.context?.authorizeShellHostExecution,trustedTextMutationHost:e.context?.trustedTextMutationHost,workspaceSandboxRoots:e.context?.workspaceSandboxRoots,sessionScratchDir:f,extensionRuntime:r,askUser:s.askUser,askUserMulti:s.askUserMulti,askUserInput:s.askUserInput,exitPlanMode:s.exitPlanMode,abortSignal:e.abortSignal,managedProtocolRole:e.context?.managedProtocolEmission?.enabled?e.context.managedProtocolEmission.role:void 0,emitManagedProtocol:e.context?.managedProtocolEmission?.enabled?l=>{n.current=Le(n.current,l)}:void 0,mutationTracker:e.context?.mutationTracker,planModeBlockCheck:e.context?.planModeBlockCheck,guardrails:e.guardrails,parentAgentConfig:{get provider(){return e.provider},get model(){return e.modelOverride??e.model},get reasoningMode(){return e.reasoningMode},get effort(){return e.effort},get thinking(){return e.thinking},repoIntelligenceMode:e.context?.repoIntelligenceMode,repoIntelligenceTrace:e.context?.repoIntelligenceTrace,...e.compaction!==void 0?{compaction:{...e.compaction}}:{},...e.context?.contextDiagnostics!==void 0?{contextDiagnostics:e.context.contextDiagnostics}:{},...e.disablePromptCache!==void 0?{disablePromptCache:e.disablePromptCache}:{},...e.context?.shellExecution!==void 0?{shellExecution:e.context.shellExecution}:{},...e.sandbox!==void 0?{sandbox:e.sandbox}:{},...e.context?.permissionIntent!==void 0?{permissionIntent:e.context.permissionIntent}:{}},parentEvents:s,onChildProgress:void 0,currentAgentId:e.context?.currentAgentId,parentAgentId:e.context?.parentAgentId,sendMessageTurnCounter:{count:0},goalContext:e.context?.goalRuntime?.goalContext};if(!m.actorControl&&(e.agentMode==="ama"||e.context?.actorSession)){let l=e.context?.actorSession??new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:i});m.actorHost=l,m.actorControl=l.attach(m,e)}return m.workflowHost=mn(e,i,m.actorControl,m.actorHost),m}a(Nr,"buildToolExecutionContext");function hn(t,e){return{...e?{sessionId:e}:{},...t.context?.agentProfile?.surface?{surface:t.context.agentProfile.surface}:{},...t.context?.taskSurface?{taskSurface:t.context.taskSurface}:{},...t.context?.gitRoot?{projectRoot:t.context.gitRoot}:{}}}a(hn,"buildWorkflowHostMetadata");function mn(t,e,r,n){let i=t.workflowRunsBaseDir;if(process.env.KODAX_DEBUG_WORKFLOW_GATE){let s=i===void 0?"no-host: workflowRunsBaseDir undefined":t.agentMode!=="ama"?`no-host: agentMode=${String(t.agentMode)} (need ama)`:t.context?.workflowIntent!=="explicit"?"no-host: explicit Workflow intent absent":"host wired";S({source:"coding:workflow-gate",level:"debug",message:"Workflow host gate evaluated.",detail:{agentMode:t.agentMode,runsBaseDir:i,decision:s}})}if(i===void 0||t.agentMode!=="ama"||t.context?.workflowIntent!=="explicit")return;let o=a(async({manifest:s,source:c,args:f,resumeFromRunId:u,signal:h})=>{let[{startManagedWorkflow:d},{getDefaultWorkflowRunManager:m}]=await Promise.all([import("./host-RHJ3VGYE.js"),import("./run-manager-MWEV42C5.js")]),l=[t.abortSignal,h].filter(E=>E!==void 0),p=l.length===0?void 0:l.length===1?l[0]:AbortSignal.any(l),y=r&&n?{...t,context:{...t.context,actorControl:r,actorHost:n}}:t,w=W(),g=w===void 0?void 0:`run-${Date.now().toString(36)}-${un().replace(/-/g,"").slice(0,8)}`,v=w===void 0||g===void 0?void 0:H(w,{kind:"workflow",workflowRunId:g}),I=a(()=>{v?.close("Workflow cancelled")},"closeCredentialScopeOnAbort");v!==void 0&&p!==void 0&&(p.aborted?I():p.addEventListener("abort",I,{once:!0}));let b=a(()=>{p?.removeEventListener("abort",I)},"releaseCredentialAbort"),ue=a(()=>d({source:{kind:"inline",manifest:s,source:c},args:f,options:y,runsBaseDir:i,...g===void 0?{}:{runId:g},manager:m(),...(()=>{let E=gn(i,u);return E?{resumeFromRunDir:E}:{}})(),...p?{signal:p}:{},processMetadata:{hostMetadata:hn(t,e)}}),"startWorkflow"),C;try{C=v===void 0?await ue():await B(v,ue)}catch(E){throw b(),v?.close("Workflow start failed"),E}if(C.kind==="declined")return b(),v?.close("Workflow declined"),{kind:"declined",reason:C.reason};let R=C.qualityWarnings?.map(E=>`${E.code}: ${E.message}`),xt=(v===void 0?C.managed.done:C.managed.done.finally(()=>{b(),v.close("Workflow settled")})).then(E=>{let M=C.managed.getSnapshot?.(),fe=E.kind==="completed"?E.state.events.reduce((ge,U)=>{if(U.type==="agent_unverified"){let V=U.data?.name??U.data?.taskId;ge.push(typeof V=="string"&&V.length>0?V:"agent")}return ge},[]):[];return{kind:"started",runId:C.runId,...M?.status!==void 0?{status:M.status}:{},...M?.resultText!==void 0?{resultText:M.resultText}:{},...M?.error!==void 0?{error:M.error}:{},...fe.length>0?{verificationWarnings:fe}:{},...R&&R.length>0?{workflowQualityWarnings:R}:{}}});return{kind:"started",runId:C.runId,done:xt,...R&&R.length>0?{workflowQualityWarnings:R}:{}}},"startInline");return{startInline:o,runInline:a(async s=>{let c=await o(s);return c.kind==="declined"?{kind:"declined",reason:c.reason}:await c.done},"runInline")}}a(mn,"buildWorkflowToolHost");export{ee as a,wn as b,vt as c,qe as d,Je as e,se as f,st as g,Kn as h,ln as i,Ir as j,le as k,de as l,dn as m,br as n,N as o,ar as p,sr as q,Nr as r};
29
+ </agent-message>`}a(ce,"renderMailboxMessage");function tn(t,e){if(!(!e||t.actor.capabilities.providers.includes("*"))&&!t.actor.capabilities.providers.includes(e))throw new Error(`Actor ${t.actor.path} is not authorized to use provider ${e}.`)}a(tn,"assertProviderAuthority");function k(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}a(k,"escapeXml");function nn(t){return{async admit(e){return t.spentBudget+e.units>t.totalBudget?{admitted:!1,fact:{code:"agent_budget_exhausted",retryable:!1,reason:`shared root work budget exhausted (${t.spentBudget}/${t.totalBudget})`}}:(t.spentBudget+=e.units,{admitted:!0})},async refund(){t.spentBudget=Math.max(0,t.spentBudget-1)},snapshot:a(()=>({...t}),"snapshot")}}a(nn,"managedWorkBudgetPort");function rn(t,e){let r=P(t.specialistName);if(r)return r;let n=P(t.agentId);if(!(!n||e.actor.kind==="native"))throw new Error(`Agent selector ${n} was not resolved before execution.`)}a(rn,"specialistName");function on(t){return t==="fast"||t==="balanced"||t==="deep"?t:void 0}a(on,"modelHint");function an(t){let e=P(t);if(!e)return;let r=ve(e);return r==="auto"?void 0:r}a(an,"effort");function P(t){return typeof t=="string"&&t.length>0?t:void 0}a(P,"metadataString");function gt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}a(gt,"metadataStringArray");import wt from"node:path";var sn=80;function cn(t){let e=t.trim().replace(/[^A-Za-z0-9._-]+/g,"_").replace(/^_+|_+$/g,"").slice(0,sn);return!e||e==="."||e===".."?"session":e}a(cn,"sanitizeScratchSessionId");function vt(t){let e=t.session?.id?.trim();if(!e)return;let r=t.context?.gitRoot?.trim(),n=r?wt.resolve(r):z(t.context);return wt.resolve(n,".agent","tmp","sessions",cn(e))}a(vt,"getSessionScratchDir");function ln(t){let e=new Set(t.map(r=>r.name));return t.filter(r=>{let n=r.name==="multi_edit"?["edit"]:r.name==="changed_diff_bundle"?["changed_diff"]:r.name==="tool_describe"?["tool_search"]:r.name==="todo_get"?["todo_list"]:r.name==="lsp_prepare_call_hierarchy"?["lsp_incoming_calls","lsp_outgoing_calls"]:[];return n.length===0||$(r.name)?.source.kind!=="builtin"||!n.every(i=>e.has(i)&&$(i)?.source.kind==="builtin")})}a(ln,"filterModelToolAliases");function Ir(t){return de(le(t.extensionRuntime?.getDefaults?.().activeTools??["skill"],t.context?.excludeTools),t.context?.toolVisibilityPolicy).includes("skill")?t.context?.skillsPrompt?.trim():void 0}a(Ir,"getModelSkillCatalog");function le(t,e){if(!e||e.length===0)return t;let r=new Set(e);return t.filter(n=>!r.has(n))}a(le,"filterExcludedTools");function de(t,e,r){return e?t.filter(n=>{let i=$(n)??r?.get(n);return i?e({name:i.name,sideEffect:i.sideEffect,planModeAllowed:i.planModeAllowed===!0}):!1}):t}a(de,"applyToolVisibilityPolicy");function dn(t,e,r=!1,n,i=!1){let o=Te(e)==="off"?Oe(t):t;return r||(o=De(o)),o=Me(o,n),o=$e(o,n),i||(o=o.filter(s=>s!=="list_dispatchable_agents")),o}a(dn,"getRuntimeActiveToolNames");function br(t,e,r=!1,n=!1,i,o,s,c=!1,f){let u=_e(),h=new Set(u.map(l=>l.name)),d=[...u,...(f??[]).filter(l=>!h.has(l.name)).map(Ce)];if(t.length===0)return[];let m=new Set(dn(t,e,n,i,c));return ln(d.filter(l=>m.has(l.name)&&(r||!je(l.name)))).map(l=>{let p=Se(be(l,$(l.name)?.source),s);if(!Re(p.name)||$(p.name)?.source.kind!=="builtin"||o&&o.has(p.name))return p;let y=Ae[p.name];return y?{...p,description:y}:p})}a(br,"getActiveToolDefinitions");import{randomUUID as un}from"node:crypto";import{join as fn}from"node:path";function gn(t,e){if(e&&/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(e)&&!e.includes(".."))return fn(t,e)}a(gn,"resolveResumeFromRunDir");function Nr(t){let{options:e,runtime:r,managedProtocolPayloadRef:n,sessionId:i}=t,o=ee(e),s=e.events??{},c=z(e.context),f=vt(e),u=e.context?.lspService??st(),h=de(le([...Y],e.context?.excludeTools),e.context?.toolVisibilityPolicy),d=Y.every(l=>h.includes(l))?Ee({sessionId:i,currentAgentId:e.context?.currentAgentId,sessionScope:e.session?.scope,storage:e.session?.storage}):void 0,m={workMode:o,configHome:e.context?.configHome,runtimeRunId:e.context?.runtimeRunId,registerShellCleanup:e.events?.registerShellCleanup,backups:new Map,actorControl:e.context?.actorControl,actorQueueAgentId:e.context?.actorQueueAgentId,contextIdentitySessionId:e.context?.contextIdentitySessionId??i,actorHost:e.context?.actorHost,managedWorkBudget:e.context?.managedWorkBudget,permissionIntent:e.context?.permissionIntent,gitRoot:e.context?.gitRoot??void 0,sessionId:i,...d!==void 0?{loadSessionHistory:d}:{},taskSurface:e.context?.taskSurface,agentProfile:e.context?.agentProfile,agentScope:e.context?.agentScope,agentExecutorPlane:e.context?.agentExecutorPlane,selfManual:e.selfManual,skillDynamicContext:e.skillDynamicContext,skillRegistry:e.context?.skillRegistry,activateModelSkill:e.context?.activateModelSkill,admitLearnedSkillInvocation:e.context?.admitLearnedSkillInvocation,skillScriptRunner:e.context?.skillScriptRunner,isPagedContentRecoveryAllowed:e.context?.isPagedContentRecoveryAllowed,toolResultRecovery:e.context?.toolResultRecovery,assertReadablePath:e.context?.assertReadablePath,toolVisibilityPolicy:e.context?.toolVisibilityPolicy,excludeTools:e.context?.excludeTools,lspService:u,lspNavigationDisabled:u===void 0,executionCwd:c,shellExecution:e.context?.shellExecution,sandbox:e.sandbox,shellSandbox:e.context?.shellSandbox,resolveShellPermissionMode:e.context?.resolveShellPermissionMode,authorizeShellHostExecution:e.context?.authorizeShellHostExecution,trustedTextMutationHost:e.context?.trustedTextMutationHost,workspaceSandboxRoots:e.context?.workspaceSandboxRoots,sessionScratchDir:f,extensionRuntime:r,askUser:s.askUser,askUserMulti:s.askUserMulti,askUserInput:s.askUserInput,exitPlanMode:s.exitPlanMode,abortSignal:e.abortSignal,managedProtocolRole:e.context?.managedProtocolEmission?.enabled?e.context.managedProtocolEmission.role:void 0,emitManagedProtocol:e.context?.managedProtocolEmission?.enabled?l=>{n.current=Le(n.current,l)}:void 0,mutationTracker:e.context?.mutationTracker,planModeBlockCheck:e.context?.planModeBlockCheck,guardrails:e.guardrails,parentAgentConfig:{get provider(){return e.provider},get model(){return e.modelOverride??e.model},get reasoningMode(){return e.reasoningMode},get effort(){return e.effort},get thinking(){return e.thinking},repoIntelligenceMode:e.context?.repoIntelligenceMode,repoIntelligenceTrace:e.context?.repoIntelligenceTrace,...e.compaction!==void 0?{compaction:{...e.compaction}}:{},...e.context?.contextDiagnostics!==void 0?{contextDiagnostics:e.context.contextDiagnostics}:{},...e.disablePromptCache!==void 0?{disablePromptCache:e.disablePromptCache}:{},...e.context?.shellExecution!==void 0?{shellExecution:e.context.shellExecution}:{},...e.sandbox!==void 0?{sandbox:e.sandbox}:{},...e.context?.permissionIntent!==void 0?{permissionIntent:e.context.permissionIntent}:{}},parentEvents:s,onChildProgress:void 0,currentAgentId:e.context?.currentAgentId,parentAgentId:e.context?.parentAgentId,sendMessageTurnCounter:{count:0},goalContext:e.context?.goalRuntime?.goalContext};if(!m.actorControl&&(e.agentMode==="ama"||e.context?.actorSession)){let l=e.context?.actorSession??new N({maxConcurrentThreadsPerSession:e.maxConcurrentThreadsPerSession,sessionId:i});m.actorHost=l,m.actorControl=l.attach(m,e)}return m.workflowHost=mn(e,i,m.actorControl,m.actorHost),m}a(Nr,"buildToolExecutionContext");function hn(t,e){return{...e?{sessionId:e}:{},...t.context?.agentProfile?.surface?{surface:t.context.agentProfile.surface}:{},...t.context?.taskSurface?{taskSurface:t.context.taskSurface}:{},...t.context?.gitRoot?{projectRoot:t.context.gitRoot}:{}}}a(hn,"buildWorkflowHostMetadata");function mn(t,e,r,n){let i=t.workflowRunsBaseDir;if(process.env.KODAX_DEBUG_WORKFLOW_GATE){let s=i===void 0?"no-host: workflowRunsBaseDir undefined":t.agentMode!=="ama"?`no-host: agentMode=${String(t.agentMode)} (need ama)`:t.context?.workflowIntent!=="explicit"?"no-host: explicit Workflow intent absent":"host wired";S({source:"coding:workflow-gate",level:"debug",message:"Workflow host gate evaluated.",detail:{agentMode:t.agentMode,runsBaseDir:i,decision:s}})}if(i===void 0||t.agentMode!=="ama"||t.context?.workflowIntent!=="explicit")return;let o=a(async({manifest:s,source:c,args:f,resumeFromRunId:u,signal:h})=>{let[{startManagedWorkflow:d},{getDefaultWorkflowRunManager:m}]=await Promise.all([import("./host-65E5NM5P.js"),import("./run-manager-ZFACIZM2.js")]),l=[t.abortSignal,h].filter(E=>E!==void 0),p=l.length===0?void 0:l.length===1?l[0]:AbortSignal.any(l),y=r&&n?{...t,context:{...t.context,actorControl:r,actorHost:n}}:t,w=W(),g=w===void 0?void 0:`run-${Date.now().toString(36)}-${un().replace(/-/g,"").slice(0,8)}`,v=w===void 0||g===void 0?void 0:H(w,{kind:"workflow",workflowRunId:g}),I=a(()=>{v?.close("Workflow cancelled")},"closeCredentialScopeOnAbort");v!==void 0&&p!==void 0&&(p.aborted?I():p.addEventListener("abort",I,{once:!0}));let b=a(()=>{p?.removeEventListener("abort",I)},"releaseCredentialAbort"),ue=a(()=>d({source:{kind:"inline",manifest:s,source:c},args:f,options:y,runsBaseDir:i,...g===void 0?{}:{runId:g},manager:m(),...(()=>{let E=gn(i,u);return E?{resumeFromRunDir:E}:{}})(),...p?{signal:p}:{},processMetadata:{hostMetadata:hn(t,e)}}),"startWorkflow"),C;try{C=v===void 0?await ue():await B(v,ue)}catch(E){throw b(),v?.close("Workflow start failed"),E}if(C.kind==="declined")return b(),v?.close("Workflow declined"),{kind:"declined",reason:C.reason};let R=C.qualityWarnings?.map(E=>`${E.code}: ${E.message}`),xt=(v===void 0?C.managed.done:C.managed.done.finally(()=>{b(),v.close("Workflow settled")})).then(E=>{let M=C.managed.getSnapshot?.(),fe=E.kind==="completed"?E.state.events.reduce((ge,U)=>{if(U.type==="agent_unverified"){let V=U.data?.name??U.data?.taskId;ge.push(typeof V=="string"&&V.length>0?V:"agent")}return ge},[]):[];return{kind:"started",runId:C.runId,...M?.status!==void 0?{status:M.status}:{},...M?.resultText!==void 0?{resultText:M.resultText}:{},...M?.error!==void 0?{error:M.error}:{},...fe.length>0?{verificationWarnings:fe}:{},...R&&R.length>0?{workflowQualityWarnings:R}:{}}});return{kind:"started",runId:C.runId,done:xt,...R&&R.length>0?{workflowQualityWarnings:R}:{}}},"startInline");return{startInline:o,runInline:a(async s=>{let c=await o(s);return c.kind==="declined"?{kind:"declined",reason:c.reason}:await c.done},"runInline")}}a(mn,"buildWorkflowToolHost");export{ee as a,wn as b,vt as c,qe as d,Je as e,se as f,st as g,Kn as h,ln as i,Ir as j,le as k,de as l,dn as m,br as n,N as o,ar as p,sr as q,Nr as r};