@linxiraos/zeta 1.0.3 → 1.0.4
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/dist/cli.js +4 -4
- package/package.json +13 -13
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var Hdh=Object.create;var{getPrototypeOf:Vdh,defineProperty:dO0,getOwnPropertyNames:$dh}=Object;var Kdh=Object.prototype.hasOwnProperty;function mdh(i){return this[i]}var Adh,Odh,sn=(i,n,h)=>{var f=i!=null&&typeof i==="object";if(f){var u=n?Adh??=new WeakMap:Odh??=new WeakMap,p=u.get(i);if(p)return p}h=i!=null?Hdh(Vdh(i)):{};let g=n||!i||!i.__esModule?dO0(h,"default",{value:i,enumerable:!0}):h;for(let w of $dh(i))if(!Kdh.call(g,w))dO0(g,w,{get:mdh.bind(i,w),enumerable:!0});if(f)u.set(i,g);return g};var B0=(i,n)=>()=>(n||i((n={exports:{}}).exports,n),n.exports);var Ndh=(i)=>i;function adh(i,n){this[i]=Ndh.bind(null,n)}var S0=(i,n)=>{for(var h in n)dO0(i,h,{get:n[h],enumerable:!0,configurable:!0,set:adh.bind(n,h)})};var j=(i,n)=>()=>(i&&(n=i(i=0)),n);var I1=import.meta.require;var eQi="1.0.
|
|
3
|
+
var Hdh=Object.create;var{getPrototypeOf:Vdh,defineProperty:dO0,getOwnPropertyNames:$dh}=Object;var Kdh=Object.prototype.hasOwnProperty;function mdh(i){return this[i]}var Adh,Odh,sn=(i,n,h)=>{var f=i!=null&&typeof i==="object";if(f){var u=n?Adh??=new WeakMap:Odh??=new WeakMap,p=u.get(i);if(p)return p}h=i!=null?Hdh(Vdh(i)):{};let g=n||!i||!i.__esModule?dO0(h,"default",{value:i,enumerable:!0}):h;for(let w of $dh(i))if(!Kdh.call(g,w))dO0(g,w,{get:mdh.bind(i,w),enumerable:!0});if(f)u.set(i,g);return g};var B0=(i,n)=>()=>(n||i((n={exports:{}}).exports,n),n.exports);var Ndh=(i)=>i;function adh(i,n){this[i]=Ndh.bind(null,n)}var S0=(i,n)=>{for(var h in n)dO0(i,h,{get:n[h],enumerable:!0,configurable:!0,set:adh.bind(n,h)})};var j=(i,n)=>()=>(i&&(n=i(i=0)),n);var I1=import.meta.require;var eQi="1.0.4",ixi;var rQi=j(()=>{ixi={bun:">=1.3.14"}});import*as q1 from"fs";import*as ua from"os";import*as $n from"path";function qH(i){let n=i?.trim();if(!n||n==="default")return;if(n==="."||n===".."||n.endsWith(".")||!nxi.test(n)||Ldh.test(n))throw Error(`Invalid OMP profile "${i}". Profile names must match ${nxi.source}, cannot be "." or "..", cannot end with ".", and cannot be a Windows reserved device name (CON, PRN, AUX, NUL, COM0-9, LPT0-9, or any of those with an extension).`);return n}function SO0(i,n){return qH(i!==void 0?i:n)}function Ddh(){return SO0(process.env.OMP_PROFILE,process.env.PI_PROFILE)}function _dh(){try{return Ddh()}catch{return}}function IO0(){return $n.join(ua.homedir(),CZ())}function lO0(i){let n=IO0();return i?$n.join(n,"profiles",i):n}function sO0(){try{return qH(process.env.PI_PROFILE)}catch{return}}function ydh(i){return $n.join(lO0(i),"agent")}function Mdh(i,n){return i!==void 0&&n===ydh(i)}function fxi(i){if(process.platform!=="darwin"||!i.startsWith("/private/"))return i;let n=i.slice(8);try{if(q1.realpathSync(i)===q1.realpathSync(n))return n}catch{}return i}function VE(i){let n=$n.resolve(i);try{return q1.realpathSync(n)}catch{return n}}function I7(i){let n=VE(i);return process.platform==="win32"?n.toLowerCase():n}function rc(i,n){let h=I7(i),f=I7(n),u=$n.relative(h,f);return u===""||!u.startsWith("..")&&!$n.isAbsolute(u)}function pa(i,n){if(!rc(i,n))return null;let h=I7(i),f=I7(n);return $n.relative(h,f)||null}function _0(){return tO0}function LZ(i){tO0=fxi($n.resolve(i)),process.chdir(tO0)}async function DZ(i){try{return(await q1.promises.stat(i)).isDirectory()}catch{return!1}}function CZ(){if(process.env.PI_CONFIG_DIR)return process.env.PI_CONFIG_DIR;return".zeta"}function uxi(){if(process.env.PI_CONFIG_DIR)return;let i=ua.homedir();try{let n=$n.join(i,".zeta");if(q1.existsSync(n))return;let h=$n.join(i,".omp");if(!q1.existsSync(h))return;q1.renameSync(h,n)}catch{}}function pxi(){let i=JX();return i?$n.join(CZ(),"profiles",i,"agent"):`${CZ()}/agent`}class HE{configRoot;agentDir;#i;#n;#h=new Map;#f=new Map;constructor(i={}){let n=qH(i.profile);this.configRoot=lO0(n);let h=$n.join(this.configRoot,"agent"),f=n?void 0:i.agentDirOverride;this.agentDir=f?$n.resolve(f):h;let u=this.agentDir===h,p,g,w;if((process.platform==="linux"||process.platform==="darwin")&&u){let o=(c)=>{let U=process.env[c];if(!U)return;try{let W=$n.join(U,Wi);if(n){let Z=$n.join(W,"profiles",n);if(q1.existsSync(Z))return Z;return}if(q1.existsSync(W))return W}catch{}return};p=o("XDG_DATA_HOME"),g=o("XDG_STATE_HOME"),w=o("XDG_CACHE_HOME")}this.#i={data:p??this.configRoot,state:g??this.configRoot,cache:w??this.configRoot},this.#n={data:p??this.agentDir,state:g??this.agentDir,cache:w??this.agentDir}}rootSubdir(i,n){let h=this.#h.get(i);if(h)return h;let f=n?this.#i[n]:this.configRoot,u=$n.join(f,i);return this.#h.set(i,u),u}agentSubdir(i,n,h){if(!i||i===this.agentDir){let f=this.#f.get(n);if(f)return f;let u=h?this.#n[h]:this.agentDir,p=$n.join(u,n);return this.#f.set(n,p),p}return $n.join(i,n)}}function rO0(i,n,h=i){return Mdh(i??h,n)?void 0:n}function gxi(){return S7?void 0:rO0(void 0,process.env.PI_CODING_AGENT_DIR,sO0())}function sp0(){Bh=new HE({agentDirOverride:gxi(),profile:S7})}function l7(){return Bh.configRoot}function eO0(i){let n=qH(i);if(n&&!S7)lp0=rO0(void 0,process.env.PI_CODING_AGENT_DIR,sO0());if(S7=n,S7)Bh=new HE({profile:S7}),process.env.OMP_PROFILE=S7,process.env.PI_PROFILE=S7,process.env.PI_CODING_AGENT_DIR=Bh.agentDir;else{for(let h of Cdh)delete process.env[h];if(lp0===void 0)delete process.env.PI_CODING_AGENT_DIR;else process.env.PI_CODING_AGENT_DIR=lp0;Bh=new HE({agentDirOverride:lp0})}}function JX(){return S7}function wxi(i){return lO0(qH(i))}function Ti(){return Bh.agentDir}function $E(i=_0()){return $n.join(i,".zeta")}function oxi(){return Bh.rootSubdir("reports","state")}function QQ(){return Bh.rootSubdir("logs","state")}function ga(i=new Date,n=process.pid){return $n.join(QQ(),`${Wi}.${i.toISOString().slice(0,10)}.${n}.log`)}function Hu(i){if(i!==void 0&&i!==vdh)return $n.join(i,r2,"plugins");return Bh.rootSubdir("plugins","data")}function _Z(i){return $n.join(Hu(i),"node_modules")}function wa(i){return $n.join(Hu(i),"package.json")}function rp0(i){return $n.join(Hu(i),"zeta-plugins.lock.json")}function ep0(){return Bh.rootSubdir("remote","data")}function cxi(i){let n=i?.trim();if(!n)return;let h=n;if(h==="~")h=ua.homedir();else if(h.startsWith("~/")||h.startsWith("~\\"))h=ua.homedir()+h.slice(1);return $n.isAbsolute(h)?$n.normalize(h):void 0}function iN0(i){return EO0=cxi(i),EO0}function i50(){return cxi(process.env.OMP_WORKTREE_DIR)??EO0??Bh.rootSubdir("wt","data")}function Uxi(){return Bh.rootSubdir("ssh-control","state")}function Wxi(){return Bh.rootSubdir("remote-host","data")}function n50(){return Bh.rootSubdir("python-env","data")}function oa(){return Bh.rootSubdir("puppeteer","cache")}function Zxi(){return Bh.rootSubdir("browser-relay","data")}function Yxi(){return Bh.rootSubdir("webcache","cache")}function kxi(){return Bh.rootSubdir("autoqa.db","data")}function Gxi(i){return Bun.hash($n.resolve(i)).toString(16).padStart(16,"0").slice(-7)}function h50(i){return $n.join(i50(),i)}function nN0(){return Bh.rootSubdir("gpu_cache.json","cache")}function hN0(){let i=process.env.OMP_GITHUB_CACHE_DB;if(i)return i;return Bh.rootSubdir($n.join("cache","github-cache.db"),"cache")}function Xxi(){let i=process.env.OMP_AUTH_BROKER_SNAPSHOT_CACHE;if(i)return i;return Bh.rootSubdir($n.join("cache","auth-broker-snapshot.enc"),"cache")}function KE(){return Bh.rootSubdir($n.join("cache","fastembed"),"cache")}function bxi(){return Bh.rootSubdir($n.join("cache","fastembed-runtime"),"cache")}function yZ(){return Bh.rootSubdir("stats.db","data")}function Jxi(){return Bh.rootSubdir("autoresearch","state")}function zxi(i){return $n.join(Jxi(),i)}function Qxi(i){return $n.join(Jxi(),`${i}.db`)}function Rdh(){return Bh.rootSubdir("security","state")}function xxi(i){return $n.join(Rdh(),i)}function F1(i){return Bh.agentSubdir(i,"agent.db","data")}function mE(i){return Bh.agentSubdir(i,"last-changelog-version","state")}function AE(i){return Bh.agentSubdir(i,"history.db","data")}function f50(i){return Bh.agentSubdir(i,"models.db","data")}function $6(i){return Bh.agentSubdir(i,$n.join("cache","tiny-models"),"cache")}function fN0(i){return Bh.agentSubdir(i,$n.join("cache","document-conversions"),"cache")}function Qg(i){return Bh.agentSubdir(i,"sessions","data")}function xQ(i){return Bh.agentSubdir(i,"blobs","data")}function FH(i){return Bh.agentSubdir(i,"themes")}function Bxi(i){return Bh.agentSubdir(i,"tools")}function jxi(i){return Bh.agentSubdir(i,"prompts")}function u50(i){return Bh.agentSubdir(i,"memories","state")}function uN0(i){return Bh.agentSubdir(i,"terminal-sessions","state")}function p50(i){return Bh.agentSubdir(i,`${Wi}-debug.log`,"state")}function qxi(i,n){if(n===i)return;try{if(q1.existsSync(n)||!q1.existsSync(i))return;q1.mkdirSync($n.dirname(n),{recursive:!0}),q1.copyFileSync(i,n,q1.constants.COPYFILE_EXCL)}catch{}}function g50(){let i=Bh.agentSubdir(void 0,"secret-placeholder.key","state");return qxi($n.join(Bh.agentDir,"secret-placeholder.key"),i),i}function zX(i){let n=Bun.hash.wyhash($n.resolve(i)).toString(16).padStart(16,"0");return Bh.rootSubdir($n.join("run","daemons",n),"state")}function Fxi(i){if(!/^[a-z0-9][a-z0-9._-]*$/i.test(i))throw Error(`Invalid global daemon service name: ${JSON.stringify(i)}`);return $n.join(IO0(),"run","daemons","global",i)}function Hxi(){return Bh.rootSubdir($n.join("run","provider-inflight"),"state")}function w9(){let i=Bh.rootSubdir("marketplaces.json","data");return qxi($n.join(Bh.configRoot,"marketplaces.json"),i),i}function Vxi(i=_0()){return $n.join($E(i),"prompts")}function $xi(i=_0()){return $n.join($E(i),"plugin-overrides.json")}function H1(i,n=_0()){if(i==="user")return $n.join(Ti(),"mcp.json");return $n.join($E(n),"mcp.json")}function t3(i,n=_0()){if(i==="user")return $n.join(Ti(),"ssh.json");return $n.join($E(n),"ssh.json")}function w50(i=_0()){return $n.join($E(i),"tracking")}function Kxi(i){return $n.join(i??Ti(),"tracking-index.json")}function MZ(){if(FE)return FE;let i=$n.join(IO0(),Tdh),n=!1;try{let f=q1.readFileSync(i,"utf8").trim();if(hxi.test(f))return FE=f,f;n=f.length>0}catch{}let h=crypto.randomUUID();try{if(q1.mkdirSync($n.dirname(i),{recursive:!0}),n)try{q1.unlinkSync(i)}catch{}let f=q1.openSync(i,q1.constants.O_WRONLY|q1.constants.O_CREAT|q1.constants.O_EXCL,384);try{q1.writeSync(f,`${h}
|
|
4
4
|
`)}finally{q1.closeSync(f)}}catch(f){if(f.code==="EEXIST")try{let u=q1.readFileSync(i,"utf8").trim();if(hxi.test(u))return FE=u,u}catch{}}return FE=h,h}var Wi="zeta",r2=".zeta",bX,Pf,sh,PO0,nxi,Cdh,Ldh,tO0,S7,Bh,lp0,vdh,EO0,FE=null,Tdh="install-id",hxi;var H5=j(()=>{rQi();bX=["config.yml","config.yaml"],Pf=eQi,sh=`omp/${Pf}`,PO0=ixi.bun.replace(/[^0-9.]/g,""),nxi=/^[a-z0-9][a-z0-9._-]{0,63}$/,Cdh=["OMP_PROFILE","PI_PROFILE"],Ldh=/^(?:CON|PRN|AUX|NUL|COM[0-9]|LPT[0-9])(?:\..*)?$/i;tO0=fxi(process.cwd());S7=_dh();Bh=new HE({agentDirOverride:gxi(),profile:S7}),lp0=rO0(S7,process.env.PI_CODING_AGENT_DIR,S7??sO0()),vdh=ua.homedir();hxi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i});import*as mxi from"crypto";import*as Nw from"fs";import*as Axi from"os";import*as Oxi from"path";function ddh(i){if(i===null||typeof i!=="object")return!1;let n=i;return typeof n.date==="number"&&typeof n.name==="string"&&typeof n.hash==="string"}class pN0{#i;#n;#h;#f;#u;#p;#g;#w;#o=0;#c;#U=0;#W=!1;constructor(i){this.#i=i.directory,this.#n=i.filenamePrefix,this.#h=i.filenameSuffix,this.#f=i.auditFile,this.#u=i.maxBytes,this.#p=i.maxFiles,this.#g=this.#G();let n=new Date;this.#k(this.#Z(n));let h=this.#c;if(h)this.#b(h,n.getTime()),Nw.closeSync(Nw.openSync(h,"a"))}write(i){if(this.#W)return;let n=new Date;this.#k(this.#Z(n));let h=this.#c;if(!h)return;this.#b(h,n.getTime());let f=`${i}${Axi.EOL}`;Nw.appendFileSync(h,f,"utf8"),this.#U+=Buffer.byteLength(f)}close(){this.#W=!0}#Z(i){return`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`}#k(i){if(i!==this.#w)this.#w=i,this.#o=0,this.#Y(i,0);while(this.#U>this.#u)this.#o++,this.#Y(i,this.#o)}#Y(i,n){let h=n===0?"":`.${n}`;this.#c=Oxi.join(this.#i,`${this.#n}.${i}.${this.#h}.log${h}`);try{this.#U=Nw.statSync(this.#c).size}catch{this.#U=0}}#b(i,n){if(this.#g.some((f)=>f.name===i))return;let h=mxi.createHash("sha256").update(`${i}LOG_FILE${n}`).digest("hex");this.#g.push({date:n,name:i,hash:h});while(this.#g.length>this.#p){let f=this.#g.shift();if(!f)break;try{Nw.rmSync(f.name,{force:!0})}catch{}}this.#z()}#G(){try{let i=JSON.parse(Nw.readFileSync(this.#f,"utf8"));return Array.isArray(i.files)?i.files.filter(ddh):[]}catch{return[]}}#z(){let i={keep:{days:!1,amount:this.#p},auditLog:this.#f,files:this.#g,hashType:"sha256"};Nw.writeFileSync(this.#f,JSON.stringify(i,void 0,4),"utf8")}}var Nxi=()=>{};function Cxi(){let i=globalThis,n=i[axi];if(!n||n.length===0)return[];return i[axi]=[],n}var axi;var Lxi=j(()=>{axi=Symbol.for("omp.moduleLoadBuffer")});var V={};S0(V,{warn:()=>e2,timingModeIncludes:()=>W50,time:()=>Qth,startupMarker:()=>o50,startTiming:()=>Wth,shouldExitAfterTimings:()=>cth,setTransports:()=>UN0,registerLogSink:()=>Pdh,recordModuleLoadSpan:()=>vxi,printTimings:()=>Uth,openSpanPath:()=>Gth,info:()=>oth,error:()=>VH,endTiming:()=>kth,debug:()=>jQ});import{AsyncLocalStorage as tdh}from"async_hooks";import*as xg from"fs";import*as _xi from"os";import*as cN0 from"path";import{isPromise as Edh}from"util/types";function Pdh(i){return U50.add(i),()=>{U50.delete(i)}}function Z50(i,n,h){if(U50.size===0)return;let f={level:i,message:n,context:h,timestamp:new Date};for(let u of U50)try{u(f)}catch{}}function edh(i){try{return process.kill(i,0),!0}catch(n){return!(n instanceof Error&&("code"in n)&&(n.code==="ESRCH"||n.code==="EINVAL"))}}function ith(i){let n;try{n=xg.readdirSync(i,{withFileTypes:!0})}catch{return}let h=new Date,f=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-`+String(h.getDate()).padStart(2,"0"),u=new Date(h);u.setDate(u.getDate()-(rdh-1));let p=`${u.getFullYear()}-${String(u.getMonth()+1).padStart(2,"0")}-`+String(u.getDate()).padStart(2,"0"),g=new Map;for(let w of n){if(!w.isFile())continue;let o=Sdh.exec(w.name),c=Idh.exec(w.name),U=o?.[2]??c?.[1];if(!U||edh(Number(U)))continue;let W=cN0.join(i,w.name);if(c){if(sdh===0)try{xg.rmSync(W,{force:!0})}catch{}continue}if(!o?.[1])continue;if(o[1]<p||o[1]>f){try{xg.rmSync(W,{force:!0})}catch{}continue}try{let Z=`${U}:${o[1]}`,Y=g.get(Z)??[];Y.push({path:W,mtimeMs:xg.statSync(W).mtimeMs,rollover:Number(o[3]??0)}),g.set(Z,Y)}catch{}}for(let w of g.values()){w.sort((o,c)=>c.mtimeMs-o.mtimeMs||c.rollover-o.rollover||(o.path<c.path?-1:o.path>c.path?1:0));for(let o of w.slice(ldh))try{xg.rmSync(o.path,{force:!0})}catch{}}}function nth(i){if(!xg.existsSync(i))xg.mkdirSync(i,{recursive:!0});return i}function hth(i,n){if(n instanceof Error){let h={name:n.name,message:n.message,stack:n.stack},f=n;for(let u in f)h[u]=f[u];if(n.cause!==void 0)h.cause=n.cause;return h}return n}function QX(i,n=2){return String(i).padStart(n,"0")}function fth(i){let n=-i.getTimezoneOffset(),h=Math.abs(n),f=n>=0?"+":"-";return`${QX(i.getFullYear(),4)}-${QX(i.getMonth()+1)}-${QX(i.getDate())}T${QX(i.getHours())}:${QX(i.getMinutes())}:${QX(i.getSeconds())}.${QX(i.getMilliseconds(),3)}${f}${QX(Math.floor(h/60))}:${QX(h%60)}`}function pth(i,n,h){let f=!uth.test(n)&&h!==null&&typeof h==="object"?h:void 0,u=Object.assign({},f,{level:i,message:n});if(f?.message)u.message=`${n} ${f.message}`;if(f?.stack)u.stack=f.stack;if(f?.cause)u.cause=f.cause;return u}function Dxi(i){let n=fth(new Date);i.timestamp=n;let h={timestamp:n,level:i.level,pid:process.pid,message:i.message};for(let[f,u]of Object.entries(i))if(f!=="level"&&f!=="timestamp"&&f!=="message")h[f]=u;return JSON.stringify(h,hth)}function gth(i){let n=nth(i??QQ());return ith(n),new pN0({directory:n,filenamePrefix:"zeta",filenameSuffix:String(process.pid),maxBytes:10485760,maxFiles:5,auditFile:cN0.join(n,`.zeta.${process.pid}-audit.json`)})}function Mxi(i){return{file:i.file?gth(typeof i.file==="string"?i.file:void 0):void 0,console:i.console===!0}}function wth(){return ca??=Mxi(yxi),ca}function Y50(i,n,h){let f=wth(),u=pth(i,n,h);if(!f.file&&!f.console)return;let p=Dxi(u);if(f.file)f.file.write(p);if(f.console)xg.writeSync(1,`${Dxi(u)}${_xi.EOL}`)}function UN0(i){if(yxi=i,!ca)return;let n=ca;ca={file:void 0,console:!1},n.file?.close(),ca=Mxi(i)}function VH(i,n){try{Y50("error",i,n)}catch{}Z50("error",i,n)}function e2(i,n){try{Y50("warn",i,n)}catch{}Z50("warn",i,n)}function oth(i,n){try{Y50("info",i,n)}catch{}Z50("info",i,n)}function jQ(i,n){try{Y50("debug",i,n)}catch{}Z50("debug",i,n)}function o50(i){if(!process.env.PI_DEBUG_STARTUP)return;try{xg.writeSync(2,`[startup] ${i}
|
|
5
5
|
`)}catch{}}function W50(i){let n=process.env.PI_TIMING;if(!n)return!1;if(n===i)return!0;let h=0;for(let f=0;f<=n.length;f++){let u=f===n.length?44:n.charCodeAt(f);if(!(u===44||u===58||u===59||u===43||u<=32))continue;if(f>h&&n.slice(h,f)===i)return!0;h=f+1}return!1}function cth(){return W50("x")||W50("full")}function Uth(){if(!Ua||!Sp){console.error(`
|
|
6
6
|
--- Startup Timings ---
|
|
@@ -996,7 +996,7 @@ ${i.content}
|
|
|
996
996
|
selectableModels { name ref }
|
|
997
997
|
pinnedModel { name ref }
|
|
998
998
|
}
|
|
999
|
-
}`,zo1,yM0="omp_agent",MM0="omp_inline_prompt",Qo1,xo1,tM0=(i,n,h)=>{let f=new Wh,u=J91(i);f.push({type:"start",partial:u});let p={stream:f,output:u,started:!0};return eo1(i,n,h,p).catch((g)=>{let w=Vx(g);if(!f.done)u.stopReason="error",u.errorMessage=p.goalOverflowMessage??w,f.push({type:"error",reason:"error",error:u})}),f},ERi,sRi,m91="<|im_start|>",A91="<|im_end|>",I91;var PM0=j(()=>{ky0();ki();Cf();Ou();JV();RRi();ew();Wo1=Uo0.resolve(import.meta.dir,"../../../../.tmp/gitlab-duo-workflow-trace.log");zo1=["incremental_streaming","read_file_chunked","shell_command","command_timeout","tool_call_approval"],Qo1=["on_agent_reasoning","on_agent_final_answer","on_tool_execution_success","on_tool_execution_failed"],xo1=["runMCPTool","run_mcp_tool"];ERi=new Map;sRi=TRi.trim();I91=["Chat Agent","context_builder"]});import{Buffer as ZTi}from"buffer";import*as XTi from"os";import*as bTi from"path";function h71(){return c30("GOOGLE_VERTEX_REFRESH_SKEW_MS",60000)}function f71(){return bTi.join(XTi.homedir(),".config","gcloud","application_default_credentials.json")}async function YTi(i){try{return await Bun.file(i).json()}catch(n){if(w0(n))return;throw n}}async function u71(){let i=Bun.env.GOOGLE_APPLICATION_CREDENTIALS;if(i){let f=await YTi(i);if(!f)throw new ei(`GOOGLE_APPLICATION_CREDENTIALS points to a missing file: ${i}`);return{source:`gac:${i}`,creds:f}}let n=f71(),h=await YTi(n);if(h)return{source:`user:${n}`,creds:h};return}function lM0(i){let n=typeof i==="string"?ZTi.from(i,"utf8"):i;return ZTi.from(n.buffer,n.byteOffset,n.byteLength).toString("base64url")}function p71(i){let n=i.replace(/-----BEGIN [^-]+-----/g,"").replace(/-----END [^-]+-----/g,"").replace(/\s+/g,"");if(!n)throw new ei("Invalid PEM: empty body");return Uint8Array.fromBase64(n)}async function g71(i,n,h){let f={alg:"RS256",typ:"JWT"};if(h)f.kid=h;let u=`${lM0(JSON.stringify(f))}.${lM0(JSON.stringify(i))}`,p=await globalThis.crypto.subtle.importKey("pkcs8",p71(n),{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["sign"]),g=new Uint8Array(await globalThis.crypto.subtle.sign("RSASSA-PKCS1-v1_5",p,new TextEncoder().encode(u)));return`${u}.${lM0(g)}`}async function kTi(i,n,h){let f=Math.floor(Date.now()/1000),u=await g71({iss:i.client_email,scope:JTi,aud:sM0,exp:f+3600,iat:f},i.private_key,i.private_key_id),p=new URLSearchParams({grant_type:n71,assertion:u});return zTi(sM0,p,n,h)}async function GTi(i,n,h){let f=new URLSearchParams({client_id:i.client_id,client_secret:i.client_secret,refresh_token:i.refresh_token,grant_type:"refresh_token"});return zTi(sM0,f,n,h)}async function w71(i,n){let h=AbortSignal.timeout(2000),f=i?AbortSignal.any([i,h]):h;try{let u=await n(i71,{method:"GET",headers:{"Metadata-Flavor":"Google"},signal:f});if(!u.ok)return;return await u.json()}catch{return}}async function zTi(i,n,h,f){let u=await f(i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString(),signal:h});if(!u.ok){let p=await u.text().catch(()=>"");throw new t0(`Google OAuth token exchange failed (${u.status}): ${p}`,{kind:"token-exchange",provider:"google-vertex",status:u.status})}return await u.json()}async function o71(i,n){let h=await u71();if(h){let u=h.creds,p;if(u.type==="impersonated_service_account"){let w=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(u.service_account_impersonation_url)?.groups?.target;if(!w)throw RangeError(`Cannot extract target principal from ${u.service_account_impersonation_url}`);let o=u.source_credentials.type==="service_account"?await kTi(u.source_credentials,i,n):await GTi(u.source_credentials,i,n),c=await n(`https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${w}:generateAccessToken`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.access_token}`},body:JSON.stringify({delegates:u.delegates??[],scope:[JTi],lifetime:"3600s"}),signal:i});if(!c.ok){let Z=await c.text().catch(()=>"");throw new t0(`Google Impersonation token exchange failed (${c.status}): ${Z}`,{kind:"token-exchange",provider:"google-vertex",status:c.status})}let U=await c.json(),W=Math.max(0,Math.floor((new Date(U.expireTime).getTime()-Date.now())/1000));p={access_token:U.accessToken,expires_in:W,token_type:"Bearer"}}else p=u.type==="service_account"?await kTi(u,i,n):await GTi(u,i,n);return{source:h.source,token:p}}let f=await w71(i,n);if(f)return{source:"metadata",token:f};throw new nf(void 0,"Vertex AI requires Application Default Credentials. Set GOOGLE_APPLICATION_CREDENTIALS, run `gcloud auth application-default login`, or run on a GCE/Cloud Run instance with a service account.")}async function Wo0(i){let n=Bun.env.GOOGLE_CLOUD_ACCESS_TOKEN||Bun.env.CLOUDSDK_AUTH_ACCESS_TOKEN;if(n)return n;let h=i?.fetch??globalThis.fetch.bind(globalThis),f=h71(),u=Date.now();for(let[o,c]of SM0){if(c.expiresAtMs-f>u)return c.token;SM0.delete(o)}let p="vertex-adc",g=IM0.get(p);if(g)return UU(g,i?.signal);let w=(async()=>{try{let{source:o,token:c}=await o71(AbortSignal.timeout(c71),h),U=Date.now()+Math.max(0,c.expires_in*1000);return SM0.set(o,{token:c.access_token,expiresAtMs:U}),V.debug("vertex.adc acquired access token",{source:o,expiresInSec:c.expires_in}),c.access_token}finally{IM0.delete(p)}})();return IM0.set(p,w),UU(w,i?.signal)}var sM0="https://oauth2.googleapis.com/token",i71="http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token",JTi="https://www.googleapis.com/auth/cloud-platform",n71="urn:ietf:params:oauth:grant-type:jwt-bearer",SM0,IM0,c71=30000;var rM0=j(()=>{R();ki();pY();SM0=new Map,IM0=new Map});var eM0;var QTi=j(()=>{eM0={type:"module",name:"@linxiraos/pi-ai",version:"1.0.3",description:"Unified LLM API with automatic model discovery and provider configuration",homepage:"https://linxira-os.github.io",author:"Can Boluk",contributors:["Mario Zechner"],license:"MIT",repository:{type:"git",url:"git+https://github.com/Linxira-OS/linxira-zeta.git",directory:"packages/ai"},bugs:{url:"https://github.com/can1357/oh-my-pi/issues"},keywords:["ai","llm","openai","anthropic","gemini","unified","api"],main:"./src/index.ts",types:"./src/index.ts",scripts:{check:"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit",lint:"biome lint .",test:"bun test --parallel",fix:"biome check --write --unsafe .",fmt:"biome format --write ."},dependencies:{"@bufbuild/protobuf":"^2.12.1","@linxiraos/pi-omptype":"1.0.3","@linxiraos/pi-catalog":"1.0.3","@linxiraos/pi-utils":"1.0.3","@linxiraos/pi-wire":"1.0.3"},devDependencies:{"@bufbuild/protoc-gen-es":"^2.12.1","@types/bun":"^1.3.14"},engines:{bun:">=1.3.14"},files:["src","README.md","CHANGELOG.md"],exports:{".":{types:"./src/index.ts",import:"./src/index.ts"},"./error":{types:"./src/error/index.ts",import:"./src/error/index.ts"},"./*":{types:"./src/*.ts",import:"./src/*.ts"},"./auth-broker":{types:"./src/auth-broker/index.ts",import:"./src/auth-broker/index.ts"},"./auth-broker/*":{types:"./src/auth-broker/*.ts",import:"./src/auth-broker/*.ts"},"./auth-gateway":{types:"./src/auth-gateway/index.ts",import:"./src/auth-gateway/index.ts"},"./auth-gateway/*":{types:"./src/auth-gateway/*.ts",import:"./src/auth-gateway/*.ts"},"./providers/*":{types:"./src/providers/*.ts",import:"./src/providers/*.ts"},"./providers/openai-codex/*":{types:"./src/providers/openai-codex/*.ts",import:"./src/providers/openai-codex/*.ts"},"./usage/*":{types:"./src/usage/*.ts",import:"./src/usage/*.ts"},"./utils/harmony-leak":{types:"./src/utils/harmony-leak.ts",import:"./src/utils/harmony-leak.ts"},"./dialect":{types:"./src/dialect/index.ts",import:"./src/dialect/index.ts"},"./utils/*":{types:"./src/utils/*.ts",import:"./src/utils/*.ts"},"./oauth":{types:"./src/registry/oauth/index.ts",import:"./src/registry/oauth/index.ts"},"./oauth/*":{types:"./src/registry/oauth/*.ts",import:"./src/registry/oauth/*.ts"},"./registry":{types:"./src/registry/index.ts",import:"./src/registry/index.ts"},"./registry/oauth":{types:"./src/registry/oauth/index.ts",import:"./src/registry/oauth/index.ts"},"./utils/schema":{types:"./src/utils/schema/index.ts",import:"./src/utils/schema/index.ts"},"./utils/schema/*":{types:"./src/utils/schema/*.ts",import:"./src/utils/schema/*.ts"},"./*.js":"./src/*.ts"}}});var uv0={};S0(uv0,{refreshKimiToken:()=>Q71,loginKimi:()=>z71,getKimiCommonHeaders:()=>VU});import*as BTi from"crypto";import*as xL from"fs";import*as qY from"os";import*as Yo0 from"path";import{scheduler as xTi}from"timers/promises";function fv0(){return g0.KIMI_CODE_OAUTH_HOST||g0.KIMI_OAUTH_HOST||W71}function iv0(i,n,h){return[i,n,h].filter(Boolean).join(" ").trim()}function X71(){let i=qY.platform(),n=qY.release(),h=qY.arch();if(i==="darwin")return iv0("macOS",n,h);if(i==="win32")return iv0("Windows",n,h);return iv0(i==="linux"?"Linux":i,n,h)}function Zo0(i,n=""){return i.replace(/[^\x20-\x7E]/g,"").trim()||n}async function b71(){let i=await fetch(`${fv0()}/api/oauth/device_authorization`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",...VU()},body:new URLSearchParams({client_id:hv0})});if(!i.ok){let o=await i.text();throw new t0(`Kimi device authorization failed: ${i.status} ${o}`,{kind:"device-auth",provider:"kimi",status:i.status})}let n=await i.json(),h=n.user_code,f=n.device_code,u=n.verification_uri,p=n.verification_uri_complete;if(!h||!f||!u)throw new t0("Kimi device authorization response missing required fields",{kind:"validation",provider:"kimi"});let g=typeof n.expires_in==="number"?n.expires_in*1000:k71,w=typeof n.interval==="number"&&n.interval>0?n.interval*1000:Y71;return{userCode:h,deviceCode:f,verificationUri:u,verificationUriComplete:p||u,expiresInMs:g,intervalMs:w}}function jTi(i,n){if(!i.access_token||typeof i.expires_in!=="number")throw new t0("Kimi token response missing required fields",{kind:"validation",provider:"kimi"});let h=i.refresh_token??n;if(!h)throw new t0("Kimi token response missing refresh token",{kind:"validation",provider:"kimi"});return{access:i.access_token,refresh:h,expires:Date.now()+i.expires_in*1000-G71}}async function J71(i,n,h,f){let u=Date.now()+h,p=Math.max(1000,n);while(Date.now()<u){if(f?.aborted)throw new Rn;let g=await fetch(`${fv0()}/api/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",...VU()},body:new URLSearchParams({client_id:hv0,device_code:i,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})}),w=await g.json();if(g.ok&&w.access_token)return jTi(w);let o=w.error;if(o==="authorization_pending"){await xTi.wait(p,{signal:f});continue}if(o==="slow_down"){p+=5000;let U=typeof w.interval==="number"?w.interval*1000:void 0;if(U&&U>p)p=U;await xTi.wait(p,{signal:f});continue}if(o==="expired_token")throw new t0("Kimi device authorization expired",{kind:"validation",provider:"kimi"});if(o==="access_denied")throw new t0("Kimi device authorization denied",{kind:"validation",provider:"kimi"});let c=w.error_description?`: ${w.error_description}`:"";throw new t0(`Kimi device flow failed: ${o??g.status}${c}`,{kind:"polling",provider:"kimi"})}throw new t0("Kimi device flow timed out",{kind:"timeout",provider:"kimi"})}async function z71(i){let n=await b71();return i.onAuth?.({url:n.verificationUriComplete,instructions:`Enter code: ${n.userCode}`}),J71(n.deviceCode,n.intervalMs,n.expiresInMs,i.signal)}async function Q71(i){let n=await fetch(`${fv0()}/api/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",...VU()},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:i,client_id:hv0})});if(!n.ok){let f=await n.json().catch(()=>{return}),u=f?.error_description?`: ${f.error_description}`:"";throw new t0(`Kimi token refresh failed: ${n.status}${u}`,{kind:"token-refresh",provider:"kimi",status:n.status})}let h=await n.json();return jTi(h,i)}var hv0="17e5f671-d194-4dfb-9706-5516cb48c098",W71="https://auth.kimi.com",Z71="kimi-device-id",Y71=5000,k71=900000,G71=300000,nv0=()=>{let i=Yo0.join(Ti(),Z71);try{let h=xL.readFileSync(i,"utf-8").trim();if(h)return nv0=()=>h,h}catch{}let n=BTi.randomUUID().replace(/-/g,"");try{xL.mkdirSync(Yo0.dirname(i),{recursive:!0}),xL.writeFileSync(i,`${n}
|
|
999
|
+
}`,zo1,yM0="omp_agent",MM0="omp_inline_prompt",Qo1,xo1,tM0=(i,n,h)=>{let f=new Wh,u=J91(i);f.push({type:"start",partial:u});let p={stream:f,output:u,started:!0};return eo1(i,n,h,p).catch((g)=>{let w=Vx(g);if(!f.done)u.stopReason="error",u.errorMessage=p.goalOverflowMessage??w,f.push({type:"error",reason:"error",error:u})}),f},ERi,sRi,m91="<|im_start|>",A91="<|im_end|>",I91;var PM0=j(()=>{ky0();ki();Cf();Ou();JV();RRi();ew();Wo1=Uo0.resolve(import.meta.dir,"../../../../.tmp/gitlab-duo-workflow-trace.log");zo1=["incremental_streaming","read_file_chunked","shell_command","command_timeout","tool_call_approval"],Qo1=["on_agent_reasoning","on_agent_final_answer","on_tool_execution_success","on_tool_execution_failed"],xo1=["runMCPTool","run_mcp_tool"];ERi=new Map;sRi=TRi.trim();I91=["Chat Agent","context_builder"]});import{Buffer as ZTi}from"buffer";import*as XTi from"os";import*as bTi from"path";function h71(){return c30("GOOGLE_VERTEX_REFRESH_SKEW_MS",60000)}function f71(){return bTi.join(XTi.homedir(),".config","gcloud","application_default_credentials.json")}async function YTi(i){try{return await Bun.file(i).json()}catch(n){if(w0(n))return;throw n}}async function u71(){let i=Bun.env.GOOGLE_APPLICATION_CREDENTIALS;if(i){let f=await YTi(i);if(!f)throw new ei(`GOOGLE_APPLICATION_CREDENTIALS points to a missing file: ${i}`);return{source:`gac:${i}`,creds:f}}let n=f71(),h=await YTi(n);if(h)return{source:`user:${n}`,creds:h};return}function lM0(i){let n=typeof i==="string"?ZTi.from(i,"utf8"):i;return ZTi.from(n.buffer,n.byteOffset,n.byteLength).toString("base64url")}function p71(i){let n=i.replace(/-----BEGIN [^-]+-----/g,"").replace(/-----END [^-]+-----/g,"").replace(/\s+/g,"");if(!n)throw new ei("Invalid PEM: empty body");return Uint8Array.fromBase64(n)}async function g71(i,n,h){let f={alg:"RS256",typ:"JWT"};if(h)f.kid=h;let u=`${lM0(JSON.stringify(f))}.${lM0(JSON.stringify(i))}`,p=await globalThis.crypto.subtle.importKey("pkcs8",p71(n),{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["sign"]),g=new Uint8Array(await globalThis.crypto.subtle.sign("RSASSA-PKCS1-v1_5",p,new TextEncoder().encode(u)));return`${u}.${lM0(g)}`}async function kTi(i,n,h){let f=Math.floor(Date.now()/1000),u=await g71({iss:i.client_email,scope:JTi,aud:sM0,exp:f+3600,iat:f},i.private_key,i.private_key_id),p=new URLSearchParams({grant_type:n71,assertion:u});return zTi(sM0,p,n,h)}async function GTi(i,n,h){let f=new URLSearchParams({client_id:i.client_id,client_secret:i.client_secret,refresh_token:i.refresh_token,grant_type:"refresh_token"});return zTi(sM0,f,n,h)}async function w71(i,n){let h=AbortSignal.timeout(2000),f=i?AbortSignal.any([i,h]):h;try{let u=await n(i71,{method:"GET",headers:{"Metadata-Flavor":"Google"},signal:f});if(!u.ok)return;return await u.json()}catch{return}}async function zTi(i,n,h,f){let u=await f(i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString(),signal:h});if(!u.ok){let p=await u.text().catch(()=>"");throw new t0(`Google OAuth token exchange failed (${u.status}): ${p}`,{kind:"token-exchange",provider:"google-vertex",status:u.status})}return await u.json()}async function o71(i,n){let h=await u71();if(h){let u=h.creds,p;if(u.type==="impersonated_service_account"){let w=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(u.service_account_impersonation_url)?.groups?.target;if(!w)throw RangeError(`Cannot extract target principal from ${u.service_account_impersonation_url}`);let o=u.source_credentials.type==="service_account"?await kTi(u.source_credentials,i,n):await GTi(u.source_credentials,i,n),c=await n(`https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${w}:generateAccessToken`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.access_token}`},body:JSON.stringify({delegates:u.delegates??[],scope:[JTi],lifetime:"3600s"}),signal:i});if(!c.ok){let Z=await c.text().catch(()=>"");throw new t0(`Google Impersonation token exchange failed (${c.status}): ${Z}`,{kind:"token-exchange",provider:"google-vertex",status:c.status})}let U=await c.json(),W=Math.max(0,Math.floor((new Date(U.expireTime).getTime()-Date.now())/1000));p={access_token:U.accessToken,expires_in:W,token_type:"Bearer"}}else p=u.type==="service_account"?await kTi(u,i,n):await GTi(u,i,n);return{source:h.source,token:p}}let f=await w71(i,n);if(f)return{source:"metadata",token:f};throw new nf(void 0,"Vertex AI requires Application Default Credentials. Set GOOGLE_APPLICATION_CREDENTIALS, run `gcloud auth application-default login`, or run on a GCE/Cloud Run instance with a service account.")}async function Wo0(i){let n=Bun.env.GOOGLE_CLOUD_ACCESS_TOKEN||Bun.env.CLOUDSDK_AUTH_ACCESS_TOKEN;if(n)return n;let h=i?.fetch??globalThis.fetch.bind(globalThis),f=h71(),u=Date.now();for(let[o,c]of SM0){if(c.expiresAtMs-f>u)return c.token;SM0.delete(o)}let p="vertex-adc",g=IM0.get(p);if(g)return UU(g,i?.signal);let w=(async()=>{try{let{source:o,token:c}=await o71(AbortSignal.timeout(c71),h),U=Date.now()+Math.max(0,c.expires_in*1000);return SM0.set(o,{token:c.access_token,expiresAtMs:U}),V.debug("vertex.adc acquired access token",{source:o,expiresInSec:c.expires_in}),c.access_token}finally{IM0.delete(p)}})();return IM0.set(p,w),UU(w,i?.signal)}var sM0="https://oauth2.googleapis.com/token",i71="http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token",JTi="https://www.googleapis.com/auth/cloud-platform",n71="urn:ietf:params:oauth:grant-type:jwt-bearer",SM0,IM0,c71=30000;var rM0=j(()=>{R();ki();pY();SM0=new Map,IM0=new Map});var eM0;var QTi=j(()=>{eM0={type:"module",name:"@linxiraos/pi-ai",version:"1.0.4",description:"Unified LLM API with automatic model discovery and provider configuration",homepage:"https://linxira-os.github.io",author:"Can Boluk",contributors:["Mario Zechner"],license:"MIT",repository:{type:"git",url:"git+https://github.com/Linxira-OS/linxira-zeta.git",directory:"packages/ai"},bugs:{url:"https://github.com/can1357/oh-my-pi/issues"},keywords:["ai","llm","openai","anthropic","gemini","unified","api"],main:"./src/index.ts",types:"./src/index.ts",scripts:{check:"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit",lint:"biome lint .",test:"bun test --parallel",fix:"biome check --write --unsafe .",fmt:"biome format --write ."},dependencies:{"@bufbuild/protobuf":"^2.12.1","@linxiraos/pi-omptype":"1.0.2","@linxiraos/pi-catalog":"1.0.4","@linxiraos/pi-utils":"1.0.4","@linxiraos/pi-wire":"1.0.2"},devDependencies:{"@bufbuild/protoc-gen-es":"^2.12.1","@types/bun":"^1.3.14"},engines:{bun:">=1.3.14"},files:["src","README.md","CHANGELOG.md"],exports:{".":{types:"./src/index.ts",import:"./src/index.ts"},"./error":{types:"./src/error/index.ts",import:"./src/error/index.ts"},"./*":{types:"./src/*.ts",import:"./src/*.ts"},"./auth-broker":{types:"./src/auth-broker/index.ts",import:"./src/auth-broker/index.ts"},"./auth-broker/*":{types:"./src/auth-broker/*.ts",import:"./src/auth-broker/*.ts"},"./auth-gateway":{types:"./src/auth-gateway/index.ts",import:"./src/auth-gateway/index.ts"},"./auth-gateway/*":{types:"./src/auth-gateway/*.ts",import:"./src/auth-gateway/*.ts"},"./providers/*":{types:"./src/providers/*.ts",import:"./src/providers/*.ts"},"./providers/openai-codex/*":{types:"./src/providers/openai-codex/*.ts",import:"./src/providers/openai-codex/*.ts"},"./usage/*":{types:"./src/usage/*.ts",import:"./src/usage/*.ts"},"./utils/harmony-leak":{types:"./src/utils/harmony-leak.ts",import:"./src/utils/harmony-leak.ts"},"./dialect":{types:"./src/dialect/index.ts",import:"./src/dialect/index.ts"},"./utils/*":{types:"./src/utils/*.ts",import:"./src/utils/*.ts"},"./oauth":{types:"./src/registry/oauth/index.ts",import:"./src/registry/oauth/index.ts"},"./oauth/*":{types:"./src/registry/oauth/*.ts",import:"./src/registry/oauth/*.ts"},"./registry":{types:"./src/registry/index.ts",import:"./src/registry/index.ts"},"./registry/oauth":{types:"./src/registry/oauth/index.ts",import:"./src/registry/oauth/index.ts"},"./utils/schema":{types:"./src/utils/schema/index.ts",import:"./src/utils/schema/index.ts"},"./utils/schema/*":{types:"./src/utils/schema/*.ts",import:"./src/utils/schema/*.ts"},"./*.js":"./src/*.ts"}}});var uv0={};S0(uv0,{refreshKimiToken:()=>Q71,loginKimi:()=>z71,getKimiCommonHeaders:()=>VU});import*as BTi from"crypto";import*as xL from"fs";import*as qY from"os";import*as Yo0 from"path";import{scheduler as xTi}from"timers/promises";function fv0(){return g0.KIMI_CODE_OAUTH_HOST||g0.KIMI_OAUTH_HOST||W71}function iv0(i,n,h){return[i,n,h].filter(Boolean).join(" ").trim()}function X71(){let i=qY.platform(),n=qY.release(),h=qY.arch();if(i==="darwin")return iv0("macOS",n,h);if(i==="win32")return iv0("Windows",n,h);return iv0(i==="linux"?"Linux":i,n,h)}function Zo0(i,n=""){return i.replace(/[^\x20-\x7E]/g,"").trim()||n}async function b71(){let i=await fetch(`${fv0()}/api/oauth/device_authorization`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",...VU()},body:new URLSearchParams({client_id:hv0})});if(!i.ok){let o=await i.text();throw new t0(`Kimi device authorization failed: ${i.status} ${o}`,{kind:"device-auth",provider:"kimi",status:i.status})}let n=await i.json(),h=n.user_code,f=n.device_code,u=n.verification_uri,p=n.verification_uri_complete;if(!h||!f||!u)throw new t0("Kimi device authorization response missing required fields",{kind:"validation",provider:"kimi"});let g=typeof n.expires_in==="number"?n.expires_in*1000:k71,w=typeof n.interval==="number"&&n.interval>0?n.interval*1000:Y71;return{userCode:h,deviceCode:f,verificationUri:u,verificationUriComplete:p||u,expiresInMs:g,intervalMs:w}}function jTi(i,n){if(!i.access_token||typeof i.expires_in!=="number")throw new t0("Kimi token response missing required fields",{kind:"validation",provider:"kimi"});let h=i.refresh_token??n;if(!h)throw new t0("Kimi token response missing refresh token",{kind:"validation",provider:"kimi"});return{access:i.access_token,refresh:h,expires:Date.now()+i.expires_in*1000-G71}}async function J71(i,n,h,f){let u=Date.now()+h,p=Math.max(1000,n);while(Date.now()<u){if(f?.aborted)throw new Rn;let g=await fetch(`${fv0()}/api/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",...VU()},body:new URLSearchParams({client_id:hv0,device_code:i,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})}),w=await g.json();if(g.ok&&w.access_token)return jTi(w);let o=w.error;if(o==="authorization_pending"){await xTi.wait(p,{signal:f});continue}if(o==="slow_down"){p+=5000;let U=typeof w.interval==="number"?w.interval*1000:void 0;if(U&&U>p)p=U;await xTi.wait(p,{signal:f});continue}if(o==="expired_token")throw new t0("Kimi device authorization expired",{kind:"validation",provider:"kimi"});if(o==="access_denied")throw new t0("Kimi device authorization denied",{kind:"validation",provider:"kimi"});let c=w.error_description?`: ${w.error_description}`:"";throw new t0(`Kimi device flow failed: ${o??g.status}${c}`,{kind:"polling",provider:"kimi"})}throw new t0("Kimi device flow timed out",{kind:"timeout",provider:"kimi"})}async function z71(i){let n=await b71();return i.onAuth?.({url:n.verificationUriComplete,instructions:`Enter code: ${n.userCode}`}),J71(n.deviceCode,n.intervalMs,n.expiresInMs,i.signal)}async function Q71(i){let n=await fetch(`${fv0()}/api/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",...VU()},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:i,client_id:hv0})});if(!n.ok){let f=await n.json().catch(()=>{return}),u=f?.error_description?`: ${f.error_description}`:"";throw new t0(`Kimi token refresh failed: ${n.status}${u}`,{kind:"token-refresh",provider:"kimi",status:n.status})}let h=await n.json();return jTi(h,i)}var hv0="17e5f671-d194-4dfb-9706-5516cb48c098",W71="https://auth.kimi.com",Z71="kimi-device-id",Y71=5000,k71=900000,G71=300000,nv0=()=>{let i=Yo0.join(Ti(),Z71);try{let h=xL.readFileSync(i,"utf-8").trim();if(h)return nv0=()=>h,h}catch{}let n=BTi.randomUUID().replace(/-/g,"");try{xL.mkdirSync(Yo0.dirname(i),{recursive:!0}),xL.writeFileSync(i,`${n}
|
|
1000
1000
|
`,{mode:384})}catch{}return nv0=()=>n,n},VU=()=>{let i=Object.freeze({"User-Agent":`KimiCLI/${eM0.version}`,"X-Msh-Platform":"kimi_cli","X-Msh-Version":eM0.version,"X-Msh-Device-Name":Zo0(qY.hostname(),"unknown"),"X-Msh-Device-Model":Zo0(X71(),"unknown"),"X-Msh-Os-Version":Zo0(qY.version(),"unknown"),"X-Msh-Device-Id":Zo0(nv0(),"unknown")});return VU=()=>i,i};var BL=j(()=>{R();QTi();ki()});function ko0(i,n){let h=n instanceof Error?n.message:String(n);return{role:"assistant",content:[],errorMessage:h,api:i.api,provider:i.provider,model:i.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"error",timestamp:Date.now()}}function JI(i,n){if(i===void 0)return n;let h=Number(i);if(!Number.isFinite(h))return n;if(h<=0)return;return Math.trunc(h)}function jL(i=FTi){return JI(g0.PI_STREAM_IDLE_TIMEOUT_MS??g0.PI_OPENAI_STREAM_IDLE_TIMEOUT_MS,i)}function W8(i=FTi){return JI(g0.PI_OPENAI_STREAM_IDLE_TIMEOUT_MS??g0.PI_STREAM_IDLE_TIMEOUT_MS,i)}function FY(i,n=HTi){let h=i===void 0?n:Math.max(n,i);return JI(g0.PI_STREAM_FIRST_EVENT_TIMEOUT_MS,h)}function Z8(i,n=HTi){let h=g0.PI_OPENAI_STREAM_FIRST_EVENT_TIMEOUT_MS;if(h!==void 0)return JI(h,n)??0;let f=JI(g0.PI_STREAM_FIRST_EVENT_TIMEOUT_MS,n);if(f===void 0||f<=0)return 0;if(i===void 0||i<=0)return f;return Math.max(f,i)}function Kx(i,n){if(n===void 0||n<=0)return{signal:i,clear:()=>{}};let h=new AbortController,f=setTimeout(()=>{h.abort(new DOMException("The operation timed out.","TimeoutError"))},n);return f.unref?.(),{signal:i?AbortSignal.any([i,h.signal]):h.signal,clear:()=>clearTimeout(f)}}async function*d6(i,n){let h=n.firstItemTimeoutMs??n.idleTimeoutMs,f=h!==void 0&&h>0?Date.now()+h:void 0,u=n.abortSignal,p=i[Symbol.asyncIterator](),g=!1,w=()=>{if(g)return;g=!0;let $=p.return?.();if($)$.catch(()=>{})};if(u?.aborted)throw w(),qTi(u);let o=($)=>$.then((N)=>({kind:"next",result:N}),(N)=>({kind:"error",error:N})),c=!0,U=()=>{c=!1},W=($)=>{if(!n.isProgressItem)return!0;try{return n.isProgressItem($)}catch{return!0}},Z=Date.now(),Y=()=>{if(!n.hasPendingLocalWork)return!1;try{return n.hasPendingLocalWork()}catch{return!1}},k=()=>{if(c){if(f!==void 0&&h!==void 0)f=Date.now()+h}else Z=Date.now()},G=(h===void 0||h<=0)&&(n.idleTimeoutMs===void 0||n.idleTimeoutMs<=0),X,b,z;if(u){let{promise:$,resolve:N}=Promise.withResolvers();z=N,b=()=>z?.({kind:"abort"}),u.addEventListener("abort",b,{once:!0}),X=$}let J,Q,x=!1,q,H=1/0,F=()=>{if(c)return f;if(n.idleTimeoutMs!==void 0&&n.idleTimeoutMs>0)return Z+n.idleTimeoutMs;return},m=()=>{q=void 0,H=1/0;let $=F();if($===void 0)return;let N=$-Date.now();if(N>0){H=$,q=setTimeout(m,N);return}x=!0,Q?.({kind:"timeout"})},K=($)=>{if(J===void 0||x){let{promise:N,resolve:C}=Promise.withResolvers();J=N,Q=C,x=!1}if(q!==void 0){if(H<=$)return;clearTimeout(q)}H=$,q=setTimeout(m,Math.max(0,$-Date.now()))},A;try{let $=0;while(!0){if(++$%x71===0){if(X!==void 0&&!u.aborted){let{promise:a,resolve:y}=Promise.withResolvers();z=y,X=a}if(J!==void 0&&!x){let{promise:a,resolve:y}=Promise.withResolvers();Q=y,J=a}}let N;if(c){if(f!==void 0){if(N=f-Date.now(),N<=0){if(!Y())throw n.onFirstItemTimeout?.(),w(),new $u(n.firstItemErrorMessage??n.errorMessage);k(),N=f-Date.now()}}}else if(n.idleTimeoutMs!==void 0&&n.idleTimeoutMs>0){if(N=n.idleTimeoutMs-(Date.now()-Z),N<=0){if(!Y())throw n.onIdle?.(),w(),new $u(n.errorMessage);k(),N=n.idleTimeoutMs}}A??=o(p.next());let C=[A];if(!G&&N!==void 0&&N>0)K(Date.now()+N),C.push(J);if(X)C.push(X);let D=!1;try{let a=await Promise.race(C);if(a.kind==="next"||a.kind==="error")A=void 0;if(a.kind==="abort")throw w(),qTi(u);if(a.kind==="timeout"){if(Y()){k(),D=!0;continue}if(!c)n.onIdle?.();else n.onFirstItemTimeout?.();throw w(),new $u(!c?n.errorMessage:n.firstItemErrorMessage??n.errorMessage)}if(a.kind==="error")throw a.error;if(a.result.done){U();return}let y=a.result.value;if(W(y))U(),Z=Date.now();yield y,D=!0}finally{if(!D)w()}}}finally{if(q!==void 0)clearTimeout(q);if(Q?.({kind:"timeout"}),b&&u)u.removeEventListener("abort",b);z?.({kind:"abort"})}}async function*VTi(i,n){let h=i[Symbol.asyncIterator]();try{while(!0){let f=n.finishedAtMs();if(f===void 0){let o=await h.next();if(o.done)return;yield o.value;continue}let u=f+n.graceMs-Date.now();if(u<=0){n.onGraceEnd?.();return}let p=h.next(),g,w=new Promise((o)=>{g=setTimeout(()=>o("timeout"),u)});try{let o=await Promise.race([p,w]);if(o==="timeout"){p.catch(()=>{}),n.onGraceEnd?.();return}if(o.done)return;yield o.value}finally{if(g!==void 0)clearTimeout(g)}}}finally{let f=h.return?.();if(f)Promise.resolve(f).catch(()=>{})}}function qTi(i){let n=i.reason;if(n instanceof Error)return n;if(typeof n==="string")return new mn(n);return new mn}var FTi=300000,HTi=300000,x71=1024;var $U=j(()=>{R();ki()});function B71(i,n,h){let f={};i.headers.forEach((p,g)=>{f[g.toLowerCase()]=p});let u={status:i.status,headers:f};if(n!==void 0)u.requestId=n;if(h!==void 0)u.metadata=h;return u}async function xb(i,n,h,f,u){if(!i?.onResponse)return;await i.onResponse(B71(n,f,u),h)}function j71(i){if(i===void 0)return;if(!Number.isFinite(i))return;if(i<=0)return;return Math.trunc(i)}function pv0(i,n){let h=j71(n);if(h===void 0)return{signal:i};return{signal:i,timeout:h,maxRetries:0}}function TV(i,n){if(!i)return;try{i(n)}catch{}}import{scheduler as q71}from"timers/promises";function gv0(){return new mn("Request was aborted.")}function K71(i){let n=i.headers.get("x-should-retry");if(n==="true")return!0;if(n==="false")return!1;let h=i.status;return cU(h)||h===409}function $Ti(i){if(!i)return;let n=i.get("retry-after-ms");if(n){let f=Number.parseFloat(n);if(Number.isFinite(f)&&f>=0)return f}let h=i.get("retry-after");if(h){let f=Number.parseFloat(h);if(Number.isFinite(f)&&f>=0)return f*1000;let u=Date.parse(h)-Date.now();if(Number.isFinite(u)&&u>=0)return u}return}function ov0(i){let n=Math.min(V71*2**i,$71),h=1-Math.random()*0.25;return n*h*1000}function KTi(i,n){for(let h in i)if(h.toLowerCase()===n)return!0;return!1}class mTi{#i;#n;constructor(i){this.#i=i}asResponse(){return this.#n??=this.#i(),this.#n}}class wv0{#i;#n;constructor(i,n){this.#i=i,this.#n=n}create(i,n){return this.#i.request(this.#n,i,n)}}class cv0{messages;beta;#i;constructor(i){this.#i=i,this.messages=new wv0(this,"/v1/messages"),this.beta={messages:new wv0(this,"/v1/messages?beta=true")}}request(i,n,h){return new mTi(()=>this.#h(i,n,h))}#n(i){let n=this.#i,h=n.defaultHeaders??{},f={};if(n.apiKey!=null&&!KTi(h,"x-api-key"))f["X-Api-Key"]=n.apiKey;if(n.authToken!=null&&!KTi(h,"authorization"))f.Authorization=`Bearer ${n.authToken}`;return Object.assign(f,h),Object.assign(f,i),f}async#h(i,n,h){let f=this.#i,u=f.fetch??fetch,p=h?.signal,g=h?.timeout??f.timeout??F71,w=Math.max(0,h?.maxRetries??f.maxRetries??H71),o=h?.maxRetryDelayMs??f.maxRetryDelayMs??60000,c=`${f.baseURL??"https://api.anthropic.com"}${i}`,U=this.#n(h?.headers),W=JSON.stringify(n);for(let Z=0;;Z++){if(p?.aborted)throw gv0();let Y;try{Y=await this.#f(u,c,U,W,g,p)}catch(k){if(p?.aborted)throw gv0();if(Z<w){await this.#u(Z,void 0,p);continue}if(k instanceof vX)throw k;throw new Sa(k)}if(Y.ok)return Y;if(Z<w&&K71(Y)){let k=$Ti(Y.headers);if(k!==void 0&&o>0&&k>o)throw await rH.fromResponse(Y,p);await Y.body?.cancel().catch(()=>{}),await this.#u(Z,Y.headers,p);continue}throw await rH.fromResponse(Y,p)}}async#f(i,n,h,f,u,p){let g=new AbortController,w=!1,o=setTimeout(()=>{w=!0,g.abort()},u),c=()=>g.abort();p?.addEventListener("abort",c,{once:!0});try{return await i(n,{...this.#i.fetchOptions??{},method:"POST",headers:h,body:f,signal:g.signal})}catch(U){if(w&&!p?.aborted)throw new vX;throw U}finally{clearTimeout(o),p?.removeEventListener("abort",c)}}async#u(i,n,h){let f=$Ti(n)??ov0(i);try{await q71.wait(f,{signal:h})}catch{throw gv0()}}}var F71=600000,H71=2,V71=0.5,$71=8;var Uv0=j(()=>{ki();ki()});function mx(i){if(i.type==="server_tool_use")return i.name==="web_search"&&typeof i.id==="string"&&i.id.length>0;if(i.type==="web_search_tool_result")return typeof i.tool_use_id==="string"&&i.tool_use_id.length>0&&Object.hasOwn(i,"content");return!1}var Ydi={};S0(Ydi,{wrapFetchForCch:()=>$o0,stripClaudeToolPrefix:()=>Ao0,streamAnthropic:()=>y81,resolveAnthropicMetadataUserId:()=>mo0,resolveAnthropicCustomHeadersForBaseUrl:()=>Oo0,normalizeExtraBetas:()=>Hv0,normalizeAnthropicToolSchema:()=>Zdi,normalizeAnthropicBaseUrl:()=>Ox,maybeAddReplayUnsignedThinkingHint:()=>odi,mapStainlessArch:()=>rTi,isProviderRetryableError:()=>wdi,isInvalidThinkingSignatureError:()=>Fv0,isClaudeCloakingUserId:()=>Bv0,isAnthropicFastModeFallbackDisabled:()=>Jv0,generateClaudeCloakingUserId:()=>e71,deriveClaudeDeviceId:()=>Ko0,coworkUserAgent:()=>sC0,coworkHeaders:()=>Vo0,convertAnthropicMessages:()=>Wdi,clearAnthropicFastModeFallback:()=>Ho0,claudeToolPrefix:()=>eQ,claudeCodeVersion:()=>rQ,claudeCodeSystemInstruction:()=>rC0,buildBetaHeader:()=>qo0,buildAnthropicSystemBlocks:()=>No0,buildAnthropicHeaders:()=>Fo0,buildAnthropicClientOptions:()=>cdi,applyClaudeToolPrefix:()=>idi,applyAnthropicUsageExtras:()=>zo0,CLAUDE_CODE_MAX_OUTPUT_TOKENS:()=>D40});import*as HY from"crypto";import*as Bo0 from"fs";import{scheduler as m71}from"timers/promises";import*as jo0 from"tls";function Ox(i){let n=i?.trim();if(!n)return;let h=n.replace(/\/+$/,"");return h.endsWith("/v1")?h.slice(0,-3):h}function qo0(i,n){let h=new Set,f=[];for(let u of[...i,...n]){let p=u.trim();if(p&&!h.has(p))h.add(p),f.push(p)}return f.join(",")}function A71(i,n){for(let h in i)if(h.toLowerCase()==="anthropic-beta")return{[h]:qo0(Hv0(i[h]),[n])};return{"anthropic-beta":n}}function STi(i,n,h=!1){if(!i&&!h)return ATi;let f=[];for(let u of i?N71:ATi){if(h&&u===ETi)continue;f.push(u)}if(!i)return f;if(n)f.push(qL);return f.push(O71),f}function QI(i,n){if(!i)return;let h=n.toLowerCase();for(let[f,u]of Object.entries(i))if(f.toLowerCase()===h)return u;return}function L71(i){if(!i)return!1;return i.toLowerCase().startsWith("claude-cli")}function Fo0(i){let n=i.isOAuth??ZC(i.apiKey),h=i.extraBetas??[],f=i.stream??!1,u=QI(i.modelHeaders,"User-Agent"),p=QI(i.modelHeaders,"Authorization"),g=QI(i.modelHeaders,"X-Api-Key"),w=qo0(i.coworkBetas??(n?STi(!0,!0):[]),h),o=n?"application/json":f?"text/event-stream":"application/json",c=i.isCloudflareAiGateway??!1,U=!n&&!c,W=n&&i.allowAnthropicHeaderOverrides===!0&&!c&&!G9(i.baseUrl),Z=!c,Y={},k={},G=[],X=i.modelHeaders;if(X)for(let b in X){let z=X[b],J=b.toLowerCase();if(T71.has(J)){if(W&&d71.has(J)){k[b]=z;continue}if(J==="user-agent")continue;if(J==="authorization"&&U)continue;if(J==="x-api-key"&&Z)continue;G.push(b);continue}Y[b]=z}if(G.length>0)V.debug("anthropic: ignoring caller-supplied enforced headers",{headers:G});if(c)return{...Y,Accept:o,...Wv0,...u?{"User-Agent":u}:{},...w?{"anthropic-beta":w}:{},"cf-aig-authorization":`Bearer ${i.apiKey}`};if(n){let b=L71(u)?u:sC0,z={...Y,Accept:o,"Content-Type":"application/json","User-Agent":b,...i.claudeCodeSessionId?{"X-Claude-Code-Session-Id":i.claudeCodeSessionId}:{},...Vo0,...w?{"anthropic-beta":w}:{},"anthropic-dangerous-direct-browser-access":"true","anthropic-version":"2023-06-01",Authorization:`Bearer ${i.apiKey}`,"x-app":"cli","x-client-request-id":HY.randomUUID(),Connection:"keep-alive","Accept-Encoding":"gzip, deflate, br, zstd",...g?{"X-Api-Key":g}:{}};return W?xI(z,k):z}else if(!G9(i.baseUrl))return{...Y,Accept:o,Authorization:p??`Bearer ${i.apiKey}`,...Wv0,...u?{"User-Agent":u}:{},...w?{"anthropic-beta":w}:{},...g?{"X-Api-Key":g}:{}};else return{...Y,Accept:o,...Wv0,...u?{"User-Agent":u}:{},...w?{"anthropic-beta":w}:{},...p?{Authorization:p}:{},"X-Api-Key":g??i.apiKey}}function D71(i){let n=i.trim().toLowerCase();if(n==="image/jpg")return"image/jpeg";if(n==="image/jpeg"||n==="image/png"||n==="image/gif"||n==="image/webp")return n;return}function ITi(i){return{...i}}function _71(){let i={strictToolsDisabled:!1,fastModeDisabled:!1,replayUnsignedThinkingDisabled:!1,close:()=>{i.strictToolsDisabled=!1,i.fastModeDisabled=!1,i.replayUnsignedThinkingDisabled=!1}};return i}function lTi(i,n){return`${Xv0}:${i}\x00${n}`}function y71(i,n,h){if(!i)return;let f=lTi(n,h),u=i.get(f);if(u)return u;let p=_71();return i.set(f,p),p}function Ho0(i){if(!i)return;let n=`${Xv0}:`;for(let[h,f]of i){if(h!==Xv0&&!h.startsWith(n))continue;f.fastModeDisabled=!1}}function Jv0(i,n){if(!i||n.provider!=="anthropic"||n.api!=="anthropic-messages")return!1;let h=qv0(n)??"https://api.anthropic.com",f=lTi(h,n.id);return i.get(f)?.fastModeDisabled??!1}function M71(i){return i.tools?.some((n)=>n.strict===!0)??!1}function v71(i){delete i.speed}function R71(i){if(!i.tools)return;for(let n of i.tools)delete n.strict}function sTi(i,n){let h=L5(n,"short");if(h==="none")return{retention:h};let f=h==="long"&&i.compat.supportsLongCacheRetention?"1h":void 0;return{retention:h,cacheControl:{type:"ephemeral",...f&&{ttl:f}}}}function rTi(i){switch(i.toLowerCase()){case"amd64":case"x64":return"x64";case"arm64":case"aarch64":return"arm64";case"386":case"x86":case"ia32":return"x86";default:return`other::${i.toLowerCase()}`}}function t71(i){let n=[4,7,20].map((f)=>i[f]??"0").join(""),h=HY.createHash("sha256").update(`59cf53e54c78${n}${rQ}`).digest("hex").slice(0,3);return`${zv0} cc_version=${rQ}.${h}; cc_entrypoint=claude-desktop; ${Qv0};`}function I71(i){let n=Buffer.from(i.buffer,i.byteOffset,i.byteLength),h=n.indexOf(CTi);if(h===-1)return"no-billing-header";let f=h+CTi.length,u=n.indexOf(P71,f);if(u===-1||u-f>S71)return"unanchored";let g=(Bun.hash.xxHash64(i,E71)&0xfffffn).toString(16).padStart(5,"0");for(let w=0;w<5;w++)i[u+4+w]=g.charCodeAt(w);return"patched"}function $o0(i){return(n,h)=>{if(h?.body&&typeof h.body==="string"&&h.body.includes(Qv0)){let f=xv0.encode(h.body);if(I71(f)==="unanchored")V.warn("anthropic: cch billing placeholder present but not patched; sending unattested request");return i(n,{...h,body:f})}return i(n,h)}}function Bv0(i){return l71.test(i)}function s71(i){if(i.length===0||i[0]!=="{")return!1;let n;try{n=JSON.parse(i)}catch{return!1}if(!n||typeof n!=="object"||Array.isArray(n))return!1;let h=n;return typeof h.session_id==="string"&&h.session_id.length>0}function r71(i){if(typeof i!=="string")return;if(Bv0(i))return i.slice(i.lastIndexOf("_session_")+9);if(i.length===0||i[0]!=="{")return;let n;try{n=JSON.parse(i)}catch{return}if(!n||typeof n!=="object"||Array.isArray(n))return;let h=n.session_id;return typeof h==="string"&&h.length>0?h:void 0}function e71(){let i=HY.randomBytes(32).toString("hex"),n=HY.randomUUID().toLowerCase(),h=HY.randomUUID().toLowerCase();return`user_${i}_account_${n}_session_${h}`}function Ko0(i,n){let h=HY.createHash("sha256");if(n&&n.length>0)return h.update(n81).update("\x00").update(i).update("\x00").update(n).digest("hex");return h.update(i81).update(i).digest("hex")}function Jo0(i,n){let h=i?.[n];return typeof h==="string"&&h.length>0?h:void 0}function h81(i){return Jo0(i,"account_uuid")??Jo0(i,"accountId")??Jo0(i,"account_id")}function f81(i){return Ko0(MZ(),i)}function u81(i,n){let h={device_id:f81(n),session_id:i??HY.randomUUID().toLowerCase()};if(n&&n.length>0)h.account_uuid=n;return JSON.stringify(h)}function mo0(i,n,h,f){if(typeof i==="string"){if(!n||Bv0(i)||s71(i))return i}if(!n)return;return u81(h,f)}function LTi(i){let n=i?.trim().toLowerCase();return n==="native"||n==="exa"?n:void 0}function w81(i){let n=QI(i,eTi);if(n!==void 0)return LTi(n);return LTi(g0.UMANS_WEBSEARCH_PROVIDER)}function o81(i){return i.provider==="umans"||i.baseUrl.toLowerCase().includes("api.code.umans.ai")}function ndi(i,n){if(!o81(i))return;let h=w81(n);return h?{[eTi]:h}:void 0}function c81(i,n){return n&&i.toLowerCase()===g81}function jv0(i,n,h,f=!1){if(c81(i,f))return i;if(h)return`${eQ}${i}`;return n?idi(i):i}function U81(i,n,h){if(n||h)return Ao0(i);return i}function Z81(i){let n=0;for(let h of i){if(h.role!=="user"&&h.role!=="developer"&&h.role!=="toolResult")continue;if(!Array.isArray(h.content))continue;for(let f of h.content)if(f.type==="image")n++}return n}function k81(i){let n=0,h=[];return async(f)=>{if(n>=i){let{promise:u,resolve:p}=Promise.withResolvers();h.push(p),await u}else n++;try{return await f()}finally{let u=h.shift();if(u)u();else n--}}}async function G81(i){try{let n=Buffer.from(i.data,"base64"),{width:h,height:f}=await new Bun.Image(n).metadata();if(!h||!f)return i;if(h<=dV&&f<=dV)return i;let u=Math.min(dV/h,dV/f),p=Math.max(1,Math.min(dV,Math.round(h*u))),g=Math.max(1,Math.min(dV,Math.round(f*u))),[w,o]=await Promise.all([new Bun.Image(n).resize(p,g).png().bytes(),new Bun.Image(n).resize(p,g).jpeg({quality:85}).bytes()]),c=w.length<=o.length?{buffer:w,mimeType:"image/png"}:{buffer:o,mimeType:"image/jpeg"};return{type:"image",data:Buffer.from(c.buffer).toString("base64"),mimeType:c.mimeType}}catch(n){return V.warn("anthropic: failed to resize oversized image for many-image request",{mimeType:i.mimeType,error:n instanceof Error?n.message:String(n)}),i}}async function _Ti(i,n,h){let f=!1,u=await Promise.all(i.map(async(p)=>{if(p.type!=="image")return p;let g=DTi.get(p);if(g===void 0)g=await h(()=>G81(p)),DTi.set(p,g);if(g!==p)f=!0,n.resized++;return g}));return f?u:i}async function X81(i,n,h){if(i.role==="user"||i.role==="developer"){if(!Array.isArray(i.content))return i;let f=await _Ti(i.content,n,h);return f===i.content?i:{...i,content:f}}if(i.role==="toolResult"){let f=await _Ti(i.content,n,h);return f===i.content?i:{...i,content:f}}return i}async function b81(i,n){if(!n)return i;let h=Z81(i.messages);if(h<=W81)return i;let f=!1,u={resized:0},p=k81(Y81),g=await Promise.all(i.messages.map(async(w)=>{let o=await X81(w,u,p);if(o!==w)f=!0;return o}));if(!f)return i;return V.debug("anthropic: resized oversized images for many-image request",{imageCount:h,resized:u.resized,maxDimension:dV}),{...i,messages:g}}function hdi(i,n=!0){let h=[],f=!1,u=!1;for(let p of i){if(p.type==="text"){let w=p.text.toWellFormed();if(w.trim().length===0)continue;f=!0,h.push({type:"text",text:w});continue}if(!n){h.push({type:"text",text:XY});continue}let g=D71(p.mimeType);if(!g){h.push({type:"text",text:`[unsupported image: ${p.mimeType}]`});continue}u=!0,h.push({type:"image",source:{type:"base64",media_type:g,data:p.data}})}if(!n)return h.filter((p)=>p.type==="text").map((p)=>p.text).join(`
|
|
1001
1001
|
`).toWellFormed();if(u&&!f)h.unshift({type:"text",text:"(see attached image)"});return h}function Yv0(i){if(!i)return null;let n=i.trim();if(n&&!n.includes("-----BEGIN")&&udi(n))try{return`${n}@${Bo0.statSync(n).mtimeMs}`}catch{return n}return i}function J81(){return JSON.stringify([Yv0(g0.NODE_EXTRA_CA_CERTS),Yv0(g0.CLAUDE_CODE_CLIENT_CERT),Yv0(g0.CLAUDE_CODE_CLIENT_KEY)])}function qv0(i,n){if(i.provider==="github-copilot")return Ox(Xg0(i.baseUrl,n)??i.baseUrl);if(i.provider==="anthropic"&&uY()){let h=Ox(g0.FOUNDRY_BASE_URL);if(h)return h}if(i.provider==="anthropic"){let h=Ox(i.baseUrl);if(h&&!G9(h))return h;return Ox(g0.ANTHROPIC_BASE_URL)??h??"https://api.anthropic.com"}return Ox(i.baseUrl)}function fdi(i,n){if(!i.compat.supportsEagerToolInputStreaming)return!1;if(G9(n))return!0;return!i.compat.officialEndpoint}function z81(i){let n=i?.trim();if(!n)return;let h={};for(let f of n.split(/\r?\n|,/)){let u=f.trim();if(!u)continue;let p=u.indexOf(":");if(p<=0)continue;let g=u.slice(0,p).trim(),w=u.slice(p+1).trim();if(!g||!w)continue;h[g]=w}return Object.keys(h).length>0?h:void 0}function Oo0(i){if(!uY()&&G9(i))return;return z81(g0.ANTHROPIC_CUSTOM_HEADERS)}function Q81(i,n){if(i.provider!=="anthropic")return;return Oo0(n)}function udi(i){return i.includes("/")||i.includes("\\")||/\.(pem|crt|cer|key)$/i.test(i)}function kv0(i,n){let h=i?.trim();if(!h)return;let f=h.replace(/\\n/g,`
|
|
1002
1002
|
`);if(f.includes("-----BEGIN"))return f;if(udi(h))try{return Bo0.readFileSync(h,"utf8")}catch(u){if(w0(u))throw new Pn(`${n} path does not exist: ${h}`);throw u}return f}function x81(i){if(i.provider!=="anthropic")return;if(!uY())return;let n=J81();if(Zv0.has(n))return Zv0.get(n);let h=kv0(g0.NODE_EXTRA_CA_CERTS,"NODE_EXTRA_CA_CERTS"),f=kv0(g0.CLAUDE_CODE_CLIENT_CERT,"CLAUDE_CODE_CLIENT_CERT"),u=kv0(g0.CLAUDE_CODE_CLIENT_KEY,"CLAUDE_CODE_CLIENT_KEY");if(f&&!u||!f&&u)throw new ei("Both CLAUDE_CODE_CLIENT_CERT and CLAUDE_CODE_CLIENT_KEY must be set for mTLS.");let p={};if(h)p.ca=[...jo0.rootCertificates,h];if(f)p.cert=f;if(u)p.key=u;let g=Object.keys(p).length>0?p:void 0;return Zv0.set(n,g),g}function B81(i,n){if(i.provider!=="anthropic")return;if(!n)return;let h;try{h=new URL(n).hostname}catch{return}if(!h)return;let f=x81(i);return{tls:{rejectUnauthorized:!0,serverName:h,...yTi?{ciphers:yTi}:{},...f??{}}}}function xI(...i){let n={},h=new Map;for(let f of i){if(!f)continue;for(let[u,p]of Object.entries(f)){let g=u.toLowerCase(),w=h.get(g);if(w!==void 0&&w!==u)delete n[w];h.set(g,u),n[u]=p}}return n}function q81(i){try{let n=JSON.parse(i),h=typeof n?.error?.type==="string"?n.error.type:void 0,f=typeof n?.error?.message==="string"?n.error.message:void 0;if(f)return new Xn(h?`Anthropic stream error (${h}): ${f}`:`Anthropic stream error: ${f}`,{provider:"anthropic",kind:"output"})}catch{}return new Xn(i,{provider:"anthropic",kind:"output"})}async function*F81(i,n,h){if(!i.body)throw new hY("Attempted to iterate over an Anthropic response with no body");let f=!1,u=!1;for await(let p of iY(i.body,n)){if(TV(h,p),p.event==="error")throw q81(p.data);if(p.event==="ping"){yield j81;continue}if(!pdi.has(p.event??""))continue;try{let g=JSON.parse(p.data);if(g.type!==p.event)m2(`event type ${g.type} does not match SSE event ${p.event}`);if(g.type==="message_start")f=!0;else if(g.type==="message_stop")u=!0;yield g}catch(g){let w=g instanceof Error?g.message:String(g);m2(`could not parse SSE event ${p.event}: ${w}; skipping frame; data=${p.data}`)}}if(f&&!u&&!n?.aborted)m2("stream ended before message_stop")}function gdi(i){return h0(i)&&typeof i.asResponse==="function"}function H81(i){return h0(i)&&typeof i.withResponse==="function"}async function V81(i,n,h){if(gdi(i)){let f=await i.asResponse();return{events:F81(f,n,h),response:f,requestId:f.headers.get("request-id"),recordsRawSseEvents:!0}}if(H81(i)){let{data:f,response:u,request_id:p}=await i.withResponse();return{events:f,response:u,requestId:p,recordsRawSseEvents:!1}}throw new hY("Anthropic SDK request did not expose a stream response")}async function*$81(i,n){for await(let h of i){let f=JSON.stringify(h);TV(n,{event:h.type,data:f,raw:[`event: ${h.type}`,`data: ${f}`]}),yield h}}function m2(i){V.warn(`anthropic: ignoring malformed stream envelope: ${i}`)}function O81(i){if(typeof i!=="string")return!1;if(i==="ping")return!0;return!pdi.has(i)}function wdi(i,n){return SVi(i,{provider:n,isProviderTransient:n==="github-copilot"?(h)=>nV(h):void 0})}function N81(i){let n=i.trim(),h=!1;while(n.startsWith(MTi)&&n.endsWith(vTi))n=n.slice(MTi.length,n.length-vTi.length).trim(),h=!0;return h?n:void 0}function FL(i){return{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,...i===void 0?{}:{premiumRequests:i},cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}function zo0(i,n){let h=n.cache_creation;if(h!=null){let u=h.ephemeral_5m_input_tokens??0,p=h.ephemeral_1h_input_tokens??0;if(u>0||p>0)i.cttl={...u>0?{ephemeral5m:u}:{},...p>0?{ephemeral1h:p}:{}};else delete i.cttl}let f=n.server_tool_use;if(f!=null){let u=f.web_search_requests??0,p=f.web_fetch_requests??0;if(u>0||p>0)i.server={...u>0?{webSearch:u}:{},...p>0?{webFetch:p}:{}};else delete i.server}}function a81(i){if(!h0(i))return;let n=h0(i.cache_creation)?{...typeof i.cache_creation.ephemeral_5m_input_tokens==="number"?{ephemeral_5m_input_tokens:i.cache_creation.ephemeral_5m_input_tokens}:{},...typeof i.cache_creation.ephemeral_1h_input_tokens==="number"?{ephemeral_1h_input_tokens:i.cache_creation.ephemeral_1h_input_tokens}:{}}:void 0;return{...typeof i.input_tokens==="number"?{input_tokens:i.input_tokens}:{},...typeof i.output_tokens==="number"?{output_tokens:i.output_tokens}:{},...typeof i.cache_read_input_tokens==="number"?{cache_read_input_tokens:i.cache_read_input_tokens}:{},...typeof i.cache_creation_input_tokens==="number"?{cache_creation_input_tokens:i.cache_creation_input_tokens}:{},...n===void 0?{}:{cache_creation:n}}}function C81(i){if(!h0(i)||i.type!=="fallback")return;let n=h0(i.from)&&typeof i.from.model==="string"?i.from.model:void 0,h=h0(i.to)&&typeof i.to.model==="string"?i.to.model:void 0;if(!n?.trim()||!h?.trim())return;return{type:"fallback",from:{model:n},to:{model:h}}}function RTi(i){let n=i.iterations??[];for(let h=n.length-1;h>=0;h-=1){let f=n[h];if(f?.type==="fallback_message"&&f.model?.trim())return f.model}return}function L81(i,n){let h=n?.trim();if(!h||h===i.id)return i;if(i.provider==="anthropic"){let f=YC("anthropic",h);if(f?.api==="anthropic-messages")return f}return i}function TTi(i,n,h){let f=h.iterations??[];if(f.length===0)return!1;let u={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},p=f.some((w)=>w.type==="fallback_message"),g=!1;for(let w of f){let o=w.input_tokens??0,c=w.output_tokens??0,U=w.cache_read_input_tokens??0,W=w.cache_creation_input_tokens??0,Z=w.type==="fallback_message";if(p&&!Z&&c===0&&W===0)continue;let Y=FL();if(Z)Y.input=0,Y.cacheRead=U+o;else Y.input=o,Y.cacheRead=U;Y.output=c,Y.cacheWrite=W,Y.totalTokens=Y.input+Y.output+Y.cacheRead+Y.cacheWrite,mu(L81(i,w.model),Y),u.input+=Y.cost.input,u.output+=Y.cost.output,u.cacheRead+=Y.cost.cacheRead,u.cacheWrite+=Y.cost.cacheWrite,u.total+=Y.cost.total,g=!0}if(!g)return!1;return n.cost=u,!0}function Fv0(i){return D81.test(i)}function odi(i,n){if(!Fv0(n))return n;if(i.compat.officialEndpoint)return n;if(i.compatConfig?.replayUnsignedThinking!==void 0)return n;return`${`Provider "${i.provider}" looks like an Anthropic-compatible signing proxy: it rejected a replayed unsigned thinking block. Set \`compat.replayUnsignedThinking: false\` under \`providers.${i.provider}\` in your models.yml and retry. See https://github.com/can1357/oh-my-pi/issues/4297.`}
|
|
@@ -3538,7 +3538,7 @@ Return JSON in this exact format:
|
|
|
3538
3538
|
|
|
3539
3539
|
User message: {text}
|
|
3540
3540
|
|
|
3541
|
-
Extraction:`;zY0=["fact","text","content","value","statement"],eif=["instruction","rule",...zY0],inf=["preference",...zY0],nnf=["description","event","timeline","date",...zY0]});function onf(i){return Object.hasOwn(wnf,i)}function _Xn(i,n="veracity"){if(i===null||i===void 0)return"unknown";let h=String(i).trim().toLowerCase();if(h==="")return"unknown";if(onf(h))return h;let f=String(i),u=f.length>DXn?`${f.slice(0,DXn)}...[truncated]`:f;return console.warn(`${n} received unknown veracity ${JSON.stringify(u)}; clamping to 'unknown'`),"unknown"}var JPu,wnf,DXn=80,zPu;var yXn=j(()=>{xW();JPu=Object.freeze({stated:1,inferred:0.7,tool:0.5,imported:0.6,unknown:0.8}),wnf=Object.freeze({stated:!0,inferred:!0,tool:!0,imported:!0,unknown:!0}),zPu=Symbol("mnemopi.veracity.txDepth")});var MXn=()=>{};import*as W0i from"path";async function vXn(i,n="local_cache"){let h=Unf[i];if(h===void 0)return!1;let f=W0i.join(n,i);for(let u of cnf){let p=W0i.join(f,u);if(await Bun.file(p).exists())continue;let g=await fetch(`https://huggingface.co/${h}/resolve/main/${u}`);if(!g.ok)throw Error(`Failed to download ${i} ${u} from ${h}: ${g.status} ${g.statusText}`);await Bun.write(p,await g.arrayBuffer())}return!0}var cnf,Unf;var RXn=j(()=>{cnf=["config.json","tokenizer.json","tokenizer_config.json","special_tokens_map.json"],Unf={"fast-all-MiniLM-L6-v2":"sentence-transformers/all-MiniLM-L6-v2","fast-bge-base-en":"BAAI/bge-base-en","fast-bge-base-en-v1.5":"BAAI/bge-base-en-v1.5","fast-bge-small-en":"BAAI/bge-small-en","fast-bge-small-en-v1.5":"BAAI/bge-small-en-v1.5","fast-bge-small-zh-v1.5":"BAAI/bge-small-zh-v1.5","fast-multilingual-e5-large":"intfloat/multilingual-e5-large"}});var dXn;var TXn=j(()=>{dXn={type:"module",name:"@linxiraos/pi-mnemopi",version:"1.0.3",description:"Local SQLite memory engine for Oh My Pi agents",homepage:"https://linxira-os.github.io",author:"Can Boluk",contributors:["Abdias J"],license:"MIT",repository:{type:"git",url:"git+https://github.com/Linxira-OS/linxira-zeta.git",directory:"packages/mnemopi"},bugs:{url:"https://github.com/can1357/oh-my-pi/issues"},keywords:["memory","sqlite","agent","embeddings","mcp"],main:"./src/index.ts",module:"./src/index.ts",types:"./src/index.ts",bin:{mnemopi:"src/cli.ts"},scripts:{check:"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit",lint:"biome lint .",test:"bun test --parallel",fix:"biome check --write --unsafe .",fmt:"biome format --write ."},dependencies:{"@linxiraos/pi-ai":"1.0.3","@linxiraos/pi-catalog":"1.0.3","@linxiraos/pi-natives":"1.0.3","@linxiraos/pi-utils":"1.0.3"},peerDependencies:{fastembed:"2.1.0","onnxruntime-node":"1.21.0"},peerDependenciesMeta:{fastembed:{optional:!0},"onnxruntime-node":{optional:!0}},devDependencies:{"@types/bun":"^1.3.14",fastembed:"2.1.0","onnxruntime-node":"1.26.0"},engines:{bun:">=1.3.14"},files:["src","README.md","CHANGELOG.md"],exports:{".":{types:"./src/index.ts",import:"./src/index.ts"},"./core":{types:"./src/core/index.ts",import:"./src/core/index.ts"},"./core/beam":{types:"./src/core/beam/index.ts",import:"./src/core/beam/index.ts"},"./beam":{types:"./src/core/beam/index.ts",import:"./src/core/beam/index.ts"},"./diagnose":{types:"./src/diagnose.ts",import:"./src/diagnose.ts"},"./mcp":{types:"./src/mcp-tools.ts",import:"./src/mcp-tools.ts"},"./cli":{types:"./src/cli.ts",import:"./src/cli.ts"},"./*":{types:"./src/*.ts",import:"./src/*.ts"},"./*.js":"./src/*.ts"}}});import{createRequire as tXn}from"module";import*as hg from"path";function Znf(){return{versionKey:`fastembed-${xY0}_transitive-ort`.replace(/[^A-Za-z0-9._-]/g,"_"),install:{dependencies:{fastembed:xY0},trustedDependencies:["onnxruntime-node"]}}}async function Ynf({fastembedEntry:i,fastembedPackageDir:n,arch:h=process.arch,env:f=process.env}){let u=hg.join(n,"node_modules"),p=hg.dirname(n),g=o3(u,"onnxruntime-node"),w=g??o3(p,"onnxruntime-node"),o=hg.join(g?u:p,"onnxruntime-node");if(!w)throw Error(`Cannot find module onnxruntime-node beside ${i}`);let c=new Bun.Glob(`bin/napi-*/win32/${h}/onnxruntime.dll`),U;for await(let k of c.scan({cwd:o,absolute:!0,onlyFiles:!0})){U=hg.dirname(k);break}if(!U)throw Error(`Cannot find module onnxruntime-node Windows DLL for ${h} beside ${w}`);let W=f.PATH,Z=hg.resolve(U).toLowerCase();if(!W?.split(hg.delimiter).some((k)=>hg.resolve(k).toLowerCase()===Z))f.PATH=W?`${U}${hg.delimiter}${W}`:U;return{ortEntry:w,ortPackageDir:o,dllDir:U}}function EXn(){return Z0i??=knf().catch((i)=>{throw Z0i=null,i}),Z0i}async function knf(){try{let i=tXn(import.meta.url),n=i.resolve("fastembed/package.json"),h=i(n);if(h.version!==xY0)throw Error(`Cannot find package fastembed@${xY0}; resolved ${String(h.version)}`);return await PXn(i.resolve("fastembed"),hg.dirname(n))}catch(i){if(!Xnf(i))throw i;return V.debug("mnemopi: fastembed not loadable, using on-demand runtime install",{error:String(i)}),Gnf()}}async function PXn(i,n){let h=tXn(i);if(process.platform==="win32"){let{ortEntry:u}=await Ynf({fastembedEntry:i,fastembedPackageDir:n});h(u)}return h(i)}async function Gnf(){let i=Znf(),n=await DQ({runtimeDir:hg.join(bxi(),i.versionKey),install:i.install,probePackage:"fastembed"}),h=hg.join(n,"node_modules");_30({runtimeNodeModules:h});let f=o3(h,"fastembed");if(!f)throw Error(`fastembed runtime install at ${n} has no loadable entry`);return PXn(f,hg.join(h,"fastembed"))}function Xnf(i){if(typeof i!=="object"||i===null)return!1;let{name:n,code:h,message:f}=i;if(n==="ResolveMessage")return!0;if(h==="ERR_MODULE_NOT_FOUND"||h==="MODULE_NOT_FOUND"||h==="ERR_DLOPEN_FAILED")return!0;return typeof f==="string"&&/cannot find (module|package)/i.test(f)}var xY0,Z0i=null;var SXn=j(()=>{R();TXn();xY0=dXn.peerDependencies.fastembed});function Sy(i,n){let h=i.length>n.length?i.length:n.length;if(h===0)return 0;let f=0,u=0,p=0;for(let g=0;g<h;g+=1){let w=i[g]??0,o=n[g]??0,c=Number.isFinite(w)?w:0,U=Number.isFinite(o)?o:0;f+=c*U,u+=c*c,p+=U*U}if(u===0||p===0)return 0;return f/(Math.sqrt(u)*Math.sqrt(p))}import{mkdirSync as bnf}from"fs";import*as re from"fs/promises";import*as Dk from"path";async function sXn(i,n){let h=/Load model from (.+?\.onnx) failed:.*Protobuf parsing failed/i.exec(i);if(!h)return!1;let f=Dk.resolve(h[1]),u=Dk.resolve(n??KE());if(!f.startsWith(u+Dk.sep))return!1;try{await re.rename(f,`${f}.corrupt-${Date.now()}`),V.warn("mnemopi: quarantined corrupt local embedding model; retrying init",{modelFile:f})}catch{}return!0}async function rXn(i,n){let h=/Model file not found at (.+?\.onnx)\b/i.exec(i);if(!h)return!1;let f=Dk.resolve(h[1]),u=Dk.dirname(f),p=Dk.resolve(n??KE());if(Dk.dirname(u)!==p)return!1;try{await re.rm(u,{recursive:!0,force:!0}),await re.rm(`${u}.tar.gz`,{force:!0}),V.warn("mnemopi: cleared incomplete local embedding model cache; re-downloading",{modelDir:u})}catch{}return!0}async function Fj(i){let n=i.cacheDir??KE(),h=i.cacheDir===void 0?{...i,cacheDir:n}:i,{FlagEmbedding:f}=await EXn(),u=async()=>{try{return await f.init(h)}catch(p){let g=p instanceof Error?p.message:"";if(!Qnf.test(g))throw p;if(!await vXn(i.model,n))throw p;return f.init(h)}};try{return await u()}catch(p){let g=p instanceof Error?p.message:"";if(/Protobuf parsing failed/i.test(g)&&await sXn(g,n))return u();if(await rXn(g,n))return u();throw p}}function AJ(){return Lk()?.embeddings}function G0i(i){let n=AJ(),h=n?.provider,f=0;if(h!==void 0){let g=IXn.get(h);if(g===void 0)f=znf++,IXn.set(h,f);else f=g}let u=mJ(),p=n?.apiUrl??"";return`${f}::${u}::${p}::${i}`}function eXn(){return g0.NODE_ENV==="test"||g0.BUN_ENV==="test"}function pm(){let i=AJ();if(i?.disabled!==void 0)return i.disabled;return Jh("MNEMOPI_NO_EMBEDDINGS")}function xnf(){let i=AJ()?.maxInputChars;if(i!==void 0)return Math.max(0,Math.trunc(i));let n=Number.parseInt(g0.MNEMOPI_EMBEDDING_MAX_INPUT_CHARS??"",10);if(Number.isFinite(n)&&n>=0)return n;return 8192}function Bnf(i,n){if(i.length<=n)return i;if(n<=Y0i.length+16)return i.slice(i.length-n);let h=n-Y0i.length,f=h>>>1,u=h-f;return i.slice(0,f)+Y0i+i.slice(i.length-u)}function jnf(i){let n=xnf();if(n===0)return i;let h=null,f=0,u=0;for(let p=0;p<i.length;p++){let g=i[p]??"";if(g.length<=n)continue;if(h===null)h=i.slice();if(h[p]=Bnf(g,n),f++,g.length>u)u=g.length}if(h===null)return i;return V[ty()?"warn":"debug"]("mnemopi: embedding input truncated",{inputCount:i.length,trimmedCount:f,maxOriginalLen:u,maxInputChars:n}),h}function ibn(){let i=AJ();if(i?.apiKey!==void 0)return i.apiKey;return g0.MNEMOPI_EMBEDDING_API_KEY||g0.OPENROUTER_API_KEY||g0.OPENAI_API_KEY||""}function J0i(i=ibn()){return typeof i==="function"||i!==""}function qnf(){let i=AJ();if(i?.apiUrl!==void 0)return i.apiUrl;return g0.MNEMOPI_EMBEDDING_API_URL||g0.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1"}function mJ(){let i=AJ();if(i?.model!==void 0)return i.model;return g0.MNEMOPI_EMBEDDING_MODEL||"BAAI/bge-small-en-v1.5"}function ee(){return mJ()}function BY0(i){if(i.startsWith("openai/")||i.includes("text-embedding")||i.startsWith("text-embedding"))return!0;let h=AJ()?.apiUrl??(g0.MNEMOPI_EMBEDDING_API_URL||g0.OPENROUTER_BASE_URL);if(h!==void 0&&h!==""&&!hf(h,"openrouter"))return!0;return Jh("MNEMOPI_EMBEDDINGS_VIA_API")}function nbn(i){let n=Number.parseInt(g0.MNEMOPI_EMBEDDING_DIM??"",10);if(Number.isFinite(n))return n;return Fnf[i]??384}async function k0i(i){let n=[];for await(let h of i)for(let f of h)n.push(new Float32Array(f));return n}function hbn(i){let n=Hnf[i];return n===void 0?null:n}async function Vnf(){if(BY0(mJ())||pm()||eXn())return null;if(fm!==null)return fm;let i=hbn(mJ());if(i===null)return null;let n=KE();bnf(n,{recursive:!0});let h=X0i({model:i,cacheDir:n,showDownloadProgress:!1});fm=h;try{return await h}catch(f){if(V[ty()?"warn":"debug"]("mnemopi: local embedding model failed to load",{model:i,error:String(f)}),fm===h)fm=null;return null}}async function $nf(i){let n=qnf(),h=!hf(n,"openrouter"),f=ibn();if(!h&&!J0i(f))return null;let u=JSON.stringify({model:mJ(),input:i});try{let p=await hh(f,async(w)=>{let o={"Content-Type":"application/json",...tC()};if(w!=="")o.Authorization=`Bearer ${w}`;let c=await a4(`${n.replace(/\/+$/,"")}/embeddings`,{method:"POST",headers:o,body:u,signal:AbortSignal.timeout(30000),maxAttempts:3,defaultDelayMs:(U)=>2**U*1000});if(c.status===401)throw new Gn("mnemopi embedding request unauthorized (401)",401,{headers:c.headers});return c});if(!p.ok)return null;let{data:g}=await p.json();if(g===void 0)return null;return b0i+=1,g.map((w)=>new Float32Array(w.embedding))}catch(p){return V.debug("mnemopi embedding request failed",{status:g3(p)}),null}}async function lXn(i){if(i.available===void 0)return!0;try{return await i.available()}catch{return!1}}function fbn(i){Iy=i??null,um.clear()}function ubn(i){X0i=i??Fj,fm=null,um.clear()}function pbn(){Iy=null,fm=null,X0i=Fj,b0i=0,um.clear()}async function Anf(){if(pm())return!1;let i=AJ(),n=Se(i?.provider);if(n!==void 0)return lXn(n);if(Iy!==null)return lXn(Iy);if(BY0(mJ())){let h=i?.apiUrl??(g0.MNEMOPI_EMBEDDING_API_URL||g0.OPENROUTER_BASE_URL);if(h!==void 0&&h!==""&&!hf(h,"openrouter"))return!0;return J0i()}if(eXn())return!1;return hbn(mJ())!==null}function Onf(){return J0i()}async function Q0i(i){if(i===""||pm())return null;let n=G0i(i),h=um.get(n);if(h!==void 0)return h;let u=(await jY0([i]))?.[0]??null;if(u!==null)um.set(n,u);return u}async function jY0(i){if(i.length===0||pm())return null;i=jnf(i);let n=Se(AJ()?.provider);if(n!==void 0)try{return await k0i(await n.embed(i))}catch{return null}if(Iy!==null)try{return await k0i(await Iy.embed(i))}catch{return null}if(BY0(mJ()))return $nf(i);if(i.length===1){let f=G0i(i[0]??""),u=um.get(f);if(u!==void 0)return[u]}let h=await Vnf();if(h===null)return null;try{let f=await k0i(h.embed([...i]));if(f.length===1){let u=f[0];if(u!==void 0)um.set(G0i(i[0]??""),u)}return f}catch(f){return V[ty()?"warn":"debug"]("mnemopi: local embedding failed",{textCount:i.length,error:String(f)}),null}}function Nnf(){return b0i}var Jnf=512,Iy=null,fm=null,X0i,b0i=0,um,IXn,znf=1,Qnf,Y0i=`
|
|
3541
|
+
Extraction:`;zY0=["fact","text","content","value","statement"],eif=["instruction","rule",...zY0],inf=["preference",...zY0],nnf=["description","event","timeline","date",...zY0]});function onf(i){return Object.hasOwn(wnf,i)}function _Xn(i,n="veracity"){if(i===null||i===void 0)return"unknown";let h=String(i).trim().toLowerCase();if(h==="")return"unknown";if(onf(h))return h;let f=String(i),u=f.length>DXn?`${f.slice(0,DXn)}...[truncated]`:f;return console.warn(`${n} received unknown veracity ${JSON.stringify(u)}; clamping to 'unknown'`),"unknown"}var JPu,wnf,DXn=80,zPu;var yXn=j(()=>{xW();JPu=Object.freeze({stated:1,inferred:0.7,tool:0.5,imported:0.6,unknown:0.8}),wnf=Object.freeze({stated:!0,inferred:!0,tool:!0,imported:!0,unknown:!0}),zPu=Symbol("mnemopi.veracity.txDepth")});var MXn=()=>{};import*as W0i from"path";async function vXn(i,n="local_cache"){let h=Unf[i];if(h===void 0)return!1;let f=W0i.join(n,i);for(let u of cnf){let p=W0i.join(f,u);if(await Bun.file(p).exists())continue;let g=await fetch(`https://huggingface.co/${h}/resolve/main/${u}`);if(!g.ok)throw Error(`Failed to download ${i} ${u} from ${h}: ${g.status} ${g.statusText}`);await Bun.write(p,await g.arrayBuffer())}return!0}var cnf,Unf;var RXn=j(()=>{cnf=["config.json","tokenizer.json","tokenizer_config.json","special_tokens_map.json"],Unf={"fast-all-MiniLM-L6-v2":"sentence-transformers/all-MiniLM-L6-v2","fast-bge-base-en":"BAAI/bge-base-en","fast-bge-base-en-v1.5":"BAAI/bge-base-en-v1.5","fast-bge-small-en":"BAAI/bge-small-en","fast-bge-small-en-v1.5":"BAAI/bge-small-en-v1.5","fast-bge-small-zh-v1.5":"BAAI/bge-small-zh-v1.5","fast-multilingual-e5-large":"intfloat/multilingual-e5-large"}});var dXn;var TXn=j(()=>{dXn={type:"module",name:"@linxiraos/pi-mnemopi",version:"1.0.4",description:"Local SQLite memory engine for Oh My Pi agents",homepage:"https://linxira-os.github.io",author:"Can Boluk",contributors:["Abdias J"],license:"MIT",repository:{type:"git",url:"git+https://github.com/Linxira-OS/linxira-zeta.git",directory:"packages/mnemopi"},bugs:{url:"https://github.com/can1357/oh-my-pi/issues"},keywords:["memory","sqlite","agent","embeddings","mcp"],main:"./src/index.ts",module:"./src/index.ts",types:"./src/index.ts",bin:{mnemopi:"src/cli.ts"},scripts:{check:"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit",lint:"biome lint .",test:"bun test --parallel",fix:"biome check --write --unsafe .",fmt:"biome format --write ."},dependencies:{"@linxiraos/pi-ai":"1.0.4","@linxiraos/pi-catalog":"1.0.4","@linxiraos/pi-natives":"1.0.2","@linxiraos/pi-utils":"1.0.4"},peerDependencies:{fastembed:"2.1.0","onnxruntime-node":"1.21.0"},peerDependenciesMeta:{fastembed:{optional:!0},"onnxruntime-node":{optional:!0}},devDependencies:{"@types/bun":"^1.3.14",fastembed:"2.1.0","onnxruntime-node":"1.26.0"},engines:{bun:">=1.3.14"},files:["src","README.md","CHANGELOG.md"],exports:{".":{types:"./src/index.ts",import:"./src/index.ts"},"./core":{types:"./src/core/index.ts",import:"./src/core/index.ts"},"./core/beam":{types:"./src/core/beam/index.ts",import:"./src/core/beam/index.ts"},"./beam":{types:"./src/core/beam/index.ts",import:"./src/core/beam/index.ts"},"./diagnose":{types:"./src/diagnose.ts",import:"./src/diagnose.ts"},"./mcp":{types:"./src/mcp-tools.ts",import:"./src/mcp-tools.ts"},"./cli":{types:"./src/cli.ts",import:"./src/cli.ts"},"./*":{types:"./src/*.ts",import:"./src/*.ts"},"./*.js":"./src/*.ts"}}});import{createRequire as tXn}from"module";import*as hg from"path";function Znf(){return{versionKey:`fastembed-${xY0}_transitive-ort`.replace(/[^A-Za-z0-9._-]/g,"_"),install:{dependencies:{fastembed:xY0},trustedDependencies:["onnxruntime-node"]}}}async function Ynf({fastembedEntry:i,fastembedPackageDir:n,arch:h=process.arch,env:f=process.env}){let u=hg.join(n,"node_modules"),p=hg.dirname(n),g=o3(u,"onnxruntime-node"),w=g??o3(p,"onnxruntime-node"),o=hg.join(g?u:p,"onnxruntime-node");if(!w)throw Error(`Cannot find module onnxruntime-node beside ${i}`);let c=new Bun.Glob(`bin/napi-*/win32/${h}/onnxruntime.dll`),U;for await(let k of c.scan({cwd:o,absolute:!0,onlyFiles:!0})){U=hg.dirname(k);break}if(!U)throw Error(`Cannot find module onnxruntime-node Windows DLL for ${h} beside ${w}`);let W=f.PATH,Z=hg.resolve(U).toLowerCase();if(!W?.split(hg.delimiter).some((k)=>hg.resolve(k).toLowerCase()===Z))f.PATH=W?`${U}${hg.delimiter}${W}`:U;return{ortEntry:w,ortPackageDir:o,dllDir:U}}function EXn(){return Z0i??=knf().catch((i)=>{throw Z0i=null,i}),Z0i}async function knf(){try{let i=tXn(import.meta.url),n=i.resolve("fastembed/package.json"),h=i(n);if(h.version!==xY0)throw Error(`Cannot find package fastembed@${xY0}; resolved ${String(h.version)}`);return await PXn(i.resolve("fastembed"),hg.dirname(n))}catch(i){if(!Xnf(i))throw i;return V.debug("mnemopi: fastembed not loadable, using on-demand runtime install",{error:String(i)}),Gnf()}}async function PXn(i,n){let h=tXn(i);if(process.platform==="win32"){let{ortEntry:u}=await Ynf({fastembedEntry:i,fastembedPackageDir:n});h(u)}return h(i)}async function Gnf(){let i=Znf(),n=await DQ({runtimeDir:hg.join(bxi(),i.versionKey),install:i.install,probePackage:"fastembed"}),h=hg.join(n,"node_modules");_30({runtimeNodeModules:h});let f=o3(h,"fastembed");if(!f)throw Error(`fastembed runtime install at ${n} has no loadable entry`);return PXn(f,hg.join(h,"fastembed"))}function Xnf(i){if(typeof i!=="object"||i===null)return!1;let{name:n,code:h,message:f}=i;if(n==="ResolveMessage")return!0;if(h==="ERR_MODULE_NOT_FOUND"||h==="MODULE_NOT_FOUND"||h==="ERR_DLOPEN_FAILED")return!0;return typeof f==="string"&&/cannot find (module|package)/i.test(f)}var xY0,Z0i=null;var SXn=j(()=>{R();TXn();xY0=dXn.peerDependencies.fastembed});function Sy(i,n){let h=i.length>n.length?i.length:n.length;if(h===0)return 0;let f=0,u=0,p=0;for(let g=0;g<h;g+=1){let w=i[g]??0,o=n[g]??0,c=Number.isFinite(w)?w:0,U=Number.isFinite(o)?o:0;f+=c*U,u+=c*c,p+=U*U}if(u===0||p===0)return 0;return f/(Math.sqrt(u)*Math.sqrt(p))}import{mkdirSync as bnf}from"fs";import*as re from"fs/promises";import*as Dk from"path";async function sXn(i,n){let h=/Load model from (.+?\.onnx) failed:.*Protobuf parsing failed/i.exec(i);if(!h)return!1;let f=Dk.resolve(h[1]),u=Dk.resolve(n??KE());if(!f.startsWith(u+Dk.sep))return!1;try{await re.rename(f,`${f}.corrupt-${Date.now()}`),V.warn("mnemopi: quarantined corrupt local embedding model; retrying init",{modelFile:f})}catch{}return!0}async function rXn(i,n){let h=/Model file not found at (.+?\.onnx)\b/i.exec(i);if(!h)return!1;let f=Dk.resolve(h[1]),u=Dk.dirname(f),p=Dk.resolve(n??KE());if(Dk.dirname(u)!==p)return!1;try{await re.rm(u,{recursive:!0,force:!0}),await re.rm(`${u}.tar.gz`,{force:!0}),V.warn("mnemopi: cleared incomplete local embedding model cache; re-downloading",{modelDir:u})}catch{}return!0}async function Fj(i){let n=i.cacheDir??KE(),h=i.cacheDir===void 0?{...i,cacheDir:n}:i,{FlagEmbedding:f}=await EXn(),u=async()=>{try{return await f.init(h)}catch(p){let g=p instanceof Error?p.message:"";if(!Qnf.test(g))throw p;if(!await vXn(i.model,n))throw p;return f.init(h)}};try{return await u()}catch(p){let g=p instanceof Error?p.message:"";if(/Protobuf parsing failed/i.test(g)&&await sXn(g,n))return u();if(await rXn(g,n))return u();throw p}}function AJ(){return Lk()?.embeddings}function G0i(i){let n=AJ(),h=n?.provider,f=0;if(h!==void 0){let g=IXn.get(h);if(g===void 0)f=znf++,IXn.set(h,f);else f=g}let u=mJ(),p=n?.apiUrl??"";return`${f}::${u}::${p}::${i}`}function eXn(){return g0.NODE_ENV==="test"||g0.BUN_ENV==="test"}function pm(){let i=AJ();if(i?.disabled!==void 0)return i.disabled;return Jh("MNEMOPI_NO_EMBEDDINGS")}function xnf(){let i=AJ()?.maxInputChars;if(i!==void 0)return Math.max(0,Math.trunc(i));let n=Number.parseInt(g0.MNEMOPI_EMBEDDING_MAX_INPUT_CHARS??"",10);if(Number.isFinite(n)&&n>=0)return n;return 8192}function Bnf(i,n){if(i.length<=n)return i;if(n<=Y0i.length+16)return i.slice(i.length-n);let h=n-Y0i.length,f=h>>>1,u=h-f;return i.slice(0,f)+Y0i+i.slice(i.length-u)}function jnf(i){let n=xnf();if(n===0)return i;let h=null,f=0,u=0;for(let p=0;p<i.length;p++){let g=i[p]??"";if(g.length<=n)continue;if(h===null)h=i.slice();if(h[p]=Bnf(g,n),f++,g.length>u)u=g.length}if(h===null)return i;return V[ty()?"warn":"debug"]("mnemopi: embedding input truncated",{inputCount:i.length,trimmedCount:f,maxOriginalLen:u,maxInputChars:n}),h}function ibn(){let i=AJ();if(i?.apiKey!==void 0)return i.apiKey;return g0.MNEMOPI_EMBEDDING_API_KEY||g0.OPENROUTER_API_KEY||g0.OPENAI_API_KEY||""}function J0i(i=ibn()){return typeof i==="function"||i!==""}function qnf(){let i=AJ();if(i?.apiUrl!==void 0)return i.apiUrl;return g0.MNEMOPI_EMBEDDING_API_URL||g0.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1"}function mJ(){let i=AJ();if(i?.model!==void 0)return i.model;return g0.MNEMOPI_EMBEDDING_MODEL||"BAAI/bge-small-en-v1.5"}function ee(){return mJ()}function BY0(i){if(i.startsWith("openai/")||i.includes("text-embedding")||i.startsWith("text-embedding"))return!0;let h=AJ()?.apiUrl??(g0.MNEMOPI_EMBEDDING_API_URL||g0.OPENROUTER_BASE_URL);if(h!==void 0&&h!==""&&!hf(h,"openrouter"))return!0;return Jh("MNEMOPI_EMBEDDINGS_VIA_API")}function nbn(i){let n=Number.parseInt(g0.MNEMOPI_EMBEDDING_DIM??"",10);if(Number.isFinite(n))return n;return Fnf[i]??384}async function k0i(i){let n=[];for await(let h of i)for(let f of h)n.push(new Float32Array(f));return n}function hbn(i){let n=Hnf[i];return n===void 0?null:n}async function Vnf(){if(BY0(mJ())||pm()||eXn())return null;if(fm!==null)return fm;let i=hbn(mJ());if(i===null)return null;let n=KE();bnf(n,{recursive:!0});let h=X0i({model:i,cacheDir:n,showDownloadProgress:!1});fm=h;try{return await h}catch(f){if(V[ty()?"warn":"debug"]("mnemopi: local embedding model failed to load",{model:i,error:String(f)}),fm===h)fm=null;return null}}async function $nf(i){let n=qnf(),h=!hf(n,"openrouter"),f=ibn();if(!h&&!J0i(f))return null;let u=JSON.stringify({model:mJ(),input:i});try{let p=await hh(f,async(w)=>{let o={"Content-Type":"application/json",...tC()};if(w!=="")o.Authorization=`Bearer ${w}`;let c=await a4(`${n.replace(/\/+$/,"")}/embeddings`,{method:"POST",headers:o,body:u,signal:AbortSignal.timeout(30000),maxAttempts:3,defaultDelayMs:(U)=>2**U*1000});if(c.status===401)throw new Gn("mnemopi embedding request unauthorized (401)",401,{headers:c.headers});return c});if(!p.ok)return null;let{data:g}=await p.json();if(g===void 0)return null;return b0i+=1,g.map((w)=>new Float32Array(w.embedding))}catch(p){return V.debug("mnemopi embedding request failed",{status:g3(p)}),null}}async function lXn(i){if(i.available===void 0)return!0;try{return await i.available()}catch{return!1}}function fbn(i){Iy=i??null,um.clear()}function ubn(i){X0i=i??Fj,fm=null,um.clear()}function pbn(){Iy=null,fm=null,X0i=Fj,b0i=0,um.clear()}async function Anf(){if(pm())return!1;let i=AJ(),n=Se(i?.provider);if(n!==void 0)return lXn(n);if(Iy!==null)return lXn(Iy);if(BY0(mJ())){let h=i?.apiUrl??(g0.MNEMOPI_EMBEDDING_API_URL||g0.OPENROUTER_BASE_URL);if(h!==void 0&&h!==""&&!hf(h,"openrouter"))return!0;return J0i()}if(eXn())return!1;return hbn(mJ())!==null}function Onf(){return J0i()}async function Q0i(i){if(i===""||pm())return null;let n=G0i(i),h=um.get(n);if(h!==void 0)return h;let u=(await jY0([i]))?.[0]??null;if(u!==null)um.set(n,u);return u}async function jY0(i){if(i.length===0||pm())return null;i=jnf(i);let n=Se(AJ()?.provider);if(n!==void 0)try{return await k0i(await n.embed(i))}catch{return null}if(Iy!==null)try{return await k0i(await Iy.embed(i))}catch{return null}if(BY0(mJ()))return $nf(i);if(i.length===1){let f=G0i(i[0]??""),u=um.get(f);if(u!==void 0)return[u]}let h=await Vnf();if(h===null)return null;try{let f=await k0i(h.embed([...i]));if(f.length===1){let u=f[0];if(u!==void 0)um.set(G0i(i[0]??""),u)}return f}catch(f){return V[ty()?"warn":"debug"]("mnemopi: local embedding failed",{textCount:i.length,error:String(f)}),null}}function Nnf(){return b0i}var Jnf=512,Iy=null,fm=null,X0i,b0i=0,um,IXn,znf=1,Qnf,Y0i=`
|
|
3542
3542
|
|
|
3543
3543
|
[...]
|
|
3544
3544
|
|
|
@@ -4041,7 +4041,7 @@ ${g.length} entr${g.length===1?"y":"ies"}:
|
|
|
4041
4041
|
|
|
4042
4042
|
${c}
|
|
4043
4043
|
`;return{url:i.url,content:W,contentType:"text/markdown",size:Buffer.byteLength(W,"utf-8"),sourcePath:u,immutable:!0}}async#U(i,n){let{root:h,targetPath:f}=await this.#o(i,n),u=S5.dirname(f);try{let o=await U5.promises.realpath(u);S8(o,h)}catch(o){if(!w0(o))throw o}let p;try{p=await U5.promises.realpath(f)}catch(o){if(w0(o))throw Error(`Vault file not found: ${i.url}`);throw o}S8(p,h);let g=await U5.promises.stat(p);if(g.isDirectory())return this.#c(i,n);if(!g.isFile())throw Error(`vault:// URL must resolve to a file or directory: ${i.url}`);let w=await Bun.file(p).text();return{url:i.url,content:w,contentType:Kff(p),size:Buffer.byteLength(w,"utf-8"),sourcePath:p}}async#W(i,n,h){let{root:f,targetPath:u}=await this.#o(i,h);try{let p=await U5.promises.realpath(u);if(S8(p,f),(await U5.promises.stat(p)).isDirectory())throw Error(`vault:// URL must resolve to a file: ${i.url}`)}catch(p){if(!w0(p))throw p;let g=S5.dirname(u),w=await tff(g,f);S8(w,f),await U5.promises.mkdir(g,{recursive:!0});let o=await U5.promises.realpath(g);S8(o,f)}await Bun.write(u,n)}async#Z(i,n){let h=Sff(i),f=[...this.#p(i.ref),...h.args],u=await this.#h(f,n);return $k0(h.opLabel,u),{url:i.url,content:u.stdout,contentType:h.contentType,size:Buffer.byteLength(u.stdout,"utf-8"),immutable:!0}}}var Aii="/Applications/Obsidian.app/Contents/MacOS/obsidian",iQn=30000,Vff,$ff,Pk,Kk0,Ek,cM,mii,_ff="vault:// is disabled. Enable it by setting `vault.enabled = true` (Settings \u2192 Tools \u2192 Obsidian Vault).",Ak0;var Nk0=j(()=>{R();yi();L9();zB();qk();MK();Vff={outline:!0,backlinks:!0,links:!0,tags:!0,properties:!0,tasks:!0,wordcount:!0,history:!0,base:!0},$ff={search:!0,daily:!0,"daily-path":!0,tags:!0,tag:!0,tasks:!0,orphans:!0,unresolved:!0,deadends:!0,bases:!0,bookmarks:!0,recents:!0,templates:!0,aliases:!0,properties:!0,property:!0},mii=new Map;Ak0=class Ak0 extends Error{constructor(){super(_ff);this.name="VaultDisabledError"}}});function Sk(i){let n=i.trim();if(!n.toLowerCase().startsWith("xd://"))return null;let h=n.slice(5);if(h.length===0)return{name:null};if(/[/?#]/.test(h))return null;return{name:h}}function wQn(i){if(i.length<=5)return"xd://".startsWith(i.toLowerCase());return i.toLowerCase().startsWith("xd://")}class aii{scheme="xd";immutable=!0;async resolve(i,n){let h=Sk(i.href);if(!h)throw Error(`Invalid xd:// URL: ${i.href}. Use xd:// or xd://<tool>.`);if(!n?.xd)throw Error("xd:// is not mounted in this session.");let f=await n.xd.read(h.name);return{url:i.href,content:f,contentType:"text/plain",size:Buffer.byteLength(f)}}async write(i,n,h){let f=Sk(i.href);if(!f)throw Error(`Invalid xd:// URL: ${i.href}. Use xd://<tool>.`);if(!h?.xd)throw Error("xd:// is not mounted in this session.");await h.xd.write(f.name,n)}}var Zp="xd://";class w2{static#i;#n=new Map;constructor(){this.register(new Uii),this.register(new SS0),this.register(new rS0),this.register(new cii),this.register(new r9),this.register(new Nii),this.register(new Xr0),this.register(new Zii),this.register(new b00),this.register(new dr0),this.register(new Ur0),this.register(new Wr0),this.register(new qs0),this.register(new $ii),this.register(new aii)}static instance(){return w2.#i??=new w2,w2.#i}static resetForTests(){w2.#i=void 0}register(i){this.#n.set(i.scheme.toLowerCase(),i)}unregister(i){return this.#n.delete(i.toLowerCase())}getHandler(i){return this.#n.get(i.toLowerCase())}canHandle(i){let n=i.match(/^([a-z][a-z0-9+.-]*):\/\//i);if(!n)return!1;return this.#n.has(n[1].toLowerCase())}canResolve(i){let n=SW0(i);if(!n)return!1;if(this.#n.has(n))return this.canHandle(i);return this.#h(n)}completionSchemes(){let i=[];for(let[n,h]of this.#n)if(h.complete)i.push(n);return i}async complete(i,n,h){let f=this.#n.get(i.toLowerCase());if(!f?.complete)return null;return f.complete(n,h)}#h(i){return!["file","http","https"].includes(i)&&this.#n.has("mcp")}#f(i,n=!1){let h=n6(i),f=h.protocol.replace(/:$/,"").toLowerCase(),u=this.#n.get(f)??(n&&this.#h(f)?this.#n.get("mcp"):void 0);if(!u){let p=Array.from(this.#n.keys()).map((g)=>`${g}://`).join(", ");throw Error(`Unknown protocol: ${f}://
|
|
4044
|
-
Supported: ${p||"none"}`)}return{parsed:h,handler:u}}async resolve(i,n){let{parsed:h,handler:f}=this.#f(i,!0),u=await f.resolve(h,n);return{...u,immutable:u.immutable??f.immutable}}async write(i,n,h){let{parsed:f,handler:u}=this.#f(i);if(!u.write){let p=f.protocol.replace(/:$/,"").toLowerCase();throw Error(`${p}:// URLs are read-only for write; use the protocol-specific tool for mutations.`)}await u.write(f,n,h)}}var j00=j(()=>{IS0();yc0();Fs0();Zr0();eW0();tr0();wk0();Wii();qk();Yii();Jk0();MK();Kii();Nk0()});var Up=j(()=>{IS0();yc0();Fs0();Zr0();eW0();tr0();wk0();Wii();qk();j00();Yii();Jk0();MK();Kii();Nk0()});import*as ow from"fs";import*as kQn from"os";import*as Ch from"path";import*as GQn from"url";import{glob as Iff}from"@linxiraos/pi-natives";function f2f(i){return i.replace(lff," ")}function u2f(i){return i.replace(/ (AM|PM)\./g,`${h2f}$1.`)}function p2f(i){return i.normalize("NFD")}function WQn(i){return i.replace(/'/g,"\u2019")}function g2f(i){if(!i.includes("\\")||!i.includes("/"))return i;return i.replace(/\\([ \t"'(){}[\]])/g,"$1")}function q00(i){try{return ow.accessSync(i,ow.constants.F_OK),!0}catch{return!1}}function w2f(i){if(!i.startsWith("@"))return i;let n=i.slice(1);if(n.startsWith("/")||n==="~"||n.startsWith("~/")||Ch.win32.isAbsolute(n)||n.startsWith("agent://")||n.startsWith("artifact://")||n.startsWith("skill://")||n.startsWith("rule://")||n.startsWith("security://")||n.startsWith("local:")||n.startsWith("mcp://"))return n;return i}function o2f(i){if(!i.toLowerCase().startsWith("file://"))return i;try{return GQn.fileURLToPath(i)}catch{return i}}function Zo(i,n){let h=n??kQn.homedir();if(i==="~")return h;if(i.startsWith("~/")||i.startsWith("~\\"))return h+i.slice(1);if(i.startsWith("~"))return Ch.join(h,i.slice(1));return i}function HW(i){let n=/^:(?=[/\\~]|\.\.?[/\\]|[A-Za-z]:)/.test(i)?i.slice(1):i,h=ec(o2f(f2f(w2f(n))));return Zo(h)}function ZQn(i){if(i.length!==1)return!1;let n=i.charCodeAt(0);return n>=65&&n<=90||n>=97&&n<=122}function c2f(i){if(!i.startsWith("/"))return;let n=i.split("/");if(n[0]!=="")return;let h,f=2;if(n.length>=2&&ZQn(n[1]??""))h=n[1].toUpperCase();else if(n.length>=3&&(n[1]??"").toLowerCase()==="mnt"&&ZQn(n[2]??""))h=n[2].toUpperCase(),f=3;if(!h)return;let u=n.slice(f).filter(Boolean).join("\\");return u?`${h}:\\${u}`:`${h}:\\`}function U2f(i,n=process.platform){if(n!=="win32")return i;return c2f(i)??i}function Z2f(i){let n=W2f.exec(i);if(!n)return null;let h=Number.parseInt(n[1],10);if(h<1)throw new T(O.puErrLineSelectorZero);let f=n[2]===".."?"-":n[2],u=n[3]?Number.parseInt(n[3],10):void 0,p;if(f==="+"){if(u===void 0||u<1)throw new T(`Invalid range ${h}+${u??0}: count must be >= 1.`);p=h+u-1}else if(f==="-"){if(u!==void 0){if(u<h)throw new T(`Invalid range ${h}-${u}: end must be >= start.`);p=u}}return{startLine:h,endLine:p}}function $o(i){let n=i.split(","),h=[];for(let u of n){let p=Z2f(u);if(!p)return null;h.push(p)}if(h.length===0)return null;h.sort((u,p)=>u.startLine-p.startLine);let f=[h[0]];for(let u=1;u<h.length;u++){let p=h[u],g=f[f.length-1];if(g.endLine===void 0)continue;if(p.startLine<=g.endLine+1){if(p.endLine===void 0||p.endLine>g.endLine)f[f.length-1]={startLine:g.startLine,endLine:p.endLine};continue}f.push(p)}return f}function Lk0(i){if(!i)return;for(let n of i.split(":")){let h=n.toLowerCase();if(h==="raw"||h==="conflicts")continue;let f=$o(n);if(f)return f}return}function H00(i,n){for(let h of n){if(i<h.startLine)continue;if(h.endLine===void 0||i<=h.endLine)return!0}return!1}function W5(i){let n=i.lastIndexOf(":");if(n<=0)return{path:i};let h=i.slice(n+1);if(!sff.test(h))return{path:i};let f=i.slice(0,n),u=h,p=f.lastIndexOf(":");if(p>0){let g=f.slice(p+1),w=UQn.test(g),o=UQn.test(h),c=cQn.test(g),U=cQn.test(h);if(w&&U||c&&o)u=`${g}:${h}`,f=f.slice(0,p)}return{path:f,sel:u}}async function Jm(i,n){let h=Z5(i,n);try{return await ow.promises.lstat(h),"exists"}catch(f){if(w0(f)||OH(f)||v2(f,"ENAMETOOLONG"))return"missing";return"unknown"}}async function Dk0(i,n){let h=W5(i);if(h.sel===void 0)return h;return await Jm(i,n)==="missing"?h:{path:i}}function zm(i){let n=i.match(n2f);if(!n)return{path:i};let h=n[1].toLowerCase();if(i2f.has(h))return{path:i};if(!eff[h])return{path:i};let f=n[0].length;if(h==="ssh"&&i.indexOf("/",f)===-1)return{path:i};let u=i,p=[];while(!0){let g=u.lastIndexOf(":");if(g<f)break;let w=u.slice(g+1);if(!rff.test(w))break;p.unshift(w),u=u.slice(0,g)}if(p.length===0)return{path:i};return{path:u,sel:p.join(":")}}function bQn(i){let{path:n,sel:h}=zm(i);if(h===void 0)return i;if(/^(?:raw|conflicts)$/i.test(h))return n;throw new T(`write does not accept the trailing selector ":${h}" \u2014 it writes a whole file. `+`Remove ":${h}", or if the filename truly ends with it, percent-encode the ":" as %3A.`)}function Y2f(i,n){for(let h of XQn)if(i.startsWith(h))throw Error(`Path "${n}" uses internal scheme "${h}" and must be resolved through the proper protocol handler, not as a filesystem path.`)}function vf(i){return i.replace(/^(local:)\/(?!\/)/,"$1//")}function I5(i){let n=vf(i),h=vf(HW(n));for(let f of XQn)if(h.startsWith(f))return!0;return!1}function WM(i){return/ssh:\/\//i.test(i)}function yii(i){return/^ssh:\/\//i.test(i.trim())}function Qm(i){return/^https?:\/\/?/i.test(i)||/^www\./i.test(i)}function Wn(i,n){let h=vf(i),f=U2f(HW(h)),u=vf(f);if(Y2f(u,h),/^\/+$/.test(f))return n;if(Ch.isAbsolute(f))return f;return Ch.resolve(n,f)}function JQn(i,n){if(!i||Ch.isAbsolute(i))return null;if(i.startsWith("~")||I5(i))return null;let h=Ch.resolve(n),f=Ch.resolve(h,i);if(!ak0(f,h))return null;let u=Cii(h);if(!u)return null;let p=Cii(f);if(p)return ak0(p,u)?f:null;if(k2f(f))return null;let g=Ch.dirname(f),w=[Ch.basename(f)];for(;;){let o=Cii(g);if(o)return ak0(Ch.join(o,...w.reverse()),u)?f:null;let c=Ch.dirname(g);if(c===g||!ak0(g,h))return null;w.push(Ch.basename(g)),g=c}}function ak0(i,n){let h=Ch.relative(n,i);return!!h&&!h.startsWith("..")&&!Ch.isAbsolute(h)}function Cii(i){try{return ow.realpathSync.native(i)}catch{return null}}function k2f(i){try{return ow.lstatSync(i).isSymbolicLink()}catch{return!1}}function Dn(i,n,h={}){let f=Ch.resolve(n),u=vf(i);if(I5(u))return u;let p=HW(u),g=Ch.isAbsolute(p)?Ch.resolve(p):Ch.resolve(n,p),w=Ch.relative(f,g),o=w===""||!w.startsWith("..")&&!Ch.isAbsolute(w),c=UM(o?w||".":g);if(h.trailingSlash&&c!=="."&&!c.endsWith("/"))c+="/";return c}function Mii(i){return i.startsWith('"')&&i.endsWith('"')&&i.length>1?i.slice(1,-1):i}function vii(i){if(I5(i))return i;if(!i.includes("\\"))return i;return i.replace(/\\/g,"/")}function Cj(i){return Mii(i.trim())}function G2f(i){let n=i.trim();if(!n.startsWith("[")||!n.endsWith("]"))return null;let h;try{h=JSON.parse(n)}catch{return null}if(!Array.isArray(h)||h.some((f)=>typeof f!=="string"))return null;return h}function p7(i){if(typeof i==="string")return G2f(i)??[i];return i??[]}function FW(i){return X2f.some((n)=>i.includes(n))}function b2f(i,n){if(n==="comma")return i===",";if(n==="semicolon")return i===";";if(n==="whitespace")return Dii.test(i);return i===","||i===";"||Dii.test(i)}function J2f(i){let n=0;for(let h=0;h<i.length;h++){let f=i[h];if(f==="\\"&&h+1<i.length){h++;continue}if(f==="{"){n++;continue}if(f==="}"){if(n>0)n--;continue}if(n===0&&(f===","||f===";"||Dii.test(f)))return!0}return!1}function z2f(i,n){let h=[],f=0,u=0;for(let p=0;p<i.length;p++){let g=i[p];if(g==="\\"&&p+1<i.length){p++;continue}if(g==="{"){f++;continue}if(g==="}"){if(f>0)f--;continue}if(f!==0||!b2f(g,n))continue;h.push(i.slice(u,p)),u=p+1}return h.push(i.slice(u)),h}async function zQn(i,n,h){if(I5(i))return!0;let f=W5(i).path,{basePath:u}=h(f),p=Wn(u,n);try{return await ow.promises.stat(p),!0}catch(g){if(w0(g)||v2(g,"ENAMETOOLONG"))return!1;throw g}}async function F00(i,n,h,f,u){let p=z2f(i,f);if(p.length<2)return null;let g=p.map(Cj).filter((w)=>w.length>0);if(g.length===0)return null;if(g.length<2&&p.length===g.length)return null;if(u!=="none"){let w=await Promise.all(g.map((c)=>zQn(c,n,h)));if(!(u==="all"?w.every(Boolean):w.some(Boolean)))return null}return g}async function Rii(i,n,h={}){let f=Cj(i);if(!J2f(f))return null;let u=h.splitter??Ck0;if(h.routedUrlPredicate?.(f)){let g=await F00(f,n,u,"semicolon","none");return g?.every(h.routedUrlPredicate)?g:null}if(I5(f))return null;if(await Jm(f,n)!=="missing")return null;let p=W5(f).path;if(!FW(p)&&await zQn(f,n,u))return null;return await F00(f,n,u,"semicolon","none")??await F00(f,n,u,"comma","some")??await F00(f,n,u,"whitespace","all")??await F00(f,n,u,"mixed","all")}async function V00(i,n,h={}){let f=[];for(let u of i){let p=Cj(u),g=await Rii(p,n,h);if(g)f.push(...g);else f.push(p)}return f}function Ck0(i){let n=vii(i),h=n.split("/"),f=-1;for(let u=0;u<h.length;u++)if(FW(h[u])){f=u;break}if(f===-1)return{basePath:n};if(f<=0)return{basePath:".",glob:n};return{basePath:h.slice(0,f).join("/"),glob:h.slice(f).join("/")}}async function QQn(i,n){if(!FW(i)||I5(i))return Ck0(i);try{return await ow.promises.stat(Wn(i,n)),{basePath:vii(i)}}catch{return Ck0(i)}}function $00(i){let n=vii(i),h=n.split("/"),f=-1;for(let u=0;u<h.length;u++)if(FW(h[u])){f=u;break}if(f===-1)return{basePath:n,globPattern:"**/*",hasGlob:!1};if(f===0)return{basePath:".",globPattern:!n.startsWith("**/")?`**/${n}`:n,hasGlob:!0};return{basePath:h.slice(0,f).join("/"),globPattern:h.slice(f).join("/"),hasGlob:!0}}function Lii(i,n){if(!i)return n;if(!n)return i;let h=i.replace(/\/+$/,""),f=n.replace(/^\/+/,"");return`${h}/${f}`}function UM(i){return i.replace(/\\/g,"/")}function YQn(i,n){if(!i||i===".")return UM(n).replace(/^\/+/,"");let h=UM(i).replace(/\/+$/,""),f=UM(n).replace(/^\/+/,"");return`${h}/${f}`}function Q2f(i){let n=[...new Set(i.map((h)=>UM(h).trim()).filter(Boolean))];if(n.length===0)return;if(n.length===1)return n[0];return`{${n.join(",")}}`}function x2f(i){if(i.length===0)return".";let n=Ch.resolve(i[0]).split(Ch.sep);for(let f of i.slice(1)){let u=Ch.resolve(f).split(Ch.sep),p=0,g=Math.min(n.length,u.length);while(p<g&&n[p]===u[p])p+=1;n=n.slice(0,p)}if(n.length===0)return Ch.parse(Ch.resolve(i[0])).root;return n.join(Ch.sep)||Ch.parse(Ch.resolve(i[0])).root}function xQn(i,n){return i.map((h)=>Dn(h,n,{trailingSlash:h.endsWith("/")||h.endsWith("\\")})).join(", ")}async function B2f(i,n,h,f=!1){if(i.length<1)return;let u=await Promise.all(i.map(async(W)=>{let Z=await QQn(W,n),Y=Wn(Z.basePath,n),k=await ow.promises.stat(Y);return{raw:W,parsedPath:Z,absoluteBasePath:Y,stat:k}})),p=!h&&u.every((W)=>!W.parsedPath.glob&&W.stat.isFile()),g=x2f(u.map((W)=>W.absoluteBasePath)),w=u.map((W)=>{let Z=UM(Ch.relative(g,W.absoluteBasePath))||".";if(W.parsedPath.glob){let Y=YQn(Z,W.parsedPath.glob);return Lii(Y,h)??Y}if(h)return Lii(Z==="."?void 0:Z,h)??h;if(W.stat.isDirectory())return YQn(Z,"**/*");return Z==="."?Ch.basename(W.absoluteBasePath):Z}),o=u.some((W)=>W.absoluteBasePath===g),c=f&&!p&&u.some((W)=>!W.parsedPath.glob&&W.stat.isFile()),U=u.length>1&&(!o||c)?u.map((W)=>({basePath:W.absoluteBasePath,glob:W.parsedPath.glob?Lii(W.parsedPath.glob,h):h})):void 0;return{basePath:g,glob:Q2f(w),scopePath:xQn(i,n),exactFilePaths:p?u.map((W)=>W.absoluteBasePath):void 0,targets:U}}async function j2f(i,n,h,f=!1){return B2f([...new Set(i)],n,h,f)}async function q2f(i,n){if(i.length<=1)return;return{targets:i.map((f)=>{let u=$00(f);return{basePath:Wn(u.basePath,n),globPattern:u.globPattern,hasGlob:u.hasGlob}}),scopePath:xQn(i,n)}}async function BQn(i,n){return q2f([...new Set(i)],n)}async function Tii(i,n,h){let f=await Promise.all(i.map(async(g)=>{let{basePath:w}=h(g),o=Wn(w,n);try{return await ow.promises.stat(o),{item:g,exists:!0}}catch(c){if(w0(c))return{item:g,exists:!1};throw c}})),u=[],p=[];for(let g of f)if(g.exists)u.push(g.item);else p.push(g.item);return{valid:u,missing:p}}function Z5(i,n){let h=Wn(i,n),f=g2f(h),u=f!==h?[h,f]:[h];for(let p of u)if(q00(p))return p;for(let p of u){let g=u2f(p);if(g!==p&&q00(g))return g;let w=p2f(p);if(w!==p&&q00(w))return w;let o=WQn(p);if(o!==p&&q00(o))return o;let c=WQn(w);if(c!==p&&q00(c))return c}return h}function H2f(i){return i.replace(/[*?[{]/g,"[$&]")}async function _k0(i,n,h){let f=i.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+$/,"");if(!f)return null;let u=AbortSignal.timeout(F2f),p=h?AbortSignal.any([h,u]):u,g;try{g=(await l0(p,()=>Iff({pattern:`**/${H2f(f)}`,path:n,hidden:!0}))).matches.map((o)=>o.path)}catch(w){if(w instanceof Error&&w.name==="AbortError"){if(!h?.aborted)return null;throw new P0}return null}if(g.length!==1)return null;return{absolutePath:Ch.resolve(n,g[0]),displayPath:g[0]}}async function ZM(i){let{rawPaths:n,cwd:h,internalUrlAction:f}=i,u=n.map(Cj);if(u.some((z)=>z.length===0))throw new T(O.puErrScopeEmpty);let p=await V00(u,h);if(p.some((z)=>z.length===0))throw new T("Search scope entries must be non-empty paths or globs");let g=/^(?:https?|ftp|ws|wss):\/\//i,w=w2.instance(),o=[],c=new Set;for(let z of p){let J=g.test(z);if(!J&&Qm(z)&&!FW(z))try{await ow.promises.stat(Wn(z,h))}catch(x){J=w0(x)||OH(x)}if(J){let x=i.resolveExternalUrl?await i.resolveExternalUrl(z):void 0;if(x){if(o.push(x.sourcePath),i.trackImmutableSources&&x.immutable)c.add(Ch.resolve(x.sourcePath));continue}throw new T(`Cannot ${f} external URL: ${z}. Use \`read\` to fetch web content, then search the returned text.`)}if(!w.canHandle(z)){o.push(z);continue}if(yii(z))throw new T(`Cannot ${f} a remote ssh:// path (no local file): ${z}. Use \`read ${z}\` to view it, or the \`search\` tool to grep remote files.`);if(FW(z))throw new T(`Glob patterns are not supported for internal URLs: ${z}`);let Q=await w.resolve(z,{cwd:h,settings:i.settings,signal:i.signal,localProtocolOptions:i.localProtocolOptions,skills:i.skills,pathOnly:!0});if(!Q.sourcePath)throw new T(`Cannot ${f} internal URL without a backing file: ${z}`);if(i.trackImmutableSources&&Q.immutable)c.add(Ch.resolve(Q.sourcePath));o.push(Q.sourcePath)}let U=[],W=o;if(o.length>1){let z=await Tii(o,h,Ck0);if(z.valid.length===0)throw new T(`Path not found: ${z.missing.join(", ")}`);W=z.valid,U=z.missing}let Z,Y,k,G,X;if(W.length===1){let z=await QQn(W[0]??".",h);Z=Wn(z.basePath,h),k=z.glob,Y=Dn(Z,h)}else{let z=await j2f(W,h,void 0,i.fanOutFileTargets===!0);if(!z)throw new T(O.puErrPathsRequired);if(Z=z.basePath,G=z.targets,i.surfaceExactFilePaths)X=z.exactFilePaths,k=X||G?void 0:z.glob;else k=G?void 0:z.glob;Y=z.scopePath}let b;try{b=(await Bun.file(Z).stat()).isDirectory()}catch{let z=i.multipathStatHint&&p.length>1?i.multipathStatHint:"";throw new T(`Path not found: ${Y}${z}`)}return{searchPath:Z,scopePath:Y,globFilter:k,isDirectory:b,multiTargets:G,exactFilePaths:X,missingPaths:U,immutableSourcePaths:c}}var lff,oQn,_ii,sff,cQn,UQn,rff,eff,i2f,n2f,h2f="\u202F",XQn,W2f,X2f,Dii,F2f=5000;var Bn=j(()=>{R();th();Up();qi();lff=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,oQn=String.raw`L?\d+(?:(?:[-+]|\.\.)L?\d+|-|\.\.)?`,_ii=`${oQn}(?:,${oQn})*`,sff=new RegExp(`^(?:${_ii}|raw|conflicts)$`,"i"),cQn=new RegExp(`^${_ii}$`,"i"),UQn=/^raw$/i,rff=new RegExp(String.raw`^(?:raw|conflicts|${_ii}|-\d+(?:[-+]\d+)?)$`,"i"),eff={agent:!0,artifact:!0,issue:!0,history:!0,local:!0,memory:!0,omp:!0,pr:!0,rule:!0,security:!0,skill:!0,ssh:!0,vault:!0},i2f=new Set(["mcp"]),n2f=/^([a-z][a-z0-9+.-]*):\/\//i,XQn=["agent://","artifact://","skill://","rule://","security://","local://","mcp://","ssh://","vault://"];W2f=/^L?(\d+)(?:(\.\.|[-+])L?(\d+)?)?$/i;X2f=["*","?","[","{"];Dii=/\s/});var YM;var yk0=j(()=>{YM={type:"module",name:"@linxiraos/zeta",version:"1.0.3",description:"Coding agent CLI with read, bash, edit, write tools and session management",homepage:"https://linxira-os.github.io",author:"Can Boluk",contributors:["Mario Zechner"],license:"MIT",repository:{type:"git",url:"git+https://github.com/Linxira-OS/linxira-zeta.git",directory:"packages/coding-agent"},bugs:{url:"https://github.com/can1357/oh-my-pi/issues"},keywords:["coding-agent","ai","llm","cli","tui","agent"],main:"./src/index.ts",types:"./src/index.ts",bin:{zeta:"src/cli.ts"},scripts:{build:"bun scripts/build-binary.ts",check:"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit",lint:"biome lint .",test:"bun ../../scripts/ci-test-ts.ts coding-agent-heavy --full",fix:"biome check --write --unsafe . && bun run format-prompts",fmt:"biome format --write . && bun run format-prompts","format-prompts":"bun scripts/format-prompts.ts","gen:tool-views":"bun --cwd=../collab-web run gen:tool-views","gen:bundle":"bun scripts/bundle-dist.ts","gen:mupdf":"bun scripts/embed-mupdf-wasm.ts --generate","gen:mupdf:reset":"bun scripts/embed-mupdf-wasm.ts --reset","gen:native":"bun --cwd=../natives run gen:native","gen:native:reset":"bun --cwd=../natives run gen:native:reset",prepack:"bun run gen:tool-views && bun run gen:bundle","bench:guard":"bun scripts/bench-guard.ts"},dependencies:{"@babel/parser":"^7.29.7","@linxiraos/pi-hashline":"1.0.3","@linxiraos/pi-stats":"1.0.3","@linxiraos/pi-omptype":"1.0.3","@linxiraos/pi-agent-core":"1.0.3","@linxiraos/pi-ai":"1.0.3","@linxiraos/pi-catalog":"1.0.3","@linxiraos/pi-mnemopi":"1.0.3","@linxiraos/pi-natives":"1.0.3","@linxiraos/pi-tui":"1.0.3","@linxiraos/pi-utils":"1.0.3","@linxiraos/pi-wire":"1.0.3","@linxiraos/pi-snapcompact":"1.0.3","@opentelemetry/api":"^1.9.1","@opentelemetry/api-logs":"^0.220.0","@opentelemetry/context-async-hooks":"^2.9.0","@opentelemetry/exporter-logs-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/resources":"^2.9.0","@opentelemetry/sdk-logs":"^0.220.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/sdk-trace-node":"^2.9.0",mupdf:"^1.28.0","puppeteer-core":"25.3.0"},optionalDependencies:{"@huggingface/transformers":"^4.2.0","sherpa-onnx-node":"1.13.2"},devDependencies:{"@types/bun":"^1.3.14"},engines:{bun:">=1.3.14"},files:["src","dist/cli.js","dist/docs-index.generated.txt","dist/CHANGELOG-*.md","dist/*.node","dist/template-*.css","dist/template-*.html","dist/template-*.js","dist/tool-views.generated-*.js","scripts","examples","README.md","CHANGELOG.md"],exports:{".":{types:"./src/index.ts",import:"./src/index.ts"},"./*":{types:"./src/*.ts",import:"./src/*.ts"},"./async":{types:"./src/async/index.ts",import:"./src/async/index.ts"},"./async/*":{types:"./src/async/*.ts",import:"./src/async/*.ts"},"./autoresearch":{types:"./src/autoresearch/index.ts",import:"./src/autoresearch/index.ts"},"./autoresearch/*":{types:"./src/autoresearch/*.ts",import:"./src/autoresearch/*.ts"},"./autoresearch/tools/*":{types:"./src/autoresearch/tools/*.ts",import:"./src/autoresearch/tools/*.ts"},"./capability":{types:"./src/capability/index.ts",import:"./src/capability/index.ts"},"./capability/*":{types:"./src/capability/*.ts",import:"./src/capability/*.ts"},"./cli/*":{types:"./src/cli/*.ts",import:"./src/cli/*.ts"},"./cli/gallery-fixtures":{types:"./src/cli/gallery-fixtures/index.ts",import:"./src/cli/gallery-fixtures/index.ts"},"./cli/gallery-fixtures/*":{types:"./src/cli/gallery-fixtures/*.ts",import:"./src/cli/gallery-fixtures/*.ts"},"./cli/commands/*":{types:"./src/cli/commands/*.ts",import:"./src/cli/commands/*.ts"},"./commands/*":{types:"./src/commands/*.ts",import:"./src/commands/*.ts"},"./commit":{types:"./src/commit/index.ts",import:"./src/commit/index.ts"},"./commit/*":{types:"./src/commit/*.ts",import:"./src/commit/*.ts"},"./commit/agentic":{types:"./src/commit/agentic/index.ts",import:"./src/commit/agentic/index.ts"},"./commit/agentic/*":{types:"./src/commit/agentic/*.ts",import:"./src/commit/agentic/*.ts"},"./commit/agentic/tools":{types:"./src/commit/agentic/tools/index.ts",import:"./src/commit/agentic/tools/index.ts"},"./commit/agentic/tools/*":{types:"./src/commit/agentic/tools/*.ts",import:"./src/commit/agentic/tools/*.ts"},"./commit/analysis":{types:"./src/commit/analysis/index.ts",import:"./src/commit/analysis/index.ts"},"./commit/analysis/*":{types:"./src/commit/analysis/*.ts",import:"./src/commit/analysis/*.ts"},"./commit/changelog":{types:"./src/commit/changelog/index.ts",import:"./src/commit/changelog/index.ts"},"./commit/changelog/*":{types:"./src/commit/changelog/*.ts",import:"./src/commit/changelog/*.ts"},"./commit/git/*":{types:"./src/commit/git/*.ts",import:"./src/commit/git/*.ts"},"./commit/map-reduce":{types:"./src/commit/map-reduce/index.ts",import:"./src/commit/map-reduce/index.ts"},"./commit/map-reduce/*":{types:"./src/commit/map-reduce/*.ts",import:"./src/commit/map-reduce/*.ts"},"./commit/utils/*":{types:"./src/commit/utils/*.ts",import:"./src/commit/utils/*.ts"},"./config/*":{types:"./src/config/*.ts",import:"./src/config/*.ts"},"./dap":{types:"./src/dap/index.ts",import:"./src/dap/index.ts"},"./dap/*":{types:"./src/dap/*.ts",import:"./src/dap/*.ts"},"./debug":{types:"./src/debug/index.ts",import:"./src/debug/index.ts"},"./debug/*":{types:"./src/debug/*.ts",import:"./src/debug/*.ts"},"./discovery":{types:"./src/discovery/index.ts",import:"./src/discovery/index.ts"},"./discovery/*":{types:"./src/discovery/*.ts",import:"./src/discovery/*.ts"},"./edit":{types:"./src/edit/index.ts",import:"./src/edit/index.ts"},"./edit/*":{types:"./src/edit/*.ts",import:"./src/edit/*.ts"},"./edit/modes/*":{types:"./src/edit/modes/*.ts",import:"./src/edit/modes/*.ts"},"./exa":{types:"./src/exa/index.ts",import:"./src/exa/index.ts"},"./exa/*":{types:"./src/exa/*.ts",import:"./src/exa/*.ts"},"./exec/*":{types:"./src/exec/*.ts",import:"./src/exec/*.ts"},"./export/*":{types:"./src/export/*.ts",import:"./src/export/*.ts"},"./export/html":{types:"./src/export/html/index.ts",import:"./src/export/html/index.ts"},"./export/html/*":{types:"./src/export/html/*.ts",import:"./src/export/html/*.ts"},"./extensibility/*":{types:"./src/extensibility/*.ts",import:"./src/extensibility/*.ts"},"./extensibility/custom-commands":{types:"./src/extensibility/custom-commands/index.ts",import:"./src/extensibility/custom-commands/index.ts"},"./extensibility/custom-commands/*":{types:"./src/extensibility/custom-commands/*.ts",import:"./src/extensibility/custom-commands/*.ts"},"./extensibility/custom-commands/bundled/ci-green":{types:"./src/extensibility/custom-commands/bundled/ci-green/index.ts",import:"./src/extensibility/custom-commands/bundled/ci-green/index.ts"},"./extensibility/custom-commands/bundled/review":{types:"./src/extensibility/custom-commands/bundled/review/index.ts",import:"./src/extensibility/custom-commands/bundled/review/index.ts"},"./extensibility/custom-tools":{types:"./src/extensibility/custom-tools/index.ts",import:"./src/extensibility/custom-tools/index.ts"},"./extensibility/custom-tools/*":{types:"./src/extensibility/custom-tools/*.ts",import:"./src/extensibility/custom-tools/*.ts"},"./extensibility/extensions":{types:"./src/extensibility/extensions/index.ts",import:"./src/extensibility/extensions/index.ts"},"./extensibility/extensions/*":{types:"./src/extensibility/extensions/*.ts",import:"./src/extensibility/extensions/*.ts"},"./extensibility/hooks":{types:"./src/extensibility/hooks/index.ts",import:"./src/extensibility/hooks/index.ts"},"./extensibility/hooks/*":{types:"./src/extensibility/hooks/*.ts",import:"./src/extensibility/hooks/*.ts"},"./extensibility/plugins":{types:"./src/extensibility/plugins/index.ts",import:"./src/extensibility/plugins/index.ts"},"./extensibility/plugins/*":{types:"./src/extensibility/plugins/*.ts",import:"./src/extensibility/plugins/*.ts"},"./extensibility/plugins/marketplace":{types:"./src/extensibility/plugins/marketplace/index.ts",import:"./src/extensibility/plugins/marketplace/index.ts"},"./extensibility/plugins/marketplace/*":{types:"./src/extensibility/plugins/marketplace/*.ts",import:"./src/extensibility/plugins/marketplace/*.ts"},"./internal-urls":{types:"./src/internal-urls/index.ts",import:"./src/internal-urls/index.ts"},"./internal-urls/*":{types:"./src/internal-urls/*.ts",import:"./src/internal-urls/*.ts"},"./eval":{types:"./src/eval/index.ts",import:"./src/eval/index.ts"},"./eval/js/*":{types:"./src/eval/js/*.ts",import:"./src/eval/js/*.ts"},"./eval/py/*":{types:"./src/eval/py/*.ts",import:"./src/eval/py/*.ts"},"./lsp":{types:"./src/lsp/index.ts",import:"./src/lsp/index.ts"},"./lsp/*":{types:"./src/lsp/*.ts",import:"./src/lsp/*.ts"},"./lsp/clients":{types:"./src/lsp/clients/index.ts",import:"./src/lsp/clients/index.ts"},"./lsp/clients/*":{types:"./src/lsp/clients/*.ts",import:"./src/lsp/clients/*.ts"},"./markit":{types:"./src/markit/index.ts",import:"./src/markit/index.ts"},"./markit/*":{types:"./src/markit/*.ts",import:"./src/markit/*.ts"},"./mcp":{types:"./src/mcp/index.ts",import:"./src/mcp/index.ts"},"./mcp/*":{types:"./src/mcp/*.ts",import:"./src/mcp/*.ts"},"./mcp/transports":{types:"./src/mcp/transports/index.ts",import:"./src/mcp/transports/index.ts"},"./mcp/transports/*":{types:"./src/mcp/transports/*.ts",import:"./src/mcp/transports/*.ts"},"./memories":{types:"./src/memories/index.ts",import:"./src/memories/index.ts"},"./memories/*":{types:"./src/memories/*.ts",import:"./src/memories/*.ts"},"./memory-backend":{types:"./src/memory-backend/index.ts",import:"./src/memory-backend/index.ts"},"./memory-backend/*":{types:"./src/memory-backend/*.ts",import:"./src/memory-backend/*.ts"},"./hindsight":{types:"./src/hindsight/index.ts",import:"./src/hindsight/index.ts"},"./hindsight/*":{types:"./src/hindsight/*.ts",import:"./src/hindsight/*.ts"},"./modes":{types:"./src/modes/index.ts",import:"./src/modes/index.ts"},"./modes/*":{types:"./src/modes/*.ts",import:"./src/modes/*.ts"},"./modes/acp":{types:"./src/modes/acp/index.ts",import:"./src/modes/acp/index.ts"},"./modes/acp/*":{types:"./src/modes/acp/*.ts",import:"./src/modes/acp/*.ts"},"./modes/components":{types:"./src/modes/components/index.ts",import:"./src/modes/components/index.ts"},"./modes/components/*":{types:"./src/modes/components/*.ts",import:"./src/modes/components/*.ts"},"./modes/components/extensions":{types:"./src/modes/components/extensions/index.ts",import:"./src/modes/components/extensions/index.ts"},"./modes/components/extensions/*":{types:"./src/modes/components/extensions/*.ts",import:"./src/modes/components/extensions/*.ts"},"./modes/components/status-line":{types:"./src/modes/components/status-line/index.ts",import:"./src/modes/components/status-line/index.ts"},"./modes/components/status-line/*":{types:"./src/modes/components/status-line/*.ts",import:"./src/modes/components/status-line/*.ts"},"./modes/controllers/*":{types:"./src/modes/controllers/*.ts",import:"./src/modes/controllers/*.ts"},"./modes/setup-wizard":{types:"./src/modes/setup-wizard/index.ts",import:"./src/modes/setup-wizard/index.ts"},"./modes/setup-wizard/*":{types:"./src/modes/setup-wizard/*.ts",import:"./src/modes/setup-wizard/*.ts"},"./modes/rpc/*":{types:"./src/modes/rpc/*.ts",import:"./src/modes/rpc/*.ts"},"./modes/theme/*":{types:"./src/modes/theme/*.ts",import:"./src/modes/theme/*.ts"},"./modes/theme/defaults":{types:"./src/modes/theme/defaults/index.ts",import:"./src/modes/theme/defaults/index.ts"},"./modes/utils/*":{types:"./src/modes/utils/*.ts",import:"./src/modes/utils/*.ts"},"./plan-mode/*":{types:"./src/plan-mode/*.ts",import:"./src/plan-mode/*.ts"},"./prompts/*":"./src/prompts/*.md","./secrets":{types:"./src/secrets/index.ts",import:"./src/secrets/index.ts"},"./secrets/*":{types:"./src/secrets/*.ts",import:"./src/secrets/*.ts"},"./session/*":{types:"./src/session/*.ts",import:"./src/session/*.ts"},"./slash-commands/*":{types:"./src/slash-commands/*.ts",import:"./src/slash-commands/*.ts"},"./ssh/*":{types:"./src/ssh/*.ts",import:"./src/ssh/*.ts"},"./stt":{types:"./src/stt/index.ts",import:"./src/stt/index.ts"},"./stt/*":{types:"./src/stt/*.ts",import:"./src/stt/*.ts"},"./task":{types:"./src/task/index.ts",import:"./src/task/index.ts"},"./task/*":{types:"./src/task/*.ts",import:"./src/task/*.ts"},"./tools":{types:"./src/tools/index.ts",import:"./src/tools/index.ts"},"./tools/hub":{types:"./src/tools/hub/index.ts",import:"./src/tools/hub/index.ts"},"./tools/hub/*":{types:"./src/tools/hub/*.ts",import:"./src/tools/hub/*.ts"},"./tools/*":{types:"./src/tools/*.ts",import:"./src/tools/*.ts"},"./tui":{types:"./src/tui/index.ts",import:"./src/tui/index.ts"},"./tui/*":{types:"./src/tui/*.ts",import:"./src/tui/*.ts"},"./utils/*":{types:"./src/utils/*.ts",import:"./src/utils/*.ts"},"./web/*":{types:"./src/web/*.ts",import:"./src/web/*.ts"},"./web/scrapers":{types:"./src/web/scrapers/index.ts",import:"./src/web/scrapers/index.ts"},"./web/scrapers/*":{types:"./src/web/scrapers/*.ts",import:"./src/web/scrapers/*.ts"},"./web/search":{types:"./src/web/search/index.ts",import:"./src/web/search/index.ts"},"./web/search/*":{types:"./src/web/search/*.ts",import:"./src/web/search/*.ts"},"./web/search/providers/*":{types:"./src/web/search/providers/*.ts",import:"./src/web/search/providers/*.ts"},"./*.js":"./src/*.ts"}}});import*as g7 from"fs/promises";import*as K00 from"path";function qQn(i,n){let f=(n.trim().toLowerCase().replace(/^\.+/,"")||"bin").replace(/[^a-z0-9]+/g,"_")||"bin",u=YM.version.replace(/[^a-z0-9]+/gi,"_"),p=new Bun.CryptoHasher("sha256").update(i).digest("hex");return`v${Mk0}-${u}-${f}-${p}`}function K2f(i){return K00.join(fN0(),`${i}.json`)}function xm(i){return i instanceof Error?i.message:String(i)}function m2f(i){let n=JSON.parse(i);if(typeof n!=="object"||n===null)return null;if(!("version"in n)||n.version!==Mk0)return null;if(!("content"in n)||typeof n.content!=="string"||n.content.length===0)return null;return{version:Mk0,content:n.content}}async function FQn(i){let n=K2f(i),h;try{h=await Bun.file(n).text()}catch(u){if(!w0(u))V.debug("document conversion cache read failed",{error:xm(u)});return{status:"miss"}}let f;try{f=m2f(h)}catch(u){V.debug("document conversion cache read failed",{error:xm(u)}),f=null}if(!f)return await g7.rm(n,{force:!0}).catch(()=>{return}),{status:"miss"};return{status:"hit",content:f.content}}async function A2f(i){let n;try{n=await g7.readdir(i)}catch(p){if(!w0(p))V.debug("document conversion cache prune failed",{error:xm(p)});return}let h=Date.now(),f=[],u=0;for(let p of n){let g=K00.join(i,p),w;try{w=await g7.stat(g)}catch(o){if(!w0(o))V.debug("document conversion cache prune failed",{error:xm(o)});continue}if(!w.isFile())continue;if(p.endsWith(".tmp")){if(h-w.mtimeMs>$2f)await g7.rm(g,{force:!0}).catch(()=>{return});continue}if(!p.endsWith(".json"))continue;f.push({path:g,size:w.size,mtimeMs:w.mtimeMs}),u+=w.size}if(u<=jQn)return;f.sort((p,g)=>p.mtimeMs-g.mtimeMs);for(let p of f){if(u<=jQn)break;try{await g7.rm(p.path,{force:!0}),u-=p.size}catch(g){if(!w0(g))V.debug("document conversion cache prune failed",{error:xm(g)})}}}async function HQn(i,n){let h=fN0(),f=K00.join(h,`${i}.json`),u=K00.join(h,`${i}.${process.pid}.${Date.now()}.${crypto.randomUUID()}.tmp`),p=JSON.stringify({version:Mk0,content:n});try{await g7.mkdir(h,{recursive:!0}),await Bun.write(u,p),await g7.rename(u,f)}catch(g){await g7.rm(u,{force:!0}).catch(()=>{return}),V.debug("document conversion cache write failed",{error:xm(g)});return}A2f(h).catch((g)=>{V.debug("document conversion cache prune failed",{error:xm(g)})})}var Mk0=1,jQn=268435456,$2f=300000;var VQn=j(()=>{R();yk0()});function $Qn(){return}function tii(i){return i.replace(O2f,(n)=>{switch(n){case"&":return"&";case"'":return"'";case">":return">";case"<":return"<";case""":return'"';default:{let h=n[2]==="x",f=n.slice(h?3:2,-1),u=Number.parseInt(f,h?16:10);return Number.isFinite(u)?String.fromCodePoint(u):n}}})}function VW(i){let n=i.indexOf(":");return n===-1?i:i.slice(n+1)}function Bm(i){let n={name:"#document",attributes:new Map,children:[]},h=[n],f=0;while(f<i.length){let p=i.indexOf("<",f);if(p===-1){let o=tii(i.slice(f));if(o)h[h.length-1].children.push({kind:"text",value:o});break}if(p>f){let o=tii(i.slice(f,p));if(o)h[h.length-1].children.push({kind:"text",value:o})}if(i.startsWith("<!--",p)){let o=i.indexOf("-->",p+4);if(o===-1)throw Error("Invalid XML: unterminated comment");f=o+3;continue}if(i.startsWith("<![CDATA[",p)){let o=i.indexOf("]]>",p+9);if(o===-1)throw Error("Invalid XML: unterminated CDATA section");h[h.length-1].children.push({kind:"text",value:i.slice(p+9,o)}),f=o+3;continue}if(i.startsWith("<?",p)){let o=i.indexOf("?>",p+2);if(o===-1)throw Error("Invalid XML: unterminated processing instruction");f=o+2;continue}if(i.startsWith("<!",p)){let o=i.indexOf(">",p+2);if(o===-1)throw Error("Invalid XML: unterminated declaration");f=o+1;continue}let g=i.indexOf(">",p+1);if(g===-1)throw Error("Invalid XML: unterminated tag");let w=i.slice(p+1,g).trim();if(w.startsWith("/")){if(h.length===1)throw Error("Invalid XML: unexpected closing tag");let o=w.slice(1).trim(),c=h.pop();if(!c||c.name!==o)throw Error(`Invalid XML: mismatched closing tag ${o}`);h[h.length-1].children.push({kind:"element",name:c.name,attributes:c.attributes,children:c.children})}else{let o=w.endsWith("/"),c=o?w.slice(0,-1).trim():w,U=c.search(/\s/),W=U===-1?c:c.slice(0,U),Z=new Map;dii.lastIndex=U===-1?c.length:U;for(let k=dii.exec(c);k;k=dii.exec(c))Z.set(k[1],tii(k[2]??k[3]??""));let Y={name:W,attributes:Z,children:[]};if(o)h[h.length-1].children.push({kind:"element",...Y});else h.push(Y)}f=g+1}if(h.length!==1)throw Error(`Invalid XML: unclosed tag ${h[h.length-1].name}`);let u=n.children.filter((p)=>p.kind==="element");if(u.length!==1)throw Error("Invalid XML: expected one root element");return u[0]}function pg(i,n){return i.children.filter((h)=>h.kind==="element"&&(n===void 0||VW(h.name)===n))}function Yp(i,n){if(!i)return;return i.children.find((h)=>h.kind==="element"&&VW(h.name)===n)}function C1(i,n){if(!i)return;let h=i.attributes.get(n);if(h!==void 0)return h;for(let[f,u]of i.attributes)if(VW(f)===VW(n))return u;return}function vk0(i,n){let h=[];for(let f of pg(i)){if(VW(f.name)===n)h.push(f);h.push(...vk0(f,n))}return h}var O2f,dii;var KQn=j(()=>{O2f=/&(?:#x[\da-fA-F]+|#\d+|amp|apos|gt|lt|quot);/g,dii=/([^\s=]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g});import*as mQn from"zlib";function OQn(i){return new DataView(i.buffer,i.byteOffset,i.byteLength)}function D2f(i){let n=OQn(i);for(let h=i.byteLength-22,f=Math.max(0,i.byteLength-L2f);h>=f;h--)if(n.getUint32(h,!0)===C2f)return h;throw Error("Invalid DOCX: missing ZIP end record")}function NQn(i){if(i.byteLength<22)throw Error("Invalid DOCX: truncated ZIP package");let n=OQn(i),h=D2f(i),f=n.getUint16(h+10,!0),u=n.getUint32(h+12,!0),p=n.getUint32(h+16,!0);if(f===65535||u===4294967295||p===4294967295)throw Error("Invalid DOCX: ZIP64 packages are not supported");if(p+u>i.byteLength)throw Error("Invalid DOCX: truncated ZIP central directory");let g=new Map,w=p;for(let o=0;o<f;o++){if(w+46>i.byteLength||n.getUint32(w,!0)!==a2f)throw Error("Invalid DOCX: malformed ZIP central directory");let c=n.getUint16(w+8,!0),U=n.getUint16(w+10,!0),W=n.getUint32(w+20,!0),Z=n.getUint32(w+24,!0),Y=n.getUint16(w+28,!0),k=n.getUint16(w+30,!0),G=n.getUint16(w+32,!0),X=n.getUint32(w+42,!0),b=w+46+Y+k+G;if(b>i.byteLength)throw Error("Invalid DOCX: truncated ZIP entry");let z=AQn.decode(i.subarray(w+46,w+46+Y)).replaceAll("\\","/");if((c&1)!==0)throw Error(`Invalid DOCX: encrypted ZIP member ${z}`);if(X+30>i.byteLength||n.getUint32(X,!0)!==N2f)throw Error(`Invalid DOCX: missing local header for ${z}`);let J=n.getUint16(X+26,!0),Q=n.getUint16(X+28,!0),x=X+30+J+Q,q=x+W;if(q>i.byteLength)throw Error(`Invalid DOCX: truncated ZIP member ${z}`);let H=i.subarray(x,q),F;if(U===0)F=H;else if(U===8)F=mQn.inflateRawSync(H,{maxOutputLength:Math.max(Z,1)});else throw Error(`Invalid DOCX: unsupported ZIP compression method ${U}`);if(F.byteLength!==Z)throw Error(`Invalid DOCX: size mismatch for ZIP member ${z}`);if(z&&!z.endsWith("/"))g.set(z,F);w=b}return g}function jm(i,n){let h=i.get(n);return h?AQn.decode(h):void 0}var N2f=67324752,a2f=33639248,C2f=101010256,L2f=65557,AQn;var aQn=j(()=>{AQn=new TextDecoder});import*as CQn from"fs/promises";import*as Tk0 from"path";function LQn(i){return i.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")}function kM(i){return LQn(i).replaceAll('"',""")}function Rk0(i){if(!i)return;let n=C1(i,"w:val")?.toLowerCase();return n!=="0"&&n!=="false"&&n!=="off"&&n!=="none"}function DQn(i){if(!i)return{};let n=C1(Yp(i,"vertAlign"),"w:val");return{bold:Rk0(Yp(i,"b")),italic:Rk0(Yp(i,"i")),strike:Rk0(Yp(i,"strike"))??Rk0(Yp(i,"dstrike")),vertical:n==="subscript"||n==="superscript"?n:void 0}}function _Qn(i,n){return{bold:n.bold??i.bold,italic:n.italic??i.italic,strike:n.strike??i.strike,vertical:n.vertical??i.vertical}}function yQn(i){let n=Yp(i,"numPr"),h=C1(Yp(n,"numId"),"w:val");if(!h||h==="0")return;let f=C1(Yp(n,"ilvl"),"w:val");return{id:h,level:f?Number.parseInt(f,10)||0:0}}function y2f(i){let n=new Map;if(!i)return n;let h=Bm(i);for(let f of pg(h,"style")){let u=C1(f,"w:styleId"),p=C1(f,"w:type");if(!u||p!=="paragraph"&&p!=="character")continue;n.set(u,{id:u,type:p,name:C1(Yp(f,"name"),"w:val")??u,basedOn:C1(Yp(f,"basedOn"),"w:val"),formatting:DQn(Yp(f,"rPr")),numbering:yQn(Yp(f,"pPr")),isDefault:C1(f,"w:default")==="1"||C1(f,"w:default")==="true"})}return n}function MQn(i,n,h=new Set){if(!i||h.has(i.id))return{};h.add(i.id);let f=i.basedOn?MQn(n.get(i.basedOn),n,h):{};return _Qn(f,i.formatting)}function vQn(i,n,h=new Set){if(!i||h.has(i.id))return;return h.add(i.id),i.numbering??(i.basedOn?vQn(n.get(i.basedOn),n,h):void 0)}function M2f(i){let n=new Map;if(!i)return n;let h=Bm(i);for(let f of pg(h,"Relationship")){let u=C1(f,"Id"),p=C1(f,"Target");if(!u||!p)continue;n.set(u,{target:p,type:C1(f,"Type")??"",external:C1(f,"TargetMode")==="External"})}return n}function v2f(i){let n=new Map;if(!i)return n;let h=Bm(i);for(let f of pg(h))if(VW(f.name)==="Default"){let u=C1(f,"Extension")?.toLowerCase(),p=C1(f,"ContentType");if(u&&p)n.set(`.${u}`,p)}else if(VW(f.name)==="Override"){let u=C1(f,"PartName"),p=C1(f,"ContentType");if(u&&p)n.set(u.startsWith("/")?u.slice(1):u,p)}return n}function R2f(i){let n=new Map;if(!i)return n;let h=Bm(i),f=new Map;for(let u of pg(h,"abstractNum")){let p=C1(u,"w:abstractNumId");if(!p)continue;let g=new Map;for(let w of pg(u,"lvl")){let o=Number.parseInt(C1(w,"w:ilvl")??"0",10)||0;g.set(o,{ordered:C1(Yp(w,"numFmt"),"w:val")!=="bullet"})}f.set(p,g)}for(let u of pg(h,"num")){let p=C1(u,"w:numId"),g=C1(Yp(u,"abstractNumId"),"w:val");if(p&&g)n.set(p,f.get(g)??new Map)}return n}function T2f(i){let n=new Map;if(!i)return n;for(let h of pg(Bm(i),"footnote")){let f=C1(h,"w:id");if(f&&!f.startsWith("-"))n.set(f,h)}return n}function d2f(i){let n=typeof i==="string"?i.split(`
|
|
4044
|
+
Supported: ${p||"none"}`)}return{parsed:h,handler:u}}async resolve(i,n){let{parsed:h,handler:f}=this.#f(i,!0),u=await f.resolve(h,n);return{...u,immutable:u.immutable??f.immutable}}async write(i,n,h){let{parsed:f,handler:u}=this.#f(i);if(!u.write){let p=f.protocol.replace(/:$/,"").toLowerCase();throw Error(`${p}:// URLs are read-only for write; use the protocol-specific tool for mutations.`)}await u.write(f,n,h)}}var j00=j(()=>{IS0();yc0();Fs0();Zr0();eW0();tr0();wk0();Wii();qk();Yii();Jk0();MK();Kii();Nk0()});var Up=j(()=>{IS0();yc0();Fs0();Zr0();eW0();tr0();wk0();Wii();qk();j00();Yii();Jk0();MK();Kii();Nk0()});import*as ow from"fs";import*as kQn from"os";import*as Ch from"path";import*as GQn from"url";import{glob as Iff}from"@linxiraos/pi-natives";function f2f(i){return i.replace(lff," ")}function u2f(i){return i.replace(/ (AM|PM)\./g,`${h2f}$1.`)}function p2f(i){return i.normalize("NFD")}function WQn(i){return i.replace(/'/g,"\u2019")}function g2f(i){if(!i.includes("\\")||!i.includes("/"))return i;return i.replace(/\\([ \t"'(){}[\]])/g,"$1")}function q00(i){try{return ow.accessSync(i,ow.constants.F_OK),!0}catch{return!1}}function w2f(i){if(!i.startsWith("@"))return i;let n=i.slice(1);if(n.startsWith("/")||n==="~"||n.startsWith("~/")||Ch.win32.isAbsolute(n)||n.startsWith("agent://")||n.startsWith("artifact://")||n.startsWith("skill://")||n.startsWith("rule://")||n.startsWith("security://")||n.startsWith("local:")||n.startsWith("mcp://"))return n;return i}function o2f(i){if(!i.toLowerCase().startsWith("file://"))return i;try{return GQn.fileURLToPath(i)}catch{return i}}function Zo(i,n){let h=n??kQn.homedir();if(i==="~")return h;if(i.startsWith("~/")||i.startsWith("~\\"))return h+i.slice(1);if(i.startsWith("~"))return Ch.join(h,i.slice(1));return i}function HW(i){let n=/^:(?=[/\\~]|\.\.?[/\\]|[A-Za-z]:)/.test(i)?i.slice(1):i,h=ec(o2f(f2f(w2f(n))));return Zo(h)}function ZQn(i){if(i.length!==1)return!1;let n=i.charCodeAt(0);return n>=65&&n<=90||n>=97&&n<=122}function c2f(i){if(!i.startsWith("/"))return;let n=i.split("/");if(n[0]!=="")return;let h,f=2;if(n.length>=2&&ZQn(n[1]??""))h=n[1].toUpperCase();else if(n.length>=3&&(n[1]??"").toLowerCase()==="mnt"&&ZQn(n[2]??""))h=n[2].toUpperCase(),f=3;if(!h)return;let u=n.slice(f).filter(Boolean).join("\\");return u?`${h}:\\${u}`:`${h}:\\`}function U2f(i,n=process.platform){if(n!=="win32")return i;return c2f(i)??i}function Z2f(i){let n=W2f.exec(i);if(!n)return null;let h=Number.parseInt(n[1],10);if(h<1)throw new T(O.puErrLineSelectorZero);let f=n[2]===".."?"-":n[2],u=n[3]?Number.parseInt(n[3],10):void 0,p;if(f==="+"){if(u===void 0||u<1)throw new T(`Invalid range ${h}+${u??0}: count must be >= 1.`);p=h+u-1}else if(f==="-"){if(u!==void 0){if(u<h)throw new T(`Invalid range ${h}-${u}: end must be >= start.`);p=u}}return{startLine:h,endLine:p}}function $o(i){let n=i.split(","),h=[];for(let u of n){let p=Z2f(u);if(!p)return null;h.push(p)}if(h.length===0)return null;h.sort((u,p)=>u.startLine-p.startLine);let f=[h[0]];for(let u=1;u<h.length;u++){let p=h[u],g=f[f.length-1];if(g.endLine===void 0)continue;if(p.startLine<=g.endLine+1){if(p.endLine===void 0||p.endLine>g.endLine)f[f.length-1]={startLine:g.startLine,endLine:p.endLine};continue}f.push(p)}return f}function Lk0(i){if(!i)return;for(let n of i.split(":")){let h=n.toLowerCase();if(h==="raw"||h==="conflicts")continue;let f=$o(n);if(f)return f}return}function H00(i,n){for(let h of n){if(i<h.startLine)continue;if(h.endLine===void 0||i<=h.endLine)return!0}return!1}function W5(i){let n=i.lastIndexOf(":");if(n<=0)return{path:i};let h=i.slice(n+1);if(!sff.test(h))return{path:i};let f=i.slice(0,n),u=h,p=f.lastIndexOf(":");if(p>0){let g=f.slice(p+1),w=UQn.test(g),o=UQn.test(h),c=cQn.test(g),U=cQn.test(h);if(w&&U||c&&o)u=`${g}:${h}`,f=f.slice(0,p)}return{path:f,sel:u}}async function Jm(i,n){let h=Z5(i,n);try{return await ow.promises.lstat(h),"exists"}catch(f){if(w0(f)||OH(f)||v2(f,"ENAMETOOLONG"))return"missing";return"unknown"}}async function Dk0(i,n){let h=W5(i);if(h.sel===void 0)return h;return await Jm(i,n)==="missing"?h:{path:i}}function zm(i){let n=i.match(n2f);if(!n)return{path:i};let h=n[1].toLowerCase();if(i2f.has(h))return{path:i};if(!eff[h])return{path:i};let f=n[0].length;if(h==="ssh"&&i.indexOf("/",f)===-1)return{path:i};let u=i,p=[];while(!0){let g=u.lastIndexOf(":");if(g<f)break;let w=u.slice(g+1);if(!rff.test(w))break;p.unshift(w),u=u.slice(0,g)}if(p.length===0)return{path:i};return{path:u,sel:p.join(":")}}function bQn(i){let{path:n,sel:h}=zm(i);if(h===void 0)return i;if(/^(?:raw|conflicts)$/i.test(h))return n;throw new T(`write does not accept the trailing selector ":${h}" \u2014 it writes a whole file. `+`Remove ":${h}", or if the filename truly ends with it, percent-encode the ":" as %3A.`)}function Y2f(i,n){for(let h of XQn)if(i.startsWith(h))throw Error(`Path "${n}" uses internal scheme "${h}" and must be resolved through the proper protocol handler, not as a filesystem path.`)}function vf(i){return i.replace(/^(local:)\/(?!\/)/,"$1//")}function I5(i){let n=vf(i),h=vf(HW(n));for(let f of XQn)if(h.startsWith(f))return!0;return!1}function WM(i){return/ssh:\/\//i.test(i)}function yii(i){return/^ssh:\/\//i.test(i.trim())}function Qm(i){return/^https?:\/\/?/i.test(i)||/^www\./i.test(i)}function Wn(i,n){let h=vf(i),f=U2f(HW(h)),u=vf(f);if(Y2f(u,h),/^\/+$/.test(f))return n;if(Ch.isAbsolute(f))return f;return Ch.resolve(n,f)}function JQn(i,n){if(!i||Ch.isAbsolute(i))return null;if(i.startsWith("~")||I5(i))return null;let h=Ch.resolve(n),f=Ch.resolve(h,i);if(!ak0(f,h))return null;let u=Cii(h);if(!u)return null;let p=Cii(f);if(p)return ak0(p,u)?f:null;if(k2f(f))return null;let g=Ch.dirname(f),w=[Ch.basename(f)];for(;;){let o=Cii(g);if(o)return ak0(Ch.join(o,...w.reverse()),u)?f:null;let c=Ch.dirname(g);if(c===g||!ak0(g,h))return null;w.push(Ch.basename(g)),g=c}}function ak0(i,n){let h=Ch.relative(n,i);return!!h&&!h.startsWith("..")&&!Ch.isAbsolute(h)}function Cii(i){try{return ow.realpathSync.native(i)}catch{return null}}function k2f(i){try{return ow.lstatSync(i).isSymbolicLink()}catch{return!1}}function Dn(i,n,h={}){let f=Ch.resolve(n),u=vf(i);if(I5(u))return u;let p=HW(u),g=Ch.isAbsolute(p)?Ch.resolve(p):Ch.resolve(n,p),w=Ch.relative(f,g),o=w===""||!w.startsWith("..")&&!Ch.isAbsolute(w),c=UM(o?w||".":g);if(h.trailingSlash&&c!=="."&&!c.endsWith("/"))c+="/";return c}function Mii(i){return i.startsWith('"')&&i.endsWith('"')&&i.length>1?i.slice(1,-1):i}function vii(i){if(I5(i))return i;if(!i.includes("\\"))return i;return i.replace(/\\/g,"/")}function Cj(i){return Mii(i.trim())}function G2f(i){let n=i.trim();if(!n.startsWith("[")||!n.endsWith("]"))return null;let h;try{h=JSON.parse(n)}catch{return null}if(!Array.isArray(h)||h.some((f)=>typeof f!=="string"))return null;return h}function p7(i){if(typeof i==="string")return G2f(i)??[i];return i??[]}function FW(i){return X2f.some((n)=>i.includes(n))}function b2f(i,n){if(n==="comma")return i===",";if(n==="semicolon")return i===";";if(n==="whitespace")return Dii.test(i);return i===","||i===";"||Dii.test(i)}function J2f(i){let n=0;for(let h=0;h<i.length;h++){let f=i[h];if(f==="\\"&&h+1<i.length){h++;continue}if(f==="{"){n++;continue}if(f==="}"){if(n>0)n--;continue}if(n===0&&(f===","||f===";"||Dii.test(f)))return!0}return!1}function z2f(i,n){let h=[],f=0,u=0;for(let p=0;p<i.length;p++){let g=i[p];if(g==="\\"&&p+1<i.length){p++;continue}if(g==="{"){f++;continue}if(g==="}"){if(f>0)f--;continue}if(f!==0||!b2f(g,n))continue;h.push(i.slice(u,p)),u=p+1}return h.push(i.slice(u)),h}async function zQn(i,n,h){if(I5(i))return!0;let f=W5(i).path,{basePath:u}=h(f),p=Wn(u,n);try{return await ow.promises.stat(p),!0}catch(g){if(w0(g)||v2(g,"ENAMETOOLONG"))return!1;throw g}}async function F00(i,n,h,f,u){let p=z2f(i,f);if(p.length<2)return null;let g=p.map(Cj).filter((w)=>w.length>0);if(g.length===0)return null;if(g.length<2&&p.length===g.length)return null;if(u!=="none"){let w=await Promise.all(g.map((c)=>zQn(c,n,h)));if(!(u==="all"?w.every(Boolean):w.some(Boolean)))return null}return g}async function Rii(i,n,h={}){let f=Cj(i);if(!J2f(f))return null;let u=h.splitter??Ck0;if(h.routedUrlPredicate?.(f)){let g=await F00(f,n,u,"semicolon","none");return g?.every(h.routedUrlPredicate)?g:null}if(I5(f))return null;if(await Jm(f,n)!=="missing")return null;let p=W5(f).path;if(!FW(p)&&await zQn(f,n,u))return null;return await F00(f,n,u,"semicolon","none")??await F00(f,n,u,"comma","some")??await F00(f,n,u,"whitespace","all")??await F00(f,n,u,"mixed","all")}async function V00(i,n,h={}){let f=[];for(let u of i){let p=Cj(u),g=await Rii(p,n,h);if(g)f.push(...g);else f.push(p)}return f}function Ck0(i){let n=vii(i),h=n.split("/"),f=-1;for(let u=0;u<h.length;u++)if(FW(h[u])){f=u;break}if(f===-1)return{basePath:n};if(f<=0)return{basePath:".",glob:n};return{basePath:h.slice(0,f).join("/"),glob:h.slice(f).join("/")}}async function QQn(i,n){if(!FW(i)||I5(i))return Ck0(i);try{return await ow.promises.stat(Wn(i,n)),{basePath:vii(i)}}catch{return Ck0(i)}}function $00(i){let n=vii(i),h=n.split("/"),f=-1;for(let u=0;u<h.length;u++)if(FW(h[u])){f=u;break}if(f===-1)return{basePath:n,globPattern:"**/*",hasGlob:!1};if(f===0)return{basePath:".",globPattern:!n.startsWith("**/")?`**/${n}`:n,hasGlob:!0};return{basePath:h.slice(0,f).join("/"),globPattern:h.slice(f).join("/"),hasGlob:!0}}function Lii(i,n){if(!i)return n;if(!n)return i;let h=i.replace(/\/+$/,""),f=n.replace(/^\/+/,"");return`${h}/${f}`}function UM(i){return i.replace(/\\/g,"/")}function YQn(i,n){if(!i||i===".")return UM(n).replace(/^\/+/,"");let h=UM(i).replace(/\/+$/,""),f=UM(n).replace(/^\/+/,"");return`${h}/${f}`}function Q2f(i){let n=[...new Set(i.map((h)=>UM(h).trim()).filter(Boolean))];if(n.length===0)return;if(n.length===1)return n[0];return`{${n.join(",")}}`}function x2f(i){if(i.length===0)return".";let n=Ch.resolve(i[0]).split(Ch.sep);for(let f of i.slice(1)){let u=Ch.resolve(f).split(Ch.sep),p=0,g=Math.min(n.length,u.length);while(p<g&&n[p]===u[p])p+=1;n=n.slice(0,p)}if(n.length===0)return Ch.parse(Ch.resolve(i[0])).root;return n.join(Ch.sep)||Ch.parse(Ch.resolve(i[0])).root}function xQn(i,n){return i.map((h)=>Dn(h,n,{trailingSlash:h.endsWith("/")||h.endsWith("\\")})).join(", ")}async function B2f(i,n,h,f=!1){if(i.length<1)return;let u=await Promise.all(i.map(async(W)=>{let Z=await QQn(W,n),Y=Wn(Z.basePath,n),k=await ow.promises.stat(Y);return{raw:W,parsedPath:Z,absoluteBasePath:Y,stat:k}})),p=!h&&u.every((W)=>!W.parsedPath.glob&&W.stat.isFile()),g=x2f(u.map((W)=>W.absoluteBasePath)),w=u.map((W)=>{let Z=UM(Ch.relative(g,W.absoluteBasePath))||".";if(W.parsedPath.glob){let Y=YQn(Z,W.parsedPath.glob);return Lii(Y,h)??Y}if(h)return Lii(Z==="."?void 0:Z,h)??h;if(W.stat.isDirectory())return YQn(Z,"**/*");return Z==="."?Ch.basename(W.absoluteBasePath):Z}),o=u.some((W)=>W.absoluteBasePath===g),c=f&&!p&&u.some((W)=>!W.parsedPath.glob&&W.stat.isFile()),U=u.length>1&&(!o||c)?u.map((W)=>({basePath:W.absoluteBasePath,glob:W.parsedPath.glob?Lii(W.parsedPath.glob,h):h})):void 0;return{basePath:g,glob:Q2f(w),scopePath:xQn(i,n),exactFilePaths:p?u.map((W)=>W.absoluteBasePath):void 0,targets:U}}async function j2f(i,n,h,f=!1){return B2f([...new Set(i)],n,h,f)}async function q2f(i,n){if(i.length<=1)return;return{targets:i.map((f)=>{let u=$00(f);return{basePath:Wn(u.basePath,n),globPattern:u.globPattern,hasGlob:u.hasGlob}}),scopePath:xQn(i,n)}}async function BQn(i,n){return q2f([...new Set(i)],n)}async function Tii(i,n,h){let f=await Promise.all(i.map(async(g)=>{let{basePath:w}=h(g),o=Wn(w,n);try{return await ow.promises.stat(o),{item:g,exists:!0}}catch(c){if(w0(c))return{item:g,exists:!1};throw c}})),u=[],p=[];for(let g of f)if(g.exists)u.push(g.item);else p.push(g.item);return{valid:u,missing:p}}function Z5(i,n){let h=Wn(i,n),f=g2f(h),u=f!==h?[h,f]:[h];for(let p of u)if(q00(p))return p;for(let p of u){let g=u2f(p);if(g!==p&&q00(g))return g;let w=p2f(p);if(w!==p&&q00(w))return w;let o=WQn(p);if(o!==p&&q00(o))return o;let c=WQn(w);if(c!==p&&q00(c))return c}return h}function H2f(i){return i.replace(/[*?[{]/g,"[$&]")}async function _k0(i,n,h){let f=i.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+$/,"");if(!f)return null;let u=AbortSignal.timeout(F2f),p=h?AbortSignal.any([h,u]):u,g;try{g=(await l0(p,()=>Iff({pattern:`**/${H2f(f)}`,path:n,hidden:!0}))).matches.map((o)=>o.path)}catch(w){if(w instanceof Error&&w.name==="AbortError"){if(!h?.aborted)return null;throw new P0}return null}if(g.length!==1)return null;return{absolutePath:Ch.resolve(n,g[0]),displayPath:g[0]}}async function ZM(i){let{rawPaths:n,cwd:h,internalUrlAction:f}=i,u=n.map(Cj);if(u.some((z)=>z.length===0))throw new T(O.puErrScopeEmpty);let p=await V00(u,h);if(p.some((z)=>z.length===0))throw new T("Search scope entries must be non-empty paths or globs");let g=/^(?:https?|ftp|ws|wss):\/\//i,w=w2.instance(),o=[],c=new Set;for(let z of p){let J=g.test(z);if(!J&&Qm(z)&&!FW(z))try{await ow.promises.stat(Wn(z,h))}catch(x){J=w0(x)||OH(x)}if(J){let x=i.resolveExternalUrl?await i.resolveExternalUrl(z):void 0;if(x){if(o.push(x.sourcePath),i.trackImmutableSources&&x.immutable)c.add(Ch.resolve(x.sourcePath));continue}throw new T(`Cannot ${f} external URL: ${z}. Use \`read\` to fetch web content, then search the returned text.`)}if(!w.canHandle(z)){o.push(z);continue}if(yii(z))throw new T(`Cannot ${f} a remote ssh:// path (no local file): ${z}. Use \`read ${z}\` to view it, or the \`search\` tool to grep remote files.`);if(FW(z))throw new T(`Glob patterns are not supported for internal URLs: ${z}`);let Q=await w.resolve(z,{cwd:h,settings:i.settings,signal:i.signal,localProtocolOptions:i.localProtocolOptions,skills:i.skills,pathOnly:!0});if(!Q.sourcePath)throw new T(`Cannot ${f} internal URL without a backing file: ${z}`);if(i.trackImmutableSources&&Q.immutable)c.add(Ch.resolve(Q.sourcePath));o.push(Q.sourcePath)}let U=[],W=o;if(o.length>1){let z=await Tii(o,h,Ck0);if(z.valid.length===0)throw new T(`Path not found: ${z.missing.join(", ")}`);W=z.valid,U=z.missing}let Z,Y,k,G,X;if(W.length===1){let z=await QQn(W[0]??".",h);Z=Wn(z.basePath,h),k=z.glob,Y=Dn(Z,h)}else{let z=await j2f(W,h,void 0,i.fanOutFileTargets===!0);if(!z)throw new T(O.puErrPathsRequired);if(Z=z.basePath,G=z.targets,i.surfaceExactFilePaths)X=z.exactFilePaths,k=X||G?void 0:z.glob;else k=G?void 0:z.glob;Y=z.scopePath}let b;try{b=(await Bun.file(Z).stat()).isDirectory()}catch{let z=i.multipathStatHint&&p.length>1?i.multipathStatHint:"";throw new T(`Path not found: ${Y}${z}`)}return{searchPath:Z,scopePath:Y,globFilter:k,isDirectory:b,multiTargets:G,exactFilePaths:X,missingPaths:U,immutableSourcePaths:c}}var lff,oQn,_ii,sff,cQn,UQn,rff,eff,i2f,n2f,h2f="\u202F",XQn,W2f,X2f,Dii,F2f=5000;var Bn=j(()=>{R();th();Up();qi();lff=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,oQn=String.raw`L?\d+(?:(?:[-+]|\.\.)L?\d+|-|\.\.)?`,_ii=`${oQn}(?:,${oQn})*`,sff=new RegExp(`^(?:${_ii}|raw|conflicts)$`,"i"),cQn=new RegExp(`^${_ii}$`,"i"),UQn=/^raw$/i,rff=new RegExp(String.raw`^(?:raw|conflicts|${_ii}|-\d+(?:[-+]\d+)?)$`,"i"),eff={agent:!0,artifact:!0,issue:!0,history:!0,local:!0,memory:!0,omp:!0,pr:!0,rule:!0,security:!0,skill:!0,ssh:!0,vault:!0},i2f=new Set(["mcp"]),n2f=/^([a-z][a-z0-9+.-]*):\/\//i,XQn=["agent://","artifact://","skill://","rule://","security://","local://","mcp://","ssh://","vault://"];W2f=/^L?(\d+)(?:(\.\.|[-+])L?(\d+)?)?$/i;X2f=["*","?","[","{"];Dii=/\s/});var YM;var yk0=j(()=>{YM={type:"module",name:"@linxiraos/zeta",version:"1.0.4",description:"Coding agent CLI with read, bash, edit, write tools and session management",homepage:"https://linxira-os.github.io",author:"Can Boluk",contributors:["Mario Zechner"],license:"MIT",repository:{type:"git",url:"git+https://github.com/Linxira-OS/linxira-zeta.git",directory:"packages/coding-agent"},bugs:{url:"https://github.com/can1357/oh-my-pi/issues"},keywords:["coding-agent","ai","llm","cli","tui","agent"],main:"./src/index.ts",types:"./src/index.ts",bin:{zeta:"src/cli.ts"},scripts:{build:"bun scripts/build-binary.ts",check:"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit",lint:"biome lint .",test:"bun ../../scripts/ci-test-ts.ts coding-agent-heavy --full",fix:"biome check --write --unsafe . && bun run format-prompts",fmt:"biome format --write . && bun run format-prompts","format-prompts":"bun scripts/format-prompts.ts","gen:tool-views":"bun --cwd=../collab-web run gen:tool-views","gen:bundle":"bun scripts/bundle-dist.ts","gen:mupdf":"bun scripts/embed-mupdf-wasm.ts --generate","gen:mupdf:reset":"bun scripts/embed-mupdf-wasm.ts --reset","gen:native":"bun --cwd=../natives run gen:native","gen:native:reset":"bun --cwd=../natives run gen:native:reset",prepack:"bun run gen:tool-views && bun run gen:bundle","bench:guard":"bun scripts/bench-guard.ts"},dependencies:{"@babel/parser":"^7.29.7","@linxiraos/pi-hashline":"1.0.4","@linxiraos/pi-stats":"1.0.4","@linxiraos/pi-omptype":"1.0.2","@linxiraos/pi-agent-core":"1.0.4","@linxiraos/pi-ai":"1.0.4","@linxiraos/pi-catalog":"1.0.4","@linxiraos/pi-mnemopi":"1.0.4","@linxiraos/pi-natives":"1.0.2","@linxiraos/pi-tui":"1.0.4","@linxiraos/pi-utils":"1.0.4","@linxiraos/pi-wire":"1.0.2","@linxiraos/pi-snapcompact":"1.0.4","@opentelemetry/api":"^1.9.1","@opentelemetry/api-logs":"^0.220.0","@opentelemetry/context-async-hooks":"^2.9.0","@opentelemetry/exporter-logs-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/resources":"^2.9.0","@opentelemetry/sdk-logs":"^0.220.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/sdk-trace-node":"^2.9.0",mupdf:"^1.28.0","puppeteer-core":"25.3.0"},optionalDependencies:{"@huggingface/transformers":"^4.2.0","sherpa-onnx-node":"1.13.2"},devDependencies:{"@types/bun":"^1.3.14"},engines:{bun:">=1.3.14"},files:["src","dist/cli.js","dist/docs-index.generated.txt","dist/CHANGELOG-*.md","dist/*.node","dist/template-*.css","dist/template-*.html","dist/template-*.js","dist/tool-views.generated-*.js","scripts","examples","README.md","CHANGELOG.md"],exports:{".":{types:"./src/index.ts",import:"./src/index.ts"},"./*":{types:"./src/*.ts",import:"./src/*.ts"},"./async":{types:"./src/async/index.ts",import:"./src/async/index.ts"},"./async/*":{types:"./src/async/*.ts",import:"./src/async/*.ts"},"./autoresearch":{types:"./src/autoresearch/index.ts",import:"./src/autoresearch/index.ts"},"./autoresearch/*":{types:"./src/autoresearch/*.ts",import:"./src/autoresearch/*.ts"},"./autoresearch/tools/*":{types:"./src/autoresearch/tools/*.ts",import:"./src/autoresearch/tools/*.ts"},"./capability":{types:"./src/capability/index.ts",import:"./src/capability/index.ts"},"./capability/*":{types:"./src/capability/*.ts",import:"./src/capability/*.ts"},"./cli/*":{types:"./src/cli/*.ts",import:"./src/cli/*.ts"},"./cli/gallery-fixtures":{types:"./src/cli/gallery-fixtures/index.ts",import:"./src/cli/gallery-fixtures/index.ts"},"./cli/gallery-fixtures/*":{types:"./src/cli/gallery-fixtures/*.ts",import:"./src/cli/gallery-fixtures/*.ts"},"./cli/commands/*":{types:"./src/cli/commands/*.ts",import:"./src/cli/commands/*.ts"},"./commands/*":{types:"./src/commands/*.ts",import:"./src/commands/*.ts"},"./commit":{types:"./src/commit/index.ts",import:"./src/commit/index.ts"},"./commit/*":{types:"./src/commit/*.ts",import:"./src/commit/*.ts"},"./commit/agentic":{types:"./src/commit/agentic/index.ts",import:"./src/commit/agentic/index.ts"},"./commit/agentic/*":{types:"./src/commit/agentic/*.ts",import:"./src/commit/agentic/*.ts"},"./commit/agentic/tools":{types:"./src/commit/agentic/tools/index.ts",import:"./src/commit/agentic/tools/index.ts"},"./commit/agentic/tools/*":{types:"./src/commit/agentic/tools/*.ts",import:"./src/commit/agentic/tools/*.ts"},"./commit/analysis":{types:"./src/commit/analysis/index.ts",import:"./src/commit/analysis/index.ts"},"./commit/analysis/*":{types:"./src/commit/analysis/*.ts",import:"./src/commit/analysis/*.ts"},"./commit/changelog":{types:"./src/commit/changelog/index.ts",import:"./src/commit/changelog/index.ts"},"./commit/changelog/*":{types:"./src/commit/changelog/*.ts",import:"./src/commit/changelog/*.ts"},"./commit/git/*":{types:"./src/commit/git/*.ts",import:"./src/commit/git/*.ts"},"./commit/map-reduce":{types:"./src/commit/map-reduce/index.ts",import:"./src/commit/map-reduce/index.ts"},"./commit/map-reduce/*":{types:"./src/commit/map-reduce/*.ts",import:"./src/commit/map-reduce/*.ts"},"./commit/utils/*":{types:"./src/commit/utils/*.ts",import:"./src/commit/utils/*.ts"},"./config/*":{types:"./src/config/*.ts",import:"./src/config/*.ts"},"./dap":{types:"./src/dap/index.ts",import:"./src/dap/index.ts"},"./dap/*":{types:"./src/dap/*.ts",import:"./src/dap/*.ts"},"./debug":{types:"./src/debug/index.ts",import:"./src/debug/index.ts"},"./debug/*":{types:"./src/debug/*.ts",import:"./src/debug/*.ts"},"./discovery":{types:"./src/discovery/index.ts",import:"./src/discovery/index.ts"},"./discovery/*":{types:"./src/discovery/*.ts",import:"./src/discovery/*.ts"},"./edit":{types:"./src/edit/index.ts",import:"./src/edit/index.ts"},"./edit/*":{types:"./src/edit/*.ts",import:"./src/edit/*.ts"},"./edit/modes/*":{types:"./src/edit/modes/*.ts",import:"./src/edit/modes/*.ts"},"./exa":{types:"./src/exa/index.ts",import:"./src/exa/index.ts"},"./exa/*":{types:"./src/exa/*.ts",import:"./src/exa/*.ts"},"./exec/*":{types:"./src/exec/*.ts",import:"./src/exec/*.ts"},"./export/*":{types:"./src/export/*.ts",import:"./src/export/*.ts"},"./export/html":{types:"./src/export/html/index.ts",import:"./src/export/html/index.ts"},"./export/html/*":{types:"./src/export/html/*.ts",import:"./src/export/html/*.ts"},"./extensibility/*":{types:"./src/extensibility/*.ts",import:"./src/extensibility/*.ts"},"./extensibility/custom-commands":{types:"./src/extensibility/custom-commands/index.ts",import:"./src/extensibility/custom-commands/index.ts"},"./extensibility/custom-commands/*":{types:"./src/extensibility/custom-commands/*.ts",import:"./src/extensibility/custom-commands/*.ts"},"./extensibility/custom-commands/bundled/ci-green":{types:"./src/extensibility/custom-commands/bundled/ci-green/index.ts",import:"./src/extensibility/custom-commands/bundled/ci-green/index.ts"},"./extensibility/custom-commands/bundled/review":{types:"./src/extensibility/custom-commands/bundled/review/index.ts",import:"./src/extensibility/custom-commands/bundled/review/index.ts"},"./extensibility/custom-tools":{types:"./src/extensibility/custom-tools/index.ts",import:"./src/extensibility/custom-tools/index.ts"},"./extensibility/custom-tools/*":{types:"./src/extensibility/custom-tools/*.ts",import:"./src/extensibility/custom-tools/*.ts"},"./extensibility/extensions":{types:"./src/extensibility/extensions/index.ts",import:"./src/extensibility/extensions/index.ts"},"./extensibility/extensions/*":{types:"./src/extensibility/extensions/*.ts",import:"./src/extensibility/extensions/*.ts"},"./extensibility/hooks":{types:"./src/extensibility/hooks/index.ts",import:"./src/extensibility/hooks/index.ts"},"./extensibility/hooks/*":{types:"./src/extensibility/hooks/*.ts",import:"./src/extensibility/hooks/*.ts"},"./extensibility/plugins":{types:"./src/extensibility/plugins/index.ts",import:"./src/extensibility/plugins/index.ts"},"./extensibility/plugins/*":{types:"./src/extensibility/plugins/*.ts",import:"./src/extensibility/plugins/*.ts"},"./extensibility/plugins/marketplace":{types:"./src/extensibility/plugins/marketplace/index.ts",import:"./src/extensibility/plugins/marketplace/index.ts"},"./extensibility/plugins/marketplace/*":{types:"./src/extensibility/plugins/marketplace/*.ts",import:"./src/extensibility/plugins/marketplace/*.ts"},"./internal-urls":{types:"./src/internal-urls/index.ts",import:"./src/internal-urls/index.ts"},"./internal-urls/*":{types:"./src/internal-urls/*.ts",import:"./src/internal-urls/*.ts"},"./eval":{types:"./src/eval/index.ts",import:"./src/eval/index.ts"},"./eval/js/*":{types:"./src/eval/js/*.ts",import:"./src/eval/js/*.ts"},"./eval/py/*":{types:"./src/eval/py/*.ts",import:"./src/eval/py/*.ts"},"./lsp":{types:"./src/lsp/index.ts",import:"./src/lsp/index.ts"},"./lsp/*":{types:"./src/lsp/*.ts",import:"./src/lsp/*.ts"},"./lsp/clients":{types:"./src/lsp/clients/index.ts",import:"./src/lsp/clients/index.ts"},"./lsp/clients/*":{types:"./src/lsp/clients/*.ts",import:"./src/lsp/clients/*.ts"},"./markit":{types:"./src/markit/index.ts",import:"./src/markit/index.ts"},"./markit/*":{types:"./src/markit/*.ts",import:"./src/markit/*.ts"},"./mcp":{types:"./src/mcp/index.ts",import:"./src/mcp/index.ts"},"./mcp/*":{types:"./src/mcp/*.ts",import:"./src/mcp/*.ts"},"./mcp/transports":{types:"./src/mcp/transports/index.ts",import:"./src/mcp/transports/index.ts"},"./mcp/transports/*":{types:"./src/mcp/transports/*.ts",import:"./src/mcp/transports/*.ts"},"./memories":{types:"./src/memories/index.ts",import:"./src/memories/index.ts"},"./memories/*":{types:"./src/memories/*.ts",import:"./src/memories/*.ts"},"./memory-backend":{types:"./src/memory-backend/index.ts",import:"./src/memory-backend/index.ts"},"./memory-backend/*":{types:"./src/memory-backend/*.ts",import:"./src/memory-backend/*.ts"},"./hindsight":{types:"./src/hindsight/index.ts",import:"./src/hindsight/index.ts"},"./hindsight/*":{types:"./src/hindsight/*.ts",import:"./src/hindsight/*.ts"},"./modes":{types:"./src/modes/index.ts",import:"./src/modes/index.ts"},"./modes/*":{types:"./src/modes/*.ts",import:"./src/modes/*.ts"},"./modes/acp":{types:"./src/modes/acp/index.ts",import:"./src/modes/acp/index.ts"},"./modes/acp/*":{types:"./src/modes/acp/*.ts",import:"./src/modes/acp/*.ts"},"./modes/components":{types:"./src/modes/components/index.ts",import:"./src/modes/components/index.ts"},"./modes/components/*":{types:"./src/modes/components/*.ts",import:"./src/modes/components/*.ts"},"./modes/components/extensions":{types:"./src/modes/components/extensions/index.ts",import:"./src/modes/components/extensions/index.ts"},"./modes/components/extensions/*":{types:"./src/modes/components/extensions/*.ts",import:"./src/modes/components/extensions/*.ts"},"./modes/components/status-line":{types:"./src/modes/components/status-line/index.ts",import:"./src/modes/components/status-line/index.ts"},"./modes/components/status-line/*":{types:"./src/modes/components/status-line/*.ts",import:"./src/modes/components/status-line/*.ts"},"./modes/controllers/*":{types:"./src/modes/controllers/*.ts",import:"./src/modes/controllers/*.ts"},"./modes/setup-wizard":{types:"./src/modes/setup-wizard/index.ts",import:"./src/modes/setup-wizard/index.ts"},"./modes/setup-wizard/*":{types:"./src/modes/setup-wizard/*.ts",import:"./src/modes/setup-wizard/*.ts"},"./modes/rpc/*":{types:"./src/modes/rpc/*.ts",import:"./src/modes/rpc/*.ts"},"./modes/theme/*":{types:"./src/modes/theme/*.ts",import:"./src/modes/theme/*.ts"},"./modes/theme/defaults":{types:"./src/modes/theme/defaults/index.ts",import:"./src/modes/theme/defaults/index.ts"},"./modes/utils/*":{types:"./src/modes/utils/*.ts",import:"./src/modes/utils/*.ts"},"./plan-mode/*":{types:"./src/plan-mode/*.ts",import:"./src/plan-mode/*.ts"},"./prompts/*":"./src/prompts/*.md","./secrets":{types:"./src/secrets/index.ts",import:"./src/secrets/index.ts"},"./secrets/*":{types:"./src/secrets/*.ts",import:"./src/secrets/*.ts"},"./session/*":{types:"./src/session/*.ts",import:"./src/session/*.ts"},"./slash-commands/*":{types:"./src/slash-commands/*.ts",import:"./src/slash-commands/*.ts"},"./ssh/*":{types:"./src/ssh/*.ts",import:"./src/ssh/*.ts"},"./stt":{types:"./src/stt/index.ts",import:"./src/stt/index.ts"},"./stt/*":{types:"./src/stt/*.ts",import:"./src/stt/*.ts"},"./task":{types:"./src/task/index.ts",import:"./src/task/index.ts"},"./task/*":{types:"./src/task/*.ts",import:"./src/task/*.ts"},"./tools":{types:"./src/tools/index.ts",import:"./src/tools/index.ts"},"./tools/hub":{types:"./src/tools/hub/index.ts",import:"./src/tools/hub/index.ts"},"./tools/hub/*":{types:"./src/tools/hub/*.ts",import:"./src/tools/hub/*.ts"},"./tools/*":{types:"./src/tools/*.ts",import:"./src/tools/*.ts"},"./tui":{types:"./src/tui/index.ts",import:"./src/tui/index.ts"},"./tui/*":{types:"./src/tui/*.ts",import:"./src/tui/*.ts"},"./utils/*":{types:"./src/utils/*.ts",import:"./src/utils/*.ts"},"./web/*":{types:"./src/web/*.ts",import:"./src/web/*.ts"},"./web/scrapers":{types:"./src/web/scrapers/index.ts",import:"./src/web/scrapers/index.ts"},"./web/scrapers/*":{types:"./src/web/scrapers/*.ts",import:"./src/web/scrapers/*.ts"},"./web/search":{types:"./src/web/search/index.ts",import:"./src/web/search/index.ts"},"./web/search/*":{types:"./src/web/search/*.ts",import:"./src/web/search/*.ts"},"./web/search/providers/*":{types:"./src/web/search/providers/*.ts",import:"./src/web/search/providers/*.ts"},"./*.js":"./src/*.ts"}}});import*as g7 from"fs/promises";import*as K00 from"path";function qQn(i,n){let f=(n.trim().toLowerCase().replace(/^\.+/,"")||"bin").replace(/[^a-z0-9]+/g,"_")||"bin",u=YM.version.replace(/[^a-z0-9]+/gi,"_"),p=new Bun.CryptoHasher("sha256").update(i).digest("hex");return`v${Mk0}-${u}-${f}-${p}`}function K2f(i){return K00.join(fN0(),`${i}.json`)}function xm(i){return i instanceof Error?i.message:String(i)}function m2f(i){let n=JSON.parse(i);if(typeof n!=="object"||n===null)return null;if(!("version"in n)||n.version!==Mk0)return null;if(!("content"in n)||typeof n.content!=="string"||n.content.length===0)return null;return{version:Mk0,content:n.content}}async function FQn(i){let n=K2f(i),h;try{h=await Bun.file(n).text()}catch(u){if(!w0(u))V.debug("document conversion cache read failed",{error:xm(u)});return{status:"miss"}}let f;try{f=m2f(h)}catch(u){V.debug("document conversion cache read failed",{error:xm(u)}),f=null}if(!f)return await g7.rm(n,{force:!0}).catch(()=>{return}),{status:"miss"};return{status:"hit",content:f.content}}async function A2f(i){let n;try{n=await g7.readdir(i)}catch(p){if(!w0(p))V.debug("document conversion cache prune failed",{error:xm(p)});return}let h=Date.now(),f=[],u=0;for(let p of n){let g=K00.join(i,p),w;try{w=await g7.stat(g)}catch(o){if(!w0(o))V.debug("document conversion cache prune failed",{error:xm(o)});continue}if(!w.isFile())continue;if(p.endsWith(".tmp")){if(h-w.mtimeMs>$2f)await g7.rm(g,{force:!0}).catch(()=>{return});continue}if(!p.endsWith(".json"))continue;f.push({path:g,size:w.size,mtimeMs:w.mtimeMs}),u+=w.size}if(u<=jQn)return;f.sort((p,g)=>p.mtimeMs-g.mtimeMs);for(let p of f){if(u<=jQn)break;try{await g7.rm(p.path,{force:!0}),u-=p.size}catch(g){if(!w0(g))V.debug("document conversion cache prune failed",{error:xm(g)})}}}async function HQn(i,n){let h=fN0(),f=K00.join(h,`${i}.json`),u=K00.join(h,`${i}.${process.pid}.${Date.now()}.${crypto.randomUUID()}.tmp`),p=JSON.stringify({version:Mk0,content:n});try{await g7.mkdir(h,{recursive:!0}),await Bun.write(u,p),await g7.rename(u,f)}catch(g){await g7.rm(u,{force:!0}).catch(()=>{return}),V.debug("document conversion cache write failed",{error:xm(g)});return}A2f(h).catch((g)=>{V.debug("document conversion cache prune failed",{error:xm(g)})})}var Mk0=1,jQn=268435456,$2f=300000;var VQn=j(()=>{R();yk0()});function $Qn(){return}function tii(i){return i.replace(O2f,(n)=>{switch(n){case"&":return"&";case"'":return"'";case">":return">";case"<":return"<";case""":return'"';default:{let h=n[2]==="x",f=n.slice(h?3:2,-1),u=Number.parseInt(f,h?16:10);return Number.isFinite(u)?String.fromCodePoint(u):n}}})}function VW(i){let n=i.indexOf(":");return n===-1?i:i.slice(n+1)}function Bm(i){let n={name:"#document",attributes:new Map,children:[]},h=[n],f=0;while(f<i.length){let p=i.indexOf("<",f);if(p===-1){let o=tii(i.slice(f));if(o)h[h.length-1].children.push({kind:"text",value:o});break}if(p>f){let o=tii(i.slice(f,p));if(o)h[h.length-1].children.push({kind:"text",value:o})}if(i.startsWith("<!--",p)){let o=i.indexOf("-->",p+4);if(o===-1)throw Error("Invalid XML: unterminated comment");f=o+3;continue}if(i.startsWith("<![CDATA[",p)){let o=i.indexOf("]]>",p+9);if(o===-1)throw Error("Invalid XML: unterminated CDATA section");h[h.length-1].children.push({kind:"text",value:i.slice(p+9,o)}),f=o+3;continue}if(i.startsWith("<?",p)){let o=i.indexOf("?>",p+2);if(o===-1)throw Error("Invalid XML: unterminated processing instruction");f=o+2;continue}if(i.startsWith("<!",p)){let o=i.indexOf(">",p+2);if(o===-1)throw Error("Invalid XML: unterminated declaration");f=o+1;continue}let g=i.indexOf(">",p+1);if(g===-1)throw Error("Invalid XML: unterminated tag");let w=i.slice(p+1,g).trim();if(w.startsWith("/")){if(h.length===1)throw Error("Invalid XML: unexpected closing tag");let o=w.slice(1).trim(),c=h.pop();if(!c||c.name!==o)throw Error(`Invalid XML: mismatched closing tag ${o}`);h[h.length-1].children.push({kind:"element",name:c.name,attributes:c.attributes,children:c.children})}else{let o=w.endsWith("/"),c=o?w.slice(0,-1).trim():w,U=c.search(/\s/),W=U===-1?c:c.slice(0,U),Z=new Map;dii.lastIndex=U===-1?c.length:U;for(let k=dii.exec(c);k;k=dii.exec(c))Z.set(k[1],tii(k[2]??k[3]??""));let Y={name:W,attributes:Z,children:[]};if(o)h[h.length-1].children.push({kind:"element",...Y});else h.push(Y)}f=g+1}if(h.length!==1)throw Error(`Invalid XML: unclosed tag ${h[h.length-1].name}`);let u=n.children.filter((p)=>p.kind==="element");if(u.length!==1)throw Error("Invalid XML: expected one root element");return u[0]}function pg(i,n){return i.children.filter((h)=>h.kind==="element"&&(n===void 0||VW(h.name)===n))}function Yp(i,n){if(!i)return;return i.children.find((h)=>h.kind==="element"&&VW(h.name)===n)}function C1(i,n){if(!i)return;let h=i.attributes.get(n);if(h!==void 0)return h;for(let[f,u]of i.attributes)if(VW(f)===VW(n))return u;return}function vk0(i,n){let h=[];for(let f of pg(i)){if(VW(f.name)===n)h.push(f);h.push(...vk0(f,n))}return h}var O2f,dii;var KQn=j(()=>{O2f=/&(?:#x[\da-fA-F]+|#\d+|amp|apos|gt|lt|quot);/g,dii=/([^\s=]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g});import*as mQn from"zlib";function OQn(i){return new DataView(i.buffer,i.byteOffset,i.byteLength)}function D2f(i){let n=OQn(i);for(let h=i.byteLength-22,f=Math.max(0,i.byteLength-L2f);h>=f;h--)if(n.getUint32(h,!0)===C2f)return h;throw Error("Invalid DOCX: missing ZIP end record")}function NQn(i){if(i.byteLength<22)throw Error("Invalid DOCX: truncated ZIP package");let n=OQn(i),h=D2f(i),f=n.getUint16(h+10,!0),u=n.getUint32(h+12,!0),p=n.getUint32(h+16,!0);if(f===65535||u===4294967295||p===4294967295)throw Error("Invalid DOCX: ZIP64 packages are not supported");if(p+u>i.byteLength)throw Error("Invalid DOCX: truncated ZIP central directory");let g=new Map,w=p;for(let o=0;o<f;o++){if(w+46>i.byteLength||n.getUint32(w,!0)!==a2f)throw Error("Invalid DOCX: malformed ZIP central directory");let c=n.getUint16(w+8,!0),U=n.getUint16(w+10,!0),W=n.getUint32(w+20,!0),Z=n.getUint32(w+24,!0),Y=n.getUint16(w+28,!0),k=n.getUint16(w+30,!0),G=n.getUint16(w+32,!0),X=n.getUint32(w+42,!0),b=w+46+Y+k+G;if(b>i.byteLength)throw Error("Invalid DOCX: truncated ZIP entry");let z=AQn.decode(i.subarray(w+46,w+46+Y)).replaceAll("\\","/");if((c&1)!==0)throw Error(`Invalid DOCX: encrypted ZIP member ${z}`);if(X+30>i.byteLength||n.getUint32(X,!0)!==N2f)throw Error(`Invalid DOCX: missing local header for ${z}`);let J=n.getUint16(X+26,!0),Q=n.getUint16(X+28,!0),x=X+30+J+Q,q=x+W;if(q>i.byteLength)throw Error(`Invalid DOCX: truncated ZIP member ${z}`);let H=i.subarray(x,q),F;if(U===0)F=H;else if(U===8)F=mQn.inflateRawSync(H,{maxOutputLength:Math.max(Z,1)});else throw Error(`Invalid DOCX: unsupported ZIP compression method ${U}`);if(F.byteLength!==Z)throw Error(`Invalid DOCX: size mismatch for ZIP member ${z}`);if(z&&!z.endsWith("/"))g.set(z,F);w=b}return g}function jm(i,n){let h=i.get(n);return h?AQn.decode(h):void 0}var N2f=67324752,a2f=33639248,C2f=101010256,L2f=65557,AQn;var aQn=j(()=>{AQn=new TextDecoder});import*as CQn from"fs/promises";import*as Tk0 from"path";function LQn(i){return i.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")}function kM(i){return LQn(i).replaceAll('"',""")}function Rk0(i){if(!i)return;let n=C1(i,"w:val")?.toLowerCase();return n!=="0"&&n!=="false"&&n!=="off"&&n!=="none"}function DQn(i){if(!i)return{};let n=C1(Yp(i,"vertAlign"),"w:val");return{bold:Rk0(Yp(i,"b")),italic:Rk0(Yp(i,"i")),strike:Rk0(Yp(i,"strike"))??Rk0(Yp(i,"dstrike")),vertical:n==="subscript"||n==="superscript"?n:void 0}}function _Qn(i,n){return{bold:n.bold??i.bold,italic:n.italic??i.italic,strike:n.strike??i.strike,vertical:n.vertical??i.vertical}}function yQn(i){let n=Yp(i,"numPr"),h=C1(Yp(n,"numId"),"w:val");if(!h||h==="0")return;let f=C1(Yp(n,"ilvl"),"w:val");return{id:h,level:f?Number.parseInt(f,10)||0:0}}function y2f(i){let n=new Map;if(!i)return n;let h=Bm(i);for(let f of pg(h,"style")){let u=C1(f,"w:styleId"),p=C1(f,"w:type");if(!u||p!=="paragraph"&&p!=="character")continue;n.set(u,{id:u,type:p,name:C1(Yp(f,"name"),"w:val")??u,basedOn:C1(Yp(f,"basedOn"),"w:val"),formatting:DQn(Yp(f,"rPr")),numbering:yQn(Yp(f,"pPr")),isDefault:C1(f,"w:default")==="1"||C1(f,"w:default")==="true"})}return n}function MQn(i,n,h=new Set){if(!i||h.has(i.id))return{};h.add(i.id);let f=i.basedOn?MQn(n.get(i.basedOn),n,h):{};return _Qn(f,i.formatting)}function vQn(i,n,h=new Set){if(!i||h.has(i.id))return;return h.add(i.id),i.numbering??(i.basedOn?vQn(n.get(i.basedOn),n,h):void 0)}function M2f(i){let n=new Map;if(!i)return n;let h=Bm(i);for(let f of pg(h,"Relationship")){let u=C1(f,"Id"),p=C1(f,"Target");if(!u||!p)continue;n.set(u,{target:p,type:C1(f,"Type")??"",external:C1(f,"TargetMode")==="External"})}return n}function v2f(i){let n=new Map;if(!i)return n;let h=Bm(i);for(let f of pg(h))if(VW(f.name)==="Default"){let u=C1(f,"Extension")?.toLowerCase(),p=C1(f,"ContentType");if(u&&p)n.set(`.${u}`,p)}else if(VW(f.name)==="Override"){let u=C1(f,"PartName"),p=C1(f,"ContentType");if(u&&p)n.set(u.startsWith("/")?u.slice(1):u,p)}return n}function R2f(i){let n=new Map;if(!i)return n;let h=Bm(i),f=new Map;for(let u of pg(h,"abstractNum")){let p=C1(u,"w:abstractNumId");if(!p)continue;let g=new Map;for(let w of pg(u,"lvl")){let o=Number.parseInt(C1(w,"w:ilvl")??"0",10)||0;g.set(o,{ordered:C1(Yp(w,"numFmt"),"w:val")!=="bullet"})}f.set(p,g)}for(let u of pg(h,"num")){let p=C1(u,"w:numId"),g=C1(Yp(u,"abstractNumId"),"w:val");if(p&&g)n.set(p,f.get(g)??new Map)}return n}function T2f(i){let n=new Map;if(!i)return n;for(let h of pg(Bm(i),"footnote")){let f=C1(h,"w:id");if(f&&!f.startsWith("-"))n.set(f,h)}return n}function d2f(i){let n=typeof i==="string"?i.split(`
|
|
4045
4045
|
`):i??[],h=[];for(let f of n){let u=/^\s*(p|r)\s*\[style-name\s*=\s*['"]([^'"]+)['"]\]\s*=>\s*([\w-]+)/i.exec(f);if(!u)continue;h.push({kind:u[1].toLowerCase()==="p"?"paragraph":"character",styleName:u[2],tag:u[3]})}return h}function RQn(i,n,h){if(!n)return;return i.customStyles.find((f)=>f.kind===h&&f.styleName===n.name)}function TQn(i,n,h,f){let u=`${f}:${n}`;if(i.warnedStyles.has(u))return;i.warnedStyles.add(u);let p=h?.name??n;i.messages.push({type:"warning",message:`Unrecognised ${f} style: '${p}' (Style ID: ${n})`})}function t2f(i,n){if(!n)return"p";let h=i.styles.get(n),f=RQn(i,h,"paragraph");if(f)return f.tag;let u=i.includeDefaultStyleMap?/^(?:heading\s*|heading)([1-6])$/i.exec(h?.name??n):null;if(u)return`h${u[1]}`;if(!h?.isDefault&&(h?.name.toLowerCase()??n.toLowerCase())!=="normal")TQn(i,n,h,"paragraph");return"p"}function E2f(i){if(i.startsWith("/"))return i.slice(1);return Tk0.posix.normalize(Tk0.posix.join("word",i))}function P2f(i,n){let h=i;if(n.strike)h=`<s>${h}</s>`;if(n.vertical==="subscript")h=`<sub>${h}</sub>`;if(n.vertical==="superscript")h=`<sup>${h}</sup>`;if(n.italic)h=`<em>${h}</em>`;if(n.bold)h=`<strong>${h}</strong>`;return h}async function S2f(i,n){let h=vk0(i,"blip")[0],f=C1(h,"r:embed"),u=f?n.relationships.get(f):void 0;if(!u||u.external)return"";let p=E2f(u.target),g=n.entries.get(p);if(!g)return n.messages.push({type:"warning",message:`Could not find image ${p}`}),"";let w=vk0(i,"docPr")[0],o=C1(w,"descr")??C1(w,"title")??"",c=Tk0.posix.extname(p).toLowerCase(),W={contentType:n.contentTypes.get(p)??n.contentTypes.get(c)??_2f[c.slice(1)]??"application/octet-stream",altText:o,async read(k){if(k!=="base64")throw Error(`Unsupported image encoding: ${k}`);return Buffer.from(g.buffer,g.byteOffset,g.byteLength).toString("base64")}},Z=await n.convertImage.convert(W),Y=Object.entries(Z).filter((k)=>typeof k[1]==="string").sort(([k],[G])=>k.localeCompare(G)).map(([k,G])=>`${k}="${kM(G)}"`).join(" ");return Y?`<img ${Y} />`:"<img />"}function I2f(i,n){let h=C1(i,"w:id");if(!h||!n.footnotes.has(h))return"";let f=n.footnoteOrdinals.get(h);if(f===void 0)f=n.usedFootnotes.length+1,n.footnoteOrdinals.set(h,f),n.usedFootnotes.push({id:h,ordinal:f});return`<sup><a href="#footnote-${kM(h)}" id="footnote-ref-${kM(h)}">[${f}]</a></sup>`}async function Eii(i,n){let h="";for(let f of i.children){if(f.kind==="text")continue;let u=VW(f.name);if(u==="r")h+=await l2f(f,n);else if(u==="hyperlink"){let p=await Eii(f,n),g=C1(f,"r:id"),w=C1(f,"w:anchor"),o=g?n.relationships.get(g)?.target:w?`#${w}`:void 0;h+=o?`<a href="${kM(o)}">${p}</a>`:p}else if(u!=="del")h+=await Eii(f,n)}return h}async function l2f(i,n){let h=Yp(i,"rPr"),f=C1(Yp(h,"rStyle"),"w:val"),u=f?n.styles.get(f):void 0,p=RQn(n,u,"character"),g=_Qn(MQn(u,n.styles),DQn(h));if(f&&!p)if(n.includeDefaultStyleMap&&(u?.name??f).toLowerCase()==="strong")g={...g,bold:!0};else TQn(n,f,u,"run");let w="";for(let c of pg(i)){let U=VW(c.name);if(U==="t"||U==="instrText"){for(let W of c.children)if(W.kind==="text")w+=LQn(W.value)}else if(U==="tab")w+="\t";else if(U==="br"){if(C1(c,"w:type")!=="page")w+="<br />"}else if(U==="noBreakHyphen")w+="\u2011";else if(U==="softHyphen")w+="\xAD";else if(U==="drawing"||U==="pict")w+=await S2f(c,n);else if(U==="footnoteReference")w+=I2f(c,n)}let o=P2f(w,g);if(p)o=`<${p.tag}>${o}</${p.tag}>`;return o}async function s2f(i,n){let h=Yp(i,"pPr"),f=C1(Yp(h,"pStyle"),"w:val"),u=f?n.styles.get(f):void 0,p=t2f(n,f),w=yQn(h)??vQn(u,n.styles),o=await Eii(i,n);if(!o&&!w)return;let c=w?n.numbering.get(w.id)?.get(w.level):void 0;return{kind:"paragraph",html:o,tag:p,list:w?{level:w.level,ordered:c?.ordered??!0}:void 0}}function dQn(i,n,h){let f=i[n].list?.ordered??!0,u=f?"ol":"ul",p=`<${u}>`,g=n;while(g<i.length){let w=i[g],o=w.list;if(!o||o.level<h||o.level===h&&o.ordered!==f)break;if(o.level>h)break;p+=`<li>${w.html}`,g++;while(g<i.length&&(i[g].list?.level??-1)>h){let c=dQn(i,g,i[g].list?.level??h+1);p+=c.html,g=c.next}p+="</li>"}return p+=`</${u}>`,{html:p,next:g}}function Pii(i){let n="";for(let h=0;h<i.length;){let f=i[h];if(f.kind==="html"){n+=f.html,h++;continue}if(!f.list){n+=`<${f.tag}>${f.html}</${f.tag}>`,h++;continue}let u=[];while(h<i.length){let p=i[h];if(p.kind!=="paragraph"||!p.list)break;u.push(p),h++}for(let p=0;p<u.length;){let g=dQn(u,p,u[p].list?.level??0);n+=g.html,p=g.next}}return n}async function r2f(i,n){let h=Yp(i,"tcPr"),f=Number.parseInt(C1(Yp(h,"gridSpan"),"w:val")??"1",10)||1,u=Yp(h,"vMerge"),p=C1(u,"w:val"),g=u?p==="restart"?"restart":"continue":void 0,w=await tk0(pg(i),n);return{html:Pii(w),columnSpan:f,merge:g}}async function e2f(i,n){let h=[],f=new Map;for(let p of pg(i,"tr")){let g=[],w=new Map,o=0,c=new Set;for(let U of pg(p,"tc")){let W=await r2f(U,n);if(W.merge==="continue"){let Y=f.get(o);if(Y){if(!c.has(Y))Y.rowSpan++,c.add(Y);for(let k=0;k<W.columnSpan;k++)w.set(o+k,Y);o+=W.columnSpan;continue}}let Z={html:W.html,columnSpan:W.columnSpan,rowSpan:1};if(g.push(Z),W.merge==="restart")for(let Y=0;Y<W.columnSpan;Y++)w.set(o+Y,Z);o+=W.columnSpan}h.push(g),f=w}let u="<table>";for(let p of h){u+="<tr>";for(let g of p){let w=g.columnSpan>1?` colspan="${g.columnSpan}"`:"",o=g.rowSpan>1?` rowspan="${g.rowSpan}"`:"";u+=`<td${w}${o}>${g.html}</td>`}u+="</tr>"}return`${u}</table>`}async function tk0(i,n){let h=[];for(let f of i){let u=VW(f.name);if(u==="p"){let p=await s2f(f,n);if(p)h.push(p)}else if(u==="tbl")h.push({kind:"html",html:await e2f(f,n)});else if(u==="sdt"||u==="customXml")h.push(...await tk0(pg(f),n))}return h}async function iuf(i){if(i.usedFootnotes.length===0)return"";let n="<ol>";for(let h of i.usedFootnotes){let f=i.footnotes.get(h.id);if(!f)continue;let u=Pii(await tk0(pg(f),i)),p=`<a href="#footnote-ref-${kM(h.id)}">\u2191</a>`,g=u.lastIndexOf("</p>");if(g===-1)u+=p;else u=`${u.slice(0,g)} ${p}${u.slice(g)}`;n+=`<li id="footnote-${kM(h.id)}">${u}</li>`}return`${n}</ol>`}function nuf(){return dk0.imgElement(async(i)=>({alt:i.altText,src:`data:${i.contentType};base64,${await i.read("base64")}`}))}async function Sii(i,n={}){let h="buffer"in i&&i.buffer?i.buffer:await CQn.readFile(i.path),f=NQn(h),u=jm(f,"word/document.xml");if(!u)throw Error("Invalid DOCX: missing word/document.xml");let p={entries:f,relationships:M2f(jm(f,"word/_rels/document.xml.rels")),contentTypes:v2f(jm(f,"[Content_Types].xml")),styles:y2f(jm(f,"word/styles.xml")),numbering:R2f(jm(f,"word/numbering.xml")),messages:[],warnedStyles:new Set,customStyles:d2f(n.styleMap),includeDefaultStyleMap:n.includeDefaultStyleMap!==!1,convertImage:n.convertImage??nuf(),footnotes:T2f(jm(f,"word/footnotes.xml")),usedFootnotes:[],footnoteOrdinals:new Map},g=Bm(u),w=Yp(g,"body");if(!w)throw Error("Invalid DOCX: missing document body");return{value:Pii(await tk0(pg(w),p))+await iuf(p),messages:p.messages}}var dk0,_2f;var Iii=j(()=>{KQn();aQn();dk0={imgElement(i){return{convert:i}}},_2f={bmp:"image/bmp",gif:"image/gif",jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp"}});var huf,Ek0;var tQn=j(()=>{Iii();Iii();huf={convertToHtml:Sii,images:dk0},Ek0=huf});function Pk0(i,n){let h=[];for(let f of Array.from(i.children)){if(f.nodeName===n)h.push(f);if(f.nodeName!=="TABLE")h.push(...Pk0(f,n))}return h}function fuf(i){if(i.nodeName!=="TABLE")return!1;let n=Pk0(i,"TR")[0];if(!n)return!1;let h=Array.from(n.children);return h.length>0&&h.every((f)=>f.nodeName==="TH")}function uuf(i){let n=i.getAttribute("align")?.toLowerCase();if(n==="left"||n==="center"||n==="right")return n;let h=i.getAttribute("style")??"",f=/(?:^|;)\s*text-align\s*:\s*(left|center|right)\s*(?:;|$)/i.exec(h)?.[1]?.toLowerCase();return f==="left"||f==="center"||f==="right"?f:void 0}function puf(i){let n=uuf(i);if(n==="left")return":--";if(n==="center")return":-:";if(n==="right")return"--:";return"---"}function guf(i,n){let h=Pk0(n,"TR"),f=[];for(let u=0;u<h.length;u++){let p=h[u];if(!p)continue;let g=Array.from(p.children).filter((o)=>o.nodeName==="TH"||o.nodeName==="TD"),w=g.map((o)=>i.convertChildren(o).trim());if(f.push(`| ${w.join(" | ")} |`),u===0)f.push(`| ${g.map(puf).join(" | ")} |`)}return`
|
|
4046
4046
|
|
|
4047
4047
|
${f.join(`
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@linxiraos/zeta",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://linxira-os.github.io",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -50,18 +50,18 @@
|
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@babel/parser": "^7.29.7",
|
|
53
|
-
"@linxiraos/pi-hashline": "1.0.
|
|
54
|
-
"@linxiraos/pi-stats": "1.0.
|
|
55
|
-
"@linxiraos/pi-omptype": "1.0.
|
|
56
|
-
"@linxiraos/pi-agent-core": "1.0.
|
|
57
|
-
"@linxiraos/pi-ai": "1.0.
|
|
58
|
-
"@linxiraos/pi-catalog": "1.0.
|
|
59
|
-
"@linxiraos/pi-mnemopi": "1.0.
|
|
60
|
-
"@linxiraos/pi-natives": "1.0.
|
|
61
|
-
"@linxiraos/pi-tui": "1.0.
|
|
62
|
-
"@linxiraos/pi-utils": "1.0.
|
|
63
|
-
"@linxiraos/pi-wire": "1.0.
|
|
64
|
-
"@linxiraos/pi-snapcompact": "1.0.
|
|
53
|
+
"@linxiraos/pi-hashline": "1.0.4",
|
|
54
|
+
"@linxiraos/pi-stats": "1.0.4",
|
|
55
|
+
"@linxiraos/pi-omptype": "1.0.2",
|
|
56
|
+
"@linxiraos/pi-agent-core": "1.0.4",
|
|
57
|
+
"@linxiraos/pi-ai": "1.0.4",
|
|
58
|
+
"@linxiraos/pi-catalog": "1.0.4",
|
|
59
|
+
"@linxiraos/pi-mnemopi": "1.0.4",
|
|
60
|
+
"@linxiraos/pi-natives": "1.0.2",
|
|
61
|
+
"@linxiraos/pi-tui": "1.0.4",
|
|
62
|
+
"@linxiraos/pi-utils": "1.0.4",
|
|
63
|
+
"@linxiraos/pi-wire": "1.0.2",
|
|
64
|
+
"@linxiraos/pi-snapcompact": "1.0.4",
|
|
65
65
|
"@opentelemetry/api": "^1.9.1",
|
|
66
66
|
"@opentelemetry/api-logs": "^0.220.0",
|
|
67
67
|
"@opentelemetry/context-async-hooks": "^2.9.0",
|