@kodax-ai/kodax 0.7.87 → 0.7.89

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 (100) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +29 -12
  3. package/README_CN.md +7 -3
  4. package/dist/chunks/agent-AKCXT573.js +2 -0
  5. package/dist/chunks/argument-completer-BJGY57H2.js +2 -0
  6. package/dist/chunks/{chunk-U44C5STU.js → chunk-4Y6OSDZE.js} +1 -1
  7. package/dist/chunks/{chunk-XH7UM4GO.js → chunk-5247AKGN.js} +3 -3
  8. package/dist/chunks/{chunk-DB4O33RR.js → chunk-5UBP47VJ.js} +223 -220
  9. package/dist/chunks/{chunk-ITP7J5HX.js → chunk-72H6JNPN.js} +142 -142
  10. package/dist/chunks/chunk-A63MGLH6.js +415 -0
  11. package/dist/chunks/{chunk-ZQNOEKOB.js → chunk-BOMSVUJS.js} +2 -2
  12. package/dist/chunks/{chunk-4OLXWSCQ.js → chunk-CQHLFQSU.js} +254 -254
  13. package/dist/chunks/chunk-GL6GVYF4.js +320 -0
  14. package/dist/chunks/{chunk-XKLVC7F6.js → chunk-IFD6TUQU.js} +1 -1
  15. package/dist/chunks/{chunk-JS4RSF4B.js → chunk-O2ZV775M.js} +1 -1
  16. package/dist/chunks/chunk-PROPMIT4.js +2 -0
  17. package/dist/chunks/{chunk-YB7YVAPL.js → chunk-QQBFQCMF.js} +4 -4
  18. package/dist/chunks/{chunk-BCYJIACJ.js → chunk-S74F7MFN.js} +124 -124
  19. package/dist/chunks/{chunk-ASFCAPIG.js → chunk-SOIIBADK.js} +2 -2
  20. package/dist/chunks/{chunk-SKELDH3G.js → chunk-UNEC2WXJ.js} +17 -17
  21. package/dist/chunks/{chunk-7XTUXMAI.js → chunk-W2LRTZBJ.js} +37 -34
  22. package/dist/chunks/{chunk-GRJ7NKWP.js → chunk-W5RPVR3O.js} +1 -1
  23. package/dist/chunks/client-ZXBSEDS4.js +2 -0
  24. package/dist/chunks/compaction-config-HVHPJ6CS.js +2 -0
  25. package/dist/chunks/{construction-bootstrap-YTFOT4M2.js → construction-bootstrap-WF6KQ7XV.js} +1 -1
  26. package/dist/chunks/dist-BCT3UNMA.js +2 -0
  27. package/dist/chunks/{dist-X55TWIK4.js → dist-WILA35IA.js} +1 -1
  28. package/dist/chunks/host-V6ENYZAQ.js +2 -0
  29. package/dist/chunks/run-manager-ZOV7EKTZ.js +2 -0
  30. package/dist/chunks/utils-BEWYGEMB.js +2 -0
  31. package/dist/index.d.ts +26 -26
  32. package/dist/index.js +5 -5
  33. package/dist/kodax_bootstrap.js +1 -1
  34. package/dist/kodax_cli.js +1564 -1555
  35. package/dist/kodax_resume.js +35 -826
  36. package/dist/provider-capabilities.json +1156 -1118
  37. package/dist/runtime-worker.js +1346 -1339
  38. package/dist/sandbox-workspace-session.js +261 -261
  39. package/dist/sdk-a2a.d.ts +20 -18
  40. package/dist/sdk-a2a.js +9 -9
  41. package/dist/sdk-agent.d.ts +23 -22
  42. package/dist/sdk-agent.js +1 -1
  43. package/dist/sdk-coding.d.ts +65 -38
  44. package/dist/sdk-coding.js +1 -1
  45. package/dist/sdk-experimental-memory.d.ts +6 -6
  46. package/dist/sdk-experimental-memory.js +1 -1
  47. package/dist/sdk-llm.d.ts +8 -8
  48. package/dist/sdk-llm.js +1 -1
  49. package/dist/sdk-mcp.d.ts +4 -4
  50. package/dist/sdk-mcp.js +1 -1
  51. package/dist/sdk-media.d.ts +1 -1
  52. package/dist/sdk-media.js +1 -1
  53. package/dist/sdk-repl.d.ts +21 -21
  54. package/dist/sdk-repl.js +1 -1
  55. package/dist/sdk-runtime.d.ts +28 -21
  56. package/dist/sdk-runtime.js +1 -1
  57. package/dist/sdk-sandbox.js +1 -1
  58. package/dist/sdk-session.d.ts +10 -10
  59. package/dist/sdk-session.js +1 -1
  60. package/dist/sdk-skills.d.ts +2 -2
  61. package/dist/sdk-skills.js +1 -1
  62. package/dist/semantic-worker.js +59 -59
  63. package/dist/types-chunks/{base.d-vopO1rml.d.ts → base.d-JjF6aKsh.d.ts} +1 -1
  64. package/dist/types-chunks/{bash-prefix-extractor.d-B36OQwNA.d.ts → bash-prefix-extractor.d-BLlhCRI-.d.ts} +33 -9
  65. package/dist/types-chunks/{capability-learning.d-CE1tm29C.d.ts → capability-learning.d-BAxy0mfx.d.ts} +1 -1
  66. package/dist/types-chunks/{capsule.d-DEncDNzD.d.ts → capsule.d-Cw4UlPTC.d.ts} +5 -5
  67. package/dist/types-chunks/{config.d-CJy1WENT.d.ts → config.d-CTPaqsD-.d.ts} +1 -1
  68. package/dist/types-chunks/{controller.d-Dif9pbC9.d.ts → controller.d-1tydJm7c.d.ts} +11 -4
  69. package/dist/types-chunks/{controller.d-C1YdP_pQ.d.ts → controller.d-BvwWz6yP.d.ts} +1 -1
  70. package/dist/types-chunks/{cost-tracker.d-BeaenODW.d.ts → cost-tracker.d-MTAt6N7b.d.ts} +1 -1
  71. package/dist/types-chunks/{guardrail.d-DhpnJv4Y.d.ts → guardrail.d-DqWHIgt6.d.ts} +15 -9
  72. package/dist/types-chunks/{history-retrieval.d-YJQpQt7h.d.ts → history-retrieval.d-ia-4iJpw.d.ts} +2 -2
  73. package/dist/types-chunks/{integration-config.d-BNowXE8k.d.ts → integration-config.d-BHoiz-WZ.d.ts} +3 -3
  74. package/dist/types-chunks/{manager.d-B67TmPO1.d.ts → manager.d-D_1fqveb.d.ts} +3 -3
  75. package/dist/types-chunks/{oauth-login.d-6i-vidxv.d.ts → oauth-login.d-Cz9OpSmz.d.ts} +3 -3
  76. package/dist/types-chunks/{public-api.d-D4q3WxKq.d.ts → public-api.d-CMZa4JPa.d.ts} +12 -7
  77. package/dist/types-chunks/{repl.d-D4ye29Kk.d.ts → repl.d-Byu2osV-.d.ts} +7 -7
  78. package/dist/types-chunks/{resolver.d-RyPo99tB.d.ts → resolver.d-bKttRr1V.d.ts} +4 -4
  79. package/dist/types-chunks/{review-inbox.d-C1_xZ-yg.d.ts → review-inbox.d-D3T-RxRs.d.ts} +3 -3
  80. package/dist/types-chunks/{run-manager.d-D30IvnwV.d.ts → run-manager.d-D0aKe12e.d.ts} +2 -2
  81. package/dist/types-chunks/{sdk-session-DIU6sHa2.d.ts → sdk-session-BEM7yvJB.d.ts} +3 -3
  82. package/dist/types-chunks/{shell-command-sets.d-rIHkZ_VR.d.ts → shell-command-sets.d-_SHjU3KP.d.ts} +2 -2
  83. package/dist/types-chunks/{side-query.d-iH0P9ASy.d.ts → side-query.d-DNes6rHA.d.ts} +3 -3
  84. package/dist/types-chunks/{types-PHjfwebT.d.ts → types-D8OiIEwA.d.ts} +1 -1
  85. package/dist/types-chunks/{types.d-BSPlmJqf.d.ts → types.d-BEMcUOng.d.ts} +1 -1
  86. package/dist/types-chunks/{types.d-COhAF5Xo.d.ts → types.d-B_IFJlti.d.ts} +3 -3
  87. package/dist/types-chunks/{types.d-Bz5Y-PD9.d.ts → types.d-BqK7eZ5u.d.ts} +6 -6
  88. package/dist/types-chunks/{types.d-CK9A9rpP.d.ts → types.d-Cv09EdJR.d.ts} +1 -1
  89. package/dist/types-chunks/{types.d-sW-OqiFt.d.ts → types.d-DeokRBs7.d.ts} +34 -3
  90. package/dist/types-chunks/{utils.d-B65ozSTV.d.ts → utils.d-0h1NTEsX.d.ts} +8 -8
  91. package/package.json +2 -2
  92. package/dist/chunks/agent-Z64QF7KG.js +0 -2
  93. package/dist/chunks/argument-completer-HIJBXRUT.js +0 -2
  94. package/dist/chunks/chunk-3PGNESV3.js +0 -415
  95. package/dist/chunks/chunk-UWKM3HNY.js +0 -319
  96. package/dist/chunks/compaction-config-E4TFBCDJ.js +0 -2
  97. package/dist/chunks/dist-M3JV4PNA.js +0 -2
  98. package/dist/chunks/host-SJHHJBPB.js +0 -2
  99. package/dist/chunks/run-manager-T5QGWNON.js +0 -2
  100. package/dist/chunks/utils-2FHVIO6X.js +0 -2
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{a as We,e as Ve,f as $e,l as ze,o as Be,p as Ge,q as Ne,r as He,s as Je,v as M,w as Qe}from"./chunks/chunk-7XTUXMAI.js";import"./chunks/chunk-5BNQXXGY.js";import{a as Ke,b as Xe,c as De,d as qe,e as Fe,f as Ue,g as je}from"./chunks/chunk-YB7YVAPL.js";import{Ab as Te,Bb as Le,Rb as C,Ua as Ce,Va as Me,hb as Oe}from"./chunks/chunk-UWKM3HNY.js";import{A as Ee,B as Ae,Ba as be,Ca as ke,k as Z,za as xe}from"./chunks/chunk-4OLXWSCQ.js";import{$ as te,O as ye,P as Se,Q as Pe,X as k,Y as we,_ as ee,aa as ne,ca as Ie,ga as _e,q as pe,r as me,s as b,u as fe,w as ge,x as he,y as ve,z as Re}from"./chunks/chunk-ASFCAPIG.js";import"./chunks/chunk-U44C5STU.js";import{$ as qu,A as x,B as pu,C as mu,D as fu,E as gu,F as hu,G as vu,H as Ru,I as yu,J as Su,K as Pu,L as wu,M as Iu,N as _u,O as Eu,P as Au,Q as xu,R as bu,S as ku,T as Cu,U as Mu,V as Ou,W as Tu,X as Lu,Y as Ku,Z as Xu,_ as Du,a as Ii,aa as Y,b as _i,ba as Fu,c as Ei,ca as Uu,d as $c,da as ju,e as zc,ea as Wu,f as Bc,fa as Vu,g as Gc,ga as $u,h as Nc,ha as zu,i as Hc,ia as Bu,j as Jc,ja as Gu,k as Qc,ka as Nu,l as Yc,la as Hu,m as Zc,n as eu,o as tu,p as nu,q as ou,r as iu,s as su,t as ru,u as au,v as du,w as lu,x as A,y as cu,z as uu}from"./chunks/chunk-BCYJIACJ.js";import{$ as md,$b as yc,A as Ha,Ab as Jl,B as Ja,Bb as Ql,C as Qa,Cb as Yl,D as Ya,Db as N,Eb as Zl,Fb as ec,Gb as H,Hb as tc,I as Za,Ib as J,J as ed,Jb as Q,Kb as nc,Lb as oc,Mb as ic,N as td,Nb as sc,O as nd,Ob as rc,P as od,Pb as ac,Q as id,Qb as dc,R as sd,Rb as lc,S as rd,Sb as cc,T as ad,Tb as uc,U as dd,Ua as xl,Ub as pc,Va as bl,Vb as mc,Wb as fc,X as ld,Xb as gc,Y as cd,Yb as hc,Z as ud,Zb as vc,_ as pd,_b as Rc,aa as fd,ac as Sc,b as Yo,ba as gd,bb as kl,bc as Pc,c as Zo,cb as Cl,cc as wc,d as ei,db as Ml,dc as Ic,e as ti,eb as Ol,ec as _c,f as ni,fb as Tl,fc as Ec,g as oi,ga as hd,gb as Ll,gc as Ac,ha as vd,hb as Kl,hc as xc,i as ii,ia as Rd,ib as Xl,ic as bc,j as si,ja as yd,jb as Dl,jc as kc,ka as Sd,kb as ql,kc as Cc,l as ri,lb as Fl,lc as Mc,m as ai,mb as Ul,mc as Oc,n as di,nb as jl,nc as Tc,o as Ri,oa as Pd,ob as Wl,oc as Lc,p as Ai,pa as wd,pb as Vl,pc as Kc,q as xi,qa as Id,qb as $l,qc as Xc,r as Da,ra as _d,rb as zl,rc as Dc,s as qa,sb as $,sc as qc,t as Fa,tb as Bl,tc as Fc,u as Ua,ua as Ed,ub as Gl,uc as Uc,v as ja,vb as Nl,vc as jc,w as Wa,wb as z,wc as Wc,x as Ba,xb as B,y as Ga,yb as G,yc as Vc,z as Na,zb as Hl}from"./chunks/chunk-3PGNESV3.js";import{a as Kd,b as Xd,c as Dd,d as qd,e as Fd,f as Ud,g as jd,h as Wd,i as Vd,j as Al}from"./chunks/chunk-XKLVC7F6.js";import{a as Ld}from"./chunks/chunk-JS4RSF4B.js";import{A as hl,B as vl,C as Rl,D as yl,E as Sl,F as Pl,G as wl,H as Il,I as _l,J as El,a as $d,b as zd,c as Bd,d as Gd,e as Nd,f as Hd,g as Jd,h as Qd,i as Yd,j as Zd,k as el,l as tl,m as nl,n as ol,o as il,p as sl,q as rl,r as al,s as dl,t as ll,u as cl,v as ul,w as pl,x as ml,y as fl,z as gl}from"./chunks/chunk-ZQNOEKOB.js";import{$ as Vi,$a as Is,$c as da,$d as xd,Aa as es,Ab as Hs,Ac as Kr,Ad as xa,Bb as Js,Bc as Xr,Bd as ba,Ca as ts,Cb as Qs,Cc as Dr,Da as ns,Dc as qr,Dd as ka,E as Ci,Ea as os,Ec as Fr,Ed as Ca,F as Mi,Fa as is,Fc as Ur,Fd as Ma,G as Oi,Ga as ss,Gb as Ys,Gc as jr,Gd as Oa,H as Ti,Hb as Zs,Hc as Wr,Hd as Ta,I as Li,Ia as rs,Ib as er,Ic as Vr,Id as La,J as Ki,Ja as as,Jb as tr,Jc as $r,Jd as Ka,K as Xi,Ka as ds,Kc as zr,Kd as Xa,L as Di,La as ls,Lc as Br,Ld as Va,M as qi,Ma as cs,Mc as Gr,Md as $a,N as Fi,Na as us,Nb as nr,Nc as Nr,Nd as za,O as Ui,Oa as ps,Ob as or,Oc as Hr,P as ji,Pa as ms,Pb as ir,Pc as Jr,Qa as fs,Qb as sr,Qc as Qr,Ra as gs,Rb as rr,Rc as Yr,Sa as hs,Sb as ar,Sc as Zr,Ta as vs,Tb as dr,Tc as ea,Ua as Rs,Ub as lr,Uc as ta,Va as ys,Vb as cr,Vc as na,Wa as Ss,Wb as ur,Wc as oa,Xa as Ps,Xb as pr,Xc as ia,Ya as ws,Yc as sa,Zc as ra,_ as Wi,_b as mr,_c as aa,_d as Ad,aa as $i,ab as _s,ad as la,ae as bd,ba as zi,bb as Es,bd as j,be as kd,c as li,ca as Bi,cb as As,cc as fr,cd as E,ce as Cd,d as ci,da as Gi,db as xs,dc as gr,dd as ca,de as V,e as ui,eb as bs,ec as hr,ed as ua,f as pi,fb as ks,fc as vr,g as mi,gc as Rr,h as fi,hb as Cs,hc as yr,i as gi,ib as Ms,ic as Sr,j as hi,jb as Os,jc as Pr,k as vi,kb as Ts,kc as _,kd as pa,lb as Ls,lc as F,ld as ma,le as Md,m as yi,mb as Ks,mc as wr,md as fa,me as Od,n as Si,nb as Xs,nc as Ir,nd as ga,ne as Td,ob as Ds,oc as U,od as ha,p as Pi,pa as Ni,pb as qs,pc as _r,pd as va,qa as Hi,qb as Fs,qc as Er,qd as Ra,r as wi,ra as Ji,rb as Us,rc as Ar,rd as ya,sa as Qi,sb as js,sc as xr,sd as Sa,ta as Yi,tb as Ws,tc as br,td as Pa,ub as Vs,uc as kr,ud as wa,vb as $s,vc as Cr,vd as Ia,wb as zs,wc as Mr,wd as W,xb as Bs,xc as Or,xd as _a,y as bi,ya as Zi,yb as Gs,yc as Tr,yd as Ea,z as ki,zb as Ns,zc as Lr,zd as Aa}from"./chunks/chunk-DB4O33RR.js";import"./chunks/chunk-GRJ7NKWP.js";import{Aa as Jt,Ba as Qt,C as K,Ca as Yt,D as Mt,Da as Zt,E as Ot,Ea as en,F as X,Fa as tn,G as Tt,Ga as nn,H as Lt,Ha as on,Ia as sn,Ja as rn,Ka as an,La as dn,Ma as ln,Oa as cn,Pa as q,Qa as un,Ra as pn,Ta as mn,Ua as fn,V as Kt,Va as gn,Ya as hn,d as _t,da as Xt,e as Et,ea as Dt,f as At,ka as qt,la as Ft,m as xt,ma as D,n as bt,na as Ut,qa as jt,ra as Wt,ta as Vt,ua as $t,v as kt,va as zt,w as Ct,wa as Bt,xa as Gt,ya as Nt,za as Ht}from"./chunks/chunk-SKELDH3G.js";import{Aa as Tn,Ae as yo,Af as jo,Be as So,Bf as Wo,Ce as Po,Cf as Vo,De as wo,Ee as Io,Fe as _o,Ff as $o,Ge as Eo,Gf as zo,Ha as Ln,He as Ao,Hf as Bo,Ia as Kn,Ie as xo,If as Go,Ja as Xn,Jb as ao,Je as bo,Jf as No,Kb as lo,Ke as ko,Kf as Ho,Le as Co,Ma as Dn,Me as Mo,Oe as Oo,Pe as To,Qe as Lo,Qf as Jo,Rf as Qo,Te as Ko,Ue as Xo,a as vn,b as Rn,c as yn,d as Sn,e as Pn,f as wn,h as In,i as _n,j as En,k as An,l as xn,qe as co,re as uo,se as po,te as mo,ue as fo,v as bn,ve as go,w as kn,we as ho,wf as Do,x as Cn,xa as On,xe as vo,xf as qo,y as Mn,yf as Fo,ze as Ro,zf as Uo}from"./chunks/chunk-ITP7J5HX.js";import{A as Hn,B as Jn,C as Qn,D as Yn,E as Zn,F as eo,G as to,H as no,I as oo,J as io,K as so,L as ro,j as qn,q as Fn,r as Un,s as jn,t as Wn,u as Vn,v as $n,w as zn,x as Bn,y as Gn,z as Nn}from"./chunks/chunk-XH7UM4GO.js";import{a as s}from"./chunks/chunk-ONUPGMER.js";import Ye from"node:process";var ie=["off","error","info","debug"],oe={off:0,error:1,info:2,debug:3};function O(n,e="info"){if(!n)return e;let t=n.trim().toLowerCase();return ie.includes(t)?t:e}s(O,"resolveAcpLogLevel");var y=class{static{s(this,"AcpLogger")}level;sink;constructor(e={}){this.level=e.level??"info",this.sink=e.sink??(t=>{Ye.stderr.write(`${t}
3
- `)})}handleEvent(e){let t=Ze(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,o){if(oe[this.level]<oe[e])return;let i=new Date().toISOString(),r=o?tt(o):"",a=r?` ${r}`:"";this.sink(`[ACP][${e.toUpperCase()}][${i}] ${t}${a}`)}};function Ze(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 et(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}}s(Ze,"mapEventToLogEntry");function u(n){let{type:e,...t}=n;return t}s(u,"toLogFields");function et(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}}}}s(et,"mapPermissionOutcomeToLogEntry");function tt(n){return Object.entries(n).flatMap(([e,t])=>t===void 0?[]:`${e}=${nt(t)}`).join(" ")}s(tt,"formatFields");function nt(n){return n===null?"null":typeof n=="string"?JSON.stringify(n.length>160?`${n.slice(0,157)}...`:n):String(n)}s(nt,"formatFieldValue");var S=class{static{s(this,"AcpEventEmitter")}sinks;constructor(e={}){this.sinks=[...e.sinks??[]]}emit(e){for(let t of this.sinks)try{t.handleEvent(e)}catch(o){}}};import{randomUUID as se}from"node:crypto";import ot from"node:os";import g from"node:path";import R from"node:process";import{Readable as it,Writable as st}from"node:stream";import{AgentSideConnection as rt,PROTOCOL_VERSION as re,RequestError as P,ndJsonStream as at}from"@agentclientprotocol/sdk";var ue=["plan","accept-edits","auto-in-project"];function T(n){return W(n)}s(T,"acpIsFileModificationTool");var dt={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},lt=[{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 L(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}s(L,"normalizeOptionalEffort");function ct(n){let e=n.replace(/\s+/g," ").trim();return e.length<=80?e:`${e.slice(0,77)}...`}s(ct,"buildAcpSessionTitle");function ut(n){let e=n.effort;if(e===void 0)return{kind:"absent"};try{return{kind:"value",value:L(e,"Prompt effort")}}catch(t){let o=t instanceof Error?t.message:String(t);throw P.invalidParams({effort:e},o)}}s(ut,"resolvePromptEffortOverride");function pt(n){let e={};for(let t of n)if("command"in t){let o={};for(let i of t.env??[])o[i.name]=i.value;e[t.name]={type:"stdio",command:t.command,args:t.args??[],env:Object.keys(o).length>0?o:void 0}}else if("type"in t&&t.type==="sse"){let o={};for(let i of t.headers??[])o[i.name]=i.value;e[t.name]={type:"sse",url:t.url,headers:Object.keys(o).length>0?o:void 0}}else if("type"in t&&t.type==="http"){let o={};for(let i of t.headers??[])o[i.name]=i.value;e[t.name]={type:"http",url:t.url,headers:Object.keys(o).length>0?o:void 0}}return e}s(pt,"convertAcpMcpServers");function mt(n){let e=[];for(let t of n){let o=t.trim();o&&!e.includes(o)&&e.push(o)}return e}s(mt,"dedupeExtensionPaths");function ft(n){return Array.isArray(n)?mt(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>g.isAbsolute(e)?e:g.resolve(g.dirname(b),e))):[]}s(ft,"normalizeConfiguredExtensionPaths");async function gt(n){try{return await U()}catch(e){let t=e instanceof Error?e.message:String(e);return n.error("ACP extension discovery failed: "+t),[]}}s(gt,"discoverAcpDefaultExtensions");async function ht(n,e,t){let o=await _(t),i=await F(await _(e),o);await n.loadExtensions(i,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(o,{continueOnError:!0,loadSource:"config"})}s(ht,"loadAcpExtensionGroups");function vt(n,e="accept-edits"){return n&&ue.includes(n)?n:e}s(vt,"normalizeAcpPermissionMode");function Rt(n){if(n&&ue.includes(n))return n;throw P.invalidParams({modeId:n},"Invalid session mode. Expected one of: plan, accept-edits, auto-in-project.")}s(Rt,"parseSessionMode");function yt(n){return{availableModes:lt,currentModeId:n}}s(yt,"buildModeState");function ae(n){return dt[n]??"other"}s(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:"",o=H(t);if(o.length>0)return o.map(i=>({path:i}))}}s(de,"inferToolLocations");function St(n){let e=[];for(let t of n){let o=t,i=typeof o.type=="string"?o.type:"";if(i==="text"&&typeof o.text=="string"){e.push(o.text);continue}if(i==="resource_link"&&typeof o.uri=="string"){e.push(`[Resource] ${o.uri}`);continue}if(i==="resource"&&o.resource&&typeof o.resource=="object"){let r=o.resource;if(typeof r.text=="string"){e.push(r.text);continue}typeof r.uri=="string"&&e.push(`[Resource] ${r.uri}`)}}return e.join(`
2
+ import{a as je,e as We,f as Ve,l as $e,o as ze,p as Be,q as Ge,r as Ne,s as He,v as M,w as Je}from"./chunks/chunk-W2LRTZBJ.js";import"./chunks/chunk-5BNQXXGY.js";import{a as Le,b as Ke,c as Xe,d as De,e as qe,f as Fe,g as Ue}from"./chunks/chunk-QQBFQCMF.js";import{Ab as Oe,Bb as Te,Rb as C,Ua as ke,Va as Ce,hb as Me}from"./chunks/chunk-GL6GVYF4.js";import{A as _e,B as Ee,Ca as Ae,Ea as xe,Fa as be,k as Z}from"./chunks/chunk-CQHLFQSU.js";import{$ as te,O as ve,P as ye,Q as Se,X as k,Y as Pe,_ as ee,aa as ne,ca as we,ga as Ie,q as ue,r as pe,s as b,u as me,w as fe,x as ge,y as he,z as Re}from"./chunks/chunk-SOIIBADK.js";import"./chunks/chunk-4Y6OSDZE.js";import{$ as ju,A as x,B as gu,C as hu,D as Ru,E as vu,F as yu,G as Su,H as Pu,I as wu,J as Iu,K as _u,L as Eu,M as Au,N as xu,O as bu,P as ku,Q as Cu,R as Mu,S as Ou,T as Tu,U as Lu,V as Ku,W as Xu,X as Du,Y as qu,Z as Fu,_ as Uu,a as Pi,aa as Y,b as wi,ba as Wu,c as Ii,ca as Vu,d as Gc,da as $u,e as Nc,ea as zu,f as Hc,fa as Bu,g as Jc,ga as Gu,h as Qc,ha as Nu,i as Yc,ia as Hu,j as Zc,ja as Ju,k as eu,ka as Qu,l as tu,la as Yu,m as nu,n as ou,o as iu,p as su,q as ru,r as au,s as du,t as lu,u as cu,v as uu,w as pu,x as A,y as mu,z as fu}from"./chunks/chunk-S74F7MFN.js";import{a as qd,b as Fd,c as Ud,d as jd,e as Wd,f as Vd,g as $d,h as zd,i as Bd,j as kl}from"./chunks/chunk-IFD6TUQU.js";import{$ as hd,$b as wc,A as Ya,Ab as Zl,B as Za,Bb as ec,C as ed,Cb as tc,D as td,Db as N,Eb as nc,Fb as oc,Gb as H,Hb as ic,I as nd,Ib as J,J as od,Jb as Q,Kb as sc,Lb as rc,Mb as ac,N as id,Nb as dc,O as sd,Ob as lc,P as rd,Pb as cc,Q as ad,Qb as uc,R as dd,Rb as pc,S as ld,Sb as mc,T as cd,Tb as fc,U as ud,Ua as Cl,Ub as gc,Va as Ml,Vb as hc,Wb as Rc,X as pd,Xb as vc,Y as md,Yb as yc,Z as fd,Zb as Sc,_ as gd,_b as Pc,aa as Rd,ac as Ic,b as Jo,ba as vd,bb as Ol,bc as _c,c as Qo,cb as Tl,cc as Ec,d as Yo,db as Ll,dc as Ac,e as Zo,eb as Kl,ec as xc,f as ei,fb as Xl,fc as bc,g as ti,ga as yd,gb as Dl,gc as kc,ha as Sd,hb as ql,hc as Cc,i as ni,ia as Pd,ib as Fl,ic as Mc,j as oi,ja as wd,jb as Ul,jc as Oc,ka as Id,kb as jl,kc as Tc,l as ii,lb as Wl,lc as Lc,m as si,mb as Vl,mc as Kc,n as ri,nb as $l,nc as Xc,o as hi,oa as _d,ob as zl,oc as Dc,p as _i,pa as Ed,pb as Bl,pc as qc,q as Ei,qa as Ad,qb as Gl,qc as Fc,r as Ua,ra as xd,rb as Nl,rc as Uc,s as ja,sb as $,sc as jc,t as Wa,tb as Hl,tc as Wc,u as Va,ua as bd,ub as Jl,uc as Vc,v as $a,vb as Ql,vc as $c,w as za,wb as z,wc as zc,x as Ha,xb as B,y as Ja,yb as G,yc as Bc,z as Qa,zb as Yl}from"./chunks/chunk-A63MGLH6.js";import{a as Dd}from"./chunks/chunk-O2ZV775M.js";import{A as yl,B as Sl,C as Pl,D as wl,E as Il,F as _l,G as El,H as Al,I as xl,J as bl,a as Gd,b as Nd,c as Hd,d as Jd,e as Qd,f as Yd,g as Zd,h as el,i as tl,j as nl,k as ol,l as il,m as sl,n as rl,o as al,p as dl,q as ll,r as cl,s as ul,t as pl,u as ml,v as fl,w as gl,x as hl,y as Rl,z as vl}from"./chunks/chunk-BOMSVUJS.js";import{$ as ji,$a as Ps,$b as pr,$c as ra,Aa as Yi,Ab as Gs,Ac as Tr,Ad as Aa,Bb as Ns,Bc as Lr,Bd as W,Ca as Zi,Cb as Hs,Cc as Kr,Cd as xa,Da as es,Dc as Xr,Dd as ba,E as bi,Ea as ts,Ec as Dr,Ed as ka,F as ki,Fa as ns,Fc as qr,Fd as Ca,G as Ci,Ga as os,Gb as Js,Gc as Fr,Gd as Ma,H as Mi,Hb as Qs,Hc as Ur,I as Oi,Ia as is,Ib as Ys,Ic as jr,Id as Oa,J as Ti,Ja as ss,Jb as Zs,Jc as Wr,Jd as Ta,K as Li,Ka as rs,Kc as Vr,Kd as La,L as Ki,La as as,Lc as $r,Ld as Ka,M as Xi,Ma as ds,Mc as zr,Md as Xa,N as Di,Na as ls,Nb as er,Nc as Br,Nd as Da,O as qi,Oa as cs,Ob as tr,Oc as Gr,Od as qa,P as Fi,Pa as us,Pb as nr,Pc as Nr,Pd as Fa,Qa as ps,Qb as or,Qc as Hr,Qd as Ba,Ra as ms,Rb as ir,Rc as Jr,Rd as Ga,Sa as fs,Sb as sr,Sc as Qr,Sd as Na,Ta as gs,Tb as rr,Tc as Yr,Ua as hs,Ub as ar,Uc as Zr,Va as Rs,Vb as dr,Vc as ea,Wa as vs,Wb as lr,Wc as ta,Xa as ys,Xb as cr,Xc as na,Ya as Ss,Yc as oa,Zc as ia,_ as Ui,_b as ur,_c as sa,aa as Wi,ab as ws,ac as mr,ad as aa,ba as Vi,bb as Is,bc as fr,bd as da,c as ai,ca as $i,cb as _s,cc as gr,cd as la,d as di,da as zi,db as Es,dc as hr,dd as ca,de as Cd,e as li,eb as As,ed as ua,ee as Md,f as ci,fb as xs,fd as pa,fe as Od,g as ui,gd as j,ge as Td,h as pi,hb as bs,hc as Rr,hd as E,he as V,i as mi,ib as ks,ic as vr,id as ma,j as fi,jb as Cs,jc as yr,jd as fa,k as gi,kb as Ms,kc as Sr,lb as Os,lc as Pr,m as Ri,mb as Ts,mc as wr,n as vi,nb as Ls,nc as Ir,ob as Ks,oc as _r,p as yi,pa as Bi,pb as Xs,pc as _,pd as ga,pe as Ld,qa as Gi,qb as Ds,qc as F,qd as ha,qe as Kd,r as Si,ra as Ni,rb as qs,rc as Er,rd as Ra,re as Xd,sa as Hi,sb as Fs,sc as Ar,sd as va,ta as Ji,tb as Us,tc as U,td as ya,ub as js,uc as xr,ud as Sa,vb as Ws,vc as br,vd as Pa,wb as Vs,wc as kr,wd as wa,xb as $s,xc as Cr,xd as Ia,y as Ai,ya as Qi,yb as zs,yc as Mr,yd as _a,z as xi,zb as Bs,zc as Or,zd as Ea}from"./chunks/chunk-5UBP47VJ.js";import"./chunks/chunk-W5RPVR3O.js";import{a as kd}from"./chunks/chunk-PROPMIT4.js";import{Aa as Nt,Ba as Ht,C as K,Ca as Jt,D as kt,Da as Qt,E as Ct,Ea as Yt,F as X,Fa as Zt,G as Mt,Ga as en,H as Ot,Ha as tn,Ia as nn,Ja as on,Ka as sn,La as rn,Ma as an,Oa as dn,Pa as q,Qa as ln,Ra as cn,Ta as un,Ua as pn,V as Tt,Va as mn,Ya as fn,d as wt,da as Lt,e as It,ea as Kt,f as _t,ka as Xt,la as Dt,m as Et,ma as D,n as At,na as qt,qa as Ft,ra as Ut,ta as jt,ua as Wt,v as xt,va as Vt,w as bt,wa as $t,xa as zt,ya as Bt,za as Gt}from"./chunks/chunk-UNEC2WXJ.js";import{Aa as Mn,Ae as Ro,Af as Fo,Be as vo,Bf as Uo,Ce as yo,Cf as jo,De as So,Ee as Po,Fe as wo,Ff as Wo,Ge as Io,Gf as Vo,Ha as On,He as _o,Hf as $o,Ia as Tn,Ie as Eo,If as zo,Ja as Ln,Jb as so,Je as Ao,Jf as Bo,Kb as ro,Ke as xo,Kf as Go,Le as bo,Ma as Kn,Me as ko,Oe as Co,Pe as Mo,Qe as Oo,Qf as No,Rf as Ho,Te as To,Ue as Lo,a as gn,b as hn,c as Rn,d as vn,e as yn,f as Sn,h as Pn,i as wn,j as In,k as _n,l as En,qe as ao,re as lo,se as co,te as uo,ue as po,v as An,ve as mo,w as xn,we as fo,wf as Ko,x as bn,xa as Cn,xe as go,xf as Xo,y as kn,yf as Do,ze as ho,zf as qo}from"./chunks/chunk-72H6JNPN.js";import{A as Gn,B as Nn,C as Hn,D as Jn,E as Qn,F as Yn,G as Zn,H as eo,I as to,J as no,K as oo,L as io,j as Xn,q as Dn,r as qn,s as Fn,t as Un,u as jn,v as Wn,w as Vn,x as $n,y as zn,z as Bn}from"./chunks/chunk-5247AKGN.js";import{a as s}from"./chunks/chunk-ONUPGMER.js";import Qe from"node:process";var ie=["off","error","info","debug"],oe={off:0,error:1,info:2,debug:3};function O(n,e="info"){if(!n)return e;let t=n.trim().toLowerCase();return ie.includes(t)?t:e}s(O,"resolveAcpLogLevel");var S=class{static{s(this,"AcpLogger")}level;sink;constructor(e={}){this.level=e.level??"info",this.sink=e.sink??(t=>{Qe.stderr.write(`${t}
3
+ `)})}handleEvent(e){let t=Ye(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,o){if(oe[this.level]<oe[e])return;let i=new Date().toISOString(),r=o?et(o):"",a=r?` ${r}`:"";this.sink(`[ACP][${e.toUpperCase()}][${i}] ${t}${a}`)}};function Ye(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 Ze(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}}s(Ye,"mapEventToLogEntry");function u(n){let{type:e,...t}=n;return t}s(u,"toLogFields");function Ze(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}}}}s(Ze,"mapPermissionOutcomeToLogEntry");function et(n){return Object.entries(n).flatMap(([e,t])=>t===void 0?[]:`${e}=${tt(t)}`).join(" ")}s(et,"formatFields");function tt(n){return n===null?"null":typeof n=="string"?JSON.stringify(n.length>160?`${n.slice(0,157)}...`:n):String(n)}s(tt,"formatFieldValue");var P=class{static{s(this,"AcpEventEmitter")}sinks;constructor(e={}){this.sinks=[...e.sinks??[]]}emit(e){for(let t of this.sinks)try{t.handleEvent(e)}catch(o){}}};import{randomUUID as se}from"node:crypto";import nt from"node:os";import h from"node:path";import y from"node:process";import{Readable as ot,Writable as it}from"node:stream";var st=await import("@agentclientprotocol/sdk");function g(){return st}s(g,"acpSdk");var ce=["plan","accept-edits","auto-in-project"];function T(n){return W(n)}s(T,"acpIsFileModificationTool");var rt={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},at=[{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 L(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}s(L,"normalizeOptionalEffort");function dt(n){let e=n.replace(/\s+/g," ").trim();return e.length<=80?e:`${e.slice(0,77)}...`}s(dt,"buildAcpSessionTitle");function lt(n){let e=n.effort;if(e===void 0)return{kind:"absent"};try{return{kind:"value",value:L(e,"Prompt effort")}}catch(t){let o=t instanceof Error?t.message:String(t);throw g().RequestError.invalidParams({effort:e},o)}}s(lt,"resolvePromptEffortOverride");function ct(n){let e={};for(let t of n)if("command"in t){let o={};for(let i of t.env??[])o[i.name]=i.value;e[t.name]={type:"stdio",command:t.command,args:t.args??[],env:Object.keys(o).length>0?o:void 0}}else if("type"in t&&t.type==="sse"){let o={};for(let i of t.headers??[])o[i.name]=i.value;e[t.name]={type:"sse",url:t.url,headers:Object.keys(o).length>0?o:void 0}}else if("type"in t&&t.type==="http"){let o={};for(let i of t.headers??[])o[i.name]=i.value;e[t.name]={type:"http",url:t.url,headers:Object.keys(o).length>0?o:void 0}}return e}s(ct,"convertAcpMcpServers");function ut(n){let e=[];for(let t of n){let o=t.trim();o&&!e.includes(o)&&e.push(o)}return e}s(ut,"dedupeExtensionPaths");function pt(n){return Array.isArray(n)?ut(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>h.isAbsolute(e)?e:h.resolve(h.dirname(b),e))):[]}s(pt,"normalizeConfiguredExtensionPaths");async function mt(n){try{return await U()}catch(e){let t=e instanceof Error?e.message:String(e);return n.error("ACP extension discovery failed: "+t),[]}}s(mt,"discoverAcpDefaultExtensions");async function ft(n,e,t){let o=await _(t),i=await F(await _(e),o);await n.loadExtensions(i,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(o,{continueOnError:!0,loadSource:"config"})}s(ft,"loadAcpExtensionGroups");function gt(n,e="accept-edits"){return n&&ce.includes(n)?n:e}s(gt,"normalizeAcpPermissionMode");function ht(n){if(n&&ce.includes(n))return n;throw g().RequestError.invalidParams({modeId:n},"Invalid session mode. Expected one of: plan, accept-edits, auto-in-project.")}s(ht,"parseSessionMode");function Rt(n){return{availableModes:at,currentModeId:n}}s(Rt,"buildModeState");function re(n){return rt[n]??"other"}s(re,"inferToolKind");function ae(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:"",o=H(t);if(o.length>0)return o.map(i=>({path:i}))}}s(ae,"inferToolLocations");function vt(n){let e=[];for(let t of n){let o=t,i=typeof o.type=="string"?o.type:"";if(i==="text"&&typeof o.text=="string"){e.push(o.text);continue}if(i==="resource_link"&&typeof o.uri=="string"){e.push(`[Resource] ${o.uri}`);continue}if(i==="resource"&&o.resource&&typeof o.resource=="object"){let r=o.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()}s(St,"extractPromptText");function Pt(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}s(Pt,"isToolResultFailure");function wt(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}s(wt,"isAbortLikeError");function le(n){return n==="queued"?0:n==="running"||n==="waiting_permission"||n==="waiting_user_input"?1:2}s(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}:{}}}s(ce,"toAcpUsage");var I=class{static{s(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=R.env.KODAX_PROVIDER,o=R.env.KODAX_EFFORT,i=k(),r=i;this.provider=ee({explicitProvider:e.provider,environmentProvider:t,configuredProvider:i.provider,defaultProvider:D}),this.model=te({explicitProvider:e.provider,environmentProvider:t,explicitModel:e.model,configuredProvider:i.provider,configuredModel:i.model});let a=e.effort!==void 0||X(o).kind==="value";this.effort=L(ne({explicitEffort:e.effort,environmentEffort:o,configuredEffort:i.effort}),"Configured effort"),this.planModeEffort=a?void 0:L(e.planModeEffort??i.planModeEffort,"Configured plan-mode effort"),this.thinking=e.thinking??i.thinking??!1,this.reasoningMode=e.reasoningMode??i.reasoningMode??"auto",this.defaultPermissionMode=vt(e.permissionMode??i.permissionMode,"accept-edits");let d=g.resolve(e.cwd??R.cwd()),l=ft(r.extensions),c=new y({level:O(e.logLevel??R.env.KODAX_ACP_LOG,"info")}),p=gt(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??ot.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 S({sinks:[...e.eventSinks??[],c]}),this.bashPrefixExtractor=Y({getProvider:s(()=>q(this.provider),"getProvider"),getModel:s(()=>this.model??"","getModel")});let h=i.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 w=E({config:i});f&&await A(w,h,{reverse:x({cwd:d})}),await ht(w,m,l),w.activate(),this.extensionRuntime=w})().catch(m=>{let v=m instanceof Error?m.message:String(m);c.error("ACP extension initialization failed: "+v)})}attach(e,t){let o=at(t,e),i=new rt(()=>this,o);this.connection=i;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}),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 o of this.sessions.values())await this.abortSessionRuns(o);let e=new Set;for(let o of this.sessions.values())o.ownedExtensionRuntime&&(e.add(o.ownedExtensionRuntime),o.ownedExtensionRuntime=void 0),o.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(o=>o.dispose())),this.ownsRuntime&&await(await this.runtimeReady).close().catch(()=>{}),await V()})(),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 P.invalidParams({cwd:t},"Session cwd must be an absolute path.");let o=se(),i=e.mcpServers??[],r={sessionId:o,cwd:g.resolve(t),permissionMode:this.defaultPermissionMode,mcpServers:i,alwaysAllowTools:[],activeRunIds:new Set};if(i.length>0){let a=pt(i),d=E({});await A(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 "+o+": "+c)}),await this.extensionRuntimeReady,r.ownedExtensionRuntime=d,r.extensionRuntime=this.extensionRuntime?j(d,this.extensionRuntime):d}return this.sessions.set(o,r),this.events.emit({type:"session_created",sessionId:o,cwd:r.cwd,permissionMode:r.permissionMode,mcpServers:r.mcpServers.length}),{sessionId:o,modes:yt(r.permissionMode)}}async authenticate(){}async setSessionMode(e){let t=this.requireSession(e.sessionId),o=t.permissionMode,i=Rt(e.modeId);return t.permissionMode=i,this.events.emit({type:"session_mode_changed",sessionId:t.sessionId,from:o,to:i}),await this.sendSessionUpdate({sessionId:t.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:i}}),{}}async prompt(e){let t=this.requireSession(e.sessionId),o=St(e.prompt),i=ut(e);if(!o)throw P.invalidParams({prompt:e.prompt},"Prompt must include at least one text or resource block with content.");let r=Date.now();return s(async()=>{let d=Date.now();this.events.emit({type:"prompt_started",sessionId:t.sessionId,messageId:e.messageId??null,chars:o.length,cwd:t.cwd,queueDelayMs:d-r}),this.events.emit({type:"prompt_preview",sessionId:t.sessionId,prompt:o});let l;try{this.extensionRuntimeReady&&await this.extensionRuntimeReady;let c=await this.runtimeReady;await this.ensureRuntimeSession(c,t,o),l=await c.runs.start({sessionId:t.sessionId,prompt:o,options:this.buildKodaXOptions(t,i)}),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(wt(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,`
5
+ `).trim()}s(vt,"extractPromptText");function yt(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}s(yt,"isToolResultFailure");function St(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}s(St,"isAbortLikeError");function de(n){return n==="queued"?0:n==="running"||n==="waiting_permission"||n==="waiting_user_input"?1:2}s(de,"acpAbortPhaseRank");function le(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}:{}}}s(le,"toAcpUsage");var I=class{static{s(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,o=y.env.KODAX_EFFORT,i=k(),r=i;this.provider=ee({explicitProvider:e.provider,environmentProvider:t,configuredProvider:i.provider,defaultProvider:D}),this.model=te({explicitProvider:e.provider,environmentProvider:t,explicitModel:e.model,configuredProvider:i.provider,configuredModel:i.model});let a=e.effort!==void 0||X(o).kind==="value";this.effort=L(ne({explicitEffort:e.effort,environmentEffort:o,configuredEffort:i.effort}),"Configured effort"),this.planModeEffort=a?void 0:L(e.planModeEffort??i.planModeEffort,"Configured plan-mode effort"),this.thinking=e.thinking??i.thinking??!1,this.reasoningMode=e.reasoningMode??i.reasoningMode??"auto",this.defaultPermissionMode=gt(e.permissionMode??i.permissionMode,"accept-edits");let d=h.resolve(e.cwd??y.cwd()),l=pt(r.extensions),c=new S({level:O(e.logLevel??y.env.KODAX_ACP_LOG,"info")}),p=mt(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??nt.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 P({sinks:[...e.eventSinks??[],c]}),this.bashPrefixExtractor=Y({getProvider:s(()=>q(this.provider),"getProvider"),getModel:s(()=>this.model??"","getModel")});let R=i.mcpServers,f=R&&Object.values(R).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 w=E({config:i});f&&await A(w,R,{reverse:x({cwd:d})}),await ft(w,m,l),w.activate(),this.extensionRuntime=w})().catch(m=>{let v=m instanceof Error?m.message:String(m);c.error("ACP extension initialization failed: "+v)})}attach(e,t){let{AgentSideConnection:o,ndJsonStream:i}=g(),r=i(t,e),a=new o(()=>this,r);this.connection=a;let d=this.effort==="none"?!1:this.thinking,l=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:l,thinking:d,fixedCwd:this.hasFixedCwd}),a.signal.addEventListener("abort",()=>{let c=this.sessions.size;this.events.emit({type:"connection_closed",activeSessions:c}),this.dispose()}),a}async waitForClose(){await this.connection?.closed}async dispose(){return this.disposePromise?this.disposePromise:(this.disposePromise=(async()=>{for(let o of this.sessions.values())await this.abortSessionRuns(o);let e=new Set;for(let o of this.sessions.values())o.ownedExtensionRuntime&&(e.add(o.ownedExtensionRuntime),o.ownedExtensionRuntime=void 0),o.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(o=>o.dispose())),this.ownsRuntime&&await(await this.runtimeReady).close().catch(()=>{}),await V()})(),this.disposePromise)}async initialize(e){return this.events.emit({type:"initialize_completed",protocolVersion:g().PROTOCOL_VERSION}),{protocolVersion:g().PROTOCOL_VERSION,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(!h.isAbsolute(t))throw g().RequestError.invalidParams({cwd:t},"Session cwd must be an absolute path.");let o=se(),i=e.mcpServers??[],r={sessionId:o,cwd:h.resolve(t),permissionMode:this.defaultPermissionMode,mcpServers:i,alwaysAllowTools:[],activeRunIds:new Set};if(i.length>0){let a=ct(i),d=E({});await A(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 "+o+": "+c)}),await this.extensionRuntimeReady,r.ownedExtensionRuntime=d,r.extensionRuntime=this.extensionRuntime?j(d,this.extensionRuntime):d}return this.sessions.set(o,r),this.events.emit({type:"session_created",sessionId:o,cwd:r.cwd,permissionMode:r.permissionMode,mcpServers:r.mcpServers.length}),{sessionId:o,modes:Rt(r.permissionMode)}}async authenticate(){}async setSessionMode(e){let t=this.requireSession(e.sessionId),o=t.permissionMode,i=ht(e.modeId);return t.permissionMode=i,this.events.emit({type:"session_mode_changed",sessionId:t.sessionId,from:o,to:i}),await this.sendSessionUpdate({sessionId:t.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:i}}),{}}async prompt(e){let t=this.requireSession(e.sessionId),o=vt(e.prompt),i=lt(e);if(!o)throw g().RequestError.invalidParams({prompt:e.prompt},"Prompt must include at least one text or resource block with content.");let r=Date.now();return s(async()=>{let d=Date.now();this.events.emit({type:"prompt_started",sessionId:t.sessionId,messageId:e.messageId??null,chars:o.length,cwd:t.cwd,queueDelayMs:d-r}),this.events.emit({type:"prompt_preview",sessionId:t.sessionId,prompt:o});let l;try{this.extensionRuntimeReady&&await this.extensionRuntimeReady;let c=await this.runtimeReady;await this.ensureRuntimeSession(c,t,o),l=await c.runs.start({sessionId:t.sessionId,prompt:o,options:this.buildKodaXOptions(t,i)}),t.activeRunIds.add(l.runId);let p=await l.result;if(p.error)throw p.error;let R=p.phase==="cancelled"||p.phase==="interrupted",f=p.result;if(!f){if(R)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||R,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,...le(f.contextTokenSnapshot)?{usage:le(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
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,o){t.runtimeSessionReady||(t.runtimeSessionReady=e.sessions.create({sessionId:t.sessionId,title:ct(o),projectPath:t.cwd,gitRoot:t.cwd,surface:"acp"}).then(()=>{}));try{await t.runtimeSessionReady}catch(i){throw t.runtimeSessionReady=void 0,i}}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,o=[...e.activeRunIds],i=await Promise.all(o.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")}}}));i.sort((r,a)=>r.rank-a.rank),await Promise.all(i.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 P.resourceNotFound(e);return t}buildKodaXOptions(e,t={kind:"absent"}){let o=t.kind==="value"?t.value:e.permissionMode==="plan"&&this.planModeEffort!==void 0?this.planModeEffort:this.effort;return{provider:this.provider,model:this.model,effort:o,thinking:o==="none"?!1:this.thinking,reasoningMode:o==="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:s(i=>{this.dispatchNotification("assistant text chunk",e.sessionId,this.sendTextChunk(e.sessionId,i))},"onTextDelta"),onThinkingDelta:s(i=>{this.dispatchNotification("thinking chunk",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"agent_thought_chunk",content:{type:"text",text:i}}}))},"onThinkingDelta"),onToolUseStart:s(i=>{this.dispatchNotification("tool call start",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call",toolCallId:i.id,title:i.name,kind:ae(i.name),rawInput:i.input,locations:de(i.name,i.input??{}),status:"pending"}}))},"onToolUseStart"),onToolResult:s(i=>{this.dispatchNotification("tool call update",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call_update",toolCallId:i.id,title:i.name,status:Pt(i.content)?"failed":"completed",rawOutput:i.content}}))},"onToolResult"),onRepoIntelligenceTrace:s(i=>{this.events.emit({type:"repo_intelligence_trace",sessionId:e.sessionId,stage:i.stage,summary:i.summary,mode:i.capability?.mode,engine:i.capability?.engine,status:i.capability?.status,cacheHit:i.trace?.cacheHit,capsuleEstimatedTokens:i.trace?.capsuleEstimatedTokens})},"onRepoIntelligenceTrace"),onError:s(i=>{this.dispatchNotification("error text chunk",e.sessionId,this.sendTextChunk(e.sessionId,`
7
+ `),{stopReason:"end_turn",userMessageId:e.messageId??void 0}}finally{l&&t.activeRunIds.delete(l.runId)}},"task")()}async ensureRuntimeSession(e,t,o){t.runtimeSessionReady||(t.runtimeSessionReady=e.sessions.create({sessionId:t.sessionId,title:dt(o),projectPath:t.cwd,gitRoot:t.cwd,surface:"acp"}).then(()=>{}));try{await t.runtimeSessionReady}catch(i){throw t.runtimeSessionReady=void 0,i}}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,o=[...e.activeRunIds],i=await Promise.all(o.map(async r=>{try{let a=await t.runs.get(r);return{runId:r,rank:de(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:de("cancelled")}}}));i.sort((r,a)=>r.rank-a.rank),await Promise.all(i.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 g().RequestError.resourceNotFound(e);return t}buildKodaXOptions(e,t={kind:"absent"}){let o=t.kind==="value"?t.value:e.permissionMode==="plan"&&this.planModeEffort!==void 0?this.planModeEffort:this.effort;return{provider:this.provider,model:this.model,effort:o,thinking:o==="none"?!1:this.thinking,reasoningMode:o==="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:s(i=>{this.dispatchNotification("assistant text chunk",e.sessionId,this.sendTextChunk(e.sessionId,i))},"onTextDelta"),onThinkingDelta:s(i=>{this.dispatchNotification("thinking chunk",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"agent_thought_chunk",content:{type:"text",text:i}}}))},"onThinkingDelta"),onToolUseStart:s(i=>{this.dispatchNotification("tool call start",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call",toolCallId:i.id,title:i.name,kind:re(i.name),rawInput:i.input,locations:ae(i.name,i.input??{}),status:"pending"}}))},"onToolUseStart"),onToolResult:s(i=>{this.dispatchNotification("tool call update",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call_update",toolCallId:i.id,title:i.name,status:yt(i.content)?"failed":"completed",rawOutput:i.content}}))},"onToolResult"),onRepoIntelligenceTrace:s(i=>{this.events.emit({type:"repo_intelligence_trace",sessionId:e.sessionId,stage:i.stage,summary:i.summary,mode:i.capability?.mode,engine:i.capability?.engine,status:i.capability?.status,cacheHit:i.trace?.cacheHit,capsuleEstimatedTokens:i.trace?.capsuleEstimatedTokens})},"onRepoIntelligenceTrace"),onError:s(i=>{this.dispatchNotification("error text chunk",e.sessionId,this.sendTextChunk(e.sessionId,`
8
8
  [Error] ${i.message}
9
- `))},"onError"),beforeToolExecute:s(async(i,r,a)=>{let d=await this.evaluateToolPermission(e,i,r,a?.toolId);return d.allowed?!0:d.override??!1},"beforeToolExecute")}}}async evaluateToolPermission(e,t,o,i){if(this.events.emit({type:"tool_permission_evaluated",sessionId:e.sessionId,tool:t,toolId:i??null,permissionMode:e.permissionMode}),t==="bash"){let c=typeof o.command=="string"?o.command:"";if($(c))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,o,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 c=Q(t,o,e.cwd);return c?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??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:i??null,outcome:"auto_allowed_plan_mode"}),{allowed:!0})}let r=T(t)&&typeof o.path=="string"&&G(g.resolve(e.cwd,o.path),e.cwd),a=Z(e.permissionMode).has(t),d=e.permissionMode==="auto-in-project"&&(T(t)&&typeof o.path=="string"&&!N(o.path,e.cwd)||t==="bash"&&typeof o.command=="string"&&J(o.command,e.cwd).dangerous);return!r&&!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,o,i)}async requestPermissionFromClient(e,t,o,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 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:i??se(),title:t,kind:ae(t),rawInput:o,locations:de(t,o),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,B(t,o,!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,o){o.catch(i=>{if(!this.connection||this.connection.signal.aborted)return;let r=i instanceof Error?i.message:String(i);this.events.emit({type:"notification_failed",sessionId:t,label:e,error:r})})}};async function It(n={}){let e=new I(n),t=it.toWeb(R.stdin),o=st.toWeb(R.stdout);e.attach(t,o);try{await e.waitForClose()}finally{await e.dispose()}}s(It,"runAcpServer");export{ie as ACP_LOG_LEVELS,od as ALWAYS_RESIDENT_TOOL_NAMES,bc as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,kc as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,S as AcpEventEmitter,y as AcpLogger,Du as BASH_POLICY_SPEC,ql as BASH_SAFE_READ_COMMANDS,Dl as BASH_WRITE_COMMANDS,iu as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Ic as BREAKER_ERROR_THRESHOLD,_c as BREAKER_WINDOW_MS,xe as BUILTIN_COMMANDS,tl as BUILTIN_WORKFLOWS,ki as CANCELLED_TOOL_RESULT_MESSAGE,bi as CANCELLED_TOOL_RESULT_PREFIX,Pc as CLASSIFIER_MAX_OUTPUT_TOKENS,ku as CODING_AGENT_MARKER,Jc as CODING_INVARIANTS,xl as CODING_SUMMARY_PROMPT,bl as CODING_UPDATE_SUMMARY_PROMPT,Ar as CapabilityDeniedError,Yc as Client,Md as CodingActorSession,la as CombinedExtensionRuntime,xr as ConstructionManifestError,Sc as DEFAULT_CLASSIFIER_RETRY_TIMEOUT_MS,yc as DEFAULT_CLASSIFIER_TIMEOUT_MS,kl as DEFAULT_CODING_AGENT_NAME,pc as DEFAULT_DANGEROUS_PATTERNS,_r as DEFAULT_HANDLER_TIMEOUT_MS,ld as DEFAULT_RESILIENCE_CONFIG,uc as DEFAULT_SAFE_PATTERNS,Dr as DEFAULT_SELF_MODIFY_BUDGET,qc as DEFAULT_SPECULATIVE_WINDOW_MS,Mi as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Ci as DEFAULT_TOOL_OUTPUT_MAX_LINES,Xd as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Mn as DefaultSummaryCompaction,Au as EMIT_VERDICT_TOOL_NAME,Ai as ErrorCategory,Kl as FILE_MODIFICATION_TOOLS,Gd as FINDING_VERIFICATION_OUTPUT_SCHEMA,C as FileSessionStorage,Gs as GENERATOR_AGENT_NAME,Un as ImageResizeError,_n as KODAX_API_MIN_INTERVAL,Ke as KODAX_ASRT_VERSION,b as KODAX_CONFIG_FILE,D as KODAX_DEFAULT_PROVIDER,Rn as KODAX_DEFAULT_TIMEOUT,pe as KODAX_DIR,oo as KODAX_FILE_MEDIA_TYPES,yn as KODAX_HARD_TIMEOUT,to as KODAX_IMAGE_MEDIA_TYPES,wn as KODAX_MAX_INCOMPLETE_RETRIES,Sn as KODAX_MAX_RETRIES,vn as KODAX_MAX_TOKENS,Ft as KODAX_PROVIDERS,qt as KODAX_PROVIDER_SNAPSHOTS,kt as KODAX_REASONING_MODE_SEQUENCE,Pn as KODAX_RETRY_BASE_DELAY,me as KODAX_SESSIONS_DIR,Ct as KODAX_STABLE_EFFORT_INTENTS,In as KODAX_STAGGER_DELAY,pa as KODAX_TOOLS,Vi as KODAX_UNDERLYING_CAPABILITY_TOPICS,ve as KODAX_VERSION,no as KODAX_VIDEO_MEDIA_TYPES,I as KodaXAcpServer,Xt as KodaXAnthropicCompatProvider,Kt as KodaXBaseProvider,Yc as KodaXClient,_t as KodaXError,da as KodaXExtensionRuntime,Fn as KodaXMediaError,Dt as KodaXOpenAICompatProvider,Et as KodaXProviderError,At as KodaXRateLimitError,_i as KodaXSessionError,Ei as KodaXTerminalError,Ii as KodaXToolError,ei as LEARNING_REVIEW_PROMPT_SHA256,ti as LEARNING_REVIEW_SCHEMA_SHA256,Yo as LEARNING_REVIEW_SYSTEM_PROMPT,Zo as LEARNING_REVIEW_TOOL,Oo as LINEAGE_ENTRY_TYPES,bd as LSP_SERVERS,Lo as LineageCompaction,To as LineageExtension,kd as LspService,$i as MANUAL_REGISTRY,Wi as MANUAL_TOPIC_IDS,Bn as MAX_DIMENSION,Ru as MEMORY_INTERVENTION_SELECTOR_PROMPT,yu as MEMORY_INTERVENTION_SELECTOR_SHA256,Xl as MODIFICATION_TOOLS,vo as McpAuthRequiredError,ko as McpCapabilityProvider,ho as McpExpiredSessionError,Co as McpManager,bo as McpServerRuntime,Qn as PASTE_TMP_DIR_ENV,Yn as PASTE_TMP_TTL_MS,Bs as PLANNER_AGENT_NAME,En as PROMISE_PATTERN,qa as PROMPT_SECTION_REGISTRY,bu as PROTOCOL_EMITTER_TOOLS,gd as ProviderRecoveryCoordinator,Oi as READ_DEFAULT_LIMIT,Li as READ_MAX_LINE_CHARS,Ti as READ_PREFLIGHT_SIZE_BYTES,ia as REPO_EXPLORER_AGENT_NAME,sa as REPO_EXPLORER_TOOL_NAMES,Tn as Runner,$e as RuntimePermissionScopeUpgradeRequiredError,Ve as RuntimeTransportBoundaryError,Bd as SCOPED_REVIEW_OUTPUT_SCHEMA,zs as SCOUT_AGENT_NAME,Bu as SCOUT_THEN_AUTHOR_PROMPT_LINES,Ga as SELF_KNOWLEDGE_ROUTING_RULE,Da as SYSTEM_PROMPT,Rl as SYSTEM_WORKFLOW_LIMITS,md as StableBoundaryTracker,Gn as TARGET_RAW_SIZE_BYTES,Js as TASK_ENGINE_ROLE_AGENTS,Cu as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,Fu as TRACING_ENV,Ns as WORKER_AGENT_NAME,Kd as WORKFLOW_GENERATION_SYSTEM_PROMPT,$r as _resetRuntimeForTesting,vi as acquireExclusiveFileSystemEffectLease,Be as acquireKodaXInlineOwner,Gr as activate,Ue as activateKodaXSandbox,qn as actorQueueId,dc as analyzeAutoModeCall,us as analyzeChangedScope,Ul as analyzePowerShellMutation,Kr as appendAuditEntry,Wo as appendSessionLineageLabel,ar as applyAccountingDelta,Jd as applyFindingVerification,Vo as applySessionCompaction,es as applyToolResultGuardrail,Ho as archiveOldIslands,ac as assessAutoModeCall,Nu as authorWorkflowViaWorker,Tc as autoModeDenialShouldFallback,ai as awaitLatestCodingMemoryReviewDrain,gc as bashSignalCollector,Uu as bootstrapTracing,Bc as boundedRevise,xc as breakerShouldFallback,Gc as budgetCeiling,yl as buildApprovalSummary,cr as buildBlockedGoal,Na as buildCapabilityContextSections,hc as buildClassifierPrompt,ur as buildCompleteGoal,rr as buildCreatedGoal,wd as buildFallbackRoutingDecision,du as buildGoalRuntimeBinding,xo as buildInitializeCapabilities,Or as buildLlmReviewPrompt,Bi as buildManualToolDescription,x as buildMcpReverseCapabilities,dr as buildPausedGoal,Ya as buildPromptMessageContent,Wa as buildPromptSnapshot,hd as buildProviderCapabilitySnapshot,Id as buildProviderPolicyHintsForDecision,vd as buildProviderPolicyPromptNotes,cs as buildRepoIntelligenceContext,Is as buildRepoIntelligenceIndex,as as buildRepoOverview,lr as buildResumedGoal,Zd as buildScopedReviewFinalPrompt,Qd as buildScopedReviewPrimaryPrompt,Yd as buildScopedReviewVerificationPrompt,Gu as buildScoutThenAuthorPrompt,Ba as buildSelfKnowledgeRoutingRule,Go as buildSessionTree,Ja as buildSystemPrompt,Ha as buildSystemPromptSnapshot,La as buildToolResultBudget,Ka as buildToolResultBudgetFromUsage,fr as buildToolSearchIndex,gl as buildWorkflowCostReport,Ud as buildWorkflowGenerationSkillContext,Fd as buildWorkflowGenerationUserPrompt,si as canonicalMemoryProjectId,li as canonicalizeAgentHomePolicyPath,oc as canonicalizeAutoModePath,cc as checkAbsoluteDeny,Qa as checkIncompleteToolCalls,Ed as checkPromiseSignal,Xa as clampToolResultPolicyToBudget,Sl as clampWorkflowLimits,wc as classify,fc as classifyBashCommand,xi as classifyError,rs as classifyFileCategory,ud as classifyResilienceError,Ca as cleanupExpiredToolOutputs,lo as cleanupIncompleteToolCalls,Ma as cleanupUnreferencedToolOutputs,cn as clearRuntimeModelProviders,wi as clearShellExecutionEnvironmentCache,Dc as collectAllSignals,H as collectBashWriteTargets,tc as collectDeterministicBashWriteTargets,j as combineExtensionRuntimes,wu as computeInputSignature,Ou as computeRulesFingerprint,Vr as configureRuntime,Qe as connectKodaXRuntime,ad as consumeCompactionCooldown,qs as convertCapabilityReadResult,Ds as convertProviderSearchResults,No as countActiveLineageMessages,xn as countTokens,bn as createAgent,jc as createAgentHomeShellBoundaryGuardrail,Cc as createAutoModeDenialTracker,Wc as createAutoModeToolGuardrail,mc as createBashClassifierConfig,Y as createBashPrefixExtractor,Sa as createBuiltinToolDefinition,Ec as createCircuitBreaker,Su as createCodingMemoryInterventionRunner,$d as createCodingWorkflowBackend,sd as createCompactionAntiThrashState,br as createCtxProxy,Ht as createCustomProvider,Cl as createDefaultCodingAgent,Pu as createDenialTracker,E as createExtensionRuntime,Td as createExternalActorTurnExecutor,$n as createFileArtifactFromPath,kn as createHandoff,Vn as createImageArtifactFromPath,Cn as createInMemorySession,Ce as createInteractiveContext,M as createKodaXRuntime,fu as createKodaXTaskRunner,Od as createLocalCodingActorControl,uo as createMcpCapabilityId,Mo as createMcpManager,Ro as createMcpTransport,oi as createProductionLearningReviewer,Fa as createPromptSection,_d as createReasoningPlan,vl as createRunGraphWriter,nd as createRuntimeContextBudgetSnapshot,$c as createSessionControl,Do as createSessionLineage,Mu as createToolResultTruncationGuardrail,zn as createVideoArtifactFromPath,Wu as createWorkflowLifecycleController,zu as createWorkflowPatternTemplateModule,_l as createWorkflowRunManager,eu as decideWorkflowInvocation,_ as dedupeExtensionPathsByEntrypoint,co as defaultMcpCacheDir,Er as defaultPolicy,cl as deleteSavedWorkflow,ii as deriveCodingMemoryIdentity,di as deriveCodingMemoryReviewIdentities,Wr as disableSelfModify,wo as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,Ir as discoverExtensionsInDirectory,wr as discoverExtensionsInDirectoryDetailed,oa as discoverMarkdownAgents,Io as discoverOAuthEndpoints,Po as discoverProtectedResourceMetadata,il as discoverSavedWorkflows,De as doctorKodaXSandbox,ri as drainCodingMemoryReviewInbox,Zs as drainPendingSwaps,Ot as effortToLegacyReasoningMode,xu as emitVerdict,wl as emitWorkflowAgentDigest,He as enableKodaXDaemonOwner,ro as enqueueWithArtifacts,ra as ensureBuiltinRepoExplorerAgent,An as estimateTokens,td as estimateToolSchemaTokens,lc as evaluateAutoRulesCall,Rd as evaluateProviderPolicy,F as excludeExtensionPathsByEntrypoint,vr as exec,ke as executeCommand,ka as executeTool,Ko as extractArtifactLedger,qu as extractCommandPrefix,ed as extractComparableUserMessageText,Xs as extractHtmlTitle,So as extractInsufficientScope,Jl as extractPathsFromCommand,Za as extractPromptComparableText,yo as extractResourceMetadataUrl,Qo as extractTitleFromMessages,Lc as fileSignalCollector,Us as finalizeRetrievalResult,Zr as findByVersion,jl as findGitSubcommandIndex,$o as findPreviousUserEntryId,Tl as flattenArgv,Ll as flattenRedirections,Bo as forkSessionLineage,za as formatAgentsForPrompt,hu as formatParallelDispatchResult,Ki as formatSize,B as generateSavePattern,Jo as generateSessionId,Wd as generateWorkflow,Vd as generateWorkflowFromOptions,ua as getActiveExtensionRuntime,Kn as getAgentConfigHome,Xn as getAgentConfigPath,wa as getAllRegisteredTools,Dn as getAppDataDir,pn as getAvailableProviderNames,J as getBashOutsideProjectWriteRisk,ya as getBuiltinRegisteredToolDefinition,Ra as getBuiltinToolDefinition,nl as getBuiltinWorkflow,on as getCustomModelCapabilities,Qt as getCustomProvider,en as getCustomProviderList,nn as getCustomProviderModelDescriptors,tn as getCustomProviderModels,Zt as getCustomProviderNames,Sr as getDefaultExtensionDirectory,Cd as getDefaultLspService,El as getDefaultWorkflowRunManager,Eu as getDenialContext,Bl as getDirectShellBypassBlockReason,Ie as getGitRoot,bs as getImpactEstimate,Ge as getKodaXRuntimeOwnerPolicy,Ne as getKodaXRuntimeOwnerState,Xe as getKodaXSandboxCapability,Fe as getKodaXSandboxSetupGuidance,Va as getKodaxGlobalDir,go as getMcpCachePaths,Bt as getModelCapabilities,io as getModelInputCapabilities,Es as getModuleContext,Zl as getPlanModeAllowedWritablePaths,Q as getPlanModeBlockReason,xs as getProcessContext,Ut as getProvider,Wt as getProviderConfiguredCapabilityProfile,jt as getProviderConfiguredReasoningCapability,ye as getProviderList,Re as getProviderModel,zt as getProviderModelDescriptors,Vt as getProviderModels,ha as getRegisteredToolDefinition,_s as getRepoIntelligenceIndex,ds as getRepoOverview,ks as getRepoRoutingSignals,Aa as getRequiredToolParams,an as getRuntimeModelProvider,ln as getRuntimeModelProviderNames,qo as getSessionLineagePath,Fo as getSessionMessagesFromLineage,As as getSymbolContext,fa as getTool,ga as getToolDefinition,va as getToolRegistrations,Zi as getToolResultPolicy,he as getVersion,$u as getWorkflowPatternTemplate,Wl as gitSignatureInspectionMayExecute,or as goalTokenDelta,Zc as hasExplicitNaturalLanguageWorkflowIntent,Ys as hasPendingSwap,fe as hydrateProcessEnvFromShell,jn as inferImageMediaType,nc as inferPermissionMode,Pd as inferTaskType,Wn as inferVideoMediaType,Qi as inspectEditFailure,ws as inspectRepoIntelligenceRuntime,ni as installProductionLearningReviewer,fi as isAgentHomeHardMutationTarget,gi as isAgentHomeHardRemovalTarget,G as isAlwaysConfirmPath,ui as isAutoReadableAgentHomePath,sc as isAutoReadableKodaxPath,ci as isAutoWritableAgentHomePath,rc as isAutoWritableKodaxPath,$ as isBashReadCommand,Yl as isBashReadCommandAutoAllowed,Gl as isBashWriteCommand,Ql as isCommandOnProtectedPath,ic as isCredentialBearingKodaxPath,Yt as isCustomProviderName,_u as isDeniedRecently,zl as isHelpCommand,un as isKnownProvider,Ml as isNullDevice,gu as isParallelDispatchDirective,N as isPathInsideProject,ec as isPlanModeAllowedPath,Fl as isPowerShellMutationCommand,mi as isProtectedAgentHomeMutationTarget,pi as isProtectedAgentHomeReadTarget,hi as isProtectedAgentHomeRemovalTarget,Se as isProviderConfigured,$t as isProviderName,dn as isRuntimeModelProviderName,pd as isSessionRecoveryCandidateError,$l as isShellReadOnlyArgv,yr as isSupportedExtensionModulePath,z as isToolCallAllowed,W as isToolFileMutation,Ea as isToolMutation,_a as isToolNetworkRead,Ia as isToolPlanModeAllowed,pr as isValidTokenBudget,Ad as languageIdForPath,ea as listAll,gn as listAllModelCapabilities,Jr as listArtifacts,Gt as listBuiltinModelCapabilities,Pa as listBuiltinToolDefinitions,ol as listBuiltinWorkflows,er as listCodingDispatchableAgents,Yr as listConstructed,sn as listCustomProviderModelCapabilities,ba as listToolDefinitions,xa as listTools,Vu as listWorkflowPatternTemplates,$a as loadAgentsFiles,ta as loadAgentsFromMarkdown,Ee as loadAutoModeSettings,Xu as loadAutoRules,Pe as loadConfig,pl as loadGeneratedWorkflowFromRun,kr as loadHandler,na as loadMarkdownAgentScope,al as loadSavedWorkflow,rl as loadSavedWorkflowCapsule,Ao as loadValidToken,nr as makeDisabledGoalToolsContext,Mt as mapLegacyReasoningModeToEffortIntent,Ta as maybeRunReferenceAwareToolOutputGc,Oa as maybeRunToolOutputGc,uu as mcpRootsFromWorkspace,Xo as mergeArtifactLedger,Hd as mergeScopedReviewResults,Ri as normalizeKodaXAgentMode,po as normalizeMcpCapabilityId,Nn as normalizePastedImage,K as normalizeReasoningEffortValue,Nd as normalizeScopedReviewResult,yi as normalizeShellExecutionContract,sl as normalizeWorkflowModule,Ua as orderPromptSections,zd as parallelInvestigation,Nl as parseAllowedToolPattern,Ku as parseAutoRules,Ol as parseBashCommand,vc as parseClassifierOutput,be as parseCommand,Ji as parseEditToolError,Vl as parseGitGrepShortOption,Tr as parseLlmReviewVerdict,mo as parseMcpCapabilityId,Kc as parseModelSpec,X as parseReasoningEffortEnv,We as parseRuntimeEvent,Pi as parseSandboxEnvironmentPass,bt as parseTimeoutSecEnvMs,hr as parseToolSearchQuery,jd as parseWorkflowGeneration,Eo as performOAuthLogin,Zn as persistImageAsBlock,Ui as persistToolOutput,id as planToolExposure,fl as preflightWorkflowCapsule,k as prepareRuntimeConfig,Cs as prewarmRepoIntelligenceCaches,Le as processSpecialSyntax,Ld as providerResilienceConfigFromTimeouts,eo as prunePasteTmpDir,_e as rateLimitedCall,Jn as readAndNormalizeClipboardImage,Qr as readArtifact,Xr as readAuditEntries,qr as readBudget,Hn as readClipboardImage,jr as readDisableState,Fc as readSpeculativeWindowFromEnv,Tu as readTrustState,Sd as reasoningModeToDepth,fd as reconstructMessagesWithToolGuard,Oc as recordAutoModeAllow,Mc as recordAutoModeBlock,nu as recordBlockerAttempt,Ac as recordBreakerError,dd as recordCompactionSavings,Iu as recordDenial,Qc as registerCodingInvariants,ge as registerConfiguredCustomProviders,A as registerConfiguredMcpCapabilityProvider,Jt as registerCustomProviders,rn as registerModelProvider,_o as registerOAuthClient,pu as registerOfficialSandboxExtension,On as registerPresetDispatcher,ma as registerTool,Nr as rehydrateActiveArtifacts,Fr as remainingSelfModifyBudget,ll as renameSavedWorkflow,ps as renderChangedScope,ys as renderImpactEstimate,hs as renderModuleContext,Rs as renderProcessContext,ja as renderPromptSections,ls as renderRepoOverview,Fs as renderRetrievalResult,vs as renderSymbolContext,cu as replaceConfiguredMcpCapabilityProvider,ul as replaceSavedWorkflow,xd as reportLspDiagnostics,ou as resetBlockerCounter,Ur as resetBudget,O as resolveAcpLogLevel,Ae as resolveAutoModeSettings,Xc as resolveClassifierModel,tr as resolveCodingDispatchableAgent,Qs as resolveConstructedAgent,Pr as resolveExtensionEntrypoint,zi as resolveKodaXManual,fn as resolveModelCapabilities,q as resolveProvider,mn as resolveProviderModelDescriptors,Tt as resolveReasoningEffort,Lt as resolveReasoningEffortForModelSwitch,yd as resolveReasoningMode,Ps as resolveRepoIntelligenceMode,Ss as resolveRepoIntelligenceRuntimeConfig,cd as resolveResilienceConfig,Uo as resolveSessionLineageTarget,mr as resolveToolBridgeTarget,Nc as resolveToolCapability,Fi as resolveToolOutputDir,hn as resolveWireEffort,Dd as resolveWorkflowGenerationTimeoutMs,ju as resolveWorkflowIdentity,Hr as revoke,zo as rewindSessionLineage,aa as rollbackSelfModify,It as runAcpServer,Cr as runAstRules,Oe as runInkInteractiveMode,Te as runInteractiveMode,Vc as runKodaX,je as runKodaXSandboxed,Lr as runLlmReview,lu as runManagedTask,mu as runOrchestration,Il as runWorkflowFromOptions,Pl as runWorkflowModule,hl as safeWorkflowArtifactName,we as saveConfig,dl as saveGeneratedWorkflow,ml as saveGeneratedWorkflowFromRun,el as scopedReview,fo as searchMcpCatalog,gr as searchToolIndex,ca as setActiveExtensionRuntime,Ln as setAgentConfigHome,Je as setKodaXRuntimeOwnerMode,jo as setSessionLineageActiveEntry,qe as setupKodaXSandbox,Si as shellExecutionContractFingerprint,sr as shouldFlipBudgetLimited,rd as shouldSkipLlmCompaction,V as shutdownDefaultLspService,Uc as speculativeRace,zr as stage,zc as startKodaX,Al as startManagedWorkflow,Rc as stripAssistantText,Ks as stripHtmlToText,Br as testArtifact,xt as timeoutSecToMs,Hl as tokenizeRawCommandStages,ss as toolAskUserQuestion,ts as toolBash,gs as toolChangedDiff,fs as toolChangedScope,Vs as toolCodeSearch,Hi as toolEdit,ns as toolGlob,os as toolGrep,Ls as toolImpactEstimate,Yi as toolInsertAfterAnchor,Ms as toolModuleContext,Hc as toolPermission,Ts as toolProcessContext,ji as toolRead,ms as toolRepoOverview,$s as toolSemanticLookup,Os as toolSymbolContext,is as toolUndo,Ws as toolWebFetch,js as toolWebSearch,Ni as toolWrite,Me as touchContext,Xi as truncateHead,qi as truncateLine,Di as truncateTail,Lu as trustProjectRules,ir as turnWallTimeDelta,ao as validateAndFixToolHistory,Nt as validateCustomProviderConfig,qd as validateGeneratedWorkflowSource,so as validateInputArtifactsForModel,vu as validateSubtaskIndependence,Mr as validateToolSchemaForProvider,au as verifyGoalCompletion,ze as waitForRuntimeDaemonShutdown,Rr as webhook,su as withGoalBeforeNextTurn,ru as withGoalStopHook,Gi as withManualToolBranding,Hs as workerAgent,tu as workflowStartOutcomeConsumesTurn,Hu as writeReviewPackets};
9
+ `))},"onError"),beforeToolExecute:s(async(i,r,a)=>{let d=await this.evaluateToolPermission(e,i,r,a?.toolId);return d.allowed?!0:d.override??!1},"beforeToolExecute")}}}async evaluateToolPermission(e,t,o,i){if(this.events.emit({type:"tool_permission_evaluated",sessionId:e.sessionId,tool:t,toolId:i??null,permissionMode:e.permissionMode}),t==="bash"){let c=typeof o.command=="string"?o.command:"";if($(c))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,o,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 c=Q(t,o,e.cwd);return c?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:i??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:i??null,outcome:"auto_allowed_plan_mode"}),{allowed:!0})}let r=T(t)&&typeof o.path=="string"&&G(h.resolve(e.cwd,o.path),e.cwd),a=Z(e.permissionMode).has(t),d=e.permissionMode==="auto-in-project"&&(T(t)&&typeof o.path=="string"&&!N(o.path,e.cwd)||t==="bash"&&typeof o.command=="string"&&J(o.command,e.cwd).dangerous);return!r&&!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,o,i)}async requestPermissionFromClient(e,t,o,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 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:i??se(),title:t,kind:re(t),rawInput:o,locations:ae(t,o),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,B(t,o,!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,o){o.catch(i=>{if(!this.connection||this.connection.signal.aborted)return;let r=i instanceof Error?i.message:String(i);this.events.emit({type:"notification_failed",sessionId:t,label:e,error:r})})}};async function Pt(n={}){let e=new I(n),t=ot.toWeb(y.stdin),o=it.toWeb(y.stdout);e.attach(t,o);try{await e.waitForClose()}finally{await e.dispose()}}s(Pt,"runAcpServer");export{ie as ACP_LOG_LEVELS,rd as ALWAYS_RESIDENT_TOOL_NAMES,Mc as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,Oc as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,P as AcpEventEmitter,S as AcpLogger,Uu as BASH_POLICY_SPEC,jl as BASH_SAFE_READ_COMMANDS,Ul as BASH_WRITE_COMMANDS,au as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Ac as BREAKER_ERROR_THRESHOLD,xc as BREAKER_WINDOW_MS,Ae as BUILTIN_COMMANDS,il as BUILTIN_WORKFLOWS,xi as CANCELLED_TOOL_RESULT_MESSAGE,Ai as CANCELLED_TOOL_RESULT_PREFIX,_c as CLASSIFIER_MAX_OUTPUT_TOKENS,Ou as CODING_AGENT_MARKER,Zc as CODING_INVARIANTS,Cl as CODING_SUMMARY_PROMPT,Ml as CODING_UPDATE_SUMMARY_PROMPT,kr as CapabilityDeniedError,tu as Client,Ld as CodingActorSession,pa as CombinedExtensionRuntime,Cr as ConstructionManifestError,Ic as DEFAULT_CLASSIFIER_RETRY_TIMEOUT_MS,wc as DEFAULT_CLASSIFIER_TIMEOUT_MS,Ol as DEFAULT_CODING_AGENT_NAME,gc as DEFAULT_DANGEROUS_PATTERNS,xr as DEFAULT_HANDLER_TIMEOUT_MS,pd as DEFAULT_RESILIENCE_CONFIG,fc as DEFAULT_SAFE_PATTERNS,Ur as DEFAULT_SELF_MODIFY_BUDGET,jc as DEFAULT_SPECULATIVE_WINDOW_MS,ki as DEFAULT_TOOL_OUTPUT_MAX_BYTES,bi as DEFAULT_TOOL_OUTPUT_MAX_LINES,Fd as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,kn as DefaultSummaryCompaction,ku as EMIT_VERDICT_TOOL_NAME,_i as ErrorCategory,ql as FILE_MODIFICATION_TOOLS,Jd as FINDING_VERIFICATION_OUTPUT_SCHEMA,C as FileSessionStorage,zs as GENERATOR_AGENT_NAME,qn as ImageResizeError,wn as KODAX_API_MIN_INTERVAL,Le as KODAX_ASRT_VERSION,b as KODAX_CONFIG_FILE,D as KODAX_DEFAULT_PROVIDER,hn as KODAX_DEFAULT_TIMEOUT,ue as KODAX_DIR,to as KODAX_FILE_MEDIA_TYPES,Rn as KODAX_HARD_TIMEOUT,Zn as KODAX_IMAGE_MEDIA_TYPES,Sn as KODAX_MAX_INCOMPLETE_RETRIES,vn as KODAX_MAX_RETRIES,gn as KODAX_MAX_TOKENS,Dt as KODAX_PROVIDERS,Xt as KODAX_PROVIDER_SNAPSHOTS,xt as KODAX_REASONING_MODE_SEQUENCE,yn as KODAX_RETRY_BASE_DELAY,pe as KODAX_SESSIONS_DIR,bt as KODAX_STABLE_EFFORT_INTENTS,Pn as KODAX_STAGGER_DELAY,ga as KODAX_TOOLS,ji as KODAX_UNDERLYING_CAPABILITY_TOPICS,he as KODAX_VERSION,eo as KODAX_VIDEO_MEDIA_TYPES,I as KodaXAcpServer,Lt as KodaXAnthropicCompatProvider,Tt as KodaXBaseProvider,tu as KodaXClient,wt as KodaXError,ua as KodaXExtensionRuntime,Dn as KodaXMediaError,Kt as KodaXOpenAICompatProvider,It as KodaXProviderError,_t as KodaXRateLimitError,wi as KodaXSessionError,Ii as KodaXTerminalError,Pi as KodaXToolError,Yo as LEARNING_REVIEW_PROMPT_SHA256,Zo as LEARNING_REVIEW_SCHEMA_SHA256,Jo as LEARNING_REVIEW_SYSTEM_PROMPT,Qo as LEARNING_REVIEW_TOOL,Co as LINEAGE_ENTRY_TYPES,Md as LSP_SERVERS,Oo as LineageCompaction,Mo as LineageExtension,Od as LspService,Wi as MANUAL_REGISTRY,Ui as MANUAL_TOPIC_IDS,$n as MAX_DIMENSION,Pu as MEMORY_INTERVENTION_SELECTOR_PROMPT,wu as MEMORY_INTERVENTION_SELECTOR_SHA256,Fl as MODIFICATION_TOOLS,go as McpAuthRequiredError,xo as McpCapabilityProvider,fo as McpExpiredSessionError,bo as McpManager,Ao as McpServerRuntime,Hn as PASTE_TMP_DIR_ENV,Jn as PASTE_TMP_TTL_MS,$s as PLANNER_AGENT_NAME,In as PROMISE_PATTERN,ja as PROMPT_SECTION_REGISTRY,Mu as PROTOCOL_EMITTER_TOOLS,vd as ProviderRecoveryCoordinator,Ci as READ_DEFAULT_LIMIT,Oi as READ_MAX_LINE_CHARS,Mi as READ_PREFLIGHT_SIZE_BYTES,aa as REPO_EXPLORER_AGENT_NAME,da as REPO_EXPLORER_TOOL_NAMES,Mn as Runner,Ve as RuntimePermissionScopeUpgradeRequiredError,We as RuntimeTransportBoundaryError,Hd as SCOPED_REVIEW_OUTPUT_SCHEMA,Vs as SCOUT_AGENT_NAME,Hu as SCOUT_THEN_AUTHOR_PROMPT_LINES,Ja as SELF_KNOWLEDGE_ROUTING_RULE,Ua as SYSTEM_PROMPT,Pl as SYSTEM_WORKFLOW_LIMITS,hd as StableBoundaryTracker,zn as TARGET_RAW_SIZE_BYTES,Ns as TASK_ENGINE_ROLE_AGENTS,Tu as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,Wu as TRACING_ENV,Bs as WORKER_AGENT_NAME,qd as WORKFLOW_GENERATION_SYSTEM_PROMPT,Gr as _resetRuntimeForTesting,gi as acquireExclusiveFileSystemEffectLease,ze as acquireKodaXInlineOwner,Jr as activate,Fe as activateKodaXSandbox,Xn as actorQueueId,uc as analyzeAutoModeCall,ls as analyzeChangedScope,Vl as analyzePowerShellMutation,qr as appendAuditEntry,Uo as appendSessionLineageLabel,sr as applyAccountingDelta,Zd as applyFindingVerification,jo as applySessionCompaction,Yi as applyToolResultGuardrail,Go as archiveOldIslands,cc as assessAutoModeCall,Qu as authorWorkflowViaWorker,Xc as autoModeDenialShouldFallback,si as awaitLatestCodingMemoryReviewDrain,vc as bashSignalCollector,Vu as bootstrapTracing,Hc as boundedRevise,Cc as breakerShouldFallback,Jc as budgetCeiling,wl as buildApprovalSummary,dr as buildBlockedGoal,Qa as buildCapabilityContextSections,yc as buildClassifierPrompt,lr as buildCompleteGoal,ir as buildCreatedGoal,Ed as buildFallbackRoutingDecision,uu as buildGoalRuntimeBinding,Eo as buildInitializeCapabilities,Kr as buildLlmReviewPrompt,$i as buildManualToolDescription,x as buildMcpReverseCapabilities,rr as buildPausedGoal,td as buildPromptMessageContent,za as buildPromptSnapshot,yd as buildProviderCapabilitySnapshot,Ad as buildProviderPolicyHintsForDecision,Sd as buildProviderPolicyPromptNotes,ds as buildRepoIntelligenceContext,Ps as buildRepoIntelligenceIndex,ss as buildRepoOverview,ar as buildResumedGoal,nl as buildScopedReviewFinalPrompt,el as buildScopedReviewPrimaryPrompt,tl as buildScopedReviewVerificationPrompt,Ju as buildScoutThenAuthorPrompt,Ha as buildSelfKnowledgeRoutingRule,zo as buildSessionTree,Za as buildSystemPrompt,Ya as buildSystemPromptSnapshot,Da as buildToolResultBudget,qa as buildToolResultBudgetFromUsage,Rr as buildToolSearchIndex,vl as buildWorkflowCostReport,Vd as buildWorkflowGenerationSkillContext,Wd as buildWorkflowGenerationUserPrompt,oi as canonicalMemoryProjectId,ai as canonicalizeAgentHomePolicyPath,rc as canonicalizeAutoModePath,mc as checkAbsoluteDeny,ed as checkIncompleteToolCalls,bd as checkPromiseSignal,Fa as clampToolResultPolicyToBudget,Il as clampWorkflowLimits,Ec as classify,Rc as classifyBashCommand,Ei as classifyError,is as classifyFileCategory,fd as classifyResilienceError,Ta as cleanupExpiredToolOutputs,ro as cleanupIncompleteToolCalls,La as cleanupUnreferencedToolOutputs,dn as clearRuntimeModelProviders,Si as clearShellExecutionEnvironmentCache,Uc as collectAllSignals,H as collectBashWriteTargets,ic as collectDeterministicBashWriteTargets,j as combineExtensionRuntimes,Eu as computeInputSignature,Ku as computeRulesFingerprint,Br as configureRuntime,Je as connectKodaXRuntime,cd as consumeCompactionCooldown,Xs as convertCapabilityReadResult,Ks as convertProviderSearchResults,Bo as countActiveLineageMessages,En as countTokens,An as createAgent,$c as createAgentHomeShellBoundaryGuardrail,Tc as createAutoModeDenialTracker,zc as createAutoModeToolGuardrail,hc as createBashClassifierConfig,Y as createBashPrefixExtractor,Ia as createBuiltinToolDefinition,bc as createCircuitBreaker,Iu as createCodingMemoryInterventionRunner,Gd as createCodingWorkflowBackend,dd as createCompactionAntiThrashState,Mr as createCtxProxy,Gt as createCustomProvider,Tl as createDefaultCodingAgent,_u as createDenialTracker,E as createExtensionRuntime,Xd as createExternalActorTurnExecutor,Wn as createFileArtifactFromPath,xn as createHandoff,jn as createImageArtifactFromPath,bn as createInMemorySession,ke as createInteractiveContext,M as createKodaXRuntime,Ru as createKodaXTaskRunner,Kd as createLocalCodingActorControl,lo as createMcpCapabilityId,ko as createMcpManager,ho as createMcpTransport,ti as createProductionLearningReviewer,Wa as createPromptSection,xd as createReasoningPlan,Sl as createRunGraphWriter,sd as createRuntimeContextBudgetSnapshot,Gc as createSessionControl,Ko as createSessionLineage,Lu as createToolResultTruncationGuardrail,Vn as createVideoArtifactFromPath,zu as createWorkflowLifecycleController,Nu as createWorkflowPatternTemplateModule,xl as createWorkflowRunManager,ou as decideWorkflowInvocation,_ as dedupeExtensionPathsByEntrypoint,ao as defaultMcpCacheDir,br as defaultPolicy,ml as deleteSavedWorkflow,ni as deriveCodingMemoryIdentity,ri as deriveCodingMemoryReviewIdentities,zr as disableSelfModify,So as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,Ar as discoverExtensionsInDirectory,Er as discoverExtensionsInDirectoryDetailed,ra as discoverMarkdownAgents,Po as discoverOAuthEndpoints,yo as discoverProtectedResourceMetadata,al as discoverSavedWorkflows,Xe as doctorKodaXSandbox,ii as drainCodingMemoryReviewInbox,Qs as drainPendingSwaps,Ct as effortToLegacyReasoningMode,Cu as emitVerdict,El as emitWorkflowAgentDigest,Ne as enableKodaXDaemonOwner,io as enqueueWithArtifacts,la as ensureBuiltinRepoExplorerAgent,_n as estimateTokens,id as estimateToolSchemaTokens,pc as evaluateAutoRulesCall,Pd as evaluateProviderPolicy,F as excludeExtensionPathsByEntrypoint,Sr as exec,be as executeCommand,hr as executeRunScopedTool,Oa as executeTool,To as extractArtifactLedger,ju as extractCommandPrefix,od as extractComparableUserMessageText,Ls as extractHtmlTitle,vo as extractInsufficientScope,Zl as extractPathsFromCommand,nd as extractPromptComparableText,Ro as extractResourceMetadataUrl,Ho as extractTitleFromMessages,Dc as fileSignalCollector,qs as finalizeRetrievalResult,na as findByVersion,$l as findGitSubcommandIndex,Wo as findPreviousUserEntryId,Xl as flattenArgv,Dl as flattenRedirections,$o as forkSessionLineage,Na as formatAgentsForPrompt,yu as formatParallelDispatchResult,Ti as formatSize,B as generateSavePattern,No as generateSessionId,zd as generateWorkflow,Bd as generateWorkflowFromOptions,fa as getActiveExtensionRuntime,Tn as getAgentConfigHome,Ln as getAgentConfigPath,Ea as getAllRegisteredTools,Kn as getAppDataDir,cn as getAvailableProviderNames,J as getBashOutsideProjectWriteRisk,wa as getBuiltinRegisteredToolDefinition,Pa as getBuiltinToolDefinition,sl as getBuiltinWorkflow,tn as getCustomModelCapabilities,Ht as getCustomProvider,Yt as getCustomProviderList,en as getCustomProviderModelDescriptors,Zt as getCustomProviderModels,Qt as getCustomProviderNames,Ir as getDefaultExtensionDirectory,Td as getDefaultLspService,bl as getDefaultWorkflowRunManager,bu as getDenialContext,Hl as getDirectShellBypassBlockReason,we as getGitRoot,As as getImpactEstimate,Be as getKodaXRuntimeOwnerPolicy,Ge as getKodaXRuntimeOwnerState,Ke as getKodaXSandboxCapability,qe as getKodaXSandboxSetupGuidance,Ba as getKodaxGlobalDir,mo as getMcpCachePaths,$t as getModelCapabilities,no as getModelInputCapabilities,Is as getModuleContext,nc as getPlanModeAllowedWritablePaths,Q as getPlanModeBlockReason,Es as getProcessContext,qt as getProvider,Ut as getProviderConfiguredCapabilityProfile,Ft as getProviderConfiguredReasoningCapability,ve as getProviderList,Re as getProviderModel,Vt as getProviderModelDescriptors,jt as getProviderModels,ya as getRegisteredToolDefinition,ws as getRepoIntelligenceIndex,rs as getRepoOverview,xs as getRepoRoutingSignals,ka as getRequiredToolParams,sn as getRuntimeModelProvider,an as getRuntimeModelProviderNames,Xo as getSessionLineagePath,Do as getSessionMessagesFromLineage,_s as getSymbolContext,Ra as getTool,va as getToolDefinition,Sa as getToolRegistrations,Qi as getToolResultPolicy,ge as getVersion,Gu as getWorkflowPatternTemplate,zl as gitSignatureInspectionMayExecute,tr as goalTokenDelta,nu as hasExplicitNaturalLanguageWorkflowIntent,Js as hasPendingSwap,me as hydrateProcessEnvFromShell,Fn as inferImageMediaType,sc as inferPermissionMode,_d as inferTaskType,Un as inferVideoMediaType,Hi as inspectEditFailure,Ss as inspectRepoIntelligenceRuntime,ei as installProductionLearningReviewer,pi as isAgentHomeHardMutationTarget,mi as isAgentHomeHardRemovalTarget,G as isAlwaysConfirmPath,li as isAutoReadableAgentHomePath,dc as isAutoReadableKodaxPath,di as isAutoWritableAgentHomePath,lc as isAutoWritableKodaxPath,$ as isBashReadCommand,tc as isBashReadCommandAutoAllowed,Jl as isBashWriteCommand,ec as isCommandOnProtectedPath,ac as isCredentialBearingKodaxPath,Jt as isCustomProviderName,xu as isDeniedRecently,Nl as isHelpCommand,ln as isKnownProvider,Ll as isNullDevice,vu as isParallelDispatchDirective,N as isPathInsideProject,oc as isPlanModeAllowedPath,Wl as isPowerShellMutationCommand,ui as isProtectedAgentHomeMutationTarget,ci as isProtectedAgentHomeReadTarget,fi as isProtectedAgentHomeRemovalTarget,ye as isProviderConfigured,Wt as isProviderName,rn as isRuntimeModelProviderName,gd as isSessionRecoveryCandidateError,Gl as isShellReadOnlyArgv,wr as isSupportedExtensionModulePath,z as isToolCallAllowed,W as isToolFileMutation,ba as isToolMutation,xa as isToolNetworkRead,Aa as isToolPlanModeAllowed,cr as isValidTokenBudget,kd as languageIdForPath,oa as listAll,mn as listAllModelCapabilities,Zr as listArtifacts,zt as listBuiltinModelCapabilities,_a as listBuiltinToolDefinitions,rl as listBuiltinWorkflows,Ys as listCodingDispatchableAgents,ta as listConstructed,nn as listCustomProviderModelCapabilities,pr as listRunScopedTools,Ma as listToolDefinitions,Ca as listTools,Bu as listWorkflowPatternTemplates,Ga as loadAgentsFiles,ia as loadAgentsFromMarkdown,_e as loadAutoModeSettings,Fu as loadAutoRules,Se as loadConfig,gl as loadGeneratedWorkflowFromRun,Or as loadHandler,sa as loadMarkdownAgentScope,cl as loadSavedWorkflow,ll as loadSavedWorkflowCapsule,_o as loadValidToken,fr as lookupRunScopedTool,er as makeDisabledGoalToolsContext,kt as mapLegacyReasoningModeToEffortIntent,Xa as maybeRunReferenceAwareToolOutputGc,Ka as maybeRunToolOutputGc,fu as mcpRootsFromWorkspace,Lo as mergeArtifactLedger,Yd as mergeScopedReviewResults,hi as normalizeKodaXAgentMode,co as normalizeMcpCapabilityId,Bn as normalizePastedImage,K as normalizeReasoningEffortValue,Qd as normalizeScopedReviewResult,Ri as normalizeShellExecutionContract,dl as normalizeWorkflowModule,Va as orderPromptSections,Nd as parallelInvestigation,Ql as parseAllowedToolPattern,qu as parseAutoRules,Kl as parseBashCommand,Sc as parseClassifierOutput,xe as parseCommand,Ni as parseEditToolError,Bl as parseGitGrepShortOption,Xr as parseLlmReviewVerdict,uo as parseMcpCapabilityId,qc as parseModelSpec,X as parseReasoningEffortEnv,je as parseRuntimeEvent,yi as parseSandboxEnvironmentPass,At as parseTimeoutSecEnvMs,yr as parseToolSearchQuery,$d as parseWorkflowGeneration,Io as performOAuthLogin,Qn as persistImageAsBlock,qi as persistToolOutput,ad as planToolExposure,Rl as preflightWorkflowCapsule,k as prepareRuntimeConfig,bs as prewarmRepoIntelligenceCaches,Te as processSpecialSyntax,Dd as providerResilienceConfigFromTimeouts,Yn as prunePasteTmpDir,Ie as rateLimitedCall,Nn as readAndNormalizeClipboardImage,ea as readArtifact,Fr as readAuditEntries,jr as readBudget,Gn as readClipboardImage,$r as readDisableState,Wc as readSpeculativeWindowFromEnv,Xu as readTrustState,Id as reasoningModeToDepth,Rd as reconstructMessagesWithToolGuard,Kc as recordAutoModeAllow,Lc as recordAutoModeBlock,su as recordBlockerAttempt,kc as recordBreakerError,ud as recordCompactionSavings,Au as recordDenial,eu as registerCodingInvariants,fe as registerConfiguredCustomProviders,A as registerConfiguredMcpCapabilityProvider,Nt as registerCustomProviders,on as registerModelProvider,wo as registerOAuthClient,gu as registerOfficialSandboxExtension,Cn as registerPresetDispatcher,ha as registerTool,Qr as rehydrateActiveArtifacts,Wr as remainingSelfModifyBudget,pl as renameSavedWorkflow,cs as renderChangedScope,Rs as renderImpactEstimate,fs as renderModuleContext,hs as renderProcessContext,$a as renderPromptSections,as as renderRepoOverview,Ds as renderRetrievalResult,gs as renderSymbolContext,mu as replaceConfiguredMcpCapabilityProvider,fl as replaceSavedWorkflow,Cd as reportLspDiagnostics,ru as resetBlockerCounter,Vr as resetBudget,O as resolveAcpLogLevel,Ee as resolveAutoModeSettings,Fc as resolveClassifierModel,Zs as resolveCodingDispatchableAgent,Hs as resolveConstructedAgent,_r as resolveExtensionEntrypoint,Vi as resolveKodaXManual,pn as resolveModelCapabilities,q as resolveProvider,un as resolveProviderModelDescriptors,Mt as resolveReasoningEffort,Ot as resolveReasoningEffortForModelSwitch,wd as resolveReasoningMode,ys as resolveRepoIntelligenceMode,vs as resolveRepoIntelligenceRuntimeConfig,md as resolveResilienceConfig,qo as resolveSessionLineageTarget,ur as resolveToolBridgeTarget,Qc as resolveToolCapability,Di as resolveToolOutputDir,fn as resolveWireEffort,Ud as resolveWorkflowGenerationTimeoutMs,$u as resolveWorkflowIdentity,Yr as revoke,Vo as rewindSessionLineage,ca as rollbackSelfModify,Pt as runAcpServer,Tr as runAstRules,Me as runInkInteractiveMode,Oe as runInteractiveMode,Bc as runKodaX,Ue as runKodaXSandboxed,Dr as runLlmReview,pu as runManagedTask,hu as runOrchestration,mr as runScopedToolMap,Al as runWorkflowFromOptions,_l as runWorkflowModule,yl as safeWorkflowArtifactName,Pe as saveConfig,ul as saveGeneratedWorkflow,hl as saveGeneratedWorkflowFromRun,ol as scopedReview,po as searchMcpCatalog,vr as searchToolIndex,ma as setActiveExtensionRuntime,On as setAgentConfigHome,He as setKodaXRuntimeOwnerMode,Fo as setSessionLineageActiveEntry,De as setupKodaXSandbox,vi as shellExecutionContractFingerprint,or as shouldFlipBudgetLimited,ld as shouldSkipLlmCompaction,V as shutdownDefaultLspService,Vc as speculativeRace,Nr as stage,Nc as startKodaX,kl as startManagedWorkflow,Pc as stripAssistantText,Ts as stripHtmlToText,Hr as testArtifact,Et as timeoutSecToMs,gr as toModelToolDefinition,Yl as tokenizeRawCommandStages,os as toolAskUserQuestion,Zi as toolBash,ms as toolChangedDiff,ps as toolChangedScope,js as toolCodeSearch,Gi as toolEdit,es as toolGlob,ts as toolGrep,Os as toolImpactEstimate,Ji as toolInsertAfterAnchor,ks as toolModuleContext,Yc as toolPermission,Ms as toolProcessContext,Fi as toolRead,us as toolRepoOverview,Ws as toolSemanticLookup,Cs as toolSymbolContext,ns as toolUndo,Us as toolWebFetch,Fs as toolWebSearch,Bi as toolWrite,Ce as touchContext,Li as truncateHead,Xi as truncateLine,Ki as truncateTail,Du as trustProjectRules,nr as turnWallTimeDelta,so as validateAndFixToolHistory,Bt as validateCustomProviderConfig,jd as validateGeneratedWorkflowSource,oo as validateInputArtifactsForModel,Su as validateSubtaskIndependence,Lr as validateToolSchemaForProvider,cu as verifyGoalCompletion,$e as waitForRuntimeDaemonShutdown,Pr as webhook,du as withGoalBeforeNextTurn,lu as withGoalStopHook,zi as withManualToolBranding,Gs as workerAgent,iu as workflowStartOutcomeConsumesTurn,Yu as writeReviewPackets};
@@ -25,5 +25,5 @@ if (process.env.KODAX_DISABLE_HARDENING !== '1') {
25
25
  delete process.env.DYLD_LIBRARY_PATH;
26
26
  }
27
27
 
28
- var c=Object.defineProperty;var r=(e,o)=>c(e,"name",{value:o,configurable:!0});import{readFileSync as p}from"node:fs";import{pathToFileURL as m}from"node:url";function f(e){return e.length===1&&(e[0]==="-r"||e[0]==="--resume")}r(f,"isBareResumeRequest");function y(e){return e.length===1&&(e[0]==="-V"||e[0]==="--version")}r(y,"isVersionRequest");function v(){return"0.7.87"}r(v,"readBootstrapVersion");async function g(e={}){let o=e.argv??process.argv,n=e.stdin??process.stdin,d=e.loadResume??(()=>import("./kodax_resume.js")),u=e.loadCli??(()=>import("./kodax_cli.js")),s,i=r(()=>(s??=u(),s),"loadCliOnce"),a=o.slice(2);if(y(a)){process.stdout.write(`${v()}
28
+ var c=Object.defineProperty;var r=(e,o)=>c(e,"name",{value:o,configurable:!0});import{readFileSync as p}from"node:fs";import{pathToFileURL as m}from"node:url";function f(e){return e.length===1&&(e[0]==="-r"||e[0]==="--resume")}r(f,"isBareResumeRequest");function y(e){return e.length===1&&(e[0]==="-V"||e[0]==="--version")}r(y,"isVersionRequest");function v(){return"0.7.89"}r(v,"readBootstrapVersion");async function g(e={}){let o=e.argv??process.argv,n=e.stdin??process.stdin,d=e.loadResume??(()=>import("./kodax_resume.js")),u=e.loadCli??(()=>import("./kodax_cli.js")),s,i=r(()=>(s??=u(),s),"loadCliOnce"),a=o.slice(2);if(y(a)){process.stdout.write(`${v()}
29
29
  `);return}if(f(a)){let t=await(await d()).resolveBareResume({beforeSelect:r(async()=>{await i()},"beforeSelect")});if(t.kind==="exit"){n.pause?.(),n.unref?.();return}o.splice(2,o.length-2,...t.argv),t.argv.length>0&&n.isTTY===!0&&(n.pause?.(),n.ref?.())}await(await i()).main()}r(g,"runKodaXBootstrap");async function R(){try{await g()}catch(e){process.stdin.pause(),process.stdin.unref?.();let o=e instanceof Error?e.message:String(e);try{let{default:n}=await import("chalk");console.error(n.red(`[Error] ${o}`))}catch{console.error(`[Error] ${o}`)}process.exitCode=1}}r(R,"runKodaXBootstrapAsEntry");var l=process.argv[1],w=l!==void 0&&import.meta.url===m(l).href;w&&R();export{f as isBareResumeRequest,y as isVersionRequest,g as runKodaXBootstrap,R as runKodaXBootstrapAsEntry};