@kodax-ai/kodax 0.7.63 → 0.7.67

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 (84) hide show
  1. package/CHANGELOG.md +2390 -2189
  2. package/README.md +118 -16
  3. package/README_CN.md +78 -12
  4. package/dist/chunks/{agent-SL444XLN.js → agent-E4V5SLX6.js} +1 -1
  5. package/dist/chunks/argument-completer-N6RT5KYT.js +2 -0
  6. package/dist/chunks/{chunk-ARUWXX25.js → chunk-35P7QL2Q.js} +1 -1
  7. package/dist/chunks/chunk-AKMXJSGM.js +56 -0
  8. package/dist/chunks/{chunk-L3MF5V64.js → chunk-CW32NQFO.js} +1 -1
  9. package/dist/chunks/{chunk-KCFVGXVK.js → chunk-DEICMTHO.js} +9 -9
  10. package/dist/chunks/{chunk-7MPU7TP6.js → chunk-EN3O2C43.js} +270 -270
  11. package/dist/chunks/chunk-KBBGDRER.js +22 -0
  12. package/dist/chunks/chunk-NVDK375I.js +729 -0
  13. package/dist/chunks/{chunk-S4GVQO3W.js → chunk-O7N22GJ3.js} +1 -1
  14. package/dist/chunks/chunk-ONUPGMER.js +2 -0
  15. package/dist/chunks/{chunk-ZL5CEANW.js → chunk-PZTG2C33.js} +1 -1
  16. package/dist/chunks/chunk-QI6SQ2UQ.js +306 -0
  17. package/dist/chunks/{chunk-6OZ5KWG3.js → chunk-QJJKMNZF.js} +1 -1
  18. package/dist/chunks/chunk-RS2GAABJ.js +328 -0
  19. package/dist/chunks/chunk-W2XMNYLK.js +15 -0
  20. package/dist/chunks/chunk-WCSSXBHR.js +419 -0
  21. package/dist/chunks/chunk-YH5BTUQO.js +343 -0
  22. package/dist/chunks/{chunk-UA744TZM.js → chunk-YRBNXFHY.js} +1 -1
  23. package/dist/chunks/compaction-config-56NO42ZI.js +2 -0
  24. package/dist/chunks/{construction-bootstrap-EFZBONTK.js → construction-bootstrap-GLEHQ2KB.js} +1 -1
  25. package/dist/chunks/{devtools-4CRULTR2.js → devtools-CD6KSIHE.js} +1 -1
  26. package/dist/chunks/{devtools-YINBSZC7.js → devtools-XR5F2C6T.js} +1 -1
  27. package/dist/chunks/{dist-73L4OYPD.js → dist-4PXB7U22.js} +1 -1
  28. package/dist/chunks/dist-4UIRSSFS.js +2 -0
  29. package/dist/chunks/host-DMREFNSO.js +2 -0
  30. package/dist/chunks/{paste-FDYM7SZX.js → paste-C33GZQV5.js} +1 -1
  31. package/dist/chunks/run-manager-P5XMSGZ7.js +2 -0
  32. package/dist/chunks/utils-JENPFKAE.js +2 -0
  33. package/dist/constructed-handler-worker.js +2 -0
  34. package/dist/index.d.ts +25 -11
  35. package/dist/index.js +6 -6
  36. package/dist/kodax_cli.js +1282 -1232
  37. package/dist/runtime-worker.js +2872 -0
  38. package/dist/sdk-agent.d.ts +46 -10
  39. package/dist/sdk-agent.js +1 -1
  40. package/dist/sdk-coding.d.ts +337 -1020
  41. package/dist/sdk-coding.js +1 -1
  42. package/dist/sdk-llm.js +1 -1
  43. package/dist/sdk-mcp.d.ts +2 -1
  44. package/dist/sdk-mcp.js +1 -1
  45. package/dist/sdk-media.js +1 -1
  46. package/dist/sdk-repl.d.ts +208 -185
  47. package/dist/sdk-repl.js +2 -2
  48. package/dist/sdk-runtime.d.ts +1070 -0
  49. package/dist/sdk-runtime.js +2 -0
  50. package/dist/sdk-session.d.ts +4 -4
  51. package/dist/sdk-session.js +1 -1
  52. package/dist/sdk-skills.js +1 -1
  53. package/dist/semantic-worker.js +191 -10
  54. package/dist/types-chunks/{bash-prefix-extractor.d-CZW9fRoa.d.ts → bash-prefix-extractor.d-D57Gt6n8.d.ts} +186 -12
  55. package/dist/types-chunks/{run-manager.d-CYTnWhZY.d.ts → capsule.d-BZmqu_HL.d.ts} +5 -92
  56. package/dist/types-chunks/commands.d-Cg26ud-Y.d.ts +213 -0
  57. package/dist/types-chunks/{types.d-1CnTg7Sd.d.ts → guardrail.d-Ds7JHxR1.d.ts} +3 -128
  58. package/dist/types-chunks/{guardrail.d-MR6LwMB2.d.ts → guardrail.d-vSaBe64I.d.ts} +3 -3
  59. package/dist/types-chunks/{manager.d-DBD7SOTT.d.ts → manager.d-Zum9cGHU.d.ts} +3 -173
  60. package/dist/types-chunks/oauth-login.d-Bgb4rdLN.d.ts +174 -0
  61. package/dist/types-chunks/public-api.d-CPBMPDiU.d.ts +602 -0
  62. package/dist/types-chunks/run-manager.d-lnwnfyNC.d.ts +91 -0
  63. package/dist/types-chunks/{sdk-session-RBSBBKol.d.ts → sdk-session-ByoMLoUS.d.ts} +8 -306
  64. package/dist/types-chunks/{process.d-CY2g03Mb.d.ts → types.d-DG9B4SMm.d.ts} +369 -4
  65. package/dist/types-chunks/types.d-DU9lLkmE.d.ts +128 -0
  66. package/dist/types-chunks/types.d-DYv3a1ka.d.ts +975 -0
  67. package/dist/types-chunks/{utils.d-C14jZ9ZM.d.ts → utils.d-DMI-9GTR.d.ts} +88 -72
  68. package/docs/SDK_EMBEDDER_GUIDE.md +3079 -0
  69. package/package.json +8 -1
  70. package/dist/chunks/argument-completer-EN63ZVJK.js +0 -2
  71. package/dist/chunks/chunk-4MIHVNB7.js +0 -405
  72. package/dist/chunks/chunk-HP4FXMEM.js +0 -18
  73. package/dist/chunks/chunk-KHICMJIR.js +0 -310
  74. package/dist/chunks/chunk-LGR7ACBQ.js +0 -326
  75. package/dist/chunks/chunk-RR7W7UF6.js +0 -341
  76. package/dist/chunks/chunk-UGTK2JIJ.js +0 -731
  77. package/dist/chunks/chunk-V4WSBIXB.js +0 -2
  78. package/dist/chunks/chunk-VSWROENP.js +0 -52
  79. package/dist/chunks/compaction-config-4VIONMFB.js +0 -2
  80. package/dist/chunks/dist-EDF2YUF6.js +0 -2
  81. package/dist/chunks/host-J4HPDLFC.js +0 -2
  82. package/dist/chunks/run-manager-ZVSW2OWM.js +0 -2
  83. package/dist/chunks/utils-5HDLYTZJ.js +0 -2
  84. package/dist/types-chunks/storage.d-C6kkAEch.d.ts +0 -280
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{Hb as R,Sa as we,Ta as Ae,eb as Ie,wb as Ee,xb as Pe}from"./chunks/chunk-KHICMJIR.js";import{k as U,n as W,q as z,r as V,s as B,u as $,v as N,va as ve,w as G,wa as ye,x as Q,xa as _e}from"./chunks/chunk-7MPU7TP6.js";import"./chunks/chunk-L3MF5V64.js";import"./chunks/chunk-6OZ5KWG3.js";import{A as ue,B as me,E as x,F as fe,I as ge,M as he,b as oe,c as ie,d as S,f as re,h as ae,i as de,j as le,k as ce,z as pe}from"./chunks/chunk-VSWROENP.js";import{$ as Vd,A as vd,Aa as hl,B as yd,Ba as vl,C as _d,Ca as yl,D as wd,Da as _l,E as Ad,Ea as wl,F as Id,Fa as Al,G as Ed,Ga as Il,H as Pd,Ha as El,I as Sd,Ia as Pl,J as xd,K as Rd,L as Cd,M as bd,N as kd,O as Md,P as Ld,Q as Td,R as Od,S as qd,T as Kd,U as Xd,V as Fd,W as Dd,X as jd,Y as Ud,Z as Wd,_ as zd,a as zt,aa as Bd,b as Vt,ba as $d,c as Bt,ca as Nd,d as Ha,da as Gd,e as Ja,ea as Qd,f as Ya,fa as Hd,g as Za,ga as Jd,h as ed,ha as Yd,i as td,ia as Zd,j as nd,ja as el,k as sd,ka as tl,l as od,la as nl,m as id,ma as sl,n as rd,na as ol,o as ad,oa as il,p as dd,pa as rl,q as ld,qa as al,r as cd,ra as dl,s as pd,sa as ll,t as ud,ta as cl,u as md,ua as pl,v as fd,va as ul,w as E,wa as j,x as gd,xa as ml,y as P,ya as fl,z as hd,za as gl}from"./chunks/chunk-4MIHVNB7.js";import{a as bi,b as ki,c as Mi,d as Li,e as Ti,f as Oi,g as qi,h as Ki,i as Xi,j as cr}from"./chunks/chunk-KCFVGXVK.js";import{a as Fi,b as Di,c as ji,d as Ui,e as Wi,f as zi,g as Vi,h as Bi,i as $i,j as Ni,k as Gi,l as Qi,m as Hi,n as Ji,o as Yi,p as Zi,q as er,r as tr,s as nr,t as sr,u as or,v as ir,w as rr,x as ar,y as dr,z as lr}from"./chunks/chunk-HP4FXMEM.js";import{A as vi,E as yi,F as _i,G as wi,H as Ai,K as Ii,M as pr,N as ur,O as mr,P as fr,Q as gr,R as hr,S as vr,T as yr,V as _r,W as wr,X as Ar,a as gn,b as hn,e as ni,ea as va,f as si,fa as ya,g as oi,h as ii,i as ri,j as ai,k as di,ma as _a,na as wa,p as li,q as ci,ra as F,t as pi,u as ui,w as mi,x as fi,y as gi,z as hi}from"./chunks/chunk-LGR7ACBQ.js";import"./chunks/chunk-D6QVXQNI.js";import{a as Ci}from"./chunks/chunk-UA744TZM.js";import{$b as Wr,A as Ns,Aa as Vo,Ac as X,B as Gs,Ba as Bo,Bc as I,C as Qs,Ca as $o,Cc as ga,D as Hs,Dc as ha,E as Js,Eb as Ir,F as Ys,Fb as Er,G as Zs,Ga as No,Gb as Pr,H as eo,Ha as Go,Hb as Sr,I as to,Ia as Qo,Ib as xr,J as no,Ja as Ho,Jb as A,Ka as Jo,Kb as q,L as so,La as Yo,Lb as Rr,M as oo,Ma as Zo,Mb as Cr,N as io,Nb as K,O as ro,Oa as ei,Ob as br,Oc as Aa,P as ao,Pa as ti,Pb as kr,Pc as Ia,Q as lo,Qb as Mr,Qc as Ea,R as co,Rb as Lr,Rc as Pa,S as po,Sb as Tr,Sc as Sa,T as uo,Tb as Or,Tc as xa,U as mo,Ub as qr,Uc as Ra,V as fo,Vb as Kr,Vc as Ca,W as go,Wb as Xr,Wc as ba,X as ho,Xb as Fr,Xc as ka,Y as vo,Yb as Dr,Yc as Ma,Z as yo,Zb as jr,_ as _o,_b as Ur,ac as zr,ba as wo,bc as Vr,ca as Ao,cc as Br,cd as La,d as Cs,da as Io,dc as $r,dd as Ta,e as bs,ea as Eo,ec as Nr,ed as Oa,fa as Po,fc as Gr,fd as qa,ga as So,gc as Qr,gd as Ka,ha as xo,hc as Hr,hd as Xa,i as ks,ic as Jr,id as Fa,j as Ms,ja as Ro,jc as Yr,jd as Da,k as Ls,ka as Co,kc as Zr,kd as ja,l as Ts,la as bo,lc as ea,ld as Ua,m as Os,ma as ko,mc as ta,md as Wa,n as qs,na as Mo,nc as na,nd as za,o as Ks,oa as Lo,oc as sa,od as D,p as Xs,pa as To,pc as oa,pd as Va,q as Fs,qa as Oo,qc as ia,qd as Ba,r as Ds,ra as qo,rc as ra,rd as $a,s as js,sa as Ko,sc as aa,sd as Na,t as Us,ta as Xo,tc as da,td as Ga,u as Ws,ua as Fo,ub as Ei,uc as la,v as zs,va as Do,vb as Pi,vc as ca,w as Vs,wa as jo,wb as Si,wc as pa,x as Bs,xa as Uo,xb as xi,xc as ua,xd as Qa,y as $s,ya as Wo,yb as Ri,yc as ma,za as zo,zb as O,zc as fa}from"./chunks/chunk-RR7W7UF6.js";import{$ as lt,A as st,Aa as Ct,B as ot,Ba as bt,C as it,Ca as kt,D as rt,Da as Mt,E as at,Ea as Lt,Fa as Tt,Ga as Ot,Ha as qt,Ia as Kt,Ja as T,Ka as Xt,La as Ft,Ma as Dt,Na as jt,Oa as Ut,R as dt,Ra as Wt,a as He,aa as ct,b as Je,c as Ye,fa as pt,ga as ut,ha as L,ia as mt,j as Ze,k as et,la as ft,ma as gt,oa as ht,pa as vt,qa as yt,ra as _t,s as tt,sa as wt,t as nt,ta as At,ua as It,va as Et,wa as Pt,xa as St,ya as xt,z as M,za as Rt}from"./chunks/chunk-S4GVQO3W.js";import{Fc as jn,Fd as xs,Gc as Un,Gd as Rs,Hc as Wn,Ic as zn,Jc as Vn,Kc as Bn,Lc as $n,Mc as Nn,Nc as Gn,Oc as Qn,Pc as Hn,Qc as Jn,Rc as Yn,Sc as Zn,Tc as es,Uc as ts,Vc as ns,Wc as ss,Xc as os,Yc as is,Zc as rs,_c as as,a as vn,ad as ds,b as yn,bd as ls,c as _n,cd as cs,d as wn,dd as ps,e as An,ed as us,f as In,h as En,i as Pn,j as Sn,k as xn,ka as Ln,l as Rn,ld as ms,m as Cn,md as fs,n as bn,na as Tn,nd as gs,o as kn,ob as Fn,od as hs,p as Mn,pb as Dn,pd as vs,qd as ys,rd as _s,td as ws,ua as On,ud as As,va as qn,vd as Is,wa as Kn,wd as Es,xa as Xn,xd as Ps,yd as Ss}from"./chunks/chunk-UGTK2JIJ.js";import{H as fn,a as $t,b as Nt,c as Gt,d as Qt,e as Ht,f as Jt,g as Yt,h as Zt,i as en,j as tn,k as nn,l as sn,m as on,n as rn,o as an,p as dn,v as ln,w as cn,x as pn,y as un,z as mn}from"./chunks/chunk-ZL5CEANW.js";import{a as r}from"./chunks/chunk-V4WSBIXB.js";import Se from"node:process";var J=["off","error","info","debug"],H={off:0,error:1,info:2,debug:3};function C(n,e="info"){if(!n)return e;let t=n.trim().toLowerCase();return J.includes(t)?t:e}r(C,"resolveAcpLogLevel");var h=class{static{r(this,"AcpLogger")}level;sink;constructor(e={}){this.level=e.level??"info",this.sink=e.sink??(t=>{Se.stderr.write(`${t}
3
- `)})}handleEvent(e){let t=xe(e);t&&this.log(t.level,t.message,t.fields)}error(e,t){this.log("error",e,t)}info(e,t){this.log("info",e,t)}debug(e,t){this.log("debug",e,t)}log(e,t,s){if(H[this.level]<H[e])return;let i=new Date().toISOString(),o=s?Ce(s):"",a=o?` ${o}`:"";this.sink(`[ACP][${e.toUpperCase()}][${i}] ${t}${a}`)}};function xe(n){switch(n.type){case"server_attached":return{level:"info",message:"ACP server attached",fields:p(n)};case"connection_closed":return{level:"info",message:"ACP connection closed",fields:p(n)};case"initialize_completed":return{level:"info",message:"ACP initialize completed",fields:p(n)};case"session_created":return{level:"info",message:"ACP session created",fields:p(n)};case"session_mode_changed":return{level:"info",message:"ACP session mode changed",fields:p(n)};case"prompt_skipped":return{level:"info",message:"ACP prompt skipped because session was already aborted",fields:p(n)};case"prompt_started":return{level:"info",message:"ACP prompt started",fields:p(n)};case"prompt_preview":return{level:"debug",message:"ACP prompt preview",fields:p(n)};case"prompt_finished":return{level:"info",message:"ACP prompt finished",fields:p(n)};case"prompt_cancelled":return{level:"info",message:"ACP prompt cancelled during execution",fields:p(n)};case"prompt_failed":return{level:"error",message:"ACP prompt failed",fields:p(n)};case"cancel_requested":return{level:"info",message:"ACP cancel requested",fields:p(n)};case"tool_permission_evaluated":return{level:"debug",message:"ACP evaluating tool permission",fields:p(n)};case"tool_permission_resolved":return Re(n);case"permission_requested":return{level:"info",message:"ACP permission requested",fields:p(n)};case"notification_failed":return{level:"error",message:`Failed to send ${n.label}`,fields:{sessionId:n.sessionId,error:n.error}};case"repo_intelligence_trace":return{level:"debug",message:"ACP repo intelligence trace",fields:p(n)};default:return null}}r(xe,"mapEventToLogEntry");function p(n){let{type:e,...t}=n;return t}r(p,"toLogFields");function Re(n){let e={sessionId:n.sessionId,tool:n.tool,toolId:n.toolId,error:n.error};switch(n.outcome){case"auto_allowed_read_only_bash":return{level:"debug",message:"ACP tool permission auto-allowed for read-only bash",fields:e};case"auto_allowed_remembered":return{level:"info",message:"ACP tool permission reused remembered allowance",fields:e};case"blocked_plan_mode":return{level:"info",message:"ACP tool blocked by plan mode",fields:e};case"auto_allowed_plan_mode":return{level:"debug",message:"ACP tool auto-allowed in plan mode",fields:e};case"auto_allowed_policy":return{level:"debug",message:"ACP tool auto-allowed by permission policy",fields:e};case"request_failed_disconnected":return{level:"error",message:"ACP permission request failed because client is disconnected",fields:e};case"request_failed_incomplete":return{level:"error",message:"ACP permission request did not complete",fields:e};case"request_dismissed":return{level:"info",message:"ACP permission request dismissed",fields:e};case"request_rejected":return{level:"info",message:"ACP permission rejected",fields:e};case"request_granted":return{level:"info",message:"ACP permission granted",fields:{...e,remember:n.remember??!1}}}}r(Re,"mapPermissionOutcomeToLogEntry");function Ce(n){return Object.entries(n).flatMap(([e,t])=>t===void 0?[]:`${e}=${be(t)}`).join(" ")}r(Ce,"formatFields");function be(n){return n===null?"null":typeof n=="string"?JSON.stringify(n.length>160?`${n.slice(0,157)}...`:n):String(n)}r(be,"formatFieldValue");var v=class{static{r(this,"AcpEventEmitter")}sinks;constructor(e={}){this.sinks=[...e.sinks??[]]}emit(e){for(let t of this.sinks)try{t.handleEvent(e)}catch(s){}}};import{randomUUID as Y}from"node:crypto";import g from"node:path";import _ from"node:process";import{Readable as ke,Writable as Me}from"node:stream";import{AgentSideConnection as Le,PROTOCOL_VERSION as Z,RequestError as y,ndJsonStream as Te}from"@agentclientprotocol/sdk";var se=["plan","accept-edits","auto-in-project"];function b(n){return D(n)}r(b,"acpIsFileModificationTool");var Oe={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},qe=[{id:"plan",name:"Plan",description:"Read-only planning mode. File modifications are blocked except the plan-mode whitelist."},{id:"accept-edits",name:"Accept Edits",description:"File edits are auto-approved. Shell commands still require confirmation unless explicitly remembered."},{id:"auto-in-project",name:"Auto In Project",description:"Project-scoped changes are auto-approved. Protected paths and risky out-of-project operations still require confirmation."}];function Ke(n,e,t,s){if(e)return e;if(s){if(!n)return s;if(t)return n===t?s:void 0}}r(Ke,"resolveAcpModelSelection");function k(n,e){if(n==null)return;if(typeof n!="string")throw new Error(`${e} must be a string.`);let t=M(n);return t==="auto"?void 0:t}r(k,"normalizeOptionalEffort");function Xe(n){let e=n.effort;if(e===void 0)return{kind:"absent"};try{return{kind:"value",value:k(e,"Prompt effort")}}catch(t){let s=t instanceof Error?t.message:String(t);throw y.invalidParams({effort:e},s)}}r(Xe,"resolvePromptEffortOverride");function Fe(n){let e={};for(let t of n)if("command"in t){let s={};for(let i of t.env??[])s[i.name]=i.value;e[t.name]={type:"stdio",command:t.command,args:t.args??[],env:Object.keys(s).length>0?s:void 0}}else if("type"in t&&t.type==="sse"){let s={};for(let i of t.headers??[])s[i.name]=i.value;e[t.name]={type:"sse",url:t.url,headers:Object.keys(s).length>0?s:void 0}}else if("type"in t&&t.type==="http"){let s={};for(let i of t.headers??[])s[i.name]=i.value;e[t.name]={type:"http",url:t.url,headers:Object.keys(s).length>0?s:void 0}}return e}r(Fe,"convertAcpMcpServers");function De(n){let e=[];for(let t of n){let s=t.trim();s&&!e.includes(s)&&e.push(s)}return e}r(De,"dedupeExtensionPaths");function je(n){return Array.isArray(n)?De(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>g.isAbsolute(e)?e:g.resolve(g.dirname(S),e))):[]}r(je,"normalizeConfiguredExtensionPaths");async function Ue(){try{return await K()}catch(n){let e=n instanceof Error?n.message:String(n);return console.warn("[kodax:acp] Extension discovery failed: "+e),[]}}r(Ue,"discoverAcpDefaultExtensions");async function We(n,e,t){let s=await A(t),i=await q(await A(e),s);await n.loadExtensions(i,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(s,{continueOnError:!0,loadSource:"config"})}r(We,"loadAcpExtensionGroups");function ze(n,e="accept-edits"){return n&&se.includes(n)?n:e}r(ze,"normalizeAcpPermissionMode");function Ve(n){if(n&&se.includes(n))return n;throw y.invalidParams({modeId:n},"Invalid session mode. Expected one of: plan, accept-edits, auto-in-project.")}r(Ve,"parseSessionMode");function Be(n){return{availableModes:qe,currentModeId:n}}r(Be,"buildModeState");function ee(n){return Oe[n]??"other"}r(ee,"inferToolKind");function te(n,e){if(b(n)){let t=typeof e.path=="string"?e.path:void 0;return t?[{path:t}]:void 0}if(n==="bash"){let t=typeof e.command=="string"?e.command:"",s=N(t);if(s.length>0)return s.map(i=>({path:i}))}}r(te,"inferToolLocations");function $e(n){let e=[];for(let t of n){let s=t,i=typeof s.type=="string"?s.type:"";if(i==="text"&&typeof s.text=="string"){e.push(s.text);continue}if(i==="resource_link"&&typeof s.uri=="string"){e.push(`[Resource] ${s.uri}`);continue}if(i==="resource"&&s.resource&&typeof s.resource=="object"){let o=s.resource;if(typeof o.text=="string"){e.push(o.text);continue}typeof o.uri=="string"&&e.push(`[Resource] ${o.uri}`)}}return e.join(`
2
+ import{i as M}from"./chunks/chunk-W2XMNYLK.js";import{Ib as C,Sa as ke,Ta as be,eb as Ce,xb as Me,yb as Le}from"./chunks/chunk-QI6SQ2UQ.js";import{k as V,n as H,q as J,r as Q,s as Y,u as Z,v as ee,w as te,wa as Ie,x as ne,ya as Ee,za as xe}from"./chunks/chunk-EN3O2C43.js";import{A as we,B as _e,G as b,H as Se,J as B,K as N,L as G,N as Pe,R as Ae,b as pe,c as me,d as k,f as fe,h as ge,i as he,j as ve,k as ye,z as Re}from"./chunks/chunk-AKMXJSGM.js";import"./chunks/chunk-CW32NQFO.js";import"./chunks/chunk-QJJKMNZF.js";import{$ as El,A as Zd,Aa as Yl,B as el,Ba as Zl,C as tl,Ca as ec,D as nl,Da as tc,E as sl,Ea as nc,F as ol,Fa as sc,G as il,Ga as oc,H as rl,Ha as ic,I as al,Ia as rc,J as dl,Ja as ac,K as ll,L as cl,M as ul,N as pl,O as ml,P as fl,Q as gl,R as hl,S as vl,T as yl,U as Rl,V as wl,W as _l,X as Sl,Y as Pl,Z as Al,_ as Il,a as Qt,aa as xl,b as Yt,ba as kl,c as Zt,ca as bl,d as Ld,da as Cl,e as Td,ea as Ml,f as Od,fa as Ll,g as Kd,ga as Tl,h as qd,ha as Ol,i as Xd,ia as Kl,j as Fd,ja as ql,k as Dd,ka as Xl,l as jd,la as Fl,m as Ud,ma as Dl,n as Wd,na as jl,o as $d,oa as Ul,p as zd,pa as Wl,q as Vd,qa as $l,r as Bd,ra as zl,s as Nd,sa as Vl,t as Gd,ta as Bl,u as Hd,ua as Nl,v as Jd,va as Gl,w as E,wa as z,x as Qd,xa as Hl,y as x,ya as Jl,z as Yd,za as Ql}from"./chunks/chunk-WCSSXBHR.js";import{a as Ui,b as Wi,c as $i,d as zi,e as Vi,f as Bi,g as Ni,h as Gi,i as Hi,j as Or}from"./chunks/chunk-DEICMTHO.js";import{A as Ar,B as Ir,C as Er,D as xr,E as kr,F as br,G as Cr,H as Mr,I as Lr,J as Tr,a as Yi,b as Zi,c as er,d as tr,e as nr,f as sr,g as or,h as ir,i as rr,j as ar,k as dr,l as lr,m as cr,n as ur,o as pr,p as mr,q as fr,r as gr,s as hr,t as vr,u as yr,v as Rr,w as wr,x as _r,y as Sr,z as Pr}from"./chunks/chunk-KBBGDRER.js";import{A as bi,E as Ci,F as Mi,G as Li,H as Ti,K as Oi,M as Kr,N as qr,O as Xr,P as Fr,Q as Dr,R as jr,S as Ur,T as Wr,V as $r,W as zr,X as Vr,a as Pn,b as An,e as fi,ea as Ua,f as gi,fa as Wa,g as hi,ga as $a,h as vi,ha as za,i as yi,ia as Va,j as Ri,ja as Ba,k as wi,ka as Na,la as Ga,ma as Ha,na as Ja,p as _i,q as Si,t as Pi,u as Ai,ua as Qa,va as Ya,w as Ii,x as Ei,y as xi,z as ki,za as Za}from"./chunks/chunk-RS2GAABJ.js";import"./chunks/chunk-D6QVXQNI.js";import{a as ji}from"./chunks/chunk-YRBNXFHY.js";import{$ as ko,$b as ia,$c as rd,A as to,Aa as Yo,Ab as qi,Ac as La,Ad as $,B as no,Ba as Zo,Bb as Xi,Bc as Ta,Bd as Ed,C as so,Ca as ei,Cb as Fi,Cc as Oa,Cd as xd,D as oo,Da as ti,Db as Di,Dc as Ka,Dd as kd,E as io,Ea as ni,Eb as D,Ec as qa,Ed as bd,F as ro,Fa as si,Fb as Ji,Fc as Xa,Fd as Cd,G as ao,Ga as oi,Gb as Qi,Gc as Fa,H as lo,Hc as W,I as co,Ic as I,J as uo,Jc as Da,Jd as Md,Kc as ja,L as po,La as ii,Lb as Br,M as mo,Ma as ri,Mb as Nr,N as fo,Na as ai,Nb as Gr,O as go,Oa as di,Ob as Hr,P as ho,Pa as li,Pb as Jr,Q as vo,Qa as ci,Qb as A,R as yo,Ra as ui,Rb as j,S as Ro,Sb as Qr,T as wo,Ta as pi,Tb as Yr,U as _o,Ua as mi,Ub as U,V as So,Vb as Zr,Vc as ed,W as Po,Wb as ea,Wc as td,X as Ao,Xb as ta,Xc as nd,Y as Io,Yb as na,Yc as sd,Z as Eo,Zb as sa,Zc as od,_ as xo,_b as oa,_c as id,ac as ra,ad,bc as aa,bd as dd,ca as bo,cc as da,cd as ld,d as qs,da as Co,dc as la,dd as cd,e as Xs,ea as Mo,ec as ca,fa as Lo,fc as ua,ga as To,gc as pa,gd as ud,ha as Oo,hc as ma,hd as pd,i as Fs,ia as Ko,ic as fa,id as md,j as Ds,jc as ga,k as js,ka as qo,kc as ha,l as Us,la as Xo,lc as va,m as Ws,ma as Fo,mc as ya,n as $s,na as Do,nc as Ra,o as zs,oa as jo,oc as wa,od as fd,p as Vs,pa as Uo,pc as _a,pd as gd,q as Bs,qa as Wo,qc as Sa,qd as hd,r as Ns,ra as $o,rc as Pa,rd as vd,s as Gs,sa as zo,sc as Aa,sd as yd,t as Hs,ta as Vo,tc as Ia,td as Rd,u as Js,ua as Bo,uc as Ea,ud as wd,v as Qs,va as No,vc as xa,vd as _d,w as Ys,wa as Go,wc as ka,wd as Sd,x as Zs,xa as Ho,xc as ba,xd as Pd,y as eo,ya as Jo,yc as Ca,yd as Ad,za as Qo,zb as Ki,zc as Ma,zd as Id}from"./chunks/chunk-YH5BTUQO.js";import{$ as vt,A as pt,Aa as qt,B as mt,Ba as Xt,C as q,Ca as Ft,D as ft,Da as Dt,E as gt,Ea as jt,Fa as Ut,Ga as Wt,Ha as $t,Ia as zt,Ja as F,Ka as Vt,La as Bt,Ma as Nt,Na as Gt,Oa as Ht,R as ht,Ra as Jt,a as it,aa as yt,b as rt,c as at,fa as Rt,ga as wt,ha as X,ia as _t,j as dt,k as lt,la as St,ma as Pt,oa as At,pa as It,qa as Et,ra as xt,s as ct,sa as kt,t as ut,ta as bt,ua as Ct,va as Mt,wa as Lt,xa as Tt,ya as Ot,z as K,za as Kt}from"./chunks/chunk-O7N22GJ3.js";import{$c as ms,Aa as Vn,Ad as Ls,Bd as Ts,Ic as Gn,Id as Os,Jc as Hn,Jd as Ks,Kc as Jn,Lc as Qn,Mc as Yn,Nc as Zn,Oc as es,Pc as ts,Qc as ns,Rc as ss,Sc as os,Tc as is,Uc as rs,Vc as as,Wc as ds,Xc as ls,Yc as cs,Zc as us,_c as ps,a as In,ad as fs,b as En,bd as gs,c as xn,d as kn,dd as hs,e as bn,ed as vs,f as Cn,fd as ys,gd as Rs,h as Mn,hd as ws,i as Ln,j as Tn,k as On,l as Kn,na as jn,od as _s,p as qn,pd as Ss,q as Xn,qa as Un,qd as Ps,r as Fn,rb as Bn,rd as As,s as Dn,sb as Nn,sd as Is,td as Es,ud as xs,wd as ks,xa as Wn,xd as bs,ya as $n,yd as Cs,za as zn,zd as Ms}from"./chunks/chunk-NVDK375I.js";import{H as Sn,a as en,b as tn,c as nn,d as sn,e as on,f as rn,g as an,h as dn,i as ln,j as cn,k as un,l as pn,m as mn,n as fn,o as gn,p as hn,v as vn,w as yn,x as Rn,y as wn,z as _n}from"./chunks/chunk-PZTG2C33.js";import{a as i}from"./chunks/chunk-ONUPGMER.js";import Te from"node:process";var oe=["off","error","info","debug"],se={off:0,error:1,info:2,debug:3};function L(n,e="info"){if(!n)return e;let t=n.trim().toLowerCase();return oe.includes(t)?t:e}i(L,"resolveAcpLogLevel");var R=class{static{i(this,"AcpLogger")}level;sink;constructor(e={}){this.level=e.level??"info",this.sink=e.sink??(t=>{Te.stderr.write(`${t}
3
+ `)})}handleEvent(e){let t=Oe(e);t&&this.log(t.level,t.message,t.fields)}error(e,t){this.log("error",e,t)}info(e,t){this.log("info",e,t)}debug(e,t){this.log("debug",e,t)}log(e,t,s){if(se[this.level]<se[e])return;let o=new Date().toISOString(),r=s?qe(s):"",a=r?` ${r}`:"";this.sink(`[ACP][${e.toUpperCase()}][${o}] ${t}${a}`)}};function Oe(n){switch(n.type){case"server_attached":return{level:"info",message:"ACP server attached",fields:u(n)};case"connection_closed":return{level:"info",message:"ACP connection closed",fields:u(n)};case"initialize_completed":return{level:"info",message:"ACP initialize completed",fields:u(n)};case"session_created":return{level:"info",message:"ACP session created",fields:u(n)};case"session_mode_changed":return{level:"info",message:"ACP session mode changed",fields:u(n)};case"prompt_skipped":return{level:"info",message:"ACP prompt skipped because session was already aborted",fields:u(n)};case"prompt_started":return{level:"info",message:"ACP prompt started",fields:u(n)};case"prompt_preview":return{level:"debug",message:"ACP prompt preview",fields:u(n)};case"prompt_finished":return{level:"info",message:"ACP prompt finished",fields:u(n)};case"prompt_cancelled":return{level:"info",message:"ACP prompt cancelled during execution",fields:u(n)};case"prompt_failed":return{level:"error",message:"ACP prompt failed",fields:u(n)};case"cancel_requested":return{level:"info",message:"ACP cancel requested",fields:u(n)};case"tool_permission_evaluated":return{level:"debug",message:"ACP evaluating tool permission",fields:u(n)};case"tool_permission_resolved":return Ke(n);case"permission_requested":return{level:"info",message:"ACP permission requested",fields:u(n)};case"notification_failed":return{level:"error",message:`Failed to send ${n.label}`,fields:{sessionId:n.sessionId,error:n.error}};case"repo_intelligence_trace":return{level:"debug",message:"ACP repo intelligence trace",fields:u(n)};default:return null}}i(Oe,"mapEventToLogEntry");function u(n){let{type:e,...t}=n;return t}i(u,"toLogFields");function Ke(n){let e={sessionId:n.sessionId,tool:n.tool,toolId:n.toolId,error:n.error};switch(n.outcome){case"auto_allowed_read_only_bash":return{level:"debug",message:"ACP tool permission auto-allowed for read-only bash",fields:e};case"auto_allowed_remembered":return{level:"info",message:"ACP tool permission reused remembered allowance",fields:e};case"blocked_plan_mode":return{level:"info",message:"ACP tool blocked by plan mode",fields:e};case"auto_allowed_plan_mode":return{level:"debug",message:"ACP tool auto-allowed in plan mode",fields:e};case"auto_allowed_policy":return{level:"debug",message:"ACP tool auto-allowed by permission policy",fields:e};case"request_failed_disconnected":return{level:"error",message:"ACP permission request failed because client is disconnected",fields:e};case"request_failed_incomplete":return{level:"error",message:"ACP permission request did not complete",fields:e};case"request_dismissed":return{level:"info",message:"ACP permission request dismissed",fields:e};case"request_rejected":return{level:"info",message:"ACP permission rejected",fields:e};case"request_granted":return{level:"info",message:"ACP permission granted",fields:{...e,remember:n.remember??!1}}}}i(Ke,"mapPermissionOutcomeToLogEntry");function qe(n){return Object.entries(n).flatMap(([e,t])=>t===void 0?[]:`${e}=${Xe(t)}`).join(" ")}i(qe,"formatFields");function Xe(n){return n===null?"null":typeof n=="string"?JSON.stringify(n.length>160?`${n.slice(0,157)}...`:n):String(n)}i(Xe,"formatFieldValue");var w=class{static{i(this,"AcpEventEmitter")}sinks;constructor(e={}){this.sinks=[...e.sinks??[]]}emit(e){for(let t of this.sinks)try{t.handleEvent(e)}catch(s){}}};import{randomUUID as ie}from"node:crypto";import Fe from"node:os";import g from"node:path";import y from"node:process";import{Readable as De,Writable as je}from"node:stream";import{AgentSideConnection as Ue,PROTOCOL_VERSION as re,RequestError as _,ndJsonStream as We}from"@agentclientprotocol/sdk";var ue=["plan","accept-edits","auto-in-project"];function T(n){return $(n)}i(T,"acpIsFileModificationTool");var $e={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},ze=[{id:"plan",name:"Plan",description:"Read-only planning mode. File modifications are blocked except the plan-mode whitelist."},{id:"accept-edits",name:"Accept Edits",description:"File edits are auto-approved. Shell commands still require confirmation unless explicitly remembered."},{id:"auto-in-project",name:"Auto In Project",description:"Project-scoped changes are auto-approved. Protected paths and risky out-of-project operations still require confirmation."}];function O(n,e){if(n==null)return;if(typeof n!="string")throw new Error(`${e} must be a string.`);let t=K(n);return t==="auto"?void 0:t}i(O,"normalizeOptionalEffort");function Ve(n){let e=n.replace(/\s+/g," ").trim();return e.length<=80?e:`${e.slice(0,77)}...`}i(Ve,"buildAcpSessionTitle");function Be(n){let e=n.effort;if(e===void 0)return{kind:"absent"};try{return{kind:"value",value:O(e,"Prompt effort")}}catch(t){let s=t instanceof Error?t.message:String(t);throw _.invalidParams({effort:e},s)}}i(Be,"resolvePromptEffortOverride");function Ne(n){let e={};for(let t of n)if("command"in t){let s={};for(let o of t.env??[])s[o.name]=o.value;e[t.name]={type:"stdio",command:t.command,args:t.args??[],env:Object.keys(s).length>0?s:void 0}}else if("type"in t&&t.type==="sse"){let s={};for(let o of t.headers??[])s[o.name]=o.value;e[t.name]={type:"sse",url:t.url,headers:Object.keys(s).length>0?s:void 0}}else if("type"in t&&t.type==="http"){let s={};for(let o of t.headers??[])s[o.name]=o.value;e[t.name]={type:"http",url:t.url,headers:Object.keys(s).length>0?s:void 0}}return e}i(Ne,"convertAcpMcpServers");function Ge(n){let e=[];for(let t of n){let s=t.trim();s&&!e.includes(s)&&e.push(s)}return e}i(Ge,"dedupeExtensionPaths");function He(n){return Array.isArray(n)?Ge(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>g.isAbsolute(e)?e:g.resolve(g.dirname(k),e))):[]}i(He,"normalizeConfiguredExtensionPaths");async function Je(n){try{return await U()}catch(e){let t=e instanceof Error?e.message:String(e);return n.error("ACP extension discovery failed: "+t),[]}}i(Je,"discoverAcpDefaultExtensions");async function Qe(n,e,t){let s=await A(t),o=await j(await A(e),s);await n.loadExtensions(o,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(s,{continueOnError:!0,loadSource:"config"})}i(Qe,"loadAcpExtensionGroups");function Ye(n,e="accept-edits"){return n&&ue.includes(n)?n:e}i(Ye,"normalizeAcpPermissionMode");function Ze(n){if(n&&ue.includes(n))return n;throw _.invalidParams({modeId:n},"Invalid session mode. Expected one of: plan, accept-edits, auto-in-project.")}i(Ze,"parseSessionMode");function et(n){return{availableModes:ze,currentModeId:n}}i(et,"buildModeState");function ae(n){return $e[n]??"other"}i(ae,"inferToolKind");function de(n,e){if(T(n)){let t=typeof e.path=="string"?e.path:void 0;return t?[{path:t}]:void 0}if(n==="bash"){let t=typeof e.command=="string"?e.command:"",s=ee(t);if(s.length>0)return s.map(o=>({path:o}))}}i(de,"inferToolLocations");function tt(n){let e=[];for(let t of n){let s=t,o=typeof s.type=="string"?s.type:"";if(o==="text"&&typeof s.text=="string"){e.push(s.text);continue}if(o==="resource_link"&&typeof s.uri=="string"){e.push(`[Resource] ${s.uri}`);continue}if(o==="resource"&&s.resource&&typeof s.resource=="object"){let r=s.resource;if(typeof r.text=="string"){e.push(r.text);continue}typeof r.uri=="string"&&e.push(`[Resource] ${r.uri}`)}}return e.join(`
4
4
 
5
- `).trim()}r($e,"extractPromptText");function Ne(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}r(Ne,"isToolResultFailure");function Ge(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}r(Ge,"isAbortLikeError");function ne(n){let e=n?.usage;if(e)return{inputTokens:e.inputTokens,outputTokens:e.outputTokens,totalTokens:e.totalTokens,...e.cachedReadTokens!==void 0?{cachedReadTokens:e.cachedReadTokens}:{},...e.cachedWriteTokens!==void 0?{cachedWriteTokens:e.cachedWriteTokens}:{},...e.thoughtTokens!==void 0?{thoughtTokens:e.thoughtTokens}:{}}}r(ne,"toAcpUsage");var w=class{static{r(this,"KodaXAcpServer")}provider;model;effort;planModeEffort;thinking;reasoningMode;defaultPermissionMode;defaultCwd;hasFixedCwd;agentName;agentVersion;storage;events;bashPrefixExtractor;configuredExtensions;discoveredExtensions;connection=null;sessions=new Map;promptQueue=Promise.resolve();extensionRuntime;extensionRuntimeReady;disposePromise;constructor(e={}){let t=x(),s=t;this.provider=e.provider??t.provider??L,this.model=Ke(e.provider,e.model,t.provider,t.model);let i=e.effort!==void 0;this.effort=k(e.effort??t.effort,"Configured effort"),this.planModeEffort=i?void 0:k(e.planModeEffort??t.planModeEffort,"Configured plan-mode effort"),this.thinking=e.thinking??t.thinking??!1,this.reasoningMode=e.reasoningMode??t.reasoningMode??"auto",this.defaultPermissionMode=ze(e.permissionMode??t.permissionMode,"accept-edits");let o=g.resolve(e.cwd??_.cwd()),a=je(s.extensions),d=Ue();this.defaultCwd=o,this.hasFixedCwd=e.cwd!==void 0,this.agentName=e.agentName??"kodax-acp-server",this.agentVersion=e.agentVersion??"0.0.0",this.storage=e.storage??new R,this.configuredExtensions=a,this.discoveredExtensions=d,this.events=new v({sinks:[...e.eventSinks??[],new h({level:C(e.logLevel??_.env.KODAX_ACP_LOG,"info")})]}),this.bashPrefixExtractor=j({getProvider:r(()=>T(this.provider),"getProvider"),getModel:r(()=>this.model??"","getModel")});let l=t.mcpServers,u=l&&Object.values(l).some(c=>(c.connect??"lazy")!=="disabled");this.extensionRuntimeReady=(async()=>{let c=await d,m=c.length>0||a.length>0;if(!u&&!m)return;let f=I({config:t});u&&await E(f,l,{reverse:P({cwd:o})}),await We(f,c,a),f.activate(),this.extensionRuntime=f})().catch(c=>{let m=c instanceof Error?c.message:String(c);console.warn("[kodax:acp] Extension initialization failed: "+m)})}attach(e,t){let s=Te(t,e),i=new Le(()=>this,s);this.connection=i;let o=this.effort==="none"?!1:this.thinking,a=this.effort==="none"?"off":this.reasoningMode;return this.events.emit({type:"server_attached",agent:this.agentName,version:this.agentVersion,provider:this.provider,model:this.model??"(default)",cwd:this.defaultCwd,permissionMode:this.defaultPermissionMode,reasoningMode:a,thinking:o,fixedCwd:this.hasFixedCwd}),i.signal.addEventListener("abort",()=>{let d=this.sessions.size;this.events.emit({type:"connection_closed",activeSessions:d}),this.dispose()}),i}async waitForClose(){await this.connection?.closed}async dispose(){return this.disposePromise?this.disposePromise:(this.disposePromise=(async()=>{for(let s of this.sessions.values())s.activeController?.abort();let e=new Set;for(let s of this.sessions.values())s.ownedExtensionRuntime&&(e.add(s.ownedExtensionRuntime),s.ownedExtensionRuntime=void 0),s.extensionRuntime=void 0;this.sessions.clear(),this.connection=null;let t=this.extensionRuntimeReady;this.extensionRuntimeReady=void 0,await t?.catch(()=>{}),this.extensionRuntime&&(e.add(this.extensionRuntime),this.extensionRuntime=void 0),await Promise.all([...e].map(s=>s.dispose())),await O()})(),this.disposePromise)}async initialize(e){return this.events.emit({type:"initialize_completed",protocolVersion:Z}),{protocolVersion:Z,agentInfo:{name:this.agentName,version:this.agentVersion},agentCapabilities:{promptCapabilities:{embeddedContext:!0,image:!1,audio:!1},sessionCapabilities:{}}}}async newSession(e){let t=this.hasFixedCwd?this.defaultCwd:e.cwd??this.defaultCwd;if(!g.isAbsolute(t))throw y.invalidParams({cwd:t},"Session cwd must be an absolute path.");let s=Y(),i=e.mcpServers??[],o={sessionId:s,cwd:g.resolve(t),permissionMode:this.defaultPermissionMode,mcpServers:i,alwaysAllowTools:[],activeController:null};if(i.length>0){let a=Fe(i),d=I({});await E(d,a,{reverse:P({cwd:o.cwd})}).catch(l=>{let u=l instanceof Error?l.message:String(l);console.warn("[kodax:acp] Per-session MCP init failed for "+s+": "+u)}),await this.extensionRuntimeReady,o.ownedExtensionRuntime=d,o.extensionRuntime=this.extensionRuntime?X(d,this.extensionRuntime):d}return this.sessions.set(s,o),this.events.emit({type:"session_created",sessionId:s,cwd:o.cwd,permissionMode:o.permissionMode,mcpServers:o.mcpServers.length}),{sessionId:s,modes:Be(o.permissionMode)}}async authenticate(){}async setSessionMode(e){let t=this.requireSession(e.sessionId),s=t.permissionMode,i=Ve(e.modeId);return t.permissionMode=i,this.events.emit({type:"session_mode_changed",sessionId:t.sessionId,from:s,to:i}),await this.sendSessionUpdate({sessionId:t.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:i}}),{}}async prompt(e){let t=this.requireSession(e.sessionId),s=$e(e.prompt),i=Xe(e);if(!s)throw y.invalidParams({prompt:e.prompt},"Prompt must include at least one text or resource block with content.");let o=new AbortController;t.activeController=o;let a=Date.now(),d=r(async()=>{if(o.signal.aborted)return this.events.emit({type:"prompt_skipped",sessionId:t.sessionId}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};let u=Date.now();this.events.emit({type:"prompt_started",sessionId:t.sessionId,messageId:e.messageId??null,chars:s.length,cwd:t.cwd,queueDelayMs:u-a}),this.events.emit({type:"prompt_preview",sessionId:t.sessionId,prompt:s});try{this.extensionRuntimeReady&&await this.extensionRuntimeReady;let c=await F(this.buildKodaXOptions(t,o.signal,i),s);t.contextTokenSnapshot=c.contextTokenSnapshot;let m=!!c.interrupted,f=o.signal.aborted||m?"cancelled":"end_turn";return this.events.emit({type:"prompt_finished",sessionId:t.sessionId,stopReason:f,interrupted:m,durationMs:Date.now()-u}),{stopReason:f,userMessageId:e.messageId??void 0,...ne(c.contextTokenSnapshot)?{usage:ne(c.contextTokenSnapshot)}:{}}}catch(c){if(o.signal.aborted||Ge(c))return this.events.emit({type:"prompt_cancelled",sessionId:t.sessionId,durationMs:Date.now()-u}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};let m=c instanceof Error?c.message:String(c);return this.events.emit({type:"prompt_failed",sessionId:t.sessionId,durationMs:Date.now()-u,error:m}),await this.sendTextChunk(t.sessionId,`
6
- [ACP Server Error] ${m}
7
- `),{stopReason:o.signal.aborted?"cancelled":"end_turn",userMessageId:e.messageId??void 0}}finally{t.activeController=null}},"task"),l=this.promptQueue.then(d,d);return this.promptQueue=l.then(()=>{},()=>{}),l}async cancel(e){let t=this.sessions.get(e.sessionId);this.events.emit({type:"cancel_requested",sessionId:e.sessionId,active:!!t?.activeController}),t?.activeController?.abort()}requireSession(e){let t=this.sessions.get(e);if(!t)throw y.resourceNotFound(e);return t}buildKodaXOptions(e,t,s={kind:"absent"}){let i=s.kind==="value"?s.value:e.permissionMode==="plan"&&this.planModeEffort!==void 0?this.planModeEffort:this.effort;return{provider:this.provider,model:this.model,effort:i,thinking:i==="none"?!1:this.thinking,reasoningMode:i==="none"?"off":this.reasoningMode,abortSignal:t,extensionRuntime:e.extensionRuntime??this.extensionRuntime,session:{id:e.sessionId,storage:this.storage},context:{gitRoot:e.cwd,executionCwd:e.cwd,contextTokenSnapshot:e.contextTokenSnapshot},events:{onTextDelta:r(o=>{this.dispatchNotification("assistant text chunk",e.sessionId,this.sendTextChunk(e.sessionId,o))},"onTextDelta"),onThinkingDelta:r(o=>{this.dispatchNotification("thinking chunk",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"agent_thought_chunk",content:{type:"text",text:o}}}))},"onThinkingDelta"),onToolUseStart:r(o=>{this.dispatchNotification("tool call start",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call",toolCallId:o.id,title:o.name,kind:ee(o.name),rawInput:o.input,locations:te(o.name,o.input??{}),status:"pending"}}))},"onToolUseStart"),onToolResult:r(o=>{this.dispatchNotification("tool call update",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call_update",toolCallId:o.id,title:o.name,status:Ne(o.content)?"failed":"completed",rawOutput:o.content}}))},"onToolResult"),onRepoIntelligenceTrace:r(o=>{this.events.emit({type:"repo_intelligence_trace",sessionId:e.sessionId,stage:o.stage,summary:o.summary,mode:o.capability?.mode,engine:o.capability?.engine,status:o.capability?.status,cacheHit:o.trace?.cacheHit,capsuleEstimatedTokens:o.trace?.capsuleEstimatedTokens})},"onRepoIntelligenceTrace"),onError:r(o=>{this.dispatchNotification("error text chunk",e.sessionId,this.sendTextChunk(e.sessionId,`
5
+ `).trim()}i(tt,"extractPromptText");function nt(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}i(nt,"isToolResultFailure");function st(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}i(st,"isAbortLikeError");function le(n){return n==="queued"?0:n==="running"||n==="waiting_permission"||n==="waiting_user_input"?1:2}i(le,"acpAbortPhaseRank");function ce(n){let e=n?.usage;if(e)return{inputTokens:e.inputTokens,outputTokens:e.outputTokens,totalTokens:e.totalTokens,...e.cachedReadTokens!==void 0?{cachedReadTokens:e.cachedReadTokens}:{},...e.cachedWriteTokens!==void 0?{cachedWriteTokens:e.cachedWriteTokens}:{},...e.thoughtTokens!==void 0?{thoughtTokens:e.thoughtTokens}:{}}}i(ce,"toAcpUsage");var P=class{static{i(this,"KodaXAcpServer")}provider;model;effort;planModeEffort;thinking;reasoningMode;defaultPermissionMode;defaultCwd;hasFixedCwd;agentName;agentVersion;storage;runtimeReady;ownsRuntime;logger;events;bashPrefixExtractor;configuredExtensions;discoveredExtensions;connection=null;sessions=new Map;extensionRuntime;extensionRuntimeReady;disposePromise;constructor(e={}){let t=y.env.KODAX_PROVIDER,s=y.env.KODAX_EFFORT,o=b(),r=o;this.provider=B({explicitProvider:e.provider,environmentProvider:t,configuredProvider:o.provider,defaultProvider:X}),this.model=N({explicitProvider:e.provider,environmentProvider:t,explicitModel:e.model,configuredProvider:o.provider,configuredModel:o.model});let a=e.effort!==void 0||q(s).kind==="value";this.effort=O(G({explicitEffort:e.effort,environmentEffort:s,configuredEffort:o.effort}),"Configured effort"),this.planModeEffort=a?void 0:O(e.planModeEffort??o.planModeEffort,"Configured plan-mode effort"),this.thinking=e.thinking??o.thinking??!1,this.reasoningMode=e.reasoningMode??o.reasoningMode??"auto",this.defaultPermissionMode=Ye(e.permissionMode??o.permissionMode,"accept-edits");let d=g.resolve(e.cwd??y.cwd()),l=He(r.extensions),c=new R({level:L(e.logLevel??y.env.KODAX_ACP_LOG,"info")}),p=Je(c);this.defaultCwd=d,this.hasFixedCwd=e.cwd!==void 0,this.agentName=e.agentName??"kodax-acp-server",this.agentVersion=e.agentVersion??"0.0.0",this.storage=e.storage??new C,this.logger=c,this.ownsRuntime=e.runtime===void 0,this.runtimeReady=e.runtime?Promise.resolve(e.runtime):M({homeDir:e.homeDir??Fe.homedir(),sessionsDir:this.storage.getSessionsDir(),profile:"acp",defaultProvider:this.provider,...this.model!==void 0?{defaultModel:this.model}:{}}),this.configuredExtensions=l,this.discoveredExtensions=p,this.events=new w({sinks:[...e.eventSinks??[],c]}),this.bashPrefixExtractor=z({getProvider:i(()=>F(this.provider),"getProvider"),getModel:i(()=>this.model??"","getModel")});let h=o.mcpServers,f=h&&Object.values(h).some(m=>(m.connect??"lazy")!=="disabled");this.extensionRuntimeReady=(async()=>{let m=await p,v=m.length>0||l.length>0;if(!f&&!v)return;let S=I({config:o});f&&await E(S,h,{reverse:x({cwd:d})}),await Qe(S,m,l),S.activate(),this.extensionRuntime=S})().catch(m=>{let v=m instanceof Error?m.message:String(m);c.error("ACP extension initialization failed: "+v)})}attach(e,t){let s=We(t,e),o=new Ue(()=>this,s);this.connection=o;let r=this.effort==="none"?!1:this.thinking,a=this.effort==="none"?"off":this.reasoningMode;return this.events.emit({type:"server_attached",agent:this.agentName,version:this.agentVersion,provider:this.provider,model:this.model??"(default)",cwd:this.defaultCwd,permissionMode:this.defaultPermissionMode,reasoningMode:a,thinking:r,fixedCwd:this.hasFixedCwd}),o.signal.addEventListener("abort",()=>{let d=this.sessions.size;this.events.emit({type:"connection_closed",activeSessions:d}),this.dispose()}),o}async waitForClose(){await this.connection?.closed}async dispose(){return this.disposePromise?this.disposePromise:(this.disposePromise=(async()=>{for(let s of this.sessions.values())await this.abortSessionRuns(s);let e=new Set;for(let s of this.sessions.values())s.ownedExtensionRuntime&&(e.add(s.ownedExtensionRuntime),s.ownedExtensionRuntime=void 0),s.extensionRuntime=void 0;this.sessions.clear(),this.connection=null;let t=this.extensionRuntimeReady;this.extensionRuntimeReady=void 0,await t?.catch(()=>{}),this.extensionRuntime&&(e.add(this.extensionRuntime),this.extensionRuntime=void 0),await Promise.all([...e].map(s=>s.dispose())),this.ownsRuntime&&await(await this.runtimeReady).close().catch(()=>{}),await D()})(),this.disposePromise)}async initialize(e){return this.events.emit({type:"initialize_completed",protocolVersion:re}),{protocolVersion:re,agentInfo:{name:this.agentName,version:this.agentVersion},agentCapabilities:{promptCapabilities:{embeddedContext:!0,image:!1,audio:!1},sessionCapabilities:{}}}}async newSession(e){let t=this.hasFixedCwd?this.defaultCwd:e.cwd??this.defaultCwd;if(!g.isAbsolute(t))throw _.invalidParams({cwd:t},"Session cwd must be an absolute path.");let s=ie(),o=e.mcpServers??[],r={sessionId:s,cwd:g.resolve(t),permissionMode:this.defaultPermissionMode,mcpServers:o,alwaysAllowTools:[],activeRunIds:new Set};if(o.length>0){let a=Ne(o),d=I({});await E(d,a,{reverse:x({cwd:r.cwd})}).catch(l=>{let c=l instanceof Error?l.message:String(l);this.logger.error("ACP per-session MCP init failed for "+s+": "+c)}),await this.extensionRuntimeReady,r.ownedExtensionRuntime=d,r.extensionRuntime=this.extensionRuntime?W(d,this.extensionRuntime):d}return this.sessions.set(s,r),this.events.emit({type:"session_created",sessionId:s,cwd:r.cwd,permissionMode:r.permissionMode,mcpServers:r.mcpServers.length}),{sessionId:s,modes:et(r.permissionMode)}}async authenticate(){}async setSessionMode(e){let t=this.requireSession(e.sessionId),s=t.permissionMode,o=Ze(e.modeId);return t.permissionMode=o,this.events.emit({type:"session_mode_changed",sessionId:t.sessionId,from:s,to:o}),await this.sendSessionUpdate({sessionId:t.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:o}}),{}}async prompt(e){let t=this.requireSession(e.sessionId),s=tt(e.prompt),o=Be(e);if(!s)throw _.invalidParams({prompt:e.prompt},"Prompt must include at least one text or resource block with content.");let r=Date.now();return i(async()=>{let d=Date.now();this.events.emit({type:"prompt_started",sessionId:t.sessionId,messageId:e.messageId??null,chars:s.length,cwd:t.cwd,queueDelayMs:d-r}),this.events.emit({type:"prompt_preview",sessionId:t.sessionId,prompt:s});let l;try{this.extensionRuntimeReady&&await this.extensionRuntimeReady;let c=await this.runtimeReady;await this.ensureRuntimeSession(c,t,s),l=await c.runs.start({sessionId:t.sessionId,prompt:s,options:this.buildKodaXOptions(t,o)}),t.activeRunIds.add(l.runId);let p=await l.result;if(p.error)throw p.error;let h=p.phase==="cancelled"||p.phase==="interrupted",f=p.result;if(!f){if(h)return this.events.emit({type:"prompt_cancelled",sessionId:t.sessionId,durationMs:Date.now()-d}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};throw new Error(`Runtime run ${l.runId} ended without a coding result.`)}t.contextTokenSnapshot=f.contextTokenSnapshot;let m=!!f.interrupted||h,v=m?"cancelled":"end_turn";return this.events.emit({type:"prompt_finished",sessionId:t.sessionId,stopReason:v,interrupted:m,durationMs:Date.now()-d}),{stopReason:v,userMessageId:e.messageId??void 0,...ce(f.contextTokenSnapshot)?{usage:ce(f.contextTokenSnapshot)}:{}}}catch(c){if(st(c))return this.events.emit({type:"prompt_cancelled",sessionId:t.sessionId,durationMs:Date.now()-d}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};let p=c instanceof Error?c.message:String(c);return this.events.emit({type:"prompt_failed",sessionId:t.sessionId,durationMs:Date.now()-d,error:p}),await this.sendTextChunk(t.sessionId,`
6
+ [ACP Server Error] ${p}
7
+ `),{stopReason:"end_turn",userMessageId:e.messageId??void 0}}finally{l&&t.activeRunIds.delete(l.runId)}},"task")()}async ensureRuntimeSession(e,t,s){t.runtimeSessionReady||(t.runtimeSessionReady=e.sessions.create({sessionId:t.sessionId,title:Ve(s),projectPath:t.cwd,gitRoot:t.cwd,surface:"acp"}).then(()=>{}));try{await t.runtimeSessionReady}catch(o){throw t.runtimeSessionReady=void 0,o}}async cancel(e){let t=this.sessions.get(e.sessionId);this.events.emit({type:"cancel_requested",sessionId:e.sessionId,active:(t?.activeRunIds.size??0)>0}),t&&await this.abortSessionRuns(t)}async abortSessionRuns(e){if(e.activeRunIds.size===0)return;let t=await this.runtimeReady,s=[...e.activeRunIds],o=await Promise.all(s.map(async r=>{try{let a=await t.runs.get(r);return{runId:r,rank:le(a.phase)}}catch(a){let d=a instanceof Error?a.message:String(a);return this.logger.error(`ACP runtime run status lookup failed for ${r}: ${d}`),{runId:r,rank:le("cancelled")}}}));o.sort((r,a)=>r.rank-a.rank),await Promise.all(o.map(({runId:r})=>t.runs.abort(r).catch(a=>{let d=a instanceof Error?a.message:String(a);this.logger.error(`ACP runtime run abort failed for ${r}: ${d}`)})))}requireSession(e){let t=this.sessions.get(e);if(!t)throw _.resourceNotFound(e);return t}buildKodaXOptions(e,t={kind:"absent"}){let s=t.kind==="value"?t.value:e.permissionMode==="plan"&&this.planModeEffort!==void 0?this.planModeEffort:this.effort;return{provider:this.provider,model:this.model,effort:s,thinking:s==="none"?!1:this.thinking,reasoningMode:s==="none"?"off":this.reasoningMode,extensionRuntime:e.extensionRuntime??this.extensionRuntime,session:{id:e.sessionId,storage:this.storage},context:{gitRoot:e.cwd,executionCwd:e.cwd,contextTokenSnapshot:e.contextTokenSnapshot},events:{onTextDelta:i(o=>{this.dispatchNotification("assistant text chunk",e.sessionId,this.sendTextChunk(e.sessionId,o))},"onTextDelta"),onThinkingDelta:i(o=>{this.dispatchNotification("thinking chunk",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"agent_thought_chunk",content:{type:"text",text:o}}}))},"onThinkingDelta"),onToolUseStart:i(o=>{this.dispatchNotification("tool call start",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call",toolCallId:o.id,title:o.name,kind:ae(o.name),rawInput:o.input,locations:de(o.name,o.input??{}),status:"pending"}}))},"onToolUseStart"),onToolResult:i(o=>{this.dispatchNotification("tool call update",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call_update",toolCallId:o.id,title:o.name,status:nt(o.content)?"failed":"completed",rawOutput:o.content}}))},"onToolResult"),onRepoIntelligenceTrace:i(o=>{this.events.emit({type:"repo_intelligence_trace",sessionId:e.sessionId,stage:o.stage,summary:o.summary,mode:o.capability?.mode,engine:o.capability?.engine,status:o.capability?.status,cacheHit:o.trace?.cacheHit,capsuleEstimatedTokens:o.trace?.capsuleEstimatedTokens})},"onRepoIntelligenceTrace"),onError:i(o=>{this.dispatchNotification("error text chunk",e.sessionId,this.sendTextChunk(e.sessionId,`
8
8
  [Error] ${o.message}
9
- `))},"onError"),beforeToolExecute:r(async(o,a,d)=>{let l=await this.evaluateToolPermission(e,o,a,d?.toolId);return l.allowed?!0:l.override??!1},"beforeToolExecute")}}}async evaluateToolPermission(e,t,s,i){if(this.events.emit({type:"tool_permission_evaluated",sessionId:e.sessionId,tool:t,toolId:i??null,permissionMode:e.permissionMode}),t==="bash"){let u=typeof s.command=="string"?s.command:"";if(W(u))return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??null,outcome:"auto_allowed_read_only_bash"}),{allowed:!0};if(await z(t,s,e.alwaysAllowTools,this.bashPrefixExtractor))return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??null,outcome:"auto_allowed_remembered"}),{allowed:!0}}if(e.permissionMode==="plan"){let u=Q(t,s,e.cwd);return u?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??null,outcome:"blocked_plan_mode"}),{allowed:!1,override:`${u} Do not try to modify files while planning. Finish the plan first, then hand off to a writable mode.`}):(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??null,outcome:"auto_allowed_plan_mode"}),{allowed:!0})}let o=b(t)&&typeof s.path=="string"&&B(g.resolve(e.cwd,s.path),e.cwd),a=U(e.permissionMode).has(t),d=e.permissionMode==="auto-in-project"&&(b(t)&&typeof s.path=="string"&&!$(s.path,e.cwd)||t==="bash"&&typeof s.command=="string"&&G(s.command,e.cwd).dangerous);return!o&&!a&&!d?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??null,outcome:"auto_allowed_policy"}),{allowed:!0}):await this.requestPermissionFromClient(e,t,s,i)}async requestPermissionFromClient(e,t,s,i){if(!this.connection)return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??null,outcome:"request_failed_disconnected"}),{allowed:!1,override:"[Cancelled] ACP client is disconnected, so the permission request could not be completed."};let o=[{optionId:"allow_once",kind:"allow_once",name:"Allow once"},{optionId:"allow_always",kind:"allow_always",name:"Always allow"},{optionId:"reject_once",kind:"reject_once",name:"Reject"}],a={toolCallId:i??Y(),title:t,kind:ee(t),rawInput:s,locations:te(t,s),status:"pending"},d;this.events.emit({type:"permission_requested",sessionId:e.sessionId,tool:t,toolId:a.toolCallId});try{d=await this.connection.requestPermission({sessionId:e.sessionId,toolCall:a,options:o})}catch(l){return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_failed_incomplete",error:l instanceof Error?l.message:String(l)}),{allowed:!1,override:"[Cancelled] ACP client did not complete the permission request. Operation failed closed."}}return d.outcome.outcome!=="selected"?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_dismissed"}),{allowed:!1,override:"[Cancelled] Operation cancelled by user"}):(d.outcome.optionId==="allow_always"&&t==="bash"&&(e.alwaysAllowTools=Array.from(new Set([...e.alwaysAllowTools,V(t,s,!1)])).filter(Boolean)),d.outcome.optionId==="reject_once"?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_rejected"}),{allowed:!1,override:"[Cancelled] Operation cancelled by user"}):(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_granted",remember:d.outcome.optionId==="allow_always"}),{allowed:!0}))}async sendTextChunk(e,t){await this.sendSessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:{type:"text",text:t}}})}async sendSessionUpdate(e){!this.connection||this.connection.signal.aborted||await this.connection.sessionUpdate(e)}dispatchNotification(e,t,s){s.catch(i=>{if(!this.connection||this.connection.signal.aborted)return;let o=i instanceof Error?i.message:String(i);this.events.emit({type:"notification_failed",sessionId:t,label:e,error:o})})}};async function Qe(n={}){let e=new w(n),t=ke.toWeb(_.stdin),s=Me.toWeb(_.stdout);e.attach(t,s);try{await e.waitForClose()}finally{await e.dispose()}}r(Qe,"runAcpServer");export{J as ACP_LOG_LEVELS,Vd as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,Bd as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,v as AcpEventEmitter,h as AcpLogger,pl as BASH_POLICY_SPEC,ld as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Hd as BREAKER_ERROR_THRESHOLD,Jd as BREAKER_WINDOW_MS,ve as BUILTIN_COMMANDS,ji as BUILTIN_WORKFLOWS,bs as CANCELLED_TOOL_RESULT_MESSAGE,Cs as CANCELLED_TOOL_RESULT_PREFIX,Od as CODING_AGENT_MARKER,nd as CODING_INVARIANTS,va as CODING_SUMMARY_PROMPT,ya as CODING_UPDATE_SUMMARY_PROMPT,Mr as CapabilityDeniedError,od as Client,fa as CombinedExtensionRuntime,Lr as ConstructionManifestError,_a as DEFAULT_CODING_AGENT_NAME,Ed as DEFAULT_DANGEROUS_PATTERNS,br as DEFAULT_HANDLER_TIMEOUT_MS,ni as DEFAULT_RESILIENCE_CONFIG,Id as DEFAULT_SAFE_PATTERNS,Wr as DEFAULT_SELF_MODIFY_BUDGET,al as DEFAULT_SPECULATIVE_WINDOW_MS,Ms as DEFAULT_TOOL_OUTPUT_MAX_BYTES,ks as DEFAULT_TOOL_OUTPUT_MAX_LINES,ki as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Mn as DefaultSummaryCompaction,Md as EMIT_VERDICT_TOOL_NAME,gn as ErrorCategory,R as FileSessionStorage,Qo as GENERATOR_AGENT_NAME,Nt as ImageResizeError,Pn as KODAX_API_MIN_INTERVAL,S as KODAX_CONFIG_FILE,L as KODAX_DEFAULT_PROVIDER,yn as KODAX_DEFAULT_TIMEOUT,oe as KODAX_DIR,pn as KODAX_FILE_MEDIA_TYPES,_n as KODAX_HARD_TIMEOUT,ln as KODAX_IMAGE_MEDIA_TYPES,In as KODAX_MAX_INCOMPLETE_RETRIES,wn as KODAX_MAX_RETRIES,vn as KODAX_MAX_TOKENS,ut as KODAX_PROVIDERS,pt as KODAX_PROVIDER_SNAPSHOTS,tt as KODAX_REASONING_MODE_SEQUENCE,An as KODAX_RETRY_BASE_DELAY,ie as KODAX_SESSIONS_DIR,nt as KODAX_STABLE_EFFORT_INTENTS,En as KODAX_STAGGER_DELAY,La as KODAX_TOOLS,Ws as KODAX_UNDERLYING_CAPABILITY_TOPICS,le as KODAX_VERSION,cn as KODAX_VIDEO_MEDIA_TYPES,w as KodaXAcpServer,lt as KodaXAnthropicCompatProvider,dt as KodaXBaseProvider,od as KodaXClient,He as KodaXError,ma as KodaXExtensionRuntime,$t as KodaXMediaError,ct as KodaXOpenAICompatProvider,Je as KodaXProviderError,Ye as KodaXRateLimitError,Vt as KodaXSessionError,Bt as KodaXTerminalError,zt as KodaXToolError,ds as LINEAGE_ENTRY_TYPES,Si as LSP_SERVERS,cs as LineageCompaction,ls as LineageExtension,xi as LspService,zs as MANUAL_REGISTRY,Us as MANUAL_TOPIC_IDS,Zt as MAX_DIMENSION,Nn as McpAuthRequiredError,is as McpCapabilityProvider,$n as McpExpiredSessionError,rs as McpManager,os as McpServerRuntime,on as PASTE_TMP_DIR_ENV,rn as PASTE_TMP_TTL_MS,Go as PLANNER_AGENT_NAME,Sn as PROMISE_PATTERN,ur as PROMPT_SECTION_REGISTRY,Td as PROTOCOL_EMITTER_TOOLS,di as ProviderRecoveryCoordinator,Ls as READ_DEFAULT_LIMIT,Os as READ_MAX_LINE_CHARS,Ts as READ_PREFLIGHT_SIZE_BYTES,la as REPO_EXPLORER_AGENT_NAME,ca as REPO_EXPLORER_TOOL_NAMES,Tn as Runner,No as SCOUT_AGENT_NAME,Il as SCOUT_THEN_AUTHOR_PROMPT_LINES,yr as SELF_KNOWLEDGE_ROUTING_RULE,pr as SYSTEM_PROMPT,nr as SYSTEM_WORKFLOW_LIMITS,ri as StableBoundaryTracker,en as TARGET_RAW_SIZE_BYTES,Yo as TASK_ENGINE_ROLE_AGENTS,id as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,ml as TRACING_ENV,Ho as WORKER_AGENT_NAME,bi as WORKFLOW_GENERATION_SYSTEM_PROMPT,Qr as _resetRuntimeForTesting,Yr as activate,ao as analyzeChangedScope,jr as appendAuditEntry,ys as appendSessionLineageLabel,xa as applyAccountingDelta,_s as applySessionCompaction,To as applyToolResultGuardrail,Ss as archiveOldIslands,Pl as authorWorkflowViaWorker,Qd as autoModeDenialShouldFallback,ol as bashSignalCollector,fl as bootstrapTracing,Ya as boundedRevise,el as breakerShouldFallback,Za as budgetCeiling,sr as buildApprovalSummary,ba as buildBlockedGoal,_r as buildCapabilityContextSections,qd as buildClassifierPrompt,ka as buildCompleteGoal,Sa as buildCreatedGoal,_i as buildFallbackRoutingDecision,md as buildGoalRuntimeBinding,ss as buildInitializeCapabilities,Xr as buildLlmReviewPrompt,Bs as buildManualToolDescription,P as buildMcpReverseCapabilities,Ra as buildPausedGoal,li as buildPromptMessageContent,hr as buildPromptSnapshot,mi as buildProviderCapabilitySnapshot,wi as buildProviderPolicyHintsForDecision,fi as buildProviderPolicyPromptNotes,ro as buildRepoIntelligenceContext,wo as buildRepoIntelligenceIndex,so as buildRepoOverview,Ca as buildResumedGoal,El as buildScoutThenAuthorPrompt,vr as buildSelfKnowledgeRoutingRule,Es as buildSessionTree,Ar as buildSystemPrompt,wr as buildSystemPromptSnapshot,Oi as buildWorkflowGenerationSkillContext,Ti as buildWorkflowGenerationUserPrompt,sl as checkAbsoluteDeny,ci as checkIncompleteToolCalls,Ii as checkPromiseSignal,or as clampWorkflowLimits,Xd as classify,Sd as classifyBashCommand,hn as classifyError,oi as classifyResilienceError,Dn as cleanupIncompleteToolCalls,Kt as clearRuntimeModelProviders,rl as collectAllSignals,X as combineExtensionRuntimes,Rd as computeInputSignature,Fd as computeRulesFingerprint,Gr as configureRuntime,Xo as convertCapabilityReadResult,Ko as convertProviderSearchResults,Ps as countActiveLineageMessages,Rn as countTokens,Cn as createAgent,$d as createAutoModeDenialTracker,cl as createAutoModeToolGuardrail,Pd as createBashClassifierConfig,j as createBashPrefixExtractor,ja as createBuiltinToolDefinition,Yd as createCircuitBreaker,Fi as createCodingWorkflowBackend,Tr as createCtxProxy,It as createCustomProvider,wa as createDefaultCodingAgent,xd as createDenialTracker,I as createExtensionRuntime,Jt as createFileArtifactFromPath,bn as createHandoff,Ht as createImageArtifactFromPath,kn as createInMemorySession,we as createInteractiveContext,yd as createKodaXTaskRunner,Un as createMcpCapabilityId,as as createMcpManager,Gn as createMcpTransport,mr as createPromptSection,Ai as createReasoningPlan,tr as createRunGraphWriter,Ha as createSessionControl,ms as createSessionLineage,rd as createToolResultTruncationGuardrail,Yt as createVideoArtifactFromPath,hl as createWorkflowLifecycleController,_l as createWorkflowPatternTemplateModule,dr as createWorkflowRunManager,wl as decideWorkflowInvocation,A as dedupeExtensionPathsByEntrypoint,jn as defaultMcpCacheDir,kr as defaultPolicy,Qi as deleteSavedWorkflow,Nr as disableSelfModify,Yn as discoverAuthorizationServerMetadata,K as discoverDefaultExtensions,Cr as discoverExtensionsInDirectory,Rr as discoverExtensionsInDirectoryDetailed,da as discoverMarkdownAgents,Zn as discoverOAuthEndpoints,Jn as discoverProtectedResourceMetadata,zi as discoverSavedWorkflows,ti as drainPendingSwaps,ot as effortToLegacyReasoningMode,Ld as emitVerdict,rr as emitWorkflowAgentDigest,fn as enqueueWithArtifacts,pa as ensureBuiltinRepoExplorerAgent,xn as estimateTokens,gi as evaluateProviderPolicy,q as excludeExtensionPathsByEntrypoint,Ir as exec,_e as executeCommand,Qa as executeTool,xs as extractArtifactLedger,ul as extractCommandPrefix,ui as extractComparableUserMessageText,qo as extractHtmlTitle,Hn as extractInsufficientScope,pi as extractPromptComparableText,Qn as extractResourceMetadataUrl,us as extractTitleFromMessages,il as fileSignalCollector,Do as finalizeRetrievalResult,oa as findByVersion,ws as findPreviousUserEntryId,Is as forkSessionLineage,$o as formatAgentsForPrompt,wd as formatParallelDispatchResult,qs as formatSize,ps as generateSessionId,Ki as generateWorkflow,Xi as generateWorkflowFromOptions,ha as getActiveExtensionRuntime,qn as getAgentConfigHome,Kn as getAgentConfigPath,Wa as getAllRegisteredTools,Xn as getAppDataDir,Ft as getAvailableProviderNames,Da as getBuiltinRegisteredToolDefinition,Fa as getBuiltinToolDefinition,Ui as getBuiltinWorkflow,kt as getCustomModelCapabilities,Pt as getCustomProvider,Rt as getCustomProviderList,bt as getCustomProviderModelDescriptors,Ct as getCustomProviderModels,xt as getCustomProviderNames,Sr as getDefaultExtensionDirectory,Ri as getDefaultLspService,lr as getDefaultWorkflowRunManager,kd as getDenialContext,ge as getGitRoot,So as getImpactEstimate,Vo as getKodaxGlobalDir,Bn as getMcpCachePaths,_t as getModelCapabilities,un as getModelInputCapabilities,Io as getModuleContext,Po as getProcessContext,mt as getProvider,gt as getProviderConfiguredCapabilityProfile,ft as getProviderConfiguredReasoningCapability,pe as getProviderList,ce as getProviderModel,yt as getProviderModelDescriptors,ht as getProviderModels,Ka as getRegisteredToolDefinition,Ao as getRepoIntelligenceIndex,oo as getRepoOverview,xo as getRepoRoutingSignals,$a as getRequiredToolParams,Tt as getRuntimeModelProvider,qt as getRuntimeModelProviderNames,fs as getSessionLineagePath,gs as getSessionMessagesFromLineage,Eo as getSymbolContext,Oa as getTool,qa as getToolDefinition,Xa as getToolRegistrations,Lo as getToolResultPolicy,de as getVersion,yl as getWorkflowPatternTemplate,Ia as goalTokenDelta,ei as hasPendingSwap,re as hydrateProcessEnvFromShell,Gt as inferImageMediaType,yi as inferTaskType,Qt as inferVideoMediaType,Hs as inspectEditFailure,_o as inspectRepoIntelligenceRuntime,St as isCustomProviderName,bd as isDeniedRecently,Xt as isKnownProvider,_d as isParallelDispatchDirective,ue as isProviderConfigured,vt as isProviderName,Ot as isRuntimeModelProviderName,ii as isSessionRecoveryCandidateError,Pr as isSupportedExtensionModulePath,D as isToolFileMutation,Ba as isToolMutation,Va as isToolNetworkRead,za as isToolPlanModeAllowed,Ma as isValidTokenBudget,Ei as languageIdForPath,ia as listAll,Ut as listAllModelCapabilities,ta as listArtifacts,wt as listBuiltinModelCapabilities,Ua as listBuiltinToolDefinitions,Wi as listBuiltinWorkflows,sa as listConstructed,Mt as listCustomProviderModelCapabilities,Ga as listToolDefinitions,Na as listTools,vl as listWorkflowPatternTemplates,Bo as loadAgentsFiles,ra as loadAgentsFromMarkdown,Wd as loadAutoRules,me as loadConfig,Ji as loadGeneratedWorkflowFromRun,Or as loadHandler,aa as loadMarkdownAgentScope,$i as loadSavedWorkflow,Bi as loadSavedWorkflowCapsule,ns as loadValidToken,Aa as makeDisabledGoalToolsContext,st as mapLegacyReasoningModeToEffortIntent,gd as mcpRootsFromWorkspace,Rs as mergeArtifactLedger,Wn as normalizeMcpCapabilityId,tn as normalizePastedImage,M as normalizeReasoningEffortValue,Vi as normalizeWorkflowModule,fr as orderPromptSections,Di as parallelInvestigation,Ud as parseAutoRules,Kd as parseClassifierOutput,ye as parseCommand,Qs as parseEditToolError,Fr as parseLlmReviewVerdict,zn as parseMcpCapabilityId,tl as parseModelSpec,it as parseReasoningEffortEnv,et as parseTimeoutSecEnvMs,qi as parseWorkflowGeneration,ts as performOAuthLogin,an as persistImageAsBlock,Ds as persistToolOutput,Zi as preflightWorkflowCapsule,x as prepareRuntimeConfig,Ro as prewarmRepoIntelligenceCaches,Pe as processSpecialSyntax,Ci as providerResilienceConfigFromTimeouts,dn as prunePasteTmpDir,he as rateLimitedCall,sn as readAndNormalizeClipboardImage,na as readArtifact,Ur as readAuditEntries,zr as readBudget,nn as readClipboardImage,$r as readDisableState,dl as readSpeculativeWindowFromEnv,Dd as readTrustState,vi as reasoningModeToDepth,ai as reconstructMessagesWithToolGuard,Gd as recordAutoModeAllow,Nd as recordAutoModeBlock,ad as recordBlockerAttempt,Zd as recordBreakerError,Cd as recordDenial,sd as registerCodingInvariants,ae as registerConfiguredCustomProviders,E as registerConfiguredMcpCapabilityProvider,Et as registerCustomProviders,Lt as registerModelProvider,es as registerOAuthClient,hd as registerOfficialSandboxExtension,Ln as registerPresetDispatcher,Ta as registerTool,Zr as rehydrateActiveArtifacts,Vr as remainingSelfModifyBudget,Gi as renameSavedWorkflow,lo as renderChangedScope,ho as renderImpactEstimate,mo as renderModuleContext,go as renderProcessContext,gr as renderPromptSections,io as renderRepoOverview,Fo as renderRetrievalResult,fo as renderSymbolContext,Hi as replaceSavedWorkflow,Pi as reportLspDiagnostics,dd as resetBlockerCounter,Br as resetBudget,C as resolveAcpLogLevel,nl as resolveClassifierModel,Zo as resolveConstructedAgent,xr as resolveExtensionEntrypoint,Vs as resolveKodaXManual,jt as resolveModelCapabilities,T as resolveProvider,Dt as resolveProviderModelDescriptors,rt as resolveReasoningEffort,at as resolveReasoningEffortForModelSwitch,hi as resolveReasoningMode,yo as resolveRepoIntelligenceMode,vo as resolveRepoIntelligenceRuntimeConfig,si as resolveResilienceConfig,hs as resolveSessionLineageTarget,ed as resolveToolCapability,Wt as resolveWireEffort,Mi as resolveWorkflowGenerationTimeoutMs,gl as resolveWorkflowIdentity,ea as revoke,As as rewindSessionLineage,ua as rollbackSelfModify,Qe as runAcpServer,qr as runAstRules,Ie as runInkInteractiveMode,Ee as runInteractiveMode,F as runKodaX,Dr as runLlmReview,fd as runManagedTask,vd as runOrchestration,ar as runWorkflowFromOptions,ir as runWorkflowModule,er as safeWorkflowArtifactName,fe as saveConfig,Ni as saveGeneratedWorkflow,Yi as saveGeneratedWorkflowFromRun,Vn as searchMcpCatalog,ga as setActiveExtensionRuntime,On as setAgentConfigHome,vs as setSessionLineageActiveEntry,Pa as shouldFlipBudgetLimited,O as shutdownDefaultLspService,ll as speculativeRace,Hr as stage,Ja as startKodaX,cr as startManagedWorkflow,zd as stripAssistantText,Oo as stripHtmlToText,Jr as testArtifact,Ze as timeoutSecToMs,no as toolAskUserQuestion,Ys as toolBash,uo as toolChangedDiff,po as toolChangedScope,Wo as toolCodeSearch,Gs as toolEdit,Zs as toolGlob,eo as toolGrep,Mo as toolImpactEstimate,Js as toolInsertAfterAnchor,Co as toolModuleContext,td as toolPermission,ko as toolProcessContext,js as toolRead,co as toolRepoOverview,zo as toolSemanticLookup,bo as toolSymbolContext,to as toolUndo,Uo as toolWebFetch,jo as toolWebSearch,Ns as toolWrite,Ae as touchContext,Ks as truncateHead,Fs as truncateLine,Xs as truncateTail,jd as trustProjectRules,Ea as turnWallTimeDelta,Fn as validateAndFixToolHistory,At as validateCustomProviderConfig,Li as validateGeneratedWorkflowSource,mn as validateInputArtifactsForModel,Ad as validateSubtaskIndependence,Kr as validateToolSchemaForProvider,ud as verifyGoalCompletion,Er as webhook,cd as withGoalBeforeNextTurn,pd as withGoalStopHook,$s as withManualToolBranding,Jo as workerAgent,Al as workflowStartOutcomeConsumesTurn};
9
+ `))},"onError"),beforeToolExecute:i(async(o,r,a)=>{let d=await this.evaluateToolPermission(e,o,r,a?.toolId);return d.allowed?!0:d.override??!1},"beforeToolExecute")}}}async evaluateToolPermission(e,t,s,o){if(this.events.emit({type:"tool_permission_evaluated",sessionId:e.sessionId,tool:t,toolId:o??null,permissionMode:e.permissionMode}),t==="bash"){let c=typeof s.command=="string"?s.command:"";if(H(c))return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_read_only_bash"}),{allowed:!0};if(await J(t,s,e.alwaysAllowTools,this.bashPrefixExtractor))return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_remembered"}),{allowed:!0}}if(e.permissionMode==="plan"){let c=ne(t,s,e.cwd);return c?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"blocked_plan_mode"}),{allowed:!1,override:`${c} Do not try to modify files while planning. Finish the plan first, then hand off to a writable mode.`}):(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_plan_mode"}),{allowed:!0})}let r=T(t)&&typeof s.path=="string"&&Y(g.resolve(e.cwd,s.path),e.cwd),a=V(e.permissionMode).has(t),d=e.permissionMode==="auto-in-project"&&(T(t)&&typeof s.path=="string"&&!Z(s.path,e.cwd)||t==="bash"&&typeof s.command=="string"&&te(s.command,e.cwd).dangerous);return!r&&!a&&!d?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_policy"}),{allowed:!0}):await this.requestPermissionFromClient(e,t,s,o)}async requestPermissionFromClient(e,t,s,o){if(!this.connection)return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"request_failed_disconnected"}),{allowed:!1,override:"[Cancelled] ACP client is disconnected, so the permission request could not be completed."};let r=[{optionId:"allow_once",kind:"allow_once",name:"Allow once"},{optionId:"allow_always",kind:"allow_always",name:"Always allow"},{optionId:"reject_once",kind:"reject_once",name:"Reject"}],a={toolCallId:o??ie(),title:t,kind:ae(t),rawInput:s,locations:de(t,s),status:"pending"},d;this.events.emit({type:"permission_requested",sessionId:e.sessionId,tool:t,toolId:a.toolCallId});try{d=await this.connection.requestPermission({sessionId:e.sessionId,toolCall:a,options:r})}catch(l){return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_failed_incomplete",error:l instanceof Error?l.message:String(l)}),{allowed:!1,override:"[Cancelled] ACP client did not complete the permission request. Operation failed closed."}}return d.outcome.outcome!=="selected"?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_dismissed"}),{allowed:!1,override:"[Cancelled] Operation cancelled by user"}):(d.outcome.optionId==="allow_always"&&t==="bash"&&(e.alwaysAllowTools=Array.from(new Set([...e.alwaysAllowTools,Q(t,s,!1)])).filter(Boolean)),d.outcome.optionId==="reject_once"?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_rejected"}),{allowed:!1,override:"[Cancelled] Operation cancelled by user"}):(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_granted",remember:d.outcome.optionId==="allow_always"}),{allowed:!0}))}async sendTextChunk(e,t){await this.sendSessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:{type:"text",text:t}}})}async sendSessionUpdate(e){!this.connection||this.connection.signal.aborted||await this.connection.sessionUpdate(e)}dispatchNotification(e,t,s){s.catch(o=>{if(!this.connection||this.connection.signal.aborted)return;let r=o instanceof Error?o.message:String(o);this.events.emit({type:"notification_failed",sessionId:t,label:e,error:r})})}};async function ot(n={}){let e=new P(n),t=De.toWeb(y.stdin),s=je.toWeb(y.stdout);e.attach(t,s);try{await e.waitForClose()}finally{await e.dispose()}}i(ot,"runAcpServer");export{oe as ACP_LOG_LEVELS,$a as ALWAYS_RESIDENT_TOOL_NAMES,El as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,xl as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,w as AcpEventEmitter,R as AcpLogger,Nl as BASH_POLICY_SPEC,Vd as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Ll as BREAKER_ERROR_THRESHOLD,Tl as BREAKER_WINDOW_MS,Ie as BUILTIN_COMMANDS,lr as BUILTIN_WORKFLOWS,Xs as CANCELLED_TOOL_RESULT_MESSAGE,qs as CANCELLED_TOOL_RESULT_PREFIX,hl as CODING_AGENT_MARKER,Fd as CODING_INVARIANTS,Va as CODING_SUMMARY_PROMPT,Ba as CODING_UPDATE_SUMMARY_PROMPT,ta as CapabilityDeniedError,jd as Client,Fa as CombinedExtensionRuntime,na as ConstructionManifestError,Qa as DEFAULT_CODING_AGENT_NAME,il as DEFAULT_DANGEROUS_PATTERNS,Zr as DEFAULT_HANDLER_TIMEOUT_MS,fi as DEFAULT_RESILIENCE_CONFIG,ol as DEFAULT_SAFE_PATTERNS,pa as DEFAULT_SELF_MODIFY_BUDGET,$l as DEFAULT_SPECULATIVE_WINDOW_MS,Ds as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Fs as DEFAULT_TOOL_OUTPUT_MAX_LINES,Wi as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Dn as DefaultSummaryCompaction,ml as EMIT_VERDICT_TOOL_NAME,Pn as ErrorCategory,tr as FINDING_VERIFICATION_OUTPUT_SCHEMA,C as FileSessionStorage,ai as GENERATOR_AGENT_NAME,tn as ImageResizeError,Ln as KODAX_API_MIN_INTERVAL,k as KODAX_CONFIG_FILE,X as KODAX_DEFAULT_PROVIDER,En as KODAX_DEFAULT_TIMEOUT,pe as KODAX_DIR,Rn as KODAX_FILE_MEDIA_TYPES,xn as KODAX_HARD_TIMEOUT,vn as KODAX_IMAGE_MEDIA_TYPES,Cn as KODAX_MAX_INCOMPLETE_RETRIES,kn as KODAX_MAX_RETRIES,In as KODAX_MAX_TOKENS,wt as KODAX_PROVIDERS,Rt as KODAX_PROVIDER_SNAPSHOTS,ct as KODAX_REASONING_MODE_SEQUENCE,bn as KODAX_RETRY_BASE_DELAY,me as KODAX_SESSIONS_DIR,ut as KODAX_STABLE_EFFORT_INTENTS,Mn as KODAX_STAGGER_DELAY,fd as KODAX_TOOLS,Js as KODAX_UNDERLYING_CAPABILITY_TOPICS,ve as KODAX_VERSION,yn as KODAX_VIDEO_MEDIA_TYPES,P as KodaXAcpServer,vt as KodaXAnthropicCompatProvider,ht as KodaXBaseProvider,jd as KodaXClient,it as KodaXError,Xa as KodaXExtensionRuntime,en as KodaXMediaError,yt as KodaXOpenAICompatProvider,rt as KodaXProviderError,at as KodaXRateLimitError,Yt as KodaXSessionError,Zt as KodaXTerminalError,Qt as KodaXToolError,hs as LINEAGE_ENTRY_TYPES,Xi as LSP_SERVERS,ys as LineageCompaction,vs as LineageExtension,Fi as LspService,Qs as MANUAL_REGISTRY,Hs as MANUAL_TOPIC_IDS,dn as MAX_DIMENSION,ts as McpAuthRequiredError,ms as McpCapabilityProvider,es as McpExpiredSessionError,fs as McpManager,ps as McpServerRuntime,mn as PASTE_TMP_DIR_ENV,fn as PASTE_TMP_TTL_MS,ri as PLANNER_AGENT_NAME,Tn as PROMISE_PATTERN,qr as PROMPT_SECTION_REGISTRY,gl as PROTOCOL_EMITTER_TOOLS,wi as ProviderRecoveryCoordinator,js as READ_DEFAULT_LIMIT,Ws as READ_MAX_LINE_CHARS,Us as READ_PREFLIGHT_SIZE_BYTES,Ta as REPO_EXPLORER_AGENT_NAME,Oa as REPO_EXPLORER_TOOL_NAMES,Un as Runner,er as SCOPED_REVIEW_OUTPUT_SCHEMA,ii as SCOUT_AGENT_NAME,oc as SCOUT_THEN_AUTHOR_PROMPT_LINES,Wr as SELF_KNOWLEDGE_ROUTING_RULE,Kr as SYSTEM_PROMPT,Er as SYSTEM_WORKFLOW_LIMITS,yi as StableBoundaryTracker,ln as TARGET_RAW_SIZE_BYTES,ci as TASK_ENGINE_ROLE_AGENTS,Ud as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,Hl as TRACING_ENV,di as WORKER_AGENT_NAME,Ui as WORKFLOW_GENERATION_SYSTEM_PROMPT,Ra as _resetRuntimeForTesting,Sa as activate,vo as analyzeChangedScope,ca as appendAuditEntry,Es as appendSessionLineageLabel,id as applyAccountingDelta,or as applyFindingVerification,xs as applySessionCompaction,Vo as applyToolResultGuardrail,Ts as archiveOldIslands,rc as authorWorkflowViaWorker,Ml as autoModeDenialShouldFallback,jl as bashSignalCollector,Jl as bootstrapTracing,Od as boundedRevise,ql as breakerShouldFallback,Kd as budgetCeiling,xr as buildApprovalSummary,dd as buildBlockedGoal,$r as buildCapabilityContextSections,vl as buildClassifierPrompt,ld as buildCompleteGoal,od as buildCreatedGoal,Mi as buildFallbackRoutingDecision,Hd as buildGoalRuntimeBinding,us as buildInitializeCapabilities,aa as buildLlmReviewPrompt,Zs as buildManualToolDescription,x as buildMcpReverseCapabilities,rd as buildPausedGoal,_i as buildPromptMessageContent,jr as buildPromptSnapshot,Ii as buildProviderCapabilitySnapshot,Li as buildProviderPolicyHintsForDecision,Ei as buildProviderPolicyPromptNotes,ho as buildRepoIntelligenceContext,bo as buildRepoIntelligenceIndex,mo as buildRepoOverview,ad as buildResumedGoal,ar as buildScopedReviewFinalPrompt,ir as buildScopedReviewPrimaryPrompt,rr as buildScopedReviewVerificationPrompt,ic as buildScoutThenAuthorPrompt,Ur as buildSelfKnowledgeRoutingRule,Ms as buildSessionTree,Vr as buildSystemPrompt,zr as buildSystemPromptSnapshot,Uo as buildToolResultBudget,Wo as buildToolResultBudgetFromUsage,ud as buildToolSearchIndex,Pr as buildWorkflowCostReport,Bi as buildWorkflowGenerationSkillContext,Vi as buildWorkflowGenerationUserPrompt,Dl as checkAbsoluteDeny,Si as checkIncompleteToolCalls,Oi as checkPromiseSignal,$o as clampToolResultPolicyToBudget,kr as clampWorkflowLimits,Rl as classify,al as classifyBashCommand,An as classifyError,po as classifyFileCategory,hi as classifyResilienceError,Nn as cleanupIncompleteToolCalls,zt as clearRuntimeModelProviders,Wl as collectAllSignals,W as combineExtensionRuntimes,ll as computeInputSignature,wl as computeRulesFingerprint,ya as configureRuntime,Ha as consumeCompactionCooldown,Ho as convertCapabilityReadResult,Go as convertProviderSearchResults,Ls as countActiveLineageMessages,Kn as countTokens,qn as createAgent,kl as createAutoModeDenialTracker,Bl as createAutoModeToolGuardrail,rl as createBashClassifierConfig,z as createBashPrefixExtractor,Sd as createBuiltinToolDefinition,Ol as createCircuitBreaker,Yi as createCodingWorkflowBackend,Na as createCompactionAntiThrashState,sa as createCtxProxy,Ct as createCustomProvider,Ya as createDefaultCodingAgent,dl as createDenialTracker,I as createExtensionRuntime,rn as createFileArtifactFromPath,Xn as createHandoff,on as createImageArtifactFromPath,Fn as createInMemorySession,ke as createInteractiveContext,M as createKodaXRuntime,el as createKodaXTaskRunner,Hn as createMcpCapabilityId,gs as createMcpManager,ns as createMcpTransport,Xr as createPromptSection,Ti as createReasoningPlan,Ir as createRunGraphWriter,Wa as createRuntimeContextBudgetSnapshot,Ld as createSessionControl,_s as createSessionLineage,Wd as createToolResultTruncationGuardrail,an as createVideoArtifactFromPath,Yl as createWorkflowLifecycleController,tc as createWorkflowPatternTemplateModule,Lr as createWorkflowRunManager,nc as decideWorkflowInvocation,A as dedupeExtensionPathsByEntrypoint,Gn as defaultMcpCacheDir,ea as defaultPolicy,yr as deleteSavedWorkflow,va as disableSelfModify,rs as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,Yr as discoverExtensionsInDirectory,Qr as discoverExtensionsInDirectoryDetailed,La as discoverMarkdownAgents,as as discoverOAuthEndpoints,is as discoverProtectedResourceMetadata,pr as discoverSavedWorkflows,mi as drainPendingSwaps,mt as effortToLegacyReasoningMode,fl as emitVerdict,Cr as emitWorkflowAgentDigest,Sn as enqueueWithArtifacts,Ka as ensureBuiltinRepoExplorerAgent,On as estimateTokens,Ua as estimateToolSchemaTokens,xi as evaluateProviderPolicy,j as excludeExtensionPathsByEntrypoint,Br as exec,xe as executeCommand,Md as executeTool,Os as extractArtifactLedger,Gl as extractCommandPrefix,Ai as extractComparableUserMessageText,No as extractHtmlTitle,os as extractInsufficientScope,Pi as extractPromptComparableText,ss as extractResourceMetadataUrl,ws as extractTitleFromMessages,Ul as fileSignalCollector,Qo as finalizeRetrievalResult,ka as findByVersion,ks as findPreviousUserEntryId,Cs as forkSessionLineage,oi as formatAgentsForPrompt,nl as formatParallelDispatchResult,$s as formatSize,Rs as generateSessionId,Gi as generateWorkflow,Hi as generateWorkflowFromOptions,ja as getActiveExtensionRuntime,$n as getAgentConfigHome,zn as getAgentConfigPath,Ad as getAllRegisteredTools,Vn as getAppDataDir,Bt as getAvailableProviderNames,_d as getBuiltinRegisteredToolDefinition,wd as getBuiltinToolDefinition,cr as getBuiltinWorkflow,Ft as getCustomModelCapabilities,Lt as getCustomProvider,Kt as getCustomProviderList,Xt as getCustomProviderModelDescriptors,qt as getCustomProviderModels,Ot as getCustomProviderNames,Hr as getDefaultExtensionDirectory,Di as getDefaultLspService,Tr as getDefaultWorkflowRunManager,pl as getDenialContext,Pe as getGitRoot,Oo as getImpactEstimate,ni as getKodaxGlobalDir,Zn as getMcpCachePaths,xt as getModelCapabilities,wn as getModelInputCapabilities,Mo as getModuleContext,To as getProcessContext,_t as getProvider,Pt as getProviderConfiguredCapabilityProfile,St as getProviderConfiguredReasoningCapability,Re as getProviderList,ye as getProviderModel,Et as getProviderModelDescriptors,At as getProviderModels,yd as getRegisteredToolDefinition,Co as getRepoIntelligenceIndex,fo as getRepoOverview,Ko as getRepoRoutingSignals,kd as getRequiredToolParams,Ut as getRuntimeModelProvider,$t as getRuntimeModelProviderNames,Ss as getSessionLineagePath,Ps as getSessionMessagesFromLineage,Lo as getSymbolContext,hd as getTool,vd as getToolDefinition,Rd as getToolRegistrations,zo as getToolResultPolicy,he as getVersion,ec as getWorkflowPatternTemplate,td as goalTokenDelta,pi as hasPendingSwap,fe as hydrateProcessEnvFromShell,nn as inferImageMediaType,Ci as inferTaskType,sn as inferVideoMediaType,oo as inspectEditFailure,ko as inspectRepoIntelligenceRuntime,Tt as isCustomProviderName,ul as isDeniedRecently,Vt as isKnownProvider,tl as isParallelDispatchDirective,we as isProviderConfigured,It as isProviderName,Wt as isRuntimeModelProviderName,vi as isSessionRecoveryCandidateError,Gr as isSupportedExtensionModulePath,$ as isToolFileMutation,xd as isToolMutation,Ed as isToolNetworkRead,Id as isToolPlanModeAllowed,cd as isValidTokenBudget,Ki as languageIdForPath,ba as listAll,Ht as listAllModelCapabilities,Ia as listArtifacts,kt as listBuiltinModelCapabilities,Pd as listBuiltinToolDefinitions,ur as listBuiltinWorkflows,Ji as listCodingDispatchableAgents,xa as listConstructed,Dt as listCustomProviderModelCapabilities,Cd as listToolDefinitions,bd as listTools,Zl as listWorkflowPatternTemplates,si as loadAgentsFiles,Ca as loadAgentsFromMarkdown,Al as loadAutoRules,_e as loadConfig,wr as loadGeneratedWorkflowFromRun,oa as loadHandler,Ma as loadMarkdownAgentScope,gr as loadSavedWorkflow,fr as loadSavedWorkflowCapsule,cs as loadValidToken,ed as makeDisabledGoalToolsContext,pt as mapLegacyReasoningModeToEffortIntent,Qd as mcpRootsFromWorkspace,Ks as mergeArtifactLedger,sr as mergeScopedReviewResults,Jn as normalizeMcpCapabilityId,cn as normalizePastedImage,K as normalizeReasoningEffortValue,nr as normalizeScopedReviewResult,mr as normalizeWorkflowModule,Fr as orderPromptSections,Zi as parallelInvestigation,Pl as parseAutoRules,yl as parseClassifierOutput,Ee as parseCommand,so as parseEditToolError,da as parseLlmReviewVerdict,Qn as parseMcpCapabilityId,Xl as parseModelSpec,q as parseReasoningEffortEnv,lt as parseTimeoutSecEnvMs,md as parseToolSearchQuery,Ni as parseWorkflowGeneration,ls as performOAuthLogin,gn as persistImageAsBlock,Ns as persistToolOutput,za as planToolExposure,Sr as preflightWorkflowCapsule,b as prepareRuntimeConfig,qo as prewarmRepoIntelligenceCaches,Le as processSpecialSyntax,ji as providerResilienceConfigFromTimeouts,hn as prunePasteTmpDir,Ae as rateLimitedCall,pn as readAndNormalizeClipboardImage,Ea as readArtifact,ua as readAuditEntries,ma as readBudget,un as readClipboardImage,ha as readDisableState,zl as readSpeculativeWindowFromEnv,_l as readTrustState,bi as reasoningModeToDepth,Ri as reconstructMessagesWithToolGuard,Cl as recordAutoModeAllow,bl as recordAutoModeBlock,$d as recordBlockerAttempt,Kl as recordBreakerError,Ja as recordCompactionSavings,cl as recordDenial,Dd as registerCodingInvariants,ge as registerConfiguredCustomProviders,E as registerConfiguredMcpCapabilityProvider,Mt as registerCustomProviders,jt as registerModelProvider,ds as registerOAuthClient,Yd as registerOfficialSandboxExtension,jn as registerPresetDispatcher,gd as registerTool,Pa as rehydrateActiveArtifacts,fa as remainingSelfModifyBudget,vr as renameSavedWorkflow,yo as renderChangedScope,Io as renderImpactEstimate,So as renderModuleContext,Ao as renderProcessContext,Dr as renderPromptSections,go as renderRepoOverview,Jo as renderRetrievalResult,Po as renderSymbolContext,Rr as replaceSavedWorkflow,qi as reportLspDiagnostics,zd as resetBlockerCounter,ga as resetBudget,L as resolveAcpLogLevel,Fl as resolveClassifierModel,Qi as resolveCodingDispatchableAgent,ui as resolveConstructedAgent,Jr as resolveExtensionEntrypoint,Ys as resolveKodaXManual,Gt as resolveModelCapabilities,F as resolveProvider,Nt as resolveProviderModelDescriptors,ft as resolveReasoningEffort,gt as resolveReasoningEffortForModelSwitch,ki as resolveReasoningMode,xo as resolveRepoIntelligenceMode,Eo as resolveRepoIntelligenceRuntimeConfig,gi as resolveResilienceConfig,As as resolveSessionLineageTarget,qd as resolveToolCapability,Jt as resolveWireEffort,$i as resolveWorkflowGenerationTimeoutMs,Ql as resolveWorkflowIdentity,Aa as revoke,bs as rewindSessionLineage,qa as rollbackSelfModify,ot as runAcpServer,ia as runAstRules,Ce as runInkInteractiveMode,Me as runInteractiveMode,Za as runKodaX,la as runLlmReview,Jd as runManagedTask,Zd as runOrchestration,Mr as runWorkflowFromOptions,br as runWorkflowModule,Ar as safeWorkflowArtifactName,Se as saveConfig,hr as saveGeneratedWorkflow,_r as saveGeneratedWorkflowFromRun,dr as scopedReview,Yn as searchMcpCatalog,pd as searchToolIndex,Da as setActiveExtensionRuntime,Wn as setAgentConfigHome,Is as setSessionLineageActiveEntry,sd as shouldFlipBudgetLimited,Ga as shouldSkipLlmCompaction,D as shutdownDefaultLspService,Vl as speculativeRace,wa as stage,Td as startKodaX,Or as startManagedWorkflow,Il as stripAssistantText,Bo as stripHtmlToText,_a as testArtifact,dt as timeoutSecToMs,uo as toolAskUserQuestion,ro as toolBash,_o as toolChangedDiff,wo as toolChangedScope,ei as toolCodeSearch,no as toolEdit,ao as toolGlob,lo as toolGrep,jo as toolImpactEstimate,io as toolInsertAfterAnchor,Xo as toolModuleContext,Xd as toolPermission,Do as toolProcessContext,Gs as toolRead,Ro as toolRepoOverview,ti as toolSemanticLookup,Fo as toolSymbolContext,co as toolUndo,Zo as toolWebFetch,Yo as toolWebSearch,to as toolWrite,be as touchContext,zs as truncateHead,Bs as truncateLine,Vs as truncateTail,Sl as trustProjectRules,nd as turnWallTimeDelta,Bn as validateAndFixToolHistory,bt as validateCustomProviderConfig,zi as validateGeneratedWorkflowSource,_n as validateInputArtifactsForModel,sl as validateSubtaskIndependence,ra as validateToolSchemaForProvider,Gd as verifyGoalCompletion,Nr as webhook,Bd as withGoalBeforeNextTurn,Nd as withGoalStopHook,eo as withManualToolBranding,li as workerAgent,sc as workflowStartOutcomeConsumesTurn,ac as writeReviewPackets};