@kodax-ai/kodax 0.7.77 → 0.7.79

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 (133) hide show
  1. package/CHANGELOG.md +3651 -3201
  2. package/README.md +317 -110
  3. package/README_CN.md +255 -91
  4. package/config-templates/config.example.jsonc +124 -32
  5. package/config-templates/integrations/a2a.example.jsonc +23 -7
  6. package/dist/builtin/skill-creator/scripts/aggregate-benchmark.js +2 -1
  7. package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +1 -0
  8. package/dist/builtin/skill-creator/scripts/analyze-benchmark.js +4 -3
  9. package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +1 -0
  10. package/dist/builtin/skill-creator/scripts/compare-runs.js +4 -3
  11. package/dist/builtin/skill-creator/scripts/generate-review.js +2 -1
  12. package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +1 -0
  13. package/dist/builtin/skill-creator/scripts/grade-evals.js +4 -3
  14. package/dist/builtin/skill-creator/scripts/improve-description.js +2 -1
  15. package/dist/builtin/skill-creator/scripts/init-skill.d.ts +1 -0
  16. package/dist/builtin/skill-creator/scripts/init-skill.js +4 -3
  17. package/dist/builtin/skill-creator/scripts/install-skill.d.ts +1 -0
  18. package/dist/builtin/skill-creator/scripts/install-skill.js +4 -3
  19. package/dist/builtin/skill-creator/scripts/package-skill.d.ts +1 -0
  20. package/dist/builtin/skill-creator/scripts/package-skill.js +4 -3
  21. package/dist/builtin/skill-creator/scripts/quick-validate.d.ts +1 -0
  22. package/dist/builtin/skill-creator/scripts/quick-validate.js +4 -3
  23. package/dist/builtin/skill-creator/scripts/run-eval.d.ts +1 -0
  24. package/dist/builtin/skill-creator/scripts/run-eval.js +4 -3
  25. package/dist/builtin/skill-creator/scripts/run-loop.js +2 -1
  26. package/dist/builtin/skill-creator/scripts/run-trigger-eval.js +2 -1
  27. package/dist/builtin/skill-creator/scripts/utils.d.ts +3 -0
  28. package/dist/builtin/skill-creator/scripts/utils.js +5 -1
  29. package/dist/chunks/agent-V4AC5JZD.js +2 -0
  30. package/dist/chunks/argument-completer-ZPC2MLES.js +2 -0
  31. package/dist/chunks/chunk-5BNQXXGY.js +1 -0
  32. package/dist/chunks/{chunk-EH7AOMJ7.js → chunk-67THZRM6.js} +1 -1
  33. package/dist/chunks/chunk-6GVQDQTQ.js +292 -0
  34. package/dist/chunks/chunk-B6UY3VHV.js +348 -0
  35. package/dist/chunks/{chunk-HORNWBYR.js → chunk-BBOVVDQJ.js} +1 -1
  36. package/dist/chunks/chunk-CR2IF7VF.js +30 -0
  37. package/dist/chunks/{chunk-FNW2XUL5.js → chunk-CXHEZY5G.js} +1 -1
  38. package/dist/chunks/chunk-EDZ4QILG.js +266 -0
  39. package/dist/chunks/chunk-GEECPO2H.js +218 -0
  40. package/dist/chunks/chunk-H5LLM7DB.js +89 -0
  41. package/dist/chunks/chunk-KLWP7POA.js +467 -0
  42. package/dist/chunks/{chunk-XSA37BVM.js → chunk-M4N2JZTZ.js} +2 -2
  43. package/dist/chunks/chunk-OWQT3FTE.js +5 -0
  44. package/dist/chunks/chunk-Q4M7DJOD.js +319 -0
  45. package/dist/chunks/{chunk-3DD4QEBH.js → chunk-QCZLCLFL.js} +10 -10
  46. package/dist/chunks/chunk-RQPMGRTR.js +810 -0
  47. package/dist/chunks/chunk-SG6P4SZS.js +123 -0
  48. package/dist/chunks/chunk-TSTVAU5E.js +386 -0
  49. package/dist/chunks/chunk-ZCZZUE5E.js +662 -0
  50. package/dist/chunks/compaction-config-AEUGVROL.js +2 -0
  51. package/dist/chunks/{construction-bootstrap-RPRL3L7R.js → construction-bootstrap-K3ZGEN5N.js} +1 -1
  52. package/dist/chunks/dist-GFJFRPAV.js +2 -0
  53. package/dist/chunks/{dist-FDSOIR35.js → dist-JMO47GJV.js} +1 -1
  54. package/dist/chunks/host-23K2Q6RZ.js +2 -0
  55. package/dist/chunks/run-manager-PGIR6ITA.js +2 -0
  56. package/dist/chunks/utils-6LEKJPQN.js +2 -0
  57. package/dist/index.d.ts +22 -21
  58. package/dist/index.js +6 -6
  59. package/dist/kodax_bootstrap.js +2 -1
  60. package/dist/kodax_cli.js +2225 -1468
  61. package/dist/kodax_resume.js +570 -34
  62. package/dist/provider-capabilities.json +85 -50
  63. package/dist/runtime-worker.js +2076 -1343
  64. package/dist/sandbox-workspace-session.js +829 -0
  65. package/dist/sdk-a2a.d.ts +24 -18
  66. package/dist/sdk-a2a.js +8 -8
  67. package/dist/sdk-agent.d.ts +315 -168
  68. package/dist/sdk-agent.js +1 -1
  69. package/dist/sdk-coding.d.ts +42 -205
  70. package/dist/sdk-coding.js +1 -1
  71. package/dist/sdk-experimental-memory.d.ts +3 -3
  72. package/dist/sdk-experimental-memory.js +1 -1
  73. package/dist/sdk-llm.d.ts +7 -6
  74. package/dist/sdk-llm.js +1 -1
  75. package/dist/sdk-mcp.d.ts +1 -1
  76. package/dist/sdk-mcp.js +1 -1
  77. package/dist/sdk-media.d.ts +1 -1
  78. package/dist/sdk-media.js +1 -1
  79. package/dist/sdk-repl.d.ts +77 -36
  80. package/dist/sdk-repl.js +2 -2
  81. package/dist/sdk-runtime.d.ts +406 -163
  82. package/dist/sdk-runtime.js +1 -1
  83. package/dist/sdk-sandbox.d.ts +93 -0
  84. package/dist/sdk-sandbox.js +2 -0
  85. package/dist/sdk-session.d.ts +8 -9
  86. package/dist/sdk-session.js +1 -1
  87. package/dist/sdk-skills.d.ts +2 -2
  88. package/dist/sdk-skills.js +1 -1
  89. package/dist/semantic-worker.js +283 -18
  90. package/dist/types-chunks/{base.d-4e74xDdy.d.ts → base.d-DxG0m09Z.d.ts} +1 -1
  91. package/dist/types-chunks/{bash-prefix-extractor.d-pZdu6qt7.d.ts → bash-prefix-extractor.d-CNSidpmv.d.ts} +149 -10
  92. package/dist/types-chunks/{capability-learning.d-CVsdHw4j.d.ts → capability-learning.d-iPSiAmc_.d.ts} +1 -1
  93. package/dist/types-chunks/{capsule.d-CxCm1KZz.d.ts → capsule.d-B3q98pLQ.d.ts} +9 -7
  94. package/dist/types-chunks/{types.d-RdWRfUEs.d.ts → controller.d-RGV7Pjv9.d.ts} +785 -8
  95. package/dist/types-chunks/{guardrail.d-B0PwAZVR.d.ts → guardrail.d-1NLSFTyN.d.ts} +310 -70
  96. package/dist/types-chunks/{history-retrieval.d-B__aEN62.d.ts → history-retrieval.d-BAegI14A.d.ts} +16 -3
  97. package/dist/types-chunks/{integration-config.d-ojG4swOP.d.ts → integration-config.d-BNowXE8k.d.ts} +23 -8
  98. package/dist/types-chunks/{oauth-login.d-Bgb4rdLN.d.ts → oauth-login.d-6i-vidxv.d.ts} +6 -2
  99. package/dist/types-chunks/{public-api.d--fF88JrC.d.ts → public-api.d-BpJhHoa7.d.ts} +366 -28
  100. package/dist/types-chunks/{commands.d-BccESAMV.d.ts → repl.d-CZ12Ow3X.d.ts} +89 -78
  101. package/dist/types-chunks/{side-query.d-5JvXhuOZ.d.ts → resolver.d-C9IW4fmU.d.ts} +7 -67
  102. package/dist/types-chunks/{run-manager.d-B47hIqnI.d.ts → run-manager.d-CX3AUocA.d.ts} +1 -1
  103. package/dist/types-chunks/{sdk-session-CLWf8Adb.d.ts → sdk-session-B3cfJKqF.d.ts} +3 -3
  104. package/dist/types-chunks/side-query.d-CP1LiRiH.d.ts +83 -0
  105. package/dist/types-chunks/{types-LanCEDj8.d.ts → types-Bf3Y3mW-.d.ts} +42 -3
  106. package/dist/types-chunks/{types.d-CODuyyqy.d.ts → types.d-BZ9oXvTV.d.ts} +2 -2
  107. package/dist/types-chunks/{types.d-DCQVBqVn.d.ts → types.d-BbtGlKZu.d.ts} +25 -3
  108. package/dist/types-chunks/{types.d-DCsKM8aT.d.ts → types.d-C0_rn--1.d.ts} +4 -4
  109. package/dist/types-chunks/{types.d-DIpZJKUl.d.ts → types.d-CgrXrFrq.d.ts} +16 -2
  110. package/dist/types-chunks/{utils.d-CDduqbFw.d.ts → utils.d-CGpHavsU.d.ts} +32 -8
  111. package/docs/SDK_EMBEDDER_GUIDE.md +1117 -227
  112. package/package.json +11 -1
  113. package/dist/chunks/agent-NGSWFE73.js +0 -2
  114. package/dist/chunks/argument-completer-WGGZPEEO.js +0 -2
  115. package/dist/chunks/chunk-27QLRH3D.js +0 -5
  116. package/dist/chunks/chunk-2MQPVY6P.js +0 -770
  117. package/dist/chunks/chunk-6WAPVAGQ.js +0 -74
  118. package/dist/chunks/chunk-AOENDSVN.js +0 -448
  119. package/dist/chunks/chunk-FSXI4MAV.js +0 -78
  120. package/dist/chunks/chunk-HV2GMZUZ.js +0 -343
  121. package/dist/chunks/chunk-IQT4RPCE.js +0 -46
  122. package/dist/chunks/chunk-JS2BHGJP.js +0 -158
  123. package/dist/chunks/chunk-OAMKECRG.js +0 -381
  124. package/dist/chunks/chunk-ON2WG2LG.js +0 -622
  125. package/dist/chunks/chunk-RUGAAHTF.js +0 -321
  126. package/dist/chunks/chunk-TGCG7U2W.js +0 -37
  127. package/dist/chunks/compaction-config-BE7VYWH6.js +0 -2
  128. package/dist/chunks/dist-ZZBNVTKU.js +0 -2
  129. package/dist/chunks/host-QAKQVC4A.js +0 -2
  130. package/dist/chunks/run-manager-N4UFWA2D.js +0 -2
  131. package/dist/chunks/utils-AUHCI4D5.js +0 -2
  132. package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +0 -91
  133. package/dist/types-chunks/guardrail.d-CJx9RRd3.d.ts +0 -156
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 Ke,e as Xe,f as qe,n as De,o as Fe,p as Ue,q as je,r as We,s as M,t as $e}from"./chunks/chunk-6WAPVAGQ.js";import{Ab as Te,Bb as Le,Sb as C,Ua as Ce,Va as Me,hb as Oe}from"./chunks/chunk-RUGAAHTF.js";import{B as te,C as ne,Ea as xe,F as Ee,G as Ae,Ga as ke,Ha as be,k as V,q as N,t as J,u as Q,v as Y,y as Z,z as ee}from"./chunks/chunk-ON2WG2LG.js";import{K as ye,L as Se,M as Pe,T as b,U as we,W as B,X as G,Y as H,_ as _e,ca as Ie,m as pe,n as me,o as k,q as fe,s as ge,t as he,u as ve,v as Re}from"./chunks/chunk-JS2BHGJP.js";import"./chunks/chunk-HORNWBYR.js";import{$ as Ql,A as x,Aa as Ic,B as El,Ba as Ec,C as Al,Ca as Ac,D as xl,Da as xc,E as kl,Ea as z,F as bl,Fa as kc,G as Cl,Ga as bc,H as Ml,Ha as Cc,I as Ol,Ia as Mc,J as Tl,Ja as Oc,K as Ll,Ka as Tc,L as Kl,La as Lc,M as Xl,Ma as Kc,N as ql,Na as Xc,O as Dl,Oa as qc,P as Fl,Pa as Dc,Q as Ul,R as jl,S as Wl,T as $l,U as zl,V as Vl,W as Bl,X as Gl,Y as Hl,Z as Nl,_ as Jl,a as Gi,aa as Yl,b as Hi,ba as Zl,c as Ni,ca as ec,d as il,da as tc,e as ol,ea as nc,f as sl,fa as ic,g as rl,ga as oc,h as al,ha as sc,i as dl,ia as rc,j as ll,ja as ac,k as cl,ka as dc,l as ul,la as lc,m as pl,ma as cc,n as ml,na as uc,o as fl,oa as pc,p as gl,pa as mc,q as hl,qa as fc,r as vl,ra as gc,s as Rl,sa as hc,t as yl,ta as vc,u as Sl,ua as Rc,v as Pl,va as yc,w as wl,wa as Sc,x as A,xa as Pc,y as _l,ya as wc,z as Il,za as _c}from"./chunks/chunk-AOENDSVN.js";import{a as rd,b as ad,c as dd,d as ld,e as cd,f as ud,g as pd,h as md,i as fd,j as Qd}from"./chunks/chunk-FNW2XUL5.js";import{A as jd,B as Wd,C as $d,D as zd,E as Vd,F as Bd,G as Gd,H as Hd,I as Nd,J as Jd,a as gd,b as hd,c as vd,d as Rd,e as yd,f as Sd,g as Pd,h as wd,i as _d,j as Id,k as Ed,l as Ad,m as xd,n as kd,o as bd,p as Cd,q as Md,r as Od,s as Td,t as Ld,u as Kd,v as Xd,w as qd,x as Dd,y as Fd,z as Ud}from"./chunks/chunk-3DD4QEBH.js";import{A as Aa,B as xa,C as ka,D as ba,E as Ca,F as Ma,G as Oa,Ga as Yd,H as Ta,Ha as Zd,K as La,L as Ka,M as Xa,N as qa,O as Da,Oa as el,P as Fa,Pa as tl,Q as Ua,Ra as nl,V as ja,W as Wa,X as $a,Y as za,Z as Va,a as ln,b as Ji,ba as Ba,c as Qi,ca as Ga,d as da,da as Ha,e as la,ea as Na,f as ca,g as ua,h as pa,ha as Ja,i as ma,k as va,l as Ra,m as ya,n as Sa,o as Pa,p as wa,q as _a,v as Ia,w as Ea}from"./chunks/chunk-HV2GMZUZ.js";import{a as sd}from"./chunks/chunk-EH7AOMJ7.js";import{$ as Po,$a as us,$b as Qs,$c as zr,A as uo,Aa as jo,Ab as Os,Ac as Ir,B as po,Ba as Wo,Bb as Ts,Bc as Er,Ca as $o,Cb as Ls,Cc as Ar,Da as zo,Db as Ks,Dc as xr,Ea as Vo,Eb as Xs,Ec as kr,Fa as Bo,Fb as qs,Fc as br,Ga as Go,Gc as Cr,Hc as Mr,I as mo,Ib as Ds,Ic as Or,Id as Qa,J as fo,Ja as Ho,Jc as Tr,Jd as Ya,K as go,Ka as No,Kc as Lr,Kd as Za,L as ho,La as Jo,Lc as j,Ld as ed,M as vo,Ma as Qo,Mb as Fs,Mc as E,Md as td,N as Ro,Na as Yo,Nb as Us,Nc as Kr,Nd as $,Oa as Zo,Ob as js,Oc as Xr,Pa as es,Pb as Ws,Qb as $s,Ra as ts,Rb as zs,Sa as ns,Sb as Vs,Ta as is,Tb as Bs,Ua as os,Ub as I,Uc as qr,Va as ss,Vb as F,Vc as Dr,Vd as nd,Wa as rs,Wb as Gs,Wc as Fr,Wd as id,Xa as as,Xb as Hs,Xc as Ur,Xd as od,Ya as ds,Yb as U,Yc as jr,Z as yo,Za as ls,Zb as Ns,Zc as Wr,_ as So,_a as cs,_b as Js,_c as $r,a as cn,aa as wo,ab as ps,ac as Ys,ad as Vr,b as un,ba as _o,bb as ms,bc as Zs,bd as Br,c as Bi,cb as fs,cc as er,cd as Gr,db as gs,dc as tr,dd as Hr,eb as hs,ec as nr,ed as W,fb as vs,fc as ir,fd as Nr,ga as Io,gb as Rs,gc as or,gd as Jr,hb as ys,hc as sr,hd as Qr,i as Yi,ia as Eo,ib as Ss,ic as rr,id as Yr,j as Zi,jb as Ps,jc as ar,jd as Zr,ka as Ao,kb as ws,kc as dr,la as xo,lc as lr,ld as ea,ma as ko,mc as cr,md as ta,na as bo,nc as ur,nd as na,oa as Co,ob as _s,oc as pr,od as ia,pb as Is,pc as mr,pd as oa,q as eo,qa as Mo,qb as Es,qc as fr,qd as sa,r as to,ra as Oo,rb as As,rc as gr,rd as ra,s as no,sa as To,sc as hr,sd as aa,t as io,ta as Lo,tc as vr,td as fa,u as oo,ua as Ko,uc as Rr,ud as ga,v as so,va as Xo,vb as xs,vc as yr,vd as ha,w as ro,wa as qo,wb as ks,wc as Sr,x as ao,xa as Do,xb as bs,xc as Pr,y as lo,ya as Fo,yb as Cs,yc as wr,z as co,za as Uo,zb as Ms,zc as _r}from"./chunks/chunk-OAMKECRG.js";import"./chunks/chunk-27QLRH3D.js";import{Aa as Wt,Ba as $t,C as K,Ca as zt,D as _t,Da as Vt,E as It,Ea as Bt,F as X,Fa as Gt,G as Et,Ga as Ht,H as At,Ha as Nt,Ia as Jt,Ja as Qt,Ka as Yt,La as Zt,Ma as en,Oa as tn,Pa as D,Qa as nn,Ra as on,Ta as sn,Ua as rn,V as xt,Va as an,Ya as dn,d as ht,da as kt,e as vt,ea as bt,f as Rt,ka as Ct,la as Mt,m as yt,ma as q,n as St,na as Ot,qa as Tt,ra as Lt,ta as Kt,ua as Xt,v as Pt,va as qt,w as wt,wa as Dt,xa as Ft,ya as Ut,za as jt}from"./chunks/chunk-FSXI4MAV.js";import{$b as oi,Cc as bi,Dc as Ci,Gc as Mi,Hc as Oi,a as pn,ac as si,b as mn,bc as ri,c as fn,cc as ai,d as gn,dc as di,e as hn,ec as li,f as vn,fc as ci,gc as ui,h as Rn,hc as pi,i as yn,ic as mi,id as Ti,j as Sn,jc as fi,jd as Li,kc as gi,kd as Ki,lc as hi,ld as Xi,mc as vi,md as qi,nc as Ri,nd as Di,oc as yi,od as Fi,pc as Si,q as _n,qa as xn,qb as ni,qc as Pi,r as In,rb as ii,rc as wi,rd as Ui,s as En,sc as _i,sd as ji,t as An,ta as kn,tc as Ii,td as Wi,uc as Ei,ud as $i,vd as zi,wc as Ai,wd as Vi,xc as xi,yc as ki}from"./chunks/chunk-2MQPVY6P.js";import{a as Pn,b as wn,f as bn,g as Cn,h as Mn,k as On}from"./chunks/chunk-TGCG7U2W.js";import{A as Jn,B as Qn,C as Yn,D as Zn,E as ei,F as ti,d as Tn,k as Ln,l as Kn,m as Xn,n as qn,o as Dn,p as Fn,q as Un,r as jn,s as Wn,t as $n,u as zn,v as Vn,w as Bn,x as Gn,y as Hn,z as Nn}from"./chunks/chunk-XSA37BVM.js";import"./chunks/chunk-IQT4RPCE.js";import{a as s}from"./chunks/chunk-ONUPGMER.js";import ze from"node:process";var oe=["off","error","info","debug"],ie={off:0,error:1,info:2,debug:3};function O(n,e="info"){if(!n)return e;let t=n.trim().toLowerCase();return oe.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=>{ze.stderr.write(`${t}
3
- `)})}handleEvent(e){let t=Ve(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,i){if(ie[this.level]<ie[e])return;let o=new Date().toISOString(),r=i?Ge(i):"",a=r?` ${r}`:"";this.sink(`[ACP][${e.toUpperCase()}][${o}] ${t}${a}`)}};function Ve(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 Be(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(Ve,"mapEventToLogEntry");function u(n){let{type:e,...t}=n;return t}s(u,"toLogFields");function Be(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(Be,"mapPermissionOutcomeToLogEntry");function Ge(n){return Object.entries(n).flatMap(([e,t])=>t===void 0?[]:`${e}=${He(t)}`).join(" ")}s(Ge,"formatFields");function He(n){return n===null?"null":typeof n=="string"?JSON.stringify(n.length>160?`${n.slice(0,157)}...`:n):String(n)}s(He,"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(i){}}};import{randomUUID as se}from"node:crypto";import Ne from"node:os";import g from"node:path";import R from"node:process";import{Readable as Je,Writable as Qe}from"node:stream";import{AgentSideConnection as Ye,PROTOCOL_VERSION as re,RequestError as P,ndJsonStream as Ze}from"@agentclientprotocol/sdk";var ue=["plan","accept-edits","auto-in-project"];function T(n){return W(n)}s(T,"acpIsFileModificationTool");var et={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},tt=[{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 nt(n){let e=n.replace(/\s+/g," ").trim();return e.length<=80?e:`${e.slice(0,77)}...`}s(nt,"buildAcpSessionTitle");function it(n){let e=n.effort;if(e===void 0)return{kind:"absent"};try{return{kind:"value",value:L(e,"Prompt effort")}}catch(t){let i=t instanceof Error?t.message:String(t);throw P.invalidParams({effort:e},i)}}s(it,"resolvePromptEffortOverride");function ot(n){let e={};for(let t of n)if("command"in t){let i={};for(let o of t.env??[])i[o.name]=o.value;e[t.name]={type:"stdio",command:t.command,args:t.args??[],env:Object.keys(i).length>0?i:void 0}}else if("type"in t&&t.type==="sse"){let i={};for(let o of t.headers??[])i[o.name]=o.value;e[t.name]={type:"sse",url:t.url,headers:Object.keys(i).length>0?i:void 0}}else if("type"in t&&t.type==="http"){let i={};for(let o of t.headers??[])i[o.name]=o.value;e[t.name]={type:"http",url:t.url,headers:Object.keys(i).length>0?i:void 0}}return e}s(ot,"convertAcpMcpServers");function st(n){let e=[];for(let t of n){let i=t.trim();i&&!e.includes(i)&&e.push(i)}return e}s(st,"dedupeExtensionPaths");function rt(n){return Array.isArray(n)?st(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>g.isAbsolute(e)?e:g.resolve(g.dirname(k),e))):[]}s(rt,"normalizeConfiguredExtensionPaths");async function at(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(at,"discoverAcpDefaultExtensions");async function dt(n,e,t){let i=await I(t),o=await F(await I(e),i);await n.loadExtensions(o,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(i,{continueOnError:!0,loadSource:"config"})}s(dt,"loadAcpExtensionGroups");function lt(n,e="accept-edits"){return n&&ue.includes(n)?n:e}s(lt,"normalizeAcpPermissionMode");function ct(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(ct,"parseSessionMode");function ut(n){return{availableModes:tt,currentModeId:n}}s(ut,"buildModeState");function ae(n){return et[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:"",i=ee(t);if(i.length>0)return i.map(o=>({path:o}))}}s(de,"inferToolLocations");function pt(n){let e=[];for(let t of n){let i=t,o=typeof i.type=="string"?i.type:"";if(o==="text"&&typeof i.text=="string"){e.push(i.text);continue}if(o==="resource_link"&&typeof i.uri=="string"){e.push(`[Resource] ${i.uri}`);continue}if(o==="resource"&&i.resource&&typeof i.resource=="object"){let r=i.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 We,e as $e,f as ze,n as Ve,o as Be,p as Ge,q as Ne,r as He,u as M,v as Je}from"./chunks/chunk-CR2IF7VF.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-6GVQDQTQ.js";import{Ab as Te,Bb as Le,Rb as C,Ua as Ce,Va as Me,hb as Oe}from"./chunks/chunk-Q4M7DJOD.js";import{G as H,J,K as Q,L as Y,P as Z,Q as ee,S as te,T as ne,Wa as xe,X as Ee,Y as Ae,Ya as be,Za as ke,l as V}from"./chunks/chunk-ZCZZUE5E.js";import{$ as G,O as ye,P as Se,Q as Pe,X as k,Y as we,_ as B,aa as N,ca as _e,ga as Ie,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-EDZ4QILG.js";import"./chunks/chunk-BBOVVDQJ.js";import{$ as uc,A as x,Aa as qc,B as Fl,Ba as Fc,C as Ul,Ca as Uc,D as jl,Da as jc,E as Wl,Ea as Wc,F as $l,Fa as z,G as zl,Ga as $c,H as Vl,Ha as zc,I as Bl,Ia as Vc,J as Gl,Ja as Bc,K as Nl,Ka as Gc,L as Hl,La as Nc,M as Jl,Ma as Hc,N as Ql,Na as Jc,O as Yl,Oa as Qc,P as Zl,Pa as Yc,Q as ec,Qa as Zc,R as tc,S as nc,T as oc,U as ic,V as sc,W as rc,X as ac,Y as dc,Z as lc,_ as cc,a as di,aa as pc,b as li,ba as mc,c as ci,ca as fc,d as vl,da as gc,e as Rl,ea as hc,f as yl,fa as vc,g as Sl,ga as Rc,h as Pl,ha as yc,i as wl,ia as Sc,j as _l,ja as Pc,k as Il,ka as wc,l as El,la as _c,m as Al,ma as Ic,n as xl,na as Ec,o as bl,oa as Ac,p as kl,pa as xc,q as Cl,qa as bc,r as Ml,ra as kc,s as Ol,sa as Cc,t as Tl,ta as Mc,u as Ll,ua as Oc,v as Kl,va as Tc,w as Xl,wa as Lc,x as A,xa as Kc,y as Dl,ya as Xc,z as ql,za as Dc}from"./chunks/chunk-KLWP7POA.js";import{$ as Za,$a as fl,A as Ka,B as Xa,C as Da,H as qa,I as Fa,M as Ua,N as ja,O as Wa,P as $a,Q as za,R as Va,S as Ba,T as Ga,Ta as pl,Ua as ml,W as Na,X as Ha,Y as Ja,Z as Qa,_ as Ya,aa as ed,ab as gl,b as Qo,c as Yo,cb as hl,d as Zo,e as ei,fa as td,g as ti,ga as nd,ha as od,ia as id,ja as sd,k as ni,n as oi,na as rd,o as ui,oa as ad,p as pi,pa as dd,q as wa,qa as ld,r as _a,s as Ia,t as Ea,ta as cd,u as Aa,v as xa,w as Ma,x as Oa,y as Ta,z as La}from"./chunks/chunk-B6UY3VHV.js";import{a as Sd,b as Pd,c as wd,d as _d,e as Id,f as Ed,g as Ad,h as xd,i as bd,j as ul}from"./chunks/chunk-CXHEZY5G.js";import{a as yd}from"./chunks/chunk-67THZRM6.js";import{A as tl,B as nl,C as ol,D as il,E as sl,F as rl,G as al,H as dl,I as ll,J as cl,a as kd,b as Cd,c as Md,d as Od,e as Td,f as Ld,g as Kd,h as Xd,i as Dd,j as qd,k as Fd,l as Ud,m as jd,n as Wd,o as $d,p as zd,q as Vd,r as Bd,s as Gd,t as Nd,u as Hd,v as Jd,w as Qd,x as Yd,y as Zd,z as el}from"./chunks/chunk-QCZLCLFL.js";import{$a as ys,$b as F,$c as Yr,$d as hd,A as wi,Aa as Hi,Ac as Or,Ad as ka,B as _i,Ba as Ji,Bb as js,Bc as Tr,Bd as Ca,C as Ii,Ca as Qi,Cb as Ws,Cc as Lr,D as Ei,Da as Yi,Db as $s,Dc as Kr,E as Ai,Ea as Zi,Eb as zs,Ec as Xr,Fa as es,Fb as Vs,Fc as Dr,Ga as ts,Gb as Bs,Gc as qr,Ha as ns,Hb as Gs,Hc as Fr,Ia as os,Ib as Ns,Ic as Ur,Ja as is,Jb as Hs,Jc as jr,Ka as ss,Kb as Js,Kc as Wr,La as rs,Lb as Qs,Lc as $r,Ma as as,Mc as zr,Nc as Vr,O as xi,Ob as Ys,Oc as Br,Od as ud,P as bi,Pa as ds,Pc as Gr,Pd as pd,Q as ki,Qa as ls,Qc as Nr,Qd as md,R as Ci,Ra as cs,Rc as j,Rd as fd,S as Mi,Sa as us,Sb as Zs,Sc as E,Sd as gd,T as Oi,Ta as ps,Tb as er,Tc as Hr,Td as $,Ua as ms,Ub as tr,Uc as Jr,Va as fs,Vb as nr,Wb as or,Xa as gs,Xb as ir,Ya as hs,Yb as sr,Za as vs,Zb as rr,_a as Rs,_b as I,_c as Qr,ab as Ss,ac as ar,ad as Zr,ae as vd,bb as Ps,bc as dr,bd as ea,be as Rd,c as ii,cb as ws,cc as U,cd as ta,d as si,da as Ti,db as _s,dc as lr,dd as na,ea as Li,eb as Is,ec as cr,ed as oa,f as ri,fa as Ki,fb as Es,fc as ur,fd as ia,ga as Xi,gb as As,gc as pr,gd as sa,h as ai,ha as Di,hb as xs,hc as mr,hd as ra,ib as bs,ic as fr,id as aa,jb as ks,jc as gr,jd as da,kb as Cs,kc as hr,kd as W,lb as Ms,lc as vr,ld as la,ma as qi,mb as Os,mc as Rr,md as ca,n as mi,nb as Ts,nc as yr,nd as ua,o as fi,oa as Fi,ob as Ls,oc as Sr,od as pa,pb as Ks,pc as Pr,pd as ma,qa as Ui,qb as Xs,qc as wr,ra as ji,rc as _r,rd as fa,sa as Wi,sc as Ir,sd as ga,t as gi,ta as $i,tc as Er,td as ha,u as hi,ua as zi,ub as Ds,uc as Ar,ud as va,v as vi,vb as qs,vc as xr,vd as Ra,w as Ri,wa as Vi,wb as Fs,wc as br,wd as ya,x as yi,xa as Bi,xb as Us,xc as kr,xd as Sa,y as Si,ya as Gi,yc as Cr,yd as Pa,z as Pi,za as Ni,zc as Mr,zd as ba}from"./chunks/chunk-TSTVAU5E.js";import"./chunks/chunk-OWQT3FTE.js";import{Aa as Ht,Ba as Jt,C as K,Ca as Qt,D as Ct,Da as Yt,E as Mt,Ea as Zt,F as X,Fa as en,G as Ot,Ga as tn,H as Tt,Ha as nn,Ia as on,Ja as sn,Ka as rn,La as an,Ma as dn,Oa as ln,Pa as q,Qa as cn,Ra as un,Ta as pn,Ua as mn,V as Lt,Va as fn,Ya as gn,d as _t,da as Kt,e as It,ea as Xt,f as Et,ka as Dt,la as qt,m as At,ma as D,n as xt,na as Ft,qa as Ut,ra as jt,ta as Wt,ua as $t,v as bt,va as zt,w as kt,wa as Vt,xa as Bt,ya as Gt,za as Nt}from"./chunks/chunk-SG6P4SZS.js";import{Ab as lo,Bb as co,Cb as uo,Db as po,Eb as mo,Fb as fo,Fc as Xo,Gb as go,Gc as Do,Hb as ho,Hc as qo,Ic as Fo,Jb as vo,Jc as Uo,Kb as Ro,Kc as jo,Lb as yo,Lc as Wo,Mb as So,Nb as Po,Ob as wo,Oc as $o,Pb as _o,Pc as zo,Qb as Io,Qc as Vo,Rb as Eo,Rc as Bo,Sb as Ao,Sc as Go,Tb as xo,Tc as No,Ub as bo,Vb as ko,Wb as Co,Yb as Mo,Zb as Oo,Zc as Ho,_b as To,_c as Jo,a as hn,b as vn,bc as Lo,c as Rn,cc as Ko,d as yn,e as Sn,f as Pn,h as wn,i as _n,j as In,q as xn,qa as Mn,r as bn,s as kn,t as Cn,ta as On,ub as ro,vb as ao}from"./chunks/chunk-RQPMGRTR.js";import{a as En,b as An,f as Tn,g as Ln,h as Kn,k as Xn}from"./chunks/chunk-GEECPO2H.js";import{A as eo,B as to,C as no,D as oo,E as io,F as so,d as Dn,k as qn,l as Fn,m as Un,n as jn,o as Wn,p as $n,q as zn,r as Vn,s as Bn,t as Gn,u as Nn,v as Hn,w as Jn,x as Qn,y as Yn,z as Zn}from"./chunks/chunk-M4N2JZTZ.js";import"./chunks/chunk-H5LLM7DB.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 y=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 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 nt from"node:os";import g from"node:path";import R from"node:process";import{Readable as ot,Writable as it}from"node:stream";import{AgentSideConnection as st,PROTOCOL_VERSION as re,RequestError as P,ndJsonStream as rt}from"@agentclientprotocol/sdk";var ue=["plan","accept-edits","auto-in-project"];function T(n){return W(n)}s(T,"acpIsFileModificationTool");var at={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},dt=[{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 lt(n){let e=n.replace(/\s+/g," ").trim();return e.length<=80?e:`${e.slice(0,77)}...`}s(lt,"buildAcpSessionTitle");function ct(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(ct,"resolvePromptEffortOverride");function ut(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(ut,"convertAcpMcpServers");function pt(n){let e=[];for(let t of n){let o=t.trim();o&&!e.includes(o)&&e.push(o)}return e}s(pt,"dedupeExtensionPaths");function mt(n){return Array.isArray(n)?pt(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>g.isAbsolute(e)?e:g.resolve(g.dirname(b),e))):[]}s(mt,"normalizeConfiguredExtensionPaths");async function ft(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(ft,"discoverAcpDefaultExtensions");async function gt(n,e,t){let o=await I(t),i=await F(await I(e),o);await n.loadExtensions(i,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(o,{continueOnError:!0,loadSource:"config"})}s(gt,"loadAcpExtensionGroups");function ht(n,e="accept-edits"){return n&&ue.includes(n)?n:e}s(ht,"normalizeAcpPermissionMode");function vt(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(vt,"parseSessionMode");function Rt(n){return{availableModes:dt,currentModeId:n}}s(Rt,"buildModeState");function ae(n){return at[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=ee(t);if(o.length>0)return o.map(i=>({path:i}))}}s(de,"inferToolLocations");function yt(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(pt,"extractPromptText");function mt(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}s(mt,"isToolResultFailure");function ft(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}s(ft,"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 _=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,i=R.env.KODAX_EFFORT,o=b(),r=o;this.provider=B({explicitProvider:e.provider,environmentProvider:t,configuredProvider:o.provider,defaultProvider:q}),this.model=G({explicitProvider:e.provider,environmentProvider:t,explicitModel:e.model,configuredProvider:o.provider,configuredModel:o.model});let a=e.effort!==void 0||X(i).kind==="value";this.effort=L(H({explicitEffort:e.effort,environmentEffort:i,configuredEffort:o.effort}),"Configured effort"),this.planModeEffort=a?void 0:L(e.planModeEffort??o.planModeEffort,"Configured plan-mode effort"),this.thinking=e.thinking??o.thinking??!1,this.reasoningMode=e.reasoningMode??o.reasoningMode??"auto",this.defaultPermissionMode=lt(e.permissionMode??o.permissionMode,"accept-edits");let d=g.resolve(e.cwd??R.cwd()),l=rt(r.extensions),c=new y({level:O(e.logLevel??R.env.KODAX_ACP_LOG,"info")}),p=at(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??Ne.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=z({getProvider:s(()=>D(this.provider),"getProvider"),getModel:s(()=>this.model??"","getModel")});let h=o.mcpServers,f=h&&Object.values(h).some(m=>(m.connect??"lazy")!=="disabled");this.extensionRuntimeReady=(async()=>{let m=await p,v=m.length>0||l.length>0;if(!f&&!v)return;let w=E({config:o});f&&await A(w,h,{reverse:x({cwd:d})}),await dt(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 i=Ze(t,e),o=new Ye(()=>this,i);this.connection=o;let r=this.effort==="none"?!1:this.thinking,a=this.effort==="none"?"off":this.reasoningMode;return this.events.emit({type:"server_attached",agent:this.agentName,version:this.agentVersion,provider:this.provider,model:this.model??"(default)",cwd:this.defaultCwd,permissionMode:this.defaultPermissionMode,reasoningMode:a,thinking:r,fixedCwd:this.hasFixedCwd}),o.signal.addEventListener("abort",()=>{let d=this.sessions.size;this.events.emit({type:"connection_closed",activeSessions:d}),this.dispose()}),o}async waitForClose(){await this.connection?.closed}async dispose(){return this.disposePromise?this.disposePromise:(this.disposePromise=(async()=>{for(let i of this.sessions.values())await this.abortSessionRuns(i);let e=new Set;for(let i of this.sessions.values())i.ownedExtensionRuntime&&(e.add(i.ownedExtensionRuntime),i.ownedExtensionRuntime=void 0),i.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(i=>i.dispose())),this.ownsRuntime&&await(await this.runtimeReady).close().catch(()=>{}),await $()})(),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 i=se(),o=e.mcpServers??[],r={sessionId:i,cwd:g.resolve(t),permissionMode:this.defaultPermissionMode,mcpServers:o,alwaysAllowTools:[],activeRunIds:new Set};if(o.length>0){let a=ot(o),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 "+i+": "+c)}),await this.extensionRuntimeReady,r.ownedExtensionRuntime=d,r.extensionRuntime=this.extensionRuntime?j(d,this.extensionRuntime):d}return this.sessions.set(i,r),this.events.emit({type:"session_created",sessionId:i,cwd:r.cwd,permissionMode:r.permissionMode,mcpServers:r.mcpServers.length}),{sessionId:i,modes:ut(r.permissionMode)}}async authenticate(){}async setSessionMode(e){let t=this.requireSession(e.sessionId),i=t.permissionMode,o=ct(e.modeId);return t.permissionMode=o,this.events.emit({type:"session_mode_changed",sessionId:t.sessionId,from:i,to:o}),await this.sendSessionUpdate({sessionId:t.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:o}}),{}}async prompt(e){let t=this.requireSession(e.sessionId),i=pt(e.prompt),o=it(e);if(!i)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:i.length,cwd:t.cwd,queueDelayMs:d-r}),this.events.emit({type:"prompt_preview",sessionId:t.sessionId,prompt:i});let l;try{this.extensionRuntimeReady&&await this.extensionRuntimeReady;let c=await this.runtimeReady;await this.ensureRuntimeSession(c,t,i),l=await c.runs.start({sessionId:t.sessionId,prompt:i,options:this.buildKodaXOptions(t,o)}),t.activeRunIds.add(l.runId);let p=await l.result;if(p.error)throw p.error;let h=p.phase==="cancelled"||p.phase==="interrupted",f=p.result;if(!f){if(h)return this.events.emit({type:"prompt_cancelled",sessionId:t.sessionId,durationMs:Date.now()-d}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};throw new Error(`Runtime run ${l.runId} ended without a coding result.`)}t.contextTokenSnapshot=f.contextTokenSnapshot;let m=!!f.interrupted||h,v=m?"cancelled":"end_turn";return this.events.emit({type:"prompt_finished",sessionId:t.sessionId,stopReason:v,interrupted:m,durationMs:Date.now()-d}),{stopReason:v,userMessageId:e.messageId??void 0,...ce(f.contextTokenSnapshot)?{usage:ce(f.contextTokenSnapshot)}:{}}}catch(c){if(ft(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(yt,"extractPromptText");function St(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}s(St,"isToolResultFailure");function Pt(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}s(Pt,"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 _=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=B({explicitProvider:e.provider,environmentProvider:t,configuredProvider:i.provider,defaultProvider:D}),this.model=G({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(N({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=ht(e.permissionMode??i.permissionMode,"accept-edits");let d=g.resolve(e.cwd??R.cwd()),l=mt(r.extensions),c=new y({level:O(e.logLevel??R.env.KODAX_ACP_LOG,"info")}),p=ft(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 S({sinks:[...e.eventSinks??[],c]}),this.bashPrefixExtractor=z({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 gt(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=rt(t,e),i=new st(()=>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 $()})(),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=ut(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=vt(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=yt(e.prompt),i=ct(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(Pt(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,i){t.runtimeSessionReady||(t.runtimeSessionReady=e.sessions.create({sessionId:t.sessionId,title:nt(i),projectPath:t.cwd,gitRoot:t.cwd,surface:"acp"}).then(()=>{}));try{await t.runtimeSessionReady}catch(o){throw t.runtimeSessionReady=void 0,o}}async cancel(e){let t=this.sessions.get(e.sessionId);this.events.emit({type:"cancel_requested",sessionId:e.sessionId,active:(t?.activeRunIds.size??0)>0}),t&&await this.abortSessionRuns(t)}async abortSessionRuns(e){if(e.activeRunIds.size===0)return;let t=await this.runtimeReady,i=[...e.activeRunIds],o=await Promise.all(i.map(async r=>{try{let a=await t.runs.get(r);return{runId:r,rank:le(a.phase)}}catch(a){let d=a instanceof Error?a.message:String(a);return this.logger.error(`ACP runtime run status lookup failed for ${r}: ${d}`),{runId:r,rank:le("cancelled")}}}));o.sort((r,a)=>r.rank-a.rank),await Promise.all(o.map(({runId:r})=>t.runs.abort(r).catch(a=>{let d=a instanceof Error?a.message:String(a);this.logger.error(`ACP runtime run abort failed for ${r}: ${d}`)})))}requireSession(e){let t=this.sessions.get(e);if(!t)throw P.resourceNotFound(e);return t}buildKodaXOptions(e,t={kind:"absent"}){let i=t.kind==="value"?t.value:e.permissionMode==="plan"&&this.planModeEffort!==void 0?this.planModeEffort:this.effort;return{provider:this.provider,model:this.model,effort:i,thinking:i==="none"?!1:this.thinking,reasoningMode:i==="none"?"off":this.reasoningMode,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(o=>{this.dispatchNotification("assistant text chunk",e.sessionId,this.sendTextChunk(e.sessionId,o))},"onTextDelta"),onThinkingDelta:s(o=>{this.dispatchNotification("thinking chunk",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"agent_thought_chunk",content:{type:"text",text:o}}}))},"onThinkingDelta"),onToolUseStart:s(o=>{this.dispatchNotification("tool call start",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call",toolCallId:o.id,title:o.name,kind:ae(o.name),rawInput:o.input,locations:de(o.name,o.input??{}),status:"pending"}}))},"onToolUseStart"),onToolResult:s(o=>{this.dispatchNotification("tool call update",e.sessionId,this.sendSessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"tool_call_update",toolCallId:o.id,title:o.name,status:mt(o.content)?"failed":"completed",rawOutput:o.content}}))},"onToolResult"),onRepoIntelligenceTrace:s(o=>{this.events.emit({type:"repo_intelligence_trace",sessionId:e.sessionId,stage:o.stage,summary:o.summary,mode:o.capability?.mode,engine:o.capability?.engine,status:o.capability?.status,cacheHit:o.trace?.cacheHit,capsuleEstimatedTokens:o.trace?.capsuleEstimatedTokens})},"onRepoIntelligenceTrace"),onError:s(o=>{this.dispatchNotification("error text chunk",e.sessionId,this.sendTextChunk(e.sessionId,`
8
- [Error] ${o.message}
9
- `))},"onError"),beforeToolExecute:s(async(o,r,a)=>{let d=await this.evaluateToolPermission(e,o,r,a?.toolId);return d.allowed?!0:d.override??!1},"beforeToolExecute")}}}async evaluateToolPermission(e,t,i,o){if(this.events.emit({type:"tool_permission_evaluated",sessionId:e.sessionId,tool:t,toolId:o??null,permissionMode:e.permissionMode}),t==="bash"){let c=typeof i.command=="string"?i.command:"";if(N(c))return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_read_only_bash"}),{allowed:!0};if(await J(t,i,e.alwaysAllowTools,this.bashPrefixExtractor))return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_remembered"}),{allowed:!0}}if(e.permissionMode==="plan"){let c=ne(t,i,e.cwd);return c?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"blocked_plan_mode"}),{allowed:!1,override:`${c} Do not try to modify files while planning. Finish the plan first, then hand off to a writable mode.`}):(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_plan_mode"}),{allowed:!0})}let r=T(t)&&typeof i.path=="string"&&Y(g.resolve(e.cwd,i.path),e.cwd),a=V(e.permissionMode).has(t),d=e.permissionMode==="auto-in-project"&&(T(t)&&typeof i.path=="string"&&!Z(i.path,e.cwd)||t==="bash"&&typeof i.command=="string"&&te(i.command,e.cwd).dangerous);return!r&&!a&&!d?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"auto_allowed_policy"}),{allowed:!0}):await this.requestPermissionFromClient(e,t,i,o)}async requestPermissionFromClient(e,t,i,o){if(!this.connection)return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:o??null,outcome:"request_failed_disconnected"}),{allowed:!1,override:"[Cancelled] ACP client is disconnected, so the permission request could not be completed."};let r=[{optionId:"allow_once",kind:"allow_once",name:"Allow once"},{optionId:"allow_always",kind:"allow_always",name:"Always allow"},{optionId:"reject_once",kind:"reject_once",name:"Reject"}],a={toolCallId:o??se(),title:t,kind:ae(t),rawInput:i,locations:de(t,i),status:"pending"},d;this.events.emit({type:"permission_requested",sessionId:e.sessionId,tool:t,toolId:a.toolCallId});try{d=await this.connection.requestPermission({sessionId:e.sessionId,toolCall:a,options:r})}catch(l){return this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_failed_incomplete",error:l instanceof Error?l.message:String(l)}),{allowed:!1,override:"[Cancelled] ACP client did not complete the permission request. Operation failed closed."}}return d.outcome.outcome!=="selected"?(this.events.emit({type:"tool_permission_resolved",sessionId:e.sessionId,tool:t,toolId:a.toolCallId,outcome:"request_dismissed"}),{allowed:!1,override:"[Cancelled] Operation cancelled by user"}):(d.outcome.optionId==="allow_always"&&t==="bash"&&(e.alwaysAllowTools=Array.from(new Set([...e.alwaysAllowTools,Q(t,i,!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,i){i.catch(o=>{if(!this.connection||this.connection.signal.aborted)return;let r=o instanceof Error?o.message:String(o);this.events.emit({type:"notification_failed",sessionId:t,label:e,error:r})})}};async function gt(n={}){let e=new _(n),t=Je.toWeb(R.stdin),i=Qe.toWeb(R.stdout);e.attach(t,i);try{await e.waitForClose()}finally{await e.dispose()}}s(gt,"runAcpServer");export{oe as ACP_LOG_LEVELS,ka as ALWAYS_RESIDENT_TOOL_NAMES,sc as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,rc as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,S as AcpEventEmitter,y as AcpLogger,Ac as BASH_POLICY_SPEC,vl as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,uc as BREAKER_ERROR_THRESHOLD,pc as BREAKER_WINDOW_MS,xe as BUILTIN_COMMANDS,Ad as BUILTIN_WORKFLOWS,Zi as CANCELLED_TOOL_RESULT_MESSAGE,Yi as CANCELLED_TOOL_RESULT_PREFIX,Bl as CODING_AGENT_MARKER,ll as CODING_INVARIANTS,Yd as CODING_SUMMARY_PROMPT,Zd as CODING_UPDATE_SUMMARY_PROMPT,Qs as CapabilityDeniedError,ul as Client,nd as CodingActorSession,Lr as CombinedExtensionRuntime,Ys as ConstructionManifestError,Yl as DEFAULT_CLASSIFIER_TIMEOUT_MS,el as DEFAULT_CODING_AGENT_NAME,Kl as DEFAULT_DANGEROUS_PATTERNS,Ns as DEFAULT_HANDLER_TIMEOUT_MS,La as DEFAULT_RESILIENCE_CONFIG,Ll as DEFAULT_SAFE_PATTERNS,dr as DEFAULT_SELF_MODIFY_BUDGET,wc as DEFAULT_SPECULATIVE_WINDOW_MS,to as DEFAULT_TOOL_OUTPUT_MAX_BYTES,eo as DEFAULT_TOOL_OUTPUT_MAX_LINES,ad as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,An as DefaultSummaryCompaction,$l as EMIT_VERDICT_TOOL_NAME,Ji as ErrorCategory,Rd as FINDING_VERIFICATION_OUTPUT_SCHEMA,C as FileSessionStorage,Rs as GENERATOR_AGENT_NAME,Kn as ImageResizeError,yn as KODAX_API_MIN_INTERVAL,k as KODAX_CONFIG_FILE,q as KODAX_DEFAULT_PROVIDER,mn as KODAX_DEFAULT_TIMEOUT,pe as KODAX_DIR,Yn as KODAX_FILE_MEDIA_TYPES,fn as KODAX_HARD_TIMEOUT,Jn as KODAX_IMAGE_MEDIA_TYPES,vn as KODAX_MAX_INCOMPLETE_RETRIES,gn as KODAX_MAX_RETRIES,pn as KODAX_MAX_TOKENS,Mt as KODAX_PROVIDERS,Ct as KODAX_PROVIDER_SNAPSHOTS,Pt as KODAX_REASONING_MODE_SEQUENCE,hn as KODAX_RETRY_BASE_DELAY,me as KODAX_SESSIONS_DIR,wt as KODAX_STABLE_EFFORT_INTENTS,Rn as KODAX_STAGGER_DELAY,qr as KODAX_TOOLS,fo as KODAX_UNDERLYING_CAPABILITY_TOPICS,ve as KODAX_VERSION,Qn as KODAX_VIDEO_MEDIA_TYPES,_ as KodaXAcpServer,kt as KodaXAnthropicCompatProvider,xt as KodaXBaseProvider,ul as KodaXClient,ht as KodaXError,Tr as KodaXExtensionRuntime,Ln as KodaXMediaError,bt as KodaXOpenAICompatProvider,vt as KodaXProviderError,Rt as KodaXRateLimitError,Hi as KodaXSessionError,Ni as KodaXTerminalError,Gi as KodaXToolError,Ai as LINEAGE_ENTRY_TYPES,Za as LSP_SERVERS,ki as LineageCompaction,xi as LineageExtension,ed as LspService,go as MANUAL_REGISTRY,mo as MANUAL_TOPIC_IDS,jn as MAX_DIMENSION,Ml as MEMORY_INTERVENTION_SELECTOR_PROMPT,Ol as MEMORY_INTERVENTION_SELECTOR_SHA256,ui as McpAuthRequiredError,_i as McpCapabilityProvider,ci as McpExpiredSessionError,Ii as McpManager,wi as McpServerRuntime,Bn as PASTE_TMP_DIR_ENV,Gn as PASTE_TMP_TTL_MS,vs as PLANNER_AGENT_NAME,Sn as PROMISE_PATTERN,la as PROMPT_SECTION_REGISTRY,Vl as PROTOCOL_EMITTER_TOOLS,Ua as ProviderRecoveryCoordinator,no as READ_DEFAULT_LIMIT,oo as READ_MAX_LINE_CHARS,io as READ_PREFLIGHT_SIZE_BYTES,br as REPO_EXPLORER_AGENT_NAME,Cr as REPO_EXPLORER_TOOL_NAMES,kn as Runner,qe as RuntimePermissionScopeUpgradeRequiredError,Xe as RuntimeTransportBoundaryError,vd as SCOPED_REVIEW_OUTPUT_SCHEMA,hs as SCOUT_AGENT_NAME,Kc as SCOUT_THEN_AUTHOR_PROMPT_LINES,Ra as SELF_KNOWLEDGE_ROUTING_RULE,da as SYSTEM_PROMPT,$d as SYSTEM_WORKFLOW_LIMITS,Da as StableBoundaryTracker,Wn as TARGET_RAW_SIZE_BYTES,Ps as TASK_ENGINE_ROLE_AGENTS,Gl as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,kc as TRACING_ENV,ys as WORKER_AGENT_NAME,rd as WORKFLOW_GENERATION_SYSTEM_PROMPT,gr as _resetRuntimeForTesting,De as acquireKodaXInlineOwner,Rr as activate,Tn as actorQueueId,Xo as analyzeChangedScope,rr as appendAuditEntry,Di as appendSessionLineageLabel,Os as applyAccountingDelta,Pd as applyFindingVerification,Fi as applySessionCompaction,Eo as applyToolResultGuardrail,Vi as archiveOldIslands,qc as authorWorkflowViaWorker,cc as autoModeDenialShouldFallback,yc as bashSignalCollector,bc as bootstrapTracing,sl as boundedRevise,gc as breakerShouldFallback,rl as budgetCeiling,zd as buildApprovalSummary,Ks as buildBlockedGoal,ya as buildCapabilityContextSections,Nl as buildClassifierPrompt,Xs as buildCompleteGoal,Ms as buildCreatedGoal,Ga as buildFallbackRoutingDecision,Pl as buildGoalRuntimeBinding,Pi as buildInitializeCapabilities,ir as buildLlmReviewPrompt,vo as buildManualToolDescription,x as buildMcpReverseCapabilities,Ts as buildPausedGoal,_a as buildPromptMessageContent,ma as buildPromptSnapshot,ja as buildProviderCapabilitySnapshot,Ha as buildProviderPolicyHintsForDecision,Wa as buildProviderPolicyPromptNotes,Ko as buildRepoIntelligenceContext,Ho as buildRepoIntelligenceIndex,Oo as buildRepoOverview,Ls as buildResumedGoal,Id as buildScopedReviewFinalPrompt,wd as buildScopedReviewPrimaryPrompt,_d as buildScopedReviewVerificationPrompt,Xc as buildScoutThenAuthorPrompt,va as buildSelfKnowledgeRoutingRule,$i as buildSessionTree,Pa as buildSystemPrompt,Sa as buildSystemPromptSnapshot,sa as buildToolResultBudget,ra as buildToolResultBudgetFromUsage,Fs as buildToolSearchIndex,Ud as buildWorkflowCostReport,ud as buildWorkflowGenerationSkillContext,cd as buildWorkflowGenerationUserPrompt,Rc as checkAbsoluteDeny,wa as checkIncompleteToolCalls,Ja as checkPromiseSignal,aa as clampToolResultPolicyToBudget,Vd as clampWorkflowLimits,Zl as classify,ql as classifyBashCommand,Qi as classifyError,Mo as classifyFileCategory,Xa as classifyResilienceError,ta as cleanupExpiredToolOutputs,ii as cleanupIncompleteToolCalls,na as cleanupUnreferencedToolOutputs,tn as clearRuntimeModelProviders,Bi as clearShellExecutionEnvironmentCache,Pc as collectAllSignals,j as combineExtensionRuntimes,Fl as computeInputSignature,ec as computeRulesFingerprint,fr as configureRuntime,$e as connectKodaXRuntime,Oa as consumeCompactionCooldown,ls as convertCapabilityReadResult,ds as convertProviderSearchResults,zi as countActiveLineageMessages,wn as countTokens,_n as createAgent,ac as createAutoModeDenialTracker,Ec as createAutoModeToolGuardrail,Xl as createBashClassifierConfig,z as createBashPrefixExtractor,Vr as createBuiltinToolDefinition,mc as createCircuitBreaker,Tl as createCodingMemoryInterventionRunner,gd as createCodingWorkflowBackend,Ca as createCompactionAntiThrashState,Zs as createCtxProxy,jt as createCustomProvider,tl as createDefaultCodingAgent,Dl as createDenialTracker,E as createExtensionRuntime,od as createExternalActorTurnExecutor,Fn as createFileArtifactFromPath,In as createHandoff,Dn as createImageArtifactFromPath,En as createInMemorySession,Ce as createInteractiveContext,M as createKodaXRuntime,xl as createKodaXTaskRunner,id as createLocalCodingActorControl,si as createMcpCapabilityId,Ei as createMcpManager,pi as createMcpTransport,ca as createPromptSection,Na as createReasoningPlan,Wd as createRunGraphWriter,xa as createRuntimeContextBudgetSnapshot,il as createSessionControl,Ti as createSessionLineage,Hl as createToolResultTruncationGuardrail,Un as createVideoArtifactFromPath,Mc as createWorkflowLifecycleController,Lc as createWorkflowPatternTemplateModule,Nd as createWorkflowRunManager,ml as decideWorkflowInvocation,I as dedupeExtensionPathsByEntrypoint,oi as defaultMcpCacheDir,Js as defaultPolicy,Kd as deleteSavedWorkflow,mr as disableSelfModify,hi as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,Hs as discoverExtensionsInDirectory,Gs as discoverExtensionsInDirectoryDetailed,kr as discoverMarkdownAgents,vi as discoverOAuthEndpoints,gi as discoverProtectedResourceMetadata,bd as discoverSavedWorkflows,Is as drainPendingSwaps,It as effortToLegacyReasoningMode,zl as emitVerdict,Gd as emitWorkflowAgentDigest,je as enableKodaXDaemonOwner,ti as enqueueWithArtifacts,Mr as ensureBuiltinRepoExplorerAgent,Pn as estimateTokens,Aa as estimateToolSchemaTokens,$a as evaluateProviderPolicy,F as excludeExtensionPathsByEntrypoint,Ws as exec,be as executeCommand,ea as executeTool,Mi as extractArtifactLedger,xc as extractCommandPrefix,Ea as extractComparableUserMessageText,as as extractHtmlTitle,fi as extractInsufficientScope,Ia as extractPromptComparableText,mi as extractResourceMetadataUrl,Ci as extractTitleFromMessages,Sc as fileSignalCollector,us as finalizeRetrievalResult,Ir as findByVersion,Ui as findPreviousUserEntryId,Wi as forkSessionLineage,ha as formatAgentsForPrompt,bl as formatParallelDispatchResult,so as formatSize,bi as generateSessionId,md as generateWorkflow,fd as generateWorkflowFromOptions,Xr as getActiveExtensionRuntime,Cn as getAgentConfigHome,Mn as getAgentConfigPath,Gr as getAllRegisteredTools,On as getAppDataDir,on as getAvailableProviderNames,zr as getBuiltinRegisteredToolDefinition,$r as getBuiltinToolDefinition,xd as getBuiltinWorkflow,Nt as getCustomModelCapabilities,$t as getCustomProvider,Bt as getCustomProviderList,Ht as getCustomProviderModelDescriptors,Gt as getCustomProviderModels,Vt as getCustomProviderNames,Vs as getDefaultExtensionDirectory,td as getDefaultLspService,Jd as getDefaultWorkflowRunManager,Wl as getDenialContext,_e as getGitRoot,Zo as getImpactEstimate,Fe as getKodaXRuntimeOwnerPolicy,Ue as getKodaXRuntimeOwnerState,fa as getKodaxGlobalDir,li as getMcpCachePaths,Dt as getModelCapabilities,Zn as getModelInputCapabilities,Jo as getModuleContext,Yo as getProcessContext,Ot as getProvider,Lt as getProviderConfiguredCapabilityProfile,Tt as getProviderConfiguredReasoningCapability,ye as getProviderList,Re as getProviderModel,qt as getProviderModelDescriptors,Kt as getProviderModels,jr as getRegisteredToolDefinition,No as getRepoIntelligenceIndex,To as getRepoOverview,es as getRepoRoutingSignals,Qr as getRequiredToolParams,Yt as getRuntimeModelProvider,en as getRuntimeModelProviderNames,Li as getSessionLineagePath,Ki as getSessionMessagesFromLineage,Qo as getSymbolContext,Fr as getTool,Ur as getToolDefinition,Wr as getToolRegistrations,Io as getToolResultPolicy,he as getVersion,Tc as getWorkflowPatternTemplate,ks as goalTokenDelta,pl as hasExplicitNaturalLanguageWorkflowIntent,_s as hasPendingSwap,fe as hydrateProcessEnvFromShell,Xn as inferImageMediaType,Ba as inferTaskType,qn as inferVideoMediaType,wo as inspectEditFailure,Go as inspectRepoIntelligenceRuntime,zt as isCustomProviderName,jl as isDeniedRecently,nn as isKnownProvider,kl as isParallelDispatchDirective,Se as isProviderConfigured,Xt as isProviderName,Zt as isRuntimeModelProviderName,qa as isSessionRecoveryCandidateError,zs as isSupportedExtensionModulePath,W as isToolFileMutation,Jr as isToolMutation,Nr as isToolNetworkRead,Hr as isToolPlanModeAllowed,qs as isValidTokenBudget,Qa as languageIdForPath,Er as listAll,an as listAllModelCapabilities,Pr as listArtifacts,Ft as listBuiltinModelCapabilities,Br as listBuiltinToolDefinitions,kd as listBuiltinWorkflows,Es as listCodingDispatchableAgents,_r as listConstructed,Jt as listCustomProviderModelCapabilities,Zr as listToolDefinitions,Yr as listTools,Oc as listWorkflowPatternTemplates,ga as loadAgentsFiles,Ar as loadAgentsFromMarkdown,Ee as loadAutoModeSettings,oc as loadAutoRules,Pe as loadConfig,qd as loadGeneratedWorkflowFromRun,er as loadHandler,xr as loadMarkdownAgentScope,Od as loadSavedWorkflow,Md as loadSavedWorkflowCapsule,Si as loadValidToken,xs as makeDisabledGoalToolsContext,_t as mapLegacyReasoningModeToEffortIntent,oa as maybeRunReferenceAwareToolOutputGc,ia as maybeRunToolOutputGc,Il as mcpRootsFromWorkspace,Oi as mergeArtifactLedger,Sd as mergeScopedReviewResults,ln as normalizeKodaXAgentMode,ri as normalizeMcpCapabilityId,$n as normalizePastedImage,K as normalizeReasoningEffortValue,yd as normalizeScopedReviewResult,cn as normalizeShellExecutionContract,Cd as normalizeWorkflowModule,ua as orderPromptSections,hd as parallelInvestigation,ic as parseAutoRules,Jl as parseClassifierOutput,ke as parseCommand,Po as parseEditToolError,or as parseLlmReviewVerdict,ai as parseMcpCapabilityId,hc as parseModelSpec,X as parseReasoningEffortEnv,Ke as parseRuntimeEvent,St as parseTimeoutSecEnvMs,js as parseToolSearchQuery,pd as parseWorkflowGeneration,yi as performOAuthLogin,Hn as persistImageAsBlock,uo as persistToolOutput,ba as planToolExposure,Fd as preflightWorkflowCapsule,b as prepareRuntimeConfig,ts as prewarmRepoIntelligenceCaches,Le as processSpecialSyntax,sd as providerResilienceConfigFromTimeouts,Nn as prunePasteTmpDir,Ie as rateLimitedCall,Vn as readAndNormalizeClipboardImage,wr as readArtifact,ar as readAuditEntries,lr as readBudget,zn as readClipboardImage,pr as readDisableState,_c as readSpeculativeWindowFromEnv,tc as readTrustState,Va as reasoningModeToDepth,Fa as reconstructMessagesWithToolGuard,lc as recordAutoModeAllow,dc as recordAutoModeBlock,gl as recordBlockerAttempt,fc as recordBreakerError,Ta as recordCompactionSavings,Ul as recordDenial,cl as registerCodingInvariants,ge as registerConfiguredCustomProviders,A as registerConfiguredMcpCapabilityProvider,Wt as registerCustomProviders,Qt as registerModelProvider,Ri as registerOAuthClient,El as registerOfficialSandboxExtension,xn as registerPresetDispatcher,Dr as registerTool,yr as rehydrateActiveArtifacts,cr as remainingSelfModifyBudget,Ld as renameSavedWorkflow,qo as renderChangedScope,zo as renderImpactEstimate,jo as renderModuleContext,$o as renderProcessContext,pa as renderPromptSections,Lo as renderRepoOverview,cs as renderRetrievalResult,Wo as renderSymbolContext,_l as replaceConfiguredMcpCapabilityProvider,Xd as replaceSavedWorkflow,Ya as reportLspDiagnostics,hl as resetBlockerCounter,ur as resetBudget,O as resolveAcpLogLevel,Ae as resolveAutoModeSettings,vc as resolveClassifierModel,As as resolveCodingDispatchableAgent,ws as resolveConstructedAgent,Bs as resolveExtensionEntrypoint,ho as resolveKodaXManual,rn as resolveModelCapabilities,D as resolveProvider,sn as resolveProviderModelDescriptors,Et as resolveReasoningEffort,At as resolveReasoningEffortForModelSwitch,za as resolveReasoningMode,Bo as resolveRepoIntelligenceMode,Vo as resolveRepoIntelligenceRuntimeConfig,Ka as resolveResilienceConfig,Xi as resolveSessionLineageTarget,Ds as resolveToolBridgeTarget,al as resolveToolCapability,co as resolveToolOutputDir,dn as resolveWireEffort,dd as resolveWorkflowGenerationTimeoutMs,Cc as resolveWorkflowIdentity,Sr as revoke,ji as rewindSessionLineage,Or as rollbackSelfModify,gt as runAcpServer,tr as runAstRules,Oe as runInkInteractiveMode,Te as runInteractiveMode,nl as runKodaX,sr as runLlmReview,wl as runManagedTask,Al as runOrchestration,Hd as runWorkflowFromOptions,Bd as runWorkflowModule,jd as safeWorkflowArtifactName,we as saveConfig,Td as saveGeneratedWorkflow,Dd as saveGeneratedWorkflowFromRun,Ed as scopedReview,di as searchMcpCatalog,Us as searchToolIndex,Kr as setActiveExtensionRuntime,bn as setAgentConfigHome,We as setKodaXRuntimeOwnerMode,qi as setSessionLineageActiveEntry,un as shellExecutionContractFingerprint,Cs as shouldFlipBudgetLimited,Ma as shouldSkipLlmCompaction,$ as shutdownDefaultLspService,Ic as speculativeRace,hr as stage,ol as startKodaX,Qd as startManagedWorkflow,Ql as stripAssistantText,rs as stripHtmlToText,vr as testArtifact,yt as timeoutSecToMs,Co as toolAskUserQuestion,Ao as toolBash,Uo as toolChangedDiff,Fo as toolChangedScope,fs as toolCodeSearch,So as toolEdit,xo as toolGlob,ko as toolGrep,ss as toolImpactEstimate,_o as toolInsertAfterAnchor,ns as toolModuleContext,dl as toolPermission,os as toolProcessContext,po as toolRead,Do as toolRepoOverview,gs as toolSemanticLookup,is as toolSymbolContext,bo as toolUndo,ms as toolWebFetch,ps as toolWebSearch,yo as toolWrite,Me as touchContext,ro as truncateHead,lo as truncateLine,ao as truncateTail,nc as trustProjectRules,bs as turnWallTimeDelta,ni as validateAndFixToolHistory,Ut as validateCustomProviderConfig,ld as validateGeneratedWorkflowSource,ei as validateInputArtifactsForModel,Cl as validateSubtaskIndependence,nr as validateToolSchemaForProvider,Sl as verifyGoalCompletion,$s as webhook,Rl as withGoalBeforeNextTurn,yl as withGoalStopHook,Ro as withManualToolBranding,Ss as workerAgent,fl as workflowStartOutcomeConsumesTurn,Dc as writeReviewPackets};
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:lt(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:St(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
+ [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(H(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 J(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=ne(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"&&Y(g.resolve(e.cwd,o.path),e.cwd),a=V(e.permissionMode).has(t),d=e.permissionMode==="auto-in-project"&&(T(t)&&typeof o.path=="string"&&!Z(o.path,e.cwd)||t==="bash"&&typeof o.command=="string"&&te(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,Q(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 wt(n={}){let e=new _(n),t=ot.toWeb(R.stdin),o=it.toWeb(R.stdout);e.attach(t,o);try{await e.waitForClose()}finally{await e.dispose()}}s(wt,"runAcpServer");export{ie as ACP_LOG_LEVELS,Wa as ALWAYS_RESIDENT_TOOL_NAMES,Sc as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,Pc as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,S as AcpEventEmitter,y as AcpLogger,jc as BASH_POLICY_SPEC,Ml as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Ac as BREAKER_ERROR_THRESHOLD,xc as BREAKER_WINDOW_MS,xe as BUILTIN_COMMANDS,Ud as BUILTIN_WORKFLOWS,fi as CANCELLED_TOOL_RESULT_MESSAGE,mi as CANCELLED_TOOL_RESULT_PREFIX,mc as CLASSIFIER_MAX_OUTPUT_TOKENS,rc as CODING_AGENT_MARKER,_l as CODING_INVARIANTS,pl as CODING_SUMMARY_PROMPT,ml as CODING_UPDATE_SUMMARY_PROMPT,ur as CapabilityDeniedError,El as Client,hd as CodingActorSession,Nr as CombinedExtensionRuntime,pr as ConstructionManifestError,pc as DEFAULT_CLASSIFIER_TIMEOUT_MS,fl as DEFAULT_CODING_AGENT_NAME,Hl as DEFAULT_DANGEROUS_PATTERNS,lr as DEFAULT_HANDLER_TIMEOUT_MS,Na as DEFAULT_RESILIENCE_CONFIG,Nl as DEFAULT_SAFE_PATTERNS,wr as DEFAULT_SELF_MODIFY_BUDGET,Dc as DEFAULT_SPECULATIVE_WINDOW_MS,hi as DEFAULT_TOOL_OUTPUT_MAX_BYTES,gi as DEFAULT_TOOL_OUTPUT_MAX_LINES,Pd as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Cn as DefaultSummaryCompaction,oc as EMIT_VERDICT_TOOL_NAME,ui as ErrorCategory,Od as FINDING_VERIFICATION_OUTPUT_SCHEMA,C as FileSessionStorage,Os as GENERATOR_AGENT_NAME,Fn as ImageResizeError,_n as KODAX_API_MIN_INTERVAL,Ke as KODAX_ASRT_VERSION,b as KODAX_CONFIG_FILE,D as KODAX_DEFAULT_PROVIDER,vn as KODAX_DEFAULT_TIMEOUT,pe as KODAX_DIR,no as KODAX_FILE_MEDIA_TYPES,Rn as KODAX_HARD_TIMEOUT,eo as KODAX_IMAGE_MEDIA_TYPES,Pn as KODAX_MAX_INCOMPLETE_RETRIES,yn as KODAX_MAX_RETRIES,hn as KODAX_MAX_TOKENS,qt as KODAX_PROVIDERS,Dt as KODAX_PROVIDER_SNAPSHOTS,bt as KODAX_REASONING_MODE_SEQUENCE,Sn as KODAX_RETRY_BASE_DELAY,me as KODAX_SESSIONS_DIR,kt as KODAX_STABLE_EFFORT_INTENTS,wn as KODAX_STAGGER_DELAY,Qr as KODAX_TOOLS,bi as KODAX_UNDERLYING_CAPABILITY_TOPICS,ve as KODAX_VERSION,to as KODAX_VIDEO_MEDIA_TYPES,_ as KodaXAcpServer,Kt as KodaXAnthropicCompatProvider,Lt as KodaXBaseProvider,El as KodaXClient,_t as KodaXError,Gr as KodaXExtensionRuntime,qn as KodaXMediaError,Xt as KodaXOpenAICompatProvider,It as KodaXProviderError,Et as KodaXRateLimitError,li as KodaXSessionError,ci as KodaXTerminalError,di as KodaXToolError,Zo as LEARNING_REVIEW_PROMPT_SHA256,ei as LEARNING_REVIEW_SCHEMA_SHA256,Qo as LEARNING_REVIEW_SYSTEM_PROMPT,Yo as LEARNING_REVIEW_TOOL,Mo as LINEAGE_ENTRY_TYPES,md as LSP_SERVERS,To as LineageCompaction,Oo as LineageExtension,fd as LspService,ki as MANUAL_REGISTRY,xi as MANUAL_TOPIC_IDS,Vn as MAX_DIMENSION,Vl as MEMORY_INTERVENTION_SELECTOR_PROMPT,Bl as MEMORY_INTERVENTION_SELECTOR_SHA256,ho as McpAuthRequiredError,bo as McpCapabilityProvider,go as McpExpiredSessionError,ko as McpManager,xo as McpServerRuntime,Jn as PASTE_TMP_DIR_ENV,Qn as PASTE_TMP_TTL_MS,Ms as PLANNER_AGENT_NAME,In as PROMISE_PATTERN,_a as PROMPT_SECTION_REGISTRY,sc as PROTOCOL_EMITTER_TOOLS,ed as ProviderRecoveryCoordinator,vi as READ_DEFAULT_LIMIT,yi as READ_MAX_LINE_CHARS,Ri as READ_PREFLIGHT_SIZE_BYTES,$r as REPO_EXPLORER_AGENT_NAME,zr as REPO_EXPLORER_TOOL_NAMES,On as Runner,ze as RuntimePermissionScopeUpgradeRequiredError,$e as RuntimeTransportBoundaryError,Md as SCOPED_REVIEW_OUTPUT_SCHEMA,Cs as SCOUT_AGENT_NAME,Jc as SCOUT_THEN_AUTHOR_PROMPT_LINES,Oa as SELF_KNOWLEDGE_ROUTING_RULE,wa as SYSTEM_PROMPT,ol as SYSTEM_WORKFLOW_LIMITS,Ya as StableBoundaryTracker,Bn as TARGET_RAW_SIZE_BYTES,Ks as TASK_ENGINE_ROLE_AGENTS,ac as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,$c as TRACING_ENV,Ts as WORKER_AGENT_NAME,Sd as WORKFLOW_GENERATION_SYSTEM_PROMPT,kr as _resetRuntimeForTesting,Ve as acquireKodaXInlineOwner,Or as activate,Ue as activateKodaXSandbox,Dn as actorQueueId,Ji as analyzeChangedScope,Sr as appendAuditEntry,jo as appendSessionLineageLabel,Bs as applyAccountingDelta,Kd as applyFindingVerification,Wo as applySessionCompaction,Fi as applyToolResultGuardrail,No as archiveOldIslands,Yc as authorWorkflowViaWorker,Ec as autoModeDenialShouldFallback,Lc as bashSignalCollector,zc as bootstrapTracing,yl as boundedRevise,Cc as breakerShouldFallback,Sl as budgetCeiling,il as buildApprovalSummary,Hs as buildBlockedGoal,Ta as buildCapabilityContextSections,lc as buildClassifierPrompt,Js as buildCompleteGoal,Vs as buildCreatedGoal,ad as buildFallbackRoutingDecision,Kl as buildGoalRuntimeBinding,Ao as buildInitializeCapabilities,vr as buildLlmReviewPrompt,Mi as buildManualToolDescription,x as buildMcpReverseCapabilities,Gs as buildPausedGoal,Da as buildPromptMessageContent,xa as buildPromptSnapshot,td as buildProviderCapabilitySnapshot,dd as buildProviderPolicyHintsForDecision,nd as buildProviderPolicyPromptNotes,Hi as buildRepoIntelligenceContext,ds as buildRepoIntelligenceIndex,Bi as buildRepoOverview,Ns as buildResumedGoal,qd as buildScopedReviewFinalPrompt,Xd as buildScopedReviewPrimaryPrompt,Dd as buildScopedReviewVerificationPrompt,Qc as buildScoutThenAuthorPrompt,Ma as buildSelfKnowledgeRoutingRule,Bo as buildSessionTree,Ka as buildSystemPrompt,La as buildSystemPromptSnapshot,ya as buildToolResultBudget,Sa as buildToolResultBudgetFromUsage,Zs as buildToolSearchIndex,el as buildWorkflowCostReport,Ed as buildWorkflowGenerationSkillContext,Id as buildWorkflowGenerationUserPrompt,ni as canonicalMemoryProjectId,Tc as checkAbsoluteDeny,Xa as checkIncompleteToolCalls,cd as checkPromiseSignal,Pa as clampToolResultPolicyToBudget,sl as clampWorkflowLimits,fc as classify,Ql as classifyBashCommand,pi as classifyError,Vi as classifyFileCategory,Ja as classifyResilienceError,ga as cleanupExpiredToolOutputs,ao as cleanupIncompleteToolCalls,ha as cleanupUnreferencedToolOutputs,ln as clearRuntimeModelProviders,ai as clearShellExecutionEnvironmentCache,Xc as collectAllSignals,j as combineExtensionRuntimes,Zl as computeInputSignature,gc as computeRulesFingerprint,br as configureRuntime,Je as connectKodaXRuntime,Ba as consumeCompactionCooldown,_s as convertCapabilityReadResult,ws as convertProviderSearchResults,Go as countActiveLineageMessages,An as countTokens,xn as createAgent,wc as createAutoModeDenialTracker,Uc as createAutoModeToolGuardrail,Jl as createBashClassifierConfig,z as createBashPrefixExtractor,sa as createBuiltinToolDefinition,bc as createCircuitBreaker,Gl as createCodingMemoryInterventionRunner,kd as createCodingWorkflowBackend,za as createCompactionAntiThrashState,mr as createCtxProxy,Nt as createCustomProvider,gl as createDefaultCodingAgent,Yl as createDenialTracker,E as createExtensionRuntime,Rd as createExternalActorTurnExecutor,$n as createFileArtifactFromPath,bn as createHandoff,Wn as createImageArtifactFromPath,kn as createInMemorySession,Ce as createInteractiveContext,M as createKodaXRuntime,jl as createKodaXTaskRunner,vd as createLocalCodingActorControl,co as createMcpCapabilityId,Co as createMcpManager,vo as createMcpTransport,ti as createProductionLearningReviewer,Ia as createPromptSection,ld as createReasoningPlan,nl as createRunGraphWriter,ja as createRuntimeContextBudgetSnapshot,vl as createSessionControl,Xo as createSessionLineage,dc as createToolResultTruncationGuardrail,zn as createVideoArtifactFromPath,Bc as createWorkflowLifecycleController,Hc as createWorkflowPatternTemplateModule,ll as createWorkflowRunManager,xl as decideWorkflowInvocation,I as dedupeExtensionPathsByEntrypoint,lo as defaultMcpCacheDir,cr as defaultPolicy,Hd as deleteSavedWorkflow,xr as disableSelfModify,Po as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,dr as discoverExtensionsInDirectory,ar as discoverExtensionsInDirectoryDetailed,Wr as discoverMarkdownAgents,wo as discoverOAuthEndpoints,So as discoverProtectedResourceMetadata,$d as discoverSavedWorkflows,De as doctorKodaXSandbox,qs as drainPendingSwaps,Mt as effortToLegacyReasoningMode,ic as emitVerdict,al as emitWorkflowAgentDigest,Ne as enableKodaXDaemonOwner,so as enqueueWithArtifacts,Vr as ensureBuiltinRepoExplorerAgent,En as estimateTokens,Ua as estimateToolSchemaTokens,od as evaluateProviderPolicy,F as excludeExtensionPathsByEntrypoint,nr as exec,ke as executeCommand,fa as executeTool,Lo as extractArtifactLedger,Wc as extractCommandPrefix,Fa as extractComparableUserMessageText,Ps as extractHtmlTitle,yo as extractInsufficientScope,qa as extractPromptComparableText,Ro as extractResourceMetadataUrl,Jo as extractTitleFromMessages,Kc as fileSignalCollector,Es as finalizeRetrievalResult,qr as findByVersion,$o as findPreviousUserEntryId,Vo as forkSessionLineage,Ca as formatAgentsForPrompt,$l as formatParallelDispatchResult,Si as formatSize,Ho as generateSessionId,xd as generateWorkflow,bd as generateWorkflowFromOptions,Jr as getActiveExtensionRuntime,Ln as getAgentConfigHome,Kn as getAgentConfigPath,aa as getAllRegisteredTools,Xn as getAppDataDir,un as getAvailableProviderNames,ia as getBuiltinRegisteredToolDefinition,oa as getBuiltinToolDefinition,jd as getBuiltinWorkflow,nn as getCustomModelCapabilities,Jt as getCustomProvider,Zt as getCustomProviderList,tn as getCustomProviderModelDescriptors,en as getCustomProviderModels,Yt as getCustomProviderNames,sr as getDefaultExtensionDirectory,gd as getDefaultLspService,cl as getDefaultWorkflowRunManager,nc as getDenialContext,_e as getGitRoot,ms as getImpactEstimate,Be as getKodaXRuntimeOwnerPolicy,Ge as getKodaXRuntimeOwnerState,Xe as getKodaXSandboxCapability,Fe as getKodaXSandboxSetupGuidance,ba as getKodaxGlobalDir,fo as getMcpCachePaths,Vt as getModelCapabilities,oo as getModelInputCapabilities,cs as getModuleContext,ps as getProcessContext,Ft as getProvider,jt as getProviderConfiguredCapabilityProfile,Ut as getProviderConfiguredReasoningCapability,ye as getProviderList,Re as getProviderModel,zt as getProviderModelDescriptors,Wt as getProviderModels,ta as getRegisteredToolDefinition,ls as getRepoIntelligenceIndex,Gi as getRepoOverview,fs as getRepoRoutingSignals,ua as getRequiredToolParams,rn as getRuntimeModelProvider,dn as getRuntimeModelProviderNames,Do as getSessionLineagePath,qo as getSessionMessagesFromLineage,us as getSymbolContext,Zr as getTool,ea as getToolDefinition,na as getToolRegistrations,qi as getToolResultPolicy,he as getVersion,Nc as getWorkflowPatternTemplate,Ws as goalTokenDelta,Al as hasExplicitNaturalLanguageWorkflowIntent,Ds as hasPendingSwap,fe as hydrateProcessEnvFromShell,Un as inferImageMediaType,rd as inferTaskType,jn as inferVideoMediaType,Xi as inspectEditFailure,as as inspectRepoIntelligenceRuntime,Qt as isCustomProviderName,tc as isDeniedRecently,cn as isKnownProvider,Wl as isParallelDispatchDirective,Se as isProviderConfigured,$t as isProviderName,an as isRuntimeModelProviderName,Qa as isSessionRecoveryCandidateError,ir as isSupportedExtensionModulePath,W as isToolFileMutation,ca as isToolMutation,la as isToolNetworkRead,da as isToolPlanModeAllowed,Qs as isValidTokenBudget,ud as languageIdForPath,Fr as listAll,fn as listAllModelCapabilities,Kr as listArtifacts,Bt as listBuiltinModelCapabilities,ra as listBuiltinToolDefinitions,Wd as listBuiltinWorkflows,Fs as listCodingDispatchableAgents,Dr as listConstructed,on as listCustomProviderModelCapabilities,ma as listToolDefinitions,pa as listTools,Gc as listWorkflowPatternTemplates,ka as loadAgentsFiles,Ur as loadAgentsFromMarkdown,Ee as loadAutoModeSettings,yc as loadAutoRules,Pe as loadConfig,Qd as loadGeneratedWorkflowFromRun,fr as loadHandler,jr as loadMarkdownAgentScope,Bd as loadSavedWorkflow,Vd as loadSavedWorkflowCapsule,Eo as loadValidToken,js as makeDisabledGoalToolsContext,Ct as mapLegacyReasoningModeToEffortIntent,Ra as maybeRunReferenceAwareToolOutputGc,va as maybeRunToolOutputGc,ql as mcpRootsFromWorkspace,Ko as mergeArtifactLedger,Ld as mergeScopedReviewResults,oi as normalizeKodaXAgentMode,uo as normalizeMcpCapabilityId,Gn as normalizePastedImage,K as normalizeReasoningEffortValue,Td as normalizeScopedReviewResult,ii as normalizeShellExecutionContract,zd as normalizeWorkflowModule,Ea as orderPromptSections,Cd as parallelInvestigation,Rc as parseAutoRules,cc as parseClassifierOutput,be as parseCommand,Ki as parseEditToolError,Rr as parseLlmReviewVerdict,po as parseMcpCapabilityId,Mc as parseModelSpec,X as parseReasoningEffortEnv,We as parseRuntimeEvent,ri as parseSandboxEnvironmentPass,xt as parseTimeoutSecEnvMs,tr as parseToolSearchQuery,Ad as parseWorkflowGeneration,Io as performOAuthLogin,Yn as persistImageAsBlock,Ei as persistToolOutput,$a as planToolExposure,Zd as preflightWorkflowCapsule,k as prepareRuntimeConfig,gs as prewarmRepoIntelligenceCaches,Le as processSpecialSyntax,yd as providerResilienceConfigFromTimeouts,Zn as prunePasteTmpDir,Ie as rateLimitedCall,Hn as readAndNormalizeClipboardImage,Xr as readArtifact,Pr as readAuditEntries,_r as readBudget,Nn as readClipboardImage,Ar as readDisableState,qc as readSpeculativeWindowFromEnv,hc as readTrustState,sd as reasoningModeToDepth,Za as reconstructMessagesWithToolGuard,Ic as recordAutoModeAllow,_c as recordAutoModeBlock,kl as recordBlockerAttempt,kc as recordBreakerError,Ga as recordCompactionSavings,ec as recordDenial,Il as registerCodingInvariants,ge as registerConfiguredCustomProviders,A as registerConfiguredMcpCapabilityProvider,Ht as registerCustomProviders,sn as registerModelProvider,_o as registerOAuthClient,Fl as registerOfficialSandboxExtension,Mn as registerPresetDispatcher,Yr as registerTool,Tr as rehydrateActiveArtifacts,Ir as remainingSelfModifyBudget,Nd as renameSavedWorkflow,Qi as renderChangedScope,is as renderImpactEstimate,ts as renderModuleContext,os as renderProcessContext,Aa as renderPromptSections,Ni as renderRepoOverview,Is as renderRetrievalResult,ns as renderSymbolContext,Dl as replaceConfiguredMcpCapabilityProvider,Jd as replaceSavedWorkflow,pd as reportLspDiagnostics,Cl as resetBlockerCounter,Er as resetBudget,O as resolveAcpLogLevel,Ae as resolveAutoModeSettings,Oc as resolveClassifierModel,Us as resolveCodingDispatchableAgent,Xs as resolveConstructedAgent,rr as resolveExtensionEntrypoint,Ci as resolveKodaXManual,mn as resolveModelCapabilities,q as resolveProvider,pn as resolveProviderModelDescriptors,Ot as resolveReasoningEffort,Tt as resolveReasoningEffortForModelSwitch,id as resolveReasoningMode,rs as resolveRepoIntelligenceMode,ss as resolveRepoIntelligenceRuntimeConfig,Ha as resolveResilienceConfig,Fo as resolveSessionLineageTarget,Ys as resolveToolBridgeTarget,Pl as resolveToolCapability,Ii as resolveToolOutputDir,gn as resolveWireEffort,wd as resolveWorkflowGenerationTimeoutMs,Vc as resolveWorkflowIdentity,Lr as revoke,zo as rewindSessionLineage,Br as rollbackSelfModify,wt as runAcpServer,gr as runAstRules,Oe as runInkInteractiveMode,Te as runInteractiveMode,hl as runKodaX,je as runKodaXSandboxed,yr as runLlmReview,Xl as runManagedTask,Ul as runOrchestration,dl as runWorkflowFromOptions,rl as runWorkflowModule,tl as safeWorkflowArtifactName,we as saveConfig,Gd as saveGeneratedWorkflow,Yd as saveGeneratedWorkflowFromRun,Fd as scopedReview,mo as searchMcpCatalog,er as searchToolIndex,Hr as setActiveExtensionRuntime,Tn as setAgentConfigHome,He as setKodaXRuntimeOwnerMode,Uo as setSessionLineageActiveEntry,qe as setupKodaXSandbox,si as shellExecutionContractFingerprint,zs as shouldFlipBudgetLimited,Va as shouldSkipLlmCompaction,$ as shutdownDefaultLspService,Fc as speculativeRace,Cr as stage,Rl as startKodaX,ul as startManagedWorkflow,uc as stripAssistantText,Ss as stripHtmlToText,Mr as testArtifact,At as timeoutSecToMs,zi as toolAskUserQuestion,Ui as toolBash,es as toolChangedDiff,Zi as toolChangedScope,bs as toolCodeSearch,Li as toolEdit,ji as toolGlob,Wi as toolGrep,ys as toolImpactEstimate,Di as toolInsertAfterAnchor,hs as toolModuleContext,wl as toolPermission,Rs as toolProcessContext,Ai as toolRead,Yi as toolRepoOverview,ks as toolSemanticLookup,vs as toolSymbolContext,$i as toolUndo,xs as toolWebFetch,As as toolWebSearch,Ti as toolWrite,Me as touchContext,Pi as truncateHead,_i as truncateLine,wi as truncateTail,vc as trustProjectRules,$s as turnWallTimeDelta,ro as validateAndFixToolHistory,Gt as validateCustomProviderConfig,_d as validateGeneratedWorkflowSource,io as validateInputArtifactsForModel,zl as validateSubtaskIndependence,hr as validateToolSchemaForProvider,Ll as verifyGoalCompletion,or as webhook,Ol as withGoalBeforeNextTurn,Tl as withGoalStopHook,Oi as withManualToolBranding,Ls as workerAgent,bl as workflowStartOutcomeConsumesTurn,Zc as writeReviewPackets};
@@ -25,4 +25,5 @@ if (process.env.KODAX_DISABLE_HARDENING !== '1') {
25
25
  delete process.env.DYLD_LIBRARY_PATH;
26
26
  }
27
27
 
28
- var u=Object.defineProperty;var t=(e,o)=>u(e,"name",{value:o,configurable:!0});import{pathToFileURL as c}from"node:url";function m(e){return e.length===1&&(e[0]==="-r"||e[0]==="--resume")}t(m,"isBareResumeRequest");async function p(e={}){let o=e.argv??process.argv,r=e.stdin??process.stdin,d=e.loadResume??(()=>import("./kodax_resume.js")),l=e.loadCli??(()=>import("./kodax_cli.js")),a,s=t(()=>(a??=l(),a),"loadCliOnce");if(m(o.slice(2))){let n=await(await d()).resolveBareResume({beforeSelect:t(async()=>{await s()},"beforeSelect")});if(n.kind==="exit"){r.pause?.(),r.unref?.();return}o.splice(2,o.length-2,...n.argv),n.argv.length>0&&r.isTTY===!0&&(r.pause?.(),r.ref?.())}await(await s()).main()}t(p,"runKodaXBootstrap");async function f(){try{await p()}catch(e){process.stdin.pause(),process.stdin.unref?.();let o=e instanceof Error?e.message:String(e);try{let{default:r}=await import("chalk");console.error(r.red(`[Error] ${o}`))}catch{console.error(`[Error] ${o}`)}process.exitCode=1}}t(f,"runKodaXBootstrapAsEntry");var i=process.argv[1],y=i!==void 0&&import.meta.url===c(i).href;y&&f();export{m as isBareResumeRequest,p as runKodaXBootstrap,f as runKodaXBootstrapAsEntry};
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.79"}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
+ `);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};