@kodax-ai/kodax 0.7.73 → 0.7.74
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.
- package/CHANGELOG.md +134 -0
- package/README.md +26 -6
- package/README_CN.md +23 -5
- package/config-templates/config.example.jsonc +7 -0
- package/dist/chunks/{agent-T6PGT6AU.js → agent-2ABIG5NW.js} +1 -1
- package/dist/chunks/argument-completer-C45DEO34.js +2 -0
- package/dist/chunks/chunk-5GH3SVI3.js +74 -0
- package/dist/chunks/{chunk-6JTWXGVU.js → chunk-7W6KYJU2.js} +225 -225
- package/dist/chunks/chunk-C7TZAT3S.js +369 -0
- package/dist/chunks/chunk-KPGVY6PF.js +321 -0
- package/dist/chunks/{chunk-6RI2RBTF.js → chunk-MVCAFD6M.js} +1 -1
- package/dist/chunks/{chunk-BUPJGG3C.js → chunk-PP53SIIL.js} +1 -1
- package/dist/chunks/chunk-QH56WEHK.js +2 -0
- package/dist/chunks/chunk-UJS7JAO6.js +770 -0
- package/dist/chunks/{chunk-M7FXNPWV.js → chunk-VK5QTHS6.js} +6 -6
- package/dist/chunks/chunk-VPURXE2F.js +427 -0
- package/dist/chunks/chunk-XM724XAA.js +329 -0
- package/dist/chunks/{chunk-MLEAQTCD.js → chunk-XMP66YWG.js} +11 -4
- package/dist/chunks/{compaction-config-IHJBP4GO.js → compaction-config-QYCDOW3Q.js} +1 -1
- package/dist/chunks/{construction-bootstrap-EGRUHKLP.js → construction-bootstrap-BKNPJI7O.js} +1 -1
- package/dist/chunks/dist-6EK4H7TP.js +2 -0
- package/dist/chunks/host-KS4TJKWQ.js +2 -0
- package/dist/chunks/{run-manager-AY7RQOWM.js → run-manager-L7MKGQNX.js} +1 -1
- package/dist/chunks/{utils-2GAE4XIM.js → utils-GTJLL4GT.js} +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +1295 -1253
- package/dist/runtime-worker.js +1208 -1166
- package/dist/sdk-a2a.d.ts +9 -8
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +107 -59
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +32 -16
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +27 -20
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +151 -14
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-session.d.ts +4 -4
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +16 -14
- package/dist/types-chunks/{bash-prefix-extractor.d-bApf5nGw.d.ts → bash-prefix-extractor.d-r1beOESM.d.ts} +48 -12
- package/dist/types-chunks/{capsule.d-CGWltwno.d.ts → capsule.d-zeqV4IQX.d.ts} +10 -2
- package/dist/types-chunks/{commands.d-CEHGwRok.d.ts → commands.d-DUxnK2TU.d.ts} +10 -7
- package/dist/types-chunks/{guardrail.d-CC4vAQl7.d.ts → guardrail.d-CWYD1bdL.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-CXIPlWP3.d.ts → guardrail.d-qjuKJZ31.d.ts} +72 -11
- package/dist/types-chunks/history-retrieval.d-BKTJIrVd.d.ts +57 -0
- package/dist/types-chunks/{public-api.d-FBmX0kxo.d.ts → public-api.d-CX4B11qY.d.ts} +17 -4
- package/dist/types-chunks/{run-manager.d-DUNnJcpE.d.ts → run-manager.d-B9fEIjZk.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-XqacVOs8.d.ts → sdk-session-B0fhAOPa.d.ts} +2 -2
- package/dist/types-chunks/{types.d-DKr6TCXL.d.ts → types.d-Bm_y6YuM.d.ts} +2 -2
- package/dist/types-chunks/{types.d-DgciGHoG.d.ts → types.d-DEctY20M.d.ts} +9 -2
- package/dist/types-chunks/{types.d-BnPhGmar.d.ts → types.d-sRLugmjy.d.ts} +61 -14
- package/dist/types-chunks/{utils.d-BPYX7-KN.d.ts → utils.d-D0wPxz8y.d.ts} +5 -5
- package/docs/SDK_EMBEDDER_GUIDE.md +1956 -1684
- package/package.json +8 -1
- package/dist/chunks/argument-completer-QGMWA2C3.js +0 -2
- package/dist/chunks/chunk-AGDDM5AW.js +0 -329
- package/dist/chunks/chunk-EAD4SF3Z.js +0 -413
- package/dist/chunks/chunk-HVCNAZ52.js +0 -365
- package/dist/chunks/chunk-OG6DRNKV.js +0 -755
- package/dist/chunks/chunk-PFH53O4M.js +0 -2
- package/dist/chunks/chunk-V4F6IYNK.js +0 -73
- package/dist/chunks/chunk-WQ6PWGK5.js +0 -320
- package/dist/chunks/dist-5N3I2RTW.js +0 -2
- package/dist/chunks/host-MECITNE3.js +0 -2
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{a as 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-
|
|
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
|
|
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-5GH3SVI3.js";import{Ab as Te,Bb as Le,Sb as C,Ua as Ce,Va as Me,hb as Oe}from"./chunks/chunk-KPGVY6PF.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-7W6KYJU2.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-XMP66YWG.js";import"./chunks/chunk-QH56WEHK.js";import{$ as Hl,A as x,Aa as Pc,B as wl,Ba as z,C as _l,Ca as wc,D as Il,Da as _c,E as El,Ea as Ic,F as Al,Fa as Ec,G as xl,Ga as Ac,H as kl,Ha as xc,I as bl,Ia as kc,J as Cl,Ja as bc,K as Ml,Ka as Cc,L as Ol,La as Mc,M as Tl,Ma as Oc,N as Ll,O as Kl,P as Xl,Q as ql,R as Dl,S as Fl,T as Ul,U as jl,V as Wl,W as $l,X as zl,Y as Vl,Z as Bl,_ as Gl,a as cn,aa as Nl,b as un,ba as Jl,c as pn,ca as Ql,d as el,da as Yl,e as tl,ea as Zl,f as nl,fa as ec,g as il,ga as tc,h as ol,ha as nc,i as sl,ia as ic,j as rl,ja as oc,k as al,ka as sc,l as dl,la as rc,m as ll,ma as ac,n as cl,na as dc,o as ul,oa as lc,p as pl,pa as cc,q as ml,qa as uc,r as fl,ra as pc,s as gl,sa as mc,t as hl,ta as fc,u as vl,ua as gc,v as Rl,va as hc,w as yl,wa as vc,x as A,xa as Rc,y as Sl,ya as yc,z as Pl,za as Sc}from"./chunks/chunk-VPURXE2F.js";import{a as id,b as od,c as sd,d as rd,e as ad,f as dd,g as ld,h as cd,i as ud,j as Hd}from"./chunks/chunk-MVCAFD6M.js";import{A as Dd,B as Fd,C as Ud,D as jd,E as Wd,F as $d,G as zd,H as Vd,I as Bd,J as Gd,a as pd,b as md,c as fd,d as gd,e as hd,f as vd,g as Rd,h as yd,i as Sd,j as Pd,k as wd,l as _d,m as Id,n as Ed,o as Ad,p as xd,q as kd,r as bd,s as Cd,t as Md,u as Od,v as Td,w as Ld,x as Kd,y as Xd,z as qd}from"./chunks/chunk-VK5QTHS6.js";import{$ as $a,A as Ea,Aa as Jd,B as Aa,C as xa,D as ka,E as ba,F as Ca,Ha as Qd,I as Ma,Ia as Yd,J as Oa,K as Ta,Ka as Zd,L as La,M as Ka,N as Xa,O as qa,T as Da,U as Fa,V as Ua,W as ja,X as Wa,a as ln,aa as za,b as Xn,ba as Va,c as qn,ca as Ba,d as sa,e as ra,f as aa,fa as Ga,g as da,h as la,i as ca,k as fa,l as ga,m as ha,n as va,o as Ra,p as ya,q as Sa,v as Pa,w as wa,y as _a,z as Ia,za as Nd}from"./chunks/chunk-XM724XAA.js";import"./chunks/chunk-64M5HOCA.js";import{a as nd}from"./chunks/chunk-MBAPT2R5.js";import{$ as wo,$a as vs,$b as ar,$c as Yr,Aa as Vo,Ab as qs,Ac as Or,Ad as $,Ba as Bo,Bb as Ds,Bc as Tr,Ca as Go,Cb as Fs,Da as Ho,Db as Us,E as co,Ea as No,Eb as js,F as uo,Fa as Jo,Fb as Ws,G as po,Ga as Qo,Gb as $s,H as mo,Hb as I,Hc as Lr,Hd as Za,I as fo,Ia as Yo,Ib as F,Ic as Kr,Id as ed,J as go,Ja as Zo,Jb as zs,Jc as Xr,Jd as td,Ka as es,Kb as Vs,Kc as qr,La as ts,Lb as U,Lc as Dr,Ma as ns,Mb as Bs,Mc as Fr,Na as is,Nb as Gs,Nc as Ur,Oa as os,Ob as Hs,Oc as jr,Pa as ss,Pb as Ns,Pc as Wr,Q as ho,Qa as rs,Qb as Js,Qc as $r,R as vo,Ra as as,Rb as Qs,Rc as zr,S as Ro,Sa as ds,Sb as Ys,Sc as Vr,T as yo,Ta as ls,Tb as Zs,Tc as W,U as So,Ua as cs,Ub as er,Uc as Br,Va as us,Vb as tr,Vc as Gr,Wa as ps,Wb as nr,Wc as Hr,Xa as ms,Xb as ir,Xc as Nr,Ya as fs,Yb as or,Yc as Jr,Z as Po,Za as gs,Zb as sr,_a as hs,_b as rr,_c as Qr,ab as Rs,ac as dr,ad as Zr,ba as _o,bb as ys,bc as lr,bd as ea,ca as Io,cc as cr,cd as ta,d as Ni,da as Eo,db as Ss,dc as ur,dd as na,e as Ji,ea as Ao,eb as Ps,ec as pr,ed as ia,fa as xo,fb as ws,fc as mr,fd as oa,gb as _s,gc as fr,gd as ua,ha as ko,hc as gr,hd as pa,ia as bo,ib as Is,ic as hr,id as ma,ja as Co,jb as Es,jc as vr,ka as Mo,kb as As,kc as Rr,l as Qi,la as Oo,lb as xs,lc as yr,m as Yi,ma as To,mb as ks,mc as Sr,n as Zi,na as Lo,nb as bs,nc as Pr,o as eo,oa as Ko,ob as Cs,oc as wr,p as to,pa as Xo,pb as Ms,pc as _r,q as no,qa as qo,qb as Os,qc as Ir,r as io,ra as Do,rb as Ts,rc as Er,s as oo,sa as Fo,sb as Ls,sc as Ar,t as so,ta as Uo,tc as xr,u as ro,ua as jo,uc as kr,v as ao,va as Wo,vb as Ks,vc as br,vd as Ha,w as lo,wa as $o,wc as Cr,wd as Na,xa as zo,xc as Mr,xd as Ja,yc as j,yd as Qa,zb as Xs,zc as E,zd as Ya}from"./chunks/chunk-C7TZAT3S.js";import{Aa as zt,Ba as Vt,C as K,Ca as Bt,D as _t,Da as Gt,E as It,Ea as Ht,F as X,Fa as Nt,G as Et,Ga as Jt,H as At,Ha as Qt,Ia as Yt,Ja as Zt,Ka as en,La as tn,Ma as D,Na as nn,Oa as on,Pa as sn,Qa as rn,Ra as an,U as xt,Ua as dn,ca as kt,d as ht,da as bt,e as vt,f as Rt,ia as Ct,ja as Mt,ka as q,la as Ot,m as yt,n as St,oa as Tt,pa as Lt,ra as Kt,sa as Xt,ta as qt,ua as Dt,v as Pt,va as Ft,w as wt,wa as Ut,xa as jt,ya as Wt,za as $t}from"./chunks/chunk-XXQLPTAN.js";import{Ac as Mi,Ec as Oi,Fc as Ti,Ic as Li,Jc as Ki,a as Dn,b as Fn,bc as ai,c as Un,cc as di,d as jn,dc as li,e as Wn,ec as ci,f as $n,fc as ui,gc as pi,h as zn,hc as mi,i as Vn,ic as fi,j as Bn,jc as gi,k as Gn,kc as hi,kd as Xi,l as Hn,lc as vi,ld as qi,mc as Ri,md as Di,nc as yi,nd as Fi,oc as Si,od as Ui,pc as Pi,pd as ji,qc as wi,qd as Wi,rc as _i,s as Nn,sa as Zn,sb as si,sc as Ii,t as Jn,tb as ri,tc as Ei,td as $i,u as Qn,uc as Ai,ud as zi,v as Yn,va as ei,vc as xi,vd as Vi,wc as ki,wd as Bi,xd as Gi,yc as bi,yd as Hi,zc as Ci}from"./chunks/chunk-UJS7JAO6.js";import{d as ti,e as ni,f as ii,i as oi}from"./chunks/chunk-GAFFYJU3.js";import{F as Kn,a as mn,b as fn,c as gn,d as hn,e as vn,f as Rn,g as yn,h as Sn,i as Pn,j as wn,k as _n,l as In,m as En,n as An,o as xn,p as kn,q as bn,r as Cn,s as Mn,t as On,u as Tn,y as Ln}from"./chunks/chunk-PP53SIIL.js";import"./chunks/chunk-F7AIEHSS.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(`
|
|
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=
|
|
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,`
|
|
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
|
|
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
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,Ia as ALWAYS_RESIDENT_TOOL_NAMES,Zl as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,ec as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,P as AcpEventEmitter,y as AcpLogger,Pc as BASH_POLICY_SPEC,fl as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,sc as BREAKER_ERROR_THRESHOLD,rc as BREAKER_WINDOW_MS,xe as BUILTIN_COMMANDS,_d as BUILTIN_WORKFLOWS,Ji as CANCELLED_TOOL_RESULT_MESSAGE,Ni as CANCELLED_TOOL_RESULT_PREFIX,Ul as CODING_AGENT_MARKER,rl as CODING_INVARIANTS,Nd as CODING_SUMMARY_PROMPT,Jd as CODING_UPDATE_SUMMARY_PROMPT,Hs as CapabilityDeniedError,dl as Client,Za as CodingActorSession,Mr as CombinedExtensionRuntime,Ns as ConstructionManifestError,Bl as DEFAULT_CLASSIFIER_TIMEOUT_MS,Qd as DEFAULT_CODING_AGENT_NAME,Cl as DEFAULT_DANGEROUS_PATTERNS,Bs as DEFAULT_HANDLER_TIMEOUT_MS,Ma as DEFAULT_RESILIENCE_CONFIG,kl as DEFAULT_SAFE_PATTERNS,sr as DEFAULT_SELF_MODIFY_BUDGET,hc as DEFAULT_SPECULATIVE_WINDOW_MS,Yi as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Qi as DEFAULT_TOOL_OUTPUT_MAX_LINES,od as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Yn as DefaultSummaryCompaction,ql as EMIT_VERDICT_TOOL_NAME,Xn as ErrorCategory,gd as FINDING_VERIFICATION_OUTPUT_SCHEMA,b as FileSessionStorage,gs as GENERATOR_AGENT_NAME,fn as ImageResizeError,Vn as KODAX_API_MIN_INTERVAL,k as KODAX_CONFIG_FILE,q as KODAX_DEFAULT_PROVIDER,Fn as KODAX_DEFAULT_TIMEOUT,pe as KODAX_DIR,Mn as KODAX_FILE_MEDIA_TYPES,Un as KODAX_HARD_TIMEOUT,Cn as KODAX_IMAGE_MEDIA_TYPES,$n as KODAX_MAX_INCOMPLETE_RETRIES,jn as KODAX_MAX_RETRIES,Dn as KODAX_MAX_TOKENS,Mt as KODAX_PROVIDERS,bt as KODAX_PROVIDER_SNAPSHOTS,St as KODAX_REASONING_MODE_SEQUENCE,Wn as KODAX_RETRY_BASE_DELAY,me as KODAX_SESSIONS_DIR,wt as KODAX_STABLE_EFFORT_INTENTS,zn as KODAX_STAGGER_DELAY,Lr as KODAX_TOOLS,uo as KODAX_UNDERLYING_CAPABILITY_TOPICS,ve as KODAX_VERSION,bn as KODAX_VIDEO_MEDIA_TYPES,_ as KodaXAcpServer,kt as KodaXAnthropicCompatProvider,xt as KodaXBaseProvider,dl as KodaXClient,ht as KodaXError,br as KodaXExtensionRuntime,mn as KodaXMediaError,Ct as KodaXOpenAICompatProvider,vt as KodaXProviderError,Rt as KodaXRateLimitError,un as KodaXSessionError,pn as KodaXTerminalError,cn as KodaXToolError,Ci as LINEAGE_ENTRY_TYPES,Ja as LSP_SERVERS,Mi as LineageCompaction,bi as LineageExtension,Qa as LspService,po as MANUAL_REGISTRY,co as MANUAL_TOPIC_IDS,Pn as MAX_DIMENSION,fi as McpAuthRequiredError,Ai as McpCapabilityProvider,mi as McpExpiredSessionError,xi as McpManager,Ii as McpServerRuntime,In as PASTE_TMP_DIR_ENV,An as PASTE_TMP_TTL_MS,fs as PLANNER_AGENT_NAME,Bn as PROMISE_PATTERN,ra as PROMPT_SECTION_REGISTRY,Fl as PROTOCOL_EMITTER_TOOLS,qa as ProviderRecoveryCoordinator,Zi as READ_DEFAULT_LIMIT,to as READ_MAX_LINE_CHARS,eo as READ_PREFLIGHT_SIZE_BYTES,Ar as REPO_EXPLORER_AGENT_NAME,xr as REPO_EXPLORER_TOOL_NAMES,ei as Runner,qe as RuntimePermissionScopeUpgradeRequiredError,Xe as RuntimeTransportBoundaryError,fd as SCOPED_REVIEW_OUTPUT_SCHEMA,ms as SCOUT_AGENT_NAME,Cc as SCOUT_THEN_AUTHOR_PROMPT_LINES,ga as SELF_KNOWLEDGE_ROUTING_RULE,sa as SYSTEM_PROMPT,Ud as SYSTEM_WORKFLOW_LIMITS,Ka as StableBoundaryTracker,Sn as TARGET_RAW_SIZE_BYTES,Rs as TASK_ENGINE_ROLE_AGENTS,jl as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,wc as TRACING_ENV,hs as WORKER_AGENT_NAME,id as WORKFLOW_GENERATION_SYSTEM_PROMPT,pr as _resetRuntimeForTesting,De as acquireKodaXInlineOwner,gr as activate,Ln as actorQueueId,To as analyzeChangedScope,ir as appendAuditEntry,Fi as appendSessionLineageLabel,Cs as applyAccountingDelta,Rd as applyFindingVerification,Ui as applySessionCompaction,wo as applyToolResultGuardrail,Bi as archiveOldIslands,Mc as authorWorkflowViaWorker,oc as autoModeDenialShouldFallback,mc as bashSignalCollector,_c as bootstrapTracing,nl as boundedRevise,lc as breakerShouldFallback,il as budgetCeiling,jd as buildApprovalSummary,Os as buildBlockedGoal,ha as buildCapabilityContextSections,$l as buildClassifierPrompt,Ts as buildCompleteGoal,ks as buildCreatedGoal,za as buildFallbackRoutingDecision,Rl as buildGoalRuntimeBinding,Ei as buildInitializeCapabilities,er as buildLlmReviewPrompt,fo as buildManualToolDescription,x as buildMcpReverseCapabilities,bs as buildPausedGoal,Pa as buildPromptMessageContent,ca as buildPromptSnapshot,Da as buildProviderCapabilitySnapshot,Va as buildProviderPolicyHintsForDecision,Fa as buildProviderPolicyPromptNotes,Oo as buildRepoIntelligenceContext,Vo as buildRepoIntelligenceIndex,Co as buildRepoOverview,Ms as buildResumedGoal,Sd as buildScopedReviewFinalPrompt,yd as buildScopedReviewPrimaryPrompt,Pd as buildScopedReviewVerificationPrompt,bc as buildScoutThenAuthorPrompt,fa as buildSelfKnowledgeRoutingRule,zi as buildSessionTree,Ra as buildSystemPrompt,va as buildSystemPromptSnapshot,na as buildToolResultBudget,ia as buildToolResultBudgetFromUsage,Xs as buildToolSearchIndex,qd as buildWorkflowCostReport,dd as buildWorkflowGenerationSkillContext,ad as buildWorkflowGenerationUserPrompt,pc as checkAbsoluteDeny,ya as checkIncompleteToolCalls,Ga as checkPromiseSignal,oa as clampToolResultPolicyToBudget,Wd as clampWorkflowLimits,Gl as classify,Ml as classifyBashCommand,qn as classifyError,ko as classifyFileCategory,Ta as classifyResilienceError,Yr as cleanupExpiredToolOutputs,ri as cleanupIncompleteToolCalls,Zr as cleanupUnreferencedToolOutputs,tn as clearRuntimeModelProviders,gc as collectAllSignals,j as combineExtensionRuntimes,Tl as computeInputSignature,Hl as computeRulesFingerprint,ur as configureRuntime,$e as connectKodaXRuntime,Ca as consumeCompactionCooldown,rs as convertCapabilityReadResult,ss as convertProviderSearchResults,Vi as countActiveLineageMessages,Hn as countTokens,Nn as createAgent,tc as createAutoModeDenialTracker,yc as createAutoModeToolGuardrail,bl as createBashClassifierConfig,z as createBashPrefixExtractor,Wr as createBuiltinToolDefinition,ac as createCircuitBreaker,pd as createCodingWorkflowBackend,xa as createCompactionAntiThrashState,Js as createCtxProxy,jt as createCustomProvider,Yd as createDefaultCodingAgent,Ol as createDenialTracker,I as createExtensionRuntime,td as createExternalActorTurnExecutor,Rn as createFileArtifactFromPath,Jn as createHandoff,vn as createImageArtifactFromPath,Qn as createInMemorySession,be as createInteractiveContext,M as createKodaXRuntime,El as createKodaXTaskRunner,ed as createLocalCodingActorControl,di as createMcpCapabilityId,ki as createMcpManager,gi as createMcpTransport,aa as createPromptSection,Ba as createReasoningPlan,Fd as createRunGraphWriter,Ea as createRuntimeContextBudgetSnapshot,el as createSessionControl,Li as createSessionLineage,Wl as createToolResultTruncationGuardrail,yn as createVideoArtifactFromPath,Ic as createWorkflowLifecycleController,kc as createWorkflowPatternTemplateModule,Bd as createWorkflowRunManager,cl as decideWorkflowInvocation,E as dedupeExtensionPathsByEntrypoint,ai as defaultMcpCacheDir,Gs as defaultPolicy,Od as deleteSavedWorkflow,cr as disableSelfModify,yi as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,Vs as discoverExtensionsInDirectory,zs as discoverExtensionsInDirectoryDetailed,Ir as discoverMarkdownAgents,Pi as discoverOAuthEndpoints,Ri as discoverProtectedResourceMetadata,Ad as discoverSavedWorkflows,Ss as drainPendingSwaps,Et as effortToLegacyReasoningMode,Dl as emitVerdict,zd as emitWorkflowAgentDigest,je as enableKodaXDaemonOwner,Kn as enqueueWithArtifacts,kr as ensureBuiltinRepoExplorerAgent,Gn as estimateTokens,_a as estimateToolSchemaTokens,Ua as evaluateProviderPolicy,F as excludeExtensionPathsByEntrypoint,Fs as exec,Ce as executeCommand,Qr as executeTool,Gi as extractArtifactLedger,Sc as extractCommandPrefix,wa as extractComparableUserMessageText,os as extractHtmlTitle,vi as extractInsufficientScope,Sa as extractPromptComparableText,hi as extractResourceMetadataUrl,Ti as extractTitleFromMessages,fc as fileSignalCollector,ds as finalizeRetrievalResult,Sr as findByVersion,ji as findPreviousUserEntryId,$i as forkSessionLineage,ma as formatAgentsForPrompt,Al as formatParallelDispatchResult,no as formatSize,Oi as generateSessionId,cd as generateWorkflow,ud as generateWorkflowFromOptions,Tr as getActiveExtensionRuntime,ni as getAgentConfigHome,ii as getAgentConfigPath,zr as getAllRegisteredTools,oi as getAppDataDir,on as getAvailableProviderNames,jr as getBuiltinRegisteredToolDefinition,Ur as getBuiltinToolDefinition,Ed as getBuiltinWorkflow,Nt as getCustomModelCapabilities,$t as getCustomProvider,Bt as getCustomProviderList,Ht as getCustomProviderModelDescriptors,Gt as getCustomProviderModels,Vt as getCustomProviderNames,Ws as getDefaultExtensionDirectory,Ya as getDefaultLspService,Gd as getDefaultWorkflowRunManager,Xl as getDenialContext,_e as getGitRoot,Jo as getImpactEstimate,Fe as getKodaXRuntimeOwnerPolicy,Ue as getKodaXRuntimeOwnerState,ua as getKodaxGlobalDir,pi as getMcpCachePaths,Dt as getModelCapabilities,On as getModelInputCapabilities,Go as getModuleContext,No as getProcessContext,Ot as getProvider,Lt as getProviderConfiguredCapabilityProfile,Tt as getProviderConfiguredReasoningCapability,ye as getProviderList,Re as getProviderModel,qt as getProviderModelDescriptors,Kt as getProviderModels,Dr as getRegisteredToolDefinition,Bo as getRepoIntelligenceIndex,bo as getRepoOverview,Qo as getRepoRoutingSignals,Hr as getRequiredToolParams,Yt as getRuntimeModelProvider,en as getRuntimeModelProviderNames,Ki as getSessionLineagePath,Xi as getSessionMessagesFromLineage,Ho as getSymbolContext,Xr as getTool,qr as getToolDefinition,Fr as getToolRegistrations,So as getToolResultPolicy,he as getVersion,xc as getWorkflowPatternTemplate,Is as goalTokenDelta,ll as hasExplicitNaturalLanguageWorkflowIntent,Ps as hasPendingSwap,fe as hydrateProcessEnvFromShell,gn as inferImageMediaType,$a as inferTaskType,hn as inferVideoMediaType,yo as inspectEditFailure,zo as inspectRepoIntelligenceRuntime,zt as isCustomProviderName,Kl as isDeniedRecently,nn as isKnownProvider,Il as isParallelDispatchDirective,Pe as isProviderConfigured,Xt as isProviderName,Zt as isRuntimeModelProviderName,La as isSessionRecoveryCandidateError,js as isSupportedExtensionModulePath,W as isToolFileMutation,Gr as isToolMutation,Br as isToolNetworkRead,Vr as isToolPlanModeAllowed,Ls as isValidTokenBudget,Ha as languageIdForPath,wr as listAll,an as listAllModelCapabilities,Rr as listArtifacts,Ft as listBuiltinModelCapabilities,$r as listBuiltinToolDefinitions,Id as listBuiltinWorkflows,ws as listCodingDispatchableAgents,Pr as listConstructed,Jt as listCustomProviderModelCapabilities,Jr as listToolDefinitions,Nr as listTools,Ac as listWorkflowPatternTemplates,pa as loadAgentsFiles,_r as loadAgentsFromMarkdown,Ie as loadAutoModeSettings,Yl as loadAutoRules,Se as loadConfig,Ld as loadGeneratedWorkflowFromRun,Qs as loadHandler,Er as loadMarkdownAgentScope,Cd as loadSavedWorkflow,kd as loadSavedWorkflowCapsule,_i as loadValidToken,Es as makeDisabledGoalToolsContext,_t as mapLegacyReasoningModeToEffortIntent,ta as maybeRunReferenceAwareToolOutputGc,ea as maybeRunToolOutputGc,Sl as mcpRootsFromWorkspace,Hi as mergeArtifactLedger,vd as mergeScopedReviewResults,ln as normalizeKodaXAgentMode,li as normalizeMcpCapabilityId,wn as normalizePastedImage,K as normalizeReasoningEffortValue,hd as normalizeScopedReviewResult,xd as normalizeWorkflowModule,da as orderPromptSections,md as parallelInvestigation,Ql as parseAutoRules,zl as parseClassifierOutput,ke as parseCommand,Ro as parseEditToolError,tr as parseLlmReviewVerdict,ci as parseMcpCapabilityId,cc as parseModelSpec,X as parseReasoningEffortEnv,Ke as parseRuntimeEvent,Pt as parseTimeoutSecEnvMs,Ds as parseToolSearchQuery,ld as parseWorkflowGeneration,wi as performOAuthLogin,xn as persistImageAsBlock,ao as persistToolOutput,Aa as planToolExposure,Xd as preflightWorkflowCapsule,C as prepareRuntimeConfig,Yo as prewarmRepoIntelligenceCaches,Le as processSpecialSyntax,nd as providerResilienceConfigFromTimeouts,kn as prunePasteTmpDir,Ee as rateLimitedCall,En as readAndNormalizeClipboardImage,yr as readArtifact,or as readAuditEntries,rr as readBudget,_n as readClipboardImage,lr as readDisableState,vc as readSpeculativeWindowFromEnv,Nl as readTrustState,Wa as reasoningModeToDepth,Xa as reconstructMessagesWithToolGuard,ic as recordAutoModeAllow,nc as recordAutoModeBlock,pl as recordBlockerAttempt,dc as recordBreakerError,ba as recordCompactionSavings,Ll as recordDenial,al as registerCodingInvariants,ge as registerConfiguredCustomProviders,A as registerConfiguredMcpCapabilityProvider,Wt as registerCustomProviders,Qt as registerModelProvider,Si as registerOAuthClient,wl as registerOfficialSandboxExtension,Zn as registerPresetDispatcher,Kr as registerTool,hr as rehydrateActiveArtifacts,ar as remainingSelfModifyBudget,Md as renameSavedWorkflow,Lo as renderChangedScope,jo as renderImpactEstimate,Do as renderModuleContext,Uo as renderProcessContext,la as renderPromptSections,Mo as renderRepoOverview,as as renderRetrievalResult,Fo as renderSymbolContext,Pl as replaceConfiguredMcpCapabilityProvider,Td as replaceSavedWorkflow,Na as reportLspDiagnostics,ml as resetBlockerCounter,dr as resetBudget,O as resolveAcpLogLevel,Ae as resolveAutoModeSettings,uc as resolveClassifierModel,_s as resolveCodingDispatchableAgent,ys as resolveConstructedAgent,$s as resolveExtensionEntrypoint,mo as resolveKodaXManual,rn as resolveModelCapabilities,D as resolveProvider,sn as resolveProviderModelDescriptors,It as resolveReasoningEffort,At as resolveReasoningEffortForModelSwitch,ja as resolveReasoningMode,$o as resolveRepoIntelligenceMode,Wo as resolveRepoIntelligenceRuntimeConfig,Oa as resolveResilienceConfig,qi as resolveSessionLineageTarget,Ks as resolveToolBridgeTarget,ol as resolveToolCapability,ro as resolveToolOutputDir,dn as resolveWireEffort,sd as resolveWorkflowGenerationTimeoutMs,Ec as resolveWorkflowIdentity,vr as revoke,Wi as rewindSessionLineage,Cr as rollbackSelfModify,gt as runAcpServer,Ys as runAstRules,Oe as runInkInteractiveMode,Te as runInteractiveMode,Zd as runKodaX,nr as runLlmReview,yl as runManagedTask,_l as runOrchestration,Vd as runWorkflowFromOptions,$d as runWorkflowModule,Dd as safeWorkflowArtifactName,we as saveConfig,bd as saveGeneratedWorkflow,Kd as saveGeneratedWorkflowFromRun,wd as scopedReview,ui as searchMcpCatalog,qs as searchToolIndex,Or as setActiveExtensionRuntime,ti as setAgentConfigHome,We as setKodaXRuntimeOwnerMode,Di as setSessionLineageActiveEntry,xs as shouldFlipBudgetLimited,ka as shouldSkipLlmCompaction,$ as shutdownDefaultLspService,Rc as speculativeRace,mr as stage,tl as startKodaX,Hd as startManagedWorkflow,Vl as stripAssistantText,is as stripHtmlToText,fr as testArtifact,yt as timeoutSecToMs,xo as toolAskUserQuestion,_o as toolBash,qo as toolChangedDiff,Xo as toolChangedScope,us as toolCodeSearch,vo as toolEdit,Eo as toolGlob,Io as toolGrep,ns as toolImpactEstimate,Po as toolInsertAfterAnchor,Zo as toolModuleContext,sl as toolPermission,ts as toolProcessContext,lo as toolRead,Ko as toolRepoOverview,ps as toolSemanticLookup,es as toolSymbolContext,Ao as toolUndo,cs as toolWebFetch,ls as toolWebSearch,ho as toolWrite,Me as touchContext,io as truncateHead,so as truncateLine,oo as truncateTail,Jl as trustProjectRules,As as turnWallTimeDelta,si as validateAndFixToolHistory,Ut as validateCustomProviderConfig,rd as validateGeneratedWorkflowSource,Tn as validateInputArtifactsForModel,xl as validateSubtaskIndependence,Zs as validateToolSchemaForProvider,vl as verifyGoalCompletion,Us as webhook,gl as withGoalBeforeNextTurn,hl as withGoalStopHook,go as withManualToolBranding,vs as workerAgent,ul as workflowStartOutcomeConsumesTurn,Oc as writeReviewPackets};
|
|
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,Ea as ALWAYS_RESIDENT_TOOL_NAMES,Zl as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,ec as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,S as AcpEventEmitter,y as AcpLogger,Sc as BASH_POLICY_SPEC,fl as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,sc as BREAKER_ERROR_THRESHOLD,rc as BREAKER_WINDOW_MS,xe as BUILTIN_COMMANDS,_d as BUILTIN_WORKFLOWS,Ji as CANCELLED_TOOL_RESULT_MESSAGE,Ni as CANCELLED_TOOL_RESULT_PREFIX,Ul as CODING_AGENT_MARKER,rl as CODING_INVARIANTS,Nd as CODING_SUMMARY_PROMPT,Jd as CODING_UPDATE_SUMMARY_PROMPT,Hs as CapabilityDeniedError,dl as Client,Za as CodingActorSession,Mr as CombinedExtensionRuntime,Ns as ConstructionManifestError,Bl as DEFAULT_CLASSIFIER_TIMEOUT_MS,Qd as DEFAULT_CODING_AGENT_NAME,bl as DEFAULT_DANGEROUS_PATTERNS,Bs as DEFAULT_HANDLER_TIMEOUT_MS,Ma as DEFAULT_RESILIENCE_CONFIG,kl as DEFAULT_SAFE_PATTERNS,sr as DEFAULT_SELF_MODIFY_BUDGET,hc as DEFAULT_SPECULATIVE_WINDOW_MS,Yi as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Qi as DEFAULT_TOOL_OUTPUT_MAX_LINES,od as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Yn as DefaultSummaryCompaction,ql as EMIT_VERDICT_TOOL_NAME,Xn as ErrorCategory,gd as FINDING_VERIFICATION_OUTPUT_SCHEMA,C as FileSessionStorage,gs as GENERATOR_AGENT_NAME,fn as ImageResizeError,Vn as KODAX_API_MIN_INTERVAL,k as KODAX_CONFIG_FILE,q as KODAX_DEFAULT_PROVIDER,Fn as KODAX_DEFAULT_TIMEOUT,pe as KODAX_DIR,Mn as KODAX_FILE_MEDIA_TYPES,Un as KODAX_HARD_TIMEOUT,bn as KODAX_IMAGE_MEDIA_TYPES,$n as KODAX_MAX_INCOMPLETE_RETRIES,jn as KODAX_MAX_RETRIES,Dn as KODAX_MAX_TOKENS,Mt as KODAX_PROVIDERS,Ct as KODAX_PROVIDER_SNAPSHOTS,Pt as KODAX_REASONING_MODE_SEQUENCE,Wn as KODAX_RETRY_BASE_DELAY,me as KODAX_SESSIONS_DIR,wt as KODAX_STABLE_EFFORT_INTENTS,zn as KODAX_STAGGER_DELAY,Lr as KODAX_TOOLS,uo as KODAX_UNDERLYING_CAPABILITY_TOPICS,ve as KODAX_VERSION,Cn as KODAX_VIDEO_MEDIA_TYPES,_ as KodaXAcpServer,kt as KodaXAnthropicCompatProvider,xt as KodaXBaseProvider,dl as KodaXClient,ht as KodaXError,Cr as KodaXExtensionRuntime,mn as KodaXMediaError,bt as KodaXOpenAICompatProvider,vt as KodaXProviderError,Rt as KodaXRateLimitError,un as KodaXSessionError,pn as KodaXTerminalError,cn as KodaXToolError,bi as LINEAGE_ENTRY_TYPES,Ja as LSP_SERVERS,Mi as LineageCompaction,Ci as LineageExtension,Qa as LspService,po as MANUAL_REGISTRY,co as MANUAL_TOPIC_IDS,Sn as MAX_DIMENSION,fi as McpAuthRequiredError,Ai as McpCapabilityProvider,mi as McpExpiredSessionError,xi as McpManager,Ei as McpServerRuntime,En as PASTE_TMP_DIR_ENV,An as PASTE_TMP_TTL_MS,fs as PLANNER_AGENT_NAME,Bn as PROMISE_PATTERN,ra as PROMPT_SECTION_REGISTRY,Fl as PROTOCOL_EMITTER_TOOLS,qa as ProviderRecoveryCoordinator,Zi as READ_DEFAULT_LIMIT,to as READ_MAX_LINE_CHARS,eo as READ_PREFLIGHT_SIZE_BYTES,Ar as REPO_EXPLORER_AGENT_NAME,xr as REPO_EXPLORER_TOOL_NAMES,ei as Runner,qe as RuntimePermissionScopeUpgradeRequiredError,Xe as RuntimeTransportBoundaryError,fd as SCOPED_REVIEW_OUTPUT_SCHEMA,ms as SCOUT_AGENT_NAME,bc as SCOUT_THEN_AUTHOR_PROMPT_LINES,ga as SELF_KNOWLEDGE_ROUTING_RULE,sa as SYSTEM_PROMPT,Ud as SYSTEM_WORKFLOW_LIMITS,Ka as StableBoundaryTracker,Pn as TARGET_RAW_SIZE_BYTES,Rs as TASK_ENGINE_ROLE_AGENTS,jl as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,wc as TRACING_ENV,hs as WORKER_AGENT_NAME,id as WORKFLOW_GENERATION_SYSTEM_PROMPT,pr as _resetRuntimeForTesting,De as acquireKodaXInlineOwner,gr as activate,Ln as actorQueueId,To as analyzeChangedScope,ir as appendAuditEntry,ji as appendSessionLineageLabel,bs as applyAccountingDelta,Rd as applyFindingVerification,Wi as applySessionCompaction,wo as applyToolResultGuardrail,Hi as archiveOldIslands,Mc as authorWorkflowViaWorker,oc as autoModeDenialShouldFallback,mc as bashSignalCollector,_c as bootstrapTracing,nl as boundedRevise,lc as breakerShouldFallback,il as budgetCeiling,jd as buildApprovalSummary,Os as buildBlockedGoal,ha as buildCapabilityContextSections,$l as buildClassifierPrompt,Ts as buildCompleteGoal,ks as buildCreatedGoal,za as buildFallbackRoutingDecision,Rl as buildGoalRuntimeBinding,Ii as buildInitializeCapabilities,er as buildLlmReviewPrompt,fo as buildManualToolDescription,x as buildMcpReverseCapabilities,Cs as buildPausedGoal,Sa as buildPromptMessageContent,ca as buildPromptSnapshot,Da as buildProviderCapabilitySnapshot,Va as buildProviderPolicyHintsForDecision,Fa as buildProviderPolicyPromptNotes,Oo as buildRepoIntelligenceContext,Vo as buildRepoIntelligenceIndex,bo as buildRepoOverview,Ms as buildResumedGoal,Pd as buildScopedReviewFinalPrompt,yd as buildScopedReviewPrimaryPrompt,Sd as buildScopedReviewVerificationPrompt,Cc as buildScoutThenAuthorPrompt,fa as buildSelfKnowledgeRoutingRule,Bi as buildSessionTree,Ra as buildSystemPrompt,va as buildSystemPromptSnapshot,na as buildToolResultBudget,ia as buildToolResultBudgetFromUsage,Xs as buildToolSearchIndex,qd as buildWorkflowCostReport,dd as buildWorkflowGenerationSkillContext,ad as buildWorkflowGenerationUserPrompt,pc as checkAbsoluteDeny,ya as checkIncompleteToolCalls,Ga as checkPromiseSignal,oa as clampToolResultPolicyToBudget,Wd as clampWorkflowLimits,Gl as classify,Ml as classifyBashCommand,qn as classifyError,ko as classifyFileCategory,Ta as classifyResilienceError,Yr as cleanupExpiredToolOutputs,ri as cleanupIncompleteToolCalls,Zr as cleanupUnreferencedToolOutputs,tn as clearRuntimeModelProviders,gc as collectAllSignals,j as combineExtensionRuntimes,Tl as computeInputSignature,Hl as computeRulesFingerprint,ur as configureRuntime,$e as connectKodaXRuntime,ba as consumeCompactionCooldown,rs as convertCapabilityReadResult,ss as convertProviderSearchResults,Gi as countActiveLineageMessages,Hn as countTokens,Nn as createAgent,tc as createAutoModeDenialTracker,yc as createAutoModeToolGuardrail,Cl as createBashClassifierConfig,z as createBashPrefixExtractor,Wr as createBuiltinToolDefinition,ac as createCircuitBreaker,pd as createCodingWorkflowBackend,xa as createCompactionAntiThrashState,Js as createCtxProxy,jt as createCustomProvider,Yd as createDefaultCodingAgent,Ol as createDenialTracker,E as createExtensionRuntime,td as createExternalActorTurnExecutor,Rn as createFileArtifactFromPath,Jn as createHandoff,vn as createImageArtifactFromPath,Qn as createInMemorySession,Ce as createInteractiveContext,M as createKodaXRuntime,Il as createKodaXTaskRunner,ed as createLocalCodingActorControl,di as createMcpCapabilityId,ki as createMcpManager,gi as createMcpTransport,aa as createPromptSection,Ba as createReasoningPlan,Fd as createRunGraphWriter,Ia as createRuntimeContextBudgetSnapshot,el as createSessionControl,Xi as createSessionLineage,Wl as createToolResultTruncationGuardrail,yn as createVideoArtifactFromPath,Ec as createWorkflowLifecycleController,kc as createWorkflowPatternTemplateModule,Bd as createWorkflowRunManager,cl as decideWorkflowInvocation,I as dedupeExtensionPathsByEntrypoint,ai as defaultMcpCacheDir,Gs as defaultPolicy,Od as deleteSavedWorkflow,cr as disableSelfModify,yi as discoverAuthorizationServerMetadata,U as discoverDefaultExtensions,Vs as discoverExtensionsInDirectory,zs as discoverExtensionsInDirectoryDetailed,Er as discoverMarkdownAgents,Si as discoverOAuthEndpoints,Ri as discoverProtectedResourceMetadata,Ad as discoverSavedWorkflows,Ps as drainPendingSwaps,It as effortToLegacyReasoningMode,Dl as emitVerdict,zd as emitWorkflowAgentDigest,je as enableKodaXDaemonOwner,Kn as enqueueWithArtifacts,kr as ensureBuiltinRepoExplorerAgent,Gn as estimateTokens,_a as estimateToolSchemaTokens,Ua as evaluateProviderPolicy,F as excludeExtensionPathsByEntrypoint,Fs as exec,be as executeCommand,Qr as executeTool,Li as extractArtifactLedger,Pc as extractCommandPrefix,wa as extractComparableUserMessageText,os as extractHtmlTitle,vi as extractInsufficientScope,Pa as extractPromptComparableText,hi as extractResourceMetadataUrl,Ti as extractTitleFromMessages,fc as fileSignalCollector,ds as finalizeRetrievalResult,Pr as findByVersion,$i as findPreviousUserEntryId,Vi as forkSessionLineage,ma as formatAgentsForPrompt,Al as formatParallelDispatchResult,no as formatSize,Oi as generateSessionId,cd as generateWorkflow,ud as generateWorkflowFromOptions,Tr as getActiveExtensionRuntime,ni as getAgentConfigHome,ii as getAgentConfigPath,zr as getAllRegisteredTools,oi as getAppDataDir,on as getAvailableProviderNames,jr as getBuiltinRegisteredToolDefinition,Ur as getBuiltinToolDefinition,Id as getBuiltinWorkflow,Nt as getCustomModelCapabilities,$t as getCustomProvider,Bt as getCustomProviderList,Ht as getCustomProviderModelDescriptors,Gt as getCustomProviderModels,Vt as getCustomProviderNames,Ws as getDefaultExtensionDirectory,Ya as getDefaultLspService,Gd as getDefaultWorkflowRunManager,Xl as getDenialContext,_e as getGitRoot,Jo as getImpactEstimate,Fe as getKodaXRuntimeOwnerPolicy,Ue as getKodaXRuntimeOwnerState,ua as getKodaxGlobalDir,pi as getMcpCachePaths,Dt as getModelCapabilities,On as getModelInputCapabilities,Go as getModuleContext,No as getProcessContext,Ot as getProvider,Lt as getProviderConfiguredCapabilityProfile,Tt as getProviderConfiguredReasoningCapability,ye as getProviderList,Re as getProviderModel,qt as getProviderModelDescriptors,Kt as getProviderModels,Dr as getRegisteredToolDefinition,Bo as getRepoIntelligenceIndex,Co as getRepoOverview,Qo as getRepoRoutingSignals,Hr as getRequiredToolParams,Yt as getRuntimeModelProvider,en as getRuntimeModelProviderNames,qi as getSessionLineagePath,Di as getSessionMessagesFromLineage,Ho as getSymbolContext,Xr as getTool,qr as getToolDefinition,Fr as getToolRegistrations,Po as getToolResultPolicy,he as getVersion,xc as getWorkflowPatternTemplate,Es as goalTokenDelta,ll as hasExplicitNaturalLanguageWorkflowIntent,Ss as hasPendingSwap,fe as hydrateProcessEnvFromShell,gn as inferImageMediaType,$a as inferTaskType,hn as inferVideoMediaType,yo as inspectEditFailure,zo as inspectRepoIntelligenceRuntime,zt as isCustomProviderName,Kl as isDeniedRecently,nn as isKnownProvider,El as isParallelDispatchDirective,Se as isProviderConfigured,Xt as isProviderName,Zt as isRuntimeModelProviderName,La as isSessionRecoveryCandidateError,js as isSupportedExtensionModulePath,W as isToolFileMutation,Gr as isToolMutation,Br as isToolNetworkRead,Vr as isToolPlanModeAllowed,Ls as isValidTokenBudget,Ha as languageIdForPath,wr as listAll,an as listAllModelCapabilities,Rr as listArtifacts,Ft as listBuiltinModelCapabilities,$r as listBuiltinToolDefinitions,Ed as listBuiltinWorkflows,ws as listCodingDispatchableAgents,Sr as listConstructed,Jt as listCustomProviderModelCapabilities,Jr as listToolDefinitions,Nr as listTools,Ac as listWorkflowPatternTemplates,pa as loadAgentsFiles,_r as loadAgentsFromMarkdown,Ee as loadAutoModeSettings,Yl as loadAutoRules,Pe as loadConfig,Ld as loadGeneratedWorkflowFromRun,Qs as loadHandler,Ir as loadMarkdownAgentScope,bd as loadSavedWorkflow,kd as loadSavedWorkflowCapsule,_i as loadValidToken,Is as makeDisabledGoalToolsContext,_t as mapLegacyReasoningModeToEffortIntent,ta as maybeRunReferenceAwareToolOutputGc,ea as maybeRunToolOutputGc,Pl as mcpRootsFromWorkspace,Ki as mergeArtifactLedger,vd as mergeScopedReviewResults,ln as normalizeKodaXAgentMode,li as normalizeMcpCapabilityId,wn as normalizePastedImage,K as normalizeReasoningEffortValue,hd as normalizeScopedReviewResult,xd as normalizeWorkflowModule,da as orderPromptSections,md as parallelInvestigation,Ql as parseAutoRules,zl as parseClassifierOutput,ke as parseCommand,Ro as parseEditToolError,tr as parseLlmReviewVerdict,ci as parseMcpCapabilityId,cc as parseModelSpec,X as parseReasoningEffortEnv,Ke as parseRuntimeEvent,St as parseTimeoutSecEnvMs,Ds as parseToolSearchQuery,ld as parseWorkflowGeneration,wi as performOAuthLogin,xn as persistImageAsBlock,ao as persistToolOutput,Aa as planToolExposure,Xd as preflightWorkflowCapsule,b as prepareRuntimeConfig,Yo as prewarmRepoIntelligenceCaches,Le as processSpecialSyntax,nd as providerResilienceConfigFromTimeouts,kn as prunePasteTmpDir,Ie as rateLimitedCall,In as readAndNormalizeClipboardImage,yr as readArtifact,or as readAuditEntries,rr as readBudget,_n as readClipboardImage,lr as readDisableState,vc as readSpeculativeWindowFromEnv,Nl as readTrustState,Wa as reasoningModeToDepth,Xa as reconstructMessagesWithToolGuard,ic as recordAutoModeAllow,nc as recordAutoModeBlock,pl as recordBlockerAttempt,dc as recordBreakerError,Ca as recordCompactionSavings,Ll as recordDenial,al as registerCodingInvariants,ge as registerConfiguredCustomProviders,A as registerConfiguredMcpCapabilityProvider,Wt as registerCustomProviders,Qt as registerModelProvider,Pi as registerOAuthClient,wl as registerOfficialSandboxExtension,Zn as registerPresetDispatcher,Kr as registerTool,hr as rehydrateActiveArtifacts,ar as remainingSelfModifyBudget,Md as renameSavedWorkflow,Lo as renderChangedScope,jo as renderImpactEstimate,Do as renderModuleContext,Uo as renderProcessContext,la as renderPromptSections,Mo as renderRepoOverview,as as renderRetrievalResult,Fo as renderSymbolContext,Sl as replaceConfiguredMcpCapabilityProvider,Td as replaceSavedWorkflow,Na as reportLspDiagnostics,ml as resetBlockerCounter,dr as resetBudget,O as resolveAcpLogLevel,Ae as resolveAutoModeSettings,uc as resolveClassifierModel,_s as resolveCodingDispatchableAgent,ys as resolveConstructedAgent,$s as resolveExtensionEntrypoint,mo as resolveKodaXManual,rn as resolveModelCapabilities,D as resolveProvider,sn as resolveProviderModelDescriptors,Et as resolveReasoningEffort,At as resolveReasoningEffortForModelSwitch,ja as resolveReasoningMode,$o as resolveRepoIntelligenceMode,Wo as resolveRepoIntelligenceRuntimeConfig,Oa as resolveResilienceConfig,Fi as resolveSessionLineageTarget,Ks as resolveToolBridgeTarget,ol as resolveToolCapability,ro as resolveToolOutputDir,dn as resolveWireEffort,sd as resolveWorkflowGenerationTimeoutMs,Ic as resolveWorkflowIdentity,vr as revoke,zi as rewindSessionLineage,br as rollbackSelfModify,gt as runAcpServer,Ys as runAstRules,Oe as runInkInteractiveMode,Te as runInteractiveMode,Zd as runKodaX,nr as runLlmReview,yl as runManagedTask,_l as runOrchestration,Vd as runWorkflowFromOptions,$d as runWorkflowModule,Dd as safeWorkflowArtifactName,we as saveConfig,Cd as saveGeneratedWorkflow,Kd as saveGeneratedWorkflowFromRun,wd as scopedReview,ui as searchMcpCatalog,qs as searchToolIndex,Or as setActiveExtensionRuntime,ti as setAgentConfigHome,We as setKodaXRuntimeOwnerMode,Ui as setSessionLineageActiveEntry,xs as shouldFlipBudgetLimited,ka as shouldSkipLlmCompaction,$ as shutdownDefaultLspService,Rc as speculativeRace,mr as stage,tl as startKodaX,Hd as startManagedWorkflow,Vl as stripAssistantText,is as stripHtmlToText,fr as testArtifact,yt as timeoutSecToMs,xo as toolAskUserQuestion,_o as toolBash,qo as toolChangedDiff,Xo as toolChangedScope,us as toolCodeSearch,vo as toolEdit,Io as toolGlob,Eo as toolGrep,ns as toolImpactEstimate,So as toolInsertAfterAnchor,Zo as toolModuleContext,sl as toolPermission,ts as toolProcessContext,lo as toolRead,Ko as toolRepoOverview,ps as toolSemanticLookup,es as toolSymbolContext,Ao as toolUndo,cs as toolWebFetch,ls as toolWebSearch,ho as toolWrite,Me as touchContext,io as truncateHead,so as truncateLine,oo as truncateTail,Jl as trustProjectRules,As as turnWallTimeDelta,si as validateAndFixToolHistory,Ut as validateCustomProviderConfig,rd as validateGeneratedWorkflowSource,Tn as validateInputArtifactsForModel,xl as validateSubtaskIndependence,Zs as validateToolSchemaForProvider,vl as verifyGoalCompletion,Us as webhook,gl as withGoalBeforeNextTurn,hl as withGoalStopHook,go as withManualToolBranding,vs as workerAgent,ul as workflowStartOutcomeConsumesTurn,Oc as writeReviewPackets};
|