@compass-ai/nova 1.0.41 → 1.0.42

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/README.md CHANGED
@@ -232,8 +232,8 @@ Nova supports multiple AI models — switch anytime with `/model`:
232
232
  | **Claude Opus 4.5** | Complex reasoning, architecture decisions |
233
233
  | **Claude Sonnet 4.5** | Balanced performance (default) |
234
234
  | **Claude Haiku 4.5** | Fast iterations, quick tasks |
235
- | **Ollama** | Local/private, offline capable |
236
- | **GLM 4.7, Minimax, Kimi, Gemini** | Alternative providers |
235
+ | **Ollama** | Cloud/Local/Private, offline capable |
236
+ | **GLM 4.7, Minimax, Kimi, Gemini** | Alternative models |
237
237
 
238
238
  All models support:
239
239
  - 200K token context window
package/dist/cli.js CHANGED
@@ -30,7 +30,7 @@ Expecting one of '${s.join("', '")}'`);let c=`${t}Help`;return this.on(c,u=>{let
30
30
  `:`
31
31
  `)+n,c=s+1,s=i.indexOf(`
32
32
  `,c)}while(s!==-1);return u+=i.slice(c),u}var jCt=ar(()=>{});function ire(i){return a5r(i)}var UCt,XCt,EYe,GJ,nre,QCt,DJ,s5r,a5r,FYe,o5r,c5r,TYe,Q0e,l5r,u5r,nNn,B,Yd=ar(()=>{MCt();LCt();jCt();({stdout:UCt,stderr:XCt}=HCt),EYe=Symbol("GENERATOR"),GJ=Symbol("STYLER"),nre=Symbol("IS_EMPTY"),QCt=["ansi","ansi","ansi256","ansi16m"],DJ=Object.create(null),s5r=(i,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let n=UCt?UCt.level:0;i.level=t.level===void 0?n:t.level},a5r=i=>{let t=(...n)=>n.join(" ");return s5r(t,i),Object.setPrototypeOf(t,ire.prototype),t};Object.setPrototypeOf(ire.prototype,Function.prototype);for(let[i,t]of Object.entries(YE))DJ[i]={get(){let n=Q0e(this,TYe(t.open,t.close,this[GJ]),this[nre]);return Object.defineProperty(this,i,{value:n}),n}};DJ.visible={get(){let i=Q0e(this,this[GJ],!0);return Object.defineProperty(this,"visible",{value:i}),i}};FYe=(i,t,n,...s)=>i==="rgb"?t==="ansi16m"?YE[n].ansi16m(...s):t==="ansi256"?YE[n].ansi256(YE.rgbToAnsi256(...s)):YE[n].ansi(YE.rgbToAnsi(...s)):i==="hex"?FYe("rgb",t,n,...YE.hexToRgb(...s)):YE[n][i](...s),o5r=["rgb","hex","ansi256"];for(let i of o5r){DJ[i]={get(){let{level:n}=this;return function(...s){let c=TYe(FYe(i,QCt[n],"color",...s),YE.color.close,this[GJ]);return Q0e(this,c,this[nre])}}};let t="bg"+i[0].toUpperCase()+i.slice(1);DJ[t]={get(){let{level:n}=this;return function(...s){let c=TYe(FYe(i,QCt[n],"bgColor",...s),YE.bgColor.close,this[GJ]);return Q0e(this,c,this[nre])}}}}c5r=Object.defineProperties(()=>{},{...DJ,level:{enumerable:!0,get(){return this[EYe].level},set(i){this[EYe].level=i}}}),TYe=(i,t,n)=>{let s,c;return n===void 0?(s=i,c=t):(s=n.openAll+i,c=t+n.closeAll),{open:i,close:t,openAll:s,closeAll:c,parent:n}},Q0e=(i,t,n)=>{let s=(...c)=>l5r(s,c.length===1?""+c[0]:c.join(" "));return Object.setPrototypeOf(s,c5r),s[EYe]=i,s[GJ]=t,s[nre]=n,s},l5r=(i,t)=>{if(i.level<=0||!t)return i[nre]?"":t;let n=i[GJ];if(n===void 0)return t;let{openAll:s,closeAll:c}=n;if(t.includes("\x1B"))for(;n!==void 0;)t=JCt(t,n.close,n.open),n=n.parent;let u=t.indexOf(`
33
- `);return u!==-1&&(t=BCt(t,c,s,u)),s+t+c};Object.defineProperties(ire.prototype,DJ);u5r=ire(),nNn=ire({level:XCt?XCt.level:0}),B=u5r});var GYe,ore,DYe=ar(()=>{"use strict";GYe="1.0.0",ore={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}}});function tSt(i,t=0){return(SI[i[t+0]]+SI[i[t+1]]+SI[i[t+2]]+SI[i[t+3]]+"-"+SI[i[t+4]]+SI[i[t+5]]+"-"+SI[i[t+6]]+SI[i[t+7]]+"-"+SI[i[t+8]]+SI[i[t+9]]+"-"+SI[i[t+10]]+SI[i[t+11]]+SI[i[t+12]]+SI[i[t+13]]+SI[i[t+14]]+SI[i[t+15]]).toLowerCase()}var SI,rSt=ar(()=>{SI=[];for(let i=0;i<256;++i)SI.push((i+256).toString(16).slice(1))});import{randomFillSync as b5r}from"node:crypto";function NYe(){return z0e>q0e.length-16&&(b5r(q0e),z0e=0),q0e.slice(z0e,z0e+=16)}var q0e,z0e,nSt=ar(()=>{q0e=new Uint8Array(256),z0e=q0e.length});import{randomUUID as I5r}from"node:crypto";var RYe,iSt=ar(()=>{RYe={randomUUID:I5r}});function v5r(i,t,n){i=i||{};let s=i.random??i.rng?.()??NYe();if(s.length<16)throw new Error("Random bytes length must be >= 16");if(s[6]=s[6]&15|64,s[8]=s[8]&63|128,t){if(n=n||0,n<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let c=0;c<16;++c)t[n+c]=s[c];return t}return tSt(s)}function x5r(i,t,n){return RYe.randomUUID&&!t&&!i?RYe.randomUUID():v5r(i,t,n)}var Al,sSt=ar(()=>{iSt();nSt();rSt();Al=x5r});var Pv=ar(()=>{sSt()});var $0e,RJ,cre,WYe,aSt,K0e,oSt,cSt,lre,lSt,PYe,ZYe,VYe,MYe,JR,OYe,w5r,GP,$9,hA,uSt,dSt,pSt,fSt,Ah=ar(()=>{"use strict";$0e=".compass",RJ=".compass",cre="config.json",WYe="session.json",aSt="consent.json",K0e="credentials.enc",oSt="logs",cSt="backups",lre="saved-sessions",lSt="index",PYe="commands",ZYe="agents",VYe="skills",MYe="hooks",JR="claude-sonnet-4-5-20250929",OYe="haiku",w5r="banner",GP={anthropic:{model:JR,maxTokens:16384,temperature:.6},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:1048576,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:50,backupBeforeModify:!0,shellCommandTimeout:3e4,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:{theme:"auto",showTokenUsage:!0,showTimestamps:!1,compactMode:!1,animationsEnabled:!0,colorOutput:!0},session:{autoSave:!0,autoSaveInterval:6e4,maxHistoryLength:100,autoCompactThreshold:5e4,sessionExpiryDays:30},update:{checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:w5r,includePrerelease:!1},agentic:{maxIterations:200,costWarningThreshold:5,costHardCap:0,autoCompactAtPercent:80,stuckDetectionEnabled:!0,stuckDetectionThreshold:3,maxIterationsPerTask:50}},$9=["anthropic","ollama","zai","minimax"],hA={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",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE"},uSt={anthropic:hA.API_KEY,ollama:hA.OLLAMA_API_KEY,zai:hA.ZAI_API_KEY,minimax:hA.MINIMAX_API_KEY},dSt="1.0.41",pSt=["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","*.sql","*.csv","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],fSt=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"]});import EG from"path";import A5r from"os";function Hc(){return EG.join(A5r.homedir(),$0e)}function su(i){let t=i||process.cwd();return EG.join(t,RJ)}function WJ(i,t){let n=EG.resolve(t),s=EG.resolve(n,i);return s!==n&&!s.startsWith(n+EG.sep)?null:s}function K9(i,t){let n=EG.resolve(t),s=EG.resolve(i);return s===n||s.startsWith(n+EG.sep)}function mSt(i,t){return EG.relative(t,i)}function eM(i){return i.replace(/\\/g,"/")}function eye(i,t){let n=eM(i);for(let s of t)if(k5r(s).test(n))return!0;return!1}function k5r(i){let t=i.replace(/[.+^${}()|[\]\\]/g,"\\$&");return t=t.replace(/\*\*/g,"{{GLOBSTAR}}"),t=t.replace(/\*/g,"[^/]*"),t=t.replace(/\?/g,"[^/]"),t=t.replace(/{{GLOBSTAR}}/g,".*"),new RegExp(`^${t}$`)}function ure(...i){return EG.resolve(...i)}var sf=ar(()=>{"use strict";Ah()});var Sb=qe(YYe=>{"use strict";YYe.fromCallback=function(i){return Object.defineProperty(function(...t){if(typeof t[t.length-1]=="function")i.apply(this,t);else return new Promise((n,s)=>{t.push((c,u)=>c!=null?s(c):n(u)),i.apply(this,t)})},"name",{value:i.name})};YYe.fromPromise=function(i){return Object.defineProperty(function(...t){let n=t[t.length-1];if(typeof n!="function")return i.apply(this,t);t.pop(),i.apply(this,t).then(s=>n(null,s),n)},"name",{value:i.name})}});var _St=qe((WNn,hSt)=>{var DP=ji("constants"),C5r=process.cwd,tye=null,S5r=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return tye||(tye=C5r.call(process)),tye};try{process.cwd()}catch{}typeof process.chdir=="function"&&(HYe=process.chdir,process.chdir=function(i){tye=null,HYe.call(process,i)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,HYe));var HYe;hSt.exports=E5r;function E5r(i){DP.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(i),i.lutimes||n(i),i.chown=u(i.chown),i.fchown=u(i.fchown),i.lchown=u(i.lchown),i.chmod=s(i.chmod),i.fchmod=s(i.fchmod),i.lchmod=s(i.lchmod),i.chownSync=m(i.chownSync),i.fchownSync=m(i.fchownSync),i.lchownSync=m(i.lchownSync),i.chmodSync=c(i.chmodSync),i.fchmodSync=c(i.fchmodSync),i.lchmodSync=c(i.lchmodSync),i.stat=b(i.stat),i.fstat=b(i.fstat),i.lstat=b(i.lstat),i.statSync=x(i.statSync),i.fstatSync=x(i.fstatSync),i.lstatSync=x(i.lstatSync),i.chmod&&!i.lchmod&&(i.lchmod=function(F,R,T){T&&process.nextTick(T)},i.lchmodSync=function(){}),i.chown&&!i.lchown&&(i.lchown=function(F,R,T,P){P&&process.nextTick(P)},i.lchownSync=function(){}),S5r==="win32"&&(i.rename=typeof i.rename!="function"?i.rename:(function(F){function R(T,P,V){var J=Date.now(),ae=0;F(T,P,function fe(Pe){if(Pe&&(Pe.code==="EACCES"||Pe.code==="EPERM"||Pe.code==="EBUSY")&&Date.now()-J<6e4){setTimeout(function(){i.stat(P,function(_t,gt){_t&&_t.code==="ENOENT"?F(T,P,fe):V(Pe)})},ae),ae<100&&(ae+=10);return}V&&V(Pe)})}return Object.setPrototypeOf&&Object.setPrototypeOf(R,F),R})(i.rename)),i.read=typeof i.read!="function"?i.read:(function(F){function R(T,P,V,J,ae,fe){var Pe;if(fe&&typeof fe=="function"){var _t=0;Pe=function(gt,jt,Xt){if(gt&&gt.code==="EAGAIN"&&_t<10)return _t++,F.call(i,T,P,V,J,ae,Pe);fe.apply(this,arguments)}}return F.call(i,T,P,V,J,ae,Pe)}return Object.setPrototypeOf&&Object.setPrototypeOf(R,F),R})(i.read),i.readSync=typeof i.readSync!="function"?i.readSync:(function(F){return function(R,T,P,V,J){for(var ae=0;;)try{return F.call(i,R,T,P,V,J)}catch(fe){if(fe.code==="EAGAIN"&&ae<10){ae++;continue}throw fe}}})(i.readSync);function t(F){F.lchmod=function(R,T,P){F.open(R,DP.O_WRONLY|DP.O_SYMLINK,T,function(V,J){if(V){P&&P(V);return}F.fchmod(J,T,function(ae){F.close(J,function(fe){P&&P(ae||fe)})})})},F.lchmodSync=function(R,T){var P=F.openSync(R,DP.O_WRONLY|DP.O_SYMLINK,T),V=!0,J;try{J=F.fchmodSync(P,T),V=!1}finally{if(V)try{F.closeSync(P)}catch{}else F.closeSync(P)}return J}}function n(F){DP.hasOwnProperty("O_SYMLINK")&&F.futimes?(F.lutimes=function(R,T,P,V){F.open(R,DP.O_SYMLINK,function(J,ae){if(J){V&&V(J);return}F.futimes(ae,T,P,function(fe){F.close(ae,function(Pe){V&&V(fe||Pe)})})})},F.lutimesSync=function(R,T,P){var V=F.openSync(R,DP.O_SYMLINK),J,ae=!0;try{J=F.futimesSync(V,T,P),ae=!1}finally{if(ae)try{F.closeSync(V)}catch{}else F.closeSync(V)}return J}):F.futimes&&(F.lutimes=function(R,T,P,V){V&&process.nextTick(V)},F.lutimesSync=function(){})}function s(F){return F&&function(R,T,P){return F.call(i,R,T,function(V){S(V)&&(V=null),P&&P.apply(this,arguments)})}}function c(F){return F&&function(R,T){try{return F.call(i,R,T)}catch(P){if(!S(P))throw P}}}function u(F){return F&&function(R,T,P,V){return F.call(i,R,T,P,function(J){S(J)&&(J=null),V&&V.apply(this,arguments)})}}function m(F){return F&&function(R,T,P){try{return F.call(i,R,T,P)}catch(V){if(!S(V))throw V}}}function b(F){return F&&function(R,T,P){typeof T=="function"&&(P=T,T=null);function V(J,ae){ae&&(ae.uid<0&&(ae.uid+=4294967296),ae.gid<0&&(ae.gid+=4294967296)),P&&P.apply(this,arguments)}return T?F.call(i,R,T,V):F.call(i,R,V)}}function x(F){return F&&function(R,T){var P=T?F.call(i,R,T):F.call(i,R);return P&&(P.uid<0&&(P.uid+=4294967296),P.gid<0&&(P.gid+=4294967296)),P}}function S(F){if(!F||F.code==="ENOSYS")return!0;var R=!process.getuid||process.getuid()!==0;return!!(R&&(F.code==="EINVAL"||F.code==="EPERM"))}}});var bSt=qe((PNn,ySt)=>{var gSt=ji("stream").Stream;ySt.exports=F5r;function F5r(i){return{ReadStream:t,WriteStream:n};function t(s,c){if(!(this instanceof t))return new t(s,c);gSt.call(this);var u=this;this.path=s,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,c=c||{};for(var m=Object.keys(c),b=0,x=m.length;b<x;b++){var S=m[b];this[S]=c[S]}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(){u._read()});return}i.open(this.path,this.flags,this.mode,function(F,R){if(F){u.emit("error",F),u.readable=!1;return}u.fd=R,u.emit("open",R),u._read()})}function n(s,c){if(!(this instanceof n))return new n(s,c);gSt.call(this),this.path=s,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,c=c||{};for(var u=Object.keys(c),m=0,b=u.length;m<b;m++){var x=u[m];this[x]=c[x]}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=i.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var vSt=qe((ZNn,ISt)=>{"use strict";ISt.exports=G5r;var T5r=Object.getPrototypeOf||function(i){return i.__proto__};function G5r(i){if(i===null||typeof i!="object")return i;if(i instanceof Object)var t={__proto__:T5r(i)};else var t=Object.create(null);return Object.getOwnPropertyNames(i).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(i,n))}),t}});var rM=qe((VNn,BYe)=>{var Q_=ji("fs"),D5r=_St(),N5r=bSt(),R5r=vSt(),rye=ji("util"),EI,iye;typeof Symbol=="function"&&typeof Symbol.for=="function"?(EI=Symbol.for("graceful-fs.queue"),iye=Symbol.for("graceful-fs.previous")):(EI="___graceful-fs.queue",iye="___graceful-fs.previous");function W5r(){}function ASt(i,t){Object.defineProperty(i,EI,{get:function(){return t}})}var tM=W5r;rye.debuglog?tM=rye.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(tM=function(){var i=rye.format.apply(rye,arguments);i="GFS4: "+i.split(/\n/).join(`
33
+ `);return u!==-1&&(t=BCt(t,c,s,u)),s+t+c};Object.defineProperties(ire.prototype,DJ);u5r=ire(),nNn=ire({level:XCt?XCt.level:0}),B=u5r});var GYe,ore,DYe=ar(()=>{"use strict";GYe="1.0.0",ore={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}}});function tSt(i,t=0){return(SI[i[t+0]]+SI[i[t+1]]+SI[i[t+2]]+SI[i[t+3]]+"-"+SI[i[t+4]]+SI[i[t+5]]+"-"+SI[i[t+6]]+SI[i[t+7]]+"-"+SI[i[t+8]]+SI[i[t+9]]+"-"+SI[i[t+10]]+SI[i[t+11]]+SI[i[t+12]]+SI[i[t+13]]+SI[i[t+14]]+SI[i[t+15]]).toLowerCase()}var SI,rSt=ar(()=>{SI=[];for(let i=0;i<256;++i)SI.push((i+256).toString(16).slice(1))});import{randomFillSync as b5r}from"node:crypto";function NYe(){return z0e>q0e.length-16&&(b5r(q0e),z0e=0),q0e.slice(z0e,z0e+=16)}var q0e,z0e,nSt=ar(()=>{q0e=new Uint8Array(256),z0e=q0e.length});import{randomUUID as I5r}from"node:crypto";var RYe,iSt=ar(()=>{RYe={randomUUID:I5r}});function v5r(i,t,n){i=i||{};let s=i.random??i.rng?.()??NYe();if(s.length<16)throw new Error("Random bytes length must be >= 16");if(s[6]=s[6]&15|64,s[8]=s[8]&63|128,t){if(n=n||0,n<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let c=0;c<16;++c)t[n+c]=s[c];return t}return tSt(s)}function x5r(i,t,n){return RYe.randomUUID&&!t&&!i?RYe.randomUUID():v5r(i,t,n)}var Al,sSt=ar(()=>{iSt();nSt();rSt();Al=x5r});var Pv=ar(()=>{sSt()});var $0e,RJ,cre,WYe,aSt,K0e,oSt,cSt,lre,lSt,PYe,ZYe,VYe,MYe,JR,OYe,w5r,GP,$9,hA,uSt,dSt,pSt,fSt,Ah=ar(()=>{"use strict";$0e=".compass",RJ=".compass",cre="config.json",WYe="session.json",aSt="consent.json",K0e="credentials.enc",oSt="logs",cSt="backups",lre="saved-sessions",lSt="index",PYe="commands",ZYe="agents",VYe="skills",MYe="hooks",JR="claude-sonnet-4-5-20250929",OYe="haiku",w5r="banner",GP={anthropic:{model:JR,maxTokens:16384,temperature:.6},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:1048576,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:50,backupBeforeModify:!0,shellCommandTimeout:3e4,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:{theme:"auto",showTokenUsage:!0,showTimestamps:!1,compactMode:!1,animationsEnabled:!0,colorOutput:!0},session:{autoSave:!0,autoSaveInterval:6e4,maxHistoryLength:100,autoCompactThreshold:5e4,sessionExpiryDays:30},update:{checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:w5r,includePrerelease:!1},agentic:{maxIterations:200,costWarningThreshold:5,costHardCap:0,autoCompactAtPercent:80,stuckDetectionEnabled:!0,stuckDetectionThreshold:3,maxIterationsPerTask:50}},$9=["anthropic","ollama","zai","minimax"],hA={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",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE"},uSt={anthropic:hA.API_KEY,ollama:hA.OLLAMA_API_KEY,zai:hA.ZAI_API_KEY,minimax:hA.MINIMAX_API_KEY},dSt="1.0.42",pSt=["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","*.sql","*.csv","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],fSt=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"]});import EG from"path";import A5r from"os";function Hc(){return EG.join(A5r.homedir(),$0e)}function su(i){let t=i||process.cwd();return EG.join(t,RJ)}function WJ(i,t){let n=EG.resolve(t),s=EG.resolve(n,i);return s!==n&&!s.startsWith(n+EG.sep)?null:s}function K9(i,t){let n=EG.resolve(t),s=EG.resolve(i);return s===n||s.startsWith(n+EG.sep)}function mSt(i,t){return EG.relative(t,i)}function eM(i){return i.replace(/\\/g,"/")}function eye(i,t){let n=eM(i);for(let s of t)if(k5r(s).test(n))return!0;return!1}function k5r(i){let t=i.replace(/[.+^${}()|[\]\\]/g,"\\$&");return t=t.replace(/\*\*/g,"{{GLOBSTAR}}"),t=t.replace(/\*/g,"[^/]*"),t=t.replace(/\?/g,"[^/]"),t=t.replace(/{{GLOBSTAR}}/g,".*"),new RegExp(`^${t}$`)}function ure(...i){return EG.resolve(...i)}var sf=ar(()=>{"use strict";Ah()});var Sb=qe(YYe=>{"use strict";YYe.fromCallback=function(i){return Object.defineProperty(function(...t){if(typeof t[t.length-1]=="function")i.apply(this,t);else return new Promise((n,s)=>{t.push((c,u)=>c!=null?s(c):n(u)),i.apply(this,t)})},"name",{value:i.name})};YYe.fromPromise=function(i){return Object.defineProperty(function(...t){let n=t[t.length-1];if(typeof n!="function")return i.apply(this,t);t.pop(),i.apply(this,t).then(s=>n(null,s),n)},"name",{value:i.name})}});var _St=qe((WNn,hSt)=>{var DP=ji("constants"),C5r=process.cwd,tye=null,S5r=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return tye||(tye=C5r.call(process)),tye};try{process.cwd()}catch{}typeof process.chdir=="function"&&(HYe=process.chdir,process.chdir=function(i){tye=null,HYe.call(process,i)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,HYe));var HYe;hSt.exports=E5r;function E5r(i){DP.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(i),i.lutimes||n(i),i.chown=u(i.chown),i.fchown=u(i.fchown),i.lchown=u(i.lchown),i.chmod=s(i.chmod),i.fchmod=s(i.fchmod),i.lchmod=s(i.lchmod),i.chownSync=m(i.chownSync),i.fchownSync=m(i.fchownSync),i.lchownSync=m(i.lchownSync),i.chmodSync=c(i.chmodSync),i.fchmodSync=c(i.fchmodSync),i.lchmodSync=c(i.lchmodSync),i.stat=b(i.stat),i.fstat=b(i.fstat),i.lstat=b(i.lstat),i.statSync=x(i.statSync),i.fstatSync=x(i.fstatSync),i.lstatSync=x(i.lstatSync),i.chmod&&!i.lchmod&&(i.lchmod=function(F,R,T){T&&process.nextTick(T)},i.lchmodSync=function(){}),i.chown&&!i.lchown&&(i.lchown=function(F,R,T,P){P&&process.nextTick(P)},i.lchownSync=function(){}),S5r==="win32"&&(i.rename=typeof i.rename!="function"?i.rename:(function(F){function R(T,P,V){var J=Date.now(),ae=0;F(T,P,function fe(Pe){if(Pe&&(Pe.code==="EACCES"||Pe.code==="EPERM"||Pe.code==="EBUSY")&&Date.now()-J<6e4){setTimeout(function(){i.stat(P,function(_t,gt){_t&&_t.code==="ENOENT"?F(T,P,fe):V(Pe)})},ae),ae<100&&(ae+=10);return}V&&V(Pe)})}return Object.setPrototypeOf&&Object.setPrototypeOf(R,F),R})(i.rename)),i.read=typeof i.read!="function"?i.read:(function(F){function R(T,P,V,J,ae,fe){var Pe;if(fe&&typeof fe=="function"){var _t=0;Pe=function(gt,jt,Xt){if(gt&&gt.code==="EAGAIN"&&_t<10)return _t++,F.call(i,T,P,V,J,ae,Pe);fe.apply(this,arguments)}}return F.call(i,T,P,V,J,ae,Pe)}return Object.setPrototypeOf&&Object.setPrototypeOf(R,F),R})(i.read),i.readSync=typeof i.readSync!="function"?i.readSync:(function(F){return function(R,T,P,V,J){for(var ae=0;;)try{return F.call(i,R,T,P,V,J)}catch(fe){if(fe.code==="EAGAIN"&&ae<10){ae++;continue}throw fe}}})(i.readSync);function t(F){F.lchmod=function(R,T,P){F.open(R,DP.O_WRONLY|DP.O_SYMLINK,T,function(V,J){if(V){P&&P(V);return}F.fchmod(J,T,function(ae){F.close(J,function(fe){P&&P(ae||fe)})})})},F.lchmodSync=function(R,T){var P=F.openSync(R,DP.O_WRONLY|DP.O_SYMLINK,T),V=!0,J;try{J=F.fchmodSync(P,T),V=!1}finally{if(V)try{F.closeSync(P)}catch{}else F.closeSync(P)}return J}}function n(F){DP.hasOwnProperty("O_SYMLINK")&&F.futimes?(F.lutimes=function(R,T,P,V){F.open(R,DP.O_SYMLINK,function(J,ae){if(J){V&&V(J);return}F.futimes(ae,T,P,function(fe){F.close(ae,function(Pe){V&&V(fe||Pe)})})})},F.lutimesSync=function(R,T,P){var V=F.openSync(R,DP.O_SYMLINK),J,ae=!0;try{J=F.futimesSync(V,T,P),ae=!1}finally{if(ae)try{F.closeSync(V)}catch{}else F.closeSync(V)}return J}):F.futimes&&(F.lutimes=function(R,T,P,V){V&&process.nextTick(V)},F.lutimesSync=function(){})}function s(F){return F&&function(R,T,P){return F.call(i,R,T,function(V){S(V)&&(V=null),P&&P.apply(this,arguments)})}}function c(F){return F&&function(R,T){try{return F.call(i,R,T)}catch(P){if(!S(P))throw P}}}function u(F){return F&&function(R,T,P,V){return F.call(i,R,T,P,function(J){S(J)&&(J=null),V&&V.apply(this,arguments)})}}function m(F){return F&&function(R,T,P){try{return F.call(i,R,T,P)}catch(V){if(!S(V))throw V}}}function b(F){return F&&function(R,T,P){typeof T=="function"&&(P=T,T=null);function V(J,ae){ae&&(ae.uid<0&&(ae.uid+=4294967296),ae.gid<0&&(ae.gid+=4294967296)),P&&P.apply(this,arguments)}return T?F.call(i,R,T,V):F.call(i,R,V)}}function x(F){return F&&function(R,T){var P=T?F.call(i,R,T):F.call(i,R);return P&&(P.uid<0&&(P.uid+=4294967296),P.gid<0&&(P.gid+=4294967296)),P}}function S(F){if(!F||F.code==="ENOSYS")return!0;var R=!process.getuid||process.getuid()!==0;return!!(R&&(F.code==="EINVAL"||F.code==="EPERM"))}}});var bSt=qe((PNn,ySt)=>{var gSt=ji("stream").Stream;ySt.exports=F5r;function F5r(i){return{ReadStream:t,WriteStream:n};function t(s,c){if(!(this instanceof t))return new t(s,c);gSt.call(this);var u=this;this.path=s,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,c=c||{};for(var m=Object.keys(c),b=0,x=m.length;b<x;b++){var S=m[b];this[S]=c[S]}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(){u._read()});return}i.open(this.path,this.flags,this.mode,function(F,R){if(F){u.emit("error",F),u.readable=!1;return}u.fd=R,u.emit("open",R),u._read()})}function n(s,c){if(!(this instanceof n))return new n(s,c);gSt.call(this),this.path=s,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,c=c||{};for(var u=Object.keys(c),m=0,b=u.length;m<b;m++){var x=u[m];this[x]=c[x]}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=i.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var vSt=qe((ZNn,ISt)=>{"use strict";ISt.exports=G5r;var T5r=Object.getPrototypeOf||function(i){return i.__proto__};function G5r(i){if(i===null||typeof i!="object")return i;if(i instanceof Object)var t={__proto__:T5r(i)};else var t=Object.create(null);return Object.getOwnPropertyNames(i).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(i,n))}),t}});var rM=qe((VNn,BYe)=>{var Q_=ji("fs"),D5r=_St(),N5r=bSt(),R5r=vSt(),rye=ji("util"),EI,iye;typeof Symbol=="function"&&typeof Symbol.for=="function"?(EI=Symbol.for("graceful-fs.queue"),iye=Symbol.for("graceful-fs.previous")):(EI="___graceful-fs.queue",iye="___graceful-fs.previous");function W5r(){}function ASt(i,t){Object.defineProperty(i,EI,{get:function(){return t}})}var tM=W5r;rye.debuglog?tM=rye.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(tM=function(){var i=rye.format.apply(rye,arguments);i="GFS4: "+i.split(/\n/).join(`
34
34
  GFS4: `),console.error(i)});Q_[EI]||(xSt=global[EI]||[],ASt(Q_,xSt),Q_.close=(function(i){function t(n,s){return i.call(Q_,n,function(c){c||wSt(),typeof s=="function"&&s.apply(this,arguments)})}return Object.defineProperty(t,iye,{value:i}),t})(Q_.close),Q_.closeSync=(function(i){function t(n){i.apply(Q_,arguments),wSt()}return Object.defineProperty(t,iye,{value:i}),t})(Q_.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){tM(Q_[EI]),ji("assert").equal(Q_[EI].length,0)}));var xSt;global[EI]||ASt(global,Q_[EI]);BYe.exports=LYe(R5r(Q_));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!Q_.__patched&&(BYe.exports=LYe(Q_),Q_.__patched=!0);function LYe(i){D5r(i),i.gracefulify=LYe,i.createReadStream=jt,i.createWriteStream=Xt;var t=i.readFile;i.readFile=n;function n(Er,xn,Sr){return typeof xn=="function"&&(Sr=xn,xn=null),jn(Er,xn,Sr);function jn(mn,$t,Kn,Hi){return t(mn,$t,function(zt){zt&&(zt.code==="EMFILE"||zt.code==="ENFILE")?PJ([jn,[mn,$t,Kn],zt,Hi||Date.now(),Date.now()]):typeof Kn=="function"&&Kn.apply(this,arguments)})}}var s=i.writeFile;i.writeFile=c;function c(Er,xn,Sr,jn){return typeof Sr=="function"&&(jn=Sr,Sr=null),mn(Er,xn,Sr,jn);function mn($t,Kn,Hi,zt,cs){return s($t,Kn,Hi,function(fi){fi&&(fi.code==="EMFILE"||fi.code==="ENFILE")?PJ([mn,[$t,Kn,Hi,zt],fi,cs||Date.now(),Date.now()]):typeof zt=="function"&&zt.apply(this,arguments)})}}var u=i.appendFile;u&&(i.appendFile=m);function m(Er,xn,Sr,jn){return typeof Sr=="function"&&(jn=Sr,Sr=null),mn(Er,xn,Sr,jn);function mn($t,Kn,Hi,zt,cs){return u($t,Kn,Hi,function(fi){fi&&(fi.code==="EMFILE"||fi.code==="ENFILE")?PJ([mn,[$t,Kn,Hi,zt],fi,cs||Date.now(),Date.now()]):typeof zt=="function"&&zt.apply(this,arguments)})}}var b=i.copyFile;b&&(i.copyFile=x);function x(Er,xn,Sr,jn){return typeof Sr=="function"&&(jn=Sr,Sr=0),mn(Er,xn,Sr,jn);function mn($t,Kn,Hi,zt,cs){return b($t,Kn,Hi,function(fi){fi&&(fi.code==="EMFILE"||fi.code==="ENFILE")?PJ([mn,[$t,Kn,Hi,zt],fi,cs||Date.now(),Date.now()]):typeof zt=="function"&&zt.apply(this,arguments)})}}var S=i.readdir;i.readdir=R;var F=/^v[0-5]\./;function R(Er,xn,Sr){typeof xn=="function"&&(Sr=xn,xn=null);var jn=F.test(process.version)?function(Kn,Hi,zt,cs){return S(Kn,mn(Kn,Hi,zt,cs))}:function(Kn,Hi,zt,cs){return S(Kn,Hi,mn(Kn,Hi,zt,cs))};return jn(Er,xn,Sr);function mn($t,Kn,Hi,zt){return function(cs,fi){cs&&(cs.code==="EMFILE"||cs.code==="ENFILE")?PJ([jn,[$t,Kn,Hi],cs,zt||Date.now(),Date.now()]):(fi&&fi.sort&&fi.sort(),typeof Hi=="function"&&Hi.call(this,cs,fi))}}}if(process.version.substr(0,4)==="v0.8"){var T=N5r(i);fe=T.ReadStream,_t=T.WriteStream}var P=i.ReadStream;P&&(fe.prototype=Object.create(P.prototype),fe.prototype.open=Pe);var V=i.WriteStream;V&&(_t.prototype=Object.create(V.prototype),_t.prototype.open=gt),Object.defineProperty(i,"ReadStream",{get:function(){return fe},set:function(Er){fe=Er},enumerable:!0,configurable:!0}),Object.defineProperty(i,"WriteStream",{get:function(){return _t},set:function(Er){_t=Er},enumerable:!0,configurable:!0});var J=fe;Object.defineProperty(i,"FileReadStream",{get:function(){return J},set:function(Er){J=Er},enumerable:!0,configurable:!0});var ae=_t;Object.defineProperty(i,"FileWriteStream",{get:function(){return ae},set:function(Er){ae=Er},enumerable:!0,configurable:!0});function fe(Er,xn){return this instanceof fe?(P.apply(this,arguments),this):fe.apply(Object.create(fe.prototype),arguments)}function Pe(){var Er=this;ti(Er.path,Er.flags,Er.mode,function(xn,Sr){xn?(Er.autoClose&&Er.destroy(),Er.emit("error",xn)):(Er.fd=Sr,Er.emit("open",Sr),Er.read())})}function _t(Er,xn){return this instanceof _t?(V.apply(this,arguments),this):_t.apply(Object.create(_t.prototype),arguments)}function gt(){var Er=this;ti(Er.path,Er.flags,Er.mode,function(xn,Sr){xn?(Er.destroy(),Er.emit("error",xn)):(Er.fd=Sr,Er.emit("open",Sr))})}function jt(Er,xn){return new i.ReadStream(Er,xn)}function Xt(Er,xn){return new i.WriteStream(Er,xn)}var Wt=i.open;i.open=ti;function ti(Er,xn,Sr,jn){return typeof Sr=="function"&&(jn=Sr,Sr=null),mn(Er,xn,Sr,jn);function mn($t,Kn,Hi,zt,cs){return Wt($t,Kn,Hi,function(fi,jo){fi&&(fi.code==="EMFILE"||fi.code==="ENFILE")?PJ([mn,[$t,Kn,Hi,zt],fi,cs||Date.now(),Date.now()]):typeof zt=="function"&&zt.apply(this,arguments)})}}return i}function PJ(i){tM("ENQUEUE",i[0].name,i[1]),Q_[EI].push(i),JYe()}var nye;function wSt(){for(var i=Date.now(),t=0;t<Q_[EI].length;++t)Q_[EI][t].length>2&&(Q_[EI][t][3]=i,Q_[EI][t][4]=i);JYe()}function JYe(){if(clearTimeout(nye),nye=void 0,Q_[EI].length!==0){var i=Q_[EI].shift(),t=i[0],n=i[1],s=i[2],c=i[3],u=i[4];if(c===void 0)tM("RETRY",t.name,n),t.apply(null,n);else if(Date.now()-c>=6e4){tM("TIMEOUT",t.name,n);var m=n.pop();typeof m=="function"&&m.call(null,s)}else{var b=Date.now()-u,x=Math.max(u-c,1),S=Math.min(x*1.2,100);b>=S?(tM("RETRY",t.name,n),t.apply(null,n.concat([c]))):Q_[EI].push(i)}nye===void 0&&(nye=setTimeout(JYe,0))}}});var K1=qe(BR=>{"use strict";var kSt=Sb().fromCallback,$1=rM(),P5r=["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(i=>typeof $1[i]=="function");Object.assign(BR,$1);P5r.forEach(i=>{BR[i]=kSt($1[i])});BR.exists=function(i,t){return typeof t=="function"?$1.exists(i,t):new Promise(n=>$1.exists(i,n))};BR.read=function(i,t,n,s,c,u){return typeof u=="function"?$1.read(i,t,n,s,c,u):new Promise((m,b)=>{$1.read(i,t,n,s,c,(x,S,F)=>{if(x)return b(x);m({bytesRead:S,buffer:F})})})};BR.write=function(i,t,...n){return typeof n[n.length-1]=="function"?$1.write(i,t,...n):new Promise((s,c)=>{$1.write(i,t,...n,(u,m,b)=>{if(u)return c(u);s({bytesWritten:m,buffer:b})})})};BR.readv=function(i,t,...n){return typeof n[n.length-1]=="function"?$1.readv(i,t,...n):new Promise((s,c)=>{$1.readv(i,t,...n,(u,m,b)=>{if(u)return c(u);s({bytesRead:m,buffers:b})})})};BR.writev=function(i,t,...n){return typeof n[n.length-1]=="function"?$1.writev(i,t,...n):new Promise((s,c)=>{$1.writev(i,t,...n,(u,m,b)=>{if(u)return c(u);s({bytesWritten:m,buffers:b})})})};typeof $1.realpath.native=="function"?BR.realpath.native=kSt($1.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var SSt=qe((ONn,CSt)=>{"use strict";var Z5r=ji("path");CSt.exports.checkPath=function(t){if(process.platform==="win32"&&/[<>:"|?*]/.test(t.replace(Z5r.parse(t).root,""))){let s=new Error(`Path contains invalid characters: ${t}`);throw s.code="EINVAL",s}}});var GSt=qe((YNn,jYe)=>{"use strict";var ESt=K1(),{checkPath:FSt}=SSt(),TSt=i=>{let t={mode:511};return typeof i=="number"?i:{...t,...i}.mode};jYe.exports.makeDir=async(i,t)=>(FSt(i),ESt.mkdir(i,{mode:TSt(t),recursive:!0}));jYe.exports.makeDirSync=(i,t)=>(FSt(i),ESt.mkdirSync(i,{mode:TSt(t),recursive:!0}))});var LE=qe((HNn,DSt)=>{"use strict";var V5r=Sb().fromPromise,{makeDir:M5r,makeDirSync:UYe}=GSt(),XYe=V5r(M5r);DSt.exports={mkdirs:XYe,mkdirsSync:UYe,mkdirp:XYe,mkdirpSync:UYe,ensureDir:XYe,ensureDirSync:UYe}});var NP=qe((LNn,RSt)=>{"use strict";var O5r=Sb().fromPromise,NSt=K1();function Y5r(i){return NSt.access(i).then(()=>!0).catch(()=>!1)}RSt.exports={pathExists:O5r(Y5r),pathExistsSync:NSt.existsSync}});var QYe=qe((JNn,WSt)=>{"use strict";var ZJ=K1(),H5r=Sb().fromPromise;async function L5r(i,t,n){let s=await ZJ.open(i,"r+"),c=null;try{await ZJ.futimes(s,t,n)}finally{try{await ZJ.close(s)}catch(u){c=u}}if(c)throw c}function J5r(i,t,n){let s=ZJ.openSync(i,"r+");return ZJ.futimesSync(s,t,n),ZJ.closeSync(s)}WSt.exports={utimesMillis:H5r(L5r),utimesMillisSync:J5r}});var nM=qe((BNn,MSt)=>{"use strict";var VJ=K1(),Eb=ji("path"),PSt=Sb().fromPromise;function B5r(i,t,n){let s=n.dereference?c=>VJ.stat(c,{bigint:!0}):c=>VJ.lstat(c,{bigint:!0});return Promise.all([s(i),s(t).catch(c=>{if(c.code==="ENOENT")return null;throw c})]).then(([c,u])=>({srcStat:c,destStat:u}))}function j5r(i,t,n){let s,c=n.dereference?m=>VJ.statSync(m,{bigint:!0}):m=>VJ.lstatSync(m,{bigint:!0}),u=c(i);try{s=c(t)}catch(m){if(m.code==="ENOENT")return{srcStat:u,destStat:null};throw m}return{srcStat:u,destStat:s}}async function U5r(i,t,n,s){let{srcStat:c,destStat:u}=await B5r(i,t,s);if(u){if(dre(c,u)){let m=Eb.basename(i),b=Eb.basename(t);if(n==="move"&&m!==b&&m.toLowerCase()===b.toLowerCase())return{srcStat:c,destStat:u,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(c.isDirectory()&&!u.isDirectory())throw new Error(`Cannot overwrite non-directory '${t}' with directory '${i}'.`);if(!c.isDirectory()&&u.isDirectory())throw new Error(`Cannot overwrite directory '${t}' with non-directory '${i}'.`)}if(c.isDirectory()&&zYe(i,t))throw new Error(sye(i,t,n));return{srcStat:c,destStat:u}}function X5r(i,t,n,s){let{srcStat:c,destStat:u}=j5r(i,t,s);if(u){if(dre(c,u)){let m=Eb.basename(i),b=Eb.basename(t);if(n==="move"&&m!==b&&m.toLowerCase()===b.toLowerCase())return{srcStat:c,destStat:u,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(c.isDirectory()&&!u.isDirectory())throw new Error(`Cannot overwrite non-directory '${t}' with directory '${i}'.`);if(!c.isDirectory()&&u.isDirectory())throw new Error(`Cannot overwrite directory '${t}' with non-directory '${i}'.`)}if(c.isDirectory()&&zYe(i,t))throw new Error(sye(i,t,n));return{srcStat:c,destStat:u}}async function ZSt(i,t,n,s){let c=Eb.resolve(Eb.dirname(i)),u=Eb.resolve(Eb.dirname(n));if(u===c||u===Eb.parse(u).root)return;let m;try{m=await VJ.stat(u,{bigint:!0})}catch(b){if(b.code==="ENOENT")return;throw b}if(dre(t,m))throw new Error(sye(i,n,s));return ZSt(i,t,u,s)}function VSt(i,t,n,s){let c=Eb.resolve(Eb.dirname(i)),u=Eb.resolve(Eb.dirname(n));if(u===c||u===Eb.parse(u).root)return;let m;try{m=VJ.statSync(u,{bigint:!0})}catch(b){if(b.code==="ENOENT")return;throw b}if(dre(t,m))throw new Error(sye(i,n,s));return VSt(i,t,u,s)}function dre(i,t){return t.ino!==void 0&&t.dev!==void 0&&t.ino===i.ino&&t.dev===i.dev}function zYe(i,t){let n=Eb.resolve(i).split(Eb.sep).filter(c=>c),s=Eb.resolve(t).split(Eb.sep).filter(c=>c);return n.every((c,u)=>s[u]===c)}function sye(i,t,n){return`Cannot ${n} '${i}' to a subdirectory of itself, '${t}'.`}MSt.exports={checkPaths:PSt(U5r),checkPathsSync:X5r,checkParentPaths:PSt(ZSt),checkParentPathsSync:VSt,isSrcSubdir:zYe,areIdentical:dre}});var YSt=qe((jNn,OSt)=>{"use strict";async function Q5r(i,t){let n=[];for await(let s of i)n.push(t(s).then(()=>null,c=>c??new Error("unknown error")));await Promise.all(n.map(s=>s.then(c=>{if(c!==null)throw c})))}OSt.exports={asyncIteratorConcurrentProcess:Q5r}});var jSt=qe((UNn,BSt)=>{"use strict";var Zv=K1(),pre=ji("path"),{mkdirs:z5r}=LE(),{pathExists:q5r}=NP(),{utimesMillis:$5r}=QYe(),fre=nM(),{asyncIteratorConcurrentProcess:K5r}=YSt();async function ePr(i,t,n={}){typeof n=="function"&&(n={filter: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;
35
35
 
36
36
  see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:s,destStat:c}=await fre.checkPaths(i,t,"copy",n);if(await fre.checkParentPaths(i,s,t,"copy"),!await LSt(i,t,n))return;let m=pre.dirname(t);await q5r(m)||await z5r(m),await JSt(c,i,t,n)}async function LSt(i,t,n){return n.filter?n.filter(i,t):!0}async function JSt(i,t,n,s){let u=await(s.dereference?Zv.stat:Zv.lstat)(t);if(u.isDirectory())return iPr(u,i,t,n,s);if(u.isFile()||u.isCharacterDevice()||u.isBlockDevice())return tPr(u,i,t,n,s);if(u.isSymbolicLink())return sPr(i,t,n,s);throw u.isSocket()?new Error(`Cannot copy a socket file: ${t}`):u.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${t}`):new Error(`Unknown file: ${t}`)}async function tPr(i,t,n,s,c){if(!t)return HSt(i,n,s,c);if(c.overwrite)return await Zv.unlink(s),HSt(i,n,s,c);if(c.errorOnExist)throw new Error(`'${s}' already exists`)}async function HSt(i,t,n,s){if(await Zv.copyFile(t,n),s.preserveTimestamps){rPr(i.mode)&&await nPr(n,i.mode);let c=await Zv.stat(t);await $5r(n,c.atime,c.mtime)}return Zv.chmod(n,i.mode)}function rPr(i){return(i&128)===0}function nPr(i,t){return Zv.chmod(i,t|128)}async function iPr(i,t,n,s,c){t||await Zv.mkdir(s),await K5r(await Zv.opendir(n),async u=>{let m=pre.join(n,u.name),b=pre.join(s,u.name);if(await LSt(m,b,c)){let{destStat:S}=await fre.checkPaths(m,b,"copy",c);await JSt(S,m,b,c)}}),t||await Zv.chmod(s,i.mode)}async function sPr(i,t,n,s){let c=await Zv.readlink(t);if(s.dereference&&(c=pre.resolve(process.cwd(),c)),!i)return Zv.symlink(c,n);let u=null;try{u=await Zv.readlink(n)}catch(m){if(m.code==="EINVAL"||m.code==="UNKNOWN")return Zv.symlink(c,n);throw m}if(s.dereference&&(u=pre.resolve(process.cwd(),u)),c!==u){if(fre.isSrcSubdir(c,u))throw new Error(`Cannot copy '${c}' to a subdirectory of itself, '${u}'.`);if(fre.isSrcSubdir(u,c))throw new Error(`Cannot overwrite '${u}' with '${c}'.`)}return await Zv.unlink(n),Zv.symlink(c,n)}BSt.exports=ePr});var qSt=qe((XNn,zSt)=>{"use strict";var e2=rM(),mre=ji("path"),aPr=LE().mkdirsSync,oPr=QYe().utimesMillisSync,hre=nM();function cPr(i,t,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;
@@ -3110,7 +3110,7 @@ ${krn}
3110
3110
  Try running with %s or get access `,B.cyan("sudo"))+`
3111
3111
  to the local update config store via
3112
3112
  `+B.cyan(Hqe(" sudo chown -R $USER:$(id -gn $USER) %s ",Hj));WO.on("exit",()=>{console.error(E3(n,{textAlignment:"center"}))})}}check(){!this.config||this.config.get("optOut")||this.#i||(this.update=this.config.get("update"),this.update&&(this.update.current=this.#r,this.config.delete("update")),!(Date.now()-this.config.get("lastUpdateCheck")<this.#n)&&Uan(WO.execPath,[XJt.join(Qan,"check.js"),JSON.stringify(this.#t)],{detached:!0,stdio:"ignore"}).unref())}async fetchInfo(){let{distTag:t}=this.#t,n=await Nqe(this._packageName,{version:t});return{latest:n,current:this.#r,type:(0,QJt.default)(this.#r,n)??t,name:this._packageName}}notify(t){let n=!this._shouldNotifyInNpmScript&&NJt;if(!WO.stdout.isTTY||n||!this.update||!(0,zJt.default)(this.update.latest,this.update.current))return this;t={isGlobal:JJt,...t};let s=t.isGlobal?`npm i -g ${this._packageName}`:`npm i ${this._packageName}`,c="Update available "+B.dim("{currentVersion}")+B.reset(" \u2192 ")+B.green("{latestVersion}")+`
3113
- Run `+B.cyan("{updateCommand}")+" to update",u=t.message||c;t.boxenOptions??={padding:1,margin:1,textAlignment:"center",borderColor:"yellow",borderStyle:"round"};let m=E3(Yqe(u,{packageName:this._packageName,currentVersion:this.update.current,latestVersion:this.update.latest,updateCommand:s}),t.boxenOptions);return t.defer===!1?console.error(m):WO.on("exit",()=>{console.error(m)}),this}};function Lqe(i){let t=new dse(i);return t.check(),t}Yd();var H2e=Ra(Fqe(),1);TM();sf();Vp();Js();import{readFile as qan}from"fs/promises";import Uqe from"path";import{fileURLToPath as $an}from"url";var qJt="@compass-ai/nova",$Jt="1.0.41",KJt="1.0.0",Kan=$an(import.meta.url),eon=Uqe.dirname(Kan),Jqe=Uqe.resolve(eon,"../../package.json"),ton="update-cache.json",ron={checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:"banner",includePrerelease:!1},jqe=class i{config;cache;cacheFilePath;packageJson;constructor(t,n){this.config=t,this.packageJson=n,this.cacheFilePath=Uqe.join(Hc(),ton),this.cache={history:[],cacheVersion:KJt}}static async create(t){let n={...ron,...t},s={name:qJt,version:$Jt};try{if(H.debug("Update service: resolving package.json",{path:Jqe}),await _a(Jqe)){let u=await qan(Jqe,"utf-8"),m=JSON.parse(u);s={name:m.name||qJt,version:m.version||$Jt},H.debug("Update service: loaded package.json",{name:s.name,version:s.version,source:"package.json"})}else H.debug("Update service: package.json not found, using fallback",{name:s.name,version:s.version,source:"fallback"})}catch(u){H.debug("Update service: failed to read package.json, using fallback",{error:u instanceof Error?u.message:"unknown error",name:s.name,version:s.version})}let c=new i(n,s);return await c.loadCache(),c}async loadCache(){try{if(await Fc(Hc()),await _a(this.cacheFilePath)){let t=await Vm(this.cacheFilePath);t&&t.cacheVersion===KJt&&(this.cache=t)}}catch(t){H.debug("Failed to load update cache",t)}}async saveCache(){try{await Fc(Hc()),await d0(this.cacheFilePath,this.cache)}catch(t){H.debug("Failed to save update cache",t)}}async checkForUpdates(t=!1){let n={updateAvailable:!1,currentVersion:this.packageJson.version,checkedAt:new Date().toISOString()};try{if(!t&&this.cache.lastCheck)if(this.cache.lastCheck.currentVersion!==this.packageJson.version)H.debug("Cache invalidated - installed version changed",{cachedVersion:this.cache.lastCheck.currentVersion,installedVersion:this.packageJson.version});else{let u=new Date(this.cache.lastCheck.checkedAt).getTime(),m=this.config.checkInterval*60*60*1e3;if(Date.now()-u<m)return H.debug("Skipping update check - within interval"),this.cache.lastCheck}H.debug("Checking for updates...");let c=await Lqe({pkg:this.packageJson,updateCheckInterval:0}).fetchInfo();return c&&c.latest&&H2e.default.gt(c.latest,this.packageJson.version)?(n.updateAvailable=!0,n.latestVersion=c.latest,n.updateType=this.mapUpdateType(c.type||"patch"),n.releaseNotesUrl=`https://dev.azure.com/oakpeak-devops/Kore/_git/Kore-CLI?version=GTv${c.latest}`,!this.config.includePrerelease&&H2e.default.prerelease(c.latest)&&(n.updateAvailable=!1,n.latestVersion=void 0,n.updateType=void 0)):c&&c.latest&&H2e.default.lt(c.latest,this.packageJson.version)&&H.debug("Current version is newer than npm registry",{currentVersion:this.packageJson.version,registryVersion:c.latest}),this.cache.lastCheck=n,await this.saveCache(),n}catch(s){return n.error=s instanceof Error?s.message:"Failed to check for updates",H.debug("Update check failed",s),n}}mapUpdateType(t){switch(t){case"major":return"major";case"minor":return"minor";case"patch":return"patch";case"prerelease":return"prerelease";default:return"patch"}}displayUpdateNotification(t){if(!t.updateAvailable||!t.latestVersion||!this.config.showNotifications||this.config.notificationStyle==="silent")return;let n=this.formatNotification(t);console.log(n),this.updateNotificationState(t.latestVersion)}formatNotification(t){let{currentVersion:n,latestVersion:s,updateType:c}=t;switch(this.config.notificationStyle){case"minimal":return this.formatMinimalNotification(n,s,c);case"detailed":return this.formatDetailedNotification(n,s,c,t.releaseNotesUrl);default:return this.formatBannerNotification(n,s,c)}}formatMinimalNotification(t,n,s){let c=this.getUpdateTypeColor(s);return B.gray(`Update available: ${t} -> `)+c(n)+B.gray(` (npm i -g ${this.packageJson.name})`)}formatBannerNotification(t,n,s){let c=this.getUpdateTypeColor(s),u=s?` (${s})`:"",m=[`Update available! ${B.dim(t)} ${B.reset("\u2192")} ${c(n)}${B.dim(u)}`,"",`Run ${B.cyan(`npm i -g ${this.packageJson.name}`)} to update`].join(`
3113
+ Run `+B.cyan("{updateCommand}")+" to update",u=t.message||c;t.boxenOptions??={padding:1,margin:1,textAlignment:"center",borderColor:"yellow",borderStyle:"round"};let m=E3(Yqe(u,{packageName:this._packageName,currentVersion:this.update.current,latestVersion:this.update.latest,updateCommand:s}),t.boxenOptions);return t.defer===!1?console.error(m):WO.on("exit",()=>{console.error(m)}),this}};function Lqe(i){let t=new dse(i);return t.check(),t}Yd();var H2e=Ra(Fqe(),1);TM();sf();Vp();Js();import{readFile as qan}from"fs/promises";import Uqe from"path";import{fileURLToPath as $an}from"url";var qJt="@compass-ai/nova",$Jt="1.0.42",KJt="1.0.0",Kan=$an(import.meta.url),eon=Uqe.dirname(Kan),Jqe=Uqe.resolve(eon,"../../package.json"),ton="update-cache.json",ron={checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:"banner",includePrerelease:!1},jqe=class i{config;cache;cacheFilePath;packageJson;constructor(t,n){this.config=t,this.packageJson=n,this.cacheFilePath=Uqe.join(Hc(),ton),this.cache={history:[],cacheVersion:KJt}}static async create(t){let n={...ron,...t},s={name:qJt,version:$Jt};try{if(H.debug("Update service: resolving package.json",{path:Jqe}),await _a(Jqe)){let u=await qan(Jqe,"utf-8"),m=JSON.parse(u);s={name:m.name||qJt,version:m.version||$Jt},H.debug("Update service: loaded package.json",{name:s.name,version:s.version,source:"package.json"})}else H.debug("Update service: package.json not found, using fallback",{name:s.name,version:s.version,source:"fallback"})}catch(u){H.debug("Update service: failed to read package.json, using fallback",{error:u instanceof Error?u.message:"unknown error",name:s.name,version:s.version})}let c=new i(n,s);return await c.loadCache(),c}async loadCache(){try{if(await Fc(Hc()),await _a(this.cacheFilePath)){let t=await Vm(this.cacheFilePath);t&&t.cacheVersion===KJt&&(this.cache=t)}}catch(t){H.debug("Failed to load update cache",t)}}async saveCache(){try{await Fc(Hc()),await d0(this.cacheFilePath,this.cache)}catch(t){H.debug("Failed to save update cache",t)}}async checkForUpdates(t=!1){let n={updateAvailable:!1,currentVersion:this.packageJson.version,checkedAt:new Date().toISOString()};try{if(!t&&this.cache.lastCheck)if(this.cache.lastCheck.currentVersion!==this.packageJson.version)H.debug("Cache invalidated - installed version changed",{cachedVersion:this.cache.lastCheck.currentVersion,installedVersion:this.packageJson.version});else{let u=new Date(this.cache.lastCheck.checkedAt).getTime(),m=this.config.checkInterval*60*60*1e3;if(Date.now()-u<m)return H.debug("Skipping update check - within interval"),this.cache.lastCheck}H.debug("Checking for updates...");let c=await Lqe({pkg:this.packageJson,updateCheckInterval:0}).fetchInfo();return c&&c.latest&&H2e.default.gt(c.latest,this.packageJson.version)?(n.updateAvailable=!0,n.latestVersion=c.latest,n.updateType=this.mapUpdateType(c.type||"patch"),n.releaseNotesUrl=`https://dev.azure.com/oakpeak-devops/Kore/_git/Kore-CLI?version=GTv${c.latest}`,!this.config.includePrerelease&&H2e.default.prerelease(c.latest)&&(n.updateAvailable=!1,n.latestVersion=void 0,n.updateType=void 0)):c&&c.latest&&H2e.default.lt(c.latest,this.packageJson.version)&&H.debug("Current version is newer than npm registry",{currentVersion:this.packageJson.version,registryVersion:c.latest}),this.cache.lastCheck=n,await this.saveCache(),n}catch(s){return n.error=s instanceof Error?s.message:"Failed to check for updates",H.debug("Update check failed",s),n}}mapUpdateType(t){switch(t){case"major":return"major";case"minor":return"minor";case"patch":return"patch";case"prerelease":return"prerelease";default:return"patch"}}displayUpdateNotification(t){if(!t.updateAvailable||!t.latestVersion||!this.config.showNotifications||this.config.notificationStyle==="silent")return;let n=this.formatNotification(t);console.log(n),this.updateNotificationState(t.latestVersion)}formatNotification(t){let{currentVersion:n,latestVersion:s,updateType:c}=t;switch(this.config.notificationStyle){case"minimal":return this.formatMinimalNotification(n,s,c);case"detailed":return this.formatDetailedNotification(n,s,c,t.releaseNotesUrl);default:return this.formatBannerNotification(n,s,c)}}formatMinimalNotification(t,n,s){let c=this.getUpdateTypeColor(s);return B.gray(`Update available: ${t} -> `)+c(n)+B.gray(` (npm i -g ${this.packageJson.name})`)}formatBannerNotification(t,n,s){let c=this.getUpdateTypeColor(s),u=s?` (${s})`:"",m=[`Update available! ${B.dim(t)} ${B.reset("\u2192")} ${c(n)}${B.dim(u)}`,"",`Run ${B.cyan(`npm i -g ${this.packageJson.name}`)} to update`].join(`
3114
3114
  `);return E3(m,{padding:1,margin:1,borderStyle:"round",borderColor:this.getUpdateTypeBorderColor(s),title:"Compass CLI Update",titleAlignment:"center"})}formatDetailedNotification(t,n,s,c){let u=this.getUpdateTypeColor(s),m=s?s.charAt(0).toUpperCase()+s.slice(1):"New",b=["",B.bold.cyan(` ${m} Update Available!`),"",` ${B.gray("Current version:")} ${t}`,` ${B.gray("Latest version:")} ${u(n)}`,""];c&&(b.push(` ${B.gray("Release notes:")} ${B.underline.blue(c)}`),b.push("")),b.push(` ${B.gray("To update, run:")} ${B.cyan(`npm i -g ${this.packageJson.name}`)}`),b.push("");let x=b.join(`
3115
3115
  `);return E3(x,{padding:0,margin:1,borderStyle:"double",borderColor:this.getUpdateTypeBorderColor(s)})}getUpdateTypeColor(t){switch(t){case"major":return B.red;case"minor":return B.yellow;case"patch":return B.green;case"prerelease":return B.magenta;default:return B.cyan}}getUpdateTypeBorderColor(t){switch(t){case"major":return"red";case"minor":return"yellow";case"patch":return"green";case"prerelease":return"magenta";default:return"cyan"}}async updateNotificationState(t){let n=this.cache.notificationState;n&&n.version===t?n.showCount++:this.cache.notificationState={version:t,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(t="npm"){let n=await this.checkForUpdates(!0);if(!n.updateAvailable||!n.latestVersion)return H.output(B.green("You are already on the latest version!")),!0;let s=this.packageJson.version,c=n.latestVersion;H.output(""),H.output(B.cyan(`Updating Compass CLI from ${s} to ${c}...`)),H.output("");try{let u=this.getUpdateCommand(t);H.output(B.gray(`Running: ${u}`)),H.output("");let{stdout:m}=await Rb(u,{shell:!0});return m&&H.output(m),await this.recordUpdateHistory(s,c,!0,t),H.output(""),H.output(B.green(`Successfully updated to version ${c}!`)),H.output(B.gray("Please restart Compass CLI to use the new version.")),H.output(""),!0}catch(u){let m=u instanceof Error?u.message:"Update failed";return await this.recordUpdateHistory(s,c,!1,t,m),H.output(""),H.output(B.red(`Update failed: ${m}`)),H.output(""),H.output(B.gray("You can try updating manually:")),H.output(B.cyan(` ${this.getUpdateCommand(t)}`)),H.output(""),!1}}getUpdateCommand(t){let n=this.packageJson.name;switch(t){case"yarn":return`yarn global add ${n}`;case"pnpm":return`pnpm add -g ${n}`;default:return`npm install -g ${n}`}}async recordUpdateHistory(t,n,s,c,u){let m={fromVersion:t,toVersion:n,updatedAt:new Date().toISOString(),success:s,method:c,error:u};this.cache.history.push(m),this.cache.history.length>10&&(this.cache.history=this.cache.history.slice(-10)),s&&(this.cache.notificationState=void 0),await this.saveCache()}getUpdateHistory(){return[...this.cache.history]}getLastCheckResult(){return this.cache.lastCheck}getConfig(){return{...this.config}}async updateConfig(t){this.config={...this.config,...t}}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:t}=await Rb("yarn",["global","list","--depth=0"],{shell:!0,reject:!1});if(t&&t.includes(this.packageJson.name))return"yarn"}catch{}try{let{stdout:t}=await Rb("pnpm",["list","-g","--depth=0"],{shell:!0,reject:!1});if(t&&t.includes(this.packageJson.name))return"pnpm"}catch{}return"npm"}},Bqe=null;async function D3(i){return Bqe||(Bqe=await jqe.create(i)),Bqe}async function eBt(i,t=!1){H.debug("Auto-update: starting startup update check",{force:t});let n=await D3(i),s=n.getVersionInfo();try{let c=await n.checkForUpdates(t);if(H.debug("Auto-update: check completed",{updateAvailable:c.updateAvailable,currentVersion:c.currentVersion,latestVersion:c.latestVersion}),!c.updateAvailable||!c.latestVersion)return H.debug("Auto-update: no update available"),{updated:!1};let u=s.currentVersion,m=c.latestVersion,b=await n.detectPackageManager();return H.debug("Auto-update: detected package manager",{packageManager:b}),await n.performUpdate(b)?{updated:!0,fromVersion:u,toVersion:m}:(H.debug("Auto-update: update failed"),{updated:!1,error:"Update failed, continuing with current version"})}catch(c){let u=c instanceof Error?c.message:"Unknown error";return H.debug("Auto-update: error during update",{error:u}),console.log(B.yellow(`\u26A0 Auto-update check failed: ${u}`)),console.log(B.dim(` You can manually update with: npm i -g ${s.packageName}`)),console.log(""),{updated:!1,error:u}}}Js();af();function pd(i,t=!1){let n=qs();H.debug(`[updateHandler] Emitting output: ${i.substring(0,50)}`),n.emit("slash-command-output",{command:"update",message:i,isError:t})}function non(i){switch(i){case"major":return B.red;case"minor":return B.yellow;case"patch":return B.green;case"prerelease":return B.magenta;default:return B.cyan}}function ion(i){switch(i){case"major":return"red";case"minor":return"yellow";case"patch":return"green";case"prerelease":return"magenta";default:return"cyan"}}async function son(i){if(!i.updateAvailable||!i.latestVersion)return;let n=(await D3()).getVersionInfo(),s=non(i.updateType),c=i.updateType?` (${i.updateType})`:"",u=[`Update available! ${B.dim(i.currentVersion)} ${B.reset("\u2192")} ${s(i.latestVersion)}${B.dim(c)}`,"",`Run ${B.cyan(`npm i -g ${n.packageName}`)} to update`].join(`
3116
3116
  `),m=E3(u,{padding:1,margin:1,borderStyle:"round",borderColor:ion(i.updateType),title:"Compass CLI Update",titleAlignment:"center"});pd(m)}function aon(i){let t={check:!1,history:!1,force:!1,install:!1,version:!1,help:!1};for(let n=0;n<i.length;n++){let s=i[n].toLowerCase();switch(s){case"check":case"-c":case"--check":t.check=!0;break;case"history":case"-h":case"--history":t.history=!0;break;case"--force":case"-f":t.force=!0;break;case"install":case"-i":case"--install":t.install=!0;break;case"--npm":t.manager="npm";break;case"--yarn":t.manager="yarn";break;case"--pnpm":t.manager="pnpm";break;case"version":case"-v":case"--version":t.version=!0;break;case"help":case"--help":t.help=!0;break;default:s==="now"&&(t.install=!0);break}}return!t.history&&!t.install&&!t.version&&!t.help&&(t.check=!0),t}function oon(){let i=["",B.bold.cyan("Update Command"),B.dim("\u2500".repeat(40)),"",B.white("Check for and install updates to Compass CLI."),"",B.bold("Usage:"),` ${B.cyan("/update")} Check for updates`,` ${B.cyan("/update check")} Check for updates (same as above)`,` ${B.cyan("/update install")} Install available update`,` ${B.cyan("/update now")} Install update immediately`,` ${B.cyan("/update history")} Show update history`,` ${B.cyan("/update version")} Show version information`,"",B.bold("Options:"),` ${B.yellow("--force, -f")} Force check (ignore interval)`,` ${B.yellow("--npm")} Use npm for installation`,` ${B.yellow("--yarn")} Use yarn for installation`,` ${B.yellow("--pnpm")} Use pnpm for installation`,"",B.bold("Examples:"),` ${B.gray("/update")} # Check if update is available`,` ${B.gray("/update install --yarn")} # Install with yarn`,` ${B.gray("/update -f")} # Force update check`,""];pd(i.join(`
@@ -3314,7 +3314,7 @@ The \`enter_plan_mode\` tool will generate a structured plan including:
3314
3314
  - /clear - Clear session
3315
3315
  - /model <id> - Switch model
3316
3316
  - /help - Show this help`),!0;case"model":if(s){let[u,m]=s.split("/");t.model={providerId:u||"anthropic",modelId:m||s},c&&await c.sendAgentMessageChunk(`[ACP] Model switched to ${s}`)}return!0;default:return!1}}};function dit(i,t){return new ASe(i,t)}import*as Pir from"readline";var YI=H.child("ACPCommand"),pit=class{pendingRequests=new Map;requestId=0;writeMessage;constructor(t){this.writeMessage=t}async sessionUpdate(t){this.sendNotification("session/update",t)}async requestPermission(t){return await this.sendRequest("permission/request",t)}writeTextFile(t){this.sendNotification("file/write",t)}sendNotification(t,n){let s={jsonrpc:"2.0",method:t,params:n};this.writeMessage(s)}sendRequest(t,n){return new Promise((s,c)=>{let u=`server-${++this.requestId}`;this.pendingRequests.set(u,{resolve:s,reject:c});let m={jsonrpc:"2.0",id:u,method:t,params:n};this.writeMessage(m),setTimeout(()=>{this.pendingRequests.has(u)&&(this.pendingRequests.delete(u),c(new Error("Request timeout")))},300*1e3)})}handleResponse(t,n,s){let c=this.pendingRequests.get(t);c&&(this.pendingRequests.delete(t),s?c.reject(new Error(String(s))):c.resolve(n))}};function Zir(){let i=new SG("acp");return i.description("Start ACP (Agent Client Protocol) server mode").option("--cwd <path>","Working directory for the ACP session").option("--debug","Enable debug logging").option("--verbose","Enable verbose logging").action(async t=>{t.debug?H.configure({level:"debug"}):t.verbose?H.configure({level:"info"}):H.configure({level:"warn"});let n=t.cwd?ure(t.cwd):process.cwd();YI.info("Starting ACP server",{cwd:n});let s={defaultModel:{providerId:"ollama",modelId:"glm-4.7:cloud"},protocolVersion:1,agentName:"Nova",agentVersion:"1.0.0"},c=ait(),u=dit(s,c),m=Pir.createInterface({input:process.stdin,terminal:!1}),b=R=>{let T=JSON.stringify(R);YI.debug("Sending message",{data:R}),process.stdout.write(T+`
3317
- `)},x=R=>{b(R)},S=new pit(b);u.setConnection(S),m.on("line",async R=>{if(R.trim()){YI.debug("Raw incoming message",{line:R.substring(0,500)});try{let T=JSON.parse(R);if(T.jsonrpc!=="2.0"){YI.warn("Invalid JSON-RPC version",{message:T}),T.id!==void 0&&x({jsonrpc:"2.0",id:T.id,error:{code:-32600,message:"Invalid Request"}});return}if(("result"in T||"error"in T)&&!T.method){YI.info("Received response",{id:T.id,hasResult:"result"in T,hasError:"error"in T}),T.id!==void 0&&T.id!==null&&S.handleResponse(T.id,T.result,T.error);return}if(!T.method){YI.warn("Message has no method field",{message:T}),T.id!==void 0&&x({jsonrpc:"2.0",id:T.id,error:{code:-32600,message:"Invalid Request: missing method"}});return}let V=T.id===void 0;YI.info("Received message",{type:V?"notification":"request",method:T.method,id:T.id,params:T.params});try{let J=await yDn(u,T.method,T.params);YI.debug("Message handled successfully",{method:T.method,id:T.id}),V||x({jsonrpc:"2.0",id:T.id,result:J})}catch(J){let ae=J instanceof Error?J.message:String(J);ae.startsWith("Unknown method:")||ae.startsWith("Unsupported method:")?YI.warn("Unsupported ACP method",{method:T.method,params:T.params}):YI.error("Message handler error",{method:T.method,error:ae}),V||x({jsonrpc:"2.0",id:T.id,error:{code:-32601,message:ae}})}}catch(T){YI.error("JSON parse error",{error:T,line:R.substring(0,200)}),x({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}})}}});let F=async()=>{YI.info("Shutting down ACP server"),await u.shutdown(),m.close(),process.exit(0)};process.on("SIGINT",F),process.on("SIGTERM",F),m.on("close",()=>{YI.info("Input stream closed"),F()}),YI.info("ACP server ready")}),i}async function yDn(i,t,n){let s=n||{};switch(t){case"initialize":return i.initialize({protocolVersion:s.protocolVersion||1,clientCapabilities:s.clientCapabilities});case"authenticate":return i.authenticate({credentials:s.credentials});case"session/new":case"newSession":return i.newSession({cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers||[]});case"session/load":case"loadSession":return i.loadSession({sessionId:s.sessionId,cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers||[]});case"session/list":case"listSessions":case"unstable_listSessions":return i.listSessions({cwd:s.cwd,cursor:s.cursor});case"session/fork":case"forkSession":case"unstable_forkSession":return i.forkSession({sessionId:s.sessionId,cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers});case"session/resume":case"resumeSession":case"unstable_resumeSession":return i.resumeSession({sessionId:s.sessionId,cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers});case"session/setModel":case"session/set_model":return i.setSessionModel({sessionId:s.sessionId,modelId:s.modelId||s.model});case"session/setMode":case"session/set_mode":return i.setSessionMode({sessionId:s.sessionId,modeId:s.modeId||s.mode});case"session/update":return bDn(i,s);case"prompt":case"session/prompt":return i.prompt({sessionId:s.sessionId,prompt:s.prompt||[]});case"cancel":case"session/cancel":return await i.cancel({sessionId:s.sessionId}),{};default:throw new Error(`Unsupported method: ${t}`)}}async function bDn(i,t){let n=t.sessionId,s=t.update;if(!s)return YI.warn("Session update missing update field",{params:t}),{_meta:{}};let c=s.kind;switch(YI.info("Handling session update",{sessionId:n,kind:c,update:s}),c){case"model":let u=s.model;if(u)return i.setSessionModel({sessionId:n,modelId:u});break;case"mode":let m=s.mode;if(m)return i.setSessionMode({sessionId:n,modeId:m});break;default:YI.debug("Unhandled session update kind",{kind:c,update:s})}return{_meta:{}}}Yd();import IDn from"os";function vDn(i){let t=i.replace(/\\/g,"/").replace(/\/$/,""),n=IDn.homedir().replace(/\\/g,"/").replace(/\/$/,"");if(t.toLowerCase()===n.toLowerCase())return!0;let s=/^[a-z]:\/?users\/[^/]+$/i,c=/^\/users\/[^/]+$/i,u=/^\/home\/[^/]+$/i;return s.test(t)||c.test(t)||u.test(t)}function WX(i){return i.cwd?ure(i.cwd):process.cwd()}var Vae="1.0.41",xDn="compass",wDn="AI-powered development assistance using Anthropic's Claude models";function ADn(){let i=new SG;return i.name(xDn).description(wDn).version(Vae,"-v, --version","Display version number").helpOption("-h, --help","Display help information"),i.command("start",{isDefault:!0}).description("Start interactive Compass session").argument("[prompt]","Initial prompt to start the session with").option("-p, --print <query>","Run query in non-interactive mode (SDK mode) and exit").option("-c, --continue","Continue the most recent conversation in current directory").option("--cwd <path>","Run in a specific project directory").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 (optional if already configured)").option("--no-banner","Skip the ASCII art banner").option("--no-update-check","Skip the 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").option("--agents <json>",`JSON object defining agents for this session (e.g., '{"name": {"description": "...", "prompt": "..."}}')`).option("--agent <name>","Run with a specific agent (applies its system prompt, model, and tool restrictions)").option("--standalone-agent","Use only the agent's system prompt, excluding the default CLI system prompt").action(async(t,n)=>{try{let s=process.env.COMPASS_DEBUG,c=process.env.COMPASS_VERBOSE,u=s&&s.toLowerCase()!=="false"&&s!=="0",m=c&&c.toLowerCase()!=="false"&&c!=="0";if(n.debug||u?H.configure({level:"debug"}):(n.verbose||m)&&H.configure({level:"info"}),n.compassKey||n.anthropicKey){let{getCredentialStore:J}=await Promise.resolve().then(()=>(Ov(),JJ)),{getCompassAuthService:ae}=await Promise.resolve().then(()=>(BJ(),hHe)),fe=await J();if(n.compassKey)try{H.debug("Validating Compass API key from CLI parameter"),await ae().validateApiKey(n.compassKey),await fe.setCompassApiKey(n.compassKey),H.debug("Compass API key from CLI parameter validated and stored"),console.log(B.green("\u2713 Compass API key validated and stored"))}catch(Pe){H.error("Failed to validate Compass API key",Pe),console.error(B.red("\u274C Invalid Compass API key")),Pe instanceof Error&&console.error(B.red(` ${Pe.message}`)),process.exit(1)}if(n.anthropicKey)try{if(H.debug("Storing Anthropic API key from CLI parameter"),!fe.validateApiKeyFormat(n.anthropicKey))throw new Error('Invalid API key format. Anthropic API keys should start with "sk-ant-"');await fe.setApiKey(n.anthropicKey),H.debug("Anthropic API key from CLI parameter stored"),console.log(B.green("\u2713 Anthropic API key stored"))}catch(Pe){H.error("Failed to store Anthropic API key",Pe),console.error(B.red("\u274C Invalid Anthropic API key")),Pe instanceof Error&&console.error(B.red(` ${Pe.message}`)),process.exit(1)}console.log("")}let b=WX(n);if(vDn(b)){console.log(""),console.log(B.yellow("\u26A0\uFE0F Warning: Running from a user home directory")),console.log(B.dim("\u2500".repeat(50))),console.log(""),console.log(B.gray(`Directory: ${b}`)),console.log(""),console.log(B.gray("User home directories typically contain many files and folders.")),console.log(B.gray("This can cause slow indexing and high memory usage.")),console.log(""),console.log(B.gray("Recommendation: Navigate to a specific project folder before")),console.log(B.gray("starting the CLI, or use the --cwd option to specify a project directory.")),console.log("");let{proceed:J}=await cS.prompt([{type:"confirm",name:"proceed",message:"Do you want to continue anyway?",default:!1}]);J||(console.log(""),console.log(B.gray("Exiting. Please navigate to a project directory and try again.")),console.log(""),process.exit(0)),console.log("")}let x=await cir();if(n.agents||n.agent){let{initializeAgentManager:J}=await Promise.resolve().then(()=>(f2(),rZ));await J(b,n.agents)}if(n.print){let J;if(n.agent){let{getAgentByName:fe}=await Promise.resolve().then(()=>(f2(),rZ));J=await fe(n.agent),J||(console.error(B.red(`\u274C Agent "${n.agent}" not found`)),console.error(B.gray(" Available agents: explore, code-reviewer, debugger, planner")),console.error(B.gray(" Or define custom agents with --agents")),process.exit(1)),H.debug(`Running with agent: ${J.name} (${J.source})`)}let ae=await dS({query:n.print,pipedInput:x,projectRoot:b,continueSession:n.continue||!1,debug:n.debug||u,cliAgentsJson:n.agents,agentConfig:J,standaloneAgent:n.standaloneAgent||J?.standalone});process.exit(ae.exitCode);return}await Fc(Hc());try{let{getTempFileService:J,TEMP_DIR:ae,PREVIEW_TEMP_DIR:fe}=await Promise.resolve().then(()=>(zqe(),oBt)),Pe=J(),_t=ure(b,RJ,ae,fe);Pe.setTempDir(_t),await Pe.initialize()}catch{H.debug("TempFileService initialization skipped")}n.banner!==!1&&console.log(sre(Vae)),b!==process.cwd()&&(console.log(B.cyan(`\u{1F4C1} Working directory: ${b}`)),console.log(""));let S=n.forceUpdateCheck===!0;if(H.debug("CLI startup: about to check for updates",{updateCheckEnabled:n.updateCheck!==!1,forceUpdateCheck:S}),n.updateCheck!==!1)try{H.debug("CLI startup: calling performAutoUpdateOnStartup");let J=await eBt(void 0,S);H.debug("CLI startup: update check completed",{updated:J.updated}),J.updated&&(H.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(J){H.debug("Update check failed",J)}let{setProjectRoot:F}=await Promise.resolve().then(()=>(f2(),rZ));F(b);let{setSkillProjectRoot:R}=await Promise.resolve().then(()=>(hX(),art));R(b);let{setCommandsProjectRoot:T}=await Promise.resolve().then(()=>(VIe(),iBe));T(b);let{setHooksProjectRoot:P}=await Promise.resolve().then(()=>(DIe(),jJe));P(b);let{waitUntilExit:V}=Vir(Mir.createElement(Knt,{version:Vae,skipSetup:n.skipSetup,projectRoot:b,smartMode:n.smart,initialPrompt:t,continueSession:n.continue||!1,cliAgentsJson:n.agents}));await V()}catch(s){H.error("Failed to start Compass",s),console.error(B.red("\u274C Failed to start Compass")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("setup").description("Run first-time setup wizard for consent and API key configuration").option("--compass-key <key>","Compass API key for authentication").option("--anthropic-key <key>","Anthropic API key (optional if already configured)").action(async t=>{try{if(await Fc(Hc()),t.compassKey||t.anthropicKey){let{getCredentialStore:s}=await Promise.resolve().then(()=>(Ov(),JJ)),{getCompassAuthService:c}=await Promise.resolve().then(()=>(BJ(),hHe)),u=await s();if(t.compassKey)try{console.log(B.gray("Validating Compass API key...")),await c().validateApiKey(t.compassKey),await u.setCompassApiKey(t.compassKey),console.log(B.green("\u2713 Compass API key validated and stored"))}catch(m){H.error("Failed to validate Compass API key",m),console.error(B.red("\u274C Invalid Compass API key")),m instanceof Error&&console.error(B.red(` ${m.message}`)),process.exit(1)}if(t.anthropicKey)try{if(console.log(B.gray("Storing Anthropic API key...")),!u.validateApiKeyFormat(t.anthropicKey))throw new Error('Invalid API key format. Anthropic API keys should start with "sk-ant-"');await u.setApiKey(t.anthropicKey),console.log(B.green("\u2713 Anthropic API key stored"))}catch(m){H.error("Failed to store Anthropic API key",m),console.error(B.red("\u274C Invalid Anthropic API key")),m instanceof Error&&console.error(B.red(` ${m.message}`)),process.exit(1)}console.log("")}console.log(sre(Vae));let{waitUntilExit:n}=Vir(Mir.createElement(Knt,{version:Vae}));await n()}catch(n){H.error("Setup failed",n),console.error(B.red("\u274C Setup failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.command("init").description("Initialize Compass in the current project directory").option("--cwd <path>","Run in a specific project directory").option("-f, --force","Overwrite existing .compass directory").action(async t=>{try{let n=WX(t),s=su(n);if(await _a(s)){if(!t.force){console.log(B.yellow("\u26A0\uFE0F Compass is already initialized in this project.")),console.log(B.gray(" Use --force to reinitialize."));return}console.log(B.gray("Reinitializing Compass..."))}await Fc(s),await Fc(`${s}/backups`),await Fc(`${s}/cache`),await Fc(`${s}/context`),console.log(B.green("\u2705 Initialized Compass in current project")),console.log(B.gray(` Created ${s}/`)),console.log(""),console.log(B.gray("Next steps:")),console.log(B.gray(` 1. Run "compass setup" if you haven't configured your API key`)),console.log(B.gray(' 2. Run "compass" to start an interactive session'))}catch(n){H.error("Init failed",n),console.error(B.red("\u274C Failed to initialize Compass")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.addCommand(Eir()),i.addCommand(Dir()),i.addCommand(Nir()),i.addCommand(Zir()),i.command("consent").description("Manage consent settings for data collection and telemetry").argument("[action]","Action to perform: status, review, revoke","status").action(async t=>{try{let n=await UR();switch(t.toLowerCase()){case"status":{let s=await n.getStatus();if(console.log(""),console.log(B.bold.white("\u{1F4CB} Consent Status")),console.log(B.dim("\u2500".repeat(40))),console.log(` ${B.gray("Valid:")} ${s.isValid?B.green("Yes"):B.red("No")}`),console.log(` ${B.gray("Version:")} ${s.version||B.gray("N/A")}`),console.log(` ${B.gray("Granted:")} ${s.grantedAt?new Date(s.grantedAt).toLocaleDateString():B.gray("N/A")}`),console.log(` ${B.gray("Expires:")} ${s.expiresAt?new Date(s.expiresAt).toLocaleDateString():B.gray("N/A")}`),s.daysUntilExpiry!==null){let c=s.daysUntilExpiry>30?"green":s.daysUntilExpiry>7?"yellow":"red";console.log(` ${B.gray("Days until expiry:")} ${B[c](s.daysUntilExpiry.toString())}`)}s.consent&&(console.log(""),console.log(B.bold.white(" Settings:")),console.log(` ${B.gray("Data Collection:")} ${s.consent.dataCollection?B.green("Enabled"):B.red("Disabled")}`),console.log(` ${B.gray("Telemetry:")} ${s.consent.telemetry?B.green("Enabled"):B.yellow("Disabled")}`),console.log(` ${B.gray("Analytics:")} ${s.consent.analytics?B.green("Enabled"):B.yellow("Disabled")}`),console.log(` ${B.gray("Error Reporting:")} ${s.consent.errorReporting?B.green("Enabled"):B.yellow("Disabled")}`)),s.needsRenewal&&(console.log(""),console.log(B.yellow('\u26A0\uFE0F Consent needs renewal. Run "compass setup" to update.'))),console.log("");break}case"review":{let s=n.getHistory();if(console.log(""),console.log(B.bold.white("\u{1F4DC} Consent History")),console.log(B.dim("\u2500".repeat(40))),s.length===0)console.log(B.gray(" No consent records found."));else for(let c of s.slice(-5))console.log(` ${B.gray("ID:")} ${c.id.slice(0,8)}...`),console.log(` ${B.gray("Version:")} ${c.version}`),console.log(` ${B.gray("Granted:")} ${new Date(c.grantedAt).toLocaleString()}`),console.log(B.dim(" \u2500".repeat(20)));console.log("");break}case"revoke":{console.log(""),console.log(B.yellow("\u26A0\uFE0F Revoking consent will delete all stored data.")),console.log(B.gray(" This action cannot be undone.")),console.log(""),await n.revokeConsent(),console.log(B.green("\u2705 Consent revoked and data cleaned up")),console.log(B.gray(' Run "compass setup" to reconfigure.')),console.log("");break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: status, review, revoke")),process.exit(1)}}catch(n){H.error("Consent command failed",n),console.error(B.red("\u274C Consent command failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.command("tokens").description("View token usage statistics and cost estimates").option("--export","Export usage data as JSON").option("--session","Show current session usage only").option("--reset","Reset token usage statistics").action(async t=>{try{let n=await Pg();if(t.export){let c=await n.exportUsage();console.log(JSON.stringify(c,null,2));return}if(t.reset){console.log(B.yellow("\u26A0\uFE0F This will reset all token usage statistics.")),console.log(B.gray(" Feature not yet implemented."));return}if(t.session){let c=n.getCurrentSessionUsage();if(!c){console.log(B.gray("No active session."));return}console.log(""),console.log(B.bold.white("\u{1F4CA} Current Session Token Usage")),console.log(B.dim("\u2500".repeat(40))),console.log(` ${B.gray("Session ID:")} ${c.sessionId.slice(0,8)}...`),console.log(` ${B.gray("Started:")} ${new Date(c.startTime).toLocaleString()}`),console.log(` ${B.gray("API Calls:")} ${c.calls.length}`),console.log(` ${B.gray("Input Tokens:")} ${c.totals.inputTokens.toLocaleString()}`),console.log(` ${B.gray("Output Tokens:")} ${c.totals.outputTokens.toLocaleString()}`),console.log(` ${B.gray("Total Tokens:")} ${B.bold(c.totals.totalTokens.toLocaleString())}`),console.log(` ${B.gray("Estimated Cost:")} ${B.green("$"+c.estimatedCost.totalCost.toFixed(4))}`),console.log("");return}let s=n.getAllTimeStats();console.log(""),console.log(B.bold.white("\u{1F4CA} Token Usage Statistics")),console.log(B.dim("\u2500".repeat(40))),console.log(` ${B.gray("Total API Calls:")} ${s.totalCalls.toLocaleString()}`),console.log(` ${B.gray("Total Tokens:")} ${s.totalTokens.toLocaleString()}`),console.log(` ${B.gray("Total Cost:")} ${B.green("$"+s.totalCost.toFixed(4))}`),console.log(""),console.log(B.bold.white(" Averages per Call:")),console.log(` ${B.gray("Input:")} ${s.averageInputTokens.toLocaleString()} tokens`),console.log(` ${B.gray("Output:")} ${s.averageOutputTokens.toLocaleString()} tokens`),console.log(""),console.log(B.bold.white(" Peak Usage:")),console.log(` ${B.gray("Input:")} ${s.peakInputTokens.toLocaleString()} tokens`),console.log(` ${B.gray("Output:")} ${s.peakOutputTokens.toLocaleString()} tokens`),console.log("")}catch(n){H.error("Tokens command failed",n),console.error(B.red("\u274C Tokens command failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.command("data").description("Manage stored data (GDPR compliance)").argument("[action]","Action to perform: list, export, delete","list").option("--cwd <path>","Run in a specific project directory").option("-o, --output <file>","Output file for export").action(async(t,n)=>{try{let s=await UR();switch(t.toLowerCase()){case"list":{console.log(""),console.log(B.bold.white("\u{1F4C1} Stored Data")),console.log(B.dim("\u2500".repeat(40)));let c=Hc(),u=su(WX(n));console.log(B.bold.cyan(" Global Data:")),console.log(` ${B.gray("Location:")} ${c}`),console.log(` ${B.gray("Contents:")} config, credentials, consent, token usage, logs`),await _a(u)&&(console.log(""),console.log(B.bold.cyan(" Project Data:")),console.log(` ${B.gray("Location:")} ${u}`),console.log(` ${B.gray("Contents:")} session state, backups, cache, context index`)),console.log(""),console.log(B.gray('Use "compass data export" to export all data')),console.log(B.gray('Use "compass consent revoke" to delete all data')),console.log("");break}case"export":{let c=await s.exportUserData(),u=JSON.stringify(c,null,2);if(n.output){let{safeWriteFile:m}=await Promise.resolve().then(()=>(Vp(),pye));await m(n.output,u),console.log(B.green(`\u2705 Data exported to ${n.output}`))}else console.log(u);break}case"delete":{console.log(B.yellow('\u26A0\uFE0F To delete all data, use "compass consent revoke"'));break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: list, export, delete")),process.exit(1)}}catch(s){H.error("Data command failed",s),console.error(B.red("\u274C Data command failed")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("cache").description("Manage cached data").argument("[action]","Action to perform: clear, status","status").option("--cwd <path>","Run in a specific project directory").action(async(t,n)=>{try{let s=su(WX(n)),c=`${s}/cache`,u=`${s}/context`;switch(t.toLowerCase()){case"status":{console.log(""),console.log(B.bold.white("\u{1F4BE} Cache Status")),console.log(B.dim("\u2500".repeat(40))),await _a(c)?(console.log(` ${B.gray("Cache directory:")} ${c}`),console.log(` ${B.green("\u2713")} Cache directory exists`)):console.log(` ${B.gray("Cache directory:")} ${B.yellow("Not initialized")}`),await _a(u)?(console.log(` ${B.gray("Context index:")} ${u}`),console.log(` ${B.green("\u2713")} Context index exists`)):console.log(` ${B.gray("Context index:")} ${B.yellow("Not initialized")}`),console.log(""),console.log(B.gray('Use "compass cache clear" to clear all cached data')),console.log("");break}case"clear":{let m=!1;await _a(c)&&(await p0(c),await Fc(c),console.log(B.green("\u2705 Cache cleared")),m=!0),await _a(u)&&(await p0(u),await Fc(u),console.log(B.green("\u2705 Context index cleared")),m=!0),m||console.log(B.gray("No cache to clear."));break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: status, clear")),process.exit(1)}}catch(s){H.error("Cache command failed",s),console.error(B.red("\u274C Cache command failed")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("update").description("Check for and install updates").argument("[action]","Action to perform: check, install, history","check").option("-f, --force","Force update check (ignore interval)").option("--npm","Use npm for installation").option("--yarn","Use yarn for installation").option("--pnpm","Use pnpm for installation").action(async(t,n)=>{try{let s=await D3();switch(t.toLowerCase()){case"check":{console.log(""),console.log(B.cyan("Checking for updates..."));let c=await s.checkForUpdates(n.force);c.error?console.log(B.red(`Failed to check for updates: ${c.error}`)):c.updateAvailable&&c.latestVersion?s.displayUpdateNotification(c):(console.log(""),console.log(B.green(`You are on the latest version (${c.currentVersion})`)),console.log(""));break}case"install":{let c=n.npm?"npm":n.yarn?"yarn":n.pnpm?"pnpm":await s.detectPackageManager();await s.performUpdate(c);break}case"history":{let c=s.getUpdateHistory();if(console.log(""),console.log(B.bold.cyan("Update History")),console.log(B.dim("\u2500".repeat(40))),c.length===0)console.log(""),console.log(B.gray(" No update history recorded.")),console.log("");else{console.log("");for(let u of c.slice().reverse()){let m=u.success?B.green("\u2713"):B.red("\u2717"),b=u.success?B.green:B.red;console.log(` ${m} ${B.gray(new Date(u.updatedAt).toLocaleDateString())}`),console.log(` ${B.gray("From:")} ${u.fromVersion} ${B.gray("\u2192")} ${b(u.toVersion)}`),console.log(` ${B.gray("Method:")} ${u.method}`),u.error&&console.log(` ${B.red("Error:")} ${u.error}`),console.log("")}}break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: check, install, history")),process.exit(1)}}catch(s){H.error("Update command failed",s),console.error(B.red("\u274C Update command failed")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("reset").description("Reset Compass to factory settings").option("--cwd <path>","Run in a specific project directory").option("-f, --force","Skip confirmation prompt").option("--global","Reset global settings only").option("--project","Reset project settings only").action(async t=>{try{if(!t.force){console.log(""),console.log(B.red("\u26A0\uFE0F WARNING: This will delete all Compass data!")),console.log(B.gray(" This action cannot be undone.")),console.log(""),console.log(B.gray(" Use --force to confirm this action.")),console.log("");return}if(t.project&&!t.global){let c=su(WX(t));await _a(c)?(await p0(c),console.log(B.green("\u2705 Project settings reset"))):console.log(B.gray("No project settings to reset."));return}if(t.global&&!t.project){let c=Hc();await _a(c)?(await p0(c),console.log(B.green("\u2705 Global settings reset"))):console.log(B.gray("No global settings to reset."));return}let n=Hc(),s=su(WX(t));await _a(n)&&await p0(n),await _a(s)&&await p0(s),console.log(B.green("\u2705 Compass has been reset to factory settings")),console.log(B.gray(' Run "compass setup" to reconfigure.'))}catch(n){H.error("Reset failed",n),console.error(B.red("\u274C Reset failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i}async function kDn(){try{let i=ADn();process.on("uncaughtException",t=>{H.error("Uncaught exception",t),console.error(B.red("\u274C An unexpected error occurred")),t instanceof Error&&console.error(B.red(` ${t.message}`)),process.exit(1)}),process.on("unhandledRejection",t=>{H.error("Unhandled rejection",t),console.error(B.red("\u274C An unexpected error occurred")),t instanceof Error&&console.error(B.red(` ${t.message}`)),process.exit(1)}),await i.parseAsync(process.argv)}catch(i){H.error("CLI error",i),console.error(B.red("\u274C CLI error")),i instanceof Error&&console.error(B.red(` ${i.message}`)),process.exit(1)}}kDn();
3317
+ `)},x=R=>{b(R)},S=new pit(b);u.setConnection(S),m.on("line",async R=>{if(R.trim()){YI.debug("Raw incoming message",{line:R.substring(0,500)});try{let T=JSON.parse(R);if(T.jsonrpc!=="2.0"){YI.warn("Invalid JSON-RPC version",{message:T}),T.id!==void 0&&x({jsonrpc:"2.0",id:T.id,error:{code:-32600,message:"Invalid Request"}});return}if(("result"in T||"error"in T)&&!T.method){YI.info("Received response",{id:T.id,hasResult:"result"in T,hasError:"error"in T}),T.id!==void 0&&T.id!==null&&S.handleResponse(T.id,T.result,T.error);return}if(!T.method){YI.warn("Message has no method field",{message:T}),T.id!==void 0&&x({jsonrpc:"2.0",id:T.id,error:{code:-32600,message:"Invalid Request: missing method"}});return}let V=T.id===void 0;YI.info("Received message",{type:V?"notification":"request",method:T.method,id:T.id,params:T.params});try{let J=await yDn(u,T.method,T.params);YI.debug("Message handled successfully",{method:T.method,id:T.id}),V||x({jsonrpc:"2.0",id:T.id,result:J})}catch(J){let ae=J instanceof Error?J.message:String(J);ae.startsWith("Unknown method:")||ae.startsWith("Unsupported method:")?YI.warn("Unsupported ACP method",{method:T.method,params:T.params}):YI.error("Message handler error",{method:T.method,error:ae}),V||x({jsonrpc:"2.0",id:T.id,error:{code:-32601,message:ae}})}}catch(T){YI.error("JSON parse error",{error:T,line:R.substring(0,200)}),x({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}})}}});let F=async()=>{YI.info("Shutting down ACP server"),await u.shutdown(),m.close(),process.exit(0)};process.on("SIGINT",F),process.on("SIGTERM",F),m.on("close",()=>{YI.info("Input stream closed"),F()}),YI.info("ACP server ready")}),i}async function yDn(i,t,n){let s=n||{};switch(t){case"initialize":return i.initialize({protocolVersion:s.protocolVersion||1,clientCapabilities:s.clientCapabilities});case"authenticate":return i.authenticate({credentials:s.credentials});case"session/new":case"newSession":return i.newSession({cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers||[]});case"session/load":case"loadSession":return i.loadSession({sessionId:s.sessionId,cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers||[]});case"session/list":case"listSessions":case"unstable_listSessions":return i.listSessions({cwd:s.cwd,cursor:s.cursor});case"session/fork":case"forkSession":case"unstable_forkSession":return i.forkSession({sessionId:s.sessionId,cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers});case"session/resume":case"resumeSession":case"unstable_resumeSession":return i.resumeSession({sessionId:s.sessionId,cwd:s.cwd||process.cwd(),mcpServers:s.mcpServers});case"session/setModel":case"session/set_model":return i.setSessionModel({sessionId:s.sessionId,modelId:s.modelId||s.model});case"session/setMode":case"session/set_mode":return i.setSessionMode({sessionId:s.sessionId,modeId:s.modeId||s.mode});case"session/update":return bDn(i,s);case"prompt":case"session/prompt":return i.prompt({sessionId:s.sessionId,prompt:s.prompt||[]});case"cancel":case"session/cancel":return await i.cancel({sessionId:s.sessionId}),{};default:throw new Error(`Unsupported method: ${t}`)}}async function bDn(i,t){let n=t.sessionId,s=t.update;if(!s)return YI.warn("Session update missing update field",{params:t}),{_meta:{}};let c=s.kind;switch(YI.info("Handling session update",{sessionId:n,kind:c,update:s}),c){case"model":let u=s.model;if(u)return i.setSessionModel({sessionId:n,modelId:u});break;case"mode":let m=s.mode;if(m)return i.setSessionMode({sessionId:n,modeId:m});break;default:YI.debug("Unhandled session update kind",{kind:c,update:s})}return{_meta:{}}}Yd();import IDn from"os";function vDn(i){let t=i.replace(/\\/g,"/").replace(/\/$/,""),n=IDn.homedir().replace(/\\/g,"/").replace(/\/$/,"");if(t.toLowerCase()===n.toLowerCase())return!0;let s=/^[a-z]:\/?users\/[^/]+$/i,c=/^\/users\/[^/]+$/i,u=/^\/home\/[^/]+$/i;return s.test(t)||c.test(t)||u.test(t)}function WX(i){return i.cwd?ure(i.cwd):process.cwd()}var Vae="1.0.42",xDn="compass",wDn="AI-powered development assistance using Anthropic's Claude models";function ADn(){let i=new SG;return i.name(xDn).description(wDn).version(Vae,"-v, --version","Display version number").helpOption("-h, --help","Display help information"),i.command("start",{isDefault:!0}).description("Start interactive Compass session").argument("[prompt]","Initial prompt to start the session with").option("-p, --print <query>","Run query in non-interactive mode (SDK mode) and exit").option("-c, --continue","Continue the most recent conversation in current directory").option("--cwd <path>","Run in a specific project directory").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 (optional if already configured)").option("--no-banner","Skip the ASCII art banner").option("--no-update-check","Skip the 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").option("--agents <json>",`JSON object defining agents for this session (e.g., '{"name": {"description": "...", "prompt": "..."}}')`).option("--agent <name>","Run with a specific agent (applies its system prompt, model, and tool restrictions)").option("--standalone-agent","Use only the agent's system prompt, excluding the default CLI system prompt").action(async(t,n)=>{try{let s=process.env.COMPASS_DEBUG,c=process.env.COMPASS_VERBOSE,u=s&&s.toLowerCase()!=="false"&&s!=="0",m=c&&c.toLowerCase()!=="false"&&c!=="0";if(n.debug||u?H.configure({level:"debug"}):(n.verbose||m)&&H.configure({level:"info"}),n.compassKey||n.anthropicKey){let{getCredentialStore:J}=await Promise.resolve().then(()=>(Ov(),JJ)),{getCompassAuthService:ae}=await Promise.resolve().then(()=>(BJ(),hHe)),fe=await J();if(n.compassKey)try{H.debug("Validating Compass API key from CLI parameter"),await ae().validateApiKey(n.compassKey),await fe.setCompassApiKey(n.compassKey),H.debug("Compass API key from CLI parameter validated and stored"),console.log(B.green("\u2713 Compass API key validated and stored"))}catch(Pe){H.error("Failed to validate Compass API key",Pe),console.error(B.red("\u274C Invalid Compass API key")),Pe instanceof Error&&console.error(B.red(` ${Pe.message}`)),process.exit(1)}if(n.anthropicKey)try{if(H.debug("Storing Anthropic API key from CLI parameter"),!fe.validateApiKeyFormat(n.anthropicKey))throw new Error('Invalid API key format. Anthropic API keys should start with "sk-ant-"');await fe.setApiKey(n.anthropicKey),H.debug("Anthropic API key from CLI parameter stored"),console.log(B.green("\u2713 Anthropic API key stored"))}catch(Pe){H.error("Failed to store Anthropic API key",Pe),console.error(B.red("\u274C Invalid Anthropic API key")),Pe instanceof Error&&console.error(B.red(` ${Pe.message}`)),process.exit(1)}console.log("")}let b=WX(n);if(vDn(b)){console.log(""),console.log(B.yellow("\u26A0\uFE0F Warning: Running from a user home directory")),console.log(B.dim("\u2500".repeat(50))),console.log(""),console.log(B.gray(`Directory: ${b}`)),console.log(""),console.log(B.gray("User home directories typically contain many files and folders.")),console.log(B.gray("This can cause slow indexing and high memory usage.")),console.log(""),console.log(B.gray("Recommendation: Navigate to a specific project folder before")),console.log(B.gray("starting the CLI, or use the --cwd option to specify a project directory.")),console.log("");let{proceed:J}=await cS.prompt([{type:"confirm",name:"proceed",message:"Do you want to continue anyway?",default:!1}]);J||(console.log(""),console.log(B.gray("Exiting. Please navigate to a project directory and try again.")),console.log(""),process.exit(0)),console.log("")}let x=await cir();if(n.agents||n.agent){let{initializeAgentManager:J}=await Promise.resolve().then(()=>(f2(),rZ));await J(b,n.agents)}if(n.print){let J;if(n.agent){let{getAgentByName:fe}=await Promise.resolve().then(()=>(f2(),rZ));J=await fe(n.agent),J||(console.error(B.red(`\u274C Agent "${n.agent}" not found`)),console.error(B.gray(" Available agents: explore, code-reviewer, debugger, planner")),console.error(B.gray(" Or define custom agents with --agents")),process.exit(1)),H.debug(`Running with agent: ${J.name} (${J.source})`)}let ae=await dS({query:n.print,pipedInput:x,projectRoot:b,continueSession:n.continue||!1,debug:n.debug||u,cliAgentsJson:n.agents,agentConfig:J,standaloneAgent:n.standaloneAgent||J?.standalone});process.exit(ae.exitCode);return}await Fc(Hc());try{let{getTempFileService:J,TEMP_DIR:ae,PREVIEW_TEMP_DIR:fe}=await Promise.resolve().then(()=>(zqe(),oBt)),Pe=J(),_t=ure(b,RJ,ae,fe);Pe.setTempDir(_t),await Pe.initialize()}catch{H.debug("TempFileService initialization skipped")}n.banner!==!1&&console.log(sre(Vae)),b!==process.cwd()&&(console.log(B.cyan(`\u{1F4C1} Working directory: ${b}`)),console.log(""));let S=n.forceUpdateCheck===!0;if(H.debug("CLI startup: about to check for updates",{updateCheckEnabled:n.updateCheck!==!1,forceUpdateCheck:S}),n.updateCheck!==!1)try{H.debug("CLI startup: calling performAutoUpdateOnStartup");let J=await eBt(void 0,S);H.debug("CLI startup: update check completed",{updated:J.updated}),J.updated&&(H.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(J){H.debug("Update check failed",J)}let{setProjectRoot:F}=await Promise.resolve().then(()=>(f2(),rZ));F(b);let{setSkillProjectRoot:R}=await Promise.resolve().then(()=>(hX(),art));R(b);let{setCommandsProjectRoot:T}=await Promise.resolve().then(()=>(VIe(),iBe));T(b);let{setHooksProjectRoot:P}=await Promise.resolve().then(()=>(DIe(),jJe));P(b);let{waitUntilExit:V}=Vir(Mir.createElement(Knt,{version:Vae,skipSetup:n.skipSetup,projectRoot:b,smartMode:n.smart,initialPrompt:t,continueSession:n.continue||!1,cliAgentsJson:n.agents}));await V()}catch(s){H.error("Failed to start Compass",s),console.error(B.red("\u274C Failed to start Compass")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("setup").description("Run first-time setup wizard for consent and API key configuration").option("--compass-key <key>","Compass API key for authentication").option("--anthropic-key <key>","Anthropic API key (optional if already configured)").action(async t=>{try{if(await Fc(Hc()),t.compassKey||t.anthropicKey){let{getCredentialStore:s}=await Promise.resolve().then(()=>(Ov(),JJ)),{getCompassAuthService:c}=await Promise.resolve().then(()=>(BJ(),hHe)),u=await s();if(t.compassKey)try{console.log(B.gray("Validating Compass API key...")),await c().validateApiKey(t.compassKey),await u.setCompassApiKey(t.compassKey),console.log(B.green("\u2713 Compass API key validated and stored"))}catch(m){H.error("Failed to validate Compass API key",m),console.error(B.red("\u274C Invalid Compass API key")),m instanceof Error&&console.error(B.red(` ${m.message}`)),process.exit(1)}if(t.anthropicKey)try{if(console.log(B.gray("Storing Anthropic API key...")),!u.validateApiKeyFormat(t.anthropicKey))throw new Error('Invalid API key format. Anthropic API keys should start with "sk-ant-"');await u.setApiKey(t.anthropicKey),console.log(B.green("\u2713 Anthropic API key stored"))}catch(m){H.error("Failed to store Anthropic API key",m),console.error(B.red("\u274C Invalid Anthropic API key")),m instanceof Error&&console.error(B.red(` ${m.message}`)),process.exit(1)}console.log("")}console.log(sre(Vae));let{waitUntilExit:n}=Vir(Mir.createElement(Knt,{version:Vae}));await n()}catch(n){H.error("Setup failed",n),console.error(B.red("\u274C Setup failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.command("init").description("Initialize Compass in the current project directory").option("--cwd <path>","Run in a specific project directory").option("-f, --force","Overwrite existing .compass directory").action(async t=>{try{let n=WX(t),s=su(n);if(await _a(s)){if(!t.force){console.log(B.yellow("\u26A0\uFE0F Compass is already initialized in this project.")),console.log(B.gray(" Use --force to reinitialize."));return}console.log(B.gray("Reinitializing Compass..."))}await Fc(s),await Fc(`${s}/backups`),await Fc(`${s}/cache`),await Fc(`${s}/context`),console.log(B.green("\u2705 Initialized Compass in current project")),console.log(B.gray(` Created ${s}/`)),console.log(""),console.log(B.gray("Next steps:")),console.log(B.gray(` 1. Run "compass setup" if you haven't configured your API key`)),console.log(B.gray(' 2. Run "compass" to start an interactive session'))}catch(n){H.error("Init failed",n),console.error(B.red("\u274C Failed to initialize Compass")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.addCommand(Eir()),i.addCommand(Dir()),i.addCommand(Nir()),i.addCommand(Zir()),i.command("consent").description("Manage consent settings for data collection and telemetry").argument("[action]","Action to perform: status, review, revoke","status").action(async t=>{try{let n=await UR();switch(t.toLowerCase()){case"status":{let s=await n.getStatus();if(console.log(""),console.log(B.bold.white("\u{1F4CB} Consent Status")),console.log(B.dim("\u2500".repeat(40))),console.log(` ${B.gray("Valid:")} ${s.isValid?B.green("Yes"):B.red("No")}`),console.log(` ${B.gray("Version:")} ${s.version||B.gray("N/A")}`),console.log(` ${B.gray("Granted:")} ${s.grantedAt?new Date(s.grantedAt).toLocaleDateString():B.gray("N/A")}`),console.log(` ${B.gray("Expires:")} ${s.expiresAt?new Date(s.expiresAt).toLocaleDateString():B.gray("N/A")}`),s.daysUntilExpiry!==null){let c=s.daysUntilExpiry>30?"green":s.daysUntilExpiry>7?"yellow":"red";console.log(` ${B.gray("Days until expiry:")} ${B[c](s.daysUntilExpiry.toString())}`)}s.consent&&(console.log(""),console.log(B.bold.white(" Settings:")),console.log(` ${B.gray("Data Collection:")} ${s.consent.dataCollection?B.green("Enabled"):B.red("Disabled")}`),console.log(` ${B.gray("Telemetry:")} ${s.consent.telemetry?B.green("Enabled"):B.yellow("Disabled")}`),console.log(` ${B.gray("Analytics:")} ${s.consent.analytics?B.green("Enabled"):B.yellow("Disabled")}`),console.log(` ${B.gray("Error Reporting:")} ${s.consent.errorReporting?B.green("Enabled"):B.yellow("Disabled")}`)),s.needsRenewal&&(console.log(""),console.log(B.yellow('\u26A0\uFE0F Consent needs renewal. Run "compass setup" to update.'))),console.log("");break}case"review":{let s=n.getHistory();if(console.log(""),console.log(B.bold.white("\u{1F4DC} Consent History")),console.log(B.dim("\u2500".repeat(40))),s.length===0)console.log(B.gray(" No consent records found."));else for(let c of s.slice(-5))console.log(` ${B.gray("ID:")} ${c.id.slice(0,8)}...`),console.log(` ${B.gray("Version:")} ${c.version}`),console.log(` ${B.gray("Granted:")} ${new Date(c.grantedAt).toLocaleString()}`),console.log(B.dim(" \u2500".repeat(20)));console.log("");break}case"revoke":{console.log(""),console.log(B.yellow("\u26A0\uFE0F Revoking consent will delete all stored data.")),console.log(B.gray(" This action cannot be undone.")),console.log(""),await n.revokeConsent(),console.log(B.green("\u2705 Consent revoked and data cleaned up")),console.log(B.gray(' Run "compass setup" to reconfigure.')),console.log("");break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: status, review, revoke")),process.exit(1)}}catch(n){H.error("Consent command failed",n),console.error(B.red("\u274C Consent command failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.command("tokens").description("View token usage statistics and cost estimates").option("--export","Export usage data as JSON").option("--session","Show current session usage only").option("--reset","Reset token usage statistics").action(async t=>{try{let n=await Pg();if(t.export){let c=await n.exportUsage();console.log(JSON.stringify(c,null,2));return}if(t.reset){console.log(B.yellow("\u26A0\uFE0F This will reset all token usage statistics.")),console.log(B.gray(" Feature not yet implemented."));return}if(t.session){let c=n.getCurrentSessionUsage();if(!c){console.log(B.gray("No active session."));return}console.log(""),console.log(B.bold.white("\u{1F4CA} Current Session Token Usage")),console.log(B.dim("\u2500".repeat(40))),console.log(` ${B.gray("Session ID:")} ${c.sessionId.slice(0,8)}...`),console.log(` ${B.gray("Started:")} ${new Date(c.startTime).toLocaleString()}`),console.log(` ${B.gray("API Calls:")} ${c.calls.length}`),console.log(` ${B.gray("Input Tokens:")} ${c.totals.inputTokens.toLocaleString()}`),console.log(` ${B.gray("Output Tokens:")} ${c.totals.outputTokens.toLocaleString()}`),console.log(` ${B.gray("Total Tokens:")} ${B.bold(c.totals.totalTokens.toLocaleString())}`),console.log(` ${B.gray("Estimated Cost:")} ${B.green("$"+c.estimatedCost.totalCost.toFixed(4))}`),console.log("");return}let s=n.getAllTimeStats();console.log(""),console.log(B.bold.white("\u{1F4CA} Token Usage Statistics")),console.log(B.dim("\u2500".repeat(40))),console.log(` ${B.gray("Total API Calls:")} ${s.totalCalls.toLocaleString()}`),console.log(` ${B.gray("Total Tokens:")} ${s.totalTokens.toLocaleString()}`),console.log(` ${B.gray("Total Cost:")} ${B.green("$"+s.totalCost.toFixed(4))}`),console.log(""),console.log(B.bold.white(" Averages per Call:")),console.log(` ${B.gray("Input:")} ${s.averageInputTokens.toLocaleString()} tokens`),console.log(` ${B.gray("Output:")} ${s.averageOutputTokens.toLocaleString()} tokens`),console.log(""),console.log(B.bold.white(" Peak Usage:")),console.log(` ${B.gray("Input:")} ${s.peakInputTokens.toLocaleString()} tokens`),console.log(` ${B.gray("Output:")} ${s.peakOutputTokens.toLocaleString()} tokens`),console.log("")}catch(n){H.error("Tokens command failed",n),console.error(B.red("\u274C Tokens command failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i.command("data").description("Manage stored data (GDPR compliance)").argument("[action]","Action to perform: list, export, delete","list").option("--cwd <path>","Run in a specific project directory").option("-o, --output <file>","Output file for export").action(async(t,n)=>{try{let s=await UR();switch(t.toLowerCase()){case"list":{console.log(""),console.log(B.bold.white("\u{1F4C1} Stored Data")),console.log(B.dim("\u2500".repeat(40)));let c=Hc(),u=su(WX(n));console.log(B.bold.cyan(" Global Data:")),console.log(` ${B.gray("Location:")} ${c}`),console.log(` ${B.gray("Contents:")} config, credentials, consent, token usage, logs`),await _a(u)&&(console.log(""),console.log(B.bold.cyan(" Project Data:")),console.log(` ${B.gray("Location:")} ${u}`),console.log(` ${B.gray("Contents:")} session state, backups, cache, context index`)),console.log(""),console.log(B.gray('Use "compass data export" to export all data')),console.log(B.gray('Use "compass consent revoke" to delete all data')),console.log("");break}case"export":{let c=await s.exportUserData(),u=JSON.stringify(c,null,2);if(n.output){let{safeWriteFile:m}=await Promise.resolve().then(()=>(Vp(),pye));await m(n.output,u),console.log(B.green(`\u2705 Data exported to ${n.output}`))}else console.log(u);break}case"delete":{console.log(B.yellow('\u26A0\uFE0F To delete all data, use "compass consent revoke"'));break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: list, export, delete")),process.exit(1)}}catch(s){H.error("Data command failed",s),console.error(B.red("\u274C Data command failed")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("cache").description("Manage cached data").argument("[action]","Action to perform: clear, status","status").option("--cwd <path>","Run in a specific project directory").action(async(t,n)=>{try{let s=su(WX(n)),c=`${s}/cache`,u=`${s}/context`;switch(t.toLowerCase()){case"status":{console.log(""),console.log(B.bold.white("\u{1F4BE} Cache Status")),console.log(B.dim("\u2500".repeat(40))),await _a(c)?(console.log(` ${B.gray("Cache directory:")} ${c}`),console.log(` ${B.green("\u2713")} Cache directory exists`)):console.log(` ${B.gray("Cache directory:")} ${B.yellow("Not initialized")}`),await _a(u)?(console.log(` ${B.gray("Context index:")} ${u}`),console.log(` ${B.green("\u2713")} Context index exists`)):console.log(` ${B.gray("Context index:")} ${B.yellow("Not initialized")}`),console.log(""),console.log(B.gray('Use "compass cache clear" to clear all cached data')),console.log("");break}case"clear":{let m=!1;await _a(c)&&(await p0(c),await Fc(c),console.log(B.green("\u2705 Cache cleared")),m=!0),await _a(u)&&(await p0(u),await Fc(u),console.log(B.green("\u2705 Context index cleared")),m=!0),m||console.log(B.gray("No cache to clear."));break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: status, clear")),process.exit(1)}}catch(s){H.error("Cache command failed",s),console.error(B.red("\u274C Cache command failed")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("update").description("Check for and install updates").argument("[action]","Action to perform: check, install, history","check").option("-f, --force","Force update check (ignore interval)").option("--npm","Use npm for installation").option("--yarn","Use yarn for installation").option("--pnpm","Use pnpm for installation").action(async(t,n)=>{try{let s=await D3();switch(t.toLowerCase()){case"check":{console.log(""),console.log(B.cyan("Checking for updates..."));let c=await s.checkForUpdates(n.force);c.error?console.log(B.red(`Failed to check for updates: ${c.error}`)):c.updateAvailable&&c.latestVersion?s.displayUpdateNotification(c):(console.log(""),console.log(B.green(`You are on the latest version (${c.currentVersion})`)),console.log(""));break}case"install":{let c=n.npm?"npm":n.yarn?"yarn":n.pnpm?"pnpm":await s.detectPackageManager();await s.performUpdate(c);break}case"history":{let c=s.getUpdateHistory();if(console.log(""),console.log(B.bold.cyan("Update History")),console.log(B.dim("\u2500".repeat(40))),c.length===0)console.log(""),console.log(B.gray(" No update history recorded.")),console.log("");else{console.log("");for(let u of c.slice().reverse()){let m=u.success?B.green("\u2713"):B.red("\u2717"),b=u.success?B.green:B.red;console.log(` ${m} ${B.gray(new Date(u.updatedAt).toLocaleDateString())}`),console.log(` ${B.gray("From:")} ${u.fromVersion} ${B.gray("\u2192")} ${b(u.toVersion)}`),console.log(` ${B.gray("Method:")} ${u.method}`),u.error&&console.log(` ${B.red("Error:")} ${u.error}`),console.log("")}}break}default:console.log(B.red(`Unknown action: ${t}`)),console.log(B.gray("Available actions: check, install, history")),process.exit(1)}}catch(s){H.error("Update command failed",s),console.error(B.red("\u274C Update command failed")),s instanceof Error&&console.error(B.red(` ${s.message}`)),process.exit(1)}}),i.command("reset").description("Reset Compass to factory settings").option("--cwd <path>","Run in a specific project directory").option("-f, --force","Skip confirmation prompt").option("--global","Reset global settings only").option("--project","Reset project settings only").action(async t=>{try{if(!t.force){console.log(""),console.log(B.red("\u26A0\uFE0F WARNING: This will delete all Compass data!")),console.log(B.gray(" This action cannot be undone.")),console.log(""),console.log(B.gray(" Use --force to confirm this action.")),console.log("");return}if(t.project&&!t.global){let c=su(WX(t));await _a(c)?(await p0(c),console.log(B.green("\u2705 Project settings reset"))):console.log(B.gray("No project settings to reset."));return}if(t.global&&!t.project){let c=Hc();await _a(c)?(await p0(c),console.log(B.green("\u2705 Global settings reset"))):console.log(B.gray("No global settings to reset."));return}let n=Hc(),s=su(WX(t));await _a(n)&&await p0(n),await _a(s)&&await p0(s),console.log(B.green("\u2705 Compass has been reset to factory settings")),console.log(B.gray(' Run "compass setup" to reconfigure.'))}catch(n){H.error("Reset failed",n),console.error(B.red("\u274C Reset failed")),n instanceof Error&&console.error(B.red(` ${n.message}`)),process.exit(1)}}),i}async function kDn(){try{let i=ADn();process.on("uncaughtException",t=>{H.error("Uncaught exception",t),console.error(B.red("\u274C An unexpected error occurred")),t instanceof Error&&console.error(B.red(` ${t.message}`)),process.exit(1)}),process.on("unhandledRejection",t=>{H.error("Unhandled rejection",t),console.error(B.red("\u274C An unexpected error occurred")),t instanceof Error&&console.error(B.red(` ${t.message}`)),process.exit(1)}),await i.parseAsync(process.argv)}catch(i){H.error("CLI error",i),console.error(B.red("\u274C CLI error")),i instanceof Error&&console.error(B.red(` ${i.message}`)),process.exit(1)}}kDn();
3318
3318
  /*! Bundled license information:
3319
3319
 
3320
3320
  typescript/lib/typescript.js:
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var eyr=Object.create;var Ype=Object.defineProperty;var tyr=Object.getOwnPropertyDescriptor;var ryr=Object.getOwnPropertyNames;var nyr=Object.getPrototypeOf,iyr=Object.prototype.hasOwnProperty;var Xs=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(r,n)=>(typeof require<"u"?require:r)[n]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var Kt=(a,r)=>()=>(a&&(r=a(a=0)),r);var ft=(a,r)=>()=>(r||a((r={exports:{}}).exports,r),r.exports),BE=(a,r)=>{for(var n in r)Ype(a,n,{get:r[n],enumerable:!0})},V0t=(a,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of ryr(r))!iyr.call(a,l)&&l!==n&&Ype(a,l,{get:()=>r[l],enumerable:!(o=tyr(r,l))||o.enumerable});return a};var Ho=(a,r,n)=>(n=a!=null?eyr(nyr(a)):{},V0t(r||!a||!a.__esModule?Ype(n,"default",{value:a,enumerable:!0}):n,a)),syr=a=>V0t(Ype({},"__esModule",{value:!0}),a);function P0t(a){if(typeof a!="object"||a===null)return!1;let r=a;return typeof r.dataCollection=="boolean"&&typeof r.telemetry=="boolean"&&typeof r.analytics=="boolean"&&typeof r.errorReporting=="boolean"}function myr(a){if(typeof a!="object"||a===null)return!1;let r=a;return typeof r.id=="string"&&typeof r.version=="string"&&typeof r.grantedAt=="string"&&typeof r.expiresAt=="string"&&P0t(r.consent)}function _yr(){return{dataCollection:Ope.dataCollection.defaultValue,telemetry:Ope.telemetry.defaultValue,analytics:Ope.analytics.defaultValue,errorReporting:Ope.errorReporting.defaultValue}}function hyr(){return{dataCollection:!0,telemetry:!0,analytics:!0,errorReporting:!0}}function gyr(){return{dataCollection:!0,telemetry:!1,analytics:!1,errorReporting:!1}}var UPe,Ope,jPe=Kt(()=>{"use strict";UPe="1.0.0",Ope={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 NO,FO=Kt(()=>{"use strict";NO=(l=>(l.MANUAL="manual",l.AUTO="auto",l.STRICT="strict",l.SMART="smart",l))(NO||{})});var xz,BPe,Hpe,wz=Kt(()=>{"use strict";xz=(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))(xz||{}),BPe=(v=>(v.PENDING="pending",v.IN_PROGRESS="in_progress",v.PAUSED="paused",v.COMPLETED="completed",v.FAILED="failed",v.SKIPPED="skipped",v.ROLLED_BACK="rolled_back",v))(BPe||{}),Hpe=(D=>(D.IDLE="idle",D.CONTEXT_GATHERING="context_gathering",D.COMPLEXITY_ASSESSMENT="complexity_assessment",D.CLARIFICATION="clarification",D.PLAN_GENERATION="plan_generation",D.PLAN_REVIEW="plan_review",D.EXECUTION="execution",D.VERIFICATION="verification",D.COMPLETED="completed",D.FAILED="failed",D))(Hpe||{})});var J0t={};BE(J0t,{AGENT_SOURCE_PRIORITY:()=>Az,compareAgentPriority:()=>H0t,createDefaultAgentDefinition:()=>Y0t,getAgentSourcePriority:()=>Jpe,isValidAgentFrontmatter:()=>Xpe,isValidAgentPermissionMode:()=>Lpe,isValidAgentSource:()=>D0t,isValidCLIAgentConfig:()=>M0t,parseToolsList:()=>OP,serializeToolsList:()=>O0t});function Lpe(a){return typeof a=="string"&&["default","acceptEditsAsk","bypassPermissions","plan","ignore","acceptEdits","dontAsk"].includes(a)}function D0t(a){return typeof a=="string"&&["project","cli","user","builtin"].includes(a)}function Xpe(a){if(typeof a!="object"||a===null)return!1;let r=a;return!(typeof r.name!="string"||r.name.length===0||typeof r.description!="string"||r.description.length===0||r.tools!==void 0&&typeof r.tools!="string"||r.disallowedTools!==void 0&&typeof r.disallowedTools!="string"||r.model!==void 0&&typeof r.model!="string"||r.permissionMode!==void 0&&!Lpe(r.permissionMode)||r.skills!==void 0&&typeof r.skills!="string"||r.standalone!==void 0&&typeof r.standalone!="boolean"||r.mcpServers!==void 0&&typeof r.mcpServers!="string")}function M0t(a){if(typeof a!="object"||a===null)return!1;let r=a;return!(typeof r.description!="string"||typeof r.prompt!="string"||r.tools!==void 0&&!Array.isArray(r.tools)||r.disallowedTools!==void 0&&!Array.isArray(r.disallowedTools)||r.model!==void 0&&typeof r.model!="string"||r.permissionMode!==void 0&&!Lpe(r.permissionMode)||r.skills!==void 0&&!Array.isArray(r.skills)||r.standalone!==void 0&&typeof r.standalone!="boolean"||r.mcpServers!==void 0&&!Array.isArray(r.mcpServers))}function Y0t(a,r,n,o="builtin"){return{id:`${o}-${a}`,name:a,description:r,systemPrompt:n,source:o,permissionMode:"default",isActive:!0,rawFrontmatter:{name:a,description:r}}}function OP(a){if(!(!a||a.trim()===""))return a.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function O0t(a){if(!(!a||a.length===0))return a.join(", ")}function Jpe(a){return Az.indexOf(a)}function H0t(a,r){return Jpe(a.source)-Jpe(r.source)}var Az,Qpe=Kt(()=>{"use strict";Az=["builtin","user","cli","project"]});function jpe(a){return typeof a=="string"&&L0t.includes(a)}function Gyr(a){return typeof a=="string"&&["personal","project"].includes(a)}function Eyr(a){if(typeof a!="object"||a===null)return!1;let r=a;return!(r.description!==void 0&&typeof r.description!="string"||r.enabled!==void 0&&typeof r.enabled!="boolean"||r.tools!==void 0&&!Array.isArray(r.tools)||r.match!==void 0&&typeof r.match!="object"||r.timeout!==void 0&&typeof r.timeout!="number")}function zPe(a){return Upe.indexOf(a)}function Cyr(a,r){return zPe(a.source)-zPe(r.source)}var L0t,Upe,qPe=Kt(()=>{"use strict";L0t=["PreToolUse","PostToolUse","UserPromptSubmit","Notification","Stop"],Upe=["personal","project"]});var Sz,Gz,RO,Bpe,$Pe,Ez,KPe,eDe,kyr,WO,tDe,Tyr,rDe,nDe,iDe,sDe,EW,aDe,oDe,Nyr,Fyr,Ryr,cDe,lDe,uDe,zpe,Wyr,Zyr,qpe,dDe,Cz,Vyr,Pyr,Dyr,Myr,zE,ZO,pDe,Yyr,Oyr,Hyr,Jyr,Lyr,nN,CW,Nv,fDe,Xyr,Qyr,Uyr,jyr,Byr,mDe,_De,zyr,Gf=Kt(()=>{"use strict";Sz=".compass",Gz=".compass",RO="config.json",Bpe="session.json",$Pe="consent.json",Ez="credentials.enc",KPe="logs",eDe="backups",kyr="cache",WO="saved-sessions",tDe="index",Tyr="context",rDe="commands",nDe="agents",iDe="skills",sDe="hooks",EW=16384,aDe=5e4,oDe=5e4,Nyr=80,Fyr=10,Ryr=30,cDe=30,lDe=365,uDe=6e4,zpe=3e4,Wyr=50,Zyr=1048576,qpe=100,dDe=8e3,Cz=4e3,Vyr=6e3,Pyr=90,Dyr=1e5,Myr=524288e3,zE="claude-sonnet-4-5-20250929",ZO=.6,pDe="haiku",Yyr="banner",Oyr=4,Hyr=1e3,Jyr=16e3,Lyr=.1,nN={anthropic:{model:zE,maxTokens:16384,temperature:.6},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:1048576,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:50,backupBeforeModify:!0,shellCommandTimeout:3e4,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:{theme:"auto",showTokenUsage:!0,showTimestamps:!1,compactMode:!1,animationsEnabled:!0,colorOutput:!0},session:{autoSave:!0,autoSaveInterval:6e4,maxHistoryLength:100,autoCompactThreshold:5e4,sessionExpiryDays:30},update:{checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:Yyr,includePrerelease:!1},agentic:{maxIterations:200,costWarningThreshold:5,costHardCap:0,autoCompactAtPercent:80,stuckDetectionEnabled:!0,stuckDetectionThreshold:3,maxIterationsPerTask:50}},CW=["anthropic","ollama","zai","minimax"],Nv={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",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE"},fDe={anthropic:Nv.API_KEY,ollama:Nv.OLLAMA_API_KEY,zai:Nv.ZAI_API_KEY,minimax:Nv.MINIMAX_API_KEY},Xyr="1.0.41",Qyr="Compass CLI",Uyr="Agentic CLI by Compass Agentic Platform",jyr="1.0.0",Byr={".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"},mDe=["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","*.sql","*.csv","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],_De=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"],zyr=[".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"]});var rIt={};BE(rIt,{CLAUDE_MODELS:()=>mw,MODEL_ALIASES:()=>kz,calculateModelCost:()=>z0t,compareModels:()=>q0t,getAvailableAliases:()=>Q0t,getAvailableModelIds:()=>X0t,getAvailableModels:()=>VO,getCheapestModel:()=>K0t,getDefaultModel:()=>j0t,getDefaultModelId:()=>B0t,getModelConfig:()=>ry,getModelDescription:()=>$pe,getModelTier:()=>tIt,getModelsByCapability:()=>$0t,getMostCapableModel:()=>eIt,isValidModel:()=>U0t,resolveModelId:()=>ny});function ny(a){let r=a.toLowerCase();if(kz[r])return kz[r];for(let n of Object.keys(mw))if(n.toLowerCase()===r)return n;return a}function ry(a){let r=ny(a);return mw[r]}function VO(){return Object.values(mw)}function X0t(){return Object.keys(mw)}function Q0t(){return Object.keys(kz)}function U0t(a){return ny(a)in mw}function j0t(){return mw["claude-sonnet-4-5-20250929"]}function B0t(){return"claude-sonnet-4-5-20250929"}function z0t(a,r,n){let o=ry(a);if(!o)return null;let l=r/1e6*o.pricing.inputPricePerMillion,f=n/1e6*o.pricing.outputPricePerMillion;return l+f}function q0t(a,r,n){let o=ry(a),l=ry(r);if(!o||!l)return 0;switch(n){case"price":return o.pricing.inputPricePerMillion-l.pricing.inputPricePerMillion;case"context":return l.contextWindow-o.contextWindow;case"speed":return l.pricing.inputPricePerMillion-o.pricing.inputPricePerMillion;default:return 0}}function $0t(a){return VO().filter(r=>r.capabilities[a])}function K0t(){return VO().reduce((r,n)=>n.pricing.inputPricePerMillion<r.pricing.inputPricePerMillion?n:r)}function eIt(){return mw["claude-opus-4-5-20251101"]}function tIt(a){let r=ny(a);if(r.includes("haiku"))return"economy";if(r.includes("sonnet"))return"balanced";if(r.includes("opus"))return"premium"}function $pe(a){let r=ny(a);if(r.includes("opus"))return"Most capable model - best for complex reasoning, analysis, and extended thinking";if(r.includes("sonnet"))return"Balanced performance and cost - ideal for most coding tasks";if(r.includes("haiku"))return"Fastest and most economical - great for quick responses and simple tasks";if(r.includes("glm-4.7"))return"OpenSource"}var mw,kz,HP=Kt(()=>{"use strict";mw={"glm-4.7:cloud":{id:"glm-4.7:cloud",name:"Z.AI GLM 4.7",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"minimax-m2.1:cloud":{id:"minimax-m2.1:cloud",name:"MiniMax M2.1",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"kimi-k2.5:cloud":{id:"kimi-k2.5:cloud",name:"Kimi K2.5",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"gemini-3-pro-preview":{id:"gemini-3-pro-preview",name:"Gemini 3 Pro",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",baseUrl:"https://api.anthropic.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",provider:"anthropic",baseUrl:"https://api.anthropic.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:15,outputPricePerMillion:75},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!0}},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",provider:"anthropic",baseUrl:"https://api.anthropic.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:.25,outputPricePerMillion:1.25},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}}},kz={sonnet:"claude-sonnet-4-5-20250929",opus:"claude-opus-4-5-20251101",haiku:"claude-haiku-4-5-20251001","glm-4.7":"glm-4.7:cloud","minimax-m2.1":"minimax-m2.1:cloud","kimi-k2.5":"kimi-k2.5:cloud","gemini-3-pro":"gemini-3-pro-preview",fast:"claude-haiku-4-5-20251001",quick:"claude-haiku-4-5-20251001",smart:"claude-sonnet-4-5-20250929",balanced:"claude-sonnet-4-5-20250929",powerful:"claude-opus-4-5-20251101",best:"claude-opus-4-5-20251101",robust:"glm-4.7:cloud",deep:"kimi-k2.5:cloud",versatile:"minimax-m2.1:cloud",creative:"gemini-3-pro-preview",s:"claude-sonnet-4-5-20250929",o:"claude-opus-4-5-20251101",h:"claude-haiku-4-5-20251001",g:"glm-4.7:cloud",m:"minimax-m2.1:cloud",k:"kimi-k2.5:cloud",p:"gemini-3-pro-preview"}});var aIt=ft((bsn,hDe)=>{"use strict";var nIt=Xs("path"),iIt=Xs("module"),qyr=Xs("fs"),sIt=(a,r,n)=>{if(typeof a!="string")throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof a}\``);if(typeof r!="string")throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof r}\``);try{a=qyr.realpathSync(a)}catch(f){if(f.code==="ENOENT")a=nIt.resolve(a);else{if(n)return null;throw f}}let o=nIt.join(a,"noop.js"),l=()=>iIt._resolveFilename(r,{id:o,filename:o,paths:iIt._nodeModulePaths(a)});if(n)try{return l()}catch{return null}return l()};hDe.exports=(a,r)=>sIt(a,r);hDe.exports.silent=(a,r)=>sIt(a,r,!0)});var cIt=ft((vsn,gDe)=>{"use strict";var oIt=()=>{let a=Error.prepareStackTrace;Error.prepareStackTrace=(n,o)=>o;let r=new Error().stack.slice(1);return Error.prepareStackTrace=a,r};gDe.exports=oIt;gDe.exports.default=oIt});var uIt=ft((xsn,lIt)=>{"use strict";var $yr=cIt();lIt.exports=a=>{let r=$yr();if(!a)return r[2].getFileName();let n=!1;r.shift();for(let o of r){let l=o.getFileName();if(typeof l=="string"){if(l===a){n=!0;continue}if(l!=="module.js"&&n&&l!==a)return l}}}});var pIt=ft((wsn,dIt)=>{"use strict";var Kyr=Xs("path"),ebr=aIt(),tbr=uIt();dIt.exports=a=>{if(typeof a!="string")throw new TypeError("Expected a string");let r=tbr(__filename),n=r?Kyr.dirname(r):__dirname,o=ebr(n,a),l=Xs.cache[o];if(l&&l.parent){let h=l.parent.children.length;for(;h--;)l.parent.children[h].id===o&&l.parent.children.splice(h,1)}delete Xs.cache[o];let f=Xs.cache[r];return f===void 0||f.require===void 0?Xs(o):f.require(o)}});var mIt=ft((Ssn,fIt)=>{"use strict";fIt.exports=function(r){return r?r instanceof Array||Array.isArray(r)||r.length>=0&&r.splice instanceof Function:!1}});var hIt=ft((Gsn,_It)=>{"use strict";var rbr=Xs("util"),nbr=mIt(),IDe=function(r,n){(!r||r.constructor!==String)&&(n=r||{},r=Error.name);var o=function l(f){if(!this)return new l(f);f=f instanceof Error?f.message:f||this.message,Error.call(this,f),Error.captureStackTrace(this,o),this.name=r,Object.defineProperty(this,"message",{configurable:!0,enumerable:!1,get:function(){var D=f.split(/\r?\n/g);for(var Q in n)if(n.hasOwnProperty(Q)){var M=n[Q];"message"in M&&(D=M.message(this[Q],D)||D,nbr(D)||(D=[D]))}return D.join(`
1
+ var eyr=Object.create;var Ype=Object.defineProperty;var tyr=Object.getOwnPropertyDescriptor;var ryr=Object.getOwnPropertyNames;var nyr=Object.getPrototypeOf,iyr=Object.prototype.hasOwnProperty;var Xs=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(r,n)=>(typeof require<"u"?require:r)[n]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var Kt=(a,r)=>()=>(a&&(r=a(a=0)),r);var ft=(a,r)=>()=>(r||a((r={exports:{}}).exports,r),r.exports),BE=(a,r)=>{for(var n in r)Ype(a,n,{get:r[n],enumerable:!0})},V0t=(a,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of ryr(r))!iyr.call(a,l)&&l!==n&&Ype(a,l,{get:()=>r[l],enumerable:!(o=tyr(r,l))||o.enumerable});return a};var Ho=(a,r,n)=>(n=a!=null?eyr(nyr(a)):{},V0t(r||!a||!a.__esModule?Ype(n,"default",{value:a,enumerable:!0}):n,a)),syr=a=>V0t(Ype({},"__esModule",{value:!0}),a);function P0t(a){if(typeof a!="object"||a===null)return!1;let r=a;return typeof r.dataCollection=="boolean"&&typeof r.telemetry=="boolean"&&typeof r.analytics=="boolean"&&typeof r.errorReporting=="boolean"}function myr(a){if(typeof a!="object"||a===null)return!1;let r=a;return typeof r.id=="string"&&typeof r.version=="string"&&typeof r.grantedAt=="string"&&typeof r.expiresAt=="string"&&P0t(r.consent)}function _yr(){return{dataCollection:Ope.dataCollection.defaultValue,telemetry:Ope.telemetry.defaultValue,analytics:Ope.analytics.defaultValue,errorReporting:Ope.errorReporting.defaultValue}}function hyr(){return{dataCollection:!0,telemetry:!0,analytics:!0,errorReporting:!0}}function gyr(){return{dataCollection:!0,telemetry:!1,analytics:!1,errorReporting:!1}}var UPe,Ope,jPe=Kt(()=>{"use strict";UPe="1.0.0",Ope={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 NO,FO=Kt(()=>{"use strict";NO=(l=>(l.MANUAL="manual",l.AUTO="auto",l.STRICT="strict",l.SMART="smart",l))(NO||{})});var xz,BPe,Hpe,wz=Kt(()=>{"use strict";xz=(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))(xz||{}),BPe=(v=>(v.PENDING="pending",v.IN_PROGRESS="in_progress",v.PAUSED="paused",v.COMPLETED="completed",v.FAILED="failed",v.SKIPPED="skipped",v.ROLLED_BACK="rolled_back",v))(BPe||{}),Hpe=(D=>(D.IDLE="idle",D.CONTEXT_GATHERING="context_gathering",D.COMPLEXITY_ASSESSMENT="complexity_assessment",D.CLARIFICATION="clarification",D.PLAN_GENERATION="plan_generation",D.PLAN_REVIEW="plan_review",D.EXECUTION="execution",D.VERIFICATION="verification",D.COMPLETED="completed",D.FAILED="failed",D))(Hpe||{})});var J0t={};BE(J0t,{AGENT_SOURCE_PRIORITY:()=>Az,compareAgentPriority:()=>H0t,createDefaultAgentDefinition:()=>Y0t,getAgentSourcePriority:()=>Jpe,isValidAgentFrontmatter:()=>Xpe,isValidAgentPermissionMode:()=>Lpe,isValidAgentSource:()=>D0t,isValidCLIAgentConfig:()=>M0t,parseToolsList:()=>OP,serializeToolsList:()=>O0t});function Lpe(a){return typeof a=="string"&&["default","acceptEditsAsk","bypassPermissions","plan","ignore","acceptEdits","dontAsk"].includes(a)}function D0t(a){return typeof a=="string"&&["project","cli","user","builtin"].includes(a)}function Xpe(a){if(typeof a!="object"||a===null)return!1;let r=a;return!(typeof r.name!="string"||r.name.length===0||typeof r.description!="string"||r.description.length===0||r.tools!==void 0&&typeof r.tools!="string"||r.disallowedTools!==void 0&&typeof r.disallowedTools!="string"||r.model!==void 0&&typeof r.model!="string"||r.permissionMode!==void 0&&!Lpe(r.permissionMode)||r.skills!==void 0&&typeof r.skills!="string"||r.standalone!==void 0&&typeof r.standalone!="boolean"||r.mcpServers!==void 0&&typeof r.mcpServers!="string")}function M0t(a){if(typeof a!="object"||a===null)return!1;let r=a;return!(typeof r.description!="string"||typeof r.prompt!="string"||r.tools!==void 0&&!Array.isArray(r.tools)||r.disallowedTools!==void 0&&!Array.isArray(r.disallowedTools)||r.model!==void 0&&typeof r.model!="string"||r.permissionMode!==void 0&&!Lpe(r.permissionMode)||r.skills!==void 0&&!Array.isArray(r.skills)||r.standalone!==void 0&&typeof r.standalone!="boolean"||r.mcpServers!==void 0&&!Array.isArray(r.mcpServers))}function Y0t(a,r,n,o="builtin"){return{id:`${o}-${a}`,name:a,description:r,systemPrompt:n,source:o,permissionMode:"default",isActive:!0,rawFrontmatter:{name:a,description:r}}}function OP(a){if(!(!a||a.trim()===""))return a.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function O0t(a){if(!(!a||a.length===0))return a.join(", ")}function Jpe(a){return Az.indexOf(a)}function H0t(a,r){return Jpe(a.source)-Jpe(r.source)}var Az,Qpe=Kt(()=>{"use strict";Az=["builtin","user","cli","project"]});function jpe(a){return typeof a=="string"&&L0t.includes(a)}function Gyr(a){return typeof a=="string"&&["personal","project"].includes(a)}function Eyr(a){if(typeof a!="object"||a===null)return!1;let r=a;return!(r.description!==void 0&&typeof r.description!="string"||r.enabled!==void 0&&typeof r.enabled!="boolean"||r.tools!==void 0&&!Array.isArray(r.tools)||r.match!==void 0&&typeof r.match!="object"||r.timeout!==void 0&&typeof r.timeout!="number")}function zPe(a){return Upe.indexOf(a)}function Cyr(a,r){return zPe(a.source)-zPe(r.source)}var L0t,Upe,qPe=Kt(()=>{"use strict";L0t=["PreToolUse","PostToolUse","UserPromptSubmit","Notification","Stop"],Upe=["personal","project"]});var Sz,Gz,RO,Bpe,$Pe,Ez,KPe,eDe,kyr,WO,tDe,Tyr,rDe,nDe,iDe,sDe,EW,aDe,oDe,Nyr,Fyr,Ryr,cDe,lDe,uDe,zpe,Wyr,Zyr,qpe,dDe,Cz,Vyr,Pyr,Dyr,Myr,zE,ZO,pDe,Yyr,Oyr,Hyr,Jyr,Lyr,nN,CW,Nv,fDe,Xyr,Qyr,Uyr,jyr,Byr,mDe,_De,zyr,Gf=Kt(()=>{"use strict";Sz=".compass",Gz=".compass",RO="config.json",Bpe="session.json",$Pe="consent.json",Ez="credentials.enc",KPe="logs",eDe="backups",kyr="cache",WO="saved-sessions",tDe="index",Tyr="context",rDe="commands",nDe="agents",iDe="skills",sDe="hooks",EW=16384,aDe=5e4,oDe=5e4,Nyr=80,Fyr=10,Ryr=30,cDe=30,lDe=365,uDe=6e4,zpe=3e4,Wyr=50,Zyr=1048576,qpe=100,dDe=8e3,Cz=4e3,Vyr=6e3,Pyr=90,Dyr=1e5,Myr=524288e3,zE="claude-sonnet-4-5-20250929",ZO=.6,pDe="haiku",Yyr="banner",Oyr=4,Hyr=1e3,Jyr=16e3,Lyr=.1,nN={anthropic:{model:zE,maxTokens:16384,temperature:.6},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:1048576,indexOnStartup:!0},safety:{requireApproval:!0,autoApprovePatterns:[],blockedPatterns:[".env*","*.key","*.pem","*.p12","*.pfx","secrets/**","**/secrets/**","**/*.secret","**/credentials*","**/password*"],maxFilesPerOperation:50,backupBeforeModify:!0,shellCommandTimeout:3e4,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:{theme:"auto",showTokenUsage:!0,showTimestamps:!1,compactMode:!1,animationsEnabled:!0,colorOutput:!0},session:{autoSave:!0,autoSaveInterval:6e4,maxHistoryLength:100,autoCompactThreshold:5e4,sessionExpiryDays:30},update:{checkOnStartup:!0,checkInterval:4,showNotifications:!0,notificationStyle:Yyr,includePrerelease:!1},agentic:{maxIterations:200,costWarningThreshold:5,costHardCap:0,autoCompactAtPercent:80,stuckDetectionEnabled:!0,stuckDetectionThreshold:3,maxIterationsPerTask:50}},CW=["anthropic","ollama","zai","minimax"],Nv={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",MODEL:"COMPASS_MODEL",CONFIG_PATH:"COMPASS_CONFIG",DEBUG:"COMPASS_DEBUG",NO_COLOR:"NO_COLOR",FORCE_COLOR:"FORCE_COLOR",HOME:"HOME",USERPROFILE:"USERPROFILE"},fDe={anthropic:Nv.API_KEY,ollama:Nv.OLLAMA_API_KEY,zai:Nv.ZAI_API_KEY,minimax:Nv.MINIMAX_API_KEY},Xyr="1.0.42",Qyr="Compass CLI",Uyr="Agentic CLI by Compass Agentic Platform",jyr="1.0.0",Byr={".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"},mDe=["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","*.sql","*.csv","**/__snapshots__/**","**/fixtures/**/*.json","*.d.ts.map"],_De=["node_modules",".git","dist","build","out","coverage",".next",".nuxt",".output",".cache",".parcel-cache","vendor","__pycache__",".pytest_cache","target","bin","obj"],zyr=[".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"]});var rIt={};BE(rIt,{CLAUDE_MODELS:()=>mw,MODEL_ALIASES:()=>kz,calculateModelCost:()=>z0t,compareModels:()=>q0t,getAvailableAliases:()=>Q0t,getAvailableModelIds:()=>X0t,getAvailableModels:()=>VO,getCheapestModel:()=>K0t,getDefaultModel:()=>j0t,getDefaultModelId:()=>B0t,getModelConfig:()=>ry,getModelDescription:()=>$pe,getModelTier:()=>tIt,getModelsByCapability:()=>$0t,getMostCapableModel:()=>eIt,isValidModel:()=>U0t,resolveModelId:()=>ny});function ny(a){let r=a.toLowerCase();if(kz[r])return kz[r];for(let n of Object.keys(mw))if(n.toLowerCase()===r)return n;return a}function ry(a){let r=ny(a);return mw[r]}function VO(){return Object.values(mw)}function X0t(){return Object.keys(mw)}function Q0t(){return Object.keys(kz)}function U0t(a){return ny(a)in mw}function j0t(){return mw["claude-sonnet-4-5-20250929"]}function B0t(){return"claude-sonnet-4-5-20250929"}function z0t(a,r,n){let o=ry(a);if(!o)return null;let l=r/1e6*o.pricing.inputPricePerMillion,f=n/1e6*o.pricing.outputPricePerMillion;return l+f}function q0t(a,r,n){let o=ry(a),l=ry(r);if(!o||!l)return 0;switch(n){case"price":return o.pricing.inputPricePerMillion-l.pricing.inputPricePerMillion;case"context":return l.contextWindow-o.contextWindow;case"speed":return l.pricing.inputPricePerMillion-o.pricing.inputPricePerMillion;default:return 0}}function $0t(a){return VO().filter(r=>r.capabilities[a])}function K0t(){return VO().reduce((r,n)=>n.pricing.inputPricePerMillion<r.pricing.inputPricePerMillion?n:r)}function eIt(){return mw["claude-opus-4-5-20251101"]}function tIt(a){let r=ny(a);if(r.includes("haiku"))return"economy";if(r.includes("sonnet"))return"balanced";if(r.includes("opus"))return"premium"}function $pe(a){let r=ny(a);if(r.includes("opus"))return"Most capable model - best for complex reasoning, analysis, and extended thinking";if(r.includes("sonnet"))return"Balanced performance and cost - ideal for most coding tasks";if(r.includes("haiku"))return"Fastest and most economical - great for quick responses and simple tasks";if(r.includes("glm-4.7"))return"OpenSource"}var mw,kz,HP=Kt(()=>{"use strict";mw={"glm-4.7:cloud":{id:"glm-4.7:cloud",name:"Z.AI GLM 4.7",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"minimax-m2.1:cloud":{id:"minimax-m2.1:cloud",name:"MiniMax M2.1",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"kimi-k2.5:cloud":{id:"kimi-k2.5:cloud",name:"Kimi K2.5",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"gemini-3-pro-preview":{id:"gemini-3-pro-preview",name:"Gemini 3 Pro",provider:"ollama",baseUrl:"https://ollama.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",baseUrl:"https://api.anthropic.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:3,outputPricePerMillion:15},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",provider:"anthropic",baseUrl:"https://api.anthropic.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:15,outputPricePerMillion:75},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!0}},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",provider:"anthropic",baseUrl:"https://api.anthropic.com",contextWindow:2e5,maxOutputTokens:8192,pricing:{inputPricePerMillion:.25,outputPricePerMillion:1.25},capabilities:{vision:!0,toolUse:!0,streaming:!0,extendedThinking:!1}}},kz={sonnet:"claude-sonnet-4-5-20250929",opus:"claude-opus-4-5-20251101",haiku:"claude-haiku-4-5-20251001","glm-4.7":"glm-4.7:cloud","minimax-m2.1":"minimax-m2.1:cloud","kimi-k2.5":"kimi-k2.5:cloud","gemini-3-pro":"gemini-3-pro-preview",fast:"claude-haiku-4-5-20251001",quick:"claude-haiku-4-5-20251001",smart:"claude-sonnet-4-5-20250929",balanced:"claude-sonnet-4-5-20250929",powerful:"claude-opus-4-5-20251101",best:"claude-opus-4-5-20251101",robust:"glm-4.7:cloud",deep:"kimi-k2.5:cloud",versatile:"minimax-m2.1:cloud",creative:"gemini-3-pro-preview",s:"claude-sonnet-4-5-20250929",o:"claude-opus-4-5-20251101",h:"claude-haiku-4-5-20251001",g:"glm-4.7:cloud",m:"minimax-m2.1:cloud",k:"kimi-k2.5:cloud",p:"gemini-3-pro-preview"}});var aIt=ft((bsn,hDe)=>{"use strict";var nIt=Xs("path"),iIt=Xs("module"),qyr=Xs("fs"),sIt=(a,r,n)=>{if(typeof a!="string")throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof a}\``);if(typeof r!="string")throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof r}\``);try{a=qyr.realpathSync(a)}catch(f){if(f.code==="ENOENT")a=nIt.resolve(a);else{if(n)return null;throw f}}let o=nIt.join(a,"noop.js"),l=()=>iIt._resolveFilename(r,{id:o,filename:o,paths:iIt._nodeModulePaths(a)});if(n)try{return l()}catch{return null}return l()};hDe.exports=(a,r)=>sIt(a,r);hDe.exports.silent=(a,r)=>sIt(a,r,!0)});var cIt=ft((vsn,gDe)=>{"use strict";var oIt=()=>{let a=Error.prepareStackTrace;Error.prepareStackTrace=(n,o)=>o;let r=new Error().stack.slice(1);return Error.prepareStackTrace=a,r};gDe.exports=oIt;gDe.exports.default=oIt});var uIt=ft((xsn,lIt)=>{"use strict";var $yr=cIt();lIt.exports=a=>{let r=$yr();if(!a)return r[2].getFileName();let n=!1;r.shift();for(let o of r){let l=o.getFileName();if(typeof l=="string"){if(l===a){n=!0;continue}if(l!=="module.js"&&n&&l!==a)return l}}}});var pIt=ft((wsn,dIt)=>{"use strict";var Kyr=Xs("path"),ebr=aIt(),tbr=uIt();dIt.exports=a=>{if(typeof a!="string")throw new TypeError("Expected a string");let r=tbr(__filename),n=r?Kyr.dirname(r):__dirname,o=ebr(n,a),l=Xs.cache[o];if(l&&l.parent){let h=l.parent.children.length;for(;h--;)l.parent.children[h].id===o&&l.parent.children.splice(h,1)}delete Xs.cache[o];let f=Xs.cache[r];return f===void 0||f.require===void 0?Xs(o):f.require(o)}});var mIt=ft((Ssn,fIt)=>{"use strict";fIt.exports=function(r){return r?r instanceof Array||Array.isArray(r)||r.length>=0&&r.splice instanceof Function:!1}});var hIt=ft((Gsn,_It)=>{"use strict";var rbr=Xs("util"),nbr=mIt(),IDe=function(r,n){(!r||r.constructor!==String)&&(n=r||{},r=Error.name);var o=function l(f){if(!this)return new l(f);f=f instanceof Error?f.message:f||this.message,Error.call(this,f),Error.captureStackTrace(this,o),this.name=r,Object.defineProperty(this,"message",{configurable:!0,enumerable:!1,get:function(){var D=f.split(/\r?\n/g);for(var Q in n)if(n.hasOwnProperty(Q)){var M=n[Q];"message"in M&&(D=M.message(this[Q],D)||D,nbr(D)||(D=[D]))}return D.join(`
2
2
  `)},set:function(D){f=D}});var h=null,v=Object.getOwnPropertyDescriptor(this,"stack"),E=v.get,R=v.value;delete v.value,delete v.writable,v.set=function(D){h=D},v.get=function(){var D=(h||(E?E.call(this):R)).split(/\r?\n+/g);h||(D[0]=this.name+": "+this.message);var Q=1;for(var M in n)if(n.hasOwnProperty(M)){var ne=n[M];if("line"in ne){var he=ne.line(this[M]);he&&D.splice(Q++,0," "+he)}"stack"in ne&&ne.stack(this[M],D)}return D.join(`
3
3
  `)},Object.defineProperty(this,"stack",v)};return Object.setPrototypeOf?(Object.setPrototypeOf(o.prototype,Error.prototype),Object.setPrototypeOf(o,Error)):rbr.inherits(o,Error),o};IDe.append=function(a,r){return{message:function(n,o){return n=n||r,n&&(o[0]+=" "+a.replace("%s",n.toString())),o}}};IDe.line=function(a,r){return{line:function(n){return n=n||r,n?a.replace("%s",n.toString()):null}}};_It.exports=IDe});var yIt=ft((Esn,IIt)=>{"use strict";var ibr=a=>{let r=a.charCodeAt(0).toString(16).toUpperCase();return"0x"+(r.length%2?"0":"")+r},sbr=(a,r,n)=>{if(!r)return{message:a.message+" while parsing empty string",position:0};let o=a.message.match(/^Unexpected token (.) .*position\s+(\d+)/i),l=o?+o[2]:a.message.match(/^Unexpected end of JSON.*/i)?r.length-1:null,f=o?a.message.replace(/^Unexpected token ./,`Unexpected token ${JSON.stringify(o[1])} (${ibr(o[1])})`):a.message;if(l!=null){let h=l<=n?0:l-n,v=l+n>=r.length?r.length:l+n,E=(h===0?"":"...")+r.slice(h,v)+(v===r.length?"":"...");return{message:f+` while parsing ${r===E?"":"near "}${JSON.stringify(E)}`,position:l}}else return{message:f+` while parsing '${r.slice(0,n*2)}'`,position:0}},Kpe=class extends SyntaxError{constructor(r,n,o,l){o=o||20;let f=sbr(r,n,o);super(f.message),Object.assign(this,f),this.code="EJSONPARSE",this.systemError=r,Error.captureStackTrace(this,l||this.constructor)}get name(){return this.constructor.name}set name(r){}get[Symbol.toStringTag](){return this.constructor.name}},abr=Symbol.for("indent"),obr=Symbol.for("newline"),cbr=/^\s*[{\[]((?:\r?\n)+)([\s\t]*)/,lbr=/^(?:\{\}|\[\])((?:\r?\n)+)?$/,efe=(a,r,n)=>{let o=gIt(a);n=n||20;try{let[,l=`
4
4
  `,f=" "]=o.match(lbr)||o.match(cbr)||[,"",""],h=JSON.parse(o,r);return h&&typeof h=="object"&&(h[obr]=l,h[abr]=f),h}catch(l){if(typeof a!="string"&&!Buffer.isBuffer(a)){let f=Array.isArray(a)&&a.length===0;throw Object.assign(new TypeError(`Cannot parse ${f?"an empty array":String(a)}`),{code:"EJSONPARSE",systemError:l})}throw new Kpe(l,o,n,efe)}},gIt=a=>String(a).replace(/^\uFEFF/,"");IIt.exports=efe;efe.JSONParseError=Kpe;efe.noExceptions=(a,r)=>{try{return JSON.parse(gIt(a),r)}catch{}}});var xIt=ft(Tz=>{"use strict";Tz.__esModule=!0;Tz.LinesAndColumns=void 0;var tfe=`
@@ -2854,7 +2854,7 @@ ${r}`),o.push({role:"user",content:v}),o}estimateTaskTokens(r,n,o){let l=Lp(r);f
2854
2854
  `)}CS();var gUe=[{name:"Sessions",description:"Commands for managing your conversation session",commands:[{name:"/clear",description:"Clear conversation history",usage:"/clear"},{name:"/compact",description:"Summarize conversation to reduce token usage",usage:"/compact"},{name:"/export",description:"Export conversation to file",usage:"/export [format]",examples:["/export md","/export json","/export html"],hidden:!0},{name:"/reset",description:"Reset session to clean state",usage:"/reset"},{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:"File Operations",description:"Commands for file management and indexing",commands:[{name:"/files",description:"List indexed project files",usage:"/files [pattern]",examples:["/files","/files *.ts","/files src/"]},{name:"/index",description:"Reindex project files",usage:"/index"},{name:"/undo",description:"Undo last file operation",usage:"/undo"}]},{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:"/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"]}]}],Xin=[{name:"Setup & Configuration",description:"Commands for initial setup and configuration",commands:[{name:"setup",description:"Run first-time setup wizard",usage:"compass setup"},{name:"init",description:"Initialize Compass in current project",usage:"compass init"},{name:"config",description:"View or modify configuration",usage:"compass config [key] [value]",examples:["compass config","compass config model sonnet"]}]},{name:"Data Management",description:"Commands for managing stored data",commands:[{name:"tokens",description:"View token usage history",usage:"compass tokens [--export]"},{name:"consent",description:"Manage consent settings",usage:"compass consent [status|review|revoke]"},{name:"data",description:"Manage stored data",usage:"compass data [list|export|delete]"},{name:"cache",description:"Clear cached data",usage:"compass cache clear"},{name:"reset",description:"Reset to factory settings",usage:"compass reset [--force]"}]},{name:"Updates",description:"Commands for checking and installing updates",commands:[{name:"update",description:"Check for and install updates",usage:"compass update [check|install|history]",examples:["compass update","compass update check","compass update install","compass update history"]}]}];function BYt(a){let r=a.commands.filter(o=>!o.hidden);if(r.length===0)return"";let n=["",Mn.bold.cyan(`\u2501\u2501\u2501 ${a.name} \u2501\u2501\u2501`),Mn.gray(a.description),""];for(let o of r){if(n.push(` ${Mn.yellow(o.name)}`),n.push(` ${Mn.white(o.description)}`),o.usage&&n.push(` ${Mn.gray("Usage:")} ${Mn.dim(o.usage)}`),o.aliases&&o.aliases.length>0&&n.push(` ${Mn.gray("Aliases:")} ${Mn.dim(o.aliases.join(", "))}`),o.examples&&o.examples.length>0){n.push(` ${Mn.gray("Examples:")}`);for(let l of o.examples)n.push(` ${Mn.dim(l)}`)}n.push("")}return n.join(`
2855
2855
  `)}function Qin(){try{let{getCustomCommands:a}=(jYt(),syr(UYt)),r=a();return!r||r.length===0?null:{name:"Custom Commands",description:"User-defined commands from .compass/commands/ or ~/.compass/commands/",commands:r.map(o=>{let l=o.namespace?`${o.scope}:${o.namespace}`:o.scope;return{name:`/${o.name}`,description:`${o.description} (${l})`,usage:o.frontmatter["argument-hint"]?`/${o.name} ${o.frontmatter["argument-hint"]}`:`/${o.name}`}})}}catch{return null}}function Uin(){let a=[...gUe],r=Qin();r&&a.push(r);let n=a.map(BYt);return["",Mn.bold.white("Compass CLI - Interactive Commands"),Mn.gray("Use these commands during an interactive session"),...n,Mn.dim("\u2500".repeat(50)),Mn.gray("Tip: Type any natural language request to interact with Compass"),""].join(`
2856
2856
  `)}function jin(a){let r=a.startsWith("/")?a:`/${a}`,o=gUe.flatMap(f=>f.commands).find(f=>f.name===r||f.name===a||f.aliases?.includes(a)||f.aliases?.includes(r));if(!o)return null;let l=["",Mn.bold.cyan(o.name),Mn.white(o.description),""];if(o.usage&&(l.push(Mn.gray("Usage:")),l.push(` ${o.usage}`),l.push("")),o.aliases&&o.aliases.length>0&&(l.push(Mn.gray("Aliases:")),l.push(` ${o.aliases.join(", ")}`),l.push("")),o.examples&&o.examples.length>0){l.push(Mn.gray("Examples:"));for(let f of o.examples)l.push(` ${Mn.dim("$")} ${f}`);l.push("")}return l.join(`
2857
- `)}MD();var FDn="1.0.41",RDn="compass-cli",WDn="AI-powered development assistance using Anthropic's Claude models";export{Az as AGENT_SOURCE_PRIORITY,WDn as APP_DESCRIPTION,Qyr as APP_DISPLAY_NAME,RDn as APP_NAME,Uyr as APP_TAGLINE,Xyr as APP_VERSION,LYt as ASCII_BANNER,oDe as AUTO_COMPACT_TRIGGER,uDe as AUTO_SAVE_INTERVAL_MS,U$ as ActionLogger,SWt as ActionStatus,F2 as ActionType,Zme as AnthropicClient,tme as ApprovalManager,NO as ApprovalMode,eDe as BACKUPS_DIR,cDe as BACKUP_RETENTION_DAYS,zyr as BINARY_EXTENSIONS,nme as BackupManager,kyr as CACHE_DIR,mw as CLAUDE_MODELS,Xin as CLI_COMMANDS,Pin as COMPASS_ICON,RO as CONFIG_FILE_NAME,lDe as CONSENT_EXPIRY_DAYS,$Pe as CONSENT_FILE_NAME,jyr as CONSENT_VERSION,Tyr as CONTEXT_DIR,Pyr as CONTEXT_WINDOW_SAFETY_MARGIN,Nyr as CONTEXT_WINDOW_WARNING_PERCENT,Ez as CREDENTIALS_FILE_NAME,sK as ComplexityClassifier,Mfe as ConfigManager,Xfe as ConsentManager,zfe as CredentialStore,nN as DEFAULT_CONFIG,Fyr as DEFAULT_COST_WARNING_THRESHOLD,EW as DEFAULT_MAX_TOKENS,zE as DEFAULT_MODEL,wyr as DEFAULT_RATING_CONFIG,ZO as DEFAULT_TEMPERATURE,Iyr as DEFAULT_UPDATE_CONFIG,Nv as ENV_VARS,nK as EnhancedContextGatherer,Jfe as EventEmitter,xz as ExecutionMode,S5t as ExecutionStrategy,Sz as GLOBAL_COMPASS_DIR,l$ as GitService,L0t as HOOK_EVENTS,Upe as HOOK_SOURCE_PRIORITY,Hve as HistoryManager,tDe as INDEX_DIR,gee as InteractiveClarifier,w5t as IssueCategory,x5t as IssueSeverity,Byr as LANGUAGE_EXTENSIONS,KPe as LOGS_DIR,fK as LogInterpreter,Myr as MAX_CACHE_SIZE_BYTES,Cz as MAX_COMMAND_OUTPUT_TOKENS,Wyr as MAX_FILES_PER_OPERATION,dDe as MAX_FILE_READ_TOKENS,Zyr as MAX_FILE_SIZE_BYTES,qpe as MAX_HISTORY_LENGTH,Dyr as MAX_INDEXED_FILES,Oyr as MAX_RETRY_ATTEMPTS,Vyr as MAX_SEARCH_RESULT_TOKENS,kz as MODEL_ALIASES,Gz as PROJECT_COMPASS_DIR,CW as PROVIDERS,fDe as PROVIDER_ENV_VARS,Iee as PlanGenerator,Hyr as RETRY_BASE_DELAY_MS,Lyr as RETRY_JITTER_FACTOR,Jyr as RETRY_MAX_DELAY_MS,WO as SAVED_SESSIONS_DIR,Ryr as SESSION_EXPIRY_DAYS,Bpe as SESSION_FILE_NAME,zpe as SHELL_COMMAND_TIMEOUT_MS,gUe as SLASH_COMMANDS,qfe as SessionManager,lge as ShellExecutor,vWt as StepStatus,Q$ as StepTracker,xWt as StepType,aDe as TOKEN_WARNING_THRESHOLD,_De as TOOL_READ_BLOCKLIST_DIRS,mDe as TOOL_READ_BLOCKLIST_PATTERNS,BPe as TaskExecutionStatus,wWt as TaskStatus,eme as TokenTracker,q$ as ToolRegistry,FDn as VERSION,yee as Verifier,F8e as WORKFLOW_PROMPTS,mK as WorkflowManager,bee as WorkflowOrchestrator,Hpe as WorkflowPhase,A5t as WorkflowState,Win as applyCompletion,HPr as applyPatch,YPr as areIdentical,x4r as calculateContextUsagePercent,z0t as calculateModelCost,y4r as calculateRemainingTokens,aSr as colorByStatus,PPr as colorizeDiff,H0t as compareAgentPriority,Cyr as compareHookPriority,q0t as compareModels,cN as copy,T4r as createActionLogger,m9r as createComplexityClassifier,Y0t as createDefaultAgentDefinition,_yr as createDefaultConsent,Ayr as createDefaultRatingState,s9r as createEnhancedContextGatherer,hyr as createFullConsent,zNr as createGitService,din as createInteractiveClarifier,h6r as createLogInterpreter,gyr as createMinimalConsent,fin as createPlanGenerator,k4r as createStepTracker,Y4r as createToolRegistry,_in as createVerifier,I6r as createWorkflowManager,gin as createWorkflowOrchestrator,C9e as decrypt,E9e as encrypt,Zl as ensureDir,g4r as estimateConversationTokens,I4r as estimateSystemPromptTokens,Lp as estimateTokens,vin as executeSlashCommand,dUe as extractCodeBlocks,uUe as extractMentions,jin as formatCommandHelp,eSr as formatCost,zAr as formatDate,qAr as formatDuration,KAr as formatFileSize,Uin as formatFullHelp,BYt as formatHelpCategory,sSr as formatList,Z2t as formatPercent,iSr as formatProgressBar,$Ar as formatRelativeTime,mn as formatTimestamp,tSr as formatTokenCount,v4r as formatTokenDisplay,WD as generateDiff,DPr as generateDiffSummary,mSr as generateSecureRandom,MPr as generateWordDiff,vZ as getActionLogger,Jpe as getAgentSourcePriority,Zv as getAnthropicClient,ih as getApprovalManager,Q0t as getAvailableAliases,X0t as getAvailableModelIds,VO as getAvailableModels,XW as getBackupManager,gxr as getBasename,OPr as getChangedLineCount,K0t as getCheapestModel,E8 as getCodebaseIndexer,Gin as getCompletions,aK as getComplexityClassifier,oq as getConfigManager,w9e as getConsentManager,wZ as getContextBuilder,w4r as getContextUsageColor,C4r as getConversationCompactor,TS as getCredentialStore,j0t as getDefaultModel,B0t as getDefaultModelId,HD as getEnhancedContextGatherer,xa as getEventEmitter,hxr as getExtension,FN as getFileService,El as getGlobalCompassDir,xin as getHistoryManager,zPe as getHookSourcePriority,oUe as getInteractiveClarifier,_Le as getLogInterpreter,ry as getModelConfig,$pe as getModelDescription,tIt as getModelTier,$0t as getModelsByCapability,eIt as getMostCapableModel,Vve as getPlanGenerator,Jp as getProjectCompassDir,mxr as getRelativePath,Rh as getSessionManager,Yv as getShellExecutor,_Ue as getSlashCommandRegistry,bZ as getStepTracker,Vin as getTaskProcessor,LW as getTokenTracker,OS as getToolRegistry,lUe as getVerifier,g6r as getWorkflowManager,hin as getWorkflowOrchestrator,k9e as hash,_Sr as hmac,N2 as interpolateTemplate,aq as isDirectory,Vfe as isFile,KO as isPathWithin,Xpe as isValidAgentFrontmatter,Lpe as isValidAgentPermissionMode,D0t as isValidAgentSource,oyr as isValidAnthropicConfig,M0t as isValidCLIAgentConfig,ayr as isValidCompassConfig,fyr as isValidConfigFile,P0t as isValidConsent,myr as isValidConsentRecord,jpe as isValidHookEvent,Eyr as isValidHookFrontmatter,Gyr as isValidHookSource,U0t as isValidModel,xyr as isValidNotificationStyle,cyr as isValidProjectConfig,Syr as isValidRatingState,lyr as isValidSafetyConfig,dyr as isValidSessionConfig,bin as isValidSlashCommand,uyr as isValidUIConfig,yyr as isValidUpdateCheckResult,byr as isValidUpdateConfig,pyr as isValidUpdateSettingsConfig,vyr as isValidUpdateType,de as logger,zz as matchesPattern,_xr as normalizeSeparators,nSr as padString,DYt as parseArgs,yin as parseInput,OP as parseToolsList,Ta as pathExists,oH as readDir,pLe as registerBuiltInTools,mUe as registerSlashCommand,vb as remove,Min as renderBanner,Yin as renderMiniBanner,Oin as renderWelcome,pxr as resolveGlobalPath,ny as resolveModelId,fxr as resolveProjectPath,Cd as safeReadFile,df as safeReadJson,bb as safeWriteFile,Nh as safeWriteJson,KP as sanitizePath,hSr as secureCompare,O0t as serializeToolsList,Rv as stat,DW as toForwardSlashes,rSr as truncate,b4r as wouldExceedContext};
2857
+ `)}MD();var FDn="1.0.42",RDn="compass-cli",WDn="AI-powered development assistance using Anthropic's Claude models";export{Az as AGENT_SOURCE_PRIORITY,WDn as APP_DESCRIPTION,Qyr as APP_DISPLAY_NAME,RDn as APP_NAME,Uyr as APP_TAGLINE,Xyr as APP_VERSION,LYt as ASCII_BANNER,oDe as AUTO_COMPACT_TRIGGER,uDe as AUTO_SAVE_INTERVAL_MS,U$ as ActionLogger,SWt as ActionStatus,F2 as ActionType,Zme as AnthropicClient,tme as ApprovalManager,NO as ApprovalMode,eDe as BACKUPS_DIR,cDe as BACKUP_RETENTION_DAYS,zyr as BINARY_EXTENSIONS,nme as BackupManager,kyr as CACHE_DIR,mw as CLAUDE_MODELS,Xin as CLI_COMMANDS,Pin as COMPASS_ICON,RO as CONFIG_FILE_NAME,lDe as CONSENT_EXPIRY_DAYS,$Pe as CONSENT_FILE_NAME,jyr as CONSENT_VERSION,Tyr as CONTEXT_DIR,Pyr as CONTEXT_WINDOW_SAFETY_MARGIN,Nyr as CONTEXT_WINDOW_WARNING_PERCENT,Ez as CREDENTIALS_FILE_NAME,sK as ComplexityClassifier,Mfe as ConfigManager,Xfe as ConsentManager,zfe as CredentialStore,nN as DEFAULT_CONFIG,Fyr as DEFAULT_COST_WARNING_THRESHOLD,EW as DEFAULT_MAX_TOKENS,zE as DEFAULT_MODEL,wyr as DEFAULT_RATING_CONFIG,ZO as DEFAULT_TEMPERATURE,Iyr as DEFAULT_UPDATE_CONFIG,Nv as ENV_VARS,nK as EnhancedContextGatherer,Jfe as EventEmitter,xz as ExecutionMode,S5t as ExecutionStrategy,Sz as GLOBAL_COMPASS_DIR,l$ as GitService,L0t as HOOK_EVENTS,Upe as HOOK_SOURCE_PRIORITY,Hve as HistoryManager,tDe as INDEX_DIR,gee as InteractiveClarifier,w5t as IssueCategory,x5t as IssueSeverity,Byr as LANGUAGE_EXTENSIONS,KPe as LOGS_DIR,fK as LogInterpreter,Myr as MAX_CACHE_SIZE_BYTES,Cz as MAX_COMMAND_OUTPUT_TOKENS,Wyr as MAX_FILES_PER_OPERATION,dDe as MAX_FILE_READ_TOKENS,Zyr as MAX_FILE_SIZE_BYTES,qpe as MAX_HISTORY_LENGTH,Dyr as MAX_INDEXED_FILES,Oyr as MAX_RETRY_ATTEMPTS,Vyr as MAX_SEARCH_RESULT_TOKENS,kz as MODEL_ALIASES,Gz as PROJECT_COMPASS_DIR,CW as PROVIDERS,fDe as PROVIDER_ENV_VARS,Iee as PlanGenerator,Hyr as RETRY_BASE_DELAY_MS,Lyr as RETRY_JITTER_FACTOR,Jyr as RETRY_MAX_DELAY_MS,WO as SAVED_SESSIONS_DIR,Ryr as SESSION_EXPIRY_DAYS,Bpe as SESSION_FILE_NAME,zpe as SHELL_COMMAND_TIMEOUT_MS,gUe as SLASH_COMMANDS,qfe as SessionManager,lge as ShellExecutor,vWt as StepStatus,Q$ as StepTracker,xWt as StepType,aDe as TOKEN_WARNING_THRESHOLD,_De as TOOL_READ_BLOCKLIST_DIRS,mDe as TOOL_READ_BLOCKLIST_PATTERNS,BPe as TaskExecutionStatus,wWt as TaskStatus,eme as TokenTracker,q$ as ToolRegistry,FDn as VERSION,yee as Verifier,F8e as WORKFLOW_PROMPTS,mK as WorkflowManager,bee as WorkflowOrchestrator,Hpe as WorkflowPhase,A5t as WorkflowState,Win as applyCompletion,HPr as applyPatch,YPr as areIdentical,x4r as calculateContextUsagePercent,z0t as calculateModelCost,y4r as calculateRemainingTokens,aSr as colorByStatus,PPr as colorizeDiff,H0t as compareAgentPriority,Cyr as compareHookPriority,q0t as compareModels,cN as copy,T4r as createActionLogger,m9r as createComplexityClassifier,Y0t as createDefaultAgentDefinition,_yr as createDefaultConsent,Ayr as createDefaultRatingState,s9r as createEnhancedContextGatherer,hyr as createFullConsent,zNr as createGitService,din as createInteractiveClarifier,h6r as createLogInterpreter,gyr as createMinimalConsent,fin as createPlanGenerator,k4r as createStepTracker,Y4r as createToolRegistry,_in as createVerifier,I6r as createWorkflowManager,gin as createWorkflowOrchestrator,C9e as decrypt,E9e as encrypt,Zl as ensureDir,g4r as estimateConversationTokens,I4r as estimateSystemPromptTokens,Lp as estimateTokens,vin as executeSlashCommand,dUe as extractCodeBlocks,uUe as extractMentions,jin as formatCommandHelp,eSr as formatCost,zAr as formatDate,qAr as formatDuration,KAr as formatFileSize,Uin as formatFullHelp,BYt as formatHelpCategory,sSr as formatList,Z2t as formatPercent,iSr as formatProgressBar,$Ar as formatRelativeTime,mn as formatTimestamp,tSr as formatTokenCount,v4r as formatTokenDisplay,WD as generateDiff,DPr as generateDiffSummary,mSr as generateSecureRandom,MPr as generateWordDiff,vZ as getActionLogger,Jpe as getAgentSourcePriority,Zv as getAnthropicClient,ih as getApprovalManager,Q0t as getAvailableAliases,X0t as getAvailableModelIds,VO as getAvailableModels,XW as getBackupManager,gxr as getBasename,OPr as getChangedLineCount,K0t as getCheapestModel,E8 as getCodebaseIndexer,Gin as getCompletions,aK as getComplexityClassifier,oq as getConfigManager,w9e as getConsentManager,wZ as getContextBuilder,w4r as getContextUsageColor,C4r as getConversationCompactor,TS as getCredentialStore,j0t as getDefaultModel,B0t as getDefaultModelId,HD as getEnhancedContextGatherer,xa as getEventEmitter,hxr as getExtension,FN as getFileService,El as getGlobalCompassDir,xin as getHistoryManager,zPe as getHookSourcePriority,oUe as getInteractiveClarifier,_Le as getLogInterpreter,ry as getModelConfig,$pe as getModelDescription,tIt as getModelTier,$0t as getModelsByCapability,eIt as getMostCapableModel,Vve as getPlanGenerator,Jp as getProjectCompassDir,mxr as getRelativePath,Rh as getSessionManager,Yv as getShellExecutor,_Ue as getSlashCommandRegistry,bZ as getStepTracker,Vin as getTaskProcessor,LW as getTokenTracker,OS as getToolRegistry,lUe as getVerifier,g6r as getWorkflowManager,hin as getWorkflowOrchestrator,k9e as hash,_Sr as hmac,N2 as interpolateTemplate,aq as isDirectory,Vfe as isFile,KO as isPathWithin,Xpe as isValidAgentFrontmatter,Lpe as isValidAgentPermissionMode,D0t as isValidAgentSource,oyr as isValidAnthropicConfig,M0t as isValidCLIAgentConfig,ayr as isValidCompassConfig,fyr as isValidConfigFile,P0t as isValidConsent,myr as isValidConsentRecord,jpe as isValidHookEvent,Eyr as isValidHookFrontmatter,Gyr as isValidHookSource,U0t as isValidModel,xyr as isValidNotificationStyle,cyr as isValidProjectConfig,Syr as isValidRatingState,lyr as isValidSafetyConfig,dyr as isValidSessionConfig,bin as isValidSlashCommand,uyr as isValidUIConfig,yyr as isValidUpdateCheckResult,byr as isValidUpdateConfig,pyr as isValidUpdateSettingsConfig,vyr as isValidUpdateType,de as logger,zz as matchesPattern,_xr as normalizeSeparators,nSr as padString,DYt as parseArgs,yin as parseInput,OP as parseToolsList,Ta as pathExists,oH as readDir,pLe as registerBuiltInTools,mUe as registerSlashCommand,vb as remove,Min as renderBanner,Yin as renderMiniBanner,Oin as renderWelcome,pxr as resolveGlobalPath,ny as resolveModelId,fxr as resolveProjectPath,Cd as safeReadFile,df as safeReadJson,bb as safeWriteFile,Nh as safeWriteJson,KP as sanitizePath,hSr as secureCompare,O0t as serializeToolsList,Rv as stat,DW as toForwardSlashes,rSr as truncate,b4r as wouldExceedContext};
2858
2858
  /*! Bundled license information:
2859
2859
 
2860
2860
  typescript/lib/typescript.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compass-ai/nova",
3
- "version": "1.0.41",
3
+ "version": "1.0.42",
4
4
  "description": "AI-powered development assistant that brings advanced language models directly to your terminal",
5
5
  "bin": {
6
6
  "nova": "dist/cli.js",