@kodax-ai/kodax 0.7.85 → 0.7.86
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 +93 -1
- package/README.md +1867 -1841
- package/README_CN.md +1136 -1130
- package/dist/chunks/{agent-OQ37XUWF.js → agent-IO6TXNCV.js} +1 -1
- package/dist/chunks/argument-completer-JMICSGL6.js +2 -0
- package/dist/chunks/chunk-2RAXDUC7.js +379 -0
- package/dist/chunks/{chunk-MJ4G5ZCW.js → chunk-A5VQGXH2.js} +1 -1
- package/dist/chunks/{chunk-TBBY2DKE.js → chunk-AAFFS6RU.js} +2 -2
- package/dist/chunks/{chunk-IA246OAN.js → chunk-B36G256E.js} +2 -2
- package/dist/chunks/{chunk-3E4OSFP2.js → chunk-G5FGIRDJ.js} +136 -137
- package/dist/chunks/{chunk-RSOAHVUR.js → chunk-GVGLYVG4.js} +1 -1
- package/dist/chunks/chunk-MFCPQZ7E.js +519 -0
- package/dist/chunks/chunk-Q6UAGROD.js +415 -0
- package/dist/chunks/{chunk-IWRNGH4M.js → chunk-R4EHASEN.js} +5 -5
- package/dist/chunks/{chunk-ZVOXWLT6.js → chunk-U6HNMLNN.js} +226 -214
- package/dist/chunks/{chunk-ODRLFQQH.js → chunk-UKCDCVMD.js} +1 -1
- package/dist/chunks/{chunk-CZCEFGQG.js → chunk-XA4ENCAH.js} +1 -1
- package/dist/chunks/{chunk-SR4E5FQK.js → chunk-XUKLF26Q.js} +2 -2
- package/dist/chunks/{compaction-config-3WLLNN57.js → compaction-config-5RMG22CY.js} +1 -1
- package/dist/chunks/{construction-bootstrap-CZ6NWEWQ.js → construction-bootstrap-4DGAYOWH.js} +1 -1
- package/dist/chunks/{dist-NFLLOZWF.js → dist-DFW7MXT7.js} +1 -1
- package/dist/chunks/host-6MMHYTI5.js +2 -0
- package/dist/chunks/run-manager-ISQSWCAM.js +2 -0
- package/dist/chunks/{utils-KFLK3EHJ.js → utils-LV7FHKYN.js} +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +1 -1
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1459 -1411
- package/dist/kodax_resume.js +78 -76
- package/dist/runtime-worker.js +1467 -1419
- package/dist/sandbox-workspace-session.js +346 -302
- package/dist/sdk-a2a.d.ts +5 -5
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +8 -8
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-repl.d.ts +9 -11
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-runtime.d.ts +14 -6
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.d.ts +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +3 -3
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +63 -64
- package/dist/types-chunks/{bash-prefix-extractor.d-BnZQDirs.d.ts → bash-prefix-extractor.d-QqKtuLZm.d.ts} +9 -3
- package/dist/types-chunks/{guardrail.d-BCkgaWT1.d.ts → guardrail.d-Y_AIh8-I.d.ts} +1 -7
- package/dist/types-chunks/{public-api.d-N6G6Jw8X.d.ts → public-api.d-Cg-4GTbK.d.ts} +1 -1
- package/dist/types-chunks/{repl.d-BkTIOkJD.d.ts → repl.d-Bhrbueab.d.ts} +4 -4
- package/dist/types-chunks/{sdk-session-DLkZTOc-.d.ts → sdk-session-fQ_KENev.d.ts} +1 -1
- package/dist/types-chunks/{shell-command-sets.d-BrLw-WN9.d.ts → shell-command-sets.d-DRGjd_7Q.d.ts} +1 -1
- package/dist/types-chunks/{types.d-Ch3BD97c.d.ts → types.d-BRrJU4pb.d.ts} +1 -1
- package/dist/types-chunks/{utils.d-BI-kjuev.d.ts → utils.d-BIhh_BqE.d.ts} +3 -3
- package/package.json +1 -1
- package/dist/chunks/argument-completer-IMRSIF2N.js +0 -2
- package/dist/chunks/chunk-2XJQNFVR.js +0 -379
- package/dist/chunks/chunk-CDWYKVZC.js +0 -482
- package/dist/chunks/chunk-RTFVMEF6.js +0 -415
- package/dist/chunks/host-LWUSSCWH.js +0 -2
- package/dist/chunks/run-manager-PBMOVP7A.js +0 -2
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{a as We,e as Ve,f as $e,l as ze,o as Be,p as Ge,q as Ne,r as He,s as Je,v as M,w as Qe}from"./chunks/chunk-
|
|
2
|
+
import{a as We,e as Ve,f as $e,l as ze,o as Be,p as Ge,q as Ne,r as He,s as Je,v as M,w as Qe}from"./chunks/chunk-2RAXDUC7.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-MFCPQZ7E.js";import{Ab as Te,Bb as Le,Rb as C,Ua as Ce,Va as Me,hb as Oe}from"./chunks/chunk-R4EHASEN.js";import{A as Ee,B as Ae,Ba as be,Ca as ke,k as Z,za as xe}from"./chunks/chunk-B36G256E.js";import{$ as te,O as ye,P as Se,Q as Pe,X as k,Y as we,_ as ee,aa as ne,ca as Ie,ga as _e,q as pe,r as me,s as b,u as fe,w as ge,x as he,y as ve,z as Re}from"./chunks/chunk-AAFFS6RU.js";import"./chunks/chunk-A5VQGXH2.js";import{$ as qu,A as x,B as pu,C as mu,D as fu,E as gu,F as hu,G as vu,H as Ru,I as yu,J as Su,K as Pu,L as wu,M as Iu,N as _u,O as Eu,P as Au,Q as xu,R as bu,S as ku,T as Cu,U as Mu,V as Ou,W as Tu,X as Lu,Y as Ku,Z as Xu,_ as Du,a as Ii,aa as Y,b as _i,ba as Fu,c as Ei,ca as Uu,d as $c,da as ju,e as zc,ea as Wu,f as Bc,fa as Vu,g as Gc,ga as $u,h as Nc,ha as zu,i as Hc,ia as Bu,j as Jc,ja as Gu,k as Qc,ka as Nu,l as Yc,la as Hu,m as Zc,n as eu,o as tu,p as nu,q as ou,r as iu,s as su,t as ru,u as au,v as du,w as lu,x as A,y as cu,z as uu}from"./chunks/chunk-XA4ENCAH.js";import{$ as md,$b as yc,A as Ha,Ab as Jl,B as Ja,Bb as Ql,C as Qa,Cb as Yl,D as Ya,Db as N,Eb as Zl,Fb as ec,Gb as H,Hb as tc,I as Za,Ib as J,J as ed,Jb as Q,Kb as nc,Lb as oc,Mb as ic,N as td,Nb as sc,O as nd,Ob as rc,P as od,Pb as ac,Q as id,Qb as dc,R as sd,Rb as lc,S as rd,Sb as cc,T as ad,Tb as uc,U as dd,Ua as xl,Ub as pc,Va as bl,Vb as mc,Wb as fc,X as ld,Xb as gc,Y as cd,Yb as hc,Z as ud,Zb as vc,_ as pd,_b as Rc,aa as fd,ac as Sc,b as Yo,ba as gd,bb as kl,bc as Pc,c as Zo,cb as Cl,cc as wc,d as ei,db as Ml,dc as Ic,e as ti,eb as Ol,ec as _c,f as ni,fb as Tl,fc as Ec,g as oi,ga as hd,gb as Ll,gc as Ac,ha as vd,hb as Kl,hc as xc,i as ii,ia as Rd,ib as Xl,ic as bc,j as si,ja as yd,jb as Dl,jc as kc,ka as Sd,kb as ql,kc as Cc,l as ri,lb as Fl,lc as Mc,m as ai,mb as Ul,mc as Oc,n as di,nb as jl,nc as Tc,o as Ri,oa as Pd,ob as Wl,oc as Lc,p as Ai,pa as wd,pb as Vl,pc as Kc,q as xi,qa as Id,qb as $l,qc as Xc,r as Da,ra as _d,rb as zl,rc as Dc,s as qa,sb as $,sc as qc,t as Fa,tb as Bl,tc as Fc,u as Ua,ua as Ed,ub as Gl,uc as Uc,v as ja,vb as Nl,vc as jc,w as Wa,wb as z,wc as Wc,x as Ba,xb as B,y as Ga,yb as G,yc as Vc,z as Na,zb as Hl}from"./chunks/chunk-Q6UAGROD.js";import{a as Kd,b as Xd,c as Dd,d as qd,e as Fd,f as Ud,g as jd,h as Wd,i as Vd,j as Al}from"./chunks/chunk-UKCDCVMD.js";import{a as Ld}from"./chunks/chunk-HTVLCHWH.js";import{A as hl,B as vl,C as Rl,D as yl,E as Sl,F as Pl,G as wl,H as Il,I as _l,J as El,a as $d,b as zd,c as Bd,d as Gd,e as Nd,f as Hd,g as Jd,h as Qd,i as Yd,j as Zd,k as el,l as tl,m as nl,n as ol,o as il,p as sl,q as rl,r as al,s as dl,t as ll,u as cl,v as ul,w as pl,x as ml,y as fl,z as gl}from"./chunks/chunk-XUKLF26Q.js";import{$ as Vi,$a as Is,$c as da,$d as xd,Aa as es,Ab as Hs,Ac as Kr,Ad as xa,Bb as Js,Bc as Xr,Bd as ba,Ca as ts,Cb as Qs,Cc as Dr,Da as ns,Dc as qr,Dd as ka,E as Ci,Ea as os,Ec as Fr,Ed as Ca,F as Mi,Fa as is,Fc as Ur,Fd as Ma,G as Oi,Ga as ss,Gb as Ys,Gc as jr,Gd as Oa,H as Ti,Hb as Zs,Hc as Wr,Hd as Ta,I as Li,Ia as rs,Ib as er,Ic as Vr,Id as La,J as Ki,Ja as as,Jb as tr,Jc as $r,Jd as Ka,K as Xi,Ka as ds,Kc as zr,Kd as Xa,L as Di,La as ls,Lc as Br,Ld as Va,M as qi,Ma as cs,Mc as Gr,Md as $a,N as Fi,Na as us,Nb as nr,Nc as Nr,Nd as za,O as Ui,Oa as ps,Ob as or,Oc as Hr,P as ji,Pa as ms,Pb as ir,Pc as Jr,Qa as fs,Qb as sr,Qc as Qr,Ra as gs,Rb as rr,Rc as Yr,Sa as hs,Sb as ar,Sc as Zr,Ta as vs,Tb as dr,Tc as ea,Ua as Rs,Ub as lr,Uc as ta,Va as ys,Vb as cr,Vc as na,Wa as Ss,Wb as ur,Wc as oa,Xa as Ps,Xb as pr,Xc as ia,Ya as ws,Yc as sa,Zc as ra,_ as Wi,_b as mr,_c as aa,_d as Ad,aa as $i,ab as _s,ad as la,ae as bd,ba as zi,bb as Es,bd as j,be as kd,c as li,ca as Bi,cb as As,cc as fr,cd as E,ce as Cd,d as ci,da as Gi,db as xs,dc as gr,dd as ca,de as V,e as ui,eb as bs,ec as hr,ed as ua,f as pi,fb as ks,fc as vr,g as mi,gc as Rr,h as fi,hb as Cs,hc as yr,i as gi,ib as Ms,ic as Sr,j as hi,jb as Os,jc as Pr,k as vi,kb as Ts,kc as _,kd as pa,lb as Ls,lc as F,ld as ma,le as Md,m as yi,mb as Ks,mc as wr,md as fa,me as Od,n as Si,nb as Xs,nc as Ir,nd as ga,ne as Td,ob as Ds,oc as U,od as ha,p as Pi,pa as Ni,pb as qs,pc as _r,pd as va,qa as Hi,qb as Fs,qc as Er,qd as Ra,r as wi,ra as Ji,rb as Us,rc as Ar,rd as ya,sa as Qi,sb as js,sc as xr,sd as Sa,ta as Yi,tb as Ws,tc as br,td as Pa,ub as Vs,uc as kr,ud as wa,vb as $s,vc as Cr,vd as Ia,wb as zs,wc as Mr,wd as W,xb as Bs,xc as Or,xd as _a,y as bi,ya as Zi,yb as Gs,yc as Tr,yd as Ea,z as ki,zb as Ns,zc as Lr,zd as Aa}from"./chunks/chunk-U6HNMLNN.js";import"./chunks/chunk-GVGLYVG4.js";import{Aa as Jt,Ba as Qt,C as K,Ca as Yt,D as Mt,Da as Zt,E as Ot,Ea as en,F as X,Fa as tn,G as Tt,Ga as nn,H as Lt,Ha as on,Ia as sn,Ja as rn,Ka as an,La as dn,Ma as ln,Oa as cn,Pa as q,Qa as un,Ra as pn,Ta as mn,Ua as fn,V as Kt,Va as gn,Ya as hn,d as _t,da as Xt,e as Et,ea as Dt,f as At,ka as qt,la as Ft,m as xt,ma as D,n as bt,na as Ut,qa as jt,ra as Wt,ta as Vt,ua as $t,v as kt,va as zt,w as Ct,wa as Bt,xa as Gt,ya as Nt,za as Ht}from"./chunks/chunk-TRNAWSXP.js";import{Aa as Tn,Ae as yo,Af as jo,Be as So,Bf as Wo,Ce as Po,Cf as Vo,De as wo,Ee as Io,Fe as _o,Ff as $o,Ge as Eo,Gf as zo,Ha as Ln,He as Ao,Hf as Bo,Ia as Kn,Ie as xo,If as Go,Ja as Xn,Jb as ao,Je as bo,Jf as No,Kb as lo,Ke as ko,Kf as Ho,Le as Co,Ma as Dn,Me as Mo,Oe as Oo,Pe as To,Qe as Lo,Qf as Jo,Rf as Qo,Te as Ko,Ue as Xo,a as vn,b as Rn,c as yn,d as Sn,e as Pn,f as wn,h as In,i as _n,j as En,k as An,l as xn,qe as co,re as uo,se as po,te as mo,ue as fo,v as bn,ve as go,w as kn,we as ho,wf as Do,x as Cn,xa as On,xe as vo,xf as qo,y as Mn,yf as Fo,ze as Ro,zf as Uo}from"./chunks/chunk-G5FGIRDJ.js";import{A as Hn,B as Jn,C as Qn,D as Yn,E as Zn,F as eo,G as to,H as no,I as oo,J as io,K as so,L as ro,j as qn,q as Fn,r as Un,s as jn,t as Wn,u as Vn,v as $n,w as zn,x as Bn,y as Gn,z as Nn}from"./chunks/chunk-UH5WNJXF.js";import{a as s}from"./chunks/chunk-ONUPGMER.js";import Ye from"node:process";var ie=["off","error","info","debug"],oe={off:0,error:1,info:2,debug:3};function O(n,e="info"){if(!n)return e;let t=n.trim().toLowerCase();return ie.includes(t)?t:e}s(O,"resolveAcpLogLevel");var y=class{static{s(this,"AcpLogger")}level;sink;constructor(e={}){this.level=e.level??"info",this.sink=e.sink??(t=>{Ye.stderr.write(`${t}
|
|
3
3
|
`)})}handleEvent(e){let t=Ze(e);t&&this.log(t.level,t.message,t.fields)}error(e,t){this.log("error",e,t)}info(e,t){this.log("info",e,t)}debug(e,t){this.log("debug",e,t)}log(e,t,o){if(oe[this.level]<oe[e])return;let i=new Date().toISOString(),r=o?tt(o):"",a=r?` ${r}`:"";this.sink(`[ACP][${e.toUpperCase()}][${i}] ${t}${a}`)}};function Ze(n){switch(n.type){case"server_attached":return{level:"info",message:"ACP server attached",fields:u(n)};case"connection_closed":return{level:"info",message:"ACP connection closed",fields:u(n)};case"initialize_completed":return{level:"info",message:"ACP initialize completed",fields:u(n)};case"session_created":return{level:"info",message:"ACP session created",fields:u(n)};case"session_mode_changed":return{level:"info",message:"ACP session mode changed",fields:u(n)};case"prompt_skipped":return{level:"info",message:"ACP prompt skipped because session was already aborted",fields:u(n)};case"prompt_started":return{level:"info",message:"ACP prompt started",fields:u(n)};case"prompt_preview":return{level:"debug",message:"ACP prompt preview",fields:u(n)};case"prompt_finished":return{level:"info",message:"ACP prompt finished",fields:u(n)};case"prompt_cancelled":return{level:"info",message:"ACP prompt cancelled during execution",fields:u(n)};case"prompt_failed":return{level:"error",message:"ACP prompt failed",fields:u(n)};case"cancel_requested":return{level:"info",message:"ACP cancel requested",fields:u(n)};case"tool_permission_evaluated":return{level:"debug",message:"ACP evaluating tool permission",fields:u(n)};case"tool_permission_resolved":return et(n);case"permission_requested":return{level:"info",message:"ACP permission requested",fields:u(n)};case"notification_failed":return{level:"error",message:`Failed to send ${n.label}`,fields:{sessionId:n.sessionId,error:n.error}};case"repo_intelligence_trace":return{level:"debug",message:"ACP repo intelligence trace",fields:u(n)};default:return null}}s(Ze,"mapEventToLogEntry");function u(n){let{type:e,...t}=n;return t}s(u,"toLogFields");function et(n){let e={sessionId:n.sessionId,tool:n.tool,toolId:n.toolId,error:n.error};switch(n.outcome){case"auto_allowed_read_only_bash":return{level:"debug",message:"ACP tool permission auto-allowed for read-only bash",fields:e};case"auto_allowed_remembered":return{level:"info",message:"ACP tool permission reused remembered allowance",fields:e};case"blocked_plan_mode":return{level:"info",message:"ACP tool blocked by plan mode",fields:e};case"auto_allowed_plan_mode":return{level:"debug",message:"ACP tool auto-allowed in plan mode",fields:e};case"auto_allowed_policy":return{level:"debug",message:"ACP tool auto-allowed by permission policy",fields:e};case"request_failed_disconnected":return{level:"error",message:"ACP permission request failed because client is disconnected",fields:e};case"request_failed_incomplete":return{level:"error",message:"ACP permission request did not complete",fields:e};case"request_dismissed":return{level:"info",message:"ACP permission request dismissed",fields:e};case"request_rejected":return{level:"info",message:"ACP permission rejected",fields:e};case"request_granted":return{level:"info",message:"ACP permission granted",fields:{...e,remember:n.remember??!1}}}}s(et,"mapPermissionOutcomeToLogEntry");function tt(n){return Object.entries(n).flatMap(([e,t])=>t===void 0?[]:`${e}=${nt(t)}`).join(" ")}s(tt,"formatFields");function nt(n){return n===null?"null":typeof n=="string"?JSON.stringify(n.length>160?`${n.slice(0,157)}...`:n):String(n)}s(nt,"formatFieldValue");var S=class{static{s(this,"AcpEventEmitter")}sinks;constructor(e={}){this.sinks=[...e.sinks??[]]}emit(e){for(let t of this.sinks)try{t.handleEvent(e)}catch(o){}}};import{randomUUID as se}from"node:crypto";import ot from"node:os";import g from"node:path";import R from"node:process";import{Readable as it,Writable as st}from"node:stream";import{AgentSideConnection as rt,PROTOCOL_VERSION as re,RequestError as P,ndJsonStream as at}from"@agentclientprotocol/sdk";var ue=["plan","accept-edits","auto-in-project"];function T(n){return W(n)}s(T,"acpIsFileModificationTool");var dt={read:"read",write:"edit",edit:"edit",undo:"edit",bash:"execute",grep:"search",glob:"search",think:"think",fetch:"fetch"},lt=[{id:"plan",name:"Plan",description:"Read-only planning mode. File modifications are blocked except the plan-mode whitelist."},{id:"accept-edits",name:"Accept Edits",description:"File edits are auto-approved. Shell commands still require confirmation unless explicitly remembered."},{id:"auto-in-project",name:"Auto In Project",description:"Project-scoped changes are auto-approved. Protected paths and risky out-of-project operations still require confirmation."}];function L(n,e){if(n==null)return;if(typeof n!="string")throw new Error(`${e} must be a string.`);let t=K(n);return t==="auto"?void 0:t}s(L,"normalizeOptionalEffort");function ct(n){let e=n.replace(/\s+/g," ").trim();return e.length<=80?e:`${e.slice(0,77)}...`}s(ct,"buildAcpSessionTitle");function ut(n){let e=n.effort;if(e===void 0)return{kind:"absent"};try{return{kind:"value",value:L(e,"Prompt effort")}}catch(t){let o=t instanceof Error?t.message:String(t);throw P.invalidParams({effort:e},o)}}s(ut,"resolvePromptEffortOverride");function pt(n){let e={};for(let t of n)if("command"in t){let o={};for(let i of t.env??[])o[i.name]=i.value;e[t.name]={type:"stdio",command:t.command,args:t.args??[],env:Object.keys(o).length>0?o:void 0}}else if("type"in t&&t.type==="sse"){let o={};for(let i of t.headers??[])o[i.name]=i.value;e[t.name]={type:"sse",url:t.url,headers:Object.keys(o).length>0?o:void 0}}else if("type"in t&&t.type==="http"){let o={};for(let i of t.headers??[])o[i.name]=i.value;e[t.name]={type:"http",url:t.url,headers:Object.keys(o).length>0?o:void 0}}return e}s(pt,"convertAcpMcpServers");function mt(n){let e=[];for(let t of n){let o=t.trim();o&&!e.includes(o)&&e.push(o)}return e}s(mt,"dedupeExtensionPaths");function ft(n){return Array.isArray(n)?mt(n.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>g.isAbsolute(e)?e:g.resolve(g.dirname(b),e))):[]}s(ft,"normalizeConfiguredExtensionPaths");async function gt(n){try{return await U()}catch(e){let t=e instanceof Error?e.message:String(e);return n.error("ACP extension discovery failed: "+t),[]}}s(gt,"discoverAcpDefaultExtensions");async function ht(n,e,t){let o=await _(t),i=await F(await _(e),o);await n.loadExtensions(i,{continueOnError:!0,loadSource:"discovery"}),await n.loadExtensions(o,{continueOnError:!0,loadSource:"config"})}s(ht,"loadAcpExtensionGroups");function vt(n,e="accept-edits"){return n&&ue.includes(n)?n:e}s(vt,"normalizeAcpPermissionMode");function Rt(n){if(n&&ue.includes(n))return n;throw P.invalidParams({modeId:n},"Invalid session mode. Expected one of: plan, accept-edits, auto-in-project.")}s(Rt,"parseSessionMode");function yt(n){return{availableModes:lt,currentModeId:n}}s(yt,"buildModeState");function ae(n){return dt[n]??"other"}s(ae,"inferToolKind");function de(n,e){if(T(n)){let t=typeof e.path=="string"?e.path:void 0;return t?[{path:t}]:void 0}if(n==="bash"){let t=typeof e.command=="string"?e.command:"",o=H(t);if(o.length>0)return o.map(i=>({path:i}))}}s(de,"inferToolLocations");function St(n){let e=[];for(let t of n){let o=t,i=typeof o.type=="string"?o.type:"";if(i==="text"&&typeof o.text=="string"){e.push(o.text);continue}if(i==="resource_link"&&typeof o.uri=="string"){e.push(`[Resource] ${o.uri}`);continue}if(i==="resource"&&o.resource&&typeof o.resource=="object"){let r=o.resource;if(typeof r.text=="string"){e.push(r.text);continue}typeof r.uri=="string"&&e.push(`[Resource] ${r.uri}`)}}return e.join(`
|
|
4
4
|
|
|
5
5
|
`).trim()}s(St,"extractPromptText");function Pt(n){return/^\[(?:Tool Error|Cancelled|Blocked|Error)\]/.test(n)}s(Pt,"isToolResultFailure");function wt(n){return n instanceof Error?n.name==="AbortError"||n.message.includes("aborted")||n.message.includes("ABORTED"):!1}s(wt,"isAbortLikeError");function le(n){return n==="queued"?0:n==="running"||n==="waiting_permission"||n==="waiting_user_input"?1:2}s(le,"acpAbortPhaseRank");function ce(n){let e=n?.usage;if(e)return{inputTokens:e.inputTokens,outputTokens:e.outputTokens,totalTokens:e.totalTokens,...e.cachedReadTokens!==void 0?{cachedReadTokens:e.cachedReadTokens}:{},...e.cachedWriteTokens!==void 0?{cachedWriteTokens:e.cachedWriteTokens}:{},...e.thoughtTokens!==void 0?{thoughtTokens:e.thoughtTokens}:{}}}s(ce,"toAcpUsage");var I=class{static{s(this,"KodaXAcpServer")}provider;model;effort;planModeEffort;thinking;reasoningMode;defaultPermissionMode;defaultCwd;hasFixedCwd;agentName;agentVersion;storage;runtimeReady;ownsRuntime;logger;events;bashPrefixExtractor;configuredExtensions;discoveredExtensions;connection=null;sessions=new Map;extensionRuntime;extensionRuntimeReady;disposePromise;constructor(e={}){let t=R.env.KODAX_PROVIDER,o=R.env.KODAX_EFFORT,i=k(),r=i;this.provider=ee({explicitProvider:e.provider,environmentProvider:t,configuredProvider:i.provider,defaultProvider:D}),this.model=te({explicitProvider:e.provider,environmentProvider:t,explicitModel:e.model,configuredProvider:i.provider,configuredModel:i.model});let a=e.effort!==void 0||X(o).kind==="value";this.effort=L(ne({explicitEffort:e.effort,environmentEffort:o,configuredEffort:i.effort}),"Configured effort"),this.planModeEffort=a?void 0:L(e.planModeEffort??i.planModeEffort,"Configured plan-mode effort"),this.thinking=e.thinking??i.thinking??!1,this.reasoningMode=e.reasoningMode??i.reasoningMode??"auto",this.defaultPermissionMode=vt(e.permissionMode??i.permissionMode,"accept-edits");let d=g.resolve(e.cwd??R.cwd()),l=ft(r.extensions),c=new y({level:O(e.logLevel??R.env.KODAX_ACP_LOG,"info")}),p=gt(c);this.defaultCwd=d,this.hasFixedCwd=e.cwd!==void 0,this.agentName=e.agentName??"kodax-acp-server",this.agentVersion=e.agentVersion??"0.0.0",this.storage=e.storage??new C,this.logger=c,this.ownsRuntime=e.runtime===void 0,this.runtimeReady=e.runtime?Promise.resolve(e.runtime):M({homeDir:e.homeDir??ot.homedir(),sessionsDir:this.storage.getSessionsDir(),profile:"acp",defaultProvider:this.provider,...this.model!==void 0?{defaultModel:this.model}:{}}),this.configuredExtensions=l,this.discoveredExtensions=p,this.events=new S({sinks:[...e.eventSinks??[],c]}),this.bashPrefixExtractor=Y({getProvider:s(()=>q(this.provider),"getProvider"),getModel:s(()=>this.model??"","getModel")});let h=i.mcpServers,f=h&&Object.values(h).some(m=>(m.connect??"lazy")!=="disabled");this.extensionRuntimeReady=(async()=>{let m=await p,v=m.length>0||l.length>0;if(!f&&!v)return;let w=E({config:i});f&&await A(w,h,{reverse:x({cwd:d})}),await ht(w,m,l),w.activate(),this.extensionRuntime=w})().catch(m=>{let v=m instanceof Error?m.message:String(m);c.error("ACP extension initialization failed: "+v)})}attach(e,t){let o=at(t,e),i=new rt(()=>this,o);this.connection=i;let r=this.effort==="none"?!1:this.thinking,a=this.effort==="none"?"off":this.reasoningMode;return this.events.emit({type:"server_attached",agent:this.agentName,version:this.agentVersion,provider:this.provider,model:this.model??"(default)",cwd:this.defaultCwd,permissionMode:this.defaultPermissionMode,reasoningMode:a,thinking:r,fixedCwd:this.hasFixedCwd}),i.signal.addEventListener("abort",()=>{let d=this.sessions.size;this.events.emit({type:"connection_closed",activeSessions:d}),this.dispose()}),i}async waitForClose(){await this.connection?.closed}async dispose(){return this.disposePromise?this.disposePromise:(this.disposePromise=(async()=>{for(let o of this.sessions.values())await this.abortSessionRuns(o);let e=new Set;for(let o of this.sessions.values())o.ownedExtensionRuntime&&(e.add(o.ownedExtensionRuntime),o.ownedExtensionRuntime=void 0),o.extensionRuntime=void 0;this.sessions.clear(),this.connection=null;let t=this.extensionRuntimeReady;this.extensionRuntimeReady=void 0,await t?.catch(()=>{}),this.extensionRuntime&&(e.add(this.extensionRuntime),this.extensionRuntime=void 0),await Promise.all([...e].map(o=>o.dispose())),this.ownsRuntime&&await(await this.runtimeReady).close().catch(()=>{}),await V()})(),this.disposePromise)}async initialize(e){return this.events.emit({type:"initialize_completed",protocolVersion:re}),{protocolVersion:re,agentInfo:{name:this.agentName,version:this.agentVersion},agentCapabilities:{promptCapabilities:{embeddedContext:!0,image:!1,audio:!1},sessionCapabilities:{}}}}async newSession(e){let t=this.hasFixedCwd?this.defaultCwd:e.cwd??this.defaultCwd;if(!g.isAbsolute(t))throw P.invalidParams({cwd:t},"Session cwd must be an absolute path.");let o=se(),i=e.mcpServers??[],r={sessionId:o,cwd:g.resolve(t),permissionMode:this.defaultPermissionMode,mcpServers:i,alwaysAllowTools:[],activeRunIds:new Set};if(i.length>0){let a=pt(i),d=E({});await A(d,a,{reverse:x({cwd:r.cwd})}).catch(l=>{let c=l instanceof Error?l.message:String(l);this.logger.error("ACP per-session MCP init failed for "+o+": "+c)}),await this.extensionRuntimeReady,r.ownedExtensionRuntime=d,r.extensionRuntime=this.extensionRuntime?j(d,this.extensionRuntime):d}return this.sessions.set(o,r),this.events.emit({type:"session_created",sessionId:o,cwd:r.cwd,permissionMode:r.permissionMode,mcpServers:r.mcpServers.length}),{sessionId:o,modes:yt(r.permissionMode)}}async authenticate(){}async setSessionMode(e){let t=this.requireSession(e.sessionId),o=t.permissionMode,i=Rt(e.modeId);return t.permissionMode=i,this.events.emit({type:"session_mode_changed",sessionId:t.sessionId,from:o,to:i}),await this.sendSessionUpdate({sessionId:t.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:i}}),{}}async prompt(e){let t=this.requireSession(e.sessionId),o=St(e.prompt),i=ut(e);if(!o)throw P.invalidParams({prompt:e.prompt},"Prompt must include at least one text or resource block with content.");let r=Date.now();return s(async()=>{let d=Date.now();this.events.emit({type:"prompt_started",sessionId:t.sessionId,messageId:e.messageId??null,chars:o.length,cwd:t.cwd,queueDelayMs:d-r}),this.events.emit({type:"prompt_preview",sessionId:t.sessionId,prompt:o});let l;try{this.extensionRuntimeReady&&await this.extensionRuntimeReady;let c=await this.runtimeReady;await this.ensureRuntimeSession(c,t,o),l=await c.runs.start({sessionId:t.sessionId,prompt:o,options:this.buildKodaXOptions(t,i)}),t.activeRunIds.add(l.runId);let p=await l.result;if(p.error)throw p.error;let h=p.phase==="cancelled"||p.phase==="interrupted",f=p.result;if(!f){if(h)return this.events.emit({type:"prompt_cancelled",sessionId:t.sessionId,durationMs:Date.now()-d}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};throw new Error(`Runtime run ${l.runId} ended without a coding result.`)}t.contextTokenSnapshot=f.contextTokenSnapshot;let m=!!f.interrupted||h,v=m?"cancelled":"end_turn";return this.events.emit({type:"prompt_finished",sessionId:t.sessionId,stopReason:v,interrupted:m,durationMs:Date.now()-d}),{stopReason:v,userMessageId:e.messageId??void 0,...ce(f.contextTokenSnapshot)?{usage:ce(f.contextTokenSnapshot)}:{}}}catch(c){if(wt(c))return this.events.emit({type:"prompt_cancelled",sessionId:t.sessionId,durationMs:Date.now()-d}),{stopReason:"cancelled",userMessageId:e.messageId??void 0};let p=c instanceof Error?c.message:String(c);return this.events.emit({type:"prompt_failed",sessionId:t.sessionId,durationMs:Date.now()-d,error:p}),await this.sendTextChunk(t.sessionId,`
|
package/dist/kodax_bootstrap.js
CHANGED
|
@@ -25,5 +25,5 @@ if (process.env.KODAX_DISABLE_HARDENING !== '1') {
|
|
|
25
25
|
delete process.env.DYLD_LIBRARY_PATH;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
var c=Object.defineProperty;var r=(e,o)=>c(e,"name",{value:o,configurable:!0});import{readFileSync as p}from"node:fs";import{pathToFileURL as m}from"node:url";function f(e){return e.length===1&&(e[0]==="-r"||e[0]==="--resume")}r(f,"isBareResumeRequest");function y(e){return e.length===1&&(e[0]==="-V"||e[0]==="--version")}r(y,"isVersionRequest");function v(){return"0.7.
|
|
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.86"}r(v,"readBootstrapVersion");async function g(e={}){let o=e.argv??process.argv,n=e.stdin??process.stdin,d=e.loadResume??(()=>import("./kodax_resume.js")),u=e.loadCli??(()=>import("./kodax_cli.js")),s,i=r(()=>(s??=u(),s),"loadCliOnce"),a=o.slice(2);if(y(a)){process.stdout.write(`${v()}
|
|
29
29
|
`);return}if(f(a)){let t=await(await d()).resolveBareResume({beforeSelect:r(async()=>{await i()},"beforeSelect")});if(t.kind==="exit"){n.pause?.(),n.unref?.();return}o.splice(2,o.length-2,...t.argv),t.argv.length>0&&n.isTTY===!0&&(n.pause?.(),n.ref?.())}await(await i()).main()}r(g,"runKodaXBootstrap");async function R(){try{await g()}catch(e){process.stdin.pause(),process.stdin.unref?.();let o=e instanceof Error?e.message:String(e);try{let{default:n}=await import("chalk");console.error(n.red(`[Error] ${o}`))}catch{console.error(`[Error] ${o}`)}process.exitCode=1}}r(R,"runKodaXBootstrapAsEntry");var l=process.argv[1],w=l!==void 0&&import.meta.url===m(l).href;w&&R();export{f as isBareResumeRequest,y as isVersionRequest,g as runKodaXBootstrap,R as runKodaXBootstrapAsEntry};
|