@compass-ai/nova 1.1.36 → 1.1.37
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 +5 -5
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -16,7 +16,7 @@ GFS4: `),console.error(t)});N0[uw]||(dhn=global[uw]||[],fhn(N0,dhn),N0.close=(fu
|
|
|
16
16
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:i,destStat:o}=await Cve.checkPaths(t,e,"copy",n);if(await Cve.checkParentPaths(t,i,e,"copy"),!await Dhn(t,e,n))return;let u=Tve.dirname(e);await fqr(u)||await pqr(u),await Phn(o,t,e,n)}async function Dhn(t,e,n){return n.filter?n.filter(t,e):!0}async function Phn(t,e,n,i){let a=await(i.dereference?WA.stat:WA.lstat)(e);if(a.isDirectory())return vqr(a,t,e,n,i);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return _qr(a,t,e,n,i);if(a.isSymbolicLink())return Iqr(t,e,n,i);throw a.isSocket()?new Error(`Cannot copy a socket file: ${e}`):a.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}async function _qr(t,e,n,i,o){if(!e)return Nhn(t,n,i,o);if(o.overwrite)return await WA.unlink(i),Nhn(t,n,i,o);if(o.errorOnExist)throw new Error(`'${i}' already exists`)}async function Nhn(t,e,n,i){if(await WA.copyFile(e,n),i.preserveTimestamps){yqr(t.mode)&&await bqr(n,t.mode);let o=await WA.stat(e);await mqr(n,o.atime,o.mtime)}return WA.chmod(n,t.mode)}function yqr(t){return(t&128)===0}function bqr(t,e){return WA.chmod(t,e|128)}async function vqr(t,e,n,i,o){e||await WA.mkdir(i),await hqr(await WA.opendir(n),async a=>{let u=Tve.join(n,a.name),p=Tve.join(i,a.name);if(await Dhn(u,p,o)){let{destStat:_}=await Cve.checkPaths(u,p,"copy",o);await Phn(_,u,p,o)}}),e||await WA.chmod(i,t.mode)}async function Iqr(t,e,n,i){let o=await WA.readlink(e);if(i.dereference&&(o=Tve.resolve(process.cwd(),o)),!t)return WA.symlink(o,n);let a=null;try{a=await WA.readlink(n)}catch(u){if(u.code==="EINVAL"||u.code==="UNKNOWN")return WA.symlink(o,n);throw u}if(i.dereference&&(a=Tve.resolve(process.cwd(),a)),o!==a){if(Cve.isSrcSubdir(o,a))throw new Error(`Cannot copy '${o}' to a subdirectory of itself, '${a}'.`);if(Cve.isSrcSubdir(a,o))throw new Error(`Cannot overwrite '${a}' with '${o}'.`)}return await WA.unlink(n),WA.symlink(o,n)}Fhn.exports=gqr});var Vhn=De((U5s,Whn)=>{"use strict";var vT=_Q(),kve=Es("path"),Sqr=nO().mkdirsSync,Eqr=E0t().utimesMillisSync,Rve=yQ();function wqr(t,e,n){typeof n=="function"&&(n={filter:n}),n=n||{},n.clobber="clobber"in n?!!n.clobber:!0,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
|
|
17
17
|
|
|
18
18
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:i,destStat:o}=Rve.checkPathsSync(t,e,"copy",n);if(Rve.checkParentPathsSync(t,i,e,"copy"),n.filter&&!n.filter(t,e))return;let a=kve.dirname(e);return vT.existsSync(a)||Sqr(a),Ohn(o,t,e,n)}function Ohn(t,e,n,i){let a=(i.dereference?vT.statSync:vT.lstatSync)(e);if(a.isDirectory())return Nqr(a,t,e,n,i);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return Aqr(a,t,e,n,i);if(a.isSymbolicLink())return Fqr(t,e,n,i);throw a.isSocket()?new Error(`Cannot copy a socket file: ${e}`):a.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function Aqr(t,e,n,i,o){return e?xqr(t,n,i,o):Ghn(t,n,i,o)}function xqr(t,e,n,i){if(i.overwrite)return vT.unlinkSync(n),Ghn(t,e,n,i);if(i.errorOnExist)throw new Error(`'${n}' already exists`)}function Ghn(t,e,n,i){return vT.copyFileSync(e,n),i.preserveTimestamps&&Tqr(t.mode,e,n),A0t(n,t.mode)}function Tqr(t,e,n){return Cqr(t)&&kqr(n,t),Rqr(e,n)}function Cqr(t){return(t&128)===0}function kqr(t,e){return A0t(t,e|128)}function A0t(t,e){return vT.chmodSync(t,e)}function Rqr(t,e){let n=vT.statSync(t);return Eqr(e,n.atime,n.mtime)}function Nqr(t,e,n,i,o){return e?Lhn(n,i,o):Dqr(t.mode,n,i,o)}function Dqr(t,e,n,i){return vT.mkdirSync(n),Lhn(e,n,i),A0t(n,t)}function Lhn(t,e,n){let i=vT.opendirSync(t);try{let o;for(;(o=i.readSync())!==null;)Pqr(o.name,t,e,n)}finally{i.closeSync()}}function Pqr(t,e,n,i){let o=kve.join(e,t),a=kve.join(n,t);if(i.filter&&!i.filter(o,a))return;let{destStat:u}=Rve.checkPathsSync(o,a,"copy",i);return Ohn(u,o,a,i)}function Fqr(t,e,n,i){let o=vT.readlinkSync(e);if(i.dereference&&(o=kve.resolve(process.cwd(),o)),t){let a;try{a=vT.readlinkSync(n)}catch(u){if(u.code==="EINVAL"||u.code==="UNKNOWN")return vT.symlinkSync(o,n);throw u}if(i.dereference&&(a=kve.resolve(process.cwd(),a)),o!==a){if(Rve.isSrcSubdir(o,a))throw new Error(`Cannot copy '${o}' to a subdirectory of itself, '${a}'.`);if(Rve.isSrcSubdir(a,o))throw new Error(`Cannot overwrite '${a}' with '${o}'.`)}return Mqr(o,n)}else return vT.symlinkSync(o,n)}function Mqr(t,e){return vT.unlinkSync(e),vT.symlinkSync(t,e)}Whn.exports=wqr});var TLe=De((B5s,Zhn)=>{"use strict";var Oqr=iE().fromPromise;Zhn.exports={copy:Oqr(Mhn()),copySync:Vhn()}});var Nve=De((H5s,Bhn)=>{"use strict";var Uhn=_Q(),Gqr=iE().fromCallback;function Lqr(t,e){Uhn.rm(t,{recursive:!0,force:!0},e)}function Wqr(t){Uhn.rmSync(t,{recursive:!0,force:!0})}Bhn.exports={remove:Gqr(Lqr),removeSync:Wqr}});var $hn=De((Y5s,Xhn)=>{"use strict";var Vqr=iE().fromPromise,jhn=bT(),zhn=Es("path"),Jhn=nO(),Qhn=Nve(),Hhn=Vqr(async function(e){let n;try{n=await jhn.readdir(e)}catch{return Jhn.mkdirs(e)}return Promise.all(n.map(i=>Qhn.remove(zhn.join(e,i))))});function Yhn(t){let e;try{e=jhn.readdirSync(t)}catch{return Jhn.mkdirsSync(t)}e.forEach(n=>{n=zhn.join(t,n),Qhn.removeSync(n)})}Xhn.exports={emptyDirSync:Yhn,emptydirSync:Yhn,emptyDir:Hhn,emptydir:Hhn}});var tgn=De((j5s,egn)=>{"use strict";var Zqr=iE().fromPromise,qhn=Es("path"),uV=bT(),Khn=nO();async function Uqr(t){let e;try{e=await uV.stat(t)}catch{}if(e&&e.isFile())return;let n=qhn.dirname(t),i=null;try{i=await uV.stat(n)}catch(o){if(o.code==="ENOENT"){await Khn.mkdirs(n),await uV.writeFile(t,"");return}else throw o}i.isDirectory()?await uV.writeFile(t,""):await uV.readdir(n)}function Bqr(t){let e;try{e=uV.statSync(t)}catch{}if(e&&e.isFile())return;let n=qhn.dirname(t);try{uV.statSync(n).isDirectory()||uV.readdirSync(n)}catch(i){if(i&&i.code==="ENOENT")Khn.mkdirsSync(n);else throw i}uV.writeFileSync(t,"")}egn.exports={createFile:Zqr(Uqr),createFileSync:Bqr}});var ogn=De((z5s,sgn)=>{"use strict";var Hqr=iE().fromPromise,ngn=Es("path"),SB=bT(),rgn=nO(),{pathExists:Yqr}=IB(),{areIdentical:ign}=yQ();async function jqr(t,e){let n;try{n=await SB.lstat(e)}catch{}let i;try{i=await SB.lstat(t)}catch(u){throw u.message=u.message.replace("lstat","ensureLink"),u}if(n&&ign(i,n))return;let o=ngn.dirname(e);await Yqr(o)||await rgn.mkdirs(o),await SB.link(t,e)}function zqr(t,e){let n;try{n=SB.lstatSync(e)}catch{}try{let a=SB.lstatSync(t);if(n&&ign(a,n))return}catch(a){throw a.message=a.message.replace("lstat","ensureLink"),a}let i=ngn.dirname(e);return SB.existsSync(i)||rgn.mkdirsSync(i),SB.linkSync(t,e)}sgn.exports={createLink:Hqr(jqr),createLinkSync:zqr}});var cgn=De((J5s,agn)=>{"use strict";var EB=Es("path"),Dve=bT(),{pathExists:Jqr}=IB(),Qqr=iE().fromPromise;async function Xqr(t,e){if(EB.isAbsolute(t)){try{await Dve.lstat(t)}catch(a){throw a.message=a.message.replace("lstat","ensureSymlink"),a}return{toCwd:t,toDst:t}}let n=EB.dirname(e),i=EB.join(n,t);if(await Jqr(i))return{toCwd:i,toDst:t};try{await Dve.lstat(t)}catch(a){throw a.message=a.message.replace("lstat","ensureSymlink"),a}return{toCwd:t,toDst:EB.relative(n,t)}}function $qr(t,e){if(EB.isAbsolute(t)){if(!Dve.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let n=EB.dirname(e),i=EB.join(n,t);if(Dve.existsSync(i))return{toCwd:i,toDst:t};if(!Dve.existsSync(t))throw new Error("relative srcpath does not exist");return{toCwd:t,toDst:EB.relative(n,t)}}agn.exports={symlinkPaths:Qqr(Xqr),symlinkPathsSync:$qr}});var dgn=De((Q5s,ugn)=>{"use strict";var lgn=bT(),qqr=iE().fromPromise;async function Kqr(t,e){if(e)return e;let n;try{n=await lgn.lstat(t)}catch{return"file"}return n&&n.isDirectory()?"dir":"file"}function eKr(t,e){if(e)return e;let n;try{n=lgn.lstatSync(t)}catch{return"file"}return n&&n.isDirectory()?"dir":"file"}ugn.exports={symlinkType:qqr(Kqr),symlinkTypeSync:eKr}});var mgn=De((X5s,fgn)=>{"use strict";var tKr=iE().fromPromise,wB=Es("path"),pk=bT(),{mkdirs:nKr,mkdirsSync:rKr}=nO(),{symlinkPaths:iKr,symlinkPathsSync:sKr}=cgn(),{symlinkType:oKr,symlinkTypeSync:aKr}=dgn(),{pathExists:cKr}=IB(),{areIdentical:pgn}=yQ();async function lKr(t,e,n){let i;try{i=await pk.lstat(e)}catch{}if(i&&i.isSymbolicLink()){let p;if(wB.isAbsolute(t))p=await pk.stat(t);else{let _=wB.dirname(e),b=wB.join(_,t);try{p=await pk.stat(b)}catch{p=await pk.stat(t)}}let h=await pk.stat(e);if(pgn(p,h))return}let o=await iKr(t,e);t=o.toDst;let a=await oKr(o.toCwd,n),u=wB.dirname(e);return await cKr(u)||await nKr(u),pk.symlink(t,e,a)}function uKr(t,e,n){let i;try{i=pk.lstatSync(e)}catch{}if(i&&i.isSymbolicLink()){let p;if(wB.isAbsolute(t))p=pk.statSync(t);else{let _=wB.dirname(e),b=wB.join(_,t);try{p=pk.statSync(b)}catch{p=pk.statSync(t)}}let h=pk.statSync(e);if(pgn(p,h))return}let o=sKr(t,e);t=o.toDst,n=aKr(o.toCwd,n);let a=wB.dirname(e);return pk.existsSync(a)||rKr(a),pk.symlinkSync(t,e,n)}fgn.exports={createSymlink:tKr(lKr),createSymlinkSync:uKr}});var Sgn=De(($5s,Ign)=>{"use strict";var{createFile:hgn,createFileSync:ggn}=tgn(),{createLink:_gn,createLinkSync:ygn}=ogn(),{createSymlink:bgn,createSymlinkSync:vgn}=mgn();Ign.exports={createFile:hgn,createFileSync:ggn,ensureFile:hgn,ensureFileSync:ggn,createLink:_gn,createLinkSync:ygn,ensureLink:_gn,ensureLinkSync:ygn,createSymlink:bgn,createSymlinkSync:vgn,ensureSymlink:bgn,ensureSymlinkSync:vgn}});var CLe=De((q5s,Egn)=>{function dKr(t,{EOL:e=`
|
|
19
|
-
`,finalEOL:n=!0,replacer:i=null,spaces:o}={}){let a=n?e:"";return JSON.stringify(t,i,o).replace(/\n/g,e)+a}function pKr(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}Egn.exports={stringify:dKr,stripBom:pKr}});var Tgn=De((K5s,xgn)=>{var Pse;try{Pse=_Q()}catch{Pse=Es("fs")}var kLe=iE(),{stringify:wgn,stripBom:Agn}=CLe();async function fKr(t,e={}){typeof e=="string"&&(e={encoding:e});let n=e.fs||Pse,i="throws"in e?e.throws:!0,o=await kLe.fromCallback(n.readFile)(t,e);o=Agn(o);let a;try{a=JSON.parse(o,e?e.reviver:null)}catch(u){if(i)throw u.message=`${t}: ${u.message}`,u;return null}return a}var mKr=kLe.fromPromise(fKr);function hKr(t,e={}){typeof e=="string"&&(e={encoding:e});let n=e.fs||Pse,i="throws"in e?e.throws:!0;try{let o=n.readFileSync(t,e);return o=Agn(o),JSON.parse(o,e.reviver)}catch(o){if(i)throw o.message=`${t}: ${o.message}`,o;return null}}async function gKr(t,e,n={}){let i=n.fs||Pse,o=wgn(e,n);await kLe.fromCallback(i.writeFile)(t,o,n)}var _Kr=kLe.fromPromise(gKr);function yKr(t,e,n={}){let i=n.fs||Pse,o=wgn(e,n);return i.writeFileSync(t,o,n)}xgn.exports={readFile:mKr,readFileSync:hKr,writeFile:_Kr,writeFileSync:yKr}});var kgn=De((e3s,Cgn)=>{"use strict";var RLe=Tgn();Cgn.exports={readJson:RLe.readFile,readJsonSync:RLe.readFileSync,writeJson:RLe.writeFile,writeJsonSync:RLe.writeFileSync}});var NLe=De((t3s,Dgn)=>{"use strict";var bKr=iE().fromPromise,x0t=bT(),Rgn=Es("path"),Ngn=nO(),vKr=IB().pathExists;async function IKr(t,e,n="utf-8"){let i=Rgn.dirname(t);return await vKr(i)||await Ngn.mkdirs(i),x0t.writeFile(t,e,n)}function SKr(t,...e){let n=Rgn.dirname(t);x0t.existsSync(n)||Ngn.mkdirsSync(n),x0t.writeFileSync(t,...e)}Dgn.exports={outputFile:bKr(IKr),outputFileSync:SKr}});var Fgn=De((n3s,Pgn)=>{"use strict";var{stringify:EKr}=CLe(),{outputFile:wKr}=NLe();async function AKr(t,e,n={}){let i=EKr(e,n);await wKr(t,i,n)}Pgn.exports=AKr});var Ogn=De((r3s,Mgn)=>{"use strict";var{stringify:xKr}=CLe(),{outputFileSync:TKr}=NLe();function CKr(t,e,n){let i=xKr(e,n);TKr(t,i,n)}Mgn.exports=CKr});var Lgn=De((i3s,Ggn)=>{"use strict";var kKr=iE().fromPromise,IT=kgn();IT.outputJson=kKr(Fgn());IT.outputJsonSync=Ogn();IT.outputJSON=IT.outputJson;IT.outputJSONSync=IT.outputJsonSync;IT.writeJSON=IT.writeJson;IT.writeJSONSync=IT.writeJsonSync;IT.readJSON=IT.readJson;IT.readJSONSync=IT.readJsonSync;Ggn.exports=IT});var Bgn=De((s3s,Ugn)=>{"use strict";var RKr=bT(),Wgn=Es("path"),{copy:NKr}=TLe(),{remove:Zgn}=Nve(),{mkdirp:DKr}=nO(),{pathExists:PKr}=IB(),Vgn=yQ();async function FKr(t,e,n={}){let i=n.overwrite||n.clobber||!1,{srcStat:o,isChangingCase:a=!1}=await Vgn.checkPaths(t,e,"move",n);await Vgn.checkParentPaths(t,o,e,"move");let u=Wgn.dirname(e);return Wgn.parse(u).root!==u&&await DKr(u),MKr(t,e,i,a)}async function MKr(t,e,n,i){if(!i){if(n)await Zgn(e);else if(await PKr(e))throw new Error("dest already exists.")}try{await RKr.rename(t,e)}catch(o){if(o.code!=="EXDEV")throw o;await OKr(t,e,n)}}async function OKr(t,e,n){return await NKr(t,e,{overwrite:n,errorOnExist:!0,preserveTimestamps:!0}),Zgn(t)}Ugn.exports=FKr});var Jgn=De((o3s,zgn)=>{"use strict";var Ygn=_Q(),C0t=Es("path"),GKr=TLe().copySync,jgn=Nve().removeSync,LKr=nO().mkdirpSync,Hgn=yQ();function WKr(t,e,n){n=n||{};let i=n.overwrite||n.clobber||!1,{srcStat:o,isChangingCase:a=!1}=Hgn.checkPathsSync(t,e,"move",n);return Hgn.checkParentPathsSync(t,o,e,"move"),VKr(e)||LKr(C0t.dirname(e)),ZKr(t,e,i,a)}function VKr(t){let e=C0t.dirname(t);return C0t.parse(e).root===e}function ZKr(t,e,n,i){if(i)return T0t(t,e,n);if(n)return jgn(e),T0t(t,e,n);if(Ygn.existsSync(e))throw new Error("dest already exists.");return T0t(t,e,n)}function T0t(t,e,n){try{Ygn.renameSync(t,e)}catch(i){if(i.code!=="EXDEV")throw i;return UKr(t,e,n)}}function UKr(t,e,n){return GKr(t,e,{overwrite:n,errorOnExist:!0,preserveTimestamps:!0}),jgn(t)}zgn.exports=WKr});var Xgn=De((a3s,Qgn)=>{"use strict";var BKr=iE().fromPromise;Qgn.exports={move:BKr(Bgn()),moveSync:Jgn()}});var gp=De((c3s,$gn)=>{"use strict";$gn.exports={...bT(),...TLe(),...$hn(),...Sgn(),...Lgn(),...nO(),...Xgn(),...NLe(),...IB(),...Nve()}});var bQ,vQ,rO,Fse,Pve,Fve,qgn,IQ,DLe,Mse,k0t,Ose,Mve,I2,R0t,N0t,Gse,D0t,P0t,M3,Lse,Kgn,Ove,F0t,zy,PLe,M0t,FLe,MLe,SQ,Gve,Lve,VA,Wve,ST,O0t,OLe,Vve,O3,e_n,t_n,n_n,r_n,GLe,i_n,s_n,Zve,EQ,fk,o_n,a_n,c_n,G0t,l_n,L0t,W0t,LLe,WLe,VLe,dV,u_n,Uve,Wse,d_n,p_n,f_n,ZLe,m_n,h_n,g_n,__n,y_n,b_n,v_n,V0t,ULe,Bve,wQ,pV,Vse,G3,iO,I_n,t1,BLe,S_n,E_n,w_n,Hve,Z0t,HLe,L3,YLe,A_n,Yve,W3,U0t,B0t,H0t,Y0t,j0t,z0t,J0t,Q0t,HKr,X0t,$0t,q0t,K0t,evt,tvt,nvt,rvt,dw,AB,x_n,ivt,T_n,fV,YKr,jKr,C_n,k_n,svt,R_n,N_n,D_n,AQ,Zse,Use,Bse,Hse,Yse,V3,jLe,Z3,xB,eg,jse,tg,Jy,sO,ovt,avt,P_n,F_n,cvt,Fa=Te(()=>{"use strict";bQ=".compass",vQ=".compass",rO="config.json",Fse="session.json",Pve="consent.json",Fve="credentials.enc",qgn="custom-models.json",IQ="logs",DLe="runtime-turn-events",Mse="backups",k0t="cache",Ose="saved-sessions",Mve="index",I2="temp",R0t="commands",N0t="agents",Gse="skills",D0t="hooks",P0t="rules",M3="projects",Lse="memory",Kgn="auto",Ove="NOVA.md",F0t="NOVA.local.md",zy="MEMORY.md",PLe="chats",M0t="continuity",FLe="ACP_SESSION_RETENTION_LIMIT",MLe="ACP_SESSION_MAX_AGE_DAYS",SQ="page",Gve=["png","jpeg"],Lve={skip:0,off:0,low:2048,medium:8192,high:16384,xhigh:32768,max:32768},VA=["skip","off","low","medium","high","xhigh","max"],Wve={skip:"skip",off:"off",low:"low",medium:"med",high:"high",xhigh:"xhigh",max:"max"},ST="skip",O0t=2e5,OLe=8e4,Vve={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},O3=4e3,e_n=50,t_n=3600*1e3,n_n=5e6,r_n=3,GLe="haiku",i_n=50,s_n=8e3,Zve={maxConditionChars:O3,maxTurns:e_n,maxWallClockMs:t_n,maxTokens:n_n,maxEvaluatorFailures:r_n,transcriptMaxMessages:i_n,transcriptMaxTokens:s_n},EQ=500,fk=350,o_n=5,a_n=0,c_n=65,G0t=!0,l_n=3,L0t=500,W0t=3,LLe=3,WLe=5,VLe={enabled:G0t,warningThreshold:LLe,blockThreshold:WLe},dV={enabled:!0,retryBudgets:{maxToolRetries:2,maxEditRetries:2,maxProviderRetries:2,maxConsecutiveFailures:4,maxBlockedToolResults:3},blockRepeatedToolCalls:!0,escalateOnUserRejectedTool:!0,terminalFailureCategories:["provider_terminal_error","policy_violation","user_rejected"],diagnostics:{enabled:!0,includeToolName:!0,includeFailureCategory:!0,includeDecisionReason:!0,includeBudgetSnapshot:!0}},u_n=30,Uve=1,Wse=100,d_n=7,p_n=30,f_n=200,ZLe=500,m_n=2e3,h_n=3e4,g_n=3600*1e3,__n=16,y_n=25*1024*1024,b_n=5,v_n=14,V0t=365,ULe=6e4,Bve=3e5,wQ=6e5,pV=3e5,Vse=18e5,G3=18e5,iO=3e4,I_n=1e4,t1=3e4,BLe=10,S_n=4,E_n=50,w_n=1024*1024,Hve=100,Z0t=80,HLe=8e3,L3=4e3,YLe=6e3,A_n=16e3,Yve=90,W3=25e3,U0t=250*1024*1024,B0t=20,H0t=1e4,Y0t=5e3,j0t=50,z0t=2e3,J0t=8,Q0t=1e3,HKr=500*1024*1024,X0t=6,$0t=2048,q0t=64,K0t=64,evt=64,tvt=1024,nvt=128,rvt=0,dw="claude-sonnet-4-6",AB=1,x_n=.5,ivt="haiku",T_n={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},fV="professional",YKr=4,jKr="banner",C_n=4,k_n=1e3,svt=16e3,R_n=.1,N_n=!0,D_n=svt,AQ={maxRetries:C_n,baseDelayMs:k_n,maxDelayMs:svt,jitterFactor:R_n,retryAfter:{enabled:N_n,maxDelayMs:D_n}},Zse=!0,Use=["claude-sonnet-4-6","claude-sonnet-5","claude-haiku-4-5-20251001"],Bse=300*1e3,Hse=!1,Yse=!0,V3={preferredProviders:["anthropic","openai","gemini","grok","deepseek","ollama"],fallback:{enabled:!0,strategy:"cross-provider",maxAttempts:3,includeOriginal:!0,dedupeAttempts:!0},preserveDefaultWithoutRequest:!0},jLe={maxRetries:5,baseDelayMs:1e3,maxDelayMs:3e4,backoffMultiplier:2},Z3={anthropic:{model:dw,maxTokens:16384,temperature:AB},ollama:{model:"glm-5.1:cloud",endpoint:"https://ollama.com",maxTokens:16384,temperature:x_n},project:{rootDir:process.cwd(),ignorePatterns:["node_modules/**",".git/**","dist/**","build/**","out/**","coverage/**",".next/**",".nuxt/**",".output/**","*.log",".env*","*.lock","package-lock.json","yarn.lock","pnpm-lock.yaml",".DS_Store","Thumbs.db","*.min.js","*.min.css","*.map",".compass/**"],includePatterns:["**/*"],maxFileSize:w_n,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:E_n,backupBeforeModify:!0,shellCommandTimeout:Bve,allowedShellCommands:["npm","npx","yarn","pnpm","git","node","tsc","eslint","prettier","jest","vitest","mocha","cargo","rustc","go","python","python3","pip","pip3","poetry","make","cmake","gradle","mvn","docker","kubectl","terraform","aws","gcloud","az","cat","ls","pwd","echo","head","tail","grep","find","wc","sort","uniq","diff","tree"],blockedShellCommands:["rm -rf /","rm -rf /*","rm -rf ~","rm -rf ~/*","sudo rm -rf",":(){:|:&};:","mkfs","dd if=/dev/zero","dd if=/dev/random","> /dev/sda","chmod -R 777 /","chown -R","wget | sh","curl | sh","wget | bash","curl | bash"]},ui:{},session:{autoSave:!0,autoSaveInterval:ULe,maxHistoryLength:Hve,autoCompactThreshold:OLe,sessionExpiryDays:u_n,unleash:!1},update:{checkOnStartup:!0,checkInterval:YKr,showNotifications:!0,notificationStyle:jKr,includePrerelease:!1},retry:AQ,a2a:{unrestrictedTools:!1,auth:{requireAuth:!0,tokenTtlMs:1e3*60*60*24*365,sessionTokenTtlMs:1e3*60*60*24,devicePairingEnabled:!0,compatibilityMode:!1,allowedOrigins:[]}},cloudAware:{enabled:!0,showWarning:!0,skipPlaceholdersInWalks:!0,allowIndexing:!1,allowProjectSummary:!1,allowBackupInTree:!1,allowArchivalInTree:!1,runtimeStateLocation:Kgn,windowsRetryOnCloudLocks:!0,warnOnHydration:!0},agentic:{maxIterations:EQ,costWarningThreshold:o_n,costHardCap:a_n,autoCompactAtPercent:c_n,stuckDetectionEnabled:G0t,stuckDetectionThreshold:l_n,runtimeEvents:{enabled:!1,outputDir:DLe},loopDetection:VLe,recovery:dV,maxIterationsPerTask:fk},telemetry:{enabled:!0},automation:{archiveRecall:{mode:"disabled",maxResults:5,maxSnippetChars:600,maxTotalChars:2400,minScore:.6,auditEvents:!0},webhooks:{enabled:!1,endpoints:[],deliveryLogLimit:100,retryBaseDelayMs:1e3,retryMaxDelayMs:3e4},daemon:{enabled:!1,pidFile:".compass/automation/daemon.pid",stateFile:".compass/automation/daemon-state.json",logFile:".compass/automation/daemon.log",healthFile:".compass/automation/daemon-health.json",heartbeatIntervalMs:3e4,staleAfterMs:12e4,shutdownGraceMs:1e4},scheduler:{owner:"interactive",lockTtlMs:12e4,missedRunPolicy:"run_once",maxCatchUpRuns:1}},workflowCapabilities:{checkpoints:{enabled:!1},rollback:{enabled:!1,requireApproval:!0},analytics:{enabled:!1},messaging:{enabled:!1,provider:"slack",events:{workflow:!0,plan:!0,approvals:!0,taskProgress:!1,turnDigest:!1},slack:{timeoutMs:1e4},teams:{timeoutMs:1e4,notifications:{planApprovalDetails:"local-only"}}},remoteSsh:{enabled:!1,requireApproval:!0,targets:{}}},learning:{captureEnabled:!0,autoApplyEnabled:!1,promptInjectionEnabled:!0,skillExposureEnabled:!1,hookExposureEnabled:!1,requireApprovalForSkillExposure:!0,maxPromptItems:8,maxPromptTokens:1200,defaultRetentionDays:90,dryRun:!1}},xB=["anthropic","ollama","zai","minimax","huggingface","openai","gemini","grok","deepseek","custom"],eg={API_KEY:"ANTHROPIC_API_KEY",COMPASS_API_KEY:"COMPASS_API_KEY",OLLAMA_API_KEY:"OLLAMA_API_KEY",ZAI_API_KEY:"ZAI_API_KEY",MINIMAX_API_KEY:"MINIMAX_API_KEY",HUGGINGFACE_API_KEY:"HF_TOKEN",OPENAI_API_KEY:"OPENAI_API_KEY",GEMINI_API_KEY:"GEMINI_API_KEY",GROK_API_KEY:"GROK_API_KEY",DEEPSEEK_API_KEY:"DEEPSEEK_API_KEY",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE",EXPERIMENTAL_AGENT_TEAMS:"COMPASS_EXPERIMENTAL_AGENT_TEAMS",LEARNING_DISABLED:"COMPASS_LEARNING_DISABLED",LEARNING_DRY_RUN:"COMPASS_LEARNING_DRY_RUN",TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED:"NOVA_TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT"},jse={anthropic:eg.API_KEY,ollama:eg.OLLAMA_API_KEY,zai:eg.ZAI_API_KEY,minimax:eg.MINIMAX_API_KEY,huggingface:eg.HUGGINGFACE_API_KEY,openai:eg.OPENAI_API_KEY,gemini:eg.GEMINI_API_KEY,grok:eg.GROK_API_KEY,deepseek:eg.DEEPSEEK_API_KEY,custom:""},tg={credentialKind:"openai-oauth",tokenType:"Bearer",provider:"openai",credentialKey:"openaiOAuthCredential",issuer:"https://auth.openai.com",authorizationUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",authorizationPath:"/oauth/authorize",tokenPath:"/oauth/token",clientId:"app_EMoamEEZ73f0CkXaXp7hrann",originator:"codex_cli_rs",betaHeader:"responses=experimental",codexBaseUrl:"https://chatgpt.com/backend-api",callbackPath:"/auth/callback",redirectUri:"http://localhost:1455/auth/callback",callbackPorts:[1455],scope:"openid profile email offline_access",scopes:["openid","profile","email","offline_access"],refreshSkewMs:300*1e3,defaultTimeoutMs:300*1e3,defaultAccessTokenTtlMs:3600*1e3,authPrecedence:["openai-oauth","compass-hydrated"]},Jy={commandName:"usage",reportCommand:"openai usage",usagePageUrl:"https://chatgpt.com/codex/settings/usage",canonicalLimitId:"codex",defaultPathStyle:"chatgpt-api",endpointPaths:{"codex-api":"/api/codex/usage","chatgpt-api":"/wham/usage"},bucketOrder:["rolling_5h","weekly","monthly"],bucketLabels:{rolling_5h:"5h limit",weekly:"Weekly limit",monthly:"Monthly limit"},remoteUsageSources:["openai-oauth"],remoteUsageModes:["oauth"],states:["available","stale","unavailable","missing"],messages:{refreshRequested:"refresh requested; run `nova openai usage` again shortly.",stalePending:"limits may be stale - run `nova openai usage` again shortly.",staleIdle:"limits may be stale - retry after your next OpenAI-backed turn.",unavailable:"not available for this account"}},sO="1.1.36",ovt="Compass AI's flagship CLI agent",avt=["package-lock.json","yarn.lock","pnpm-lock.yaml","composer.lock","Gemfile.lock","poetry.lock","Cargo.lock","go.sum","*.map","*.js.map","*.css.map","*.min.js","*.min.css","*.bundle.js","*.chunk.js","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],P_n=["*.sql","*.csv","*.tsv","*.parquet"],F_n=50,cvt=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"]});import zse from"path";async function TB(t,e=d_n){if(!M_n.has(t)){M_n.add(t);try{if(!await mV.default.pathExists(t))return;let i=Date.now()-e*24*60*60*1e3,o=await mV.default.readdir(t);for(let a of o)try{let u=zse.join(t,a),p=await mV.default.stat(u);p.isFile()&&p.mtimeMs<i&&await mV.default.unlink(u)}catch{}}catch{}}}async function O_n(t,e={}){let n=e.maxSizeBytes??y_n,i=e.maxRotatedSegments??b_n;try{let o=await mV.default.stat(t);if(!o.isFile()||o.size<n)return!1;let a=zse.dirname(t),u=zse.extname(t),p=zse.basename(t,u),h=new RegExp(`^${p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.(\\d+)${u.replace(".","\\.")}$`),_=await mV.default.readdir(a),b=[];for(let C of _){let D=C.match(h);D&&b.push({name:C,index:parseInt(D[1],10)})}let I=b.reduce((C,D)=>Math.max(C,D.index),0)+1,E=zse.join(a,`${p}.${I}${u}`);await mV.default.rename(t,E);let x=[...b,{name:`${p}.${I}${u}`,index:I}].sort((C,D)=>C.index-D.index);for(;x.length>i;){let C=x.shift();if(C)try{await mV.default.unlink(zse.join(a,C.name))}catch{}}return!0}catch{return!1}}var mV,M_n,jve=Te(()=>{"use strict";mV=Ws(gp(),1);Fa();M_n=new Set});var lvt,uvt=Te(()=>{"use strict";lvt=["image/png","image/jpeg","image/gif","image/webp"]});import{createHash as dvt}from"crypto";function pvt(t){return V_n.has(t)}function QLe(t,e){switch(e){case"image/png":return t.length>=8&&t.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10]));case"image/jpeg":return t.length>=3&&t[0]===255&&t[1]===216&&t[2]===255;case"image/gif":return t.length>=6&&(t.subarray(0,6).toString("ascii")==="GIF87a"||t.subarray(0,6).toString("ascii")==="GIF89a");case"image/webp":return t.length>=12&&t.subarray(0,4).toString("ascii")==="RIFF"&&t.subarray(8,12).toString("ascii")==="WEBP"}}function oO(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Z_n(t){if(!t||t.length%4!==0)throw new z_("Image payload must be canonical padded base64.");let e=Buffer.from(t,"base64");if(e.length===0||e.toString("base64")!==t)throw new z_("Image payload must decode to non-empty canonical base64.");return e}function U_n(t){if(typeof t.mediaId!="string"||!L_n.test(t.mediaId))throw new z_("mediaId must be a stable 1-128 character identifier.");if(typeof t.mimeType!="string"||!V_n.has(t.mimeType))throw new z_("Unsupported image MIME type.");if(!Number.isSafeInteger(t.byteSize)||t.byteSize<=0)throw new z_("byteSize must be a positive safe integer.");if(typeof t.sha256!="string"||!W_n.test(t.sha256))throw new z_("sha256 must be a lowercase hexadecimal digest.")}function fvt(t){let e=Z_n(t.payload),n={type:"ephemeral_image",mediaId:t.mediaId,mimeType:t.mimeType,byteSize:e.byteLength,sha256:dvt("sha256").update(e).digest("hex"),payload:t.payload};return CB(n),Object.freeze(n)}function CB(t){if(!oO(t)||t.type!=="ephemeral_image")throw new z_("Expected an ephemeral_image tool result.");if(U_n(t),typeof t.payload!="string")throw new z_("Image payload must be a base64 string.");let e=Z_n(t.payload);if(e.byteLength!==t.byteSize)throw new z_("byteSize does not match the decoded image payload.");if(dvt("sha256").update(e).digest("hex")!==t.sha256)throw new z_("sha256 does not match the decoded image payload.");return t}function XLe(t){if(!oO(t)||t.type!=="ephemeral_image_ref"||t.redacted!==!0)throw new z_("Expected a redacted ephemeral_image_ref.");if("payload"in t)throw new z_("Redacted image references cannot contain payloads.");return U_n(t),t}function zKr(t){if(!oO(t)||t.type!=="text"||typeof t.text!="string")throw new z_("Tool result text content must contain text.");return t}function $Le(t){if(!oO(t)||t.type!=="ephemeral_tool_result"||!Array.isArray(t.content))throw new z_("Expected an ephemeral_tool_result content array.");if(t.content.length===0)throw new z_("Ephemeral tool results cannot have empty content.");let e=0;for(let n of t.content)oO(n)&&n.type==="ephemeral_image"?(CB(n),e+=1):zKr(n);if(e===0)throw new z_("Ephemeral tool results must contain an image.");return t}function zve(t){let e=CB(t);return Object.freeze({type:"ephemeral_image_ref",mediaId:e.mediaId,mimeType:e.mimeType,byteSize:e.byteSize,sha256:e.sha256,redacted:!0})}function mvt(t){if(!oO(t))return t;if(t.type==="ephemeral_image")return zve(CB(t));if(t.type!=="ephemeral_tool_result")return t;let n={type:"ephemeral_tool_result",content:$Le(t).content.map(i=>i.type==="ephemeral_image"?zve(i):i)};return Object.freeze({...n,content:Object.freeze([...n.content])})}function zLe(t){let e=typeof t.payload=="string"?Buffer.from(t.payload,"base64"):Buffer.alloc(0),n=e.byteLength>0?e:Buffer.from(typeof t.payload=="string"?t.payload:"redacted-media"),i=typeof t.sha256=="string"&&W_n.test(t.sha256)?t.sha256:dvt("sha256").update(n).digest("hex"),o=Number.isSafeInteger(t.byteSize)&&t.byteSize>0?t.byteSize:n.byteLength,a=typeof t.mimeType=="string"&&t.mimeType.startsWith("image/")?t.mimeType:"image/unknown",u=typeof t.mediaId=="string"&&L_n.test(t.mediaId)?t.mediaId:`legacy:${i}`;return{type:pvt(a)?"ephemeral_image_ref":"ephemeral_media_unavailable",mediaId:u,mimeType:a,byteSize:o,sha256:i,redacted:!0,unavailable:!0}}function JKr(t){let e=typeof t.mimeType=="string"?t.mimeType:typeof t.media_type=="string"?t.media_type:void 0,n=typeof t.base64=="string"?t.base64:t.type==="base64"&&typeof t.data=="string"?t.data:void 0;if(!n||!e?.startsWith("image/"))return null;let i=zLe({payload:n,mimeType:e});if(t.type==="base64")return i;let{base64:o,...a}=t;return{...a,media:i}}function JLe(t){if(typeof t=="string"){let o=/^data:(image\/[A-Za-z0-9.+-]+);base64,([A-Za-z0-9+/]+={0,2})$/.exec(t);if(o)return zLe({mimeType:o[1],payload:o[2]});if(!t.includes("base64")&&!t.includes("ephemeral_image")&&!t.includes("data:image/"))return t;try{let a=JSON.parse(t),u=JLe(a);return u===a?t:JSON.stringify(u)}catch{return t.replace(/data:(image\/[A-Za-z0-9.+-]+);base64,([A-Za-z0-9+/]+={0,2})/g,(a,u,p)=>JSON.stringify(zLe({mimeType:u,payload:p})))}}if(Array.isArray(t)){let o=!1,a=t.map(u=>{let p=JLe(u);return o||=p!==u,p});return o?a:t}if(!oO(t))return t;if(t.type==="ephemeral_image")return zLe({payload:typeof t.payload=="string"?t.payload:void 0,mediaId:t.mediaId,mimeType:t.mimeType,byteSize:t.byteSize,sha256:t.sha256});let e=JKr(t);if(e)return e;let n=!1,i={};for(let[o,a]of Object.entries(t)){if(o==="payload"&&t.type==="ephemeral_image_ref"){n=!0;continue}let u=JLe(a);n||=u!==a,i[o]=u}return t.type==="ephemeral_image_ref"&&t.redacted!==!0&&(i.redacted=!0,n=!0),n?i:t}function QKr(t){if(typeof t!="string"||!t.includes("ephemeral_image_ref"))return t;try{return JSON.parse(t)}catch{return t}}function XKr(t){try{let e=JSON.parse(t);if(!oO(e))return;let n=typeof e.path=="string"&&e.path.trim()?e.path.trim():void 0;return n?{path:n}:void 0}catch{return}}function $Kr(t){if(t<1024)return`${t} B`;let e=["KB","MB","GB"],n=Math.min(Math.floor(Math.log(t)/Math.log(1024))-1,e.length-1);return`${parseFloat((t/1024**(n+1)).toFixed(2))} ${e[n]}`}function G_n(t,e){let n=t.type==="ephemeral_image_ref"&&t.redacted===!0,i=t.type==="ephemeral_media_unavailable"&&t.redacted===!0,o=t.type==="ephemeral_image";if(!n&&!i&&!o||typeof t.mediaId!="string"||typeof t.mimeType!="string"||!Number.isSafeInteger(t.byteSize)||typeof t.sha256!="string")return;let a=t.mimeType==="image/jpeg"?"JPEG":t.mimeType.replace(/^image\//,"").toUpperCase();return[i||t.unavailable===!0?"Image unavailable":"Image ready",e?.path,a,$Kr(t.byteSize)].filter(p=>!!p).join(" \xB7 ")}function xQ(t){let e=QKr(t);if(!oO(e))return;let n=G_n(e);if(n)return n;if(e.type!=="ephemeral_tool_result"||!Array.isArray(e.content))return;let i=[],o,a=[];for(let u of e.content){if(oO(u)&&u.type==="text"&&typeof u.text=="string"){let p=XKr(u.text);p?o=p:i.push(u.text);continue}oO(u)&&a.push(u)}for(let u of a){let p=G_n(u,o);p&&i.push(p)}return i.length>0?i.join(`
|
|
19
|
+
`,finalEOL:n=!0,replacer:i=null,spaces:o}={}){let a=n?e:"";return JSON.stringify(t,i,o).replace(/\n/g,e)+a}function pKr(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}Egn.exports={stringify:dKr,stripBom:pKr}});var Tgn=De((K5s,xgn)=>{var Pse;try{Pse=_Q()}catch{Pse=Es("fs")}var kLe=iE(),{stringify:wgn,stripBom:Agn}=CLe();async function fKr(t,e={}){typeof e=="string"&&(e={encoding:e});let n=e.fs||Pse,i="throws"in e?e.throws:!0,o=await kLe.fromCallback(n.readFile)(t,e);o=Agn(o);let a;try{a=JSON.parse(o,e?e.reviver:null)}catch(u){if(i)throw u.message=`${t}: ${u.message}`,u;return null}return a}var mKr=kLe.fromPromise(fKr);function hKr(t,e={}){typeof e=="string"&&(e={encoding:e});let n=e.fs||Pse,i="throws"in e?e.throws:!0;try{let o=n.readFileSync(t,e);return o=Agn(o),JSON.parse(o,e.reviver)}catch(o){if(i)throw o.message=`${t}: ${o.message}`,o;return null}}async function gKr(t,e,n={}){let i=n.fs||Pse,o=wgn(e,n);await kLe.fromCallback(i.writeFile)(t,o,n)}var _Kr=kLe.fromPromise(gKr);function yKr(t,e,n={}){let i=n.fs||Pse,o=wgn(e,n);return i.writeFileSync(t,o,n)}xgn.exports={readFile:mKr,readFileSync:hKr,writeFile:_Kr,writeFileSync:yKr}});var kgn=De((e3s,Cgn)=>{"use strict";var RLe=Tgn();Cgn.exports={readJson:RLe.readFile,readJsonSync:RLe.readFileSync,writeJson:RLe.writeFile,writeJsonSync:RLe.writeFileSync}});var NLe=De((t3s,Dgn)=>{"use strict";var bKr=iE().fromPromise,x0t=bT(),Rgn=Es("path"),Ngn=nO(),vKr=IB().pathExists;async function IKr(t,e,n="utf-8"){let i=Rgn.dirname(t);return await vKr(i)||await Ngn.mkdirs(i),x0t.writeFile(t,e,n)}function SKr(t,...e){let n=Rgn.dirname(t);x0t.existsSync(n)||Ngn.mkdirsSync(n),x0t.writeFileSync(t,...e)}Dgn.exports={outputFile:bKr(IKr),outputFileSync:SKr}});var Fgn=De((n3s,Pgn)=>{"use strict";var{stringify:EKr}=CLe(),{outputFile:wKr}=NLe();async function AKr(t,e,n={}){let i=EKr(e,n);await wKr(t,i,n)}Pgn.exports=AKr});var Ogn=De((r3s,Mgn)=>{"use strict";var{stringify:xKr}=CLe(),{outputFileSync:TKr}=NLe();function CKr(t,e,n){let i=xKr(e,n);TKr(t,i,n)}Mgn.exports=CKr});var Lgn=De((i3s,Ggn)=>{"use strict";var kKr=iE().fromPromise,IT=kgn();IT.outputJson=kKr(Fgn());IT.outputJsonSync=Ogn();IT.outputJSON=IT.outputJson;IT.outputJSONSync=IT.outputJsonSync;IT.writeJSON=IT.writeJson;IT.writeJSONSync=IT.writeJsonSync;IT.readJSON=IT.readJson;IT.readJSONSync=IT.readJsonSync;Ggn.exports=IT});var Bgn=De((s3s,Ugn)=>{"use strict";var RKr=bT(),Wgn=Es("path"),{copy:NKr}=TLe(),{remove:Zgn}=Nve(),{mkdirp:DKr}=nO(),{pathExists:PKr}=IB(),Vgn=yQ();async function FKr(t,e,n={}){let i=n.overwrite||n.clobber||!1,{srcStat:o,isChangingCase:a=!1}=await Vgn.checkPaths(t,e,"move",n);await Vgn.checkParentPaths(t,o,e,"move");let u=Wgn.dirname(e);return Wgn.parse(u).root!==u&&await DKr(u),MKr(t,e,i,a)}async function MKr(t,e,n,i){if(!i){if(n)await Zgn(e);else if(await PKr(e))throw new Error("dest already exists.")}try{await RKr.rename(t,e)}catch(o){if(o.code!=="EXDEV")throw o;await OKr(t,e,n)}}async function OKr(t,e,n){return await NKr(t,e,{overwrite:n,errorOnExist:!0,preserveTimestamps:!0}),Zgn(t)}Ugn.exports=FKr});var Jgn=De((o3s,zgn)=>{"use strict";var Ygn=_Q(),C0t=Es("path"),GKr=TLe().copySync,jgn=Nve().removeSync,LKr=nO().mkdirpSync,Hgn=yQ();function WKr(t,e,n){n=n||{};let i=n.overwrite||n.clobber||!1,{srcStat:o,isChangingCase:a=!1}=Hgn.checkPathsSync(t,e,"move",n);return Hgn.checkParentPathsSync(t,o,e,"move"),VKr(e)||LKr(C0t.dirname(e)),ZKr(t,e,i,a)}function VKr(t){let e=C0t.dirname(t);return C0t.parse(e).root===e}function ZKr(t,e,n,i){if(i)return T0t(t,e,n);if(n)return jgn(e),T0t(t,e,n);if(Ygn.existsSync(e))throw new Error("dest already exists.");return T0t(t,e,n)}function T0t(t,e,n){try{Ygn.renameSync(t,e)}catch(i){if(i.code!=="EXDEV")throw i;return UKr(t,e,n)}}function UKr(t,e,n){return GKr(t,e,{overwrite:n,errorOnExist:!0,preserveTimestamps:!0}),jgn(t)}zgn.exports=WKr});var Xgn=De((a3s,Qgn)=>{"use strict";var BKr=iE().fromPromise;Qgn.exports={move:BKr(Bgn()),moveSync:Jgn()}});var gp=De((c3s,$gn)=>{"use strict";$gn.exports={...bT(),...TLe(),...$hn(),...Sgn(),...Lgn(),...nO(),...Xgn(),...NLe(),...IB(),...Nve()}});var bQ,vQ,rO,Fse,Pve,Fve,qgn,IQ,DLe,Mse,k0t,Ose,Mve,I2,R0t,N0t,Gse,D0t,P0t,M3,Lse,Kgn,Ove,F0t,zy,PLe,M0t,FLe,MLe,SQ,Gve,Lve,VA,Wve,ST,O0t,OLe,Vve,O3,e_n,t_n,n_n,r_n,GLe,i_n,s_n,Zve,EQ,fk,o_n,a_n,c_n,G0t,l_n,L0t,W0t,LLe,WLe,VLe,dV,u_n,Uve,Wse,d_n,p_n,f_n,ZLe,m_n,h_n,g_n,__n,y_n,b_n,v_n,V0t,ULe,Bve,wQ,pV,Vse,G3,iO,I_n,t1,BLe,S_n,E_n,w_n,Hve,Z0t,HLe,L3,YLe,A_n,Yve,W3,U0t,B0t,H0t,Y0t,j0t,z0t,J0t,Q0t,HKr,X0t,$0t,q0t,K0t,evt,tvt,nvt,rvt,dw,AB,x_n,ivt,T_n,fV,YKr,jKr,C_n,k_n,svt,R_n,N_n,D_n,AQ,Zse,Use,Bse,Hse,Yse,V3,jLe,Z3,xB,eg,jse,tg,Jy,sO,ovt,avt,P_n,F_n,cvt,Fa=Te(()=>{"use strict";bQ=".compass",vQ=".compass",rO="config.json",Fse="session.json",Pve="consent.json",Fve="credentials.enc",qgn="custom-models.json",IQ="logs",DLe="runtime-turn-events",Mse="backups",k0t="cache",Ose="saved-sessions",Mve="index",I2="temp",R0t="commands",N0t="agents",Gse="skills",D0t="hooks",P0t="rules",M3="projects",Lse="memory",Kgn="auto",Ove="NOVA.md",F0t="NOVA.local.md",zy="MEMORY.md",PLe="chats",M0t="continuity",FLe="ACP_SESSION_RETENTION_LIMIT",MLe="ACP_SESSION_MAX_AGE_DAYS",SQ="page",Gve=["png","jpeg"],Lve={skip:0,off:0,low:2048,medium:8192,high:16384,xhigh:32768,max:32768},VA=["skip","off","low","medium","high","xhigh","max"],Wve={skip:"skip",off:"off",low:"low",medium:"med",high:"high",xhigh:"xhigh",max:"max"},ST="skip",O0t=2e5,OLe=8e4,Vve={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},O3=4e3,e_n=50,t_n=3600*1e3,n_n=5e6,r_n=3,GLe="haiku",i_n=50,s_n=8e3,Zve={maxConditionChars:O3,maxTurns:e_n,maxWallClockMs:t_n,maxTokens:n_n,maxEvaluatorFailures:r_n,transcriptMaxMessages:i_n,transcriptMaxTokens:s_n},EQ=500,fk=350,o_n=5,a_n=0,c_n=65,G0t=!0,l_n=3,L0t=500,W0t=3,LLe=3,WLe=5,VLe={enabled:G0t,warningThreshold:LLe,blockThreshold:WLe},dV={enabled:!0,retryBudgets:{maxToolRetries:2,maxEditRetries:2,maxProviderRetries:2,maxConsecutiveFailures:4,maxBlockedToolResults:3},blockRepeatedToolCalls:!0,escalateOnUserRejectedTool:!0,terminalFailureCategories:["provider_terminal_error","policy_violation","user_rejected"],diagnostics:{enabled:!0,includeToolName:!0,includeFailureCategory:!0,includeDecisionReason:!0,includeBudgetSnapshot:!0}},u_n=30,Uve=1,Wse=100,d_n=7,p_n=30,f_n=200,ZLe=500,m_n=2e3,h_n=3e4,g_n=3600*1e3,__n=16,y_n=25*1024*1024,b_n=5,v_n=14,V0t=365,ULe=6e4,Bve=3e5,wQ=6e5,pV=3e5,Vse=18e5,G3=18e5,iO=3e4,I_n=1e4,t1=3e4,BLe=10,S_n=4,E_n=50,w_n=1024*1024,Hve=100,Z0t=80,HLe=8e3,L3=4e3,YLe=6e3,A_n=16e3,Yve=90,W3=25e3,U0t=250*1024*1024,B0t=20,H0t=1e4,Y0t=5e3,j0t=50,z0t=2e3,J0t=8,Q0t=1e3,HKr=500*1024*1024,X0t=6,$0t=2048,q0t=64,K0t=64,evt=64,tvt=1024,nvt=128,rvt=0,dw="claude-sonnet-4-6",AB=1,x_n=.5,ivt="haiku",T_n={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},fV="professional",YKr=4,jKr="banner",C_n=4,k_n=1e3,svt=16e3,R_n=.1,N_n=!0,D_n=svt,AQ={maxRetries:C_n,baseDelayMs:k_n,maxDelayMs:svt,jitterFactor:R_n,retryAfter:{enabled:N_n,maxDelayMs:D_n}},Zse=!0,Use=["claude-sonnet-4-6","claude-sonnet-5","claude-haiku-4-5-20251001"],Bse=300*1e3,Hse=!1,Yse=!0,V3={preferredProviders:["anthropic","openai","gemini","grok","deepseek","ollama"],fallback:{enabled:!0,strategy:"cross-provider",maxAttempts:3,includeOriginal:!0,dedupeAttempts:!0},preserveDefaultWithoutRequest:!0},jLe={maxRetries:5,baseDelayMs:1e3,maxDelayMs:3e4,backoffMultiplier:2},Z3={anthropic:{model:dw,maxTokens:16384,temperature:AB},ollama:{model:"glm-5.1:cloud",endpoint:"https://ollama.com",maxTokens:16384,temperature:x_n},project:{rootDir:process.cwd(),ignorePatterns:["node_modules/**",".git/**","dist/**","build/**","out/**","coverage/**",".next/**",".nuxt/**",".output/**","*.log",".env*","*.lock","package-lock.json","yarn.lock","pnpm-lock.yaml",".DS_Store","Thumbs.db","*.min.js","*.min.css","*.map",".compass/**"],includePatterns:["**/*"],maxFileSize:w_n,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:E_n,backupBeforeModify:!0,shellCommandTimeout:Bve,allowedShellCommands:["npm","npx","yarn","pnpm","git","node","tsc","eslint","prettier","jest","vitest","mocha","cargo","rustc","go","python","python3","pip","pip3","poetry","make","cmake","gradle","mvn","docker","kubectl","terraform","aws","gcloud","az","cat","ls","pwd","echo","head","tail","grep","find","wc","sort","uniq","diff","tree"],blockedShellCommands:["rm -rf /","rm -rf /*","rm -rf ~","rm -rf ~/*","sudo rm -rf",":(){:|:&};:","mkfs","dd if=/dev/zero","dd if=/dev/random","> /dev/sda","chmod -R 777 /","chown -R","wget | sh","curl | sh","wget | bash","curl | bash"]},ui:{},session:{autoSave:!0,autoSaveInterval:ULe,maxHistoryLength:Hve,autoCompactThreshold:OLe,sessionExpiryDays:u_n,unleash:!1},update:{checkOnStartup:!0,checkInterval:YKr,showNotifications:!0,notificationStyle:jKr,includePrerelease:!1},retry:AQ,a2a:{unrestrictedTools:!1,auth:{requireAuth:!0,tokenTtlMs:1e3*60*60*24*365,sessionTokenTtlMs:1e3*60*60*24,devicePairingEnabled:!0,compatibilityMode:!1,allowedOrigins:[]}},cloudAware:{enabled:!0,showWarning:!0,skipPlaceholdersInWalks:!0,allowIndexing:!1,allowProjectSummary:!1,allowBackupInTree:!1,allowArchivalInTree:!1,runtimeStateLocation:Kgn,windowsRetryOnCloudLocks:!0,warnOnHydration:!0},agentic:{maxIterations:EQ,costWarningThreshold:o_n,costHardCap:a_n,autoCompactAtPercent:c_n,stuckDetectionEnabled:G0t,stuckDetectionThreshold:l_n,runtimeEvents:{enabled:!1,outputDir:DLe},loopDetection:VLe,recovery:dV,maxIterationsPerTask:fk},telemetry:{enabled:!0},automation:{archiveRecall:{mode:"disabled",maxResults:5,maxSnippetChars:600,maxTotalChars:2400,minScore:.6,auditEvents:!0},webhooks:{enabled:!1,endpoints:[],deliveryLogLimit:100,retryBaseDelayMs:1e3,retryMaxDelayMs:3e4},daemon:{enabled:!1,pidFile:".compass/automation/daemon.pid",stateFile:".compass/automation/daemon-state.json",logFile:".compass/automation/daemon.log",healthFile:".compass/automation/daemon-health.json",heartbeatIntervalMs:3e4,staleAfterMs:12e4,shutdownGraceMs:1e4},scheduler:{owner:"interactive",lockTtlMs:12e4,missedRunPolicy:"run_once",maxCatchUpRuns:1}},workflowCapabilities:{checkpoints:{enabled:!1},rollback:{enabled:!1,requireApproval:!0},analytics:{enabled:!1},messaging:{enabled:!1,provider:"slack",events:{workflow:!0,plan:!0,approvals:!0,taskProgress:!1,turnDigest:!1},slack:{timeoutMs:1e4},teams:{timeoutMs:1e4,notifications:{planApprovalDetails:"local-only"}}},remoteSsh:{enabled:!1,requireApproval:!0,targets:{}}},learning:{captureEnabled:!0,autoApplyEnabled:!1,promptInjectionEnabled:!0,skillExposureEnabled:!1,hookExposureEnabled:!1,requireApprovalForSkillExposure:!0,maxPromptItems:8,maxPromptTokens:1200,defaultRetentionDays:90,dryRun:!1}},xB=["anthropic","ollama","zai","minimax","huggingface","openai","gemini","grok","deepseek","custom"],eg={API_KEY:"ANTHROPIC_API_KEY",COMPASS_API_KEY:"COMPASS_API_KEY",OLLAMA_API_KEY:"OLLAMA_API_KEY",ZAI_API_KEY:"ZAI_API_KEY",MINIMAX_API_KEY:"MINIMAX_API_KEY",HUGGINGFACE_API_KEY:"HF_TOKEN",OPENAI_API_KEY:"OPENAI_API_KEY",GEMINI_API_KEY:"GEMINI_API_KEY",GROK_API_KEY:"GROK_API_KEY",DEEPSEEK_API_KEY:"DEEPSEEK_API_KEY",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE",EXPERIMENTAL_AGENT_TEAMS:"COMPASS_EXPERIMENTAL_AGENT_TEAMS",LEARNING_DISABLED:"COMPASS_LEARNING_DISABLED",LEARNING_DRY_RUN:"COMPASS_LEARNING_DRY_RUN",TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED:"NOVA_TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT"},jse={anthropic:eg.API_KEY,ollama:eg.OLLAMA_API_KEY,zai:eg.ZAI_API_KEY,minimax:eg.MINIMAX_API_KEY,huggingface:eg.HUGGINGFACE_API_KEY,openai:eg.OPENAI_API_KEY,gemini:eg.GEMINI_API_KEY,grok:eg.GROK_API_KEY,deepseek:eg.DEEPSEEK_API_KEY,custom:""},tg={credentialKind:"openai-oauth",tokenType:"Bearer",provider:"openai",credentialKey:"openaiOAuthCredential",issuer:"https://auth.openai.com",authorizationUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",authorizationPath:"/oauth/authorize",tokenPath:"/oauth/token",clientId:"app_EMoamEEZ73f0CkXaXp7hrann",originator:"codex_cli_rs",betaHeader:"responses=experimental",codexBaseUrl:"https://chatgpt.com/backend-api",callbackPath:"/auth/callback",redirectUri:"http://localhost:1455/auth/callback",callbackPorts:[1455],scope:"openid profile email offline_access",scopes:["openid","profile","email","offline_access"],refreshSkewMs:300*1e3,defaultTimeoutMs:300*1e3,defaultAccessTokenTtlMs:3600*1e3,authPrecedence:["openai-oauth","compass-hydrated"]},Jy={commandName:"usage",reportCommand:"openai usage",usagePageUrl:"https://chatgpt.com/codex/settings/usage",canonicalLimitId:"codex",defaultPathStyle:"chatgpt-api",endpointPaths:{"codex-api":"/api/codex/usage","chatgpt-api":"/wham/usage"},bucketOrder:["rolling_5h","weekly","monthly"],bucketLabels:{rolling_5h:"5h limit",weekly:"Weekly limit",monthly:"Monthly limit"},remoteUsageSources:["openai-oauth"],remoteUsageModes:["oauth"],states:["available","stale","unavailable","missing"],messages:{refreshRequested:"refresh requested; run `nova openai usage` again shortly.",stalePending:"limits may be stale - run `nova openai usage` again shortly.",staleIdle:"limits may be stale - retry after your next OpenAI-backed turn.",unavailable:"not available for this account"}},sO="1.1.37",ovt="Compass AI's flagship CLI agent",avt=["package-lock.json","yarn.lock","pnpm-lock.yaml","composer.lock","Gemfile.lock","poetry.lock","Cargo.lock","go.sum","*.map","*.js.map","*.css.map","*.min.js","*.min.css","*.bundle.js","*.chunk.js","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],P_n=["*.sql","*.csv","*.tsv","*.parquet"],F_n=50,cvt=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"]});import zse from"path";async function TB(t,e=d_n){if(!M_n.has(t)){M_n.add(t);try{if(!await mV.default.pathExists(t))return;let i=Date.now()-e*24*60*60*1e3,o=await mV.default.readdir(t);for(let a of o)try{let u=zse.join(t,a),p=await mV.default.stat(u);p.isFile()&&p.mtimeMs<i&&await mV.default.unlink(u)}catch{}}catch{}}}async function O_n(t,e={}){let n=e.maxSizeBytes??y_n,i=e.maxRotatedSegments??b_n;try{let o=await mV.default.stat(t);if(!o.isFile()||o.size<n)return!1;let a=zse.dirname(t),u=zse.extname(t),p=zse.basename(t,u),h=new RegExp(`^${p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.(\\d+)${u.replace(".","\\.")}$`),_=await mV.default.readdir(a),b=[];for(let C of _){let D=C.match(h);D&&b.push({name:C,index:parseInt(D[1],10)})}let I=b.reduce((C,D)=>Math.max(C,D.index),0)+1,E=zse.join(a,`${p}.${I}${u}`);await mV.default.rename(t,E);let x=[...b,{name:`${p}.${I}${u}`,index:I}].sort((C,D)=>C.index-D.index);for(;x.length>i;){let C=x.shift();if(C)try{await mV.default.unlink(zse.join(a,C.name))}catch{}}return!0}catch{return!1}}var mV,M_n,jve=Te(()=>{"use strict";mV=Ws(gp(),1);Fa();M_n=new Set});var lvt,uvt=Te(()=>{"use strict";lvt=["image/png","image/jpeg","image/gif","image/webp"]});import{createHash as dvt}from"crypto";function pvt(t){return V_n.has(t)}function QLe(t,e){switch(e){case"image/png":return t.length>=8&&t.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10]));case"image/jpeg":return t.length>=3&&t[0]===255&&t[1]===216&&t[2]===255;case"image/gif":return t.length>=6&&(t.subarray(0,6).toString("ascii")==="GIF87a"||t.subarray(0,6).toString("ascii")==="GIF89a");case"image/webp":return t.length>=12&&t.subarray(0,4).toString("ascii")==="RIFF"&&t.subarray(8,12).toString("ascii")==="WEBP"}}function oO(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Z_n(t){if(!t||t.length%4!==0)throw new z_("Image payload must be canonical padded base64.");let e=Buffer.from(t,"base64");if(e.length===0||e.toString("base64")!==t)throw new z_("Image payload must decode to non-empty canonical base64.");return e}function U_n(t){if(typeof t.mediaId!="string"||!L_n.test(t.mediaId))throw new z_("mediaId must be a stable 1-128 character identifier.");if(typeof t.mimeType!="string"||!V_n.has(t.mimeType))throw new z_("Unsupported image MIME type.");if(!Number.isSafeInteger(t.byteSize)||t.byteSize<=0)throw new z_("byteSize must be a positive safe integer.");if(typeof t.sha256!="string"||!W_n.test(t.sha256))throw new z_("sha256 must be a lowercase hexadecimal digest.")}function fvt(t){let e=Z_n(t.payload),n={type:"ephemeral_image",mediaId:t.mediaId,mimeType:t.mimeType,byteSize:e.byteLength,sha256:dvt("sha256").update(e).digest("hex"),payload:t.payload};return CB(n),Object.freeze(n)}function CB(t){if(!oO(t)||t.type!=="ephemeral_image")throw new z_("Expected an ephemeral_image tool result.");if(U_n(t),typeof t.payload!="string")throw new z_("Image payload must be a base64 string.");let e=Z_n(t.payload);if(e.byteLength!==t.byteSize)throw new z_("byteSize does not match the decoded image payload.");if(dvt("sha256").update(e).digest("hex")!==t.sha256)throw new z_("sha256 does not match the decoded image payload.");return t}function XLe(t){if(!oO(t)||t.type!=="ephemeral_image_ref"||t.redacted!==!0)throw new z_("Expected a redacted ephemeral_image_ref.");if("payload"in t)throw new z_("Redacted image references cannot contain payloads.");return U_n(t),t}function zKr(t){if(!oO(t)||t.type!=="text"||typeof t.text!="string")throw new z_("Tool result text content must contain text.");return t}function $Le(t){if(!oO(t)||t.type!=="ephemeral_tool_result"||!Array.isArray(t.content))throw new z_("Expected an ephemeral_tool_result content array.");if(t.content.length===0)throw new z_("Ephemeral tool results cannot have empty content.");let e=0;for(let n of t.content)oO(n)&&n.type==="ephemeral_image"?(CB(n),e+=1):zKr(n);if(e===0)throw new z_("Ephemeral tool results must contain an image.");return t}function zve(t){let e=CB(t);return Object.freeze({type:"ephemeral_image_ref",mediaId:e.mediaId,mimeType:e.mimeType,byteSize:e.byteSize,sha256:e.sha256,redacted:!0})}function mvt(t){if(!oO(t))return t;if(t.type==="ephemeral_image")return zve(CB(t));if(t.type!=="ephemeral_tool_result")return t;let n={type:"ephemeral_tool_result",content:$Le(t).content.map(i=>i.type==="ephemeral_image"?zve(i):i)};return Object.freeze({...n,content:Object.freeze([...n.content])})}function zLe(t){let e=typeof t.payload=="string"?Buffer.from(t.payload,"base64"):Buffer.alloc(0),n=e.byteLength>0?e:Buffer.from(typeof t.payload=="string"?t.payload:"redacted-media"),i=typeof t.sha256=="string"&&W_n.test(t.sha256)?t.sha256:dvt("sha256").update(n).digest("hex"),o=Number.isSafeInteger(t.byteSize)&&t.byteSize>0?t.byteSize:n.byteLength,a=typeof t.mimeType=="string"&&t.mimeType.startsWith("image/")?t.mimeType:"image/unknown",u=typeof t.mediaId=="string"&&L_n.test(t.mediaId)?t.mediaId:`legacy:${i}`;return{type:pvt(a)?"ephemeral_image_ref":"ephemeral_media_unavailable",mediaId:u,mimeType:a,byteSize:o,sha256:i,redacted:!0,unavailable:!0}}function JKr(t){let e=typeof t.mimeType=="string"?t.mimeType:typeof t.media_type=="string"?t.media_type:void 0,n=typeof t.base64=="string"?t.base64:t.type==="base64"&&typeof t.data=="string"?t.data:void 0;if(!n||!e?.startsWith("image/"))return null;let i=zLe({payload:n,mimeType:e});if(t.type==="base64")return i;let{base64:o,...a}=t;return{...a,media:i}}function JLe(t){if(typeof t=="string"){let o=/^data:(image\/[A-Za-z0-9.+-]+);base64,([A-Za-z0-9+/]+={0,2})$/.exec(t);if(o)return zLe({mimeType:o[1],payload:o[2]});if(!t.includes("base64")&&!t.includes("ephemeral_image")&&!t.includes("data:image/"))return t;try{let a=JSON.parse(t),u=JLe(a);return u===a?t:JSON.stringify(u)}catch{return t.replace(/data:(image\/[A-Za-z0-9.+-]+);base64,([A-Za-z0-9+/]+={0,2})/g,(a,u,p)=>JSON.stringify(zLe({mimeType:u,payload:p})))}}if(Array.isArray(t)){let o=!1,a=t.map(u=>{let p=JLe(u);return o||=p!==u,p});return o?a:t}if(!oO(t))return t;if(t.type==="ephemeral_image")return zLe({payload:typeof t.payload=="string"?t.payload:void 0,mediaId:t.mediaId,mimeType:t.mimeType,byteSize:t.byteSize,sha256:t.sha256});let e=JKr(t);if(e)return e;let n=!1,i={};for(let[o,a]of Object.entries(t)){if(o==="payload"&&t.type==="ephemeral_image_ref"){n=!0;continue}let u=JLe(a);n||=u!==a,i[o]=u}return t.type==="ephemeral_image_ref"&&t.redacted!==!0&&(i.redacted=!0,n=!0),n?i:t}function QKr(t){if(typeof t!="string"||!t.includes("ephemeral_image_ref"))return t;try{return JSON.parse(t)}catch{return t}}function XKr(t){try{let e=JSON.parse(t);if(!oO(e))return;let n=typeof e.path=="string"&&e.path.trim()?e.path.trim():void 0;return n?{path:n}:void 0}catch{return}}function $Kr(t){if(t<1024)return`${t} B`;let e=["KB","MB","GB"],n=Math.min(Math.floor(Math.log(t)/Math.log(1024))-1,e.length-1);return`${parseFloat((t/1024**(n+1)).toFixed(2))} ${e[n]}`}function G_n(t,e){let n=t.type==="ephemeral_image_ref"&&t.redacted===!0,i=t.type==="ephemeral_media_unavailable"&&t.redacted===!0,o=t.type==="ephemeral_image";if(!n&&!i&&!o||typeof t.mediaId!="string"||typeof t.mimeType!="string"||!Number.isSafeInteger(t.byteSize)||typeof t.sha256!="string")return;let a=t.mimeType==="image/jpeg"?"JPEG":t.mimeType.replace(/^image\//,"").toUpperCase();return[i||t.unavailable===!0?"Image unavailable":"Image ready",e?.path,a,$Kr(t.byteSize)].filter(p=>!!p).join(" \xB7 ")}function xQ(t){let e=QKr(t);if(!oO(e))return;let n=G_n(e);if(n)return n;if(e.type!=="ephemeral_tool_result"||!Array.isArray(e.content))return;let i=[],o,a=[];for(let u of e.content){if(oO(u)&&u.type==="text"&&typeof u.text=="string"){let p=XKr(u.text);p?o=p:i.push(u.text);continue}oO(u)&&a.push(u)}for(let u of a){let p=G_n(u,o);p&&i.push(p)}return i.length>0?i.join(`
|
|
20
20
|
`):void 0}function Ld(t){return JLe(t)}var L_n,W_n,V_n,z_,D0=Te(()=>{"use strict";uvt();L_n=/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/,W_n=/^[a-f0-9]{64}$/,V_n=new Set(lvt),z_=class extends Error{constructor(e){super(e),this.name="EphemeralMediaValidationError"}}});var H_n={};Ba(H_n,{ChildLogger:()=>KLe,Logger:()=>qLe,logger:()=>F});import hvt from"path";import qKr from"os";var gvt,B_n,qLe,KLe,F,Ir=Te(()=>{"use strict";zc();gvt=Ws(gp(),1);Fa();jve();D0();B_n={debug:0,info:1,warn:2,error:3,silent:4},qLe=class{config={level:"error",fileOutput:!0,colorOutput:!0,timestamps:!0};logFilePath=null;logFileInitialized=!1;interactive=!1;configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}shouldLog(e){return B_n[e]>=B_n[this.config.level]}getGlobalCompassDir(){return hvt.join(qKr.homedir(),bQ)}formatLogTimestamp(e){return e.toISOString()}async ensureLogFile(){if(this.logFilePath&&this.logFileInitialized)return this.logFilePath;let e=hvt.join(this.getGlobalCompassDir(),IQ);try{await gvt.default.ensureDir(e)}catch{return this.config.fileOutput=!1,""}await TB(e);let n=new Date().toISOString().split("T")[0];return this.logFilePath=hvt.join(e,`compass-${n}.log`),this.logFileInitialized=!0,this.logFilePath}formatMessage(e,n,i){let o=[];this.config.timestamps&&o.push(`[${this.formatLogTimestamp(new Date)}]`),o.push(`[${e.toUpperCase().padEnd(5)}]`);let a=Ld(n);if(o.push(typeof a=="string"?a:JSON.stringify(a)),i!==void 0)if(i instanceof Error){let u=Ld(i.stack||i.message);o.push(`
|
|
21
21
|
${typeof u=="string"?u:JSON.stringify(u)}`)}else if(typeof i=="object")try{o.push(JSON.stringify(Ld(i),null,2))}catch{o.push(String(i))}else{let u=Ld(i);o.push(typeof u=="string"?u:JSON.stringify(u))}return o.join(" ")}colorize(e,n){if(!this.config.colorOutput)return n;switch(e){case"debug":return O.gray(n);case"info":return O.blue(n);case"warn":return O.yellow(n);case"error":return O.red(n);default:return n}}async writeToFile(e){if(this.config.fileOutput)try{let n=await this.ensureLogFile();n&&await gvt.default.appendFile(n,e+`
|
|
22
22
|
`)}catch{}}log(e,n,i){let o=this.shouldLog(e),a=o||this.config.level!=="silent"&&e==="warn";if(!o&&!a)return;let u=this.formatMessage(e,n,i),p=this.colorize(e,u);o&&!this.interactive&&process.stderr.write(p+`
|
|
@@ -4908,7 +4908,7 @@ GFS4: `),console.error(t)});j0[Pw]||(ntr=global[Pw]||[],itr(j0,ntr),j0.close=(fu
|
|
|
4908
4908
|
Try running with %s or get access `,O.cyan("sudo"))+`
|
|
4909
4909
|
to the local update config store via
|
|
4910
4910
|
`+O.cyan(lVt(" sudo chown -R $USER:$(id -gn $USER) %s ",spe));tK.on("exit",()=>{console.error(zk(n,{textAlignment:"center"}))})}}check(){!this.config||this.config.get("optOut")||this.#n||(this.update=this.config.get("update"),this.update&&(this.update.current=this.#r,this.config.delete("update")),!(Date.now()-this.config.get("lastUpdateCheck")<this.#i)&&_ps(tK.execPath,[Zrr.join(bps,"check.js"),JSON.stringify(this.#t)],{detached:!0,stdio:"ignore"}).unref())}async fetchInfo(){let{distTag:e}=this.#t,n=await eVt(this._packageName,{version:e});return{latest:n,current:this.#r,type:(0,Urr.default)(this.#r,n)??e,name:this._packageName}}notify(e){let n=!this._shouldNotifyInNpmScript&&brr;if(!tK.stdout.isTTY||n||!this.update||!(0,Brr.default)(this.update.latest,this.update.current))return this;e={isGlobal:Prr,...e};let i=e.isGlobal?`npm i -g ${this._packageName}`:`npm i ${this._packageName}`,o="Update available "+O.dim("{currentVersion}")+O.reset(" \u2192 ")+O.green("{latestVersion}")+`
|
|
4911
|
-
Run `+O.cyan("{updateCommand}")+" to update",a=e.message||o;e.boxenOptions??={padding:1,margin:1,textAlignment:"center",borderColor:"yellow",borderStyle:"round"};let u=zk(cVt(a,{packageName:this._packageName,currentVersion:this.update.current,latestVersion:this.update.latest,updateCommand:i}),e.boxenOptions);return e.defer===!1?console.error(u):tK.on("exit",()=>{console.error(u)}),this}}});function uVt(t){let e=new QTe(t);return e.check(),e}var Yrr=Te(()=>{Hrr()});var mVt={};Ba(mVt,{UpdateService:()=>XTe,checkAndNotifyUpdates:()=>Tps,checkUpdateStatus:()=>Qrr,default:()=>Dps,displayDiscreteUpdateStatus:()=>Rps,getUpdateService:()=>pG,manualUpdateCheck:()=>Cps,performAutoUpdateOnStartup:()=>Nps});import{readFile as Ips}from"fs/promises";import fVt from"path";import{fileURLToPath as Sps}from"url";async function pG(t){return pVt||(pVt=await XTe.create(t)),pVt}async function Tps(t){let e=await pG(t),n=await e.checkForUpdates();return n.updateAvailable&&e.displayUpdateNotification(n),n}async function Cps(){let t=await pG();F.output(""),F.output(O.cyan("Checking for updates..."));let e=await t.checkForUpdates(!0);return e.error?F.output(O.red(`Failed to check for updates: ${e.error}`)):e.updateAvailable?t.displayUpdateNotification(e):(F.output(""),F.output(O.green(`You are on the latest version (${e.currentVersion})`)),F.output("")),e}function kps(t){switch(t){case"major":return O.red("\u25CF");case"minor":return O.yellow("\u25CF");case"patch":return O.green("\u25CF");case"prerelease":return O.magenta("\u25CF");default:return O.cyan("\u25CF")}}async function Qrr(t){let e=await pG(t),n=e.getVersionInfo(),i=n.packageName,o=n.currentVersion;F.debug("Update check: querying npm registry",{packageName:i,currentVersion:o});try{let a=await e.checkForUpdates();if(F.debug("Update check: npm registry response",{updateAvailable:a.updateAvailable,latestVersion:a.latestVersion,updateType:a.updateType,error:a.error}),a.error){let u=`npm i -g ${i}`;return{type:"error",message:O.red("\u2717")+O.dim(" Update check failed. Manual upgrade: ")+O.cyan(u),currentVersion:o,packageName:i,manualCommand:u}}if(a.updateAvailable&&a.latestVersion){let u=kps(a.updateType),p=`npm i -g ${i}@${a.latestVersion}`;return{type:"available",message:u+O.dim(" Update available: ")+O.dim(o)+O.dim(" \u2192 ")+O.bold(a.latestVersion)+O.dim(` (${p})`),currentVersion:o,latestVersion:a.latestVersion,packageName:i,manualCommand:p}}return{type:"up-to-date",message:"",currentVersion:o,packageName:i}}catch{let u=`npm i -g ${i}`;return{type:"error",message:O.red("\u2717")+O.dim(" Update check failed. Manual upgrade: ")+O.cyan(u),currentVersion:o,packageName:i,manualCommand:u}}}async function Rps(t){F.debug("Update check: starting discrete update status check");let e=await Qrr(t);return F.debug("Update check: completed",{type:e.type,currentVersion:e.currentVersion,latestVersion:e.latestVersion,packageName:e.packageName}),e.type==="available"?(F.debug(`Update check: new version available (${e.latestVersion})`),console.log(e.message)):e.type==="error"?(F.debug("Update check: error occurred, showing manual upgrade command"),console.log(e.message)):e.type==="up-to-date"&&F.debug("Update check: already on latest version, no notification shown"),e}async function Nps(t,e=!1){F.debug("Auto-update: starting startup update check",{force:e});let n=await pG(t),i=n.getVersionInfo();try{let o=await n.checkForUpdates(e);if(F.debug("Auto-update: check completed",{updateAvailable:o.updateAvailable,currentVersion:o.currentVersion,latestVersion:o.latestVersion}),!o.updateAvailable||!o.latestVersion)return F.debug("Auto-update: no update available"),{updated:!1};let a=i.currentVersion,u=o.latestVersion,p=await n.detectPackageManager();return F.debug("Auto-update: detected package manager",{packageManager:p}),await n.performUpdate(p)?{updated:!0,fromVersion:a,toVersion:u}:(F.debug("Auto-update: update failed"),{updated:!1,error:"Update failed, continuing with current version"})}catch(o){let a=o instanceof Error?o.message:"Unknown error";return F.debug("Auto-update: error during update",{error:a}),console.log(O.yellow(`\u26A0 Auto-update check failed: ${a}`)),console.log(O.dim(` You can manually update with: npm i -g ${i.packageName}`)),console.log(""),{updated:!1,error:a}}}var D$e,jrr,zrr,Jrr,Eps,wps,dVt,Aps,xps,XTe,pVt,Dps,P$e=Te(()=>{"use strict";Yrr();epe();zc();D$e=Ws(T$e(),1);a6();yl();fd();Ir();jrr="@compass-ai/nova",zrr="1.1.
|
|
4911
|
+
Run `+O.cyan("{updateCommand}")+" to update",a=e.message||o;e.boxenOptions??={padding:1,margin:1,textAlignment:"center",borderColor:"yellow",borderStyle:"round"};let u=zk(cVt(a,{packageName:this._packageName,currentVersion:this.update.current,latestVersion:this.update.latest,updateCommand:i}),e.boxenOptions);return e.defer===!1?console.error(u):tK.on("exit",()=>{console.error(u)}),this}}});function uVt(t){let e=new QTe(t);return e.check(),e}var Yrr=Te(()=>{Hrr()});var mVt={};Ba(mVt,{UpdateService:()=>XTe,checkAndNotifyUpdates:()=>Tps,checkUpdateStatus:()=>Qrr,default:()=>Dps,displayDiscreteUpdateStatus:()=>Rps,getUpdateService:()=>pG,manualUpdateCheck:()=>Cps,performAutoUpdateOnStartup:()=>Nps});import{readFile as Ips}from"fs/promises";import fVt from"path";import{fileURLToPath as Sps}from"url";async function pG(t){return pVt||(pVt=await XTe.create(t)),pVt}async function Tps(t){let e=await pG(t),n=await e.checkForUpdates();return n.updateAvailable&&e.displayUpdateNotification(n),n}async function Cps(){let t=await pG();F.output(""),F.output(O.cyan("Checking for updates..."));let e=await t.checkForUpdates(!0);return e.error?F.output(O.red(`Failed to check for updates: ${e.error}`)):e.updateAvailable?t.displayUpdateNotification(e):(F.output(""),F.output(O.green(`You are on the latest version (${e.currentVersion})`)),F.output("")),e}function kps(t){switch(t){case"major":return O.red("\u25CF");case"minor":return O.yellow("\u25CF");case"patch":return O.green("\u25CF");case"prerelease":return O.magenta("\u25CF");default:return O.cyan("\u25CF")}}async function Qrr(t){let e=await pG(t),n=e.getVersionInfo(),i=n.packageName,o=n.currentVersion;F.debug("Update check: querying npm registry",{packageName:i,currentVersion:o});try{let a=await e.checkForUpdates();if(F.debug("Update check: npm registry response",{updateAvailable:a.updateAvailable,latestVersion:a.latestVersion,updateType:a.updateType,error:a.error}),a.error){let u=`npm i -g ${i}`;return{type:"error",message:O.red("\u2717")+O.dim(" Update check failed. Manual upgrade: ")+O.cyan(u),currentVersion:o,packageName:i,manualCommand:u}}if(a.updateAvailable&&a.latestVersion){let u=kps(a.updateType),p=`npm i -g ${i}@${a.latestVersion}`;return{type:"available",message:u+O.dim(" Update available: ")+O.dim(o)+O.dim(" \u2192 ")+O.bold(a.latestVersion)+O.dim(` (${p})`),currentVersion:o,latestVersion:a.latestVersion,packageName:i,manualCommand:p}}return{type:"up-to-date",message:"",currentVersion:o,packageName:i}}catch{let u=`npm i -g ${i}`;return{type:"error",message:O.red("\u2717")+O.dim(" Update check failed. Manual upgrade: ")+O.cyan(u),currentVersion:o,packageName:i,manualCommand:u}}}async function Rps(t){F.debug("Update check: starting discrete update status check");let e=await Qrr(t);return F.debug("Update check: completed",{type:e.type,currentVersion:e.currentVersion,latestVersion:e.latestVersion,packageName:e.packageName}),e.type==="available"?(F.debug(`Update check: new version available (${e.latestVersion})`),console.log(e.message)):e.type==="error"?(F.debug("Update check: error occurred, showing manual upgrade command"),console.log(e.message)):e.type==="up-to-date"&&F.debug("Update check: already on latest version, no notification shown"),e}async function Nps(t,e=!1){F.debug("Auto-update: starting startup update check",{force:e});let n=await pG(t),i=n.getVersionInfo();try{let o=await n.checkForUpdates(e);if(F.debug("Auto-update: check completed",{updateAvailable:o.updateAvailable,currentVersion:o.currentVersion,latestVersion:o.latestVersion}),!o.updateAvailable||!o.latestVersion)return F.debug("Auto-update: no update available"),{updated:!1};let a=i.currentVersion,u=o.latestVersion,p=await n.detectPackageManager();return F.debug("Auto-update: detected package manager",{packageManager:p}),await n.performUpdate(p)?{updated:!0,fromVersion:a,toVersion:u}:(F.debug("Auto-update: update failed"),{updated:!1,error:"Update failed, continuing with current version"})}catch(o){let a=o instanceof Error?o.message:"Unknown error";return F.debug("Auto-update: error during update",{error:a}),console.log(O.yellow(`\u26A0 Auto-update check failed: ${a}`)),console.log(O.dim(` You can manually update with: npm i -g ${i.packageName}`)),console.log(""),{updated:!1,error:a}}}var D$e,jrr,zrr,Jrr,Eps,wps,dVt,Aps,xps,XTe,pVt,Dps,P$e=Te(()=>{"use strict";Yrr();epe();zc();D$e=Ws(T$e(),1);a6();yl();fd();Ir();jrr="@compass-ai/nova",zrr="1.1.37",Jrr="1.0.0",Eps=Sps(import.meta.url),wps=fVt.dirname(Eps),dVt=fVt.resolve(wps,"../../package.json"),Aps="update-cache.json",xps={checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:"banner",includePrerelease:!1},XTe=class t{config;cache;cacheFilePath;packageJson;constructor(e,n){this.config=e,this.packageJson=n,this.cacheFilePath=fVt.join(zs(),Aps),this.cache={history:[],cacheVersion:Jrr}}static async create(e){let n={...xps,...e},i={name:jrr,version:zrr};try{if(F.debug("Update service: resolving package.json",{path:dVt}),await ws(dVt)){let a=await Ips(dVt,"utf-8"),u=JSON.parse(a);i={name:u.name||jrr,version:u.version||zrr},F.debug("Update service: loaded package.json",{name:i.name,version:i.version,source:"package.json"})}else F.debug("Update service: package.json not found, using fallback",{name:i.name,version:i.version,source:"fallback"})}catch(a){F.debug("Update service: failed to read package.json, using fallback",{error:a instanceof Error?a.message:"unknown error",name:i.name,version:i.version})}let o=new t(n,i);return await o.loadCache(),o}async loadCache(){try{if(await ra(zs()),await ws(this.cacheFilePath)){let e=await mm(this.cacheFilePath);e&&e.cacheVersion===Jrr&&(this.cache=e)}}catch(e){F.debug("Failed to load update cache",e)}}async saveCache(){try{await ra(zs()),await Lf(this.cacheFilePath,this.cache)}catch(e){F.debug("Failed to save update cache",e)}}async checkForUpdates(e=!1){let n={updateAvailable:!1,currentVersion:this.packageJson.version,checkedAt:new Date().toISOString()};try{if(!e&&this.cache.lastCheck)if(this.cache.lastCheck.currentVersion!==this.packageJson.version)F.debug("Cache invalidated - installed version changed",{cachedVersion:this.cache.lastCheck.currentVersion,installedVersion:this.packageJson.version});else{let a=new Date(this.cache.lastCheck.checkedAt).getTime(),u=this.config.checkInterval*60*60*1e3;if(Date.now()-a<u)return F.debug("Skipping update check - within interval"),this.cache.lastCheck}F.debug("Checking for updates...");let o=await uVt({pkg:this.packageJson,updateCheckInterval:0}).fetchInfo();return o&&o.latest&&D$e.default.gt(o.latest,this.packageJson.version)?(n.updateAvailable=!0,n.latestVersion=o.latest,n.updateType=this.mapUpdateType(o.type||"patch"),n.releaseNotesUrl=`https://dev.azure.com/oakpeak-devops/Kore/_git/Kore-CLI?version=GTv${o.latest}`,!this.config.includePrerelease&&D$e.default.prerelease(o.latest)&&(n.updateAvailable=!1,n.latestVersion=void 0,n.updateType=void 0)):o&&o.latest&&D$e.default.lt(o.latest,this.packageJson.version)&&F.debug("Current version is newer than npm registry",{currentVersion:this.packageJson.version,registryVersion:o.latest}),this.cache.lastCheck=n,await this.saveCache(),n}catch(i){return n.error=i instanceof Error?i.message:"Failed to check for updates",F.debug("Update check failed",i),n}}mapUpdateType(e){switch(e){case"major":return"major";case"minor":return"minor";case"patch":return"patch";case"prerelease":return"prerelease";default:return"patch"}}displayUpdateNotification(e){if(!e.updateAvailable||!e.latestVersion||!this.config.showNotifications||this.config.notificationStyle==="silent")return;let n=this.formatNotification(e);console.log(n),this.updateNotificationState(e.latestVersion)}formatNotification(e){let{currentVersion:n,latestVersion:i,updateType:o}=e;switch(this.config.notificationStyle){case"minimal":return this.formatMinimalNotification(n,i,o);case"detailed":return this.formatDetailedNotification(n,i,o,e.releaseNotesUrl);default:return this.formatBannerNotification(n,i,o)}}formatMinimalNotification(e,n,i){let o=this.getUpdateTypeColor(i);return O.gray(`Update available: ${e} -> `)+o(n)+O.gray(` (npm i -g ${this.packageJson.name})`)}formatBannerNotification(e,n,i){let o=this.getUpdateTypeColor(i),a=i?` (${i})`:"",u=[`Update available! ${O.dim(e)} ${O.reset("\u2192")} ${o(n)}${O.dim(a)}`,"",`Run ${O.cyan(`npm i -g ${this.packageJson.name}`)} to update`].join(`
|
|
4912
4912
|
`);return zk(u,{padding:1,margin:1,borderStyle:"round",borderColor:this.getUpdateTypeBorderColor(i),title:"Compass CLI Update",titleAlignment:"center"})}formatDetailedNotification(e,n,i,o){let a=this.getUpdateTypeColor(i),u=i?i.charAt(0).toUpperCase()+i.slice(1):"New",p=["",O.bold.cyan(` ${u} Update Available!`),"",` ${O.gray("Current version:")} ${e}`,` ${O.gray("Latest version:")} ${a(n)}`,""];o&&(p.push(` ${O.gray("Release notes:")} ${O.underline.blue(o)}`),p.push("")),p.push(` ${O.gray("To update, run:")} ${O.cyan(`npm i -g ${this.packageJson.name}`)}`),p.push("");let h=p.join(`
|
|
4913
4913
|
`);return zk(h,{padding:0,margin:1,borderStyle:"double",borderColor:this.getUpdateTypeBorderColor(i)})}getUpdateTypeColor(e){switch(e){case"major":return O.red;case"minor":return O.yellow;case"patch":return O.green;case"prerelease":return O.magenta;default:return O.cyan}}getUpdateTypeBorderColor(e){switch(e){case"major":return"red";case"minor":return"yellow";case"patch":return"green";case"prerelease":return"magenta";default:return"cyan"}}async updateNotificationState(e){let n=this.cache.notificationState;n&&n.version===e?n.showCount++:this.cache.notificationState={version:e,notifiedAt:new Date().toISOString(),dismissed:!1,showCount:1},await this.saveCache()}async dismissNotification(){this.cache.notificationState&&(this.cache.notificationState.dismissed=!0,this.cache.notificationState.dismissedAt=new Date().toISOString(),await this.saveCache())}async performUpdate(e="npm"){let n=await this.checkForUpdates(!0);if(!n.updateAvailable||!n.latestVersion)return F.output(O.green("You are already on the latest version!")),!0;let i=this.packageJson.version,o=n.latestVersion;F.output(""),F.output(O.cyan(`Updating Compass CLI from ${i} to ${o}...`)),F.output("");try{let a=this.getUpdateCommand(e);F.output(O.gray(`Running: ${a}`)),F.output("");let{stdout:u}=await xv(a,{shell:!0});return u&&F.output(u),await this.recordUpdateHistory(i,o,!0,e),F.output(""),F.output(O.green(`Successfully updated to version ${o}!`)),F.output(O.gray("Please restart Compass CLI to use the new version.")),F.output(""),!0}catch(a){let u=a instanceof Error?a.message:"Update failed";return await this.recordUpdateHistory(i,o,!1,e,u),F.output(""),F.output(O.red(`Update failed: ${u}`)),F.output(""),F.output(O.gray("You can try updating manually:")),F.output(O.cyan(` ${this.getUpdateCommand(e)}`)),F.output(""),!1}}getUpdateCommand(e){let n=this.packageJson.name;switch(e){case"yarn":return`yarn global add ${n}`;case"pnpm":return`pnpm add -g ${n}`;default:return`npm install -g ${n}`}}async recordUpdateHistory(e,n,i,o,a){let u={fromVersion:e,toVersion:n,updatedAt:new Date().toISOString(),success:i,method:o,error:a};this.cache.history.push(u),this.cache.history.length>10&&(this.cache.history=this.cache.history.slice(-10)),i&&(this.cache.notificationState=void 0),await this.saveCache()}getUpdateHistory(){return[...this.cache.history]}getLastCheckResult(){return this.cache.lastCheck}getConfig(){return{...this.config}}async updateConfig(e){this.config={...this.config,...e}}getVersionInfo(){return{currentVersion:this.packageJson.version,packageName:this.packageJson.name,lastCheck:this.cache.lastCheck,updateAvailable:this.cache.lastCheck?.updateAvailable??!1,latestVersion:this.cache.lastCheck?.latestVersion}}async detectPackageManager(){try{let{stdout:e}=await xv("yarn",["global","list","--depth=0"],{shell:!0,reject:!1});if(e&&e.includes(this.packageJson.name))return"yarn"}catch{}try{let{stdout:e}=await xv("pnpm",["list","-g","--depth=0"],{shell:!0,reject:!1});if(e&&e.includes(this.packageJson.name))return"pnpm"}catch{}return"npm"}},pVt=null;Dps=XTe});function wf(t,e=!1){let n=Xr();F.debug(`[updateHandler] Emitting output: ${t.substring(0,50)}`),n.emit("slash-command-output",{command:"update",message:t,isError:e})}function Pps(t){switch(t){case"major":return O.red;case"minor":return O.yellow;case"patch":return O.green;case"prerelease":return O.magenta;default:return O.cyan}}function Fps(t){switch(t){case"major":return"red";case"minor":return"yellow";case"patch":return"green";case"prerelease":return"magenta";default:return"cyan"}}async function Mps(t){if(!t.updateAvailable||!t.latestVersion)return;let n=(await pG()).getVersionInfo(),i=Pps(t.updateType),o=t.updateType?` (${t.updateType})`:"",a=[`Update available! ${O.dim(t.currentVersion)} ${O.reset("\u2192")} ${i(t.latestVersion)}${O.dim(o)}`,"",`Run ${O.cyan(`npm i -g ${n.packageName}`)} to update`].join(`
|
|
4914
4914
|
`),u=zk(a,{padding:1,margin:1,borderStyle:"round",borderColor:Fps(t.updateType),title:"Compass CLI Update",titleAlignment:"center"});wf(u)}function Ops(t){let e={check:!1,history:!1,force:!1,install:!1,version:!1,help:!1};for(let n=0;n<t.length;n++){let i=t[n].toLowerCase();switch(i){case"check":case"-c":case"--check":e.check=!0;break;case"history":case"-h":case"--history":e.history=!0;break;case"--force":case"-f":e.force=!0;break;case"install":case"-i":case"--install":e.install=!0;break;case"--npm":e.manager="npm";break;case"--yarn":e.manager="yarn";break;case"--pnpm":e.manager="pnpm";break;case"version":case"-v":case"--version":e.version=!0;break;case"help":case"--help":e.help=!0;break;default:i==="now"&&(e.install=!0);break}}return!e.history&&!e.install&&!e.version&&!e.help&&(e.check=!0),e}function Gps(){let t=["",O.bold.cyan("Update Command"),O.dim("\u2500".repeat(40)),"",O.white("Check for and install updates to Compass CLI."),"",O.bold("Usage:"),` ${O.cyan("/update")} Check for updates`,` ${O.cyan("/update check")} Check for updates (same as above)`,` ${O.cyan("/update install")} Install available update`,` ${O.cyan("/update now")} Install update immediately`,` ${O.cyan("/update history")} Show update history`,` ${O.cyan("/update version")} Show version information`,"",O.bold("Options:"),` ${O.yellow("--force, -f")} Force check (ignore interval)`,` ${O.yellow("--npm")} Use npm for installation`,` ${O.yellow("--yarn")} Use yarn for installation`,` ${O.yellow("--pnpm")} Use pnpm for installation`,"",O.bold("Examples:"),` ${O.gray("/update")} # Check if update is available`,` ${O.gray("/update install --yarn")} # Install with yarn`,` ${O.gray("/update -f")} # Force update check`,""];wf(t.join(`
|
|
@@ -5507,7 +5507,7 @@ ${Wr}${Yr}`),go("none")},onCancel:()=>go("none"),isActive:!0})}),Fo(rm,{display:
|
|
|
5507
5507
|
\u274C doctor command failed
|
|
5508
5508
|
${n instanceof Error?n.message:String(n)}
|
|
5509
5509
|
`)),process.exit(1)}})}var stt,_Sr,JPs,QBt=Te(()=>{"use strict";$1();zc();sW();Ir();bw();Fa();JBt();stt=zBt;_Sr={pass:{glyph:"\u2713",paint:t=>O.green(t)},warn:{glyph:"!",paint:t=>O.yellow(t)},fail:{glyph:"\u2717",paint:t=>O.red(t)},skip:{glyph:"\u2013",paint:t=>O.dim(t)}};JPs=[{pattern:/sk-ant-[A-Za-z0-9_-]{8,}/g,replacement:"sk-ant-***REDACTED***"},{pattern:/\bcmp_[A-Za-z0-9_-]{8,}/g,replacement:"cmp_***REDACTED***"},{pattern:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}/g,replacement:"sk-***REDACTED***"},{pattern:/Bearer\s+[A-Za-z0-9._-]{20,}/gi,replacement:"Bearer ***REDACTED***"},{pattern:/\b[a-fA-F0-9]{64,}\b/g,replacement:"***REDACTED***"}]});var tHt={};Ba(tHt,{checkSetupRequired:()=>TSr,createSetupCommand:()=>CSr,default:()=>KPs,displaySetupStatus:()=>$Bt,executeSetupCommand:()=>qPs,reconfigureSetup:()=>qBt,runInteractiveSetup:()=>XBt,runSetupRepair:()=>KBt,validateStoredApiKeys:()=>eHt});async function XBt(){await ra(zs()),console.log(AW(XPs)),console.log(jCe()),console.log(O.bold.cyan("=== First-Time Setup Wizard ===")),console.log(""),console.log(O.gray("This wizard will help you configure Compass for first-time use.")),console.log(O.gray("Press Ctrl+C at any time to cancel.")),console.log(""),console.log(O.bold.white("Step 1: Data Collection Consent")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.bold(uP.dataCollection.title)),console.log(O.gray(uP.dataCollection.description)),console.log(""),console.log(O.gray("This consent is required for Compass to function.")),console.log("");let{dataCollectionConsent:t}=await rg.prompt([{type:"confirm",name:"dataCollectionConsent",message:"Do you consent to local data collection?",default:!0}]);if(!t)throw console.log(""),console.log(O.yellow("Data collection consent is required to use Compass.")),console.log(O.gray(" Setup cancelled.")),console.log(""),new Error("Setup cancelled: Data collection consent is required");console.log(""),console.log(O.bold.white("Step 2: Anonymous Telemetry (Optional)")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.bold(uP.telemetry.title)),console.log(O.gray(uP.telemetry.description)),console.log(""),console.log(O.gray("This is completely optional and helps improve Compass.")),console.log(O.gray("No personal data or code content is ever collected.")),console.log("");let{telemetryConsent:e}=await rg.prompt([{type:"confirm",name:"telemetryConsent",message:"Enable anonymous telemetry?",default:!1}]);console.log(""),console.log(O.bold.white("Step 3: Error Reporting (Optional)")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.bold(uP.errorReporting.title)),console.log(O.gray(uP.errorReporting.description)),console.log("");let{errorReportingConsent:n}=await rg.prompt([{type:"confirm",name:"errorReportingConsent",message:"Enable automatic error reporting?",default:!0}]),i={dataCollection:!0,telemetry:e,analytics:e,errorReporting:n};console.log(""),console.log(O.bold.white("Step 4: Compass API Key (Optional)")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.gray("The Compass API key enables:")),console.log(O.gray(" - Usage tracking and cost management")),console.log(O.gray(" - Compass-authenticated provider access")),console.log(""),console.log(O.yellow("This step is OPTIONAL - you can skip it if you don't have a Compass account.")),console.log("");let o=await qa(),a=mu(),u=[],{skipCompassKey:p}=await rg.prompt([{type:"confirm",name:"skipCompassKey",message:"Skip Compass API key configuration?",default:!1}]),h="";if(p)console.log(O.yellow(" Skipping Compass API key configuration."));else{console.log(""),console.log(O.gray("Get your API key from your Compass account settings.")),console.log(O.gray("Your API key will be stored securely using system keychain or encrypted file.")),console.log("");let{key:_}=await rg.prompt([{type:"password",name:"key",message:"Enter your Compass API key:",mask:"*",validate:async b=>{let I=b.trim();if(!I)return"Please enter a valid API key or go back and choose to skip.";try{return console.log(O.gray(`
|
|
5510
|
-
Validating API key...`)),await a.validateApiKey(I),console.log(O.green(" OK API key validated successfully")),!0}catch(E){return`API key validation failed: ${E instanceof Error?E.message:"Invalid API key"}`}}}]);h=_.trim(),console.log(""),console.log(O.green("Compass API key will be used for authenticated provider access."))}if(h)console.log(""),console.log(O.gray("Skipping manual provider key setup; Compass API key sessions route through the Compass proxy."));else{console.log(""),console.log(O.bold.white("Step 5: Provider API Keys (Optional)")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.gray("No Compass API key was provided.")),console.log(O.gray("Configure provider API keys manually if you want to use Nova without Compass auth.")),console.log(""),console.log(O.yellow('This step is OPTIONAL - you can skip any provider and configure them later with "nova setup --api-key".')),console.log("");let _=[{name:"Anthropic",value:"anthropic"},{name:"OpenAI",value:"openai"},{name:"Ollama",value:"ollama"},{name:"Z.AI",value:"zai"},{name:"MiniMax",value:"minimax"}],b={anthropic:"Anthropic",openai:"OpenAI",ollama:"Ollama",zai:"Z.AI",minimax:"MiniMax",huggingface:"HuggingFace",gemini:"Gemini",grok:"Grok",deepseek:"DeepSeek"},{selectedProviders:I}=await rg.prompt([{type:"checkbox",name:"selectedProviders",message:"Select which provider API keys to configure now:",choices:_,default:["anthropic"]}]);for(let E of I){console.log("");let{providerKey:x}=await rg.prompt([{type:"password",name:"providerKey",message:`Enter your ${b[E]} API key:`,mask:"*",validate:C=>{let D=C.trim();return D?E==="anthropic"&&!o.validateApiKeyFormat(D)?'Invalid API key format. Anthropic API keys should start with "sk-ant-"':!0:"Please enter an API key or leave this provider unchecked."}}]);u.push({provider:E,apiKey:x.trim()}),console.log(O.green(` OK ${b[E]} API key captured`))}}console.log(""),console.log(O.gray("Saving settings..."));try{h&&(await o.setCompassApiKey(h),F.info("Compass API key saved successfully"));for(let{provider:I,apiKey:E}of u)I==="anthropic"&&await o.setApiKey(E),await o.setProviderApiKey(I,E),F.info(`${I} API key saved successfully`);await(await aS()).grantConsent(i),F.info("Consent saved successfully"),Xr().emit("consent-changed",{granted:!0}),console.log(""),console.log(O.green.bold("Setup Complete!")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.gray("Compass has been configured successfully.")),console.log(""),console.log(O.bold.white("Quick Tips:")),console.log(O.gray(" - Run ")+O.cyan("compass")+O.gray(" to start an interactive session")),console.log(O.gray(" - Type natural language requests to interact with Nova")),console.log(O.gray(" - Use ")+O.cyan("/help")+O.gray(" to see available commands")),console.log(O.gray(" - Use ")+O.cyan("/model")+O.gray(" to switch between models")),console.log(O.gray(" - Use ")+O.cyan("/exit")+O.gray(" to exit Nova")),console.log(""),console.log(O.gray("Your consent settings:")),console.log(O.gray(" - Data Collection: ")+O.green("Enabled (required)")),console.log(O.gray(" - Telemetry: ")+(e?O.green("Enabled"):O.yellow("Disabled"))),console.log(O.gray(" - Error Reporting: ")+(n?O.green("Enabled"):O.yellow("Disabled"))),console.log(""),console.log(O.gray("API keys configured:")),h&&console.log(O.gray(" - Compass: ")+O.green("Configured"));for(let{provider:I}of u){let E=I=="openai"?"OpenAI":I=="zai"?"Z.AI":I.charAt(0).toUpperCase()+I.slice(1);console.log(O.gray(` - ${E}: `)+O.green("Configured"))}console.log(""),console.log(O.gray("You can modify these settings anytime with ")+O.cyan("nova consent")+O.gray(".")),console.log(O.gray("To configure more API keys, run ")+O.cyan("nova setup --api-key")+O.gray(".")),console.log("")}catch(_){throw F.error("Failed to save setup settings",_),console.log(""),console.log(O.red("Failed to save settings")),_ instanceof Error&&console.log(O.red(` ${_.message}`)),_}}async function $Bt(){let t=await TSr(),e=await qa();console.log(""),console.log(O.bold.white("\u{1F527} Setup Status")),console.log(O.dim("\u2500".repeat(50)));let n=t.missingConsent?O.red("\u2717"):O.green("\u2713"),i=t.missingConsent?O.red("Not configured"):t.consentExpired?O.yellow("Expired"):t.consentNeedsRenewal?O.yellow("Needs renewal"):O.green("Valid");console.log(` ${O.gray("Consent:")} ${n} ${i}`);let o=t.missingCompassApiKey?O.yellow("\u25CB"):O.green("\u2713"),a=t.missingCompassApiKey?O.yellow("Not configured (optional)"):O.green("Configured");if(console.log(` ${O.gray("Compass API Key:")} ${o} ${a}`),console.log(""),console.log(O.bold.white(" Provider API Keys:")),!t.missingCompassApiKey)console.log(` ${O.gray("Compass Proxy:")} ${O.green("\u2713")} ${O.green("Configured")}`),console.log(O.gray(" Compass API key auth routes provider traffic through the Compass proxy."));else{let u=["anthropic","openai","ollama","zai","minimax"];for(let p of u){let h=await e.hasProviderApiKey(p),_=h?O.green("\u2713"):O.yellow("\u25CB"),b=h?O.green("Configured"):O.yellow("Not configured"),I=p==="openai"?"OpenAI":p==="zai"?"Z.AI":p.charAt(0).toUpperCase()+p.slice(1);console.log(` ${O.gray(`${I}:`)}${" ".repeat(11-I.length)}${_} ${b}`)}}console.log(""),t.required?(console.log(O.yellow("\u26A0\uFE0F Setup is required before using Compass.")),console.log(O.gray(' Run "nova setup" to configure.'))):(console.log(O.green("\u2705 Compass is fully configured and ready to use.")),console.log(O.gray(' Run "compass" to start an interactive session.'))),console.log("")}async function qBt(t){if(await ra(zs()),t.consent){console.log(""),console.log(O.bold.white("\u{1F4CB} Reconfigure Consent Settings")),console.log(O.dim("\u2500".repeat(50))),console.log("");let{dataCollection:e}=await rg.prompt([{type:"confirm",name:"dataCollection",message:"Enable data collection (required)?",default:!0}]);if(!e){console.log(O.yellow("\u26A0\uFE0F Data collection is required. Keeping current settings."));return}let{telemetry:n}=await rg.prompt([{type:"confirm",name:"telemetry",message:"Enable anonymous telemetry?",default:!1}]),{errorReporting:i}=await rg.prompt([{type:"confirm",name:"errorReporting",message:"Enable error reporting?",default:!0}]),o={dataCollection:!0,telemetry:n,analytics:n,errorReporting:i};await(await aS()).grantConsent(o),console.log(O.green("\u2705 Consent settings updated"))}if(t.apiKey){console.log(""),console.log(O.bold.white("\u{1F511} Reconfigure API Keys")),console.log(O.dim("\u2500".repeat(50))),console.log("");let e=await qa();if(await e.hasCompassApiKey()){console.log(O.yellow("Manual provider API keys are disabled for Compass API key sessions.")),console.log(O.gray("Compass API key auth routes provider traffic through the Compass proxy."));return}console.log(O.gray("Available providers:")),console.log(O.gray(" 1. Anthropic (default for Claude models)")),console.log(O.gray(" 2. OpenAI (for GPT models / direct OpenAI API access)")),console.log(O.gray(" 3. Ollama (for Ollama/cloud models)")),console.log(O.gray(" 4. Z.AI (for Z.AI GLM models)")),console.log(O.gray(" 5. MiniMax (for MiniMax models)")),console.log("");let n=[{name:"Anthropic",value:"anthropic"},{name:"OpenAI",value:"openai"},{name:"Ollama",value:"ollama"},{name:"Z.AI",value:"zai"},{name:"MiniMax",value:"minimax"}],{selectedProviders:i}=await rg.prompt([{type:"checkbox",name:"selectedProviders",message:"Select which providers to configure:",choices:n,default:["anthropic"]}]);for(let o of i){if(console.log(""),await e.hasProviderApiKey(o)){let{confirm:p}=await rg.prompt([{type:"confirm",name:"confirm",message:`${o==="openai"?"OpenAI":o.toUpperCase()} API key is already configured. Replace it?`,default:!1}]);if(!p){console.log(O.gray(`${o==="openai"?"OpenAI":o.toUpperCase()} API key unchanged.`));continue}}let{apiKey:u}=await rg.prompt([{type:"password",name:"apiKey",message:`Enter your ${o==="openai"?"OpenAI":o.toUpperCase()} API key:`,mask:"*",validate:p=>{let h=p.trim();return h?o==="anthropic"&&!e.validateApiKeyFormat(h)?'Invalid API key format. Anthropic keys should start with "sk-ant-"':!0:"API key is required"}}]);await e.setProviderApiKey(o,u.trim()),o==="anthropic"&&await e.setApiKey(u.trim()),console.log(O.green(`\u2705 ${o.toUpperCase()} API key updated`))}}}async function KBt(t={}){let e=["auth"];t.group!==void 0&&(e=Tke(t.group)),(await ott({repair:!0,yes:t.yes??!1,force:t.force??!1,json:t.json??!1,verbose:t.verbose??!1,group:e})).summary.healthy||process.exit(1)}function CSr(){return new Om("setup").description("Run first-time setup wizard for consent and API key configuration").option("--status","Display current setup status without running wizard").option("--consent","Reconfigure consent settings only").option("--api-key","Reconfigure API key only").option("--non-interactive","Run in non-interactive mode (requires environment variables)").option("--compass-key <compass-api-key>","Configure Compass API key non-interactively").option("--validate-key","Validate the stored Compass API key without modifying anything").option("--repair","Run diagnostic checks and attempt to auto-fix issues (delegates to `nova doctor --repair`)").option("--yes","With --repair: auto-apply non-credential, non-destructive repairs without prompting").option("--force","With --repair: bypass the credential-deletion guard for destructive credential repairs").option("--json","With --repair: emit machine-readable JSON (secret-redacted) instead of the human report").option("--verbose","With --repair: show extended detail for warn/fail checks").option("--group <group...>","With --repair: restrict to specific check groups (default: auth). Choices: auth, models, mcp, hooks, runtime.").action(async e=>{try{if(e.repair){await KBt({yes:e.yes,force:e.force,json:e.json,verbose:e.verbose,group:e.group});return}if(e.status){await $Bt();return}if(e.validateKey){await eHt();return}if(e.compassKey){await kSr(e.compassKey);return}if(e.consent||e.apiKey){await qBt({consent:e.consent,apiKey:e.apiKey});return}if(e.nonInteractive){await RSr();return}await XBt()}catch(n){n instanceof Error&&n.message.includes("cancelled")&&process.exit(0),F.error("Setup command failed",n),console.error(O.red("\u274C Setup failed")),n instanceof Error&&console.error(O.red(` ${n.message}`)),process.exit(1)}})}async function eHt(){console.log(O.bold.white("Validating stored API keys...")),console.log("");let t=await jBt(),e=!1,n=!1;for(let i of t){let{provider:o,configured:a,valid:u,detail:p}=i,h=o==="compass"||o==="anthropic";if(!a&&!h)continue;let _=$Ps(o);if(!a)console.log(O.yellow(` \u25CB ${_}: Not configured`));else if(u){let b=h?p:"Configured";console.log(O.green(` \u2713 ${_}: ${b}`)),e=!0}else console.log(O.red(` \u2717 ${_}: ${p}`)),n=!0}console.log(""),e?n?(console.log(O.yellow("\u26A0 Some API keys are invalid or missing")),console.log(O.gray(' Run "nova setup --api-key" to reconfigure.')),process.exit(1)):console.log(O.green("\u2705 All configured API keys are valid")):(console.log(O.red("\u274C No valid API keys found")),console.log(O.gray(' Run "nova setup" to configure API keys.')),process.exit(1))}function $Ps(t){return t==="compass"?"Compass":t==="openai"?"OpenAI":t==="zai"?"Z.AI":t.charAt(0).toUpperCase()+t.slice(1)}async function kSr(t){let e=t.trim();if(!e)throw console.log(O.red("\u274C Compass API key cannot be empty")),new Error("Compass API key cannot be empty");console.log(O.gray("Validating Compass API key..."));let n=await mu();try{let u=await n.validateApiKey(e);console.log(O.green(`\u2713 API key validated (${u.user?.email||"authenticated"})`))}catch(u){let p=u instanceof Error?u.message:"Invalid API key";throw console.log(O.red(`\u274C API key validation failed: ${p}`)),new Error(`Compass API key validation failed: ${p}`)}await ra(zs()),await(await qa()).setCompassApiKey(e),console.log(O.green("\u2713 Compass API key saved")),await(await aS()).grantConsent(t1e()),console.log(O.green("\u2713 Consent and telemetry accepted")),Xr().emit("consent-changed",{granted:!0}),console.log(""),console.log(O.green("\u2705 Compass API key configured successfully")),console.log("")}async function RSr(){console.log(O.gray("Running setup in non-interactive mode...")),console.log("");let t=process.env.ANTHROPIC_API_KEY;if(!t)throw console.log(O.red("\u274C ANTHROPIC_API_KEY environment variable is required")),console.log(O.gray(" Set the environment variable and try again.")),new Error("ANTHROPIC_API_KEY environment variable is required");let e=await qa();if(!e.validateApiKeyFormat(t))throw console.log(O.red("\u274C Invalid API key format in ANTHROPIC_API_KEY")),new Error("Invalid API key format");await ra(zs());let n=process.env.COMPASS_TELEMETRY==="true",i=process.env.COMPASS_ERROR_REPORTING!=="false",o={dataCollection:!0,telemetry:n,analytics:n,errorReporting:i};await e.setApiKey(t),console.log(O.green("\u2713 API key configured")),await(await aS()).grantConsent(o),console.log(O.green("\u2713 Consent configured")),Xr().emit("consent-changed",{granted:!0}),console.log(""),console.log(O.green("\u2705 Non-interactive setup complete")),console.log("")}async function qPs(t={}){if(t.repair){await KBt({yes:t.yes,force:t.force,json:t.json,verbose:t.verbose,group:t.group});return}if(t.status){await $Bt();return}if(t.validateKey){await eHt();return}if(t.compassKey){await kSr(t.compassKey);return}if(t.consent||t.apiKey){await qBt({consent:t.consent,apiKey:t.apiKey});return}if(t.nonInteractive){await RSr();return}await XBt()}var XPs,TSr,KPs,nHt=Te(()=>{"use strict";$1();zc();sW();YV();Wf();v_();Ir();fd();yl();mK();Koe();Ll();JBt();QBt();XPs="1.1.36",TSr=YBt;KPs=CSr});var DSr={};Ba(DSr,{createConfigCommand:()=>NSr,default:()=>lFs});function rHt(t,e=""){let n={};for(let[i,o]of Object.entries(t)){let a=e?`${e}.${i}`:i;o!==null&&typeof o=="object"&&!Array.isArray(o)?Object.assign(n,rHt(o,a)):n[a]=o}return n}function eFs(t,e){let n=e.split("."),i=t;for(let o of n){if(i===null||typeof i!="object")return;i=i[o]}return i}function tFs(t,e,n){let i=e.split("."),o=t;for(let a=0;a<i.length-1;a++){let u=i[a];(!(u in o)||typeof o[u]!="object")&&(o[u]={}),o=o[u]}o[i[i.length-1]]=n}function nFs(t){if(t.toLowerCase()==="true")return!0;if(t.toLowerCase()==="false")return!1;let e=Number(t);return!isNaN(e)&&t.trim()!==""?e:t.includes(",")?t.split(",").map(n=>n.trim()):t}function Cke(t){return t==null?O.gray("not set"):typeof t=="boolean"?t?O.green("true"):O.red("false"):typeof t=="number"?O.yellow(t.toString()):Array.isArray(t)?t.length===0?O.gray("[]"):O.cyan(`[${t.join(", ")}]`):typeof t=="string"?t.startsWith("sk-ant-")?O.gray("\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"+t.slice(-4)):O.white(t):O.white(JSON.stringify(t))}async function rFs(){let t=pc();await t.load();let e=t.getConfig();console.log(""),console.log(O.bold.white("\u2699\uFE0F Compass Configuration")),console.log(O.dim("\u2500".repeat(50)));let n=[{name:"Anthropic",key:"anthropic"},{name:"Project",key:"project"},{name:"Safety",key:"safety"},{name:"UI",key:"ui"},{name:"Session",key:"session"},{name:"Learning",key:"learning"}];for(let i of n){console.log(""),console.log(O.bold.cyan(`\u2501\u2501\u2501 ${i.name} \u2501\u2501\u2501`));let o=e[i.key],a=rHt(o);for(let[u,p]of Object.entries(a)){let h=O.gray(`${i.key}.${u}:`),_=Cke(p);console.log(` ${h} ${_}`)}}console.log(""),console.log(O.dim("\u2500".repeat(50))),console.log(O.gray('Use "nova config <key>" to view a specific setting')),console.log(O.gray('Use "nova config <key> <value>" to modify a setting')),console.log(O.gray('Use "nova config --set-api-key" to configure API key')),console.log("")}async function iFs(t){let e=pc();await e.load();let n=e.getConfig(),i=eFs(n,t);if(i===void 0){console.log(O.yellow(`Configuration key not found: ${t}`)),console.log(""),console.log(O.gray("Available top-level keys:")),console.log(O.gray(" anthropic, project, safety, ui, session, learning"));return}if(typeof i=="object"&&i!==null&&!Array.isArray(i)){console.log(""),console.log(O.bold.cyan(`${t}:`));let o=rHt(i);for(let[a,u]of Object.entries(o))console.log(` ${O.gray(a+":")} ${Cke(u)}`);console.log("")}else console.log(`${O.gray(t+":")} ${Cke(i)}`)}async function sFs(t,e,n){let i=pc();if(await i.load(),t==="anthropic.model"){let u=fu(e),p=Qo(u),h=await fP(),_=new Set(h.map(b=>b.id));if(!p||!_.has(u)){console.log(O.red(`Invalid model: ${e}`)),console.log(""),console.log(O.gray("Available models:"));for(let b of h)console.log(O.gray(` ${b.id} (${b.name})`));console.log(""),console.log(O.gray("Aliases:"));for(let[b,I]of Object.entries(pP))_.has(I)&&console.log(O.gray(` ${b} \u2192 ${I}`));return}e=u}let o=nFs(e),a={};tFs(a,t,o);try{n.global?(await i.saveGlobal(a),console.log(O.green(`\u2705 Global configuration updated: ${t} = ${Cke(o)}`))):(await i.saveProject(process.cwd(),a),console.log(O.green(`\u2705 Project configuration updated: ${t} = ${Cke(o)}`)))}catch(u){let p=u instanceof Error?u.message:"Unknown error";console.log(O.red(`\u274C Failed to save configuration: ${p}`)),F.error("Failed to save configuration",u)}}async function oFs(){let t=await qa();if(await t.hasApiKey()){let{confirm:i}=await rg.prompt([{type:"confirm",name:"confirm",message:"An API key is already configured. Do you want to replace it?",default:!1}]);if(!i){console.log(O.gray("API key unchanged."));return}}let{apiKey:n}=await rg.prompt([{type:"password",name:"apiKey",message:"Enter your Anthropic API key:",mask:"*",validate:i=>i.trim()?!0:"API key is required"}]);try{await t.setApiKey(n),console.log(O.green("\u2705 API key saved successfully"))}catch(i){let o=i instanceof Error?i.message:"Unknown error";console.log(O.red(`\u274C Failed to save API key: ${o}`)),F.error("Failed to save API key",i)}}async function aFs(){let t=await fP(),e=new Set(t.map(n=>n.id));console.log(""),console.log(O.bold.white("\u{1F916} Available Models")),console.log(O.dim("\u2500".repeat(50)));for(let n of t)console.log(""),console.log(O.bold.cyan(n.name)),console.log(` ${O.gray("ID:")} ${n.id}`),console.log(` ${O.gray("Context Window:")} ${n.contextWindow.toLocaleString()} tokens`),console.log(` ${O.gray("Max Output:")} ${n.maxOutputTokens.toLocaleString()} tokens`),console.log(` ${O.gray("Input Price:")} $${n.pricing.inputPricePerMillion}/M tokens`),console.log(` ${O.gray("Output Price:")} $${n.pricing.outputPricePerMillion}/M tokens`);console.log(""),console.log(O.bold.white("Aliases")),console.log(O.dim("\u2500".repeat(50)));for(let[n,i]of Object.entries(pP))if(e.has(i)){let o=t.find(a=>a.id===i);console.log(` ${O.yellow(n)} \u2192 ${o?.name||i}`)}console.log("")}async function cFs(t){if(!t.force){let{confirm:n}=await rg.prompt([{type:"confirm",name:"confirm",message:t.global?"Reset global configuration to defaults?":"Reset project configuration to defaults?",default:!1}]);if(!n){console.log(O.gray("Configuration unchanged."));return}}let e=pc();try{t.global?(await e.saveGlobal({}),console.log(O.green("\u2705 Global configuration reset to defaults"))):(await e.saveProject(process.cwd(),{}),console.log(O.green("\u2705 Project configuration reset to defaults")))}catch(n){let i=n instanceof Error?n.message:"Unknown error";console.log(O.red(`\u274C Failed to reset configuration: ${i}`)),F.error("Failed to reset configuration",n)}}function NSr(){return new Om("config").description("View or modify configuration settings").argument("[key]","Configuration key to view or set").argument("[value]","New value to set").option("-g, --global","Apply to global configuration").option("--set-api-key","Interactively set the API key").option("--list-models","List available models and aliases").option("--reset","Reset configuration to defaults").option("--force","Skip confirmation prompts").addHelpText("after",ef("config")).action(async(e,n,i)=>{try{if(i.setApiKey){await oFs();return}if(i.listModels){await aFs();return}if(i.reset){await cFs({global:i.global,force:i.force});return}e?n?await sFs(e,n,{global:i.global}):await iFs(e):await rFs()}catch(o){let a=o instanceof Error?o.message:"Unknown error";console.log(O.red(`\u274C Config command failed: ${a}`)),F.error("Config command failed",o),process.exit(1)}})}var lFs,PSr=Te(()=>{"use strict";$1();zc();sW();Eg();Wf();Ir();Wd();bw();lFs=NSr});var WSr={};Ba(WSr,{createLogsCommand:()=>LSr,default:()=>mFs});import att from"path";import uFs from"readline";function FSr(t,e=!1){let n=dFs[t.level]||O.white,i=GSr[t.event]||"\u2022",o=new Date(t.ts).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit"}),a=`${O.gray(o)} ${n(i)} ${O.bold(n(t.event))} ${O.gray(`[${t.component}]`)}`;if(e&&t.data){let u=JSON.stringify(t.data,null,2).split(`
|
|
5510
|
+
Validating API key...`)),await a.validateApiKey(I),console.log(O.green(" OK API key validated successfully")),!0}catch(E){return`API key validation failed: ${E instanceof Error?E.message:"Invalid API key"}`}}}]);h=_.trim(),console.log(""),console.log(O.green("Compass API key will be used for authenticated provider access."))}if(h)console.log(""),console.log(O.gray("Skipping manual provider key setup; Compass API key sessions route through the Compass proxy."));else{console.log(""),console.log(O.bold.white("Step 5: Provider API Keys (Optional)")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.gray("No Compass API key was provided.")),console.log(O.gray("Configure provider API keys manually if you want to use Nova without Compass auth.")),console.log(""),console.log(O.yellow('This step is OPTIONAL - you can skip any provider and configure them later with "nova setup --api-key".')),console.log("");let _=[{name:"Anthropic",value:"anthropic"},{name:"OpenAI",value:"openai"},{name:"Ollama",value:"ollama"},{name:"Z.AI",value:"zai"},{name:"MiniMax",value:"minimax"}],b={anthropic:"Anthropic",openai:"OpenAI",ollama:"Ollama",zai:"Z.AI",minimax:"MiniMax",huggingface:"HuggingFace",gemini:"Gemini",grok:"Grok",deepseek:"DeepSeek"},{selectedProviders:I}=await rg.prompt([{type:"checkbox",name:"selectedProviders",message:"Select which provider API keys to configure now:",choices:_,default:["anthropic"]}]);for(let E of I){console.log("");let{providerKey:x}=await rg.prompt([{type:"password",name:"providerKey",message:`Enter your ${b[E]} API key:`,mask:"*",validate:C=>{let D=C.trim();return D?E==="anthropic"&&!o.validateApiKeyFormat(D)?'Invalid API key format. Anthropic API keys should start with "sk-ant-"':!0:"Please enter an API key or leave this provider unchecked."}}]);u.push({provider:E,apiKey:x.trim()}),console.log(O.green(` OK ${b[E]} API key captured`))}}console.log(""),console.log(O.gray("Saving settings..."));try{h&&(await o.setCompassApiKey(h),F.info("Compass API key saved successfully"));for(let{provider:I,apiKey:E}of u)I==="anthropic"&&await o.setApiKey(E),await o.setProviderApiKey(I,E),F.info(`${I} API key saved successfully`);await(await aS()).grantConsent(i),F.info("Consent saved successfully"),Xr().emit("consent-changed",{granted:!0}),console.log(""),console.log(O.green.bold("Setup Complete!")),console.log(O.dim("-".repeat(50))),console.log(""),console.log(O.gray("Compass has been configured successfully.")),console.log(""),console.log(O.bold.white("Quick Tips:")),console.log(O.gray(" - Run ")+O.cyan("compass")+O.gray(" to start an interactive session")),console.log(O.gray(" - Type natural language requests to interact with Nova")),console.log(O.gray(" - Use ")+O.cyan("/help")+O.gray(" to see available commands")),console.log(O.gray(" - Use ")+O.cyan("/model")+O.gray(" to switch between models")),console.log(O.gray(" - Use ")+O.cyan("/exit")+O.gray(" to exit Nova")),console.log(""),console.log(O.gray("Your consent settings:")),console.log(O.gray(" - Data Collection: ")+O.green("Enabled (required)")),console.log(O.gray(" - Telemetry: ")+(e?O.green("Enabled"):O.yellow("Disabled"))),console.log(O.gray(" - Error Reporting: ")+(n?O.green("Enabled"):O.yellow("Disabled"))),console.log(""),console.log(O.gray("API keys configured:")),h&&console.log(O.gray(" - Compass: ")+O.green("Configured"));for(let{provider:I}of u){let E=I=="openai"?"OpenAI":I=="zai"?"Z.AI":I.charAt(0).toUpperCase()+I.slice(1);console.log(O.gray(` - ${E}: `)+O.green("Configured"))}console.log(""),console.log(O.gray("You can modify these settings anytime with ")+O.cyan("nova consent")+O.gray(".")),console.log(O.gray("To configure more API keys, run ")+O.cyan("nova setup --api-key")+O.gray(".")),console.log("")}catch(_){throw F.error("Failed to save setup settings",_),console.log(""),console.log(O.red("Failed to save settings")),_ instanceof Error&&console.log(O.red(` ${_.message}`)),_}}async function $Bt(){let t=await TSr(),e=await qa();console.log(""),console.log(O.bold.white("\u{1F527} Setup Status")),console.log(O.dim("\u2500".repeat(50)));let n=t.missingConsent?O.red("\u2717"):O.green("\u2713"),i=t.missingConsent?O.red("Not configured"):t.consentExpired?O.yellow("Expired"):t.consentNeedsRenewal?O.yellow("Needs renewal"):O.green("Valid");console.log(` ${O.gray("Consent:")} ${n} ${i}`);let o=t.missingCompassApiKey?O.yellow("\u25CB"):O.green("\u2713"),a=t.missingCompassApiKey?O.yellow("Not configured (optional)"):O.green("Configured");if(console.log(` ${O.gray("Compass API Key:")} ${o} ${a}`),console.log(""),console.log(O.bold.white(" Provider API Keys:")),!t.missingCompassApiKey)console.log(` ${O.gray("Compass Proxy:")} ${O.green("\u2713")} ${O.green("Configured")}`),console.log(O.gray(" Compass API key auth routes provider traffic through the Compass proxy."));else{let u=["anthropic","openai","ollama","zai","minimax"];for(let p of u){let h=await e.hasProviderApiKey(p),_=h?O.green("\u2713"):O.yellow("\u25CB"),b=h?O.green("Configured"):O.yellow("Not configured"),I=p==="openai"?"OpenAI":p==="zai"?"Z.AI":p.charAt(0).toUpperCase()+p.slice(1);console.log(` ${O.gray(`${I}:`)}${" ".repeat(11-I.length)}${_} ${b}`)}}console.log(""),t.required?(console.log(O.yellow("\u26A0\uFE0F Setup is required before using Compass.")),console.log(O.gray(' Run "nova setup" to configure.'))):(console.log(O.green("\u2705 Compass is fully configured and ready to use.")),console.log(O.gray(' Run "compass" to start an interactive session.'))),console.log("")}async function qBt(t){if(await ra(zs()),t.consent){console.log(""),console.log(O.bold.white("\u{1F4CB} Reconfigure Consent Settings")),console.log(O.dim("\u2500".repeat(50))),console.log("");let{dataCollection:e}=await rg.prompt([{type:"confirm",name:"dataCollection",message:"Enable data collection (required)?",default:!0}]);if(!e){console.log(O.yellow("\u26A0\uFE0F Data collection is required. Keeping current settings."));return}let{telemetry:n}=await rg.prompt([{type:"confirm",name:"telemetry",message:"Enable anonymous telemetry?",default:!1}]),{errorReporting:i}=await rg.prompt([{type:"confirm",name:"errorReporting",message:"Enable error reporting?",default:!0}]),o={dataCollection:!0,telemetry:n,analytics:n,errorReporting:i};await(await aS()).grantConsent(o),console.log(O.green("\u2705 Consent settings updated"))}if(t.apiKey){console.log(""),console.log(O.bold.white("\u{1F511} Reconfigure API Keys")),console.log(O.dim("\u2500".repeat(50))),console.log("");let e=await qa();if(await e.hasCompassApiKey()){console.log(O.yellow("Manual provider API keys are disabled for Compass API key sessions.")),console.log(O.gray("Compass API key auth routes provider traffic through the Compass proxy."));return}console.log(O.gray("Available providers:")),console.log(O.gray(" 1. Anthropic (default for Claude models)")),console.log(O.gray(" 2. OpenAI (for GPT models / direct OpenAI API access)")),console.log(O.gray(" 3. Ollama (for Ollama/cloud models)")),console.log(O.gray(" 4. Z.AI (for Z.AI GLM models)")),console.log(O.gray(" 5. MiniMax (for MiniMax models)")),console.log("");let n=[{name:"Anthropic",value:"anthropic"},{name:"OpenAI",value:"openai"},{name:"Ollama",value:"ollama"},{name:"Z.AI",value:"zai"},{name:"MiniMax",value:"minimax"}],{selectedProviders:i}=await rg.prompt([{type:"checkbox",name:"selectedProviders",message:"Select which providers to configure:",choices:n,default:["anthropic"]}]);for(let o of i){if(console.log(""),await e.hasProviderApiKey(o)){let{confirm:p}=await rg.prompt([{type:"confirm",name:"confirm",message:`${o==="openai"?"OpenAI":o.toUpperCase()} API key is already configured. Replace it?`,default:!1}]);if(!p){console.log(O.gray(`${o==="openai"?"OpenAI":o.toUpperCase()} API key unchanged.`));continue}}let{apiKey:u}=await rg.prompt([{type:"password",name:"apiKey",message:`Enter your ${o==="openai"?"OpenAI":o.toUpperCase()} API key:`,mask:"*",validate:p=>{let h=p.trim();return h?o==="anthropic"&&!e.validateApiKeyFormat(h)?'Invalid API key format. Anthropic keys should start with "sk-ant-"':!0:"API key is required"}}]);await e.setProviderApiKey(o,u.trim()),o==="anthropic"&&await e.setApiKey(u.trim()),console.log(O.green(`\u2705 ${o.toUpperCase()} API key updated`))}}}async function KBt(t={}){let e=["auth"];t.group!==void 0&&(e=Tke(t.group)),(await ott({repair:!0,yes:t.yes??!1,force:t.force??!1,json:t.json??!1,verbose:t.verbose??!1,group:e})).summary.healthy||process.exit(1)}function CSr(){return new Om("setup").description("Run first-time setup wizard for consent and API key configuration").option("--status","Display current setup status without running wizard").option("--consent","Reconfigure consent settings only").option("--api-key","Reconfigure API key only").option("--non-interactive","Run in non-interactive mode (requires environment variables)").option("--compass-key <compass-api-key>","Configure Compass API key non-interactively").option("--validate-key","Validate the stored Compass API key without modifying anything").option("--repair","Run diagnostic checks and attempt to auto-fix issues (delegates to `nova doctor --repair`)").option("--yes","With --repair: auto-apply non-credential, non-destructive repairs without prompting").option("--force","With --repair: bypass the credential-deletion guard for destructive credential repairs").option("--json","With --repair: emit machine-readable JSON (secret-redacted) instead of the human report").option("--verbose","With --repair: show extended detail for warn/fail checks").option("--group <group...>","With --repair: restrict to specific check groups (default: auth). Choices: auth, models, mcp, hooks, runtime.").action(async e=>{try{if(e.repair){await KBt({yes:e.yes,force:e.force,json:e.json,verbose:e.verbose,group:e.group});return}if(e.status){await $Bt();return}if(e.validateKey){await eHt();return}if(e.compassKey){await kSr(e.compassKey);return}if(e.consent||e.apiKey){await qBt({consent:e.consent,apiKey:e.apiKey});return}if(e.nonInteractive){await RSr();return}await XBt()}catch(n){n instanceof Error&&n.message.includes("cancelled")&&process.exit(0),F.error("Setup command failed",n),console.error(O.red("\u274C Setup failed")),n instanceof Error&&console.error(O.red(` ${n.message}`)),process.exit(1)}})}async function eHt(){console.log(O.bold.white("Validating stored API keys...")),console.log("");let t=await jBt(),e=!1,n=!1;for(let i of t){let{provider:o,configured:a,valid:u,detail:p}=i,h=o==="compass"||o==="anthropic";if(!a&&!h)continue;let _=$Ps(o);if(!a)console.log(O.yellow(` \u25CB ${_}: Not configured`));else if(u){let b=h?p:"Configured";console.log(O.green(` \u2713 ${_}: ${b}`)),e=!0}else console.log(O.red(` \u2717 ${_}: ${p}`)),n=!0}console.log(""),e?n?(console.log(O.yellow("\u26A0 Some API keys are invalid or missing")),console.log(O.gray(' Run "nova setup --api-key" to reconfigure.')),process.exit(1)):console.log(O.green("\u2705 All configured API keys are valid")):(console.log(O.red("\u274C No valid API keys found")),console.log(O.gray(' Run "nova setup" to configure API keys.')),process.exit(1))}function $Ps(t){return t==="compass"?"Compass":t==="openai"?"OpenAI":t==="zai"?"Z.AI":t.charAt(0).toUpperCase()+t.slice(1)}async function kSr(t){let e=t.trim();if(!e)throw console.log(O.red("\u274C Compass API key cannot be empty")),new Error("Compass API key cannot be empty");console.log(O.gray("Validating Compass API key..."));let n=await mu();try{let u=await n.validateApiKey(e);console.log(O.green(`\u2713 API key validated (${u.user?.email||"authenticated"})`))}catch(u){let p=u instanceof Error?u.message:"Invalid API key";throw console.log(O.red(`\u274C API key validation failed: ${p}`)),new Error(`Compass API key validation failed: ${p}`)}await ra(zs()),await(await qa()).setCompassApiKey(e),console.log(O.green("\u2713 Compass API key saved")),await(await aS()).grantConsent(t1e()),console.log(O.green("\u2713 Consent and telemetry accepted")),Xr().emit("consent-changed",{granted:!0}),console.log(""),console.log(O.green("\u2705 Compass API key configured successfully")),console.log("")}async function RSr(){console.log(O.gray("Running setup in non-interactive mode...")),console.log("");let t=process.env.ANTHROPIC_API_KEY;if(!t)throw console.log(O.red("\u274C ANTHROPIC_API_KEY environment variable is required")),console.log(O.gray(" Set the environment variable and try again.")),new Error("ANTHROPIC_API_KEY environment variable is required");let e=await qa();if(!e.validateApiKeyFormat(t))throw console.log(O.red("\u274C Invalid API key format in ANTHROPIC_API_KEY")),new Error("Invalid API key format");await ra(zs());let n=process.env.COMPASS_TELEMETRY==="true",i=process.env.COMPASS_ERROR_REPORTING!=="false",o={dataCollection:!0,telemetry:n,analytics:n,errorReporting:i};await e.setApiKey(t),console.log(O.green("\u2713 API key configured")),await(await aS()).grantConsent(o),console.log(O.green("\u2713 Consent configured")),Xr().emit("consent-changed",{granted:!0}),console.log(""),console.log(O.green("\u2705 Non-interactive setup complete")),console.log("")}async function qPs(t={}){if(t.repair){await KBt({yes:t.yes,force:t.force,json:t.json,verbose:t.verbose,group:t.group});return}if(t.status){await $Bt();return}if(t.validateKey){await eHt();return}if(t.compassKey){await kSr(t.compassKey);return}if(t.consent||t.apiKey){await qBt({consent:t.consent,apiKey:t.apiKey});return}if(t.nonInteractive){await RSr();return}await XBt()}var XPs,TSr,KPs,nHt=Te(()=>{"use strict";$1();zc();sW();YV();Wf();v_();Ir();fd();yl();mK();Koe();Ll();JBt();QBt();XPs="1.1.37",TSr=YBt;KPs=CSr});var DSr={};Ba(DSr,{createConfigCommand:()=>NSr,default:()=>lFs});function rHt(t,e=""){let n={};for(let[i,o]of Object.entries(t)){let a=e?`${e}.${i}`:i;o!==null&&typeof o=="object"&&!Array.isArray(o)?Object.assign(n,rHt(o,a)):n[a]=o}return n}function eFs(t,e){let n=e.split("."),i=t;for(let o of n){if(i===null||typeof i!="object")return;i=i[o]}return i}function tFs(t,e,n){let i=e.split("."),o=t;for(let a=0;a<i.length-1;a++){let u=i[a];(!(u in o)||typeof o[u]!="object")&&(o[u]={}),o=o[u]}o[i[i.length-1]]=n}function nFs(t){if(t.toLowerCase()==="true")return!0;if(t.toLowerCase()==="false")return!1;let e=Number(t);return!isNaN(e)&&t.trim()!==""?e:t.includes(",")?t.split(",").map(n=>n.trim()):t}function Cke(t){return t==null?O.gray("not set"):typeof t=="boolean"?t?O.green("true"):O.red("false"):typeof t=="number"?O.yellow(t.toString()):Array.isArray(t)?t.length===0?O.gray("[]"):O.cyan(`[${t.join(", ")}]`):typeof t=="string"?t.startsWith("sk-ant-")?O.gray("\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"+t.slice(-4)):O.white(t):O.white(JSON.stringify(t))}async function rFs(){let t=pc();await t.load();let e=t.getConfig();console.log(""),console.log(O.bold.white("\u2699\uFE0F Compass Configuration")),console.log(O.dim("\u2500".repeat(50)));let n=[{name:"Anthropic",key:"anthropic"},{name:"Project",key:"project"},{name:"Safety",key:"safety"},{name:"UI",key:"ui"},{name:"Session",key:"session"},{name:"Learning",key:"learning"}];for(let i of n){console.log(""),console.log(O.bold.cyan(`\u2501\u2501\u2501 ${i.name} \u2501\u2501\u2501`));let o=e[i.key],a=rHt(o);for(let[u,p]of Object.entries(a)){let h=O.gray(`${i.key}.${u}:`),_=Cke(p);console.log(` ${h} ${_}`)}}console.log(""),console.log(O.dim("\u2500".repeat(50))),console.log(O.gray('Use "nova config <key>" to view a specific setting')),console.log(O.gray('Use "nova config <key> <value>" to modify a setting')),console.log(O.gray('Use "nova config --set-api-key" to configure API key')),console.log("")}async function iFs(t){let e=pc();await e.load();let n=e.getConfig(),i=eFs(n,t);if(i===void 0){console.log(O.yellow(`Configuration key not found: ${t}`)),console.log(""),console.log(O.gray("Available top-level keys:")),console.log(O.gray(" anthropic, project, safety, ui, session, learning"));return}if(typeof i=="object"&&i!==null&&!Array.isArray(i)){console.log(""),console.log(O.bold.cyan(`${t}:`));let o=rHt(i);for(let[a,u]of Object.entries(o))console.log(` ${O.gray(a+":")} ${Cke(u)}`);console.log("")}else console.log(`${O.gray(t+":")} ${Cke(i)}`)}async function sFs(t,e,n){let i=pc();if(await i.load(),t==="anthropic.model"){let u=fu(e),p=Qo(u),h=await fP(),_=new Set(h.map(b=>b.id));if(!p||!_.has(u)){console.log(O.red(`Invalid model: ${e}`)),console.log(""),console.log(O.gray("Available models:"));for(let b of h)console.log(O.gray(` ${b.id} (${b.name})`));console.log(""),console.log(O.gray("Aliases:"));for(let[b,I]of Object.entries(pP))_.has(I)&&console.log(O.gray(` ${b} \u2192 ${I}`));return}e=u}let o=nFs(e),a={};tFs(a,t,o);try{n.global?(await i.saveGlobal(a),console.log(O.green(`\u2705 Global configuration updated: ${t} = ${Cke(o)}`))):(await i.saveProject(process.cwd(),a),console.log(O.green(`\u2705 Project configuration updated: ${t} = ${Cke(o)}`)))}catch(u){let p=u instanceof Error?u.message:"Unknown error";console.log(O.red(`\u274C Failed to save configuration: ${p}`)),F.error("Failed to save configuration",u)}}async function oFs(){let t=await qa();if(await t.hasApiKey()){let{confirm:i}=await rg.prompt([{type:"confirm",name:"confirm",message:"An API key is already configured. Do you want to replace it?",default:!1}]);if(!i){console.log(O.gray("API key unchanged."));return}}let{apiKey:n}=await rg.prompt([{type:"password",name:"apiKey",message:"Enter your Anthropic API key:",mask:"*",validate:i=>i.trim()?!0:"API key is required"}]);try{await t.setApiKey(n),console.log(O.green("\u2705 API key saved successfully"))}catch(i){let o=i instanceof Error?i.message:"Unknown error";console.log(O.red(`\u274C Failed to save API key: ${o}`)),F.error("Failed to save API key",i)}}async function aFs(){let t=await fP(),e=new Set(t.map(n=>n.id));console.log(""),console.log(O.bold.white("\u{1F916} Available Models")),console.log(O.dim("\u2500".repeat(50)));for(let n of t)console.log(""),console.log(O.bold.cyan(n.name)),console.log(` ${O.gray("ID:")} ${n.id}`),console.log(` ${O.gray("Context Window:")} ${n.contextWindow.toLocaleString()} tokens`),console.log(` ${O.gray("Max Output:")} ${n.maxOutputTokens.toLocaleString()} tokens`),console.log(` ${O.gray("Input Price:")} $${n.pricing.inputPricePerMillion}/M tokens`),console.log(` ${O.gray("Output Price:")} $${n.pricing.outputPricePerMillion}/M tokens`);console.log(""),console.log(O.bold.white("Aliases")),console.log(O.dim("\u2500".repeat(50)));for(let[n,i]of Object.entries(pP))if(e.has(i)){let o=t.find(a=>a.id===i);console.log(` ${O.yellow(n)} \u2192 ${o?.name||i}`)}console.log("")}async function cFs(t){if(!t.force){let{confirm:n}=await rg.prompt([{type:"confirm",name:"confirm",message:t.global?"Reset global configuration to defaults?":"Reset project configuration to defaults?",default:!1}]);if(!n){console.log(O.gray("Configuration unchanged."));return}}let e=pc();try{t.global?(await e.saveGlobal({}),console.log(O.green("\u2705 Global configuration reset to defaults"))):(await e.saveProject(process.cwd(),{}),console.log(O.green("\u2705 Project configuration reset to defaults")))}catch(n){let i=n instanceof Error?n.message:"Unknown error";console.log(O.red(`\u274C Failed to reset configuration: ${i}`)),F.error("Failed to reset configuration",n)}}function NSr(){return new Om("config").description("View or modify configuration settings").argument("[key]","Configuration key to view or set").argument("[value]","New value to set").option("-g, --global","Apply to global configuration").option("--set-api-key","Interactively set the API key").option("--list-models","List available models and aliases").option("--reset","Reset configuration to defaults").option("--force","Skip confirmation prompts").addHelpText("after",ef("config")).action(async(e,n,i)=>{try{if(i.setApiKey){await oFs();return}if(i.listModels){await aFs();return}if(i.reset){await cFs({global:i.global,force:i.force});return}e?n?await sFs(e,n,{global:i.global}):await iFs(e):await rFs()}catch(o){let a=o instanceof Error?o.message:"Unknown error";console.log(O.red(`\u274C Config command failed: ${a}`)),F.error("Config command failed",o),process.exit(1)}})}var lFs,PSr=Te(()=>{"use strict";$1();zc();sW();Eg();Wf();Ir();Wd();bw();lFs=NSr});var WSr={};Ba(WSr,{createLogsCommand:()=>LSr,default:()=>mFs});import att from"path";import uFs from"readline";function FSr(t,e=!1){let n=dFs[t.level]||O.white,i=GSr[t.event]||"\u2022",o=new Date(t.ts).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit"}),a=`${O.gray(o)} ${n(i)} ${O.bold(n(t.event))} ${O.gray(`[${t.component}]`)}`;if(e&&t.data){let u=JSON.stringify(t.data,null,2).split(`
|
|
5511
5511
|
`).map((p,h)=>h===0?p:` ${p}`).join(`
|
|
5512
5512
|
`);a+=`
|
|
5513
5513
|
${O.dim(u)}`}else if(t.data){let u=Object.keys(t.data);if(u.length>0){let p=u.slice(0,3).map(h=>{let _=t.data[h];return typeof _=="string"&&_.length>30?`${h}=${_.substring(0,27)}...`:`${h}=${_}`}).join(", ");a+=` ${O.dim(p)}`}}return a}async function iHt(t){let e=[];if(!await wZ.default.pathExists(t))return e;let n=wZ.default.createReadStream(t),i=uFs.createInterface({input:n,crlfDelay:1/0});for await(let o of i)if(o.trim())try{e.push(JSON.parse(o))}catch{}return e}function ctt(t){return Sg(t,"logs")}function sHt(t){return att.join(eu(t),".logs")}function MSr(t){let e=ctt(t),n=new Date,i=String(n.getDate()).padStart(2,"0"),o=String(n.getMonth()+1).padStart(2,"0"),a=String(n.getFullYear()).slice(-2);return att.join(e,`system-${i}-${o}-${a}.jsonl`)}async function pFs(t){let e=[ctt(t),sHt(t)],n=new Set;for(let i of e){if(!await wZ.default.pathExists(i))continue;let o=await wZ.default.readdir(i);for(let a of o)a.startsWith("system-")&&a.endsWith(".jsonl")&&n.add(a)}return[...n].sort().reverse()}async function OSr(t,e){let n=att.join(ctt(t),e);if(await wZ.default.pathExists(n))return n;let i=att.join(sHt(t),e);return await wZ.default.pathExists(i)?i:n}function fFs(t){let e={},n={debug:0,info:0,warn:0,error:0};for(let o of t)e[o.event]=(e[o.event]||0)+1,n[o.level]++;console.log(""),console.log(O.bold.cyan("\u{1F4CA} Event Summary")),console.log(O.dim("\u2500".repeat(50))),console.log(` ${O.gray("Total Events:")} ${t.length}`),console.log(` ${O.blue("Info:")} ${n.info}`),console.log(` ${O.yellow("Warn:")} ${n.warn}`),console.log(` ${O.red("Error:")} ${n.error}`),console.log(` ${O.gray("Debug:")} ${n.debug}`),console.log(""),console.log(O.bold("By Type:"));let i=Object.entries(e).sort((o,a)=>a[1]-o[1]).slice(0,10);for(let[o,a]of i){let u=GSr[o]||"\u2022";console.log(` ${u} ${o}: ${a}`)}console.log("")}function LSr(){let t=new Om("logs");return t.description("View system event logs for debugging and auditing").argument("[action]","Action: tail, errors, filter, summary, list, path","tail").option("-n, --lines <number>","Number of lines to show","30").option("-f, --filter <pattern>","Filter by event type, level, or component").option("-v, --verbose","Show verbose output with full event data").option("--json","Output in JSON format").option("--file <filename>","Specify log file to read (from .compass/.logs/)").addHelpText("after",ef("logs")).action(async(e,n)=>{try{let i=process.cwd(),o=MSr(i);switch(n.file&&(o=await OSr(i,n.file)),e.toLowerCase()){case"list":case"ls":{let a=await pFs(i);if(console.log(""),console.log(O.bold.cyan("\u{1F4C1} Available Log Files")),console.log(O.dim("\u2500".repeat(50))),a.length===0)console.log(O.gray(" No log files found.")),console.log(O.gray(" Logs are created when you start a session."));else for(let u of a){let p=await OSr(i,u),_=((await wZ.default.stat(p)).size/1024).toFixed(1),b=p===MSr(i);console.log(` ${b?O.green("*"):" "} ${u} ${O.gray(`(${_} KB)`)}`)}console.log("");break}case"tail":case"t":default:{let a=parseInt(n.lines)||30,u=await iHt(o);if(n.filter){let h=n.filter.toLowerCase();u=u.filter(_=>_.event.toLowerCase().includes(h)||_.level.toLowerCase()===h||_.component.toLowerCase().includes(h))}let p=u.slice(-a);if(n.json){console.log(JSON.stringify(p,null,2));return}if(console.log(""),console.log(O.bold.cyan(`\u{1F4CB} System Event Logs ${n.filter?`(filtered: ${n.filter})`:""}`)),console.log(O.dim("\u2500".repeat(60))),p.length===0)console.log(O.gray(" No events recorded yet.")),console.log(O.gray(" Events will appear as you interact with the system."));else{for(let h of p)console.log(FSr(h,n.verbose));u.length>a&&console.log(O.gray(` ... showing last ${a} of ${u.length} events`))}console.log("");break}case"errors":case"e":{let u=(await iHt(o)).filter(p=>p.level==="error"||p.level==="warn");if(n.json){console.log(JSON.stringify(u,null,2));return}if(console.log(""),console.log(O.bold.cyan("\u26A0\uFE0F Errors and Warnings")),console.log(O.dim("\u2500".repeat(60))),u.length===0)console.log(O.green(" No errors or warnings recorded."));else{let p=u.slice(-parseInt(n.lines)||-30);for(let h of p)console.log(FSr(h,!0));u.length>30&&console.log(O.gray(` ... and ${u.length-30} more`))}console.log("");break}case"summary":case"s":{let a=await iHt(o);if(n.json){let u={debug:0,info:0,warn:0,error:0},p={};for(let h of a)p[h.event]=(p[h.event]||0)+1,u[h.level]++;console.log(JSON.stringify({total:a.length,byLevel:u,byType:p},null,2));return}fFs(a);break}case"path":case"p":{let a=ctt(i);console.log(""),console.log(O.bold.cyan("\u{1F4CD} Log File Locations")),console.log(O.dim("\u2500".repeat(50))),console.log(` ${O.gray("Logs Directory:")} ${a}`),console.log(` ${O.gray("Legacy Directory:")} ${sHt(i)}`),console.log(` ${O.gray("Current File:")} ${o}`),console.log(` ${O.gray("Exists:")} ${await wZ.default.pathExists(o)?O.green("Yes"):O.yellow("No")}`),console.log("");break}case"help":case"h":{console.log(""),console.log(O.bold.cyan("nova logs - System Event Log Viewer")),console.log(O.dim("\u2500".repeat(50))),console.log(""),console.log(O.bold("Usage:")),console.log(` ${O.yellow("nova logs")} Show last 30 events`),console.log(` ${O.yellow("nova logs tail -n 50")} Show last 50 events`),console.log(` ${O.yellow("nova logs errors")} Show errors and warnings`),console.log(` ${O.yellow("nova logs summary")} Show event statistics`),console.log(` ${O.yellow("nova logs list")} List available log files`),console.log(` ${O.yellow("nova logs path")} Show log file location`),console.log(""),console.log(O.bold("Options:")),console.log(` ${O.yellow("-n, --lines <N>")} Number of events to show`),console.log(` ${O.yellow("-f, --filter <X>")} Filter by type/level/component`),console.log(` ${O.yellow("-v, --verbose")} Show full event data`),console.log(` ${O.yellow("--json")} Output in JSON format`),console.log(` ${O.yellow("--file <name>")} Read specific log file`),console.log(""),console.log(O.bold("Examples:")),console.log(O.gray(" nova logs --filter error")),console.log(O.gray(" nova logs --filter bash_executed -v")),console.log(O.gray(" nova logs summary --json")),console.log(O.gray(" nova logs --file system-01-01-25.jsonl")),console.log("");break}}}catch(i){F.error("Logs command failed",i),console.error(O.red("\u274C Failed to read system event logs")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t}var wZ,dFs,GSr,mFs,VSr=Te(()=>{"use strict";$1();zc();bw();wZ=Ws(gp(),1);Ir();yl();Nb();dFs={debug:O.gray,info:O.blue,warn:O.yellow,error:O.red},GSr={session_start:"\u25B6",session_end:"\u25A0",bash_executed:"$",file_read:"\u{1F4D6}",file_write:"\u{1F4DD}",file_delete:"\u{1F5D1}",file_rename:"\u{1F4CB}",tool_executed:"\u{1F527}",tool_registered:"\u2795",tool_failed:"\u274C",config_changed:"\u2699",provider_changed:"\u{1F504}",model_changed:"\u{1F916}",mcp_connected:"\u{1F50C}",mcp_disconnected:"\u{1F50C}",mcp_error:"\u26A0",workflow_started:"\u25B6",workflow_completed:"\u2713",workflow_failed:"\u2717",step_started:"\u2192",step_completed:"\u2713",step_failed:"\u2717",approval_requested:"\u2753",approval_granted:"\u2713",approval_denied:"\u2717",approval_timeout:"\u23F0",context_loaded:"\u{1F4E5}",context_saved:"\u{1F4E4}",context_compacted:"\u{1F5DC}",rate_limited:"\u{1F6AB}",retry_attempted:"\u{1F504}",api_error:"\u26A0",agentic_turn_started:"\u25B6",agentic_turn_completed:"\u25A0",agentic_loop_detected:"\u21BB",agentic_loop_blocked:"\u26D4",agentic_recovery_decided:"\u{1F6E0}",agentic_forced_summary:"\u{1F9FE}",agentic_budget_exhausted:"\u23F3",agentic_telemetry_recorder_failed:"\u26A0",cache_hit:"\u{1F4BE}",cache_miss:"\u{1F4A8}",error:"\u274C"};mFs=LSr});var USr={};Ba(USr,{createMCPCommand:()=>ZSr,default:()=>_Fs});function hFs(t){let e={};for(let n of t){let[i,...o]=n.split("=");i&&o.length>0&&(e[i]=o.join("="))}return e}function oHt(t){switch(t){case"http":return O.cyan("HTTP");case"sse":return O.yellow("SSE");case"stdio":return O.green("stdio");default:return O.gray(t)}}function aHt(t){switch(t){case"local":return O.blue("local");case"project":return O.magenta("project");case"user":return O.cyan("user");default:return O.gray(t)}}function gFs(t){return qBe(t)?.label}function ZSr(){let t=new Om("mcp").description("Manage Model Context Protocol (MCP) servers").enablePositionalOptions().passThroughOptions().addHelpText("after",ef("mcp"));return t.command("add <name> [urlOrCommand] [args...]").description("Add a new MCP server").requiredOption("-t, --transport <type>","Transport type (http, sse, or stdio)").option("-s, --scope <scope>","Configuration scope (local, project, or user)","local").option("-H, --header <header...>","HTTP headers (key: value format)").option("-e, --env <env...>","Environment variables (KEY=value format)").action(async(e,n,i,o)=>{try{let a=o.transport.toLowerCase();["http","sse","stdio"].includes(a)||(console.log(O.red(`Invalid transport type: ${o.transport}`)),console.log(O.gray("Valid types: http, sse, stdio")),process.exit(1)),n||(console.log(O.red("URL or command is required")),process.exit(1));let u=o.scope.toLowerCase();["local","project","user"].includes(u)||(console.log(O.red(`Invalid scope: ${o.scope}`)),console.log(O.gray("Valid scopes: local, project, user")),process.exit(1));let p;if(o.header){p={};for(let I of o.header){let E=I.indexOf(":");if(E>0){let x=I.substring(0,E).trim(),C=I.substring(E+1).trim();p[x]=C}}}let h=o.env?hFs(o.env):void 0,_=S_();await _.load(process.cwd());let b=await _.addServer({transport:a,name:e,urlOrCommand:n,args:a==="stdio"?i:void 0,scope:u,headers:p,env:h},process.cwd());b.success?(console.log(""),console.log(O.green(`Added MCP server '${e}'`)),console.log(O.gray(` Transport: ${oHt(a)}`)),console.log(O.gray(` Scope: ${aHt(u)}`)),console.log(a==="stdio"?O.gray(` Command: ${n} ${i.join(" ")}`):O.gray(` URL: ${n}`)),console.log("")):(console.log(O.red(`Failed to add server: ${b.error}`)),process.exit(1))}catch(a){let u=a instanceof Error?a.message:String(a);F.error("MCP add command failed",a),console.log(O.red(`Failed to add server: ${u}`)),process.exit(1)}}),t.command("add-json <name> <json>").description("Add an MCP server from JSON configuration").option("-s, --scope <scope>","Configuration scope (local, project, or user)","local").action(async(e,n,i)=>{try{let o=i.scope.toLowerCase();["local","project","user"].includes(o)||(console.log(O.red(`Invalid scope: ${i.scope}`)),process.exit(1));let a=S_();await a.load(process.cwd());let u=await a.addServerFromJson(e,n,o,process.cwd());u.success?console.log(O.green(`Added MCP server '${e}' from JSON configuration`)):(console.log(O.red(`Failed to add server: ${u.error}`)),process.exit(1))}catch(o){let a=o instanceof Error?o.message:String(o);F.error("MCP add-json command failed",o),console.log(O.red(`Failed to add server: ${a}`)),process.exit(1)}}),t.command("list").alias("ls").description("List all configured MCP servers").option("-v, --verbose","Show detailed information").action(async e=>{try{let n=S_();await n.load(process.cwd());let i=n.getAllServers(process.cwd());if(i.length===0){console.log(""),console.log(O.gray("No MCP servers configured.")),console.log(""),console.log(O.gray("Add a server with:")),console.log(O.gray(" nova mcp add --transport http <name> <url>")),console.log("");return}console.log(""),console.log(O.bold("MCP Servers")),console.log(O.dim("\u2500".repeat(60)));for(let o of i){let a=oHt(o.type),u=aHt(o.scope||"local");if(console.log(""),console.log(`${O.bold(o.name)} ${O.gray(`(${a})`)} ${u}`),SI(o)||EI(o))console.log(` ${O.gray("URL:")} ${o.url}`);else if(yE(o)){let p=o.args?`${o.command} ${o.args.join(" ")}`:o.command;console.log(` ${O.gray("Command:")} ${p}`)}e.verbose&&(o.env&&Object.keys(o.env).length>0&&console.log(` ${O.gray("Environment:")} ${Object.keys(o.env).join(", ")}`),o.source&&console.log(` ${O.gray("Source:")} ${o.source}`))}console.log(""),console.log(O.gray(`Total: ${i.length} server(s)`)),console.log("")}catch(n){let i=n instanceof Error?n.message:String(n);F.error("MCP list command failed",n),console.log(O.red(`Failed to list servers: ${i}`)),process.exit(1)}}),t.command("get <name>").description("Get details for a specific MCP server").action(async e=>{try{let n=S_();await n.load(process.cwd());let i=n.getServer(e,process.cwd());if(i||(console.log(O.red(`Server not found: ${e}`)),process.exit(1)),console.log(""),console.log(O.bold(`MCP Server: ${i.name}`)),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Type:")} ${oHt(i.type)}`),console.log(` ${O.gray("Scope:")} ${aHt(i.scope||"local")}`),SI(i)||EI(i)){if(console.log(` ${O.gray("URL:")} ${i.url}`),i.headers&&Object.keys(i.headers).length>0){console.log(` ${O.gray("Headers:")}`);for(let[o,a]of Object.entries(i.headers)){let u=o.toLowerCase().includes("authorization")?a.substring(0,20)+"...":a;console.log(` ${O.gray(o)}: ${u}`)}}}else yE(i)&&(console.log(` ${O.gray("Command:")} ${i.command}`),i.args&&i.args.length>0&&console.log(` ${O.gray("Arguments:")} ${i.args.join(" ")}`),i.cwd&&console.log(` ${O.gray("Working Directory:")} ${i.cwd}`));if(i.env&&Object.keys(i.env).length>0){console.log(` ${O.gray("Environment Variables:")}`);for(let[o,a]of Object.entries(i.env)){let u=o.toLowerCase().includes("key")||o.toLowerCase().includes("secret")||o.toLowerCase().includes("token")?"***":a;console.log(` ${O.gray(o)}: ${u}`)}}i.source&&console.log(` ${O.gray("Source:")} ${i.source}`),i.description&&console.log(` ${O.gray("Description:")} ${i.description}`),console.log("")}catch(n){let i=n instanceof Error?n.message:String(n);F.error("MCP get command failed",n),console.log(O.red(`Failed to get server: ${i}`)),process.exit(1)}}),t.command("remove <name>").alias("rm").description("Remove an MCP server").action(async e=>{try{let n=S_();await n.load(process.cwd());let i=await n.removeServer(e,process.cwd());i.success?console.log(O.green(`Removed MCP server '${e}'`)):(console.log(O.red(i.message)),process.exit(1))}catch(n){let i=n instanceof Error?n.message:String(n);F.error("MCP remove command failed",n),console.log(O.red(`Failed to remove server: ${i}`)),process.exit(1)}}),t.command("reset-project-choices").description("Reset all project MCP server approval choices").action(async()=>{try{let e=S_();await e.load(process.cwd()),await e.resetProjectApprovals(),console.log(O.green("Reset all project MCP server approval choices")),console.log(O.gray("You will be prompted to approve project servers again."))}catch(e){let n=e instanceof Error?e.message:String(e);F.error("MCP reset-project-choices command failed",e),console.log(O.red(`Failed to reset choices: ${n}`)),process.exit(1)}}),t.command("auth-status").description("Check authentication status of all configured MCP servers").option("--json","Output in JSON format (for programmatic use)").action(async e=>{try{let n=S_();await n.load(process.cwd());let i=n.getAllServers(process.cwd()),o=await ZP(),a=[];for(let u of i){let p;(SI(u)||EI(u))&&(p=u.url);let h=o.hasStoredAuth(u.name),_=o.getTokens(u.name),b=o.getApiToken(u.name),I=!!u.oauth,E=p?!!T6(p):!1,x=!!(SI(u)||EI(u))&&!!u.headers?.Authorization,C=I||E,D="none";(I||E)&&(D="oauth"),b&&(D="token"),x&&(D="header");let U;_&&(_.expiresAt?U=new Date(_.expiresAt).getTime()-300*1e3<=Date.now():U=!1);let z={name:u.name,type:u.type,needsAuth:C,authenticated:h||x,method:D};p&&(z.url=p),E&&p&&(z.oauthRestricted=T6(p)?.oauthRestricted??!1),U!==void 0&&(z.tokenExpired=U),a.push(z)}if(e.json)console.log(JSON.stringify({servers:a},null,2));else{if(console.log(""),console.log(O.bold("MCP Server Authentication Status")),console.log(O.dim("\u2500".repeat(60))),a.length===0){console.log(O.gray("No MCP servers configured.")),console.log("");return}for(let p of a){let h=p.authenticated?O.green("\u25CF"):p.needsAuth?O.red("\u25CF"):O.gray("\u25CB"),_=p.authenticated?O.green("authenticated"):p.needsAuth?O.red("needs auth"):O.gray("no auth required");console.log(""),console.log(`${h} ${O.bold(p.name)} ${O.gray(`(${p.type})`)} - ${_}`),p.url&&console.log(` ${O.gray("URL:")} ${p.url}`),console.log(` ${O.gray("Method:")} ${p.method}`),p.tokenExpired&&console.log(` ${O.yellow("Token expired - re-authentication needed")}`),p.oauthRestricted&&console.log(` ${O.yellow("OAuth restricted to approved clients")}`)}console.log("");let u=a.filter(p=>p.needsAuth&&!p.authenticated);u.length>0&&(console.log(O.yellow(`${u.length} server(s) need authentication.`)),console.log(O.gray("Use: nova mcp auth <server-name>"))),console.log("")}}catch(n){let i=n instanceof Error?n.message:String(n);F.error("MCP auth-status command failed",n),e.json?console.log(JSON.stringify({error:i})):console.log(O.red(`Failed to check auth status: ${i}`)),process.exit(1)}}),t.command("auth <name>").description("Authenticate with an MCP server (OAuth flow or API token)").option("--json","Output in JSON format (for programmatic use)").option("--token <token>","Set a simple API token instead of OAuth flow").option("--no-open","Do not open the browser automatically").option("--timeout <ms>","OAuth callback timeout in milliseconds","300000").action(async(e,n)=>{let i=!!n.json;try{let o=S_();await o.load(process.cwd());let a=o.getServer(e,process.cwd());if(!a){let z=`Server not found: ${e}`;console.log(i?JSON.stringify({error:z}):O.red(z)),process.exit(1)}let u=await ZP();if(n.token){await u.setApiToken(e,n.token),console.log(i?JSON.stringify({success:!0,method:"token",serverName:e}):O.green(`API token stored for '${e}'`));return}let p;if((SI(a)||EI(a))&&(p=a.url),!p){let z=`Server '${e}' is a stdio server. Use --token to provide an API token.`;console.log(i?JSON.stringify({error:z}):O.red(z)),process.exit(1)}let h=a.oauth?.authorizationUrl&&a.oauth?.tokenUrl,_,b,I;if(h){let z=await u.startAuthFlow(e,a.oauth);if(z.error||!z.authUrl){let ee=`Failed to start auth flow: ${z.error||"Unknown error"}`;console.log(i?JSON.stringify({error:ee}):O.red(ee)),process.exit(1)}_=z.authUrl,b=a.oauth,I=z.clientStatus}else{let z=await u.startAuthFlowWithDiscovery(e,p,a.oauth,{forceDynamicClientRegistration:!0});if(z.error||!z.authUrl){let ee=`Could not start OAuth for '${e}': ${z.error||"Unknown OAuth startup error"}`;console.log(i?JSON.stringify({error:ee,needsToken:!0}):O.red(ee)),process.exit(1)}_=z.authUrl,b=z.discoveredConfig||a.oauth,I=z.clientStatus}let E=gFs(I);if(i)console.log(JSON.stringify({status:"auth_required",authUrl:_,serverName:e,oauthClientStatus:I,oauthClientStatusText:E,oauthRestricted:T6(p)?.oauthRestricted??!1}));else{if(console.log(""),console.log(O.cyan(`OAuth authentication for ${e}`)),console.log(""),E){let z=I==="legacy_fallback"?O.yellow:O.green;console.log(z(`\u2713 ${E}`)),I==="legacy_fallback"&&console.log(O.gray(" This may fail for providers that require dynamic client registration.")),console.log("")}T6(p)?.oauthRestricted&&(console.log(O.yellow("Note: This provider restricts OAuth to approved clients.")),console.log("")),console.log(O.white("Open this URL to authenticate:")),console.log(""),console.log(` ${_}`),console.log("")}if(n.open!==!1){let{exec:z}=await import("child_process"),ee=process.platform,de;ee==="win32"?de=`start "" "${_}"`:ee==="darwin"?de=`open "${_}"`:de=`xdg-open "${_}"`,z(de,oe=>{oe&&F.debug(`Failed to open browser: ${oe.message}`)})}let x=parseInt(n.timeout,10)||3e5,C=1e3,D=Date.now();for(i||console.log(O.gray("Waiting for authentication callback..."));Date.now()-D<x;){await new Promise(ee=>setTimeout(ee,C));let z=b?await u.completeAuthFlowWithConfig(e,b):{success:!1,error:"No OAuth config available"};if(z.success){console.log(i?JSON.stringify({status:"authenticated",serverName:e,oauthClientStatus:I}):O.green(`Authentication successful for '${e}'!`));return}z.error&&!z.error.includes("No pending OAuth flow")&&(console.log(i?JSON.stringify({status:"error",error:z.error,serverName:e}):O.red(`Authentication failed: ${z.error}`)),process.exit(1))}let U=`Authentication timed out after ${x/1e3} seconds.`;console.log(i?JSON.stringify({status:"timeout",error:U,serverName:e}):O.red(U)),process.exit(1)}catch(o){let a=o instanceof Error?o.message:String(o);F.error("MCP auth command failed",o),console.log(i?JSON.stringify({error:a}):O.red(`Failed to authenticate: ${a}`)),process.exit(1)}}),t}var _Fs,BSr=Te(()=>{"use strict";$1();zc();bw();E6();Pwe();Ir();iY();_Fs=ZSr});var jSr={};Ba(jSr,{createSessionCommand:()=>IFs});function HSr(t){let e=Number(t);if(!Number.isInteger(e)||e<1)throw new mIt("Expected a positive integer");return e}function yFs(t){let e=Number(t);if(!Number.isInteger(e)||e<0)throw new mIt("Expected a non-negative integer");return e}function cHt(t){return{...t,cwd:t.cwd?pI(t.cwd):void 0}}function YSr(...t){let e={};for(let n of t)for(let[i,o]of Object.entries(n))o!==void 0&&(e[i]=o);return e}function bFs(t){return t.option("--cwd <path>","Run in a specific project directory instead of cwd").option("--skip-setup","Skip the setup wizard even if not configured").option("--compass-key <key>","Compass API key for authentication").option("--anthropic-key <key>","Anthropic API key for direct provider authentication").option("--no-banner","Suppress the ASCII art banner on startup").option("--no-update-check","Skip the automatic update check on startup").option("--force-update-check","Force update check (ignore cache interval)").option("--verbose","Enable verbose logging (info level)").option("--debug","Enable debug logging (most detailed)").option("--agents <json>","JSON object defining agents for this session").option("--agent <name>","Run with a named agent").option("--standalone-agent","Use only the agent's system prompt, excluding the default CLI system prompt").option("-w, --worktree [name]","Run in an isolated git worktree (auto-named if no name given)").option("--unleash","Start in unguarded mode (removes safety guardrails) - USE WITH CAUTION")}async function vFs(){throw new Error("Session command handler is not configured")}function IFs(t=vFs){let e=new Om("session");bFs(e.description("List, resume, search, or show archived sessions from the current working directory").argument("[id]","Archived session id to resume")).option("--limit <number>","Maximum archived sessions to show",HSr).option("--offset <number>","Number of newest archived sessions to skip",yFs).addHelpText("after",ef("session")).action(async o=>{await t({action:"resume",sessionId:o,options:cHt(e.opts())})});let n=e.command("search <query...>").description("Search archived sessions and print bounded recall snippets").option("--cwd <path>","Run in a specific project directory instead of cwd").option("--limit <number>","Maximum recall matches to show",HSr).option("--json","Output machine-readable JSON");n.action(async o=>{await t({action:"search",query:o.join(" "),options:cHt(YSr(n.opts(),e.opts()))})});let i=e.command("show <id>").description("Show an archived session by id or filename").option("--cwd <path>","Run in a specific project directory instead of cwd").option("--json","Output machine-readable JSON");return i.action(async o=>{await t({action:"show",sessionId:o,options:cHt(YSr(i.opts(),e.opts()))})}),e}var zSr=Te(()=>{"use strict";$1();bw();yl()});var lHt,uHt,SFs,ltt,dHt=Te(()=>{"use strict";Ll();eb();Ir();lHt=F.child("ToolsRpcApprovalBridge"),uHt="Rejected by tools-rpc stdio mode: interactive approval is unavailable",SFs=uHt,ltt=class{unsubscribers=[];start(){if(this.unsubscribers.length>0)return;let e=Xr();this.unsubscribers.push(e.on("approval-required",({request:n,sessionId:i})=>{lHt.debug("Rejecting interactive approval in tools-rpc mode",{approvalId:n.id,type:n.type,sessionId:i}),setImmediate(()=>{Wl().resolveRequest("reject",SFs,i)})})),this.unsubscribers.push(e.on("clarification-required",({request:n,sessionId:i})=>{lHt.debug("Cancelling interactive clarification in tools-rpc mode",{clarificationId:n.id,sessionId:i}),setImmediate(()=>{Wl().resolveClarificationWizard(null,i)})})),this.unsubscribers.push(e.on("plan-approval-required",({request:n,sessionId:i})=>{lHt.debug("Rejecting plan approval in tools-rpc mode",{planId:n.plan.id,sessionId:i}),setImmediate(()=>{Wl().resolvePlanApproval("reject",void 0,void 0,i)})}))}stop(){for(let e of this.unsubscribers.splice(0))e()}}});import*as QSr from"readline";function gS(t,e,n){return{code:ESt[t],message:e,...n?{data:n}:{}}}function EFs(t){if(AFs(t))return t;let e=t;return typeof e.code=="number"&&typeof e.message=="string"?{code:e.code,message:e.message,...e.data!==void 0?{data:{details:e.data}}:{}}:gS("internalError",t instanceof Error?t.message:"Internal error")}function JSr(t){if(!t||typeof t!="object"||Array.isArray(t))return gS("invalidRequest","Invalid Request");let e=t;if(e.jsonrpc!=="2.0")return gS("invalidRequest","Invalid JSON-RPC version");if(typeof e.method!="string"||e.method.length===0)return gS("invalidRequest","Invalid Request: missing method");if("id"in e){let n=e.id;if(typeof n!="string"&&typeof n!="number"&&n!==null)return gS("invalidRequest","Invalid Request: id must be a string, number, or null")}}function wFs(t){if(t&&typeof t=="object"&&"id"in t){let e=t.id;if(typeof e=="string"||typeof e=="number"||e===null)return e}return null}function AFs(t){return!!(t&&typeof t=="object"&&typeof t.code=="number"&&typeof t.message=="string")}var VK,utt,pHt=Te(()=>{"use strict";Ir();i1e();VK=F.child("ToolsRpcTransport"),utt=class{input;output;handler;canRunInParallel;rl;closePromise;resolveClose;closed=!1;lineQueue=Promise.resolve();constructor(e){this.input=e.input??process.stdin,this.output=e.output??process.stdout,this.handler=e.handler,this.canRunInParallel=e.canRunInParallel}async start(){return this.closePromise?this.closePromise:(this.rl=QSr.createInterface({input:this.input,terminal:!1}),this.rl.on("line",e=>{this.lineQueue=this.lineQueue.then(()=>this.handleLine(e)).catch(n=>{VK.error("Unhandled tools RPC line error",{error:n instanceof Error?n.message:String(n)})})}),this.rl.on("error",e=>{VK.error("Tools RPC readline error",{error:e.message})}),this.rl.on("close",()=>{this.lineQueue.finally(()=>{this.closed=!0,this.resolveClose?.()})}),this.closePromise=new Promise(e=>{this.resolveClose=e}),this.closePromise)}async close(){this.closed||(this.closed=!0,this.rl?.close(),typeof this.input.pause=="function"&&this.input.pause(),this.resolveClose?.())}async handleLine(e){let n=e.trim();if(!n)return;let i;try{i=JSON.parse(n)}catch{await this.writeResponse({jsonrpc:"2.0",id:null,error:gS("parseError","Parse error")});return}let o=!1,a={requestShutdown:()=>{o=!0}};if(Array.isArray(i)){if(i.length===0){await this.writeResponse({jsonrpc:"2.0",id:null,error:gS("invalidBatch","Invalid batch request")});return}VK.debug("Processing tools RPC batch",{size:i.length});let p=(await this.handleBatch(i,a)).filter(h=>h!==void 0);p.length>0&&await this.writeRaw(p)}else{let u=await this.handleMessage(i,a);u&&await this.writeResponse(u)}o&&await this.close()}async handleBatch(e,n){let i=new Array(e.length),o=0;for(;o<e.length;){let a=e[o];if(!this.canMessageRunInParallel(a)){i[o]=await this.handleMessage(a,n),o+=1;continue}let u=o,p=[];for(;o<e.length&&this.canMessageRunInParallel(e[o]);)p.push(e[o]),o+=1;let h=await Promise.all(p.map(_=>this.handleMessage(_,n)));for(let _=0;_<h.length;_++)i[u+_]=h[_]}return i}canMessageRunInParallel(e){if(JSr(e))return!1;let n=e;return"id"in n?this.canRunInParallel?.(n)===!0:!1}async handleMessage(e,n){let i=JSr(e);if(i)return{jsonrpc:"2.0",id:wFs(e),error:i};let o=e;if(!("id"in o)){try{await this.handler(o,n)}catch(u){VK.warn("Tools RPC notification failed",{method:o.method,error:u instanceof Error?u.message:String(u)})}return}let a=Date.now();VK.debug("Handling tools RPC request",{method:o.method,hasId:!0});try{let u=await this.handler(o,n);return VK.debug("Handled tools RPC request",{method:o.method,hasId:!0,durationMs:Date.now()-a,success:!0}),{jsonrpc:"2.0",id:o.id??null,result:u}}catch(u){return VK.debug("Handled tools RPC request",{method:o.method,hasId:!0,durationMs:Date.now()-a,success:!1}),{jsonrpc:"2.0",id:o.id??null,error:EFs(u)}}}async writeResponse(e){await this.writeRaw(e)}async writeRaw(e){let n=`${JSON.stringify(e)}
|
|
@@ -5653,9 +5653,9 @@ ${n.map(i=>` - ${i}`).join(`
|
|
|
5653
5653
|
`),_(D)},x=D=>{o=Math.min(i.length-1,Math.max(0,D)),a=zwr(i,o,u,a)},C=(D,U)=>{if(U.ctrl&&U.name==="c"){E(void 0);return}switch(U.name){case"up":case"k":x(o-1);break;case"down":case"j":x(o+1);break;case"home":x(0);break;case"end":x(i.length-1);break;case"pageup":x(o-u);break;case"pagedown":x(o+u);break;case"escape":E(void 0);break;case"return":{let z=i[o];!z||z.kind==="cancel"?E(void 0):z.kind==="load-more"?E("load-more"):E(z.summary)}break;default:break}};try{p.on("keypress",C),a=zwr(i,o,u,a)}catch(D){I(),b(D)}})}async function XGs(t){if(!t)return!1;try{let{getCompassAuthService:e}=await Promise.resolve().then(()=>(v_(),gX)),n=e();if(await n.ensureAuthenticated(),n.isAuthenticated()&&!n.canUnleash())return F.debug("Ignoring --unleash: Compass organisation policy denies unguarded mode"),!1}catch(e){F.debug("Could not validate Compass unleash policy; leaving requested mode unchanged",e)}return!0}function qGs(){let t=new Om;t.name($Gs).description(ovt).version(Mke,"-v, --version","Display version number").helpOption("-h, --help","Display help information").addHelpText("after",bxt()),xWe(t.command("start",{isDefault:!0}).description("Start an interactive AI-assisted development session (default command)")).addHelpText("after",ef("start")).action(async(n,i)=>{try{let o=process.env.COMPASS_DEBUG,a=process.env.COMPASS_VERBOSE,u=o&&o.toLowerCase()!=="false"&&o!=="0",p=a&&a.toLowerCase()!=="false"&&a!=="0";i.debug||u?F.configure({level:"debug"}):(i.verbose||p)&&F.configure({level:"info"});let h=process.env.COMPASS_RESTARTED==="1",_=process.env[ITe],b=h&&process.env[STe]==="tui-command"&&typeof _=="string";if(h&&(F.debug("Detected supervisor restart \u2014 suppressing first-launch chrome",{isRendererSwitchRestart:b}),n=void 0,i.continue=!b,i.banner=!1,i.updateCheck=!1),i.compassKey||i.anthropicKey){let{getCredentialStore:Ye}=await Promise.resolve().then(()=>(Wf(),tL)),{getCompassAuthService:Xn}=await Promise.resolve().then(()=>(v_(),gX)),pr=await Ye();if(i.compassKey&&i.anthropicKey&&(console.error(O.red("\u274C --anthropic-key is not allowed with --compass-key")),console.error(O.gray(" Compass API key sessions route provider traffic through the Compass proxy.")),process.exit(1)),i.compassKey)try{F.debug("Validating Compass API key from CLI parameter"),await Xn().validateApiKey(i.compassKey),await pr.setCompassApiKey(i.compassKey),F.debug("Compass API key from CLI parameter validated and stored"),console.log(O.green("\u2713 Compass API key validated and stored"))}catch(Jr){F.error("Failed to configure Compass API key",Jr),console.error(O.red("\u274C Compass API key setup failed")),Jr instanceof Error&&console.error(O.red(` ${Jr.message}`)),process.exit(1)}if(i.anthropicKey)try{if(F.debug("Storing Anthropic API key from CLI parameter"),!pr.validateApiKeyFormat(i.anthropicKey))throw new Error('Invalid API key format. Anthropic API keys should start with "sk-ant-"');await pr.setApiKey(i.anthropicKey),F.debug("Anthropic API key from CLI parameter stored"),console.log(O.green("\u2713 Anthropic API key stored"))}catch(Jr){F.error("Failed to store Anthropic API key",Jr),console.error(O.red("\u274C Invalid Anthropic API key")),Jr instanceof Error&&console.error(O.red(` ${Jr.message}`)),process.exit(1)}console.log("")}let I=YK(i),E;if(b)if(typeof _!="string"||!ETe(_))F.warn("Ignoring invalid renderer-switch snapshot token on restart");else{let Ye=await wTe(I).load(_);Ye.reason==="loaded"?(E=Ye.snapshot,F.debug("Loaded renderer-switch snapshot for startup",{token:_})):F.warn("Renderer-switch snapshot unavailable; starting without archived restore",{reason:Ye.reason,issues:Ye.issues})}let x;if(i.worktree!==void 0){let{setupWorktree:Ye}=await Promise.resolve().then(()=>(QO(),V5t)),Xn=typeof i.worktree=="string"?i.worktree:void 0;await DGs(I,Xn)||(console.log(O.yellow("Worktree creation cancelled. No worktree was created and Nova did not change directories.")),process.exit(0)),x=await Ye(I,{name:Xn??!0,reason:"--worktree CLI option requested",approvalAlreadyGranted:!0}),console.log(O.cyan(`\u{1F33F} Worktree "${x.name}" created`)),console.log(O.gray(` Original root: ${x.originalProjectRoot}`)),console.log(O.gray(` New session root: ${x.worktreePath}`)),console.log(O.gray(` Branch: ${x.branchName}`)),console.log(O.gray(" Nova is now running from this worktree.")),console.log(""),I=x.worktreePath}let{getConfigManager:C}=await Promise.resolve().then(()=>(Eg(),HVe)),D=C();D.isLoaded()||await D.load(I);let U=D.validate();if(U.length>0){console.error(O.red("\u274C Invalid configuration"));for(let Ye of U)console.error(O.red(` ${Ye}`));process.exit(1)}let{bootstrapCloudAwareWorkspace:z,recordCloudAwareWorkspaceActivity:ee}=await Promise.resolve().then(()=>(Nb(),dWe)),de=z(I,D.getConfig().cloudAware),oe=KHt.join(de.workspacePaths.runtimeWorkspaceDir,I2),ve=de.cloud.isCloud&&D.getConfig().cloudAware?.windowsRetryOnCloudLocks!==!1,ke=zs();await ra(ke,{retryCloudLocks:ve}),de.workspacePaths.usesProjectCompassDir?await ra(de.workspacePaths.projectCompassDir,{retryCloudLocks:ve}):F.debug("CLI startup: skipped project .compass ensure for cloud-synced workspace",{projectDir:I,projectCompassDir:de.workspacePaths.projectCompassDir,runtimeWorkspaceDir:de.workspacePaths.runtimeWorkspaceDir}),await ra(de.workspacePaths.runtimeWorkspaceDir,{retryCloudLocks:ve}),await ee(de),await w_r(I,oe),A_r(I,oe);let Ae=KHt.join(zs(),"acp-sessions");C_r(Ae);let{getObservabilityService:Qe}=await Promise.resolve().then(()=>(Wde(),wLt)),Ze=Qe();await Ze.start({projectRoot:I});let{getRuntimeTelemetryBridge:pt}=await Promise.resolve().then(()=>(D_r(),N_r));pt().start({projectRoot:I});let{startAutomationWebhookDispatcher:at}=await Promise.resolve().then(()=>(f8t(),F_r));if(at(I),(async()=>{try{let{scanAllMemoryHygieneIfDue:Ye,formatStartupMemoryHygieneSummary:Xn}=await Promise.resolve().then(()=>(v8t(),U_r)),pr=await Ye(I);if(!pr)return;for(let Jr of[pr.shared,pr.project]){if(!Jr)continue;let bo=Xn(Jr);bo&&console.log(O.dim(bo))}}catch{}})(),NGs(I)){console.log(""),console.log(O.yellow("\u26A0\uFE0F Warning: Running from a user home directory")),console.log(O.dim("\u2500".repeat(50))),console.log(""),console.log(O.gray(`Directory: ${I}`)),console.log(""),console.log(O.gray("User home directories typically contain many files and folders.")),console.log(O.gray("This can cause slow indexing and high memory usage.")),console.log(""),console.log(O.gray("Recommendation: Navigate to a specific project folder before")),console.log(O.gray("starting the CLI, or use the --cwd option to specify a project directory.")),console.log("");let Ye=(await Promise.resolve().then(()=>(sW(),fJe))).default,{proceed:Xn}=await Ye.prompt([{type:"confirm",name:"proceed",message:"Do you want to continue anyway?",default:!1}]);Xn||(console.log(""),console.log(O.gray("Exiting. Please navigate to a project directory and try again.")),console.log(""),process.exit(0)),console.log("")}let nn=await XGs(i.unleash||!1),{readStdin:Tn}=await Promise.resolve().then(()=>(qO(),zde)),It=await Tn();if(i.agents||i.agent){let{initializeAgentManager:Ye}=await Promise.resolve().then(()=>(B0(),C6));await Ye(I,i.agents)}if(i.print){let Ye;if(i.agent){let{getAgentByName:li}=await Promise.resolve().then(()=>(B0(),C6));Ye=await li(i.agent),Ye||(console.error(O.red(`\u274C Agent "${i.agent}" not found`)),console.error(O.gray(" Available agents: explore, verification, planner, supernova")),console.error(O.gray(" Or define custom agents with --agents")),process.exit(1)),F.debug(`Running with agent: ${Ye.name} (${Ye.source})`)}let{runSDKQuery:Xn}=await Promise.resolve().then(()=>(qO(),zde)),pr=typeof i.toolOutput=="string"?i.toolOutput.toLowerCase():"compact",Jr=pr==="verbose"||pr==="silent"?pr:"compact";typeof i.toolOutput=="string"&&pr!=="compact"&&pr!=="verbose"&&pr!=="silent"&&console.error(O.yellow(`\u26A0 Unknown --tool-output value "${i.toolOutput}" \u2014 falling back to "compact".`));let bo=await Xn({query:i.print,pipedInput:It,projectRoot:I,continueSession:i.continue||!1,debug:i.debug||u,cliAgentsJson:i.agents,agentConfig:Ye,standaloneAgent:i.standaloneAgent||Ye?.standalone,attachments:i.attachment?await lIe(i.attachment,I):void 0,toolOutputMode:Jr,includeUserContext:!0,unguardedMode:nn,nonInteractive:!0,dirtyTreePolicyOverride:"continue_in_place"});await Ze.stop();let To=await jK();process.exit(To?bo.exitCode:1);return}try{let{getTempFileService:Ye,PREVIEW_TEMP_DIR:Xn}=await Promise.resolve().then(()=>(w2t(),$Mn)),pr=Ye(),Jr=KHt.join(oe,Xn);pr.setTempDir(Jr),await pr.initialize()}catch{F.debug("TempFileService initialization skipped")}if(i.banner!==!1){let{renderBanner:Ye}=await Promise.resolve().then(()=>(mK(),I8t));console.log(Ye({version:Mke,unleashed:nn}))}process.platform!=="win32"&&process.getuid?.()!==0&&(console.log(O.blue("\u2139 Running without elevated permissions")),console.log(O.gray(" For the best experience on macOS/Linux, consider starting with: sudo nova")),console.log("")),I!==process.cwd()&&(console.log(O.cyan(`\u{1F4C1} Working directory: ${I}`)),console.log(""));let on=i.forceUpdateCheck===!0;if(F.debug("CLI startup: about to check for updates",{updateCheckEnabled:i.updateCheck!==!1,forceUpdateCheck:on}),i.updateCheck!==!1)try{F.debug("CLI startup: calling performAutoUpdateOnStartup");let{performAutoUpdateOnStartup:Ye}=await Promise.resolve().then(()=>(P$e(),mVt)),Xn=await Ye(void 0,on);F.debug("CLI startup: update check completed",{updated:Xn.updated}),Xn.updated&&(F.debug("CLI startup: auto-update successful, exiting for restart"),console.log(""),console.log("Update complete! Please run the CLI again to use the new version."),console.log(""),process.exit(0))}catch(Ye){F.debug("Update check failed",Ye)}let{loadCustomModelsIntoCache:wn}=await Promise.resolve().then(()=>(Wd(),P1e));await wn();let[At,Hn,Dn,Ar]=await Promise.all([Promise.resolve().then(()=>(B0(),C6)),Promise.resolve().then(()=>(zT(),k6)),Promise.resolve().then(()=>(Yde(),UQe)),Promise.resolve().then(()=>(p6(),JEe))]);At.setProjectRoot(I),Hn.setSkillProjectRoot(I),Dn.setCommandsProjectRoot(I),Ar.setHooksProjectRoot(I);let Nr;try{Nr=(await Ar.executeSessionStartHooks(I,{sessionStartSource:i.continue||i.resumeChatArchiveId||E?"resume":"startup"})).additionalContext}catch(Ye){F.warn("SessionStart hooks failed open",Ye)}let zi=Date.now(),[{render:Qn},Wn,{App:Or},{installDiffRenderer:Bn}]=await Promise.all([import("ink"),import("react"),Promise.resolve().then(()=>(HBt(),BBt)),Promise.resolve().then(()=>(Uet(),uBt))]),Kr=Bn(),Zi="default",Tr=process.env.COMPASS_RENDERER?.toLowerCase();if(Tr==="fullscreen"||Tr==="default")Zi=Tr;else try{D.get("ui")?.renderer==="fullscreen"&&(Zi="fullscreen")}catch(Ye){F.debug("Failed to read renderer preference from config",Ye)}if(Zi==="fullscreen"){let{enterAltScreen:Ye,registerAltScreenCleanup:Xn,isAltScreenSupported:pr}=await Promise.resolve().then(()=>(L9t(),Gqn));pr()?(Xn(),Ye()):(Zi="default",F.debug("Fullscreen renderer requested but terminal does not support alt-screen; falling back to inline"))}let{waitUntilExit:Hr}=Qn(Wn.createElement(Or,{version:Mke,skipSetup:i.skipSetup,projectRoot:I,showBanner:!1,showFullscreenBanner:i.banner!==!1,smartMode:i.smart,initialPrompt:n,continueSession:i.continue||!1,resumeChatArchiveId:E?void 0:i.resumeChatArchiveId,rendererSwitchSnapshot:E,rendererMode:Zi,lifecycleHookContext:Nr,cliAgentsJson:i.agents,unleashMode:nn,initialAttachments:i.attachment?await lIe(i.attachment,I):void 0}),{exitOnCtrlC:!1});if(Ag("CLI session render bootstrap",Date.now()-zi,{projectRoot:I,rendererMode:Zi}),await Hr(),Kr(),await Ze.stop(),x){let{cleanupWorktree:Ye}=await Promise.resolve().then(()=>(QO(),V5t));await Ye(x)}let ar=await jK()?process.exitCode??0:1;process.exit(ar)}catch(o){await jK();try{let{getObservabilityService:a}=await Promise.resolve().then(()=>(Wde(),wLt));await a().stop()}catch{}F.error("Failed to start Compass",o),console.error(O.red("\u274C Failed to start Compass")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("setup").description("Run first-time setup wizard for consent and API key configuration").option("--compass-key <key>","Compass API key for authentication (non-interactive)").option("--anthropic-key <key>","Anthropic API key for direct provider authentication").option("--validate-key","Validate all stored API keys without modifying anything").option("--repair","Run shared diagnostic checks and attempt safe repairs").option("--yes","With --repair: auto-apply non-credential, non-destructive repairs without prompting").option("--force","With --repair: allow explicitly forced destructive credential repairs").option("--json","With --repair: emit redacted JSON instead of the human report").option("--verbose","With --repair: show extended diagnostic detail").option("--group <group...>","With --repair: restrict to check groups (default: auth)").addHelpText("after",ef("setup")).action(async n=>{try{if(await ra(zs()),n.repair){let{runSetupRepair:E}=await Promise.resolve().then(()=>(nHt(),tHt));await E({yes:n.yes,force:n.force,json:n.json,verbose:n.verbose,group:n.group});return}if(n.validateKey){let{validateStoredApiKeys:E}=await Promise.resolve().then(()=>(nHt(),tHt));await E();return}if(n.compassKey||n.anthropicKey){let{getCredentialStore:E}=await Promise.resolve().then(()=>(Wf(),tL)),{getCompassAuthService:x}=await Promise.resolve().then(()=>(v_(),gX)),C=await E();if(n.compassKey&&n.anthropicKey&&(console.error(O.red("\u274C --anthropic-key is not allowed with --compass-key")),console.error(O.gray(" Compass API key sessions route provider traffic through the Compass proxy.")),process.exit(1)),n.compassKey)try{console.log(O.gray("Validating Compass API key...")),await x().validateApiKey(n.compassKey),await C.setCompassApiKey(n.compassKey),console.log(O.green("\u2713 Compass API key validated and stored"))}catch(D){F.error("Failed to configure Compass API key",D),console.error(O.red("\u274C Compass API key setup failed")),D instanceof Error&&console.error(O.red(` ${D.message}`)),process.exit(1)}if(n.anthropicKey)try{if(console.log(O.gray("Storing Anthropic API key...")),!C.validateApiKeyFormat(n.anthropicKey))throw new Error('Invalid API key format. Anthropic API keys should start with "sk-ant-"');await C.setApiKey(n.anthropicKey),console.log(O.green("\u2713 Anthropic API key stored"))}catch(D){F.error("Failed to store Anthropic API key",D),console.error(O.red("\u274C Invalid Anthropic API key")),D instanceof Error&&console.error(O.red(` ${D.message}`)),process.exit(1)}console.log("");return}let{renderBanner:i}=await Promise.resolve().then(()=>(mK(),I8t));console.log(i(Mke));let[{render:o},a,{App:u},{installDiffRenderer:p}]=await Promise.all([import("ink"),import("react"),Promise.resolve().then(()=>(HBt(),BBt)),Promise.resolve().then(()=>(Uet(),uBt))]),h=p(),{waitUntilExit:_}=o(a.createElement(u,{version:Mke,showBanner:!1}),{exitOnCtrlC:!1});await _(),h();let I=await jK()?process.exitCode??0:1;process.exit(I)}catch(i){F.error("Setup failed",i),console.error(O.red("\u274C Setup failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("init").description("Initialize Compass in the current project (creates .compass/ directory)").option("--cwd <path>","Target a specific project directory instead of cwd").option("-f, --force","Overwrite existing .compass directory if present").addHelpText("after",ef("init")).action(async n=>{try{let i=YK(n),o=eu(i);if(await ws(o)){if(!n.force){console.log(O.yellow("\u26A0\uFE0F Compass is already initialized in this project.")),console.log(O.gray(" Use --force to reinitialize."));return}console.log(O.gray("Reinitializing Compass..."))}await ra(o),await ra(`${o}/backups`),await ra(`${o}/cache`),await ra(`${o}/context`),console.log(O.green("\u2705 Initialized Compass in current project")),console.log(O.gray(` Created ${o}/`)),console.log(""),console.log(O.gray("Next steps:")),console.log(O.gray(` 1. Run "nova setup" if you haven't configured your API key`)),console.log(O.gray(' 2. Run "nova" to start an interactive session'))}catch(i){F.error("Init failed",i),console.error(O.red("\u274C Failed to initialize Compass")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}});let e=(n,i,o)=>{let a,u=new Om(n).description(i).allowUnknownOption(!0).allowExcessArguments(!0);u.helpOption(!1),u.option("-h, --help","Display help for this command"),u.hook("preAction",async(p,h)=>{h.opts().help&&((await o()).outputHelp(),process.exit(0)),a=await o()}),u.action(async()=>{if(!a)throw new Error(`Failed to load command: ${n}`);let p=process.argv.findIndex((_,b)=>b>=2&&_===n),h=p>=0?["node",...process.argv.slice(p)]:["node",n,...u.args];await a.parseAsync(h)}),t.addCommand(u)};return e("config","Manage Compass configuration",async()=>{let{createConfigCommand:n}=await Promise.resolve().then(()=>(PSr(),DSr));return n()}),e("logs","View, follow, or clear application log files",async()=>{let{createLogsCommand:n}=await Promise.resolve().then(()=>(VSr(),WSr));return n()}),e("mcp","Manage MCP (Model Context Protocol) server connections",async()=>{let{createMCPCommand:n}=await Promise.resolve().then(()=>(BSr(),USr));return n()}),e("acp","Manage ACP (Agent Communication Protocol) connections",async()=>{let{createACPCommand:n}=await eO("cliMain:acpCommandImport",()=>Promise.resolve().then(()=>(c8t(),a8t)));return n()}),e("session","List or resume archived sessions from the current working directory",async()=>{let{createSessionCommand:n}=await Promise.resolve().then(()=>(zSr(),jSr));return n(async({action:i,sessionId:o,query:a,options:u})=>{if(u.worktree!==void 0)throw new Error("nova session cannot be combined with --worktree; resume from the original working directory instead.");let p=YK(u),{createChatArchivalService:h}=await Promise.resolve().then(()=>(jX(),GAn)),_=h(p);if(i==="search"){let x=await _.searchArchiveRecall(a??"",u.limit);u.json?console.log(JSON.stringify(x,null,2)):console.log(yKe(x));return}if(i==="show"){if(!o)throw new Error("Session id is required");let x=await _.getArchive(o);if(!x)throw new Error(`Session not found: ${o}`);u.json?console.log(JSON.stringify(x,null,2)):console.log(wgr(x));return}let b;if(o){let x=await _.getArchive(o);if(!x)throw new Error(`Session not found: ${o}`);b={id:x.id,filename:o,startedAt:x.startedAt,endedAt:x.endedAt,durationSeconds:x.durationSeconds,messageCount:x.messageCount,summary:x.summary,topics:x.topics,model:x.model,tokenUsage:x.tokenUsage}}else{let x=u.limit??10,C=u.offset??0,D=[],U=await _.listArchives();for(;;){let z=U.slice(C,C+x+1);D.push(...z.slice(0,x));let ee=z.length>x;if(D.length===0){console.log(O.yellow(`No archived sessions found for ${p}.`));return}let de=await QGs(D,ee,x);if(de==="load-more"){C+=x;continue}if(!de){console.log(O.gray("Session resume cancelled."));return}b=de;break}}let I=t.commands.find(x=>x.name()==="start");if(!I)throw new Error("Start command is not registered");let E=["node","start","--resume-chat-archive-id",b.id];u.cwd&&E.push("--cwd",u.cwd),u.skipSetup&&E.push("--skip-setup"),u.banner===!1&&E.push("--no-banner"),u.updateCheck===!1&&E.push("--no-update-check"),u.forceUpdateCheck&&E.push("--force-update-check"),u.compassKey&&E.push("--compass-key",u.compassKey),u.anthropicKey&&E.push("--anthropic-key",u.anthropicKey),u.verbose&&E.push("--verbose"),u.debug&&E.push("--debug"),u.agents&&E.push("--agents",u.agents),u.agent&&E.push("--agent",u.agent),u.standaloneAgent&&E.push("--standalone-agent"),u.unleash&&E.push("--unleash"),await I.parseAsync(E)})}),e("tools-rpc","Start Nova tools JSON-RPC server for scripted workflows",async()=>{let{createToolsRpcCommand:n}=await Promise.resolve().then(()=>(KSr(),qSr));return n()}),e("a2a","Start an A2A (Agent-to-Agent) protocol server with optional tunnel",async()=>{let{createA2ACommand:n}=await Promise.resolve().then(()=>(HEr(),BEr));return n()}),e("agui","Start AG-UI HTTP server mode",async()=>{let{createAGUICommand:n}=await Promise.resolve().then(()=>(iwr(),rwr));return n()}),e("openai","Manage OpenAI OAuth authentication",async()=>{let{createOpenAICommand:n}=await Promise.resolve().then(()=>(pwr(),dwr));return n()}),e("doctor","Run diagnostic health checks across auth, models, MCP, hooks, and runtime",async()=>{let{createDoctorCommand:n}=await Promise.resolve().then(()=>(QBt(),xSr));return n()}),e("dashboard","Start the local live observability dashboard",async()=>{let{createDashboardCommand:n}=await Promise.resolve().then(()=>(Iwr(),vwr));return n()}),e("daemon","Manage the Nova automation daemon",async()=>{let{createDaemonCommand:n}=await Promise.resolve().then(()=>(Pwr(),Dwr));return n()}),e("models","Manage custom model registrations",async()=>{let{createModelsCommand:n}=await Promise.resolve().then(()=>(Gwr(),Owr));return n()}),e("worktrees","Manage Nova-managed isolated git worktrees",async()=>{let{createWorktreesCommand:n}=await Promise.resolve().then(()=>(Bwr(),Uwr));return n()}),t.command("commit").description("Generate an AI-powered conventional commit message from staged git changes").option("--copy","Copy the generated commit message to the clipboard instead of committing").option("--dry-run","Print the generated message to stdout without committing").option("--cwd <path>","Target a specific project directory instead of cwd").addHelpText("after",ef("commit")).action(async n=>{try{let{runCommitCommand:i}=await Promise.resolve().then(()=>(Ywr(),Hwr));await i({copy:n.copy||!1,dryRun:n.dryRun||!1,cwd:n.cwd?pI(n.cwd):void 0})}catch(i){F.error("Commit command failed",i),process.stderr.write(O.red(`
|
|
5654
5654
|
\u274C Commit command failed
|
|
5655
5655
|
`)),i instanceof Error&&process.stderr.write(O.red(` ${i.message}
|
|
5656
|
-
`)),process.exit(1)}}),t.command("consent").description("View or manage GDPR consent settings for data collection and telemetry").argument("[action]","Action: status (default), review, revoke","status").addHelpText("after",ef("consent")).action(async n=>{try{let{getConsentManager:i}=await Promise.resolve().then(()=>(YV(),kxt)),o=await i();switch(n.toLowerCase()){case"status":{let a=await o.getStatus();if(console.log(""),console.log(O.bold.white("\u{1F4CB} Consent Status")),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Valid:")} ${a.isValid?O.green("Yes"):O.red("No")}`),console.log(` ${O.gray("Version:")} ${a.version||O.gray("N/A")}`),console.log(` ${O.gray("Granted:")} ${a.grantedAt?new Date(a.grantedAt).toLocaleDateString():O.gray("N/A")}`),console.log(` ${O.gray("Expires:")} ${a.expiresAt?new Date(a.expiresAt).toLocaleDateString():O.gray("N/A")}`),a.daysUntilExpiry!==null){let u=a.daysUntilExpiry>30?"green":a.daysUntilExpiry>7?"yellow":"red";console.log(` ${O.gray("Days until expiry:")} ${O[u](a.daysUntilExpiry.toString())}`)}a.consent&&(console.log(""),console.log(O.bold.white(" Settings:")),console.log(` ${O.gray("Data Collection:")} ${a.consent.dataCollection?O.green("Enabled"):O.red("Disabled")}`),console.log(` ${O.gray("Telemetry:")} ${a.consent.telemetry?O.green("Enabled"):O.yellow("Disabled")}`),console.log(` ${O.gray("Analytics:")} ${a.consent.analytics?O.green("Enabled"):O.yellow("Disabled")}`),console.log(` ${O.gray("Error Reporting:")} ${a.consent.errorReporting?O.green("Enabled"):O.yellow("Disabled")}`)),a.needsRenewal&&(console.log(""),console.log(O.yellow('\u26A0\uFE0F Consent needs renewal. Run "nova setup" to update.'))),console.log("");break}case"review":{let a=o.getHistory();if(console.log(""),console.log(O.bold.white("\u{1F4DC} Consent History")),console.log(O.dim("\u2500".repeat(40))),a.length===0)console.log(O.gray(" No consent records found."));else for(let u of a.slice(-5))console.log(` ${O.gray("ID:")} ${u.id.slice(0,8)}...`),console.log(` ${O.gray("Version:")} ${u.version}`),console.log(` ${O.gray("Granted:")} ${new Date(u.grantedAt).toLocaleString()}`),console.log(O.dim(" \u2500".repeat(20)));console.log("");break}case"revoke":{console.log(""),console.log(O.yellow("\u26A0\uFE0F Revoking consent will delete all stored data.")),console.log(O.gray(" This action cannot be undone.")),console.log(""),await o.revokeConsent(),console.log(O.green("\u2705 Consent revoked and data cleaned up")),console.log(O.gray(' Run "nova setup" to reconfigure.')),console.log("");break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: status, review, revoke")),process.exit(1)}}catch(i){F.error("Consent command failed",i),console.error(O.red("\u274C Consent command failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("tokens").description("View token usage statistics, cost estimates, and per-session breakdowns").option("--export","Export all usage data as JSON to stdout").option("--session","Show current session usage only (input/output/cost)").option("--reset","Reset all accumulated token usage statistics").addHelpText("after",ef("tokens")).action(async n=>{try{let{getTokenTracker:i}=await Promise.resolve().then(()=>(lE(),xae)),o=await i();if(n.export){let u=await o.exportUsage();console.log(JSON.stringify(u,null,2));return}if(n.reset){console.log(O.yellow("\u26A0\uFE0F This will reset all token usage statistics.")),console.log(O.gray(" Feature not yet implemented."));return}if(n.session){let u=o.getCurrentSessionUsage();if(!u){console.log(O.gray("No active session."));return}console.log(""),console.log(O.bold.white("\u{1F4CA} Current Session Token Usage")),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Session ID:")} ${u.sessionId.slice(0,8)}...`),console.log(` ${O.gray("Started:")} ${new Date(u.startTime).toLocaleString()}`),console.log(` ${O.gray("API Calls:")} ${u.totalCallCount??u.calls.length}`),console.log(` ${O.gray("Input Tokens:")} ${u.totals.inputTokens.toLocaleString()}`),console.log(` ${O.gray("Output Tokens:")} ${u.totals.outputTokens.toLocaleString()}`),console.log(` ${O.gray("Total Tokens:")} ${O.bold(u.totals.totalTokens.toLocaleString())}`),console.log(` ${O.gray("Estimated Cost:")} ${O.green("$"+u.estimatedCost.totalCost.toFixed(4))}`),console.log("");return}let a=o.getAllTimeStats();console.log(""),console.log(O.bold.white("\u{1F4CA} Token Usage Statistics")),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Total API Calls:")} ${a.totalCalls.toLocaleString()}`),console.log(` ${O.gray("Total Tokens:")} ${a.totalTokens.toLocaleString()}`),console.log(` ${O.gray("Total Cost:")} ${O.green("$"+a.totalCost.toFixed(4))}`),console.log(""),console.log(O.bold.white(" Averages per Call:")),console.log(` ${O.gray("Input:")} ${a.averageInputTokens.toLocaleString()} tokens`),console.log(` ${O.gray("Output:")} ${a.averageOutputTokens.toLocaleString()} tokens`),console.log(""),console.log(O.bold.white(" Peak Usage:")),console.log(` ${O.gray("Input:")} ${a.peakInputTokens.toLocaleString()} tokens`),console.log(` ${O.gray("Output:")} ${a.peakOutputTokens.toLocaleString()} tokens`),console.log("")}catch(i){F.error("Tokens command failed",i),console.error(O.red("\u274C Tokens command failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("data").description("List, export, or delete stored user data (GDPR/data-subject-access compliance)").argument("[action]","Action: list (default), export, delete","list").option("--cwd <path>","Target a specific project directory instead of cwd").option("-o, --output <file>","Write exported data to a file instead of stdout").addHelpText("after",ef("data")).action(async(n,i)=>{try{let{getConsentManager:o}=await Promise.resolve().then(()=>(YV(),kxt)),a=await o();switch(n.toLowerCase()){case"list":{console.log(""),console.log(O.bold.white("\u{1F4C1} Stored Data")),console.log(O.dim("\u2500".repeat(40)));let u=zs(),p=eu(YK(i));console.log(O.bold.cyan(" Global Data:")),console.log(` ${O.gray("Location:")} ${u}`),console.log(` ${O.gray("Contents:")} config, credentials, consent, token usage, logs`),await ws(p)&&(console.log(""),console.log(O.bold.cyan(" Project Data:")),console.log(` ${O.gray("Location:")} ${p}`),console.log(` ${O.gray("Contents:")} session state, backups, cache, context index`)),console.log(""),console.log(O.gray('Use "nova data export" to export all data')),console.log(O.gray('Use "nova consent revoke" to delete all data')),console.log("");break}case"export":{let u=await a.exportUserData(),p=JSON.stringify(u,null,2);if(i.output){let{safeWriteFile:h}=await Promise.resolve().then(()=>(fd(),hWe));await h(i.output,p),console.log(O.green(`\u2705 Data exported to ${i.output}`))}else console.log(p);break}case"delete":{console.log(O.yellow('\u26A0\uFE0F To delete all data, use "nova consent revoke"'));break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: list, export, delete")),process.exit(1)}}catch(o){F.error("Data command failed",o),console.error(O.red("\u274C Data command failed")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("cache").description("Inspect or clear cached data (context index, project cache)").argument("[action]","Action: status (default), clear","status").option("--cwd <path>","Target a specific project directory instead of cwd").addHelpText("after",ef("cache")).action(async(n,i)=>{try{let o=eu(YK(i)),a=`${o}/cache`,u=`${o}/context`;switch(n.toLowerCase()){case"status":{console.log(""),console.log(O.bold.white("\u{1F4BE} Cache Status")),console.log(O.dim("\u2500".repeat(40))),await ws(a)?(console.log(` ${O.gray("Cache directory:")} ${a}`),console.log(` ${O.green("\u2713")} Cache directory exists`)):console.log(` ${O.gray("Cache directory:")} ${O.yellow("Not initialized")}`),await ws(u)?(console.log(` ${O.gray("Context index:")} ${u}`),console.log(` ${O.green("\u2713")} Context index exists`)):console.log(` ${O.gray("Context index:")} ${O.yellow("Not initialized")}`),console.log(""),console.log(O.gray('Use "nova cache clear" to clear all cached data')),console.log("");break}case"clear":{let p=!1;await ws(a)&&(await $y(a),await ra(a),console.log(O.green("\u2705 Cache cleared")),p=!0),await ws(u)&&(await $y(u),await ra(u),console.log(O.green("\u2705 Context index cleared")),p=!0),p||console.log(O.gray("No cache to clear."));break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: status, clear")),process.exit(1)}}catch(o){F.error("Cache command failed",o),console.error(O.red("\u274C Cache command failed")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("update").description("Check for updates, install new versions, or view update history").argument("[action]","Action: check (default), install, history","check").option("-f, --force","Force update check, ignoring the cache interval").option("--npm","Use npm as the package manager for installation").option("--yarn","Use yarn as the package manager for installation").option("--pnpm","Use pnpm as the package manager for installation").addHelpText("after",ef("update")).action(async(n,i)=>{try{let{getUpdateService:o}=await Promise.resolve().then(()=>(P$e(),mVt)),a=await o();switch(n.toLowerCase()){case"check":{console.log(""),console.log(O.cyan("Checking for updates..."));let u=await a.checkForUpdates(i.force);u.error?console.log(O.red(`Failed to check for updates: ${u.error}`)):u.updateAvailable&&u.latestVersion?a.displayUpdateNotification(u):(console.log(""),console.log(O.green(`You are on the latest version (${u.currentVersion})`)),console.log(""));break}case"install":{let u=i.npm?"npm":i.yarn?"yarn":i.pnpm?"pnpm":await a.detectPackageManager();await a.performUpdate(u);break}case"history":{let u=a.getUpdateHistory();if(console.log(""),console.log(O.bold.cyan("Update History")),console.log(O.dim("\u2500".repeat(40))),u.length===0)console.log(""),console.log(O.gray(" No update history recorded.")),console.log("");else{console.log("");for(let p of u.slice().reverse()){let h=p.success?O.green("\u2713"):O.red("\u2717"),_=p.success?O.green:O.red;console.log(` ${h} ${O.gray(new Date(p.updatedAt).toLocaleDateString())}`),console.log(` ${O.gray("From:")} ${p.fromVersion} ${O.gray("\u2192")} ${_(p.toVersion)}`),console.log(` ${O.gray("Method:")} ${p.method}`),p.error&&console.log(` ${O.red("Error:")} ${p.error}`),console.log("")}}break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: check, install, history")),process.exit(1)}}catch(o){F.error("Update command failed",o),console.error(O.red("\u274C Update command failed")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("reset").description("Reset Compass to factory defaults (deletes config, cache, and credentials)").option("--cwd <path>","Target a specific project directory instead of cwd").option("-f, --force","Confirm the destructive reset (required to execute)").option("--global","Reset global settings only (~/.compass)").option("--project","Reset project settings only (.compass/)").addHelpText("after",ef("reset")).action(async n=>{try{if(!n.force){console.log(""),console.log(O.red("\u26A0\uFE0F WARNING: This will delete all Compass data!")),console.log(O.gray(" This action cannot be undone.")),console.log(""),console.log(O.gray(" Use --force to confirm this action.")),console.log("");return}if(n.project&&!n.global){let a=eu(YK(n));await ws(a)?(await $y(a),console.log(O.green("\u2705 Project settings reset"))):console.log(O.gray("No project settings to reset."));return}if(n.global&&!n.project){let a=zs();await ws(a)?(await $y(a),console.log(O.green("\u2705 Global settings reset"))):console.log(O.gray("No global settings to reset."));return}let i=zs(),o=eu(YK(n));await ws(i)&&await $y(i),await ws(o)&&await $y(o),console.log(O.green("\u2705 Compass has been reset to factory settings")),console.log(O.gray(' Run "nova setup" to reconfigure.'))}catch(i){F.error("Reset failed",i),console.error(O.red("\u274C Reset failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("uninstall").description("Remove all user data (~/.compass, keychain) and uninstall the Nova CLI package").option("-f, --force","Confirm the uninstall (required to execute)").option("--keep-data","Uninstall the package but preserve ~/.compass user data").addHelpText("after",ef("uninstall")).action(async n=>{try{let i=zs();if(!n.force){console.log(""),console.log(O.red.bold("\u26A0\uFE0F This will completely uninstall Nova CLI")),console.log(""),n.keepData?(console.log(O.yellow(" The npm package will be uninstalled.")),console.log(O.gray(` User data at ${i} will be preserved.`))):(console.log(O.yellow(" The following will be deleted:")),console.log(` \u2022 ${i}`),console.log(" \u2022 The globally installed npm package")),console.log(""),console.log(O.gray(" Use --force to confirm:")),console.log(` ${O.cyan("nova uninstall --force")}`),console.log("");return}if(!n.keepData)try{let{getCredentialStore:a}=await Promise.resolve().then(()=>(Wf(),tL));await(await a()).clearAll(),console.log(O.green("\u2705 Cleared credentials from secure storage"))}catch(a){F.debug("Failed to clear keychain credentials during uninstall",a)}n.keepData||(await ws(i)?(console.log(O.gray("Removing user data...")),await $y(i),console.log(O.green("\u2705 Removed "+i))):console.log(O.gray("No user data found."))),console.log(O.gray("Uninstalling Nova CLI..."));let{execSync:o}=await import("child_process");o("npm uninstall -g @compass-ai/nova",{stdio:"inherit"}),console.log(""),console.log(O.green.bold("\u2705 Nova CLI has been uninstalled.")),console.log("")}catch(i){F.error("Uninstall failed",i),console.error(O.red("\u274C Uninstall failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),console.error(O.gray(" You can manually run: npm uninstall -g @compass-ai/nova")),process.exit(1)}}),t}async function KGs(){LA("cliMain:mainEntry");let{shouldSupervise:t,runSupervisor:e,SUPERVISOR_ENV_VAR:n}=await eO("cliMain:supervisorImport",()=>Promise.resolve().then(()=>(zXe(),U9t)));if(t()&&!process.env[n]){await e();return}try{LA("cliMain:createProgram:start");let i=qGs();LA("cliMain:createProgram:end"),process.on("uncaughtException",o=>{F.error("Uncaught exception",o),console.error(O.red("\u274C An unexpected error occurred")),o instanceof Error&&console.error(O.red(` ${o.message}`)),jK().finally(()=>process.exit(1))}),process.on("unhandledRejection",o=>{F.error("Unhandled rejection",o),console.error(O.red("\u274C An unexpected error occurred")),o instanceof Error&&console.error(O.red(` ${o.message}`)),jK().finally(()=>process.exit(1))}),LA("cliMain:parse:start"),await i.parseAsync(process.argv)}catch(i){F.error("CLI error",i),console.error(O.red("\u274C CLI error")),i instanceof Error&&console.error(O.red(` ${i.message}`)),await jK(),process.exit(1)}}var PGs,FGs,MGs,OGs,GGs,Mke,$Gs,Xwr=Te(()=>{"use strict";$1();ATe();Ir();yLe();Sce();fd();yl();Fa();bw();hIt();qvt();x_r();k_r();OZt();zc();PGs=72,FGs=112,MGs=8,OGs=12,GGs=new RegExp("\x1B\\[[0-9;]*m","g");Mke="1.1.36",$Gs="nova";KGs()});_Le();yLe();import t5s from"node:os";import n5s from"node:path";import dk from"node:fs/promises";import Eve from"node:path";var y$r=1440*60*1e3,b$r=600*1e3,v$r=".atomic-temp-cleanup.stamp",I$r=".atomic-temp-cleanup.lock";function l0t(t){return t.code==="ENOENT"}async function Vmn(t){try{return(await dk.stat(t)).mtimeMs}catch(e){if(l0t(e))return;throw e}}async function S$r(t){try{return(await dk.stat(t)).isDirectory()}catch(e){if(l0t(e))return!1;throw e}}var u0t="owner",E$r=".stale";function w$r(t){try{return process.kill(t,0),!0}catch(e){return e.code!=="ESRCH"}}async function cV(t){let e;try{e=await dk.stat(t)}catch(o){if(l0t(o))return;throw o}let n;try{n=await dk.readFile(Eve.join(t,u0t),"utf8")}catch(o){let a=o.code;if(a!=="ENOENT"&&a!=="ENOTDIR")throw o}let i=n===void 0?Number.NaN:Number.parseInt(n,10);return{owner:n,ownerPid:Number.isInteger(i)&&i>0?i:void 0,changedMs:Math.max(e.mtimeMs,e.ctimeMs)}}function Zmn(t,e,n){return e-t.changedMs<n?!1:t.ownerPid===void 0||!w$r(t.ownerPid)}async function A$r(t,e){await dk.mkdir(t);try{await dk.writeFile(Eve.join(t,u0t),e,"utf8")}catch(n){throw await dk.rm(t,{recursive:!0,force:!0}),n}}async function bLe(t,e){(await cV(t))?.owner===e&&await dk.rm(t,{recursive:!0,force:!0})}async function x$r(t,e,n,i){let o=`${t}${E$r}`,a=!1;for(let u=0;u<4;u+=1){let p=await cV(o);if(p!==void 0)if(p.owner===e)a=!0;else{if(!Zmn(p,n,i))return;let I=await cV(o);if(I?.owner!==p.owner||I?.changedMs!==p.changedMs)return;await dk.rm(o,{recursive:!0,force:!0})}else if(a)return;try{await A$r(t,e);let I=await cV(o);if(I!==void 0&&I.owner!==e){await bLe(t,e);return}if(a&&I?.owner!==e){await bLe(t,e);return}return{...a?{recoveryPath:o}:{}}}catch(I){if(I.code!=="EEXIST")throw I}let h=await cV(t);if(h===void 0)continue;if(!Zmn(h,n,i))return;let _=await cV(t);if(_===void 0||_.owner!==h.owner||_.changedMs!==h.changedMs)continue;await dk.utimes(t,new Date(n),new Date(n));let b=await cV(t);if(b?.owner===h.owner)try{await dk.rename(t,o),await dk.writeFile(Eve.join(o,u0t),e,"utf8"),await dk.utimes(o,new Date(n),new Date(n)),a=!0}catch(I){let E=I.code;if(E==="ENOENT")continue;if(E==="EEXIST"||E==="ENOTEMPTY"||E==="EISDIR"||E==="ENOTDIR")return;if(E==="EPERM"||E==="EACCES"){let x=await cV(o),C=await cV(t);if(x!==void 0||C?.owner!==b?.owner)return;continue}throw I}}}async function T$r(t,e,n){await bLe(t,e),n&&await bLe(n,e)}async function Umn(t,e,n={}){let i=n.nowMs??Date.now(),o=Math.max(0,n.intervalMs??y$r),a=Math.max(0,n.leaseTimeoutMs??b$r),u=Eve.join(t,v$r),p=Eve.join(t,I$r),h=`${process.pid} ${i} ${Math.random().toString(36).slice(2)}
|
|
5656
|
+
`)),process.exit(1)}}),t.command("consent").description("View or manage GDPR consent settings for data collection and telemetry").argument("[action]","Action: status (default), review, revoke","status").addHelpText("after",ef("consent")).action(async n=>{try{let{getConsentManager:i}=await Promise.resolve().then(()=>(YV(),kxt)),o=await i();switch(n.toLowerCase()){case"status":{let a=await o.getStatus();if(console.log(""),console.log(O.bold.white("\u{1F4CB} Consent Status")),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Valid:")} ${a.isValid?O.green("Yes"):O.red("No")}`),console.log(` ${O.gray("Version:")} ${a.version||O.gray("N/A")}`),console.log(` ${O.gray("Granted:")} ${a.grantedAt?new Date(a.grantedAt).toLocaleDateString():O.gray("N/A")}`),console.log(` ${O.gray("Expires:")} ${a.expiresAt?new Date(a.expiresAt).toLocaleDateString():O.gray("N/A")}`),a.daysUntilExpiry!==null){let u=a.daysUntilExpiry>30?"green":a.daysUntilExpiry>7?"yellow":"red";console.log(` ${O.gray("Days until expiry:")} ${O[u](a.daysUntilExpiry.toString())}`)}a.consent&&(console.log(""),console.log(O.bold.white(" Settings:")),console.log(` ${O.gray("Data Collection:")} ${a.consent.dataCollection?O.green("Enabled"):O.red("Disabled")}`),console.log(` ${O.gray("Telemetry:")} ${a.consent.telemetry?O.green("Enabled"):O.yellow("Disabled")}`),console.log(` ${O.gray("Analytics:")} ${a.consent.analytics?O.green("Enabled"):O.yellow("Disabled")}`),console.log(` ${O.gray("Error Reporting:")} ${a.consent.errorReporting?O.green("Enabled"):O.yellow("Disabled")}`)),a.needsRenewal&&(console.log(""),console.log(O.yellow('\u26A0\uFE0F Consent needs renewal. Run "nova setup" to update.'))),console.log("");break}case"review":{let a=o.getHistory();if(console.log(""),console.log(O.bold.white("\u{1F4DC} Consent History")),console.log(O.dim("\u2500".repeat(40))),a.length===0)console.log(O.gray(" No consent records found."));else for(let u of a.slice(-5))console.log(` ${O.gray("ID:")} ${u.id.slice(0,8)}...`),console.log(` ${O.gray("Version:")} ${u.version}`),console.log(` ${O.gray("Granted:")} ${new Date(u.grantedAt).toLocaleString()}`),console.log(O.dim(" \u2500".repeat(20)));console.log("");break}case"revoke":{console.log(""),console.log(O.yellow("\u26A0\uFE0F Revoking consent will delete all stored data.")),console.log(O.gray(" This action cannot be undone.")),console.log(""),await o.revokeConsent(),console.log(O.green("\u2705 Consent revoked and data cleaned up")),console.log(O.gray(' Run "nova setup" to reconfigure.')),console.log("");break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: status, review, revoke")),process.exit(1)}}catch(i){F.error("Consent command failed",i),console.error(O.red("\u274C Consent command failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("tokens").description("View token usage statistics, cost estimates, and per-session breakdowns").option("--export","Export all usage data as JSON to stdout").option("--session","Show current session usage only (input/output/cost)").option("--reset","Reset all accumulated token usage statistics").addHelpText("after",ef("tokens")).action(async n=>{try{let{getTokenTracker:i}=await Promise.resolve().then(()=>(lE(),xae)),o=await i();if(n.export){let u=await o.exportUsage();console.log(JSON.stringify(u,null,2));return}if(n.reset){console.log(O.yellow("\u26A0\uFE0F This will reset all token usage statistics.")),console.log(O.gray(" Feature not yet implemented."));return}if(n.session){let u=o.getCurrentSessionUsage();if(!u){console.log(O.gray("No active session."));return}console.log(""),console.log(O.bold.white("\u{1F4CA} Current Session Token Usage")),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Session ID:")} ${u.sessionId.slice(0,8)}...`),console.log(` ${O.gray("Started:")} ${new Date(u.startTime).toLocaleString()}`),console.log(` ${O.gray("API Calls:")} ${u.totalCallCount??u.calls.length}`),console.log(` ${O.gray("Input Tokens:")} ${u.totals.inputTokens.toLocaleString()}`),console.log(` ${O.gray("Output Tokens:")} ${u.totals.outputTokens.toLocaleString()}`),console.log(` ${O.gray("Total Tokens:")} ${O.bold(u.totals.totalTokens.toLocaleString())}`),console.log(` ${O.gray("Estimated Cost:")} ${O.green("$"+u.estimatedCost.totalCost.toFixed(4))}`),console.log("");return}let a=o.getAllTimeStats();console.log(""),console.log(O.bold.white("\u{1F4CA} Token Usage Statistics")),console.log(O.dim("\u2500".repeat(40))),console.log(` ${O.gray("Total API Calls:")} ${a.totalCalls.toLocaleString()}`),console.log(` ${O.gray("Total Tokens:")} ${a.totalTokens.toLocaleString()}`),console.log(` ${O.gray("Total Cost:")} ${O.green("$"+a.totalCost.toFixed(4))}`),console.log(""),console.log(O.bold.white(" Averages per Call:")),console.log(` ${O.gray("Input:")} ${a.averageInputTokens.toLocaleString()} tokens`),console.log(` ${O.gray("Output:")} ${a.averageOutputTokens.toLocaleString()} tokens`),console.log(""),console.log(O.bold.white(" Peak Usage:")),console.log(` ${O.gray("Input:")} ${a.peakInputTokens.toLocaleString()} tokens`),console.log(` ${O.gray("Output:")} ${a.peakOutputTokens.toLocaleString()} tokens`),console.log("")}catch(i){F.error("Tokens command failed",i),console.error(O.red("\u274C Tokens command failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("data").description("List, export, or delete stored user data (GDPR/data-subject-access compliance)").argument("[action]","Action: list (default), export, delete","list").option("--cwd <path>","Target a specific project directory instead of cwd").option("-o, --output <file>","Write exported data to a file instead of stdout").addHelpText("after",ef("data")).action(async(n,i)=>{try{let{getConsentManager:o}=await Promise.resolve().then(()=>(YV(),kxt)),a=await o();switch(n.toLowerCase()){case"list":{console.log(""),console.log(O.bold.white("\u{1F4C1} Stored Data")),console.log(O.dim("\u2500".repeat(40)));let u=zs(),p=eu(YK(i));console.log(O.bold.cyan(" Global Data:")),console.log(` ${O.gray("Location:")} ${u}`),console.log(` ${O.gray("Contents:")} config, credentials, consent, token usage, logs`),await ws(p)&&(console.log(""),console.log(O.bold.cyan(" Project Data:")),console.log(` ${O.gray("Location:")} ${p}`),console.log(` ${O.gray("Contents:")} session state, backups, cache, context index`)),console.log(""),console.log(O.gray('Use "nova data export" to export all data')),console.log(O.gray('Use "nova consent revoke" to delete all data')),console.log("");break}case"export":{let u=await a.exportUserData(),p=JSON.stringify(u,null,2);if(i.output){let{safeWriteFile:h}=await Promise.resolve().then(()=>(fd(),hWe));await h(i.output,p),console.log(O.green(`\u2705 Data exported to ${i.output}`))}else console.log(p);break}case"delete":{console.log(O.yellow('\u26A0\uFE0F To delete all data, use "nova consent revoke"'));break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: list, export, delete")),process.exit(1)}}catch(o){F.error("Data command failed",o),console.error(O.red("\u274C Data command failed")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("cache").description("Inspect or clear cached data (context index, project cache)").argument("[action]","Action: status (default), clear","status").option("--cwd <path>","Target a specific project directory instead of cwd").addHelpText("after",ef("cache")).action(async(n,i)=>{try{let o=eu(YK(i)),a=`${o}/cache`,u=`${o}/context`;switch(n.toLowerCase()){case"status":{console.log(""),console.log(O.bold.white("\u{1F4BE} Cache Status")),console.log(O.dim("\u2500".repeat(40))),await ws(a)?(console.log(` ${O.gray("Cache directory:")} ${a}`),console.log(` ${O.green("\u2713")} Cache directory exists`)):console.log(` ${O.gray("Cache directory:")} ${O.yellow("Not initialized")}`),await ws(u)?(console.log(` ${O.gray("Context index:")} ${u}`),console.log(` ${O.green("\u2713")} Context index exists`)):console.log(` ${O.gray("Context index:")} ${O.yellow("Not initialized")}`),console.log(""),console.log(O.gray('Use "nova cache clear" to clear all cached data')),console.log("");break}case"clear":{let p=!1;await ws(a)&&(await $y(a),await ra(a),console.log(O.green("\u2705 Cache cleared")),p=!0),await ws(u)&&(await $y(u),await ra(u),console.log(O.green("\u2705 Context index cleared")),p=!0),p||console.log(O.gray("No cache to clear."));break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: status, clear")),process.exit(1)}}catch(o){F.error("Cache command failed",o),console.error(O.red("\u274C Cache command failed")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("update").description("Check for updates, install new versions, or view update history").argument("[action]","Action: check (default), install, history","check").option("-f, --force","Force update check, ignoring the cache interval").option("--npm","Use npm as the package manager for installation").option("--yarn","Use yarn as the package manager for installation").option("--pnpm","Use pnpm as the package manager for installation").addHelpText("after",ef("update")).action(async(n,i)=>{try{let{getUpdateService:o}=await Promise.resolve().then(()=>(P$e(),mVt)),a=await o();switch(n.toLowerCase()){case"check":{console.log(""),console.log(O.cyan("Checking for updates..."));let u=await a.checkForUpdates(i.force);u.error?console.log(O.red(`Failed to check for updates: ${u.error}`)):u.updateAvailable&&u.latestVersion?a.displayUpdateNotification(u):(console.log(""),console.log(O.green(`You are on the latest version (${u.currentVersion})`)),console.log(""));break}case"install":{let u=i.npm?"npm":i.yarn?"yarn":i.pnpm?"pnpm":await a.detectPackageManager();await a.performUpdate(u);break}case"history":{let u=a.getUpdateHistory();if(console.log(""),console.log(O.bold.cyan("Update History")),console.log(O.dim("\u2500".repeat(40))),u.length===0)console.log(""),console.log(O.gray(" No update history recorded.")),console.log("");else{console.log("");for(let p of u.slice().reverse()){let h=p.success?O.green("\u2713"):O.red("\u2717"),_=p.success?O.green:O.red;console.log(` ${h} ${O.gray(new Date(p.updatedAt).toLocaleDateString())}`),console.log(` ${O.gray("From:")} ${p.fromVersion} ${O.gray("\u2192")} ${_(p.toVersion)}`),console.log(` ${O.gray("Method:")} ${p.method}`),p.error&&console.log(` ${O.red("Error:")} ${p.error}`),console.log("")}}break}default:console.log(O.red(`Unknown action: ${n}`)),console.log(O.gray("Available actions: check, install, history")),process.exit(1)}}catch(o){F.error("Update command failed",o),console.error(O.red("\u274C Update command failed")),o instanceof Error&&console.error(O.red(` ${o.message}`)),process.exit(1)}}),t.command("reset").description("Reset Compass to factory defaults (deletes config, cache, and credentials)").option("--cwd <path>","Target a specific project directory instead of cwd").option("-f, --force","Confirm the destructive reset (required to execute)").option("--global","Reset global settings only (~/.compass)").option("--project","Reset project settings only (.compass/)").addHelpText("after",ef("reset")).action(async n=>{try{if(!n.force){console.log(""),console.log(O.red("\u26A0\uFE0F WARNING: This will delete all Compass data!")),console.log(O.gray(" This action cannot be undone.")),console.log(""),console.log(O.gray(" Use --force to confirm this action.")),console.log("");return}if(n.project&&!n.global){let a=eu(YK(n));await ws(a)?(await $y(a),console.log(O.green("\u2705 Project settings reset"))):console.log(O.gray("No project settings to reset."));return}if(n.global&&!n.project){let a=zs();await ws(a)?(await $y(a),console.log(O.green("\u2705 Global settings reset"))):console.log(O.gray("No global settings to reset."));return}let i=zs(),o=eu(YK(n));await ws(i)&&await $y(i),await ws(o)&&await $y(o),console.log(O.green("\u2705 Compass has been reset to factory settings")),console.log(O.gray(' Run "nova setup" to reconfigure.'))}catch(i){F.error("Reset failed",i),console.error(O.red("\u274C Reset failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),process.exit(1)}}),t.command("uninstall").description("Remove all user data (~/.compass, keychain) and uninstall the Nova CLI package").option("-f, --force","Confirm the uninstall (required to execute)").option("--keep-data","Uninstall the package but preserve ~/.compass user data").addHelpText("after",ef("uninstall")).action(async n=>{try{let i=zs();if(!n.force){console.log(""),console.log(O.red.bold("\u26A0\uFE0F This will completely uninstall Nova CLI")),console.log(""),n.keepData?(console.log(O.yellow(" The npm package will be uninstalled.")),console.log(O.gray(` User data at ${i} will be preserved.`))):(console.log(O.yellow(" The following will be deleted:")),console.log(` \u2022 ${i}`),console.log(" \u2022 The globally installed npm package")),console.log(""),console.log(O.gray(" Use --force to confirm:")),console.log(` ${O.cyan("nova uninstall --force")}`),console.log("");return}if(!n.keepData)try{let{getCredentialStore:a}=await Promise.resolve().then(()=>(Wf(),tL));await(await a()).clearAll(),console.log(O.green("\u2705 Cleared credentials from secure storage"))}catch(a){F.debug("Failed to clear keychain credentials during uninstall",a)}n.keepData||(await ws(i)?(console.log(O.gray("Removing user data...")),await $y(i),console.log(O.green("\u2705 Removed "+i))):console.log(O.gray("No user data found."))),console.log(O.gray("Uninstalling Nova CLI..."));let{execSync:o}=await import("child_process");o("npm uninstall -g @compass-ai/nova",{stdio:"inherit"}),console.log(""),console.log(O.green.bold("\u2705 Nova CLI has been uninstalled.")),console.log("")}catch(i){F.error("Uninstall failed",i),console.error(O.red("\u274C Uninstall failed")),i instanceof Error&&console.error(O.red(` ${i.message}`)),console.error(O.gray(" You can manually run: npm uninstall -g @compass-ai/nova")),process.exit(1)}}),t}async function KGs(){LA("cliMain:mainEntry");let{shouldSupervise:t,runSupervisor:e,SUPERVISOR_ENV_VAR:n}=await eO("cliMain:supervisorImport",()=>Promise.resolve().then(()=>(zXe(),U9t)));if(t()&&!process.env[n]){await e();return}try{LA("cliMain:createProgram:start");let i=qGs();LA("cliMain:createProgram:end"),process.on("uncaughtException",o=>{F.error("Uncaught exception",o),console.error(O.red("\u274C An unexpected error occurred")),o instanceof Error&&console.error(O.red(` ${o.message}`)),jK().finally(()=>process.exit(1))}),process.on("unhandledRejection",o=>{F.error("Unhandled rejection",o),console.error(O.red("\u274C An unexpected error occurred")),o instanceof Error&&console.error(O.red(` ${o.message}`)),jK().finally(()=>process.exit(1))}),LA("cliMain:parse:start"),await i.parseAsync(process.argv)}catch(i){F.error("CLI error",i),console.error(O.red("\u274C CLI error")),i instanceof Error&&console.error(O.red(` ${i.message}`)),await jK(),process.exit(1)}}var PGs,FGs,MGs,OGs,GGs,Mke,$Gs,Xwr=Te(()=>{"use strict";$1();ATe();Ir();yLe();Sce();fd();yl();Fa();bw();hIt();qvt();x_r();k_r();OZt();zc();PGs=72,FGs=112,MGs=8,OGs=12,GGs=new RegExp("\x1B\\[[0-9;]*m","g");Mke="1.1.37",$Gs="nova";KGs()});_Le();yLe();import t5s from"node:os";import n5s from"node:path";import dk from"node:fs/promises";import Eve from"node:path";var y$r=1440*60*1e3,b$r=600*1e3,v$r=".atomic-temp-cleanup.stamp",I$r=".atomic-temp-cleanup.lock";function l0t(t){return t.code==="ENOENT"}async function Vmn(t){try{return(await dk.stat(t)).mtimeMs}catch(e){if(l0t(e))return;throw e}}async function S$r(t){try{return(await dk.stat(t)).isDirectory()}catch(e){if(l0t(e))return!1;throw e}}var u0t="owner",E$r=".stale";function w$r(t){try{return process.kill(t,0),!0}catch(e){return e.code!=="ESRCH"}}async function cV(t){let e;try{e=await dk.stat(t)}catch(o){if(l0t(o))return;throw o}let n;try{n=await dk.readFile(Eve.join(t,u0t),"utf8")}catch(o){let a=o.code;if(a!=="ENOENT"&&a!=="ENOTDIR")throw o}let i=n===void 0?Number.NaN:Number.parseInt(n,10);return{owner:n,ownerPid:Number.isInteger(i)&&i>0?i:void 0,changedMs:Math.max(e.mtimeMs,e.ctimeMs)}}function Zmn(t,e,n){return e-t.changedMs<n?!1:t.ownerPid===void 0||!w$r(t.ownerPid)}async function A$r(t,e){await dk.mkdir(t);try{await dk.writeFile(Eve.join(t,u0t),e,"utf8")}catch(n){throw await dk.rm(t,{recursive:!0,force:!0}),n}}async function bLe(t,e){(await cV(t))?.owner===e&&await dk.rm(t,{recursive:!0,force:!0})}async function x$r(t,e,n,i){let o=`${t}${E$r}`,a=!1;for(let u=0;u<4;u+=1){let p=await cV(o);if(p!==void 0)if(p.owner===e)a=!0;else{if(!Zmn(p,n,i))return;let I=await cV(o);if(I?.owner!==p.owner||I?.changedMs!==p.changedMs)return;await dk.rm(o,{recursive:!0,force:!0})}else if(a)return;try{await A$r(t,e);let I=await cV(o);if(I!==void 0&&I.owner!==e){await bLe(t,e);return}if(a&&I?.owner!==e){await bLe(t,e);return}return{...a?{recoveryPath:o}:{}}}catch(I){if(I.code!=="EEXIST")throw I}let h=await cV(t);if(h===void 0)continue;if(!Zmn(h,n,i))return;let _=await cV(t);if(_===void 0||_.owner!==h.owner||_.changedMs!==h.changedMs)continue;await dk.utimes(t,new Date(n),new Date(n));let b=await cV(t);if(b?.owner===h.owner)try{await dk.rename(t,o),await dk.writeFile(Eve.join(o,u0t),e,"utf8"),await dk.utimes(o,new Date(n),new Date(n)),a=!0}catch(I){let E=I.code;if(E==="ENOENT")continue;if(E==="EEXIST"||E==="ENOTEMPTY"||E==="EISDIR"||E==="ENOTDIR")return;if(E==="EPERM"||E==="EACCES"){let x=await cV(o),C=await cV(t);if(x!==void 0||C?.owner!==b?.owner)return;continue}throw I}}}async function T$r(t,e,n){await bLe(t,e),n&&await bLe(n,e)}async function Umn(t,e,n={}){let i=n.nowMs??Date.now(),o=Math.max(0,n.intervalMs??y$r),a=Math.max(0,n.leaseTimeoutMs??b$r),u=Eve.join(t,v$r),p=Eve.join(t,I$r),h=`${process.pid} ${i} ${Math.random().toString(36).slice(2)}
|
|
5657
5657
|
`,_=await Vmn(u);if(_!==void 0&&i-_<o)return"not-due";if(!await S$r(t))return"missing-root";let b=await x$r(p,h,i,a);if(!b)return"busy";try{let I=await Vmn(u);return I!==void 0&&i-I<o?"not-due":(await e(),await dk.writeFile(u,`${i}
|
|
5658
|
-
`,"utf8"),"completed")}finally{await T$r(p,h,b.recoveryPath)}}var r5s="1.1.
|
|
5658
|
+
`,"utf8"),"completed")}finally{await T$r(p,h,b.recoveryPath)}}var r5s="1.1.37";function i5s(){return n5s.join(t5s.homedir(),".compass")}async function $wr(t,e){let{logger:n}=await Promise.resolve().then(()=>(Ir(),H_n));n.warn(t,e)}function s5s(t){return t instanceof Error&&t.name==="CommanderError"&&typeof t.exitCode=="number"}async function o5s(){LA("cli:entry");let t=process.argv.slice(2);try{await eO("cli:atomicTempCleanup",async()=>{let o=i5s();await Umn(o,async()=>{let[{cleanupOrphanedAtomicTempFiles:a},{runAutomaticProjectStateCleanup:u},{getRuntimeStateRoot:p}]=await Promise.all([Promise.resolve().then(()=>(pyn(),dyn)),Promise.resolve().then(()=>(wyn(),Eyn)),Promise.resolve().then(()=>(yl(),q_n))]),h;try{let _=await a(o);if(_.errors>0)throw new Error(`Atomic temp cleanup reported ${_.errors} filesystem error(s)`)}catch(_){h=_}if(await u({runtimeStateRoot:p(),activeWorkspaceRoots:[process.cwd()]}),h!==void 0)throw h})})}catch(o){await $wr("Atomic temp cleanup failed during CLI startup",{error:o instanceof Error?o.message:String(o)})}if(t.length===1&&(t[0]==="-v"||t[0]==="--version")){console.log(r5s);return}if(o0t(t)){let{runSDKPrint:o}=await Promise.resolve().then(()=>(SXn(),IXn)),a=await o(t),{flushTokenUsage:u}=await Promise.resolve().then(()=>(lE(),xae)),p=await u({endSession:!0});p||await $wr("Failed to flush token usage before SDK print exit"),process.exit(p?a:1)}if(t[0]==="acp"){let{createACPCommand:o}=await eO("cli:acpCommandImport",()=>Promise.resolve().then(()=>(c8t(),a8t)));await o().parseAsync(["node",...t]);return}let{shouldSupervise:e,runSupervisor:n,SUPERVISOR_ENV_VAR:i}=await eO("cli:supervisorImport",()=>Promise.resolve().then(()=>(zXe(),U9t)));if(e()&&!process.env[i]){await n();return}await eO("cli:cliMainImport",()=>Promise.resolve().then(()=>(Xwr(),e5s)))}o5s().catch(t=>{if(s5s(t)){process.exitCode=t.exitCode;return}let e=t instanceof Error?t.message:String(t);console.error(`Error: ${e}`),process.exitCode=1});
|
|
5659
5659
|
/*! Bundled license information:
|
|
5660
5660
|
|
|
5661
5661
|
typescript/lib/typescript.js:
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = dirname(__filename);
|
|
7
7
|
var Orr=Object.create;var kSe=Object.defineProperty;var Lrr=Object.getOwnPropertyDescriptor;var Yrr=Object.getOwnPropertyNames;var Hrr=Object.getPrototypeOf,Urr=Object.prototype.hasOwnProperty;var go=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var ze=(n,e,r)=>()=>{if(r)throw r[0];try{return n&&(e=n(n=0)),e}catch(s){throw r=[s],s}};var yt=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Ay=(n,e)=>{for(var r in e)kSe(n,r,{get:e[r],enumerable:!0})},HLt=(n,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yrr(e))!Urr.call(n,o)&&o!==r&&kSe(n,o,{get:()=>e[o],enumerable:!(s=Lrr(e,o))||s.enumerable});return n};var To=(n,e,r)=>(r=n!=null?Orr(Hrr(n)):{},HLt(e||!n||!n.__esModule?kSe(r,"default",{value:n,enumerable:!0}):r,n)),jrr=n=>HLt(kSe({},"__esModule",{value:!0}),n);function TSe(n){if(!n||typeof n!="object")return!1;let e=n;return e.version==="1.0"&&typeof e.updatedAt=="string"&&typeof e.archiveRecall=="object"&&e.archiveRecall!==null&&typeof e.webhooks=="object"&&e.webhooks!==null&&Array.isArray(e.webhooks.deliveries)&&typeof e.daemon=="object"&&e.daemon!==null&&typeof e.scheduler=="object"&&e.scheduler!==null}var DKe,WKe=ze(()=>{"use strict";DKe="1.0"});function CSe(n){if(!n||typeof n!="object")return!1;let e=n;return(e.contractVersion===void 0||e.contractVersion===1)&&(e.ownerProcessId===void 0||typeof e.ownerProcessId=="string")&&(e.policy==="auto_isolate"||e.policy==="continue_in_place"||e.policy==="fail_closed")&&typeof e.originalProjectRoot=="string"&&typeof e.activeProjectRoot=="string"&&typeof e.isIsolated=="boolean"&&typeof e.createdAt=="string"&&typeof e.cleanupEligible=="boolean"&&typeof e.state=="string"}var YL,ESe=ze(()=>{"use strict";YL=1});function Jrr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.anthropic=="object"&&e.anthropic!==null&&typeof e.ollama=="object"&&e.ollama!==null&&typeof e.project=="object"&&e.project!==null&&typeof e.safety=="object"&&e.safety!==null&&typeof e.ui=="object"&&e.ui!==null&&typeof e.session=="object"&&e.session!==null&&typeof e.update=="object"&&e.update!==null&&typeof e.agentic=="object"&&e.agentic!==null&&typeof e.automation=="object"&&e.automation!==null&&typeof e.workflowCapabilities=="object"&&e.workflowCapabilities!==null&&(e.toolExposure===void 0||typeof e.toolExposure=="object"&&e.toolExposure!==null)&&(e.learning===void 0||typeof e.learning=="object"&&e.learning!==null)}function Brr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.model=="string"&&typeof e.maxTokens=="number"&&typeof e.temperature=="number"}function Xrr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.rootDir=="string"&&Array.isArray(e.ignorePatterns)&&Array.isArray(e.includePatterns)&&typeof e.maxFileSize=="number"&&typeof e.indexOnStartup=="boolean"}function Qrr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.requireApproval=="boolean"&&Array.isArray(e.autoApprovePatterns)&&Array.isArray(e.blockedPatterns)&&typeof e.maxFilesPerOperation=="number"&&typeof e.backupBeforeModify=="boolean"&&typeof e.shellCommandTimeout=="number"&&Array.isArray(e.allowedShellCommands)&&Array.isArray(e.blockedShellCommands)}function zrr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e=="object"&&e!==null}function qrr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.autoSave=="boolean"&&typeof e.autoSaveInterval=="number"&&typeof e.maxHistoryLength=="number"&&typeof e.autoCompactThreshold=="number"&&typeof e.sessionExpiryDays=="number"}function $rr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.checkOnStartup=="boolean"&&typeof e.checkInterval=="number"&&typeof e.showNotifications=="boolean"&&typeof e.notificationStyle=="string"&&["banner","minimal","detailed","silent"].includes(e.notificationStyle)&&typeof e.includePrerelease=="boolean"}function Krr(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.version=="string"&&typeof e.config=="object"&&e.config!==null}var ULt=ze(()=>{"use strict"});var HL,RSe=ze(()=>{"use strict";HL=["repository-read","shell","file-write","web","parent-questions","delegation"]});function VKe(n){if(typeof n!="string")return null;let e=n.trim();return e?e===jLt?{kind:"latest"}:{kind:"plan_id",planId:e}:null}var jLt,ZKe=ze(()=>{"use strict";jLt="latest"});function LKe(n){if(!n||typeof n!="object")return OKe;let e=n;return e.status!=="authorized"||typeof e.source!="string"||!eir.has(e.source)||typeof e.planId!="string"||e.planId.trim().length===0?OKe:Object.freeze({status:"authorized",source:e.source,planId:e.planId.trim()})}function cX(n){if(typeof n!="string")return;let e=n.trim();return e||void 0}var OKe,eir,Bae=ze(()=>{"use strict";OKe=Object.freeze({status:"denied"}),eir=new Set(["current_plan","enter_plan_mode","resume_plan","slash_resume"])});function bD(n,...e){return n.filter(r=>e.includes(r.kind))}function UL(n){if(n.trigger==="max_tokens"||n.trigger==="pause_turn")return{action:"continue",reason:"mechanical_output_interruption",decisiveEvidence:[]};let e=bD(n.evidence,"blocker_requires_input");if(e.length>0)return{action:"await_input",reason:"blocker_requires_input",decisiveEvidence:e};let r=bD(n.evidence,"approved_plan_tasks_remaining");if(r.length>0)return{action:"continue",reason:"unfinished_approved_plan",decisiveEvidence:r};let s=bD(n.evidence,"requested_work_remaining");if(s.length>0)return{action:"continue",reason:"requested_work_remaining",decisiveEvidence:s};let o=bD(n.evidence,"blocker_autonomously_resolvable");if(o.length>0)return{action:"continue",reason:"blocker_autonomously_resolvable",decisiveEvidence:o};let l=bD(n.evidence,"required_validation_failed");if(l.length>0)return{action:"continue",reason:"required_validation_failed",decisiveEvidence:l};let d=bD(n.evidence,"required_validation_missing");if(d.length>0)return{action:"continue",reason:"required_validation_missing",decisiveEvidence:d};let h=bD(n.evidence,"completion_reported"),y=bD(n.evidence,"required_validation_passed");if(h.length>0&&y.length>0)return{action:"stop",reason:"completed_and_validated",decisiveEvidence:[...h,...y]};if(h.length>0)return{action:"stop",reason:"completion_reported",decisiveEvidence:h};let v=bD(n.evidence,"optional_follow_up","speculative_follow_up");return v.length>0?{action:"stop",reason:"optional_or_speculative_follow_up",decisiveEvidence:v}:{action:"stop",reason:"insufficient_continuation_evidence",decisiveEvidence:[]}}function lX(n,e){return{trigger:n,action:e.action,reason:e.reason,decisiveEvidenceKinds:e.decisiveEvidence.map(r=>r.kind)}}function YKe(n){let e=[{kind:"recovery_candidate",source:"plan_persistence",detail:n.planId}];return n.remainingTaskIds.length>0&&e.push({kind:"approved_plan_tasks_remaining",source:"plan_persistence",detail:n.remainingTaskIds.join(",")}),UL({trigger:"recovery",evidence:e})}function HKe(n){return n.reason==="pause_turn"?n.status==="guarded"?`Provider pause-turn continuation ${n.continuationIndex} was stopped to avoid a loop.`:`Provider paused the turn \u2014 continuing server-tool processing as part ${n.continuationIndex}.`:n.status==="guarded"?`Output hit the max-token limit again \u2014 stopping continuation ${n.continuationIndex} to avoid a loop.`:`Output hit the max-token limit \u2014 continuing as part ${n.continuationIndex}. This is not the final answer.`}var uX=ze(()=>{"use strict"});function UKe(n){return n==="user"||n==="legacy"}function tir(n){return n==="organization"||n==="fallback"}var jKe=ze(()=>{"use strict"});function JLt(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.dataCollection=="boolean"&&typeof e.telemetry=="boolean"&&typeof e.analytics=="boolean"&&typeof e.errorReporting=="boolean"}function nir(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.id=="string"&&typeof e.version=="string"&&typeof e.grantedAt=="string"&&typeof e.expiresAt=="string"&&JLt(e.consent)}function rir(){return{dataCollection:NSe.dataCollection.defaultValue,telemetry:NSe.telemetry.defaultValue,analytics:NSe.analytics.defaultValue,errorReporting:NSe.errorReporting.defaultValue}}function iir(){return{dataCollection:!0,telemetry:!0,analytics:!0,errorReporting:!0}}function sir(){return{dataCollection:!0,telemetry:!1,analytics:!1,errorReporting:!1}}var JKe,NSe,BKe=ze(()=>{"use strict";JKe="1.0.0",NSe={dataCollection:{title:"Data Collection",description:"Allow Compass to store conversation history and session data locally for improved functionality.",required:!0,defaultValue:!0},telemetry:{title:"Anonymous Telemetry",description:"Help improve Compass by sending anonymous usage statistics.",required:!1,defaultValue:!1},analytics:{title:"Analytics",description:"Allow collection of feature usage patterns to improve the product.",required:!1,defaultValue:!1},errorReporting:{title:"Error Reporting",description:"Automatically send error reports to help fix bugs.",required:!1,defaultValue:!0}}});var jL,JL=ze(()=>{"use strict";jL=(o=>(o.MANUAL="manual",o.AUTO="auto",o.STRICT="strict",o.SMART="smart",o))(jL||{})});function Xae(n){return oir.has(n)}function zLt(n="manual",e="default"){switch(n){case"auto":return{...PSe,mode:"guarded-auto",source:e,approvalMode:n,maxRiskWithoutApproval:"low",requireApprovalByDefault:!1};case"smart":return{...PSe,mode:"interactive",source:e,approvalMode:n,maxRiskWithoutApproval:"low",requireApprovalByDefault:!1};case"strict":case"manual":default:return{...PSe,mode:"interactive",source:e,approvalMode:n,maxRiskWithoutApproval:"none",requireApprovalByDefault:!0}}}function qLt(n,e){switch(n){case"acceptEditsAsk":return{...e,mode:"guarded-auto",source:"agent",approvalMode:"auto",maxRiskWithoutApproval:"low",requireApprovalByDefault:!1};case"bypassPermissions":return{...e,mode:"unleashed",source:"agent",approvalMode:"auto",maxRiskWithoutApproval:"critical",requireApprovalByDefault:!1,allowDestructiveActions:!0,allowExternalSideEffects:!0,allowHostCredentialedTools:!0};case"plan":return{...e,mode:"interactive",source:"agent",approvalMode:"strict",maxRiskWithoutApproval:"none",requireApprovalByDefault:!0};default:return e}}function XKe(n={}){let e=n.policy,r=e?.source??n.source??"default",s=e?.approvalMode??n.approvalMode??"manual",o=zLt(s,r);return o=qLt(n.agentPermissionMode,o),n.unguardedMode&&n.unleashAllowed!==!1&&(o={...o,mode:"unleashed",source:r,approvalMode:s,maxRiskWithoutApproval:"critical",requireApprovalByDefault:!1,allowDestructiveActions:!0,allowExternalSideEffects:!0,allowHostCredentialedTools:!0}),o={...o,...e,source:r,approvalMode:s,runtimeSurface:e?.runtimeSurface??n.runtimeSurface??o.runtimeSurface,allowedTools:XLt(o.allowedTools,n.allowedTools,e?.allowedTools),deniedTools:QLt(o.deniedTools,n.deniedTools,e?.deniedTools),hardAllowedTools:XLt(o.hardAllowedTools,n.hardAllowedTools,e?.hardAllowedTools),hardDeniedTools:QLt(o.hardDeniedTools,n.hardDeniedTools,e?.hardDeniedTools),requireApprovalByDefault:e?.requireApprovalByDefault??n.requiresApprovalByDefault??o.requireApprovalByDefault},o.mode==="unleashed"&&n.unleashAllowed===!1&&(o={...o,mode:"guarded-auto",maxRiskWithoutApproval:"low",requireApprovalByDefault:!1,allowDestructiveActions:!1,allowExternalSideEffects:!1,allowHostCredentialedTools:!1}),n.nonInteractive&&o.mode!=="unleashed"&&(o={...o,mode:"non-interactive",maxRiskWithoutApproval:"low",requireApprovalByDefault:!1,allowDestructiveActions:!1,allowExternalSideEffects:!1,allowHostCredentialedTools:!1,approvalDeniedPolicy:"summarize"}),o}function pX(n){let e=n.toolName.trim(),r=n.scope??"tool-execution",s=dX(n.policy.allowedTools),o=dX(n.policy.deniedTools),l=dX(n.policy.hardAllowedTools);if(dX(n.policy.hardDeniedTools)?.includes(e)||o?.includes(e))return NV(r,"explicitly-denied-tool",`Tool "${e}" is denied by the active autonomy policy.`);if(l&&!l.includes(e)||s&&!s.includes(e))return NV(r,"not-in-allowed-tools",`Tool "${e}" is not in the active autonomy policy allowlist.`);if(n.hostRestricted)return NV(r,"host-restricted-tool",`Tool "${e}" is blocked by the host runtime.`);if(n.hostCredentialed&&!n.policy.allowHostCredentialedTools)return NV(r,"host-credentialed-tool-denied",`Tool "${e}" needs host credentials that this policy does not allow.`);if(n.destructive&&!n.policy.allowDestructiveActions)return NV(r,"destructive-action-denied",`Tool "${e}" performs destructive actions that this policy does not allow.`);if(n.externalSideEffect&&!n.policy.allowExternalSideEffects)return NV(r,"external-side-effect-denied",`Tool "${e}" performs external side effects that this policy does not allow.`);let h=n.riskLevel??"low",y=n.requiresApproval??(n.policy.requireApprovalByDefault||$Lt(h,n.policy.maxRiskWithoutApproval));return y&&n.policy.mode==="non-interactive"?NV("non-interactive-fallback","approval-prompt-not-allowed",`Tool "${e}" requires approval, but this runtime is non-interactive.`):{allowed:!0,requiresApproval:y,reason:y?"approval-required":"allowed",scope:r,message:y?`Tool "${e}" is allowed after approval.`:`Tool "${e}" is allowed by the active autonomy policy.`}}function QKe(n,e){return n.mode==="non-interactive"?NV("approval-prompt","approval-prompt-not-allowed",`Approval request "${e.type}" cannot prompt in non-interactive mode.`):Xae(e.type)?{allowed:!0,requiresApproval:!0,reason:"approval-required",scope:"approval-prompt",message:`Approval request "${e.type}" requires explicit one-shot user consent.`}:n.requireApprovalByDefault||$Lt(e.riskLevel,n.maxRiskWithoutApproval)?{allowed:!0,requiresApproval:!0,reason:"risk-exceeds-policy",scope:"approval-prompt",message:`Approval request "${e.type}" exceeds policy auto-approval risk and must prompt.`}:{allowed:!0,requiresApproval:!1,reason:"allowed",scope:"approval-prompt",message:`Approval request "${e.type}" is within the active autonomy policy.`}}function $Lt(n,e){return e==="none"||BLt[n]>BLt[e]}function XLt(...n){let e=n.map(dX).filter(o=>o!==void 0),[r,...s]=e;if(r)return s.reduce((o,l)=>o.filter(d=>l.includes(d)),r)}function QLt(...n){return dX(n.flatMap(e=>e??[]))}function dX(n){let e=n?.map(r=>r.trim()).filter(Boolean);return e&&e.length>0?Array.from(new Set(e)):void 0}function NV(n,e,r){return{allowed:!1,requiresApproval:!1,reason:e,scope:n,message:r}}var oir,BLt,PSe,fX=ze(()=>{"use strict";JL();oir=new Set(["worktree_create","worktree_finish","worktree_cancel","acp_root_switch"]);BLt={low:0,medium:1,high:2,critical:3},PSe={mode:"interactive",source:"default",approvalMode:"manual",maxRiskWithoutApproval:"none",requireApprovalByDefault:!0,allowDestructiveActions:!1,allowExternalSideEffects:!1,allowHostCredentialedTools:!1,duplicateToolPolicy:"runtime-default",approvalDeniedPolicy:"stop"}});function zKe(){return++air}function lir(n,e){return{type:"text",id:`text-${++cir}`,content:n,variant:e,sequence:zKe()}}function dir(n,e="",r={}){return{type:"thinking",id:`thinking-${++uir}`,text:e,provider:n,streaming:!0,sequence:zKe(),...r}}function pir(n,e,r,s="pending"){return{type:"tool",id:n,name:e,params:r,status:s,sequence:zKe()}}function eYt(n){return KLt.includes(n)}function tYt(n){return eYt(n.status)}function nYt(n){return n.streaming!==!0}function fir(n){return n.type==="tool"?tYt(n):n.type==="thinking"?nYt(n):!0}function mir(n){return{...n,commitState:"committed"}}var KLt,air,cir,uir,rYt=ze(()=>{"use strict";KLt=["success","error","skipped"],air=0,cir=0;uir=0});function GSe(n){return Number.isInteger(n)&&n>0?n:1}function mX(n,e){return{planId:n,revision:GSe(e)}}function hX(n){return{code:Qae,activePlan:{...n}}}var hir,Qae,zae=ze(()=>{"use strict";hir=1,Qae="active_plan_conflict"});var gir,iYt=ze(()=>{"use strict";gir=1});var qKe,$Ke=ze(()=>{"use strict";qKe=1});var _ir,sYt=ze(()=>{"use strict";_ir=["end_turn","max_tokens","stop_sequence","tool_use","pause_turn","refusal","model_context_window_exceeded"]});var KKe,eet=ze(()=>{"use strict";KKe=["image/png","image/jpeg","image/gif","image/webp"]});var gX,tet=ze(()=>{"use strict";gX=8});var yir,qae,net,FSe=ze(()=>{"use strict";yir="tools-rpc",qae={initialize:"initialize",shutdown:"shutdown",toolsList:"tools/list",toolsCall:"tools/call"},net={parseError:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internalError:-32603,toolNotFound:-32001,toolNotAllowed:-32002,approvalDenied:-32003,toolTimeout:-32005,invalidBatch:-32006}});function Iir(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.updateAvailable=="boolean"&&typeof e.currentVersion=="string"&&typeof e.checkedAt=="string"}function vir(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.checkOnStartup=="boolean"&&typeof e.checkInterval=="number"&&typeof e.showNotifications=="boolean"&&typeof e.notificationStyle=="string"&&typeof e.includePrerelease=="boolean"}function wir(n){return["major","minor","patch","prerelease","build"].includes(n)}function xir(n){return["banner","minimal","detailed","silent"].includes(n)}var bir,oYt=ze(()=>{"use strict";bir={checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:"banner",includePrerelease:!1}});var rT,$ae=ze(()=>{"use strict";rT=1});var Kae,ret,MSe,ece=ze(()=>{"use strict";Kae=(h=>(h.DIRECT="direct",h.CLARIFICATION="clarification",h.TODO_LIST="todo_list",h.PLAN="plan",h.PLAN_ADOPT="plan_adopt",h.NO_ACTION="no_action",h.SPAWN_AGENT="spawn_agent",h))(Kae||{}),ret=(h=>(h.PENDING="pending",h.IN_PROGRESS="in_progress",h.PAUSED="paused",h.COMPLETED="completed",h.FAILED="failed",h.SKIPPED="skipped",h.ROLLED_BACK="rolled_back",h))(ret||{}),MSe=(x=>(x.IDLE="idle",x.CONTEXT_GATHERING="context_gathering",x.COMPLEXITY_ASSESSMENT="complexity_assessment",x.CLARIFICATION="clarification",x.PLAN_GENERATION="plan_generation",x.PLAN_REVIEW="plan_review",x.EXECUTION="execution",x.VERIFICATION="verification",x.COMPLETED="completed",x.FAILED="failed",x))(MSe||{})});var DSe,xP,AP,iet,_X=ze(()=>{"use strict";DSe="first_turn_input_plus_output_then_output",xP=2,AP="output_only",iet=["token_exhaustion","turn_exhaustion","wall_clock_timeout","max_output_continuation","context_window_failure"]});function set(n){let e=n.standaloneAgent?"excluded":"child_policy",r=[...n.allowedTools];return{contractVersion:kE,task:"explicit",description:n.hasDescription?"metadata_only":"omitted",additionalContext:n.hasAdditionalContext?"explicit":"omitted",pipedInput:"excluded",attachments:"excluded",parentConversation:"excluded",parentSystemPrompt:"excluded",parentToolResults:"excluded",userIdentity:"excluded",projectRoot:n.projectRootWasExplicit?"explicit":"process_cwd_fallback",agentDefinition:"resolved_by_name",childSystemPrompt:n.standaloneAgent?"standalone_agent_prompt":"nova_base_plus_agent_prompt",projectSummary:e,scopedMemory:e,skills:e,availableSubagents:e,learningContext:e,operationalPromptAddition:"runtime_policy",toolExposure:{source:"agent_definition",mode:r.length>0?"allowlist":"runtime_default",configuredToolNames:r}}}function oet(n,e){let r=[];n.contractVersion!==kE&&r.push("unsupported spawn contract version"),e.continueSession&&r.push("parent session continuation is forbidden"),e.hasPipedInput&&r.push("piped input is forbidden"),e.attachmentCount>0&&r.push("attachments are forbidden"),e.conversationMessageCount>0&&r.push("parent conversation messages are forbidden"),(n.pipedInput!=="excluded"||n.attachments!=="excluded"||n.parentConversation!=="excluded"||n.parentSystemPrompt!=="excluded"||n.parentToolResults!=="excluded"||n.userIdentity!=="excluded")&&r.push("manifest permits forbidden ambient parent context");let s=e.standaloneAgent?"standalone_agent_prompt":"nova_base_plus_agent_prompt",o=e.standaloneAgent?"excluded":"child_policy";n.childSystemPrompt!==s&&r.push("child system prompt policy does not match the resolved agent"),(n.projectSummary!==o||n.scopedMemory!==o||n.skills!==o||n.availableSubagents!==o||n.learningContext!==o)&&r.push("child ambient context policy does not match the resolved agent");let l=e.allowedTools.length>0?"allowlist":"runtime_default";return(n.toolExposure.source!=="agent_definition"||n.toolExposure.mode!==l||n.toolExposure.configuredToolNames.length!==e.allowedTools.length||n.toolExposure.configuredToolNames.some((d,h)=>d!==e.allowedTools[h]))&&r.push("tool exposure policy does not match the resolved agent definition"),r}function yX(n){return typeof n=="string"&&["parent","direct_user","blocked"].includes(n)}function aet(n){if(n)return{...n,delivery:"poll"}}function Air(n){return typeof n=="string"&&["pending","running","paused","waiting_for_parent","completed","failed","cancelled","budget_exceeded"].includes(n)}function Sir(n){return typeof n=="string"&&["fixed","percentage","adaptive"].includes(n)}function Dx(n){return["completed","failed","cancelled","budget_exceeded"].includes(n)}function kir(n){return n.status==="paused"&&n.messages.length>0||n.status==="waiting_for_parent"&&!!n.parentQuestionRequest}function cet(){return{contractVersion:2,accountingMode:AP,source:"legacy_default",maxTokens:8e4,maxTurns:20,tokensUsed:0,apiTokensConsumed:0,turnsUsed:0}}function bX(n){return{tokens:Math.max(0,n.maxTokens-n.tokensUsed),turns:Math.max(0,n.maxTurns-n.turnsUsed)}}function tce(n){return{tokens:n.maxTokens>0?n.tokensUsed/n.maxTokens*100:0,turns:n.maxTurns>0?n.turnsUsed/n.maxTurns*100:0}}function IX(n){return n.tokensUsed>=n.maxTokens?{exceeded:!0,reason:"tokens"}:n.turnsUsed>=n.maxTurns?{exceeded:!0,reason:"turns"}:{exceeded:!1}}function WSe(n){if(n<1e3)return`${n}ms`;if(n<6e4)return`${(n/1e3).toFixed(1)}s`;let e=Math.floor(n/6e4),r=Math.round(n%6e4/1e3);return`${e}m ${r}s`}var kE,ID=ze(()=>{"use strict";_X();kE=1});var fYt={};Ay(fYt,{AGENT_SOURCE_PRIORITY:()=>rce,AGENT_SPAWN_DELEGATION_POLICY:()=>Vv,BUILTIN_SPAWNABLE_AGENT_NAMES:()=>ZSe,GENERAL_PURPOSE_BUILTIN_AGENT_NAME:()=>wg,LEGACY_BUILTIN_SPAWNABLE_AGENT_NAME_ALIASES:()=>pet,LEGACY_GENERAL_PURPOSE_BUILTIN_AGENT_NAME:()=>det,LEGACY_VERIFICATION_BUILTIN_AGENT_NAMES:()=>aYt,RESEARCH_BUILTIN_AGENT_NAME:()=>uet,VERIFICATION_BUILTIN_AGENT_NAME:()=>nce,compareAgentPriority:()=>pYt,createDefaultAgentDefinition:()=>uYt,getAgentSourcePriority:()=>VSe,isValidAgentFrontmatter:()=>LSe,isValidAgentPermissionMode:()=>OSe,isValidAgentSource:()=>cYt,isValidCLIAgentConfig:()=>lYt,normalizeBuiltInSpawnableAgentName:()=>Lh,parseToolsList:()=>BL,resolveSpawnableAgentName:()=>iT,serializeToolsList:()=>dYt});function Lh(n){let e=n.trim(),r=e.toLowerCase();return pet[r]??e}function iT(n){let e=n?.trim();return e?Lh(e):wg}function OSe(n){return typeof n=="string"&&["default","acceptEditsAsk","bypassPermissions","plan","ignore","acceptEdits","dontAsk"].includes(n)}function cYt(n){return typeof n=="string"&&["project","cli","user","builtin"].includes(n)}function LSe(n){if(typeof n!="object"||n===null)return!1;let e=n;return!(typeof e.name!="string"||e.name.length===0||typeof e.description!="string"||e.description.length===0||e.tools!==void 0&&typeof e.tools!="string"||e.disallowedTools!==void 0&&typeof e.disallowedTools!="string"||e.model!==void 0&&typeof e.model!="string"||e.permissionMode!==void 0&&!OSe(e.permissionMode)||e.questionRouting!==void 0&&!yX(e.questionRouting)||e.skills!==void 0&&typeof e.skills!="string"||e.standalone!==void 0&&typeof e.standalone!="boolean"||e.mcpServers!==void 0&&typeof e.mcpServers!="string")}function lYt(n){if(typeof n!="object"||n===null)return!1;let e=n;return!(typeof e.description!="string"||typeof e.prompt!="string"||e.tools!==void 0&&!Array.isArray(e.tools)||e.disallowedTools!==void 0&&!Array.isArray(e.disallowedTools)||e.model!==void 0&&typeof e.model!="string"||e.permissionMode!==void 0&&!OSe(e.permissionMode)||e.skills!==void 0&&!Array.isArray(e.skills)||e.standalone!==void 0&&typeof e.standalone!="boolean"||e.mcpServers!==void 0&&!Array.isArray(e.mcpServers))}function uYt(n,e,r,s="builtin"){return{id:`${s}-${n}`,name:n,description:e,systemPrompt:r,source:s,permissionMode:"default",isActive:!0,rawFrontmatter:{name:n,description:e}}}function BL(n){if(!(!n||n.trim()===""))return n.split(",").map(e=>e.trim()).filter(e=>e.length>0)}function dYt(n){if(!(!n||n.length===0))return n.join(", ")}function VSe(n){return rce.indexOf(n)}function pYt(n,e){return VSe(n.source)-VSe(e.source)}var rce,wg,uet,nce,det,aYt,ZSe,Vv,pet,sw=ze(()=>{"use strict";ID();rce=["builtin","user","cli","project"],wg="supernova",uet="research",nce="verification",det="default",aYt=["code-reviewer","debugger"],ZSe=["explore",uet,nce,"planner",wg],Vv={defaultParallelAgentCap:2,escalatedParallelAgentCap:4,escalationEvidence:["independent-workstreams","large-audit-scope","migration-or-cross-cutting-change","explicit-user-request"],workstreamRequirements:["name","scope","deliverable"],resultAcceptanceRequirements:["acceptedFindings","rejectedOrUncertainFindings","conflicts","synthesisDecision"]},pet={[det]:wg,"code-reviewer":nce,debugger:nce}});function Cir(){return{totalUsageTimeMs:0,lastRatingShownAt:null,lastRatingSubmittedAt:null,totalRatingsSubmitted:0,totalSessions:0,firstUsedAt:new Date().toISOString(),lastActivityAt:null}}function Eir(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.totalUsageTimeMs=="number"&&(e.lastRatingShownAt===null||typeof e.lastRatingShownAt=="string")&&(e.lastRatingSubmittedAt===null||typeof e.lastRatingSubmittedAt=="string")&&typeof e.totalRatingsSubmitted=="number"&&typeof e.totalSessions=="number"&&typeof e.firstUsedAt=="string"&&(e.lastActivityAt===null||typeof e.lastActivityAt=="string")}var Tir,mYt=ze(()=>{"use strict";Tir={usageTimeThresholdMs:12e4,cooldownPeriodMs:864e5,activityWindowMs:12e4,cooldownMultiplier:1.5,maxCooldownPeriodMs:6048e5}});function HSe(n){return typeof n=="string"&&vX.includes(n)}function Rir(n){return typeof n=="string"&&["personal","project"].includes(n)}function Nir(n){if(typeof n!="object"||n===null)return!1;let e=n;return!(e.description!==void 0&&typeof e.description!="string"||e.enabled!==void 0&&typeof e.enabled!="boolean"||e.tools!==void 0&&!Array.isArray(e.tools)||e.match!==void 0&&typeof e.match!="object"||e.timeout!==void 0&&typeof e.timeout!="number")}function fet(n){return YSe.indexOf(n)}function Pir(n,e){return fet(n.source)-fet(e.source)}var vX,YSe,met=ze(()=>{"use strict";vX=["SessionStart","PreToolUse","PostToolUse","UserPromptSubmit","Notification","SubagentStart","Stop"],YSe=["personal","project"]});function Gir(n){return typeof n=="string"&&["builtin","personal","project-global","project"].includes(n)}function hYt(n){return typeof n=="string"&&["inline","fork"].includes(n)}function Fir(n){if(typeof n!="object"||n===null)return!1;let e=n;return!(e.name!==void 0&&typeof e.name!="string"||e.description!==void 0&&typeof e.description!="string"||e["argument-hint"]!==void 0&&typeof e["argument-hint"]!="string"||e["disable-model-invocation"]!==void 0&&typeof e["disable-model-invocation"]!="boolean"||e["user-invocable"]!==void 0&&typeof e["user-invocable"]!="boolean"||e["allowed-tools"]!==void 0&&!Array.isArray(e["allowed-tools"])||e.model!==void 0&&typeof e.model!="string"||e.context!==void 0&&!hYt(e.context)||e.agent!==void 0&&typeof e.agent!="string")}function het(n){return USe.indexOf(n)}function Mir(n,e){return het(n.source)-het(e.source)}var USe,get=ze(()=>{"use strict";USe=["builtin","personal","project-global","project"]});function Dir(n){return typeof n=="string"&&gYt.includes(n)}function Wir(n){return n??vD}var gYt,vD,Gd,wb,ice=ze(()=>{"use strict";gYt=["project","shared"],vD="project",Gd="shared",wb="project"});function Vir(n){return typeof n=="string"&&["candidate","pending_review","approved","rejected","disabled","expired"].includes(n)}function Zir(n){return typeof n=="string"&&["memory","system_prompt","runtime_hook","skill","cli_status"].includes(n)}function sce(n,e=new Date){return!(n.state!=="approved"||n.retention.disabledAt||n.retention.invalidatedAt||n.retention.expiresAt&&Date.parse(n.retention.expiresAt)<=e.getTime())}var TE,oce=ze(()=>{"use strict";TE=1});function jSe(n){if(!n||typeof n!="object")return!1;let e=n;return typeof e.version=="string"&&typeof e.id=="string"&&typeof e.sessionId=="string"&&typeof e.projectPath=="string"&&typeof e.startedAt=="string"&&typeof e.endedAt=="string"&&typeof e.messageCount=="number"&&typeof e.summary=="string"&&Array.isArray(e.messages)&&Array.isArray(e.topics)&&(Array.isArray(e.operations)||Array.isArray(e.toolsUsed)&&Array.isArray(e.filesModified)&&Array.isArray(e.filesRead))}var _et,yet=ze(()=>{"use strict";_et="1.0"});var JSe,ace,cce=ze(()=>{"use strict";JSe="1.0",ace="archive-lexical-v2"});var bet,_Yt=ze(()=>{"use strict";bet=class n extends Error{scope;provider;model;limitValue;currentUsage;resetAt;constructor(e){let s=new Date(e.resetAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),o=e.scope==="model"?`model "${e.model}"`:`provider "${e.provider}"`;super(`Daily token limit exceeded for ${o}. Used ${e.currentUsage.toLocaleString()} / ${e.limitValue.toLocaleString()} tokens. Resets at ${s}.`),this.name="TokenLimitExceededError",this.scope=e.scope,this.provider=e.provider,this.model=e.model,this.limitValue=e.limitValue,this.currentUsage=e.currentUsage,this.resetAt=e.resetAt,Object.setPrototypeOf(this,n.prototype)}}});var XL,lce,PV,wX,Iet,uce,yYt,Oir,dce,BSe,xX,Lir,AX,pce,Yir,fce,vet,wet,SX,xet,Aet,SP,kX,Hir,bYt,mce,ket,nh,Zv,Tet,Cet,Eet,Ret,Net,wD,TX,XSe,Pet,Uir,jir,Jir,Bir,Xir,Qir,GV,FV,QL,zL,hce,AI,Get,Fet,MV,Met,QSe,zir,qir,gce,$ir,CX,IYt,vYt,wYt,xYt,zSe,AYt,SYt,_ce,yce,kYt,TYt,CYt,EYt,Det,RYt,Kir,esr,qSe,$Se,KSe,xD,NYt,bce,EX,PYt,GYt,FYt,e2e,MYt,DYt,Cgi,WYt,VYt,ZYt,Wet,t2e,Ice,qL,sT,RX,kP,NX,OYt,LYt,YYt,HYt,UYt,jYt,vce,tsr,n2e,TP,r2e,JYt,nsr,rsr,CP,Vet,Zet,Oet,Let,Yet,Het,Uet,jet,isr,Jet,Bet,Xet,Qet,zet,qet,$et,ssr,ow,DV,BYt,Ket,XYt,$L,osr,asr,QYt,zYt,ett,qYt,$Yt,KYt,KL,ttt,ntt,rtt,itt,stt,csr,EP,i2e,RP,WV,Dp,PX,Wp,d_,eY,lsr,usr,dsr,psr,fsr,ott,eHt,tHt,att,msr,Ya=ze(()=>{"use strict";XL=".compass",lce=".compass",PV="config.json",wX="session.json",Iet="consent.json",uce="credentials.enc",yYt="custom-models.json",Oir="tokens.json",dce="logs",BSe="runtime-turn-events",xX="backups",Lir="cache",AX="saved-sessions",pce="index",Yir="context",fce="temp",vet="commands",wet="agents",SX="skills",xet="hooks",Aet="rules",SP="projects",kX="memory",Hir=["auto","project","global"],bYt="auto",mce="NOVA.md",ket="NOVA.local.md",nh="MEMORY.md",Zv=200,Tet=140,Cet=160,Eet=180,Ret=64,Net=65536,wD=150,TX=`
|
|
8
8
|
|
|
9
|
-
`,XSe="chats",Pet="continuity",Uir=10,jir=14,Jir=14,Bir=12096e5,Xir="ACP_SESSION_RETENTION_LIMIT",Qir="ACP_SESSION_MAX_AGE_DAYS",GV="png",FV=2,QL=4,zL="page",hce=["png","jpeg"],AI=16384,Get={skip:0,off:0,low:2048,medium:8192,high:16384,xhigh:32768,max:32768},Fet=["skip","off","low","medium","high","xhigh","max"],MV="skip",Met=2e5,QSe=8e4,zir=80,qir=10,gce={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},$ir="haiku",CX=4e3,IYt=50,vYt=3600*1e3,wYt=5e6,xYt=3,zSe="haiku",AYt=50,SYt=8e3,_ce={maxConditionChars:CX,maxTurns:IYt,maxWallClockMs:vYt,maxTokens:wYt,maxEvaluatorFailures:xYt,transcriptMaxMessages:AYt,transcriptMaxTokens:SYt},yce=500,kYt=350,TYt=5,CYt=0,EYt=65,Det=!0,RYt=3,Kir=500,esr=3,qSe=3,$Se=5,KSe={enabled:Det,warningThreshold:qSe,blockThreshold:$Se},xD={enabled:!0,retryBudgets:{maxToolRetries:2,maxEditRetries:2,maxProviderRetries:2,maxConsecutiveFailures:4,maxBlockedToolResults:3},blockRepeatedToolCalls:!0,escalateOnUserRejectedTool:!0,terminalFailureCategories:["provider_terminal_error","policy_violation","user_rejected"],diagnostics:{enabled:!0,includeToolName:!0,includeFailureCategory:!0,includeDecisionReason:!0,includeBudgetSnapshot:!0}},NYt=30,bce=1,EX=100,PYt=7,GYt=30,FYt=200,e2e=500,MYt=2e3,DYt=3e4,Cgi=3600*1e3,WYt=25*1024*1024,VYt=5,ZYt=14,Wet=365,t2e=6e4,Ice=3e5,qL=6e5,sT=3e5,RX=18e5,kP=18e5,NX=3e4,OYt=1e4,LYt=3e4,YYt=10,HYt=4,UYt=50,jYt=1024*1024,vce=100,tsr=15,n2e=8e3,TP=4e3,r2e=6e3,JYt=16e3,nsr=90,rsr=1e5,CP=25e3,Vet=250*1024*1024,Zet=20,Oet=1e4,Let=5e3,Yet=50,Het=2e3,Uet=8,jet=1e3,isr=500*1024*1024,Jet=6,Bet=2048,Xet=64,Qet=64,zet=64,qet=1024,$et=128,ssr=0,ow="claude-sonnet-4-6",DV=1,BYt=.5,Ket="haiku",XYt={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},$L="professional",osr=4,asr="banner",QYt=4,zYt=1e3,ett=16e3,qYt=.1,$Yt=!0,KYt=ett,KL={maxRetries:QYt,baseDelayMs:zYt,maxDelayMs:ett,jitterFactor:qYt,retryAfter:{enabled:$Yt,maxDelayMs:KYt}},ttt=!0,ntt=["claude-sonnet-4-6","claude-sonnet-5","claude-haiku-4-5-20251001"],rtt=300*1e3,itt=!1,stt=!0,csr=8e3,EP={preferredProviders:["anthropic","openai","gemini","grok","deepseek","ollama"],fallback:{enabled:!0,strategy:"cross-provider",maxAttempts:3,includeOriginal:!0,dedupeAttempts:!0},preserveDefaultWithoutRequest:!0},i2e={maxRetries:5,baseDelayMs:1e3,maxDelayMs:3e4,backoffMultiplier:2},RP={anthropic:{model:ow,maxTokens:16384,temperature:DV},ollama:{model:"glm-5.1:cloud",endpoint:"https://ollama.com",maxTokens:16384,temperature:BYt},project:{rootDir:process.cwd(),ignorePatterns:["node_modules/**",".git/**","dist/**","build/**","out/**","coverage/**",".next/**",".nuxt/**",".output/**","*.log",".env*","*.lock","package-lock.json","yarn.lock","pnpm-lock.yaml",".DS_Store","Thumbs.db","*.min.js","*.min.css","*.map",".compass/**"],includePatterns:["**/*"],maxFileSize:jYt,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:UYt,backupBeforeModify:!0,shellCommandTimeout:Ice,allowedShellCommands:["npm","npx","yarn","pnpm","git","node","tsc","eslint","prettier","jest","vitest","mocha","cargo","rustc","go","python","python3","pip","pip3","poetry","make","cmake","gradle","mvn","docker","kubectl","terraform","aws","gcloud","az","cat","ls","pwd","echo","head","tail","grep","find","wc","sort","uniq","diff","tree"],blockedShellCommands:["rm -rf /","rm -rf /*","rm -rf ~","rm -rf ~/*","sudo rm -rf",":(){:|:&};:","mkfs","dd if=/dev/zero","dd if=/dev/random","> /dev/sda","chmod -R 777 /","chown -R","wget | sh","curl | sh","wget | bash","curl | bash"]},ui:{},session:{autoSave:!0,autoSaveInterval:t2e,maxHistoryLength:vce,autoCompactThreshold:QSe,sessionExpiryDays:NYt,unleash:!1},update:{checkOnStartup:!0,checkInterval:osr,showNotifications:!0,notificationStyle:asr,includePrerelease:!1},retry:KL,a2a:{unrestrictedTools:!1,auth:{requireAuth:!0,tokenTtlMs:1e3*60*60*24*365,sessionTokenTtlMs:1e3*60*60*24,devicePairingEnabled:!0,compatibilityMode:!1,allowedOrigins:[]}},cloudAware:{enabled:!0,showWarning:!0,skipPlaceholdersInWalks:!0,allowIndexing:!1,allowProjectSummary:!1,allowBackupInTree:!1,allowArchivalInTree:!1,runtimeStateLocation:bYt,windowsRetryOnCloudLocks:!0,warnOnHydration:!0},agentic:{maxIterations:yce,costWarningThreshold:TYt,costHardCap:CYt,autoCompactAtPercent:EYt,stuckDetectionEnabled:Det,stuckDetectionThreshold:RYt,runtimeEvents:{enabled:!1,outputDir:BSe},loopDetection:KSe,recovery:xD,maxIterationsPerTask:kYt},telemetry:{enabled:!0},automation:{archiveRecall:{mode:"disabled",maxResults:5,maxSnippetChars:600,maxTotalChars:2400,minScore:.6,auditEvents:!0},webhooks:{enabled:!1,endpoints:[],deliveryLogLimit:100,retryBaseDelayMs:1e3,retryMaxDelayMs:3e4},daemon:{enabled:!1,pidFile:".compass/automation/daemon.pid",stateFile:".compass/automation/daemon-state.json",logFile:".compass/automation/daemon.log",healthFile:".compass/automation/daemon-health.json",heartbeatIntervalMs:3e4,staleAfterMs:12e4,shutdownGraceMs:1e4},scheduler:{owner:"interactive",lockTtlMs:12e4,missedRunPolicy:"run_once",maxCatchUpRuns:1}},workflowCapabilities:{checkpoints:{enabled:!1},rollback:{enabled:!1,requireApproval:!0},analytics:{enabled:!1},messaging:{enabled:!1,provider:"slack",events:{workflow:!0,plan:!0,approvals:!0,taskProgress:!1,turnDigest:!1},slack:{timeoutMs:1e4},teams:{timeoutMs:1e4,notifications:{planApprovalDetails:"local-only"}}},remoteSsh:{enabled:!1,requireApproval:!0,targets:{}}},learning:{captureEnabled:!0,autoApplyEnabled:!1,promptInjectionEnabled:!0,skillExposureEnabled:!1,hookExposureEnabled:!1,requireApprovalForSkillExposure:!0,maxPromptItems:8,maxPromptTokens:1200,defaultRetentionDays:90,dryRun:!1}},WV=["anthropic","ollama","zai","minimax","huggingface","openai","gemini","grok","deepseek","custom"],Dp={API_KEY:"ANTHROPIC_API_KEY",COMPASS_API_KEY:"COMPASS_API_KEY",OLLAMA_API_KEY:"OLLAMA_API_KEY",ZAI_API_KEY:"ZAI_API_KEY",MINIMAX_API_KEY:"MINIMAX_API_KEY",HUGGINGFACE_API_KEY:"HF_TOKEN",OPENAI_API_KEY:"OPENAI_API_KEY",GEMINI_API_KEY:"GEMINI_API_KEY",GROK_API_KEY:"GROK_API_KEY",DEEPSEEK_API_KEY:"DEEPSEEK_API_KEY",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE",EXPERIMENTAL_AGENT_TEAMS:"COMPASS_EXPERIMENTAL_AGENT_TEAMS",LEARNING_DISABLED:"COMPASS_LEARNING_DISABLED",LEARNING_DRY_RUN:"COMPASS_LEARNING_DRY_RUN",TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED:"NOVA_TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT"},PX={anthropic:Dp.API_KEY,ollama:Dp.OLLAMA_API_KEY,zai:Dp.ZAI_API_KEY,minimax:Dp.MINIMAX_API_KEY,huggingface:Dp.HUGGINGFACE_API_KEY,openai:Dp.OPENAI_API_KEY,gemini:Dp.GEMINI_API_KEY,grok:Dp.GROK_API_KEY,deepseek:Dp.DEEPSEEK_API_KEY,custom:""},Wp={credentialKind:"openai-oauth",tokenType:"Bearer",provider:"openai",credentialKey:"openaiOAuthCredential",issuer:"https://auth.openai.com",authorizationUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",authorizationPath:"/oauth/authorize",tokenPath:"/oauth/token",clientId:"app_EMoamEEZ73f0CkXaXp7hrann",originator:"codex_cli_rs",betaHeader:"responses=experimental",codexBaseUrl:"https://chatgpt.com/backend-api",callbackPath:"/auth/callback",redirectUri:"http://localhost:1455/auth/callback",callbackPorts:[1455],scope:"openid profile email offline_access",scopes:["openid","profile","email","offline_access"],refreshSkewMs:300*1e3,defaultTimeoutMs:300*1e3,defaultAccessTokenTtlMs:3600*1e3,authPrecedence:["openai-oauth","compass-hydrated"]},d_={commandName:"usage",reportCommand:"openai usage",usagePageUrl:"https://chatgpt.com/codex/settings/usage",canonicalLimitId:"codex",defaultPathStyle:"chatgpt-api",endpointPaths:{"codex-api":"/api/codex/usage","chatgpt-api":"/wham/usage"},bucketOrder:["rolling_5h","weekly","monthly"],bucketLabels:{rolling_5h:"5h limit",weekly:"Weekly limit",monthly:"Monthly limit"},remoteUsageSources:["openai-oauth"],remoteUsageModes:["oauth"],states:["available","stale","unavailable","missing"],messages:{refreshRequested:"refresh requested; run `nova openai usage` again shortly.",stalePending:"limits may be stale - run `nova openai usage` again shortly.",staleIdle:"limits may be stale - retry after your next OpenAI-backed turn.",unavailable:"not available for this account"}},eY="1.1.36",lsr="Compass CLI",usr="Compass AI's flagship CLI agent",dsr="",psr="1.0.0",fsr={".ts":"typescript",".tsx":"typescript",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".rb":"ruby",".go":"go",".rs":"rust",".java":"java",".kt":"kotlin",".scala":"scala",".cs":"csharp",".fs":"fsharp",".cpp":"cpp",".cc":"cpp",".cxx":"cpp",".c":"c",".h":"c",".hpp":"cpp",".swift":"swift",".php":"php",".pl":"perl",".pm":"perl",".sh":"bash",".bash":"bash",".zsh":"zsh",".fish":"fish",".ps1":"powershell",".sql":"sql",".r":"r",".R":"r",".lua":"lua",".vim":"vim",".el":"elisp",".clj":"clojure",".cljs":"clojure",".ex":"elixir",".exs":"elixir",".erl":"erlang",".hrl":"erlang",".hs":"haskell",".ml":"ocaml",".mli":"ocaml",".nim":"nim",".zig":"zig",".v":"v",".d":"d",".dart":"dart",".groovy":"groovy",".gradle":"groovy",".json":"json",".yaml":"yaml",".yml":"yaml",".toml":"toml",".xml":"xml",".html":"html",".htm":"html",".css":"css",".scss":"scss",".sass":"sass",".less":"less",".md":"markdown",".mdx":"markdown",".rst":"restructuredtext",".tex":"latex",".dockerfile":"dockerfile",".tf":"terraform",".hcl":"hcl",".proto":"protobuf",".graphql":"graphql",".gql":"graphql",".vue":"vue",".svelte":"svelte",".astro":"astro"},ott=["package-lock.json","yarn.lock","pnpm-lock.yaml","composer.lock","Gemfile.lock","poetry.lock","Cargo.lock","go.sum","*.map","*.js.map","*.css.map","*.min.js","*.min.css","*.bundle.js","*.chunk.js","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],eHt=["*.sql","*.csv","*.tsv","*.parquet"],tHt=50,att=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"],msr=[".png",".jpg",".jpeg",".gif",".bmp",".ico",".webp",".svg",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".zip",".tar",".gz",".rar",".7z",".exe",".dll",".so",".dylib",".bin",".dat",".db",".sqlite",".sqlite3",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".wav",".avi",".mov",".mkv",".webm",".flv",".class",".jar",".war",".ear",".pyc",".pyo",".o",".obj",".a",".lib"]});function wce(n){return typeof n=="string"&&nHt.includes(n)}function rHt(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.id=="string"&&e.id.length>0&&typeof e.name=="string"&&e.name.length>0&&typeof e.url=="string"&&e.url.length>0&&wce(e.schemaType)&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string"}function utt(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.version=="string"&&Array.isArray(e.models)&&e.models.every(rHt)}var nHt,ctt,ltt,hsr,dtt=ze(()=>{"use strict";nHt=["anthropic","openai-chat","openai-responses"],ctt="1.0.0",ltt=/^[a-z0-9][a-z0-9\-_.:/]{0,62}[a-z0-9]$/,hsr="Custom Models"});function xce(n){return n===429||n===503||n===529}var s2e=ze(()=>{"use strict"});var aw,Ace,Sce=ze(()=>{"use strict";aw=1,Ace=["direct_provider","direct_openai_codex","compass_provider_proxy","compass_openai_code_responses"]});var tY,iHt,o2e=ze(()=>{"use strict";WKe();ESe();ULt();RSe();ZKe();Bae();uX();jKe();BKe();JL();fX();rYt();zae();iYt();$Ke();sYt();eet();tet();FSe();oYt();$ae();ece();sw();ID();mYt();met();get();ice();oce();yet();cce();_Yt();Ya();dtt();s2e();Sce();tY="BASIC",iHt=["BASIC","PRO","MAX","ENTERPRISE","UNLIMITED"]});import NP from"crypto";function oHt(n,e){return NP.pbkdf2Sync(n,e,_sr,gsr,ftt)}function mtt(n,e){let r=NP.randomBytes(VV),s=NP.randomBytes(GX),o=oHt(e,r),l=NP.createCipheriv(sHt,o,s),d=l.update(n,"utf8","hex");d+=l.final("hex");let h=l.getAuthTag();return Buffer.concat([r,s,h,Buffer.from(d,"hex")]).toString("base64")}function htt(n,e){let r=Buffer.from(n,"base64"),s=VV+GX+ptt+1;if(r.length<s)throw new Error("Invalid encrypted data: too short");let o=r.subarray(0,VV),l=r.subarray(VV,VV+GX),d=r.subarray(VV+GX,VV+GX+ptt),h=r.subarray(VV+GX+ptt),y=oHt(e,o),v=NP.createDecipheriv(sHt,y,l);v.setAuthTag(d);let x=v.update(h.toString("hex"),"hex","utf8");return x+=v.final("utf8"),x}function ysr(n=32){return NP.randomBytes(n).toString("hex")}function gtt(n){return NP.createHash(ftt).update(n).digest("hex")}function bsr(n,e){return NP.createHmac(ftt,e).update(n).digest("hex")}function Isr(n,e){return n.length!==e.length?(NP.timingSafeEqual(Buffer.from(n),Buffer.from(n)),!1):NP.timingSafeEqual(Buffer.from(n),Buffer.from(e))}var sHt,GX,VV,ptt,gsr,_sr,ftt,__i,a2e=ze(()=>{"use strict";sHt="aes-256-gcm",GX=16,VV=32,ptt=16,gsr=32,_sr=1e5,ftt="sha256";__i=Buffer.from("b-f2T&>)XPx2vI/I9N7CfYH@Dvdb<F","utf-8")});var xb=yt(_tt=>{"use strict";_tt.fromCallback=function(n){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")n.apply(this,e);else return new Promise((r,s)=>{e.push((o,l)=>o!=null?s(o):r(l)),n.apply(this,e)})},"name",{value:n.name})};_tt.fromPromise=function(n){return Object.defineProperty(function(...e){let r=e[e.length-1];if(typeof r!="function")return n.apply(this,e);e.pop(),n.apply(this,e).then(s=>r(null,s),r)},"name",{value:n.name})}});var cHt=yt((I_i,aHt)=>{var ZV=go("constants"),vsr=process.cwd,c2e=null,wsr=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return c2e||(c2e=vsr.call(process)),c2e};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ytt=process.chdir,process.chdir=function(n){c2e=null,ytt.call(process,n)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ytt));var ytt;aHt.exports=xsr;function xsr(n){ZV.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(n),n.lutimes||r(n),n.chown=l(n.chown),n.fchown=l(n.fchown),n.lchown=l(n.lchown),n.chmod=s(n.chmod),n.fchmod=s(n.fchmod),n.lchmod=s(n.lchmod),n.chownSync=d(n.chownSync),n.fchownSync=d(n.fchownSync),n.lchownSync=d(n.lchownSync),n.chmodSync=o(n.chmodSync),n.fchmodSync=o(n.fchmodSync),n.lchmodSync=o(n.lchmodSync),n.stat=h(n.stat),n.fstat=h(n.fstat),n.lstat=h(n.lstat),n.statSync=y(n.statSync),n.fstatSync=y(n.fstatSync),n.lstatSync=y(n.lstatSync),n.chmod&&!n.lchmod&&(n.lchmod=function(x,C,R){R&&process.nextTick(R)},n.lchmodSync=function(){}),n.chown&&!n.lchown&&(n.lchown=function(x,C,R,W){W&&process.nextTick(W)},n.lchownSync=function(){}),wsr==="win32"&&(n.rename=typeof n.rename!="function"?n.rename:(function(x){function C(R,W,O){var U=Date.now(),ce=0;x(R,W,function be(Ae){if(Ae&&(Ae.code==="EACCES"||Ae.code==="EPERM"||Ae.code==="EBUSY")&&Date.now()-U<6e4){setTimeout(function(){n.stat(W,function(Oe,Pe){Oe&&Oe.code==="ENOENT"?x(R,W,be):O(Ae)})},ce),ce<100&&(ce+=10);return}O&&O(Ae)})}return Object.setPrototypeOf&&Object.setPrototypeOf(C,x),C})(n.rename)),n.read=typeof n.read!="function"?n.read:(function(x){function C(R,W,O,U,ce,be){var Ae;if(be&&typeof be=="function"){var Oe=0;Ae=function(Pe,He,rt){if(Pe&&Pe.code==="EAGAIN"&&Oe<10)return Oe++,x.call(n,R,W,O,U,ce,Ae);be.apply(this,arguments)}}return x.call(n,R,W,O,U,ce,Ae)}return Object.setPrototypeOf&&Object.setPrototypeOf(C,x),C})(n.read),n.readSync=typeof n.readSync!="function"?n.readSync:(function(x){return function(C,R,W,O,U){for(var ce=0;;)try{return x.call(n,C,R,W,O,U)}catch(be){if(be.code==="EAGAIN"&&ce<10){ce++;continue}throw be}}})(n.readSync);function e(x){x.lchmod=function(C,R,W){x.open(C,ZV.O_WRONLY|ZV.O_SYMLINK,R,function(O,U){if(O){W&&W(O);return}x.fchmod(U,R,function(ce){x.close(U,function(be){W&&W(ce||be)})})})},x.lchmodSync=function(C,R){var W=x.openSync(C,ZV.O_WRONLY|ZV.O_SYMLINK,R),O=!0,U;try{U=x.fchmodSync(W,R),O=!1}finally{if(O)try{x.closeSync(W)}catch{}else x.closeSync(W)}return U}}function r(x){ZV.hasOwnProperty("O_SYMLINK")&&x.futimes?(x.lutimes=function(C,R,W,O){x.open(C,ZV.O_SYMLINK,function(U,ce){if(U){O&&O(U);return}x.futimes(ce,R,W,function(be){x.close(ce,function(Ae){O&&O(be||Ae)})})})},x.lutimesSync=function(C,R,W){var O=x.openSync(C,ZV.O_SYMLINK),U,ce=!0;try{U=x.futimesSync(O,R,W),ce=!1}finally{if(ce)try{x.closeSync(O)}catch{}else x.closeSync(O)}return U}):x.futimes&&(x.lutimes=function(C,R,W,O){O&&process.nextTick(O)},x.lutimesSync=function(){})}function s(x){return x&&function(C,R,W){return x.call(n,C,R,function(O){v(O)&&(O=null),W&&W.apply(this,arguments)})}}function o(x){return x&&function(C,R){try{return x.call(n,C,R)}catch(W){if(!v(W))throw W}}}function l(x){return x&&function(C,R,W,O){return x.call(n,C,R,W,function(U){v(U)&&(U=null),O&&O.apply(this,arguments)})}}function d(x){return x&&function(C,R,W){try{return x.call(n,C,R,W)}catch(O){if(!v(O))throw O}}}function h(x){return x&&function(C,R,W){typeof R=="function"&&(W=R,R=null);function O(U,ce){ce&&(ce.uid<0&&(ce.uid+=4294967296),ce.gid<0&&(ce.gid+=4294967296)),W&&W.apply(this,arguments)}return R?x.call(n,C,R,O):x.call(n,C,O)}}function y(x){return x&&function(C,R){var W=R?x.call(n,C,R):x.call(n,C);return W&&(W.uid<0&&(W.uid+=4294967296),W.gid<0&&(W.gid+=4294967296)),W}}function v(x){if(!x||x.code==="ENOSYS")return!0;var C=!process.getuid||process.getuid()!==0;return!!(C&&(x.code==="EINVAL"||x.code==="EPERM"))}}});var dHt=yt((v_i,uHt)=>{var lHt=go("stream").Stream;uHt.exports=Asr;function Asr(n){return{ReadStream:e,WriteStream:r};function e(s,o){if(!(this instanceof e))return new e(s,o);lHt.call(this);var l=this;this.path=s,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,o=o||{};for(var d=Object.keys(o),h=0,y=d.length;h<y;h++){var v=d[h];this[v]=o[v]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){l._read()});return}n.open(this.path,this.flags,this.mode,function(x,C){if(x){l.emit("error",x),l.readable=!1;return}l.fd=C,l.emit("open",C),l._read()})}function r(s,o){if(!(this instanceof r))return new r(s,o);lHt.call(this),this.path=s,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,o=o||{};for(var l=Object.keys(o),d=0,h=l.length;d<h;d++){var y=l[d];this[y]=o[y]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=n.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var fHt=yt((w_i,pHt)=>{"use strict";pHt.exports=ksr;var Ssr=Object.getPrototypeOf||function(n){return n.__proto__};function ksr(n){if(n===null||typeof n!="object")return n;if(n instanceof Object)var e={__proto__:Ssr(n)};else var e=Object.create(null);return Object.getOwnPropertyNames(n).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}),e}});var MX=yt((x_i,vtt)=>{var xg=go("fs"),Tsr=cHt(),Csr=dHt(),Esr=fHt(),l2e=go("util"),SI,d2e;typeof Symbol=="function"&&typeof Symbol.for=="function"?(SI=Symbol.for("graceful-fs.queue"),d2e=Symbol.for("graceful-fs.previous")):(SI="___graceful-fs.queue",d2e="___graceful-fs.previous");function Rsr(){}function gHt(n,e){Object.defineProperty(n,SI,{get:function(){return e}})}var nY=Rsr;l2e.debuglog?nY=l2e.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(nY=function(){var n=l2e.format.apply(l2e,arguments);n="GFS4: "+n.split(/\n/).join(`
|
|
9
|
+
`,XSe="chats",Pet="continuity",Uir=10,jir=14,Jir=14,Bir=12096e5,Xir="ACP_SESSION_RETENTION_LIMIT",Qir="ACP_SESSION_MAX_AGE_DAYS",GV="png",FV=2,QL=4,zL="page",hce=["png","jpeg"],AI=16384,Get={skip:0,off:0,low:2048,medium:8192,high:16384,xhigh:32768,max:32768},Fet=["skip","off","low","medium","high","xhigh","max"],MV="skip",Met=2e5,QSe=8e4,zir=80,qir=10,gce={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},$ir="haiku",CX=4e3,IYt=50,vYt=3600*1e3,wYt=5e6,xYt=3,zSe="haiku",AYt=50,SYt=8e3,_ce={maxConditionChars:CX,maxTurns:IYt,maxWallClockMs:vYt,maxTokens:wYt,maxEvaluatorFailures:xYt,transcriptMaxMessages:AYt,transcriptMaxTokens:SYt},yce=500,kYt=350,TYt=5,CYt=0,EYt=65,Det=!0,RYt=3,Kir=500,esr=3,qSe=3,$Se=5,KSe={enabled:Det,warningThreshold:qSe,blockThreshold:$Se},xD={enabled:!0,retryBudgets:{maxToolRetries:2,maxEditRetries:2,maxProviderRetries:2,maxConsecutiveFailures:4,maxBlockedToolResults:3},blockRepeatedToolCalls:!0,escalateOnUserRejectedTool:!0,terminalFailureCategories:["provider_terminal_error","policy_violation","user_rejected"],diagnostics:{enabled:!0,includeToolName:!0,includeFailureCategory:!0,includeDecisionReason:!0,includeBudgetSnapshot:!0}},NYt=30,bce=1,EX=100,PYt=7,GYt=30,FYt=200,e2e=500,MYt=2e3,DYt=3e4,Cgi=3600*1e3,WYt=25*1024*1024,VYt=5,ZYt=14,Wet=365,t2e=6e4,Ice=3e5,qL=6e5,sT=3e5,RX=18e5,kP=18e5,NX=3e4,OYt=1e4,LYt=3e4,YYt=10,HYt=4,UYt=50,jYt=1024*1024,vce=100,tsr=15,n2e=8e3,TP=4e3,r2e=6e3,JYt=16e3,nsr=90,rsr=1e5,CP=25e3,Vet=250*1024*1024,Zet=20,Oet=1e4,Let=5e3,Yet=50,Het=2e3,Uet=8,jet=1e3,isr=500*1024*1024,Jet=6,Bet=2048,Xet=64,Qet=64,zet=64,qet=1024,$et=128,ssr=0,ow="claude-sonnet-4-6",DV=1,BYt=.5,Ket="haiku",XYt={anthropic:"haiku",ollama:"glm-5.1:cloud",zai:"glm-5.1:cloud",minimax:"glm-5.1:cloud",huggingface:"haiku",openai:"gpt-5.4-mini",gemini:"gemini-3.1-flash-lite",grok:"grok-4.3",deepseek:"deepseek-v4-flash",custom:"haiku"},$L="professional",osr=4,asr="banner",QYt=4,zYt=1e3,ett=16e3,qYt=.1,$Yt=!0,KYt=ett,KL={maxRetries:QYt,baseDelayMs:zYt,maxDelayMs:ett,jitterFactor:qYt,retryAfter:{enabled:$Yt,maxDelayMs:KYt}},ttt=!0,ntt=["claude-sonnet-4-6","claude-sonnet-5","claude-haiku-4-5-20251001"],rtt=300*1e3,itt=!1,stt=!0,csr=8e3,EP={preferredProviders:["anthropic","openai","gemini","grok","deepseek","ollama"],fallback:{enabled:!0,strategy:"cross-provider",maxAttempts:3,includeOriginal:!0,dedupeAttempts:!0},preserveDefaultWithoutRequest:!0},i2e={maxRetries:5,baseDelayMs:1e3,maxDelayMs:3e4,backoffMultiplier:2},RP={anthropic:{model:ow,maxTokens:16384,temperature:DV},ollama:{model:"glm-5.1:cloud",endpoint:"https://ollama.com",maxTokens:16384,temperature:BYt},project:{rootDir:process.cwd(),ignorePatterns:["node_modules/**",".git/**","dist/**","build/**","out/**","coverage/**",".next/**",".nuxt/**",".output/**","*.log",".env*","*.lock","package-lock.json","yarn.lock","pnpm-lock.yaml",".DS_Store","Thumbs.db","*.min.js","*.min.css","*.map",".compass/**"],includePatterns:["**/*"],maxFileSize:jYt,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:UYt,backupBeforeModify:!0,shellCommandTimeout:Ice,allowedShellCommands:["npm","npx","yarn","pnpm","git","node","tsc","eslint","prettier","jest","vitest","mocha","cargo","rustc","go","python","python3","pip","pip3","poetry","make","cmake","gradle","mvn","docker","kubectl","terraform","aws","gcloud","az","cat","ls","pwd","echo","head","tail","grep","find","wc","sort","uniq","diff","tree"],blockedShellCommands:["rm -rf /","rm -rf /*","rm -rf ~","rm -rf ~/*","sudo rm -rf",":(){:|:&};:","mkfs","dd if=/dev/zero","dd if=/dev/random","> /dev/sda","chmod -R 777 /","chown -R","wget | sh","curl | sh","wget | bash","curl | bash"]},ui:{},session:{autoSave:!0,autoSaveInterval:t2e,maxHistoryLength:vce,autoCompactThreshold:QSe,sessionExpiryDays:NYt,unleash:!1},update:{checkOnStartup:!0,checkInterval:osr,showNotifications:!0,notificationStyle:asr,includePrerelease:!1},retry:KL,a2a:{unrestrictedTools:!1,auth:{requireAuth:!0,tokenTtlMs:1e3*60*60*24*365,sessionTokenTtlMs:1e3*60*60*24,devicePairingEnabled:!0,compatibilityMode:!1,allowedOrigins:[]}},cloudAware:{enabled:!0,showWarning:!0,skipPlaceholdersInWalks:!0,allowIndexing:!1,allowProjectSummary:!1,allowBackupInTree:!1,allowArchivalInTree:!1,runtimeStateLocation:bYt,windowsRetryOnCloudLocks:!0,warnOnHydration:!0},agentic:{maxIterations:yce,costWarningThreshold:TYt,costHardCap:CYt,autoCompactAtPercent:EYt,stuckDetectionEnabled:Det,stuckDetectionThreshold:RYt,runtimeEvents:{enabled:!1,outputDir:BSe},loopDetection:KSe,recovery:xD,maxIterationsPerTask:kYt},telemetry:{enabled:!0},automation:{archiveRecall:{mode:"disabled",maxResults:5,maxSnippetChars:600,maxTotalChars:2400,minScore:.6,auditEvents:!0},webhooks:{enabled:!1,endpoints:[],deliveryLogLimit:100,retryBaseDelayMs:1e3,retryMaxDelayMs:3e4},daemon:{enabled:!1,pidFile:".compass/automation/daemon.pid",stateFile:".compass/automation/daemon-state.json",logFile:".compass/automation/daemon.log",healthFile:".compass/automation/daemon-health.json",heartbeatIntervalMs:3e4,staleAfterMs:12e4,shutdownGraceMs:1e4},scheduler:{owner:"interactive",lockTtlMs:12e4,missedRunPolicy:"run_once",maxCatchUpRuns:1}},workflowCapabilities:{checkpoints:{enabled:!1},rollback:{enabled:!1,requireApproval:!0},analytics:{enabled:!1},messaging:{enabled:!1,provider:"slack",events:{workflow:!0,plan:!0,approvals:!0,taskProgress:!1,turnDigest:!1},slack:{timeoutMs:1e4},teams:{timeoutMs:1e4,notifications:{planApprovalDetails:"local-only"}}},remoteSsh:{enabled:!1,requireApproval:!0,targets:{}}},learning:{captureEnabled:!0,autoApplyEnabled:!1,promptInjectionEnabled:!0,skillExposureEnabled:!1,hookExposureEnabled:!1,requireApprovalForSkillExposure:!0,maxPromptItems:8,maxPromptTokens:1200,defaultRetentionDays:90,dryRun:!1}},WV=["anthropic","ollama","zai","minimax","huggingface","openai","gemini","grok","deepseek","custom"],Dp={API_KEY:"ANTHROPIC_API_KEY",COMPASS_API_KEY:"COMPASS_API_KEY",OLLAMA_API_KEY:"OLLAMA_API_KEY",ZAI_API_KEY:"ZAI_API_KEY",MINIMAX_API_KEY:"MINIMAX_API_KEY",HUGGINGFACE_API_KEY:"HF_TOKEN",OPENAI_API_KEY:"OPENAI_API_KEY",GEMINI_API_KEY:"GEMINI_API_KEY",GROK_API_KEY:"GROK_API_KEY",DEEPSEEK_API_KEY:"DEEPSEEK_API_KEY",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE",EXPERIMENTAL_AGENT_TEAMS:"COMPASS_EXPERIMENTAL_AGENT_TEAMS",LEARNING_DISABLED:"COMPASS_LEARNING_DISABLED",LEARNING_DRY_RUN:"COMPASS_LEARNING_DRY_RUN",TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED:"NOVA_TOOL_EXPOSURE_EXPANDED_BUILTINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_ENABLED",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_SHADOW",TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT:"NOVA_TOOL_EXPOSURE_LAZY_MCP_DOMAINS_COHORT_PERCENT"},PX={anthropic:Dp.API_KEY,ollama:Dp.OLLAMA_API_KEY,zai:Dp.ZAI_API_KEY,minimax:Dp.MINIMAX_API_KEY,huggingface:Dp.HUGGINGFACE_API_KEY,openai:Dp.OPENAI_API_KEY,gemini:Dp.GEMINI_API_KEY,grok:Dp.GROK_API_KEY,deepseek:Dp.DEEPSEEK_API_KEY,custom:""},Wp={credentialKind:"openai-oauth",tokenType:"Bearer",provider:"openai",credentialKey:"openaiOAuthCredential",issuer:"https://auth.openai.com",authorizationUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",authorizationPath:"/oauth/authorize",tokenPath:"/oauth/token",clientId:"app_EMoamEEZ73f0CkXaXp7hrann",originator:"codex_cli_rs",betaHeader:"responses=experimental",codexBaseUrl:"https://chatgpt.com/backend-api",callbackPath:"/auth/callback",redirectUri:"http://localhost:1455/auth/callback",callbackPorts:[1455],scope:"openid profile email offline_access",scopes:["openid","profile","email","offline_access"],refreshSkewMs:300*1e3,defaultTimeoutMs:300*1e3,defaultAccessTokenTtlMs:3600*1e3,authPrecedence:["openai-oauth","compass-hydrated"]},d_={commandName:"usage",reportCommand:"openai usage",usagePageUrl:"https://chatgpt.com/codex/settings/usage",canonicalLimitId:"codex",defaultPathStyle:"chatgpt-api",endpointPaths:{"codex-api":"/api/codex/usage","chatgpt-api":"/wham/usage"},bucketOrder:["rolling_5h","weekly","monthly"],bucketLabels:{rolling_5h:"5h limit",weekly:"Weekly limit",monthly:"Monthly limit"},remoteUsageSources:["openai-oauth"],remoteUsageModes:["oauth"],states:["available","stale","unavailable","missing"],messages:{refreshRequested:"refresh requested; run `nova openai usage` again shortly.",stalePending:"limits may be stale - run `nova openai usage` again shortly.",staleIdle:"limits may be stale - retry after your next OpenAI-backed turn.",unavailable:"not available for this account"}},eY="1.1.37",lsr="Compass CLI",usr="Compass AI's flagship CLI agent",dsr="",psr="1.0.0",fsr={".ts":"typescript",".tsx":"typescript",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".rb":"ruby",".go":"go",".rs":"rust",".java":"java",".kt":"kotlin",".scala":"scala",".cs":"csharp",".fs":"fsharp",".cpp":"cpp",".cc":"cpp",".cxx":"cpp",".c":"c",".h":"c",".hpp":"cpp",".swift":"swift",".php":"php",".pl":"perl",".pm":"perl",".sh":"bash",".bash":"bash",".zsh":"zsh",".fish":"fish",".ps1":"powershell",".sql":"sql",".r":"r",".R":"r",".lua":"lua",".vim":"vim",".el":"elisp",".clj":"clojure",".cljs":"clojure",".ex":"elixir",".exs":"elixir",".erl":"erlang",".hrl":"erlang",".hs":"haskell",".ml":"ocaml",".mli":"ocaml",".nim":"nim",".zig":"zig",".v":"v",".d":"d",".dart":"dart",".groovy":"groovy",".gradle":"groovy",".json":"json",".yaml":"yaml",".yml":"yaml",".toml":"toml",".xml":"xml",".html":"html",".htm":"html",".css":"css",".scss":"scss",".sass":"sass",".less":"less",".md":"markdown",".mdx":"markdown",".rst":"restructuredtext",".tex":"latex",".dockerfile":"dockerfile",".tf":"terraform",".hcl":"hcl",".proto":"protobuf",".graphql":"graphql",".gql":"graphql",".vue":"vue",".svelte":"svelte",".astro":"astro"},ott=["package-lock.json","yarn.lock","pnpm-lock.yaml","composer.lock","Gemfile.lock","poetry.lock","Cargo.lock","go.sum","*.map","*.js.map","*.css.map","*.min.js","*.min.css","*.bundle.js","*.chunk.js","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],eHt=["*.sql","*.csv","*.tsv","*.parquet"],tHt=50,att=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"],msr=[".png",".jpg",".jpeg",".gif",".bmp",".ico",".webp",".svg",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".zip",".tar",".gz",".rar",".7z",".exe",".dll",".so",".dylib",".bin",".dat",".db",".sqlite",".sqlite3",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".wav",".avi",".mov",".mkv",".webm",".flv",".class",".jar",".war",".ear",".pyc",".pyo",".o",".obj",".a",".lib"]});function wce(n){return typeof n=="string"&&nHt.includes(n)}function rHt(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.id=="string"&&e.id.length>0&&typeof e.name=="string"&&e.name.length>0&&typeof e.url=="string"&&e.url.length>0&&wce(e.schemaType)&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string"}function utt(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.version=="string"&&Array.isArray(e.models)&&e.models.every(rHt)}var nHt,ctt,ltt,hsr,dtt=ze(()=>{"use strict";nHt=["anthropic","openai-chat","openai-responses"],ctt="1.0.0",ltt=/^[a-z0-9][a-z0-9\-_.:/]{0,62}[a-z0-9]$/,hsr="Custom Models"});function xce(n){return n===429||n===503||n===529}var s2e=ze(()=>{"use strict"});var aw,Ace,Sce=ze(()=>{"use strict";aw=1,Ace=["direct_provider","direct_openai_codex","compass_provider_proxy","compass_openai_code_responses"]});var tY,iHt,o2e=ze(()=>{"use strict";WKe();ESe();ULt();RSe();ZKe();Bae();uX();jKe();BKe();JL();fX();rYt();zae();iYt();$Ke();sYt();eet();tet();FSe();oYt();$ae();ece();sw();ID();mYt();met();get();ice();oce();yet();cce();_Yt();Ya();dtt();s2e();Sce();tY="BASIC",iHt=["BASIC","PRO","MAX","ENTERPRISE","UNLIMITED"]});import NP from"crypto";function oHt(n,e){return NP.pbkdf2Sync(n,e,_sr,gsr,ftt)}function mtt(n,e){let r=NP.randomBytes(VV),s=NP.randomBytes(GX),o=oHt(e,r),l=NP.createCipheriv(sHt,o,s),d=l.update(n,"utf8","hex");d+=l.final("hex");let h=l.getAuthTag();return Buffer.concat([r,s,h,Buffer.from(d,"hex")]).toString("base64")}function htt(n,e){let r=Buffer.from(n,"base64"),s=VV+GX+ptt+1;if(r.length<s)throw new Error("Invalid encrypted data: too short");let o=r.subarray(0,VV),l=r.subarray(VV,VV+GX),d=r.subarray(VV+GX,VV+GX+ptt),h=r.subarray(VV+GX+ptt),y=oHt(e,o),v=NP.createDecipheriv(sHt,y,l);v.setAuthTag(d);let x=v.update(h.toString("hex"),"hex","utf8");return x+=v.final("utf8"),x}function ysr(n=32){return NP.randomBytes(n).toString("hex")}function gtt(n){return NP.createHash(ftt).update(n).digest("hex")}function bsr(n,e){return NP.createHmac(ftt,e).update(n).digest("hex")}function Isr(n,e){return n.length!==e.length?(NP.timingSafeEqual(Buffer.from(n),Buffer.from(n)),!1):NP.timingSafeEqual(Buffer.from(n),Buffer.from(e))}var sHt,GX,VV,ptt,gsr,_sr,ftt,__i,a2e=ze(()=>{"use strict";sHt="aes-256-gcm",GX=16,VV=32,ptt=16,gsr=32,_sr=1e5,ftt="sha256";__i=Buffer.from("b-f2T&>)XPx2vI/I9N7CfYH@Dvdb<F","utf-8")});var xb=yt(_tt=>{"use strict";_tt.fromCallback=function(n){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")n.apply(this,e);else return new Promise((r,s)=>{e.push((o,l)=>o!=null?s(o):r(l)),n.apply(this,e)})},"name",{value:n.name})};_tt.fromPromise=function(n){return Object.defineProperty(function(...e){let r=e[e.length-1];if(typeof r!="function")return n.apply(this,e);e.pop(),n.apply(this,e).then(s=>r(null,s),r)},"name",{value:n.name})}});var cHt=yt((I_i,aHt)=>{var ZV=go("constants"),vsr=process.cwd,c2e=null,wsr=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return c2e||(c2e=vsr.call(process)),c2e};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ytt=process.chdir,process.chdir=function(n){c2e=null,ytt.call(process,n)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ytt));var ytt;aHt.exports=xsr;function xsr(n){ZV.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(n),n.lutimes||r(n),n.chown=l(n.chown),n.fchown=l(n.fchown),n.lchown=l(n.lchown),n.chmod=s(n.chmod),n.fchmod=s(n.fchmod),n.lchmod=s(n.lchmod),n.chownSync=d(n.chownSync),n.fchownSync=d(n.fchownSync),n.lchownSync=d(n.lchownSync),n.chmodSync=o(n.chmodSync),n.fchmodSync=o(n.fchmodSync),n.lchmodSync=o(n.lchmodSync),n.stat=h(n.stat),n.fstat=h(n.fstat),n.lstat=h(n.lstat),n.statSync=y(n.statSync),n.fstatSync=y(n.fstatSync),n.lstatSync=y(n.lstatSync),n.chmod&&!n.lchmod&&(n.lchmod=function(x,C,R){R&&process.nextTick(R)},n.lchmodSync=function(){}),n.chown&&!n.lchown&&(n.lchown=function(x,C,R,W){W&&process.nextTick(W)},n.lchownSync=function(){}),wsr==="win32"&&(n.rename=typeof n.rename!="function"?n.rename:(function(x){function C(R,W,O){var U=Date.now(),ce=0;x(R,W,function be(Ae){if(Ae&&(Ae.code==="EACCES"||Ae.code==="EPERM"||Ae.code==="EBUSY")&&Date.now()-U<6e4){setTimeout(function(){n.stat(W,function(Oe,Pe){Oe&&Oe.code==="ENOENT"?x(R,W,be):O(Ae)})},ce),ce<100&&(ce+=10);return}O&&O(Ae)})}return Object.setPrototypeOf&&Object.setPrototypeOf(C,x),C})(n.rename)),n.read=typeof n.read!="function"?n.read:(function(x){function C(R,W,O,U,ce,be){var Ae;if(be&&typeof be=="function"){var Oe=0;Ae=function(Pe,He,rt){if(Pe&&Pe.code==="EAGAIN"&&Oe<10)return Oe++,x.call(n,R,W,O,U,ce,Ae);be.apply(this,arguments)}}return x.call(n,R,W,O,U,ce,Ae)}return Object.setPrototypeOf&&Object.setPrototypeOf(C,x),C})(n.read),n.readSync=typeof n.readSync!="function"?n.readSync:(function(x){return function(C,R,W,O,U){for(var ce=0;;)try{return x.call(n,C,R,W,O,U)}catch(be){if(be.code==="EAGAIN"&&ce<10){ce++;continue}throw be}}})(n.readSync);function e(x){x.lchmod=function(C,R,W){x.open(C,ZV.O_WRONLY|ZV.O_SYMLINK,R,function(O,U){if(O){W&&W(O);return}x.fchmod(U,R,function(ce){x.close(U,function(be){W&&W(ce||be)})})})},x.lchmodSync=function(C,R){var W=x.openSync(C,ZV.O_WRONLY|ZV.O_SYMLINK,R),O=!0,U;try{U=x.fchmodSync(W,R),O=!1}finally{if(O)try{x.closeSync(W)}catch{}else x.closeSync(W)}return U}}function r(x){ZV.hasOwnProperty("O_SYMLINK")&&x.futimes?(x.lutimes=function(C,R,W,O){x.open(C,ZV.O_SYMLINK,function(U,ce){if(U){O&&O(U);return}x.futimes(ce,R,W,function(be){x.close(ce,function(Ae){O&&O(be||Ae)})})})},x.lutimesSync=function(C,R,W){var O=x.openSync(C,ZV.O_SYMLINK),U,ce=!0;try{U=x.futimesSync(O,R,W),ce=!1}finally{if(ce)try{x.closeSync(O)}catch{}else x.closeSync(O)}return U}):x.futimes&&(x.lutimes=function(C,R,W,O){O&&process.nextTick(O)},x.lutimesSync=function(){})}function s(x){return x&&function(C,R,W){return x.call(n,C,R,function(O){v(O)&&(O=null),W&&W.apply(this,arguments)})}}function o(x){return x&&function(C,R){try{return x.call(n,C,R)}catch(W){if(!v(W))throw W}}}function l(x){return x&&function(C,R,W,O){return x.call(n,C,R,W,function(U){v(U)&&(U=null),O&&O.apply(this,arguments)})}}function d(x){return x&&function(C,R,W){try{return x.call(n,C,R,W)}catch(O){if(!v(O))throw O}}}function h(x){return x&&function(C,R,W){typeof R=="function"&&(W=R,R=null);function O(U,ce){ce&&(ce.uid<0&&(ce.uid+=4294967296),ce.gid<0&&(ce.gid+=4294967296)),W&&W.apply(this,arguments)}return R?x.call(n,C,R,O):x.call(n,C,O)}}function y(x){return x&&function(C,R){var W=R?x.call(n,C,R):x.call(n,C);return W&&(W.uid<0&&(W.uid+=4294967296),W.gid<0&&(W.gid+=4294967296)),W}}function v(x){if(!x||x.code==="ENOSYS")return!0;var C=!process.getuid||process.getuid()!==0;return!!(C&&(x.code==="EINVAL"||x.code==="EPERM"))}}});var dHt=yt((v_i,uHt)=>{var lHt=go("stream").Stream;uHt.exports=Asr;function Asr(n){return{ReadStream:e,WriteStream:r};function e(s,o){if(!(this instanceof e))return new e(s,o);lHt.call(this);var l=this;this.path=s,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,o=o||{};for(var d=Object.keys(o),h=0,y=d.length;h<y;h++){var v=d[h];this[v]=o[v]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){l._read()});return}n.open(this.path,this.flags,this.mode,function(x,C){if(x){l.emit("error",x),l.readable=!1;return}l.fd=C,l.emit("open",C),l._read()})}function r(s,o){if(!(this instanceof r))return new r(s,o);lHt.call(this),this.path=s,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,o=o||{};for(var l=Object.keys(o),d=0,h=l.length;d<h;d++){var y=l[d];this[y]=o[y]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=n.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var fHt=yt((w_i,pHt)=>{"use strict";pHt.exports=ksr;var Ssr=Object.getPrototypeOf||function(n){return n.__proto__};function ksr(n){if(n===null||typeof n!="object")return n;if(n instanceof Object)var e={__proto__:Ssr(n)};else var e=Object.create(null);return Object.getOwnPropertyNames(n).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}),e}});var MX=yt((x_i,vtt)=>{var xg=go("fs"),Tsr=cHt(),Csr=dHt(),Esr=fHt(),l2e=go("util"),SI,d2e;typeof Symbol=="function"&&typeof Symbol.for=="function"?(SI=Symbol.for("graceful-fs.queue"),d2e=Symbol.for("graceful-fs.previous")):(SI="___graceful-fs.queue",d2e="___graceful-fs.previous");function Rsr(){}function gHt(n,e){Object.defineProperty(n,SI,{get:function(){return e}})}var nY=Rsr;l2e.debuglog?nY=l2e.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(nY=function(){var n=l2e.format.apply(l2e,arguments);n="GFS4: "+n.split(/\n/).join(`
|
|
10
10
|
GFS4: `),console.error(n)});xg[SI]||(mHt=global[SI]||[],gHt(xg,mHt),xg.close=(function(n){function e(r,s){return n.call(xg,r,function(o){o||hHt(),typeof s=="function"&&s.apply(this,arguments)})}return Object.defineProperty(e,d2e,{value:n}),e})(xg.close),xg.closeSync=(function(n){function e(r){n.apply(xg,arguments),hHt()}return Object.defineProperty(e,d2e,{value:n}),e})(xg.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){nY(xg[SI]),go("assert").equal(xg[SI].length,0)}));var mHt;global[SI]||gHt(global,xg[SI]);vtt.exports=btt(Esr(xg));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!xg.__patched&&(vtt.exports=btt(xg),xg.__patched=!0);function btt(n){Tsr(n),n.gracefulify=btt,n.createReadStream=He,n.createWriteStream=rt;var e=n.readFile;n.readFile=r;function r(Lt,en,qt){return typeof en=="function"&&(qt=en,en=null),tr(Lt,en,qt);function tr(Sr,Kt,Gr,Fr){return e(Sr,Kt,function(Zt){Zt&&(Zt.code==="EMFILE"||Zt.code==="ENFILE")?FX([tr,[Sr,Kt,Gr],Zt,Fr||Date.now(),Date.now()]):typeof Gr=="function"&&Gr.apply(this,arguments)})}}var s=n.writeFile;n.writeFile=o;function o(Lt,en,qt,tr){return typeof qt=="function"&&(tr=qt,qt=null),Sr(Lt,en,qt,tr);function Sr(Kt,Gr,Fr,Zt,Gi){return s(Kt,Gr,Fr,function(Si){Si&&(Si.code==="EMFILE"||Si.code==="ENFILE")?FX([Sr,[Kt,Gr,Fr,Zt],Si,Gi||Date.now(),Date.now()]):typeof Zt=="function"&&Zt.apply(this,arguments)})}}var l=n.appendFile;l&&(n.appendFile=d);function d(Lt,en,qt,tr){return typeof qt=="function"&&(tr=qt,qt=null),Sr(Lt,en,qt,tr);function Sr(Kt,Gr,Fr,Zt,Gi){return l(Kt,Gr,Fr,function(Si){Si&&(Si.code==="EMFILE"||Si.code==="ENFILE")?FX([Sr,[Kt,Gr,Fr,Zt],Si,Gi||Date.now(),Date.now()]):typeof Zt=="function"&&Zt.apply(this,arguments)})}}var h=n.copyFile;h&&(n.copyFile=y);function y(Lt,en,qt,tr){return typeof qt=="function"&&(tr=qt,qt=0),Sr(Lt,en,qt,tr);function Sr(Kt,Gr,Fr,Zt,Gi){return h(Kt,Gr,Fr,function(Si){Si&&(Si.code==="EMFILE"||Si.code==="ENFILE")?FX([Sr,[Kt,Gr,Fr,Zt],Si,Gi||Date.now(),Date.now()]):typeof Zt=="function"&&Zt.apply(this,arguments)})}}var v=n.readdir;n.readdir=C;var x=/^v[0-5]\./;function C(Lt,en,qt){typeof en=="function"&&(qt=en,en=null);var tr=x.test(process.version)?function(Gr,Fr,Zt,Gi){return v(Gr,Sr(Gr,Fr,Zt,Gi))}:function(Gr,Fr,Zt,Gi){return v(Gr,Fr,Sr(Gr,Fr,Zt,Gi))};return tr(Lt,en,qt);function Sr(Kt,Gr,Fr,Zt){return function(Gi,Si){Gi&&(Gi.code==="EMFILE"||Gi.code==="ENFILE")?FX([tr,[Kt,Gr,Fr],Gi,Zt||Date.now(),Date.now()]):(Si&&Si.sort&&Si.sort(),typeof Fr=="function"&&Fr.call(this,Gi,Si))}}}if(process.version.substr(0,4)==="v0.8"){var R=Csr(n);be=R.ReadStream,Oe=R.WriteStream}var W=n.ReadStream;W&&(be.prototype=Object.create(W.prototype),be.prototype.open=Ae);var O=n.WriteStream;O&&(Oe.prototype=Object.create(O.prototype),Oe.prototype.open=Pe),Object.defineProperty(n,"ReadStream",{get:function(){return be},set:function(Lt){be=Lt},enumerable:!0,configurable:!0}),Object.defineProperty(n,"WriteStream",{get:function(){return Oe},set:function(Lt){Oe=Lt},enumerable:!0,configurable:!0});var U=be;Object.defineProperty(n,"FileReadStream",{get:function(){return U},set:function(Lt){U=Lt},enumerable:!0,configurable:!0});var ce=Oe;Object.defineProperty(n,"FileWriteStream",{get:function(){return ce},set:function(Lt){ce=Lt},enumerable:!0,configurable:!0});function be(Lt,en){return this instanceof be?(W.apply(this,arguments),this):be.apply(Object.create(be.prototype),arguments)}function Ae(){var Lt=this;Nt(Lt.path,Lt.flags,Lt.mode,function(en,qt){en?(Lt.autoClose&&Lt.destroy(),Lt.emit("error",en)):(Lt.fd=qt,Lt.emit("open",qt),Lt.read())})}function Oe(Lt,en){return this instanceof Oe?(O.apply(this,arguments),this):Oe.apply(Object.create(Oe.prototype),arguments)}function Pe(){var Lt=this;Nt(Lt.path,Lt.flags,Lt.mode,function(en,qt){en?(Lt.destroy(),Lt.emit("error",en)):(Lt.fd=qt,Lt.emit("open",qt))})}function He(Lt,en){return new n.ReadStream(Lt,en)}function rt(Lt,en){return new n.WriteStream(Lt,en)}var Je=n.open;n.open=Nt;function Nt(Lt,en,qt,tr){return typeof qt=="function"&&(tr=qt,qt=null),Sr(Lt,en,qt,tr);function Sr(Kt,Gr,Fr,Zt,Gi){return Je(Kt,Gr,Fr,function(Si,Ls){Si&&(Si.code==="EMFILE"||Si.code==="ENFILE")?FX([Sr,[Kt,Gr,Fr,Zt],Si,Gi||Date.now(),Date.now()]):typeof Zt=="function"&&Zt.apply(this,arguments)})}}return n}function FX(n){nY("ENQUEUE",n[0].name,n[1]),xg[SI].push(n),Itt()}var u2e;function hHt(){for(var n=Date.now(),e=0;e<xg[SI].length;++e)xg[SI][e].length>2&&(xg[SI][e][3]=n,xg[SI][e][4]=n);Itt()}function Itt(){if(clearTimeout(u2e),u2e=void 0,xg[SI].length!==0){var n=xg[SI].shift(),e=n[0],r=n[1],s=n[2],o=n[3],l=n[4];if(o===void 0)nY("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-o>=6e4){nY("TIMEOUT",e.name,r);var d=r.pop();typeof d=="function"&&d.call(null,s)}else{var h=Date.now()-l,y=Math.max(l-o,1),v=Math.min(y*1.2,100);h>=v?(nY("RETRY",e.name,r),e.apply(null,r.concat([o]))):xg[SI].push(n)}u2e===void 0&&(u2e=setTimeout(Itt,0))}}});var lw=yt(AD=>{"use strict";var _Ht=xb().fromCallback,cw=MX(),Nsr=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter(n=>typeof cw[n]=="function");Object.assign(AD,cw);Nsr.forEach(n=>{AD[n]=_Ht(cw[n])});AD.exists=function(n,e){return typeof e=="function"?cw.exists(n,e):new Promise(r=>cw.exists(n,r))};AD.read=function(n,e,r,s,o,l){return typeof l=="function"?cw.read(n,e,r,s,o,l):new Promise((d,h)=>{cw.read(n,e,r,s,o,(y,v,x)=>{if(y)return h(y);d({bytesRead:v,buffer:x})})})};AD.write=function(n,e,...r){return typeof r[r.length-1]=="function"?cw.write(n,e,...r):new Promise((s,o)=>{cw.write(n,e,...r,(l,d,h)=>{if(l)return o(l);s({bytesWritten:d,buffer:h})})})};AD.readv=function(n,e,...r){return typeof r[r.length-1]=="function"?cw.readv(n,e,...r):new Promise((s,o)=>{cw.readv(n,e,...r,(l,d,h)=>{if(l)return o(l);s({bytesRead:d,buffers:h})})})};AD.writev=function(n,e,...r){return typeof r[r.length-1]=="function"?cw.writev(n,e,...r):new Promise((s,o)=>{cw.writev(n,e,...r,(l,d,h)=>{if(l)return o(l);s({bytesWritten:d,buffers:h})})})};typeof cw.realpath.native=="function"?AD.realpath.native=_Ht(cw.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var bHt=yt((S_i,yHt)=>{"use strict";var Psr=go("path");yHt.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Psr.parse(e).root,""))){let s=new Error(`Path contains invalid characters: ${e}`);throw s.code="EINVAL",s}}});var xHt=yt((k_i,wtt)=>{"use strict";var IHt=lw(),{checkPath:vHt}=bHt(),wHt=n=>{let e={mode:511};return typeof n=="number"?n:{...e,...n}.mode};wtt.exports.makeDir=async(n,e)=>(vHt(n),IHt.mkdir(n,{mode:wHt(e),recursive:!0}));wtt.exports.makeDirSync=(n,e)=>(vHt(n),IHt.mkdirSync(n,{mode:wHt(e),recursive:!0}))});var CE=yt((T_i,AHt)=>{"use strict";var Gsr=xb().fromPromise,{makeDir:Fsr,makeDirSync:xtt}=xHt(),Att=Gsr(Fsr);AHt.exports={mkdirs:Att,mkdirsSync:xtt,mkdirp:Att,mkdirpSync:xtt,ensureDir:Att,ensureDirSync:xtt}});var OV=yt((C_i,kHt)=>{"use strict";var Msr=xb().fromPromise,SHt=lw();function Dsr(n){return SHt.access(n).then(()=>!0).catch(()=>!1)}kHt.exports={pathExists:Msr(Dsr),pathExistsSync:SHt.existsSync}});var Stt=yt((E_i,THt)=>{"use strict";var DX=lw(),Wsr=xb().fromPromise;async function Vsr(n,e,r){let s=await DX.open(n,"r+"),o=null;try{await DX.futimes(s,e,r)}finally{try{await DX.close(s)}catch(l){o=l}}if(o)throw o}function Zsr(n,e,r){let s=DX.openSync(n,"r+");return DX.futimesSync(s,e,r),DX.closeSync(s)}THt.exports={utimesMillis:Wsr(Vsr),utimesMillisSync:Zsr}});var rY=yt((R_i,NHt)=>{"use strict";var WX=lw(),Ab=go("path"),CHt=xb().fromPromise;function Osr(n,e,r){let s=r.dereference?o=>WX.stat(o,{bigint:!0}):o=>WX.lstat(o,{bigint:!0});return Promise.all([s(n),s(e).catch(o=>{if(o.code==="ENOENT")return null;throw o})]).then(([o,l])=>({srcStat:o,destStat:l}))}function Lsr(n,e,r){let s,o=r.dereference?d=>WX.statSync(d,{bigint:!0}):d=>WX.lstatSync(d,{bigint:!0}),l=o(n);try{s=o(e)}catch(d){if(d.code==="ENOENT")return{srcStat:l,destStat:null};throw d}return{srcStat:l,destStat:s}}async function Ysr(n,e,r,s){let{srcStat:o,destStat:l}=await Osr(n,e,s);if(l){if(kce(o,l)){let d=Ab.basename(n),h=Ab.basename(e);if(r==="move"&&d!==h&&d.toLowerCase()===h.toLowerCase())return{srcStat:o,destStat:l,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(o.isDirectory()&&!l.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`);if(!o.isDirectory()&&l.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`)}if(o.isDirectory()&&ktt(n,e))throw new Error(p2e(n,e,r));return{srcStat:o,destStat:l}}function Hsr(n,e,r,s){let{srcStat:o,destStat:l}=Lsr(n,e,s);if(l){if(kce(o,l)){let d=Ab.basename(n),h=Ab.basename(e);if(r==="move"&&d!==h&&d.toLowerCase()===h.toLowerCase())return{srcStat:o,destStat:l,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(o.isDirectory()&&!l.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${n}'.`);if(!o.isDirectory()&&l.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${n}'.`)}if(o.isDirectory()&&ktt(n,e))throw new Error(p2e(n,e,r));return{srcStat:o,destStat:l}}async function EHt(n,e,r,s){let o=Ab.resolve(Ab.dirname(n)),l=Ab.resolve(Ab.dirname(r));if(l===o||l===Ab.parse(l).root)return;let d;try{d=await WX.stat(l,{bigint:!0})}catch(h){if(h.code==="ENOENT")return;throw h}if(kce(e,d))throw new Error(p2e(n,r,s));return EHt(n,e,l,s)}function RHt(n,e,r,s){let o=Ab.resolve(Ab.dirname(n)),l=Ab.resolve(Ab.dirname(r));if(l===o||l===Ab.parse(l).root)return;let d;try{d=WX.statSync(l,{bigint:!0})}catch(h){if(h.code==="ENOENT")return;throw h}if(kce(e,d))throw new Error(p2e(n,r,s));return RHt(n,e,l,s)}function kce(n,e){return e.ino!==void 0&&e.dev!==void 0&&e.ino===n.ino&&e.dev===n.dev}function ktt(n,e){let r=Ab.resolve(n).split(Ab.sep).filter(o=>o),s=Ab.resolve(e).split(Ab.sep).filter(o=>o);return r.every((o,l)=>s[l]===o)}function p2e(n,e,r){return`Cannot ${r} '${n}' to a subdirectory of itself, '${e}'.`}NHt.exports={checkPaths:CHt(Ysr),checkPathsSync:Hsr,checkParentPaths:CHt(EHt),checkParentPathsSync:RHt,isSrcSubdir:ktt,areIdentical:kce}});var GHt=yt((N_i,PHt)=>{"use strict";async function Usr(n,e){let r=[];for await(let s of n)r.push(e(s).then(()=>null,o=>o??new Error("unknown error")));await Promise.all(r.map(s=>s.then(o=>{if(o!==null)throw o})))}PHt.exports={asyncIteratorConcurrentProcess:Usr}});var VHt=yt((P_i,WHt)=>{"use strict";var Ov=lw(),Tce=go("path"),{mkdirs:jsr}=CE(),{pathExists:Jsr}=OV(),{utimesMillis:Bsr}=Stt(),Cce=rY(),{asyncIteratorConcurrentProcess:Xsr}=GHt();async function Qsr(n,e,r={}){typeof r=="function"&&(r={filter:r}),r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
|
|
11
11
|
|
|
12
12
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:s,destStat:o}=await Cce.checkPaths(n,e,"copy",r);if(await Cce.checkParentPaths(n,s,e,"copy"),!await MHt(n,e,r))return;let d=Tce.dirname(e);await Jsr(d)||await jsr(d),await DHt(o,n,e,r)}async function MHt(n,e,r){return r.filter?r.filter(n,e):!0}async function DHt(n,e,r,s){let l=await(s.dereference?Ov.stat:Ov.lstat)(e);if(l.isDirectory())return Ksr(l,n,e,r,s);if(l.isFile()||l.isCharacterDevice()||l.isBlockDevice())return zsr(l,n,e,r,s);if(l.isSymbolicLink())return eor(n,e,r,s);throw l.isSocket()?new Error(`Cannot copy a socket file: ${e}`):l.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}async function zsr(n,e,r,s,o){if(!e)return FHt(n,r,s,o);if(o.overwrite)return await Ov.unlink(s),FHt(n,r,s,o);if(o.errorOnExist)throw new Error(`'${s}' already exists`)}async function FHt(n,e,r,s){if(await Ov.copyFile(e,r),s.preserveTimestamps){qsr(n.mode)&&await $sr(r,n.mode);let o=await Ov.stat(e);await Bsr(r,o.atime,o.mtime)}return Ov.chmod(r,n.mode)}function qsr(n){return(n&128)===0}function $sr(n,e){return Ov.chmod(n,e|128)}async function Ksr(n,e,r,s,o){e||await Ov.mkdir(s),await Xsr(await Ov.opendir(r),async l=>{let d=Tce.join(r,l.name),h=Tce.join(s,l.name);if(await MHt(d,h,o)){let{destStat:v}=await Cce.checkPaths(d,h,"copy",o);await DHt(v,d,h,o)}}),e||await Ov.chmod(s,n.mode)}async function eor(n,e,r,s){let o=await Ov.readlink(e);if(s.dereference&&(o=Tce.resolve(process.cwd(),o)),!n)return Ov.symlink(o,r);let l=null;try{l=await Ov.readlink(r)}catch(d){if(d.code==="EINVAL"||d.code==="UNKNOWN")return Ov.symlink(o,r);throw d}if(s.dereference&&(l=Tce.resolve(process.cwd(),l)),o!==l){if(Cce.isSrcSubdir(o,l))throw new Error(`Cannot copy '${o}' to a subdirectory of itself, '${l}'.`);if(Cce.isSrcSubdir(l,o))throw new Error(`Cannot overwrite '${l}' with '${o}'.`)}return await Ov.unlink(r),Ov.symlink(o,r)}WHt.exports=Qsr});var HHt=yt((G_i,YHt)=>{"use strict";var uw=MX(),Ece=go("path"),tor=CE().mkdirsSync,nor=Stt().utimesMillisSync,Rce=rY();function ror(n,e,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
|
|
@@ -4668,7 +4668,7 @@ ${e}`),s.push({role:"user",content:y}),s}selectRecentHistory(e){let r=[],s=this.
|
|
|
4668
4668
|
`)}DS();Xnt();var jVe=U8t("session.open-shortcuts"),Nwt=[{name:"Sessions",description:"Commands for managing your conversation session",commands:[{name:"/clear",description:"Reset session to clean state",usage:"/clear",aliases:["/reset","/restart"]},{name:"/compact",description:"Summarize conversation to reduce token usage",usage:"/compact"},{name:"/wrap",description:"Consolidate, prune, and verify memory files",usage:"/wrap",examples:["/wrap","/wrap-memory"],aliases:["/wrap-memory","/memory-wrap"]},{name:"/loop",description:"Set a completion condition and continue until it is met",usage:"/loop [condition|clear]",examples:["/loop implement the fix and verify tests pass","/loop","/loop clear"],aliases:["/goal","/until"]},{name:"/export",description:"Export conversation to file",usage:"/export [format]",examples:["/export md","/export json","/export html"],hidden:!0},{name:"/exit",description:"Exit Compass",usage:"/exit",aliases:["/quit","/q"]}]},{name:"Model & Tokens",description:"Commands for model selection and token tracking",commands:[{name:"/model",description:"Switch between models",usage:"/model [name]",examples:["/model","/model sonnet","/model opus","/model haiku"]},{name:"/tokens",description:"Display token usage statistics",usage:"/tokens"},{name:"/context",description:"Show context window usage",usage:"/context"}]},{name:"Approval & Safety",description:"Commands for approval mode management",commands:[{name:"/approve",description:"Toggle approval mode",usage:"/approve [mode]",examples:["/approve","/approve auto","/approve manual"]}]},{name:"Help & Config",description:"Commands for help and configuration",commands:[{name:"/help",description:"Show this help menu",usage:"/help [topic]",examples:["/help","/help model","/help files"]},{name:jVe.command,description:jVe.description,usage:jVe.command,examples:[jVe.command],aliases:["/keys"]},{name:"/config",description:"Display current configuration",usage:"/config"}]},{name:"Updates",description:"Commands for checking and installing updates",commands:[{name:"/update",description:"Check for and install updates",usage:"/update [check|install|history|version]",examples:["/update","/update check","/update install","/update history"],aliases:["/upgrade","/up"]}]},{name:"Cleanup",description:"Commands for cleaning up stored data",commands:[{name:"/purge",description:"Delete logs, backups, chats, and plans from .compass",usage:"/purge [--force|--help]",examples:["/purge","/purge --force"],aliases:["/cleanup"]}]}],Vhi=[{name:"Setup & Configuration",description:"Commands for initial setup and configuration",commands:[{name:"setup",description:"Run first-time setup wizard",usage:"nova setup"},{name:"doctor",description:"Run diagnostic health checks (auth, models, MCP, hooks, runtime) with --repair and --json modes",usage:"nova doctor [--verbose] [--json] [--repair] [--yes] [--group auth,models]",examples:["nova doctor","nova doctor --json","nova doctor --repair --yes","nova setup --repair"]},{name:"init",description:"Initialize Nova in current project",usage:"nova init"},{name:"config",description:"View or modify configuration",usage:"nova config [key] [value]",examples:["nova config","nova config model sonnet"]}]},{name:"Data Management",description:"Commands for managing stored data",commands:[{name:"tokens",description:"View token usage history",usage:"nova tokens [--export]"},{name:"consent",description:"Manage consent settings",usage:"nova consent [status|review|revoke]"},{name:"data",description:"Manage stored data",usage:"nova data [list|export|delete]"},{name:"cache",description:"Clear cached data",usage:"nova cache clear"},{name:"reset",description:"Reset to factory settings",usage:"nova reset [--force]"}]},{name:"Updates",description:"Commands for checking and installing updates",commands:[{name:"update",description:"Check for and install updates",usage:"nova update [check|install|history]",examples:["nova update","nova update check","nova update install","nova update history"]}]}];function UEn(n){let e=n.commands.filter(s=>!s.hidden);if(e.length===0)return"";let r=["",kr.bold.cyan(`\u2501\u2501\u2501 ${n.name} \u2501\u2501\u2501`),kr.gray(n.description),""];for(let s of e){if(r.push(` ${kr.yellow(s.name)}`),r.push(` ${kr.white(s.description)}`),s.usage&&r.push(` ${kr.gray("Usage:")} ${kr.dim(s.usage)}`),s.aliases&&s.aliases.length>0&&r.push(` ${kr.gray("Aliases:")} ${kr.dim(s.aliases.join(", "))}`),s.examples&&s.examples.length>0){r.push(` ${kr.gray("Examples:")}`);for(let o of s.examples)r.push(` ${kr.dim(o)}`)}r.push("")}return r.join(`
|
|
4669
4669
|
`)}function Zhi(){try{let{getCustomCommands:n}=(HEn(),jrr(YEn)),e=n();return!e||e.length===0?null:{name:"Custom Commands",description:"User-defined commands from .compass/commands/ or ~/.compass/commands/",commands:e.map(s=>{let o=s.namespace?`${s.scope}:${s.namespace}`:s.scope;return{name:`/${s.name}`,description:`${s.description} (${o})`,usage:s.frontmatter["argument-hint"]?`/${s.name} ${s.frontmatter["argument-hint"]}`:`/${s.name}`}})}}catch{return null}}function Ohi(){let n=[...Nwt],e=Zhi();e&&n.push(e);let r=n.map(UEn);return["",kr.bold.white("Nova CLI - Interactive Commands"),kr.gray("Use these commands during an interactive session"),...r,kr.dim("\u2500".repeat(50)),kr.gray("Tip: Type any natural language request to interact with Nova"),""].join(`
|
|
4670
4670
|
`)}function Lhi(n){let e=n.startsWith("/")?n:`/${n}`,s=Nwt.flatMap(l=>l.commands).find(l=>l.name===e||l.name===n||l.aliases?.includes(n)||l.aliases?.includes(e));if(!s)return null;let o=["",kr.bold.cyan(s.name),kr.white(s.description),""];if(s.usage&&(o.push(kr.gray("Usage:")),o.push(` ${s.usage}`),o.push("")),s.aliases&&s.aliases.length>0&&(o.push(kr.gray("Aliases:")),o.push(` ${s.aliases.join(", ")}`),o.push("")),s.examples&&s.examples.length>0){o.push(kr.gray("Examples:"));for(let l of s.examples)o.push(` ${kr.dim("$")} ${l}`);o.push("")}return o.join(`
|
|
4671
|
-
`)}TW();var tIs="1.1.36",nIs="compass-cli";export{Oir as A2A_TOKENS_FILE_NAME,Jir as ACP_SESSION_MAX_AGE_DAYS,Qir as ACP_SESSION_MAX_AGE_DAYS_ENV,Bir as ACP_SESSION_MAX_AGE_MS,Uir as ACP_SESSION_RETENTION_DEFAULT_LIMIT,Xir as ACP_SESSION_RETENTION_LIMIT_ENV,jir as ACP_SESSION_RETENTION_MAX_LIMIT,Qae as ACTIVE_PLAN_CONFLICT_CODE,EYt as AGENTIC_AUTO_COMPACT_PERCENT,CYt as AGENTIC_COST_HARD_CAP,TYt as AGENTIC_COST_WARNING_THRESHOLD,rce as AGENT_SOURCE_PRIORITY,Vv as AGENT_SPAWN_DELEGATION_POLICY,HL as AGENT_TOOL_CAPABILITY_IDS,lpe as AGENT_TOOL_CAPABILITY_MANIFEST,_ir as ANTHROPIC_STOP_REASONS,usr as APP_DESCRIPTION,lsr as APP_DISPLAY_NAME,nIs as APP_NAME,dsr as APP_TAGLINE,eY as APP_VERSION,VEn as ASCII_BANNER,DKe as AUTOMATION_STATE_VERSION,QSe as AUTO_COMPACT_TRIGGER,t2e as AUTO_SAVE_INTERVAL_MS,Cde as ActionLogger,Elt as ActionStatus,Lm as ActionType,YS as AiCreditAccountingInvariantError,dQ as AiCreditReceiptValidationError,Jz as AnthropicClient,eTe as ApprovalManager,jL as ApprovalMode,V3e as AutomationStateStore,fVe as AutomationWebhookDispatcher,xX as BACKUPS_DIR,bce as BACKUP_RETENTION_DAYS,msr as BINARY_EXTENSIONS,ile as BUILTIN_AGENTS,ZSe as BUILTIN_SPAWNABLE_AGENT_NAMES,Gnt as BUILTIN_SUBAGENT_MODEL_DEFAULTS_BY_PROVIDER,dpe as BUILT_IN_TOOL_CAPABILITY_MANIFEST,vPe as BackupManager,Lir as CACHE_DIR,$et as CACHE_SIZE_ESTIMATE_CIRCULAR_REFERENCE_BYTES,Qet as CACHE_SIZE_ESTIMATE_MAX_ARRAY_ITEMS,zet as CACHE_SIZE_ESTIMATE_MAX_COLLECTION_ENTRIES,Jet as CACHE_SIZE_ESTIMATE_MAX_DEPTH,Bet as CACHE_SIZE_ESTIMATE_MAX_NODES,Xet as CACHE_SIZE_ESTIMATE_MAX_OBJECT_KEYS,qet as CACHE_SIZE_ESTIMATE_TRUNCATED_NODE_BYTES,qq as CACHE_TTL,sle as CATEGORY_INFO,Dht as CAVEMAN_RESPONSE_CONTRACT,_et as CHAT_ARCHIVE_VERSION,Lx as CLAUDE_MODELS,Vhi as CLI_COMMANDS,X8t as COMMAND_EXAMPLES,Ulr as COMMAND_GROUPS,Ahi as COMPASS_ICON,Qce as COMPASS_LLM_RESOLVER_ROUTE,zce as COMPASS_LLM_RESOLVER_TIMEOUT_MS,PE as COMPASS_PRODUCT_DEFAULT_CLIENT_ID,z2e as COMPASS_PRODUCT_DEFAULT_ROUTE,q2e as COMPASS_PRODUCT_DEFAULT_TIMEOUT_MS,oQ as COMPASS_USAGE_REQUEST_MAX_REASON_LENGTH,ske as COMPASS_USAGE_REQUEST_ROUTE,oke as COMPASS_USAGE_REQUEST_TIMEOUT_MS,PV as CONFIG_FILE_NAME,Wet as CONSENT_EXPIRY_DAYS,Iet as CONSENT_FILE_NAME,psr as CONSENT_VERSION,Yir as CONTEXT_DIR,nsr as CONTEXT_WINDOW_SAFETY_MARGIN,zir as CONTEXT_WINDOW_WARNING_PERCENT,ace as CONTINUITY_RECALL_RANKING_VERSION,JSe as CONTINUITY_SCHEMA_VERSION,uce as CREDENTIALS_FILE_NAME,FD as CRON_DAY_NAMES,nke as CRON_PRESETS,ctt as CUSTOM_MODEL_REGISTRY_VERSION,pEe as ChatArchivalService,ehe as CheckpointManager,Aue as CompassAuthService,zue as CompassLlmResolverService,Cme as CompassUsageRequestService,qpe as ComplexityClassifier,Jke as ConfigManager,hEe as ConsentManager,$X as CredentialStore,rke as DAY_NAME_TO_CRON,Q2e as DEEPSEEK_OPENAI_CHAT_REASONING_EFFORT,DV as DEFAULT_ANTHROPIC_TEMPERATURE,Uet as DEFAULT_AUTOCOMPLETE_MAX_DEPTH,Het as DEFAULT_AUTOCOMPLETE_MAX_FILES,Yet as DEFAULT_AUTOCOMPLETE_MAX_RESULTS,jet as DEFAULT_AUTOCOMPLETE_TIMEOUT_MS,PSe as DEFAULT_AUTONOMY_POLICY,Yft as DEFAULT_CACHE_CONFIG,EP as DEFAULT_CAPABILITY_ROUTING_POLICY,$ir as DEFAULT_CLASSIFIER_MODEL,gce as DEFAULT_CLASSIFIER_MODELS_BY_PROVIDER,tPe as DEFAULT_CLOSED_LEARNING_LOOP_POLICY,RP as DEFAULT_CONFIG,qir as DEFAULT_COST_WARNING_THRESHOLD,bcn as DEFAULT_FAILURE_PATTERN_THRESHOLDS,ntt as DEFAULT_FALLBACK_CHAIN,rtt as DEFAULT_FALLBACK_COOLDOWN_MS,ttt as DEFAULT_FALLBACK_ENABLED,itt as DEFAULT_FALLBACK_RESTORE_AFTER_COOLDOWN,stt as DEFAULT_FALLBACK_STICKY,qEe as DEFAULT_GENERATED_IGNORE_PATTERNS,rA as DEFAULT_IGNORE_PATTERNS,esr as DEFAULT_INTERACTIVE_SEARCH_MEDIA_CYCLE_LIMIT,Kir as DEFAULT_INTERACTIVE_TOOL_CALL_BUDGET,yce as DEFAULT_MAX_AGENTIC_ITERATIONS,kYt as DEFAULT_MAX_ITERATIONS_PER_TASK,AI as DEFAULT_MAX_TOKENS,vD as DEFAULT_MEMORY_SCOPE,ow as DEFAULT_MODEL,BYt as DEFAULT_OLLAMA_TEMPERATURE,$L as DEFAULT_PERSONALITY_MODE,tY as DEFAULT_PLAN_TYPE,Tir as DEFAULT_RATING_CONFIG,tIr as DEFAULT_RESPONSE_LANGUAGE,KL as DEFAULT_RETRY_CONFIG,$Se as DEFAULT_RUNTIME_LOOP_BLOCK_THRESHOLD,KSe as DEFAULT_RUNTIME_LOOP_DETECTION_CONFIG,qSe as DEFAULT_RUNTIME_LOOP_WARNING_THRESHOLD,xD as DEFAULT_RUNTIME_RECOVERY_POLICY,bYt as DEFAULT_RUNTIME_STATE_LOCATION,Vet as DEFAULT_SCAN_MAX_BYTES,Zet as DEFAULT_SCAN_MAX_DEPTH,CP as DEFAULT_SCAN_MAX_FILES,Let as DEFAULT_SCAN_MAX_RESULTS,Oet as DEFAULT_SCAN_TIMEOUT_MS,ale as DEFAULT_SCHEDULE_HEADER,zEe as DEFAULT_SECRET_IGNORE_PATTERNS,Det as DEFAULT_STUCK_DETECTION_ENABLED,RYt as DEFAULT_STUCK_DETECTION_THRESHOLD,cke as DEFAULT_TOOL_EXPOSURE_CONFIG,bir as DEFAULT_UPDATE_CONFIG,Yx as DEFAULT_WORKFLOW_CAPABILITIES,vpi as DEFAULT_WORKFLOW_EXTRACTION_MAX_CHARACTERS,Ipi as DEFAULT_WORKFLOW_EXTRACTION_MAX_TURNS,OKe as DENIED_QUEUED_CONTINUATION_AUTHORITY,Q8t as DOC_LINKS,LW as DirtyTreeWorktreeError,znt as ENVIRONMENT_VARIABLES,Dp as ENV_VARS,KKe as EPHEMERAL_IMAGE_MIME_TYPES,J8t as EXIT_CODES,Lpe as EnhancedContextGatherer,Bf as EphemeralMediaValidationError,bke as EventEmitter,Kae as ExecutionMode,WCn as ExecutionStrategy,csr as FALLBACK_NOTIFICATION_DISMISS_MS,epe as FailurePatternAnalyzer,X2e as GEMINI_OPENAI_CHAT_REASONING_EFFORT,wg as GENERAL_PURPOSE_BUILTIN_AGENT_NAME,XL as GLOBAL_COMPASS_DIR,zSe as GOAL_EVALUATOR_MODEL,CX as GOAL_MAX_CONDITION_CHARS,xYt as GOAL_MAX_EVALUATOR_FAILURES,wYt as GOAL_MAX_TOKENS,IYt as GOAL_MAX_TURNS,vYt as GOAL_MAX_WALL_CLOCK_MS,_ce as GOAL_SAFETY_CAPS,AYt as GOAL_TRANSCRIPT_MAX_MESSAGES,SYt as GOAL_TRANSCRIPT_MAX_TOKENS,Pnt as GROK_OPENAI_CHAT_REASONING_EFFORT,P0 as GitService,vX as HOOK_EVENTS,YSe as HOOK_SOURCE_PRIORITY,RVe as HistoryManager,pce as INDEX_DIR,ssr as INTERACTIVE_SESSION_COMMITTED_STREAM_BUFFER_RETENTION,ohe as InteractiveClarifier,MCn as IssueCategory,FCn as IssueSeverity,iVe as JsonlRuntimeTurnEventRecorder,fsr as LANGUAGE_EXTENSIONS,jLt as LATEST_PLAN_RESUME_SELECTOR,TE as LEARNING_SCHEMA_VERSION,hir as LEGACY_ACTIVE_PLAN_REVISION,pet as LEGACY_BUILTIN_SPAWNABLE_AGENT_NAME_ALIASES,det as LEGACY_GENERAL_PURPOSE_BUILTIN_AGENT_NAME,aYt as LEGACY_VERIFICATION_BUILTIN_AGENT_NAMES,aw as LLM_EXECUTION_PLAN_CONTRACT_VERSION,Ace as LLM_EXECUTION_TARGETS,dce as LOGS_DIR,npe as LearningCaptureService,LNe as LearningStore,jE as LlmExecutionPlanError,rhe as LogInterpreter,B8t as MAIN_EXAMPLES,AP as MANAGED_AGENT_BUDGET_ACCOUNTING_MODE,xP as MANAGED_AGENT_BUDGET_CONTRACT_VERSION,iet as MANAGED_AGENT_BUDGET_TERMINATION_KINDS,C2e as MANAGED_WORKTREE_METADATA_DIR,EX as MAX_BACKUP_FILES,isr as MAX_CACHE_SIZE_BYTES,TP as MAX_COMMAND_OUTPUT_TOKENS,tsr as MAX_DYNAMIC_STREAM_BLOCKS,UYt as MAX_FILES_PER_OPERATION,n2e as MAX_FILE_READ_TOKENS,jYt as MAX_FILE_SIZE_BYTES,vce as MAX_HISTORY_LENGTH,rsr as MAX_INDEXED_FILES,wD as MAX_MEMORY_INDEX_LINE_CHARS,Zv as MAX_MEMORY_LINES,QYt as MAX_RETRY_ATTEMPTS,r2e as MAX_SEARCH_RESULT_TOKENS,i2e as MCP_RECONNECT_DEFAULTS,gVe as MEMORY_ARCHIVE_DIR,kX as MEMORY_DIR,nh as MEMORY_FILE_NAME,gCn as MEMORY_HYGIENE_INTERVAL_MS,Tet as MEMORY_INDEX_COMPACTION_TARGET_LINES,Eet as MEMORY_INDEX_CRITICAL_LINES,Cet as MEMORY_INDEX_WARNING_LINES,gYt as MEMORY_SCOPES,Ret as MEMORY_STARTUP_HYGIENE_TOPIC_FILE_LIMIT,Net as MEMORY_STARTUP_HYGIENE_TOPIC_READ_BYTES,GD as MODEL_ALIASES,hsr as MODEL_GROUP_CUSTOM,ltt as MODEL_ID_PATTERN,F0 as ManagedWorktreeLifecycleError,ket as NOVA_LOCAL_MD_FILE_NAME,mce as NOVA_MD_FILE_NAME,net as NOVA_TOOLS_RPC_ERROR_CODES,qae as NOVA_TOOLS_RPC_METHODS,yir as NOVA_TOOLS_RPC_MODE,m8t as NO_SUBSCRIPTION_DAILY_TOKEN_LIMIT,sVe as NoopRuntimeTurnEventRecorder,N1t as NovaDaemonService,j1t as NovaToolsRpcApprovalBridge,B1t as NovaToolsRpcDispatcher,H1t as NovaToolsRpcStdioTransport,Wp as OPENAI_OAUTH,d_ as OPENAI_USAGE,Y3e as ObservabilityService,Yue as OpenAIOAuthService,$me as OpenAIUsageService,zL as PDF_RENDER_DEFAULT_FILE_PREFIX,GV as PDF_RENDER_DEFAULT_FORMAT,FV as PDF_RENDER_DEFAULT_SCALE,QL as PDF_RENDER_MAX_SCALE,hce as PDF_RENDER_SUPPORTED_FORMATS,rT as PLAN_EVIDENCE_SCHEMA_VERSION,dpt as POST_VERIFICATION_CHECKPOINT_VERSION,SP as PROJECTS_DIR,lce as PROJECT_COMPASS_DIR,wb as PROJECT_MEMORY_SCOPE,WV as PROVIDERS,PX as PROVIDER_ENV_VARS,aU as PlanEvidenceAccumulator,ahe as PlanGenerator,dH as ProcessLocalMediaSidecar,L8t as QUOTA_FALLBACK_REASONS,gir as RENDERER_SWITCH_SNAPSHOT_SCHEMA_VERSION,uet as RESEARCH_BUILTIN_AGENT_NAME,$Yt as RETRY_AFTER_ENABLED,KYt as RETRY_AFTER_MAX_DELAY_MS,zYt as RETRY_BASE_DELAY_MS,qYt as RETRY_JITTER_FACTOR,ett as RETRY_MAX_DELAY_MS,ule as ROLLING_WINDOW_HOURS,lle as ROLLING_WINDOW_MS,Aet as RULES_DIR,Hir as RUNTIME_STATE_LOCATIONS,OS as RUNTIME_STATE_MACHINE_STATES,Hx as RUNTIME_STATE_TRANSITION_REASONS,rQ as RUNTIME_TELEMETRY_BRIDGE_EVENT_NAMES,nle as RUNTIME_TELEMETRY_CAPABILITY_KINDS,Ilr as RUNTIME_TELEMETRY_RECORDER_FAILURE_SINKS,vlr as RUNTIME_TELEMETRY_RECORDER_STATUSES,Dnt as RUNTIME_TELEMETRY_SCHEMA_VERSION,G8t as RUNTIME_TELEMETRY_SINKS,fY as RUNTIME_TELEMETRY_TOOL_KINDS,wlr as RUNTIME_TELEMETRY_UPLOAD_STATUSES,BSe as RUNTIME_TURN_EVENTS_DIR,Wnt as RUNTIME_TURN_EVENT_NAMES,ylr as RUNTIME_TURN_TERMINAL_STATUSES,blr as RUNTIME_TURN_TOOL_STATUSES,$de as RemediationProposalService,QPe as RemoteSshExecutor,jme as RuntimeLoopDetector,AX as SAVED_SESSIONS_DIR,Ynt as SCHEDULE_FILE_NAME,Z8t as SERVER_QUOTA_BACKEND_PLAN_TYPES,V8t as SERVER_QUOTA_BUCKET_KEYS,sQ as SERVER_QUOTA_PREFLIGHT_ROUTE,ike as SERVER_QUOTA_PREFLIGHT_TIMEOUT_MS,D8t as SERVER_QUOTA_SNAPSHOT_SOURCES,M8t as SERVER_QUOTA_SNAPSHOT_TTL_MS,W8t as SERVER_QUOTA_STATUSES,O8t as SERVER_QUOTA_UNLIMITED_SENTINEL,mY as SERVER_QUOTA_WINDOW_SECONDS,NYt as SESSION_EXPIRY_DAYS,wX as SESSION_FILE_NAME,Gd as SHARED_MEMORY_SCOPE,gX as SHELL_COMMAND_BATCH_MAX_COMMANDS,qL as SHELL_COMMAND_MAX_TIMEOUT_MS,Ice as SHELL_COMMAND_TIMEOUT_MS,USe as SKILL_SOURCE_PRIORITY,Nwt as SLASH_COMMANDS,_Fe as SPAWN_AGENT_CAPACITY_ERROR_CODE,kE as SPAWN_AGENT_CONTRACT_VERSION,qKe as SPAWN_AGENT_RECOVERY_CONTRACT_VERSION,bFe as SPAWN_AGENT_RECURSION_ERROR_CODE,YL as SPAWN_WORKTREE_ISOLATION_CONTRACT_VERSION,Zue as SYSTEM_PROMPT_RUNTIME_INSERTION_ANCHOR_ID,TX as SYSTEM_PROMPT_SEGMENT_SEPARATOR,iQ as SYSTEM_UTILITIES,Jue as SessionManager,UPe as ShellExecutor,AQ as SlackWorkflowMessagingGateway,yO as SpawnAgentCapacityError,T$ as SpawnAgentRecursionError,TCn as StepStatus,Kme as StepTracker,CCn as StepType,tke as TASK_ID_PREFIX,ole as TASK_ID_RANDOM_LENGTH,Hnt as TASK_STATUSES,fce as TEMP_DIR,KLt as TERMINAL_TOOL_STATUSES,jnt as TOKEN_LIMITS_STORE_FILENAME,Jnt as TOKEN_LIMITS_STORE_VERSION,Hlr as TOKEN_LIMIT_MESSAGES,Nlr as TOKEN_LIMIT_WARNING_THRESHOLD_PERCENT,Met as TOKEN_WARNING_THRESHOLD,Knt as TOOL_EXPOSURE_ROLLOUT_SALT_REVISION,att as TOOL_READ_BLOCKLIST_DIRS,ott as TOOL_READ_BLOCKLIST_PATTERNS,ret as TaskExecutionStatus,ECn as TaskStatus,SQ as TeamsWorkflowMessagingGateway,V1t as TokenLimitEnforcer,bet as TokenLimitExceededError,fCe as TokenLimitStore,gCe as TokenTracker,cpe as ToolRegistry,Znt as UTILITY_DETECTION_CACHE_TTL,Ont as UTILITY_DETECTION_TIMEOUT,iHt as VALID_PLAN_TYPES,nHt as VALID_SCHEMA_TYPES,nce as VERIFICATION_BUILTIN_AGENT_NAME,tIs as VERSION,che as Verifier,_ht as WORKFLOW_PROMPTS,Htt as WORKSPACE_RUNTIME_STATE_DIRECTORIES,Utt as WORKSPACE_RUNTIME_STATE_FILES,the as WorkflowAnalyticsService,ihe as WorkflowManager,lhe as WorkflowOrchestrator,MSe as WorkflowPhase,DCn as WorkflowState,sCn as agui,qvt as appendRuntimeQueuedPromptsIntoMessages,xat as appendSystemPromptSegment,Hfi as applyCompletion,_Pr as applyPatch,hPr as areIdentical,Pit as assessPlanApprovalIntegrity,Uz as attachProviderErrorRetryMetadata,Jq as auditMemory,Bq as auditSharedMemory,Git as bindApprovedPlanEvidence,jce as buildAtomicTempFileName,h$ as buildCompiledSystemPrompt,Hdt as buildLearningHookContext,iPe as buildLearningPromptSection,qD as buildProviderErrorRetryMetadata,tA as buildResponseLanguageInstruction,K3e as buildRuntimeMaxTokenContinuationPrompt,Kmn as buildSystemPrompt,Hht as buildSystemPromptSegments,kCn as buildWorkflowExtractionPrompt,eDr as cached,tDr as cachedTokenCount,Dxr as calculateContextUsagePercent,S8t as calculateModelCost,Gxr as calculateRemainingTokens,Kbt as cancelManagedWorktree,QY as checkQuota,CD as checkScanBudget,pft as classifyMemoryIndexCapacity,aTn as classifyRuntimeAgenticStop,rsi as cleanupWorktree,Mur as colorByStatus,pPr as colorizeDiff,uft as compactMemoryPathForDisplay,pYt as compareAgentPriority,Pir as compareHookPriority,k8t as compareModels,Mir as compareSkillPriority,E0 as compileSystemPrompt,oCn as computeBackoffDelay,RD as copy,wAr as createActionLogger,hX as createActivePlanConflict,mX as createActivePlanIdentity,upe as createAgentToolCapabilityProfile,jW as createAutomationStateStore,KD as createChatArchivalService,Mpi as createCheckpointManager,tRe as createCodebaseIndexer,O_r as createCompassAuthService,RIr as createCompassLlmResolverService,svt as createCompassUsageRequestService,KOr as createComplexityClassifier,Hxr as createContextBuilder,Qjt as createCredentialStore,uYt as createDefaultAgentDefinition,hkn as createDefaultAutomationState,cet as createDefaultBudget,rir as createDefaultConsent,Cir as createDefaultRatingState,tZr as createEnhancedContextGatherer,A2e as createEphemeralImageToolResult,sNr as createFailurePatternAnalyzer,iir as createFullConsent,MVr as createGitService,ftn as createIgnoreMatcher,Jpi as createInteractiveClarifier,e1t as createJsonlRuntimeTurnEventRecorder,uNr as createLearningCaptureService,Hpi as createLogInterpreter,sir as createMinimalConsent,t1t as createNoopRuntimeTurnEventRecorder,Sbr as createOpenAIOAuthService,spi as createOpenAIUsageService,Xpi as createPlanGenerator,fIr as createProcessLocalMediaSidecar,tNr as createRemediationProposalService,gdn as createRemoteSshExecutor,U3e as createRuntimeLoopDetectionDiagnostic,jvt as createRuntimeLoopDetectionScope,Oui as createRuntimeTurnEventDraftBase,Xme as createRuntimeTurnId,JV as createScanBudget,Zce as createScanTruncationMetadata,set as createSpawnAgentContextManifest,Ppi as createStepTracker,j3e as createSyntheticBlockedToolResult,nH as createSystemPromptSegment,lir as createTextBlock,dir as createThinkingBlock,JP as createTokenLimitStore,pir as createToolBlock,GNr as createToolRegistry,Hb as createToolsRpcError,zpi as createVerifier,Vpi as createWorkflowAnalyticsService,jpi as createWorkflowManager,PXt as createWorkflowMessagingGateway,$pi as createWorkflowOrchestrator,YKe as decidePersistedPlanRecovery,UL as decideRuntimeContinuation,htt as decrypt,KNe as deriveFailureKindsFromLoop,DAn as discoverManagedWorktrees,mtt as encrypt,Qa as ensureDir,gun as ensureMemoryDir,hun as ensureSharedMemoryDir,ddn as estimateCacheValueSize,Pxr as estimateConversationTokens,Ilt as estimateSystemPromptTokens,ip as estimateTokens,aee as evaluateRuntimeRecovery,pfi as executeSlashCommand,nwt as extractCodeBlocks,twt as extractMentions,RZ as extractProviderErrorRetryMetadata,Npi as extractWorkflow,$bt as finishManagedWorktree,Vot as flushTokenUsage,jlr as formatAfterHelpText,kur as formatAgenticLoopElapsed,Jlr as formatCommandAfterHelp,Lhi as formatCommandHelp,Eur as formatCost,Aur as formatDate,Sur as formatDuration,Cur as formatFileSize,Ohi as formatFullHelp,cpi as formatHealthSummary,UEn as formatHelpCategory,xcn as formatLearningPromptSection,Fur as formatList,hpi as formatMemoryHygieneSummary,vJt as formatPercent,Gur as formatProgressBar,Tur as formatRelativeTime,HKe as formatRuntimeContinuationStatus,Jme as formatRuntimeLoopInputFingerprint,gpi as formatStartupMemoryHygieneSummary,Nn as formatTimestamp,Rur as formatTokenCount,Mxr as formatTokenDisplay,OH as generateDiff,fPr as generateDiffSummary,ZEn as generateGreeting,ysr as generateSecureRandom,mPr as generateWordDiff,HZ as getActionLogger,VSe as getAgentSourcePriority,bY as getAiCreditReceiptLedgerTotal,ih as getAnthropicClient,vl as getApprovalManager,w8t as getAvailableAliases,v8t as getAvailableModelIds,aT as getAvailableModels,rR as getBackupManager,Kar as getBasename,tce as getBudgetUsagePercent,$ce as getBuiltInSubagentDefaultModel,Clr as getBuiltinAgent,Elr as getBuiltinAgentNames,iO as getCacheService,gPr as getChangedLineCount,C8t as getCheapestModel,Fy as getCheckpointManager,Ejt as getCodebaseIndexCachePath,Btt as getCodebaseIndexCachePaths,aG as getCodebaseIndexer,Zm as getCompassAuthService,fH as getCompassLlmResolverService,ivt as getCompassUsageRequestService,Ffi as getCompletions,$pe as getComplexityClassifier,El as getConfigManager,Qz as getConsentManager,oW as getContextBuilder,Wxr as getContextUsageColor,Kli as getConversationCompactor,vu as getCredentialStore,y8t as getCustomModelCount,x8t as getDefaultModel,A8t as getDefaultModelId,Ype as getEnhancedContextGatherer,zi as getEventEmitter,$ar as getExtension,iNr as getFailurePatternAnalyzer,CT as getFileService,Co as getGlobalCompassDir,_fi as getHistoryManager,fet as getHookSourcePriority,$1t as getInteractiveClarifier,Ldt as getLearningCaptureService,Fq as getLearningStore,Xar as getLegacyWorkspaceCompassDir,Q1t as getLogInterpreter,Lce as getManagedWorktreeMetadataDir,Xtt as getManagedWorktreeMetadataPath,BV as getManagedWorktreesDir,fun as getMemoryCacheKey,lft as getMemoryFilePath,RT as getMemoryScopeDescriptor,_Pe as getMissingAgentToolCapabilities,za as getModelConfig,N8t as getModelDescription,K2e as getModelDisplayName,Kce as getModelKnowledgeCutoff,R8t as getModelTier,mCe as getModelTokens,T8t as getModelsByCapability,E8t as getMostCapableModel,Zli as getObservabilityService,aH as getOpenAIOAuthService,ipi as getOpenAIUsageService,VGe as getPersonalityReinforcement,m$ as getPersonalitySection,wVe as getPlanGenerator,Dl as getProjectCompassDir,sR as getProjectMemoryDir,gG as getProjectSlug,zar as getRelativePath,bX as getRemainingBudget,Kde as getRemediationProposalService,zPe as getRemoteSshExecutor,jtt as getRuntimeStateRoot,Fot as getServerQuotaDecision,Bl as getSessionManager,_G as getSharedMemoryDir,cft as getSharedMemoryFilePath,Pg as getShellExecutor,mNr as getSkillLearningExposures,het as getSkillSourcePriority,uwt as getSlashCommandRegistry,oet as getSpawnAgentContextBoundaryViolations,s4 as getStepTracker,M3e as getSystemUtilitiesPromptSection,nkn as getSystemUtilityDetector,Kfi as getTaskProcessor,BP as getTokenTracker,ert as getToolExposureCohortScore,Aw as getToolRegistry,Rlr as getUtilitiesByCategory,ewt as getVerifier,nhe as getWorkflowAnalyticsService,Upi as getWorkflowManager,Ple as getWorkflowMessagingGateway,qpi as getWorkflowOrchestrator,ED as getWorkspaceIdentityPath,Yce as getWorkspaceRuntimeStateIgnorePatterns,Jtt as getWorkspaceStateDir,Oce as getWorkspaceStateId,UX as getWorkspaceStatePath,jX as getWorkspaceStatePaths,Kpe as groundPlanWithEvidence,g8t as hasFullAccess,gtt as hash,tTn as hashRuntimeLoopInput,bsr as hmac,K8t as hydrateToolExposureState,B3e as inferRuntimeRecoveryFailureCategory,Zz as insertRuntimeSystemPromptSegment,Aat as insertSystemPromptSegmentBefore,cA as interpolateTemplate,aft as invalidateMemoryCache,Air as isAgentProcessStatus,mpt as isAgentToolCapabilityId,I8t as isAnthropicModel,sce as isApprovedActiveLearning,TSe as isAutomationState,IX as isBudgetExceeded,Sir as isBudgetStrategy,b8t as isCustomModel,QV as isDirectory,xce as isFallbackTriggerCode,D2e as isFile,bCn as isMemoryHygieneScanDue,Dir as isMemoryScope,Ag as isPathWithin,dke as isPlanToolExposed,UKe as isPreservedModelSelection,qme as isProcessLive,kir as isResumable,Dat as isRetryableStatusCode,tir as isRuntimeResolvedModel,dCe as isServerQuotaSnapshotExpired,k$ as isSpawnAgentCapacityError,Ugt as isSpawnAgentRecursionError,fir as isStreamBlockPayloadImmutable,yX as isSubagentQuestionRouting,Dx as isTerminalStatus,eYt as isTerminalToolStatus,nYt as isThinkingStreamBlockTerminal,dle as isToolExposureSessionInCohort,tYt as isToolStreamBlockTerminal,LSe as isValidAgentFrontmatter,OSe as isValidAgentPermissionMode,cYt as isValidAgentSource,Brr as isValidAnthropicConfig,lYt as isValidCLIAgentConfig,jSe as isValidChatArchive,Jrr as isValidCompassConfig,Krr as isValidConfigFile,JLt as isValidConsent,nir as isValidConsentRecord,rHt as isValidCustomModel,utt as isValidCustomModelRegistry,HSe as isValidHookEvent,Nir as isValidHookFrontmatter,Rir as isValidHookSource,Zir as isValidLearningApplicationSurface,Vir as isValidLearningApprovalState,tle as isValidModel,xir as isValidNotificationStyle,Xrr as isValidProjectConfig,Eir as isValidRatingState,Qrr as isValidSafetyConfig,wce as isValidSchemaType,qrr as isValidSessionConfig,hYt as isValidSkillContext,Fir as isValidSkillFrontmatter,Gir as isValidSkillSource,tfi as isValidSlashCommand,zrr as isValidUIConfig,Iir as isValidUpdateCheckResult,vir as isValidUpdateConfig,$rr as isValidUpdateSettingsConfig,wir as isValidUpdateType,eke as isWorkflowCapabilityEnabled,rH as joinSystemPromptSegments,UK as listManagedWorktrees,xpe as loadAllMemory,IFr as loadAutoMemory,_8t as loadCustomModelsIntoCache,_un as loadNovaInstructions,vFr as loadSharedMemory,H as logger,mir as markStreamBlockCommitted,f$t as maskSensitiveSystemPromptSegments,Hce as matchesPattern,Lgt as mergePlanEvidenceSnapshots,GE as modelSupportsEffort,GSe as normalizeActivePlanRevision,iKt as normalizeArchiveRecallLimit,Lh as normalizeBuiltInSpawnableAgentName,dKt as normalizeCompassLlmExecutionPlan,pKt as normalizeCompassLlmResolverResponse,Wir as normalizeMemoryScope,cX as normalizePlanResumeRouteKey,VKe as normalizePlanResumeSelector,ple as normalizePlanSessionOwnership,LKe as normalizeQueuedContinuationAuthority,uH as normalizeResponseLanguageCode,eTn as normalizeRuntimeLoopDetectionConfig,J3e as normalizeRuntimeRecoveryPolicy,qar as normalizeSeparators,SZ as normalizeSystemPromptSegments,GCn as normalizeToolsRpcError,Pur as padString,yY as parseAiCreditNanoUnits,OCn as parseArgs,Yjt as parseAtomicTempFileName,efi as parseInput,uCe as parseServerQuota,Got as parseServerQuotaConfig,BL as parseToolsList,ps as pathExists,JT as persistManagedWorktreeMetadata,QKe as policyAllowsApprovalRequest,pX as policyAllowsTool,qLt as policyFromAgentPermissionMode,zLt as policyFromApprovalMode,lTn as preflightRuntimeBudgetCheck,zbt as prepareDirtyTreeWorktree,VH as preparePlanExecution,Qcn as preparePlanTaskExecution,Spi as prepareWorkflowExtractionInput,p$t as prependSystemPromptSegment,ND as readDir,DP as recordAiCreditReceipt,trt as recordSessionOwnedPlan,S2e as redactCompatibleToolResult,YX as redactEphemeralImageToolResult,F3e as registerBuiltInTools,mfi as registerRequestUsageCommand,phe as registerSlashCommand,y0 as remove,Phi as renderBanner,Ghi as renderMiniBanner,Fhi as renderWelcome,qCn as requestUsageCommand,zCn as requestUsageHandler,Mnt as requireWorkflowCapability,KMr as resetCacheService,XD as resetIfExpired,hpt as resolveAgentToolCapabilities,sct as resolveAgenticLoopRoutingContext,XKe as resolveAutonomyPolicy,zme as resolveDaemonPath,qz as resolveEligibleExecutionTargets,Qtt as resolveGlobalPath,iu as resolveModelId,Bnt as resolvePlanLimits,rrt as resolvePlanToolExposure,Qar as resolveProjectPath,iT as resolveSpawnableAgentName,hY as resolveToolExposureControls,Sb as resolveWorkflowCapabilities,wke as restoreAiCreditAccounting,rVe as runAgenticRuntime,ypi as runAllMemoryHygiene,F1t as runMemoryHygiene,lpi as runSessionHealthCleanup,fu as safeReadFile,cd as safeReadJson,Sg as safeWriteFile,Id as safeWriteJson,oY as sanitizePath,E$t as sanitizeRetryAfterHeader,mpi as scanAllMemoryHygiene,_pi as scanAllMemoryHygieneIfDue,_Ve as scanMemoryHygiene,mCn as scanSessionHealth,Isr as secureCompare,wcn as selectLearningPromptItems,rh as serializeAiCreditAccounting,dYt as serializeToolsList,uke as sessionOwnsPlan,cme as setupWorktree,WS as shouldExcludeWorkspaceRuntimeStatePath,gxr as shouldIgnoreByDefault,C1t as startAutomationWebhookDispatcher,f_ as stat,E1t as stopAutomationWebhookDispatcher,fJt as sumAiCreditReceiptLedger,xue as sumAllUsage,pQ as toCanonicalAiCreditNanoUnits,RE as toForwardSlashes,lX as toRuntimeContinuationDecisionMetadata,ict as toRuntimeRoutingFailure,aet as toSpawnAgentPollingCommunication,Nur as truncate,mle as validateAiCreditReceipt,TD as validateEphemeralImageToolResult,Wce as validateEphemeralToolResult,n3e as validateManagedWorktreeState,spt as validatePlanEvidenceGrounding,fPe as validatePlanEvidenceLocators,Dce as validateRedactedEphemeralImageToolResult,lke as validateToolExposureConfig,Fxr as wouldExceedContext};
|
|
4671
|
+
`)}TW();var tIs="1.1.37",nIs="compass-cli";export{Oir as A2A_TOKENS_FILE_NAME,Jir as ACP_SESSION_MAX_AGE_DAYS,Qir as ACP_SESSION_MAX_AGE_DAYS_ENV,Bir as ACP_SESSION_MAX_AGE_MS,Uir as ACP_SESSION_RETENTION_DEFAULT_LIMIT,Xir as ACP_SESSION_RETENTION_LIMIT_ENV,jir as ACP_SESSION_RETENTION_MAX_LIMIT,Qae as ACTIVE_PLAN_CONFLICT_CODE,EYt as AGENTIC_AUTO_COMPACT_PERCENT,CYt as AGENTIC_COST_HARD_CAP,TYt as AGENTIC_COST_WARNING_THRESHOLD,rce as AGENT_SOURCE_PRIORITY,Vv as AGENT_SPAWN_DELEGATION_POLICY,HL as AGENT_TOOL_CAPABILITY_IDS,lpe as AGENT_TOOL_CAPABILITY_MANIFEST,_ir as ANTHROPIC_STOP_REASONS,usr as APP_DESCRIPTION,lsr as APP_DISPLAY_NAME,nIs as APP_NAME,dsr as APP_TAGLINE,eY as APP_VERSION,VEn as ASCII_BANNER,DKe as AUTOMATION_STATE_VERSION,QSe as AUTO_COMPACT_TRIGGER,t2e as AUTO_SAVE_INTERVAL_MS,Cde as ActionLogger,Elt as ActionStatus,Lm as ActionType,YS as AiCreditAccountingInvariantError,dQ as AiCreditReceiptValidationError,Jz as AnthropicClient,eTe as ApprovalManager,jL as ApprovalMode,V3e as AutomationStateStore,fVe as AutomationWebhookDispatcher,xX as BACKUPS_DIR,bce as BACKUP_RETENTION_DAYS,msr as BINARY_EXTENSIONS,ile as BUILTIN_AGENTS,ZSe as BUILTIN_SPAWNABLE_AGENT_NAMES,Gnt as BUILTIN_SUBAGENT_MODEL_DEFAULTS_BY_PROVIDER,dpe as BUILT_IN_TOOL_CAPABILITY_MANIFEST,vPe as BackupManager,Lir as CACHE_DIR,$et as CACHE_SIZE_ESTIMATE_CIRCULAR_REFERENCE_BYTES,Qet as CACHE_SIZE_ESTIMATE_MAX_ARRAY_ITEMS,zet as CACHE_SIZE_ESTIMATE_MAX_COLLECTION_ENTRIES,Jet as CACHE_SIZE_ESTIMATE_MAX_DEPTH,Bet as CACHE_SIZE_ESTIMATE_MAX_NODES,Xet as CACHE_SIZE_ESTIMATE_MAX_OBJECT_KEYS,qet as CACHE_SIZE_ESTIMATE_TRUNCATED_NODE_BYTES,qq as CACHE_TTL,sle as CATEGORY_INFO,Dht as CAVEMAN_RESPONSE_CONTRACT,_et as CHAT_ARCHIVE_VERSION,Lx as CLAUDE_MODELS,Vhi as CLI_COMMANDS,X8t as COMMAND_EXAMPLES,Ulr as COMMAND_GROUPS,Ahi as COMPASS_ICON,Qce as COMPASS_LLM_RESOLVER_ROUTE,zce as COMPASS_LLM_RESOLVER_TIMEOUT_MS,PE as COMPASS_PRODUCT_DEFAULT_CLIENT_ID,z2e as COMPASS_PRODUCT_DEFAULT_ROUTE,q2e as COMPASS_PRODUCT_DEFAULT_TIMEOUT_MS,oQ as COMPASS_USAGE_REQUEST_MAX_REASON_LENGTH,ske as COMPASS_USAGE_REQUEST_ROUTE,oke as COMPASS_USAGE_REQUEST_TIMEOUT_MS,PV as CONFIG_FILE_NAME,Wet as CONSENT_EXPIRY_DAYS,Iet as CONSENT_FILE_NAME,psr as CONSENT_VERSION,Yir as CONTEXT_DIR,nsr as CONTEXT_WINDOW_SAFETY_MARGIN,zir as CONTEXT_WINDOW_WARNING_PERCENT,ace as CONTINUITY_RECALL_RANKING_VERSION,JSe as CONTINUITY_SCHEMA_VERSION,uce as CREDENTIALS_FILE_NAME,FD as CRON_DAY_NAMES,nke as CRON_PRESETS,ctt as CUSTOM_MODEL_REGISTRY_VERSION,pEe as ChatArchivalService,ehe as CheckpointManager,Aue as CompassAuthService,zue as CompassLlmResolverService,Cme as CompassUsageRequestService,qpe as ComplexityClassifier,Jke as ConfigManager,hEe as ConsentManager,$X as CredentialStore,rke as DAY_NAME_TO_CRON,Q2e as DEEPSEEK_OPENAI_CHAT_REASONING_EFFORT,DV as DEFAULT_ANTHROPIC_TEMPERATURE,Uet as DEFAULT_AUTOCOMPLETE_MAX_DEPTH,Het as DEFAULT_AUTOCOMPLETE_MAX_FILES,Yet as DEFAULT_AUTOCOMPLETE_MAX_RESULTS,jet as DEFAULT_AUTOCOMPLETE_TIMEOUT_MS,PSe as DEFAULT_AUTONOMY_POLICY,Yft as DEFAULT_CACHE_CONFIG,EP as DEFAULT_CAPABILITY_ROUTING_POLICY,$ir as DEFAULT_CLASSIFIER_MODEL,gce as DEFAULT_CLASSIFIER_MODELS_BY_PROVIDER,tPe as DEFAULT_CLOSED_LEARNING_LOOP_POLICY,RP as DEFAULT_CONFIG,qir as DEFAULT_COST_WARNING_THRESHOLD,bcn as DEFAULT_FAILURE_PATTERN_THRESHOLDS,ntt as DEFAULT_FALLBACK_CHAIN,rtt as DEFAULT_FALLBACK_COOLDOWN_MS,ttt as DEFAULT_FALLBACK_ENABLED,itt as DEFAULT_FALLBACK_RESTORE_AFTER_COOLDOWN,stt as DEFAULT_FALLBACK_STICKY,qEe as DEFAULT_GENERATED_IGNORE_PATTERNS,rA as DEFAULT_IGNORE_PATTERNS,esr as DEFAULT_INTERACTIVE_SEARCH_MEDIA_CYCLE_LIMIT,Kir as DEFAULT_INTERACTIVE_TOOL_CALL_BUDGET,yce as DEFAULT_MAX_AGENTIC_ITERATIONS,kYt as DEFAULT_MAX_ITERATIONS_PER_TASK,AI as DEFAULT_MAX_TOKENS,vD as DEFAULT_MEMORY_SCOPE,ow as DEFAULT_MODEL,BYt as DEFAULT_OLLAMA_TEMPERATURE,$L as DEFAULT_PERSONALITY_MODE,tY as DEFAULT_PLAN_TYPE,Tir as DEFAULT_RATING_CONFIG,tIr as DEFAULT_RESPONSE_LANGUAGE,KL as DEFAULT_RETRY_CONFIG,$Se as DEFAULT_RUNTIME_LOOP_BLOCK_THRESHOLD,KSe as DEFAULT_RUNTIME_LOOP_DETECTION_CONFIG,qSe as DEFAULT_RUNTIME_LOOP_WARNING_THRESHOLD,xD as DEFAULT_RUNTIME_RECOVERY_POLICY,bYt as DEFAULT_RUNTIME_STATE_LOCATION,Vet as DEFAULT_SCAN_MAX_BYTES,Zet as DEFAULT_SCAN_MAX_DEPTH,CP as DEFAULT_SCAN_MAX_FILES,Let as DEFAULT_SCAN_MAX_RESULTS,Oet as DEFAULT_SCAN_TIMEOUT_MS,ale as DEFAULT_SCHEDULE_HEADER,zEe as DEFAULT_SECRET_IGNORE_PATTERNS,Det as DEFAULT_STUCK_DETECTION_ENABLED,RYt as DEFAULT_STUCK_DETECTION_THRESHOLD,cke as DEFAULT_TOOL_EXPOSURE_CONFIG,bir as DEFAULT_UPDATE_CONFIG,Yx as DEFAULT_WORKFLOW_CAPABILITIES,vpi as DEFAULT_WORKFLOW_EXTRACTION_MAX_CHARACTERS,Ipi as DEFAULT_WORKFLOW_EXTRACTION_MAX_TURNS,OKe as DENIED_QUEUED_CONTINUATION_AUTHORITY,Q8t as DOC_LINKS,LW as DirtyTreeWorktreeError,znt as ENVIRONMENT_VARIABLES,Dp as ENV_VARS,KKe as EPHEMERAL_IMAGE_MIME_TYPES,J8t as EXIT_CODES,Lpe as EnhancedContextGatherer,Bf as EphemeralMediaValidationError,bke as EventEmitter,Kae as ExecutionMode,WCn as ExecutionStrategy,csr as FALLBACK_NOTIFICATION_DISMISS_MS,epe as FailurePatternAnalyzer,X2e as GEMINI_OPENAI_CHAT_REASONING_EFFORT,wg as GENERAL_PURPOSE_BUILTIN_AGENT_NAME,XL as GLOBAL_COMPASS_DIR,zSe as GOAL_EVALUATOR_MODEL,CX as GOAL_MAX_CONDITION_CHARS,xYt as GOAL_MAX_EVALUATOR_FAILURES,wYt as GOAL_MAX_TOKENS,IYt as GOAL_MAX_TURNS,vYt as GOAL_MAX_WALL_CLOCK_MS,_ce as GOAL_SAFETY_CAPS,AYt as GOAL_TRANSCRIPT_MAX_MESSAGES,SYt as GOAL_TRANSCRIPT_MAX_TOKENS,Pnt as GROK_OPENAI_CHAT_REASONING_EFFORT,P0 as GitService,vX as HOOK_EVENTS,YSe as HOOK_SOURCE_PRIORITY,RVe as HistoryManager,pce as INDEX_DIR,ssr as INTERACTIVE_SESSION_COMMITTED_STREAM_BUFFER_RETENTION,ohe as InteractiveClarifier,MCn as IssueCategory,FCn as IssueSeverity,iVe as JsonlRuntimeTurnEventRecorder,fsr as LANGUAGE_EXTENSIONS,jLt as LATEST_PLAN_RESUME_SELECTOR,TE as LEARNING_SCHEMA_VERSION,hir as LEGACY_ACTIVE_PLAN_REVISION,pet as LEGACY_BUILTIN_SPAWNABLE_AGENT_NAME_ALIASES,det as LEGACY_GENERAL_PURPOSE_BUILTIN_AGENT_NAME,aYt as LEGACY_VERIFICATION_BUILTIN_AGENT_NAMES,aw as LLM_EXECUTION_PLAN_CONTRACT_VERSION,Ace as LLM_EXECUTION_TARGETS,dce as LOGS_DIR,npe as LearningCaptureService,LNe as LearningStore,jE as LlmExecutionPlanError,rhe as LogInterpreter,B8t as MAIN_EXAMPLES,AP as MANAGED_AGENT_BUDGET_ACCOUNTING_MODE,xP as MANAGED_AGENT_BUDGET_CONTRACT_VERSION,iet as MANAGED_AGENT_BUDGET_TERMINATION_KINDS,C2e as MANAGED_WORKTREE_METADATA_DIR,EX as MAX_BACKUP_FILES,isr as MAX_CACHE_SIZE_BYTES,TP as MAX_COMMAND_OUTPUT_TOKENS,tsr as MAX_DYNAMIC_STREAM_BLOCKS,UYt as MAX_FILES_PER_OPERATION,n2e as MAX_FILE_READ_TOKENS,jYt as MAX_FILE_SIZE_BYTES,vce as MAX_HISTORY_LENGTH,rsr as MAX_INDEXED_FILES,wD as MAX_MEMORY_INDEX_LINE_CHARS,Zv as MAX_MEMORY_LINES,QYt as MAX_RETRY_ATTEMPTS,r2e as MAX_SEARCH_RESULT_TOKENS,i2e as MCP_RECONNECT_DEFAULTS,gVe as MEMORY_ARCHIVE_DIR,kX as MEMORY_DIR,nh as MEMORY_FILE_NAME,gCn as MEMORY_HYGIENE_INTERVAL_MS,Tet as MEMORY_INDEX_COMPACTION_TARGET_LINES,Eet as MEMORY_INDEX_CRITICAL_LINES,Cet as MEMORY_INDEX_WARNING_LINES,gYt as MEMORY_SCOPES,Ret as MEMORY_STARTUP_HYGIENE_TOPIC_FILE_LIMIT,Net as MEMORY_STARTUP_HYGIENE_TOPIC_READ_BYTES,GD as MODEL_ALIASES,hsr as MODEL_GROUP_CUSTOM,ltt as MODEL_ID_PATTERN,F0 as ManagedWorktreeLifecycleError,ket as NOVA_LOCAL_MD_FILE_NAME,mce as NOVA_MD_FILE_NAME,net as NOVA_TOOLS_RPC_ERROR_CODES,qae as NOVA_TOOLS_RPC_METHODS,yir as NOVA_TOOLS_RPC_MODE,m8t as NO_SUBSCRIPTION_DAILY_TOKEN_LIMIT,sVe as NoopRuntimeTurnEventRecorder,N1t as NovaDaemonService,j1t as NovaToolsRpcApprovalBridge,B1t as NovaToolsRpcDispatcher,H1t as NovaToolsRpcStdioTransport,Wp as OPENAI_OAUTH,d_ as OPENAI_USAGE,Y3e as ObservabilityService,Yue as OpenAIOAuthService,$me as OpenAIUsageService,zL as PDF_RENDER_DEFAULT_FILE_PREFIX,GV as PDF_RENDER_DEFAULT_FORMAT,FV as PDF_RENDER_DEFAULT_SCALE,QL as PDF_RENDER_MAX_SCALE,hce as PDF_RENDER_SUPPORTED_FORMATS,rT as PLAN_EVIDENCE_SCHEMA_VERSION,dpt as POST_VERIFICATION_CHECKPOINT_VERSION,SP as PROJECTS_DIR,lce as PROJECT_COMPASS_DIR,wb as PROJECT_MEMORY_SCOPE,WV as PROVIDERS,PX as PROVIDER_ENV_VARS,aU as PlanEvidenceAccumulator,ahe as PlanGenerator,dH as ProcessLocalMediaSidecar,L8t as QUOTA_FALLBACK_REASONS,gir as RENDERER_SWITCH_SNAPSHOT_SCHEMA_VERSION,uet as RESEARCH_BUILTIN_AGENT_NAME,$Yt as RETRY_AFTER_ENABLED,KYt as RETRY_AFTER_MAX_DELAY_MS,zYt as RETRY_BASE_DELAY_MS,qYt as RETRY_JITTER_FACTOR,ett as RETRY_MAX_DELAY_MS,ule as ROLLING_WINDOW_HOURS,lle as ROLLING_WINDOW_MS,Aet as RULES_DIR,Hir as RUNTIME_STATE_LOCATIONS,OS as RUNTIME_STATE_MACHINE_STATES,Hx as RUNTIME_STATE_TRANSITION_REASONS,rQ as RUNTIME_TELEMETRY_BRIDGE_EVENT_NAMES,nle as RUNTIME_TELEMETRY_CAPABILITY_KINDS,Ilr as RUNTIME_TELEMETRY_RECORDER_FAILURE_SINKS,vlr as RUNTIME_TELEMETRY_RECORDER_STATUSES,Dnt as RUNTIME_TELEMETRY_SCHEMA_VERSION,G8t as RUNTIME_TELEMETRY_SINKS,fY as RUNTIME_TELEMETRY_TOOL_KINDS,wlr as RUNTIME_TELEMETRY_UPLOAD_STATUSES,BSe as RUNTIME_TURN_EVENTS_DIR,Wnt as RUNTIME_TURN_EVENT_NAMES,ylr as RUNTIME_TURN_TERMINAL_STATUSES,blr as RUNTIME_TURN_TOOL_STATUSES,$de as RemediationProposalService,QPe as RemoteSshExecutor,jme as RuntimeLoopDetector,AX as SAVED_SESSIONS_DIR,Ynt as SCHEDULE_FILE_NAME,Z8t as SERVER_QUOTA_BACKEND_PLAN_TYPES,V8t as SERVER_QUOTA_BUCKET_KEYS,sQ as SERVER_QUOTA_PREFLIGHT_ROUTE,ike as SERVER_QUOTA_PREFLIGHT_TIMEOUT_MS,D8t as SERVER_QUOTA_SNAPSHOT_SOURCES,M8t as SERVER_QUOTA_SNAPSHOT_TTL_MS,W8t as SERVER_QUOTA_STATUSES,O8t as SERVER_QUOTA_UNLIMITED_SENTINEL,mY as SERVER_QUOTA_WINDOW_SECONDS,NYt as SESSION_EXPIRY_DAYS,wX as SESSION_FILE_NAME,Gd as SHARED_MEMORY_SCOPE,gX as SHELL_COMMAND_BATCH_MAX_COMMANDS,qL as SHELL_COMMAND_MAX_TIMEOUT_MS,Ice as SHELL_COMMAND_TIMEOUT_MS,USe as SKILL_SOURCE_PRIORITY,Nwt as SLASH_COMMANDS,_Fe as SPAWN_AGENT_CAPACITY_ERROR_CODE,kE as SPAWN_AGENT_CONTRACT_VERSION,qKe as SPAWN_AGENT_RECOVERY_CONTRACT_VERSION,bFe as SPAWN_AGENT_RECURSION_ERROR_CODE,YL as SPAWN_WORKTREE_ISOLATION_CONTRACT_VERSION,Zue as SYSTEM_PROMPT_RUNTIME_INSERTION_ANCHOR_ID,TX as SYSTEM_PROMPT_SEGMENT_SEPARATOR,iQ as SYSTEM_UTILITIES,Jue as SessionManager,UPe as ShellExecutor,AQ as SlackWorkflowMessagingGateway,yO as SpawnAgentCapacityError,T$ as SpawnAgentRecursionError,TCn as StepStatus,Kme as StepTracker,CCn as StepType,tke as TASK_ID_PREFIX,ole as TASK_ID_RANDOM_LENGTH,Hnt as TASK_STATUSES,fce as TEMP_DIR,KLt as TERMINAL_TOOL_STATUSES,jnt as TOKEN_LIMITS_STORE_FILENAME,Jnt as TOKEN_LIMITS_STORE_VERSION,Hlr as TOKEN_LIMIT_MESSAGES,Nlr as TOKEN_LIMIT_WARNING_THRESHOLD_PERCENT,Met as TOKEN_WARNING_THRESHOLD,Knt as TOOL_EXPOSURE_ROLLOUT_SALT_REVISION,att as TOOL_READ_BLOCKLIST_DIRS,ott as TOOL_READ_BLOCKLIST_PATTERNS,ret as TaskExecutionStatus,ECn as TaskStatus,SQ as TeamsWorkflowMessagingGateway,V1t as TokenLimitEnforcer,bet as TokenLimitExceededError,fCe as TokenLimitStore,gCe as TokenTracker,cpe as ToolRegistry,Znt as UTILITY_DETECTION_CACHE_TTL,Ont as UTILITY_DETECTION_TIMEOUT,iHt as VALID_PLAN_TYPES,nHt as VALID_SCHEMA_TYPES,nce as VERIFICATION_BUILTIN_AGENT_NAME,tIs as VERSION,che as Verifier,_ht as WORKFLOW_PROMPTS,Htt as WORKSPACE_RUNTIME_STATE_DIRECTORIES,Utt as WORKSPACE_RUNTIME_STATE_FILES,the as WorkflowAnalyticsService,ihe as WorkflowManager,lhe as WorkflowOrchestrator,MSe as WorkflowPhase,DCn as WorkflowState,sCn as agui,qvt as appendRuntimeQueuedPromptsIntoMessages,xat as appendSystemPromptSegment,Hfi as applyCompletion,_Pr as applyPatch,hPr as areIdentical,Pit as assessPlanApprovalIntegrity,Uz as attachProviderErrorRetryMetadata,Jq as auditMemory,Bq as auditSharedMemory,Git as bindApprovedPlanEvidence,jce as buildAtomicTempFileName,h$ as buildCompiledSystemPrompt,Hdt as buildLearningHookContext,iPe as buildLearningPromptSection,qD as buildProviderErrorRetryMetadata,tA as buildResponseLanguageInstruction,K3e as buildRuntimeMaxTokenContinuationPrompt,Kmn as buildSystemPrompt,Hht as buildSystemPromptSegments,kCn as buildWorkflowExtractionPrompt,eDr as cached,tDr as cachedTokenCount,Dxr as calculateContextUsagePercent,S8t as calculateModelCost,Gxr as calculateRemainingTokens,Kbt as cancelManagedWorktree,QY as checkQuota,CD as checkScanBudget,pft as classifyMemoryIndexCapacity,aTn as classifyRuntimeAgenticStop,rsi as cleanupWorktree,Mur as colorByStatus,pPr as colorizeDiff,uft as compactMemoryPathForDisplay,pYt as compareAgentPriority,Pir as compareHookPriority,k8t as compareModels,Mir as compareSkillPriority,E0 as compileSystemPrompt,oCn as computeBackoffDelay,RD as copy,wAr as createActionLogger,hX as createActivePlanConflict,mX as createActivePlanIdentity,upe as createAgentToolCapabilityProfile,jW as createAutomationStateStore,KD as createChatArchivalService,Mpi as createCheckpointManager,tRe as createCodebaseIndexer,O_r as createCompassAuthService,RIr as createCompassLlmResolverService,svt as createCompassUsageRequestService,KOr as createComplexityClassifier,Hxr as createContextBuilder,Qjt as createCredentialStore,uYt as createDefaultAgentDefinition,hkn as createDefaultAutomationState,cet as createDefaultBudget,rir as createDefaultConsent,Cir as createDefaultRatingState,tZr as createEnhancedContextGatherer,A2e as createEphemeralImageToolResult,sNr as createFailurePatternAnalyzer,iir as createFullConsent,MVr as createGitService,ftn as createIgnoreMatcher,Jpi as createInteractiveClarifier,e1t as createJsonlRuntimeTurnEventRecorder,uNr as createLearningCaptureService,Hpi as createLogInterpreter,sir as createMinimalConsent,t1t as createNoopRuntimeTurnEventRecorder,Sbr as createOpenAIOAuthService,spi as createOpenAIUsageService,Xpi as createPlanGenerator,fIr as createProcessLocalMediaSidecar,tNr as createRemediationProposalService,gdn as createRemoteSshExecutor,U3e as createRuntimeLoopDetectionDiagnostic,jvt as createRuntimeLoopDetectionScope,Oui as createRuntimeTurnEventDraftBase,Xme as createRuntimeTurnId,JV as createScanBudget,Zce as createScanTruncationMetadata,set as createSpawnAgentContextManifest,Ppi as createStepTracker,j3e as createSyntheticBlockedToolResult,nH as createSystemPromptSegment,lir as createTextBlock,dir as createThinkingBlock,JP as createTokenLimitStore,pir as createToolBlock,GNr as createToolRegistry,Hb as createToolsRpcError,zpi as createVerifier,Vpi as createWorkflowAnalyticsService,jpi as createWorkflowManager,PXt as createWorkflowMessagingGateway,$pi as createWorkflowOrchestrator,YKe as decidePersistedPlanRecovery,UL as decideRuntimeContinuation,htt as decrypt,KNe as deriveFailureKindsFromLoop,DAn as discoverManagedWorktrees,mtt as encrypt,Qa as ensureDir,gun as ensureMemoryDir,hun as ensureSharedMemoryDir,ddn as estimateCacheValueSize,Pxr as estimateConversationTokens,Ilt as estimateSystemPromptTokens,ip as estimateTokens,aee as evaluateRuntimeRecovery,pfi as executeSlashCommand,nwt as extractCodeBlocks,twt as extractMentions,RZ as extractProviderErrorRetryMetadata,Npi as extractWorkflow,$bt as finishManagedWorktree,Vot as flushTokenUsage,jlr as formatAfterHelpText,kur as formatAgenticLoopElapsed,Jlr as formatCommandAfterHelp,Lhi as formatCommandHelp,Eur as formatCost,Aur as formatDate,Sur as formatDuration,Cur as formatFileSize,Ohi as formatFullHelp,cpi as formatHealthSummary,UEn as formatHelpCategory,xcn as formatLearningPromptSection,Fur as formatList,hpi as formatMemoryHygieneSummary,vJt as formatPercent,Gur as formatProgressBar,Tur as formatRelativeTime,HKe as formatRuntimeContinuationStatus,Jme as formatRuntimeLoopInputFingerprint,gpi as formatStartupMemoryHygieneSummary,Nn as formatTimestamp,Rur as formatTokenCount,Mxr as formatTokenDisplay,OH as generateDiff,fPr as generateDiffSummary,ZEn as generateGreeting,ysr as generateSecureRandom,mPr as generateWordDiff,HZ as getActionLogger,VSe as getAgentSourcePriority,bY as getAiCreditReceiptLedgerTotal,ih as getAnthropicClient,vl as getApprovalManager,w8t as getAvailableAliases,v8t as getAvailableModelIds,aT as getAvailableModels,rR as getBackupManager,Kar as getBasename,tce as getBudgetUsagePercent,$ce as getBuiltInSubagentDefaultModel,Clr as getBuiltinAgent,Elr as getBuiltinAgentNames,iO as getCacheService,gPr as getChangedLineCount,C8t as getCheapestModel,Fy as getCheckpointManager,Ejt as getCodebaseIndexCachePath,Btt as getCodebaseIndexCachePaths,aG as getCodebaseIndexer,Zm as getCompassAuthService,fH as getCompassLlmResolverService,ivt as getCompassUsageRequestService,Ffi as getCompletions,$pe as getComplexityClassifier,El as getConfigManager,Qz as getConsentManager,oW as getContextBuilder,Wxr as getContextUsageColor,Kli as getConversationCompactor,vu as getCredentialStore,y8t as getCustomModelCount,x8t as getDefaultModel,A8t as getDefaultModelId,Ype as getEnhancedContextGatherer,zi as getEventEmitter,$ar as getExtension,iNr as getFailurePatternAnalyzer,CT as getFileService,Co as getGlobalCompassDir,_fi as getHistoryManager,fet as getHookSourcePriority,$1t as getInteractiveClarifier,Ldt as getLearningCaptureService,Fq as getLearningStore,Xar as getLegacyWorkspaceCompassDir,Q1t as getLogInterpreter,Lce as getManagedWorktreeMetadataDir,Xtt as getManagedWorktreeMetadataPath,BV as getManagedWorktreesDir,fun as getMemoryCacheKey,lft as getMemoryFilePath,RT as getMemoryScopeDescriptor,_Pe as getMissingAgentToolCapabilities,za as getModelConfig,N8t as getModelDescription,K2e as getModelDisplayName,Kce as getModelKnowledgeCutoff,R8t as getModelTier,mCe as getModelTokens,T8t as getModelsByCapability,E8t as getMostCapableModel,Zli as getObservabilityService,aH as getOpenAIOAuthService,ipi as getOpenAIUsageService,VGe as getPersonalityReinforcement,m$ as getPersonalitySection,wVe as getPlanGenerator,Dl as getProjectCompassDir,sR as getProjectMemoryDir,gG as getProjectSlug,zar as getRelativePath,bX as getRemainingBudget,Kde as getRemediationProposalService,zPe as getRemoteSshExecutor,jtt as getRuntimeStateRoot,Fot as getServerQuotaDecision,Bl as getSessionManager,_G as getSharedMemoryDir,cft as getSharedMemoryFilePath,Pg as getShellExecutor,mNr as getSkillLearningExposures,het as getSkillSourcePriority,uwt as getSlashCommandRegistry,oet as getSpawnAgentContextBoundaryViolations,s4 as getStepTracker,M3e as getSystemUtilitiesPromptSection,nkn as getSystemUtilityDetector,Kfi as getTaskProcessor,BP as getTokenTracker,ert as getToolExposureCohortScore,Aw as getToolRegistry,Rlr as getUtilitiesByCategory,ewt as getVerifier,nhe as getWorkflowAnalyticsService,Upi as getWorkflowManager,Ple as getWorkflowMessagingGateway,qpi as getWorkflowOrchestrator,ED as getWorkspaceIdentityPath,Yce as getWorkspaceRuntimeStateIgnorePatterns,Jtt as getWorkspaceStateDir,Oce as getWorkspaceStateId,UX as getWorkspaceStatePath,jX as getWorkspaceStatePaths,Kpe as groundPlanWithEvidence,g8t as hasFullAccess,gtt as hash,tTn as hashRuntimeLoopInput,bsr as hmac,K8t as hydrateToolExposureState,B3e as inferRuntimeRecoveryFailureCategory,Zz as insertRuntimeSystemPromptSegment,Aat as insertSystemPromptSegmentBefore,cA as interpolateTemplate,aft as invalidateMemoryCache,Air as isAgentProcessStatus,mpt as isAgentToolCapabilityId,I8t as isAnthropicModel,sce as isApprovedActiveLearning,TSe as isAutomationState,IX as isBudgetExceeded,Sir as isBudgetStrategy,b8t as isCustomModel,QV as isDirectory,xce as isFallbackTriggerCode,D2e as isFile,bCn as isMemoryHygieneScanDue,Dir as isMemoryScope,Ag as isPathWithin,dke as isPlanToolExposed,UKe as isPreservedModelSelection,qme as isProcessLive,kir as isResumable,Dat as isRetryableStatusCode,tir as isRuntimeResolvedModel,dCe as isServerQuotaSnapshotExpired,k$ as isSpawnAgentCapacityError,Ugt as isSpawnAgentRecursionError,fir as isStreamBlockPayloadImmutable,yX as isSubagentQuestionRouting,Dx as isTerminalStatus,eYt as isTerminalToolStatus,nYt as isThinkingStreamBlockTerminal,dle as isToolExposureSessionInCohort,tYt as isToolStreamBlockTerminal,LSe as isValidAgentFrontmatter,OSe as isValidAgentPermissionMode,cYt as isValidAgentSource,Brr as isValidAnthropicConfig,lYt as isValidCLIAgentConfig,jSe as isValidChatArchive,Jrr as isValidCompassConfig,Krr as isValidConfigFile,JLt as isValidConsent,nir as isValidConsentRecord,rHt as isValidCustomModel,utt as isValidCustomModelRegistry,HSe as isValidHookEvent,Nir as isValidHookFrontmatter,Rir as isValidHookSource,Zir as isValidLearningApplicationSurface,Vir as isValidLearningApprovalState,tle as isValidModel,xir as isValidNotificationStyle,Xrr as isValidProjectConfig,Eir as isValidRatingState,Qrr as isValidSafetyConfig,wce as isValidSchemaType,qrr as isValidSessionConfig,hYt as isValidSkillContext,Fir as isValidSkillFrontmatter,Gir as isValidSkillSource,tfi as isValidSlashCommand,zrr as isValidUIConfig,Iir as isValidUpdateCheckResult,vir as isValidUpdateConfig,$rr as isValidUpdateSettingsConfig,wir as isValidUpdateType,eke as isWorkflowCapabilityEnabled,rH as joinSystemPromptSegments,UK as listManagedWorktrees,xpe as loadAllMemory,IFr as loadAutoMemory,_8t as loadCustomModelsIntoCache,_un as loadNovaInstructions,vFr as loadSharedMemory,H as logger,mir as markStreamBlockCommitted,f$t as maskSensitiveSystemPromptSegments,Hce as matchesPattern,Lgt as mergePlanEvidenceSnapshots,GE as modelSupportsEffort,GSe as normalizeActivePlanRevision,iKt as normalizeArchiveRecallLimit,Lh as normalizeBuiltInSpawnableAgentName,dKt as normalizeCompassLlmExecutionPlan,pKt as normalizeCompassLlmResolverResponse,Wir as normalizeMemoryScope,cX as normalizePlanResumeRouteKey,VKe as normalizePlanResumeSelector,ple as normalizePlanSessionOwnership,LKe as normalizeQueuedContinuationAuthority,uH as normalizeResponseLanguageCode,eTn as normalizeRuntimeLoopDetectionConfig,J3e as normalizeRuntimeRecoveryPolicy,qar as normalizeSeparators,SZ as normalizeSystemPromptSegments,GCn as normalizeToolsRpcError,Pur as padString,yY as parseAiCreditNanoUnits,OCn as parseArgs,Yjt as parseAtomicTempFileName,efi as parseInput,uCe as parseServerQuota,Got as parseServerQuotaConfig,BL as parseToolsList,ps as pathExists,JT as persistManagedWorktreeMetadata,QKe as policyAllowsApprovalRequest,pX as policyAllowsTool,qLt as policyFromAgentPermissionMode,zLt as policyFromApprovalMode,lTn as preflightRuntimeBudgetCheck,zbt as prepareDirtyTreeWorktree,VH as preparePlanExecution,Qcn as preparePlanTaskExecution,Spi as prepareWorkflowExtractionInput,p$t as prependSystemPromptSegment,ND as readDir,DP as recordAiCreditReceipt,trt as recordSessionOwnedPlan,S2e as redactCompatibleToolResult,YX as redactEphemeralImageToolResult,F3e as registerBuiltInTools,mfi as registerRequestUsageCommand,phe as registerSlashCommand,y0 as remove,Phi as renderBanner,Ghi as renderMiniBanner,Fhi as renderWelcome,qCn as requestUsageCommand,zCn as requestUsageHandler,Mnt as requireWorkflowCapability,KMr as resetCacheService,XD as resetIfExpired,hpt as resolveAgentToolCapabilities,sct as resolveAgenticLoopRoutingContext,XKe as resolveAutonomyPolicy,zme as resolveDaemonPath,qz as resolveEligibleExecutionTargets,Qtt as resolveGlobalPath,iu as resolveModelId,Bnt as resolvePlanLimits,rrt as resolvePlanToolExposure,Qar as resolveProjectPath,iT as resolveSpawnableAgentName,hY as resolveToolExposureControls,Sb as resolveWorkflowCapabilities,wke as restoreAiCreditAccounting,rVe as runAgenticRuntime,ypi as runAllMemoryHygiene,F1t as runMemoryHygiene,lpi as runSessionHealthCleanup,fu as safeReadFile,cd as safeReadJson,Sg as safeWriteFile,Id as safeWriteJson,oY as sanitizePath,E$t as sanitizeRetryAfterHeader,mpi as scanAllMemoryHygiene,_pi as scanAllMemoryHygieneIfDue,_Ve as scanMemoryHygiene,mCn as scanSessionHealth,Isr as secureCompare,wcn as selectLearningPromptItems,rh as serializeAiCreditAccounting,dYt as serializeToolsList,uke as sessionOwnsPlan,cme as setupWorktree,WS as shouldExcludeWorkspaceRuntimeStatePath,gxr as shouldIgnoreByDefault,C1t as startAutomationWebhookDispatcher,f_ as stat,E1t as stopAutomationWebhookDispatcher,fJt as sumAiCreditReceiptLedger,xue as sumAllUsage,pQ as toCanonicalAiCreditNanoUnits,RE as toForwardSlashes,lX as toRuntimeContinuationDecisionMetadata,ict as toRuntimeRoutingFailure,aet as toSpawnAgentPollingCommunication,Nur as truncate,mle as validateAiCreditReceipt,TD as validateEphemeralImageToolResult,Wce as validateEphemeralToolResult,n3e as validateManagedWorktreeState,spt as validatePlanEvidenceGrounding,fPe as validatePlanEvidenceLocators,Dce as validateRedactedEphemeralImageToolResult,lke as validateToolExposureConfig,Fxr as wouldExceedContext};
|
|
4672
4672
|
/*! Bundled license information:
|
|
4673
4673
|
|
|
4674
4674
|
typescript/lib/typescript.js:
|