claude-mem 12.7.0 → 12.7.2

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.
@@ -1,119 +1,119 @@
1
1
  #!/usr/bin/env node
2
- var Oa=Object.create;var _r=Object.defineProperty;var Pa=Object.getOwnPropertyDescriptor;var Aa=Object.getOwnPropertyNames;var Na=Object.getPrototypeOf,Da=Object.prototype.hasOwnProperty;var w=(e,t)=>()=>(e&&(t=e(e=0)),t);var Io=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ee=(e,t)=>{for(var r in t)_r(e,r,{get:t[r],enumerable:!0})},Ua=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Aa(t))!Da.call(e,o)&&o!==r&&_r(e,o,{get:()=>t[o],enumerable:!(n=Pa(t,o))||n.enumerable});return e};var qe=(e,t,r)=>(r=e!=null?Oa(Na(e)):{},Ua(t||!e||!e.__esModule?_r(r,"default",{value:e,enumerable:!0}):r,e));var vt=Io((Np,$r)=>{var cr=process||{},Ro=cr.argv||[],ar=cr.env||{},La=!(ar.NO_COLOR||Ro.includes("--no-color"))&&(!!ar.FORCE_COLOR||Ro.includes("--color")||cr.platform==="win32"||(cr.stdout||{}).isTTY&&ar.TERM!=="dumb"||!!ar.CI),Wa=(e,t,r=e)=>n=>{let o=""+n,s=o.indexOf(t,e.length);return~s?e+ja(o,t,r,s)+t:e+o+t},ja=(e,t,r,n)=>{let o="",s=0;do o+=e.substring(s,n)+r,s=n+t.length,n=e.indexOf(t,s);while(~n);return o+e.substring(s)},Oo=(e=La)=>{let t=e?Wa:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};$r.exports=Oo();$r.exports.createColors=Oo});import{existsSync as Fa,readFileSync as Ga}from"fs";function pe(e,t){if(!Fa(e))return t;try{return JSON.parse(Ga(e,"utf-8"))}catch(r){throw new Error(`Corrupt JSON file, refusing to overwrite: ${e}: ${r instanceof Error?r.message:String(r)}`)}}var kt=w(()=>{"use strict"});import{existsSync as bt,mkdirSync as Ha,readFileSync as Po,writeFileSync as Ja}from"fs";import{homedir as Ka}from"os";import{dirname as Ao,join as oe}from"path";import{fileURLToPath as Ba}from"url";function en(){return process.env.CLAUDE_CONFIG_DIR||oe(Ka(),".claude")}function q(){return oe(en(),"plugins","marketplaces","thedotmack")}function Je(){return oe(en(),"plugins")}function Xe(){return oe(Je(),"known_marketplaces.json")}function Qe(){return oe(Je(),"installed_plugins.json")}function _e(){return oe(en(),"settings.json")}function $e(e){return oe(Je(),"cache","thedotmack","claude-mem",e)}function lr(){let e=Ba(import.meta.url),t=oe(Ao(e),"..","..");if(!bt(oe(t,"package.json")))throw new Error(`npmPackageRootDirectory: expected package.json at ${t}. Bundle structure may have changed \u2014 update the path walk.`);return t}function tn(){return oe(lr(),"plugin")}function et(){let e=oe(tn(),".claude-plugin","plugin.json");if(bt(e))try{let r=JSON.parse(Po(e,"utf-8"));if(r.version)return r.version}catch{}let t=oe(lr(),"package.json");if(bt(t))try{let r=JSON.parse(Po(t,"utf-8"));if(r.version)return r.version}catch{}return"0.0.0"}function ur(){let e=q();return bt(oe(e,"plugin",".claude-plugin","plugin.json"))}function Mt(e){bt(e)||Ha(e,{recursive:!0})}function Pe(e,t){Mt(Ao(e)),Ja(e,JSON.stringify(t,null,2)+`
3
- `,"utf-8")}var me,Ke=w(()=>{"use strict";kt();me=process.platform==="win32"});var No,Do,Uo,Lo=w(()=>{No=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let r=0;for(e.lastIndex=0;e.test(t);)r+=1;return t.length-r}})(),Do=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,Uo=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141});var Ya,Va,Wo,za,jo,Za,qa,Xa,Fo,Go,Ho=w(()=>{Lo();Ya=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,Va=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Wo=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,za=/\t{1,1000}/y,jo=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),Za=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,qa=new RegExp("\\p{M}+","gu"),Xa={limit:1/0,ellipsis:""},Fo=(e,t={},r={})=>{let n=t.limit??1/0,o=t.ellipsis??"",s=t?.ellipsisWidth??(o?Fo(o,Xa,r).width:0),i=0,a=r.controlWidth??0,c=r.tabWidth??8,l=r.emojiWidth??2,p=2,f=r.regularWidth??1,h=r.wideWidth??p,k=[[Za,f],[Ya,i],[Va,a],[za,c],[jo,l],[Wo,h]],g=0,E=0,b=e.length,O=0,U=!1,L=b,W=Math.max(0,n-s),T=0,C=0,S=0,y=0;e:for(;;){if(C>T||E>=b&&E>g){let A=e.slice(T,C)||e.slice(g,E);O=0;for(let J of A.replaceAll(qa,"")){let Z=J.codePointAt(0)||0;if(Do(Z)?y=p:Uo(Z)?y=h:y=f,S+y>W&&(L=Math.min(L,Math.max(T,g)+O)),S+y>n){U=!0;break e}O+=J.length,S+=y}T=C=0}if(E>=b)break e;for(let A=0,J=k.length;A<J;A++){let[Z,sr]=k[A];if(Z.lastIndex=E,Z.test(e)){if(O=Z===Wo?No(e.slice(E,Z.lastIndex)):Z===jo?1:Z.lastIndex-E,y=O*sr,S+y>W&&(L=Math.min(L,E+Math.floor((W-S)/sr))),S+y>n){U=!0;break e}S+=y,T=g,C=E,E=g=Z.lastIndex;continue e}}E+=1}return{width:U?W:S,index:U?L:b,truncated:U,ellipsed:U&&n>=s}},Go=Fo});var Qa,_a,_,rn=w(()=>{Ho();Qa={limit:1/0,ellipsis:"",ellipsisWidth:0},_a=(e,t={})=>Go(e,Qa,t).width,_=_a});function Se(e,t,r){return String(e).normalize().split(nc).map(n=>rc(n,t,r)).join(`
4
- `)}var dr,Vo,$a,on,zo,ec,Zo,sn,Jo,Ko,Bo,Yo,nn,tc,rc,nc,an=w(()=>{rn();dr="\x1B",Vo="\x9B",$a=39,on="\x07",zo="[",ec="]",Zo="m",sn=`${ec}8;;`,Jo=new RegExp(`(?:\\${zo}(?<code>\\d+)m|\\${sn}(?<uri>.*)${on})`,"y"),Ko=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},Bo=e=>`${dr}${zo}${e}${Zo}`,Yo=e=>`${dr}${sn}${e}${on}`,nn=(e,t,r)=>{let n=t[Symbol.iterator](),o=!1,s=!1,i=e.at(-1),a=i===void 0?0:_(i),c=n.next(),l=n.next(),p=0;for(;!c.done;){let f=c.value,h=_(f);a+h<=r?e[e.length-1]+=f:(e.push(f),a=0),(f===dr||f===Vo)&&(o=!0,s=t.startsWith(sn,p+1)),o?s?f===on&&(o=!1,s=!1):f===Zo&&(o=!1):(a+=h,a===r&&!l.done&&(e.push(""),a=0)),c=l,l=n.next(),p+=f.length}i=e.at(-1),!a&&i!==void 0&&i.length&&e.length>1&&(e[e.length-2]+=e.pop())},tc=e=>{let t=e.split(" "),r=t.length;for(;r&&!_(t[r-1]);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},rc=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",o,s,i=e.split(" "),a=[""],c=0;for(let f=0;f<i.length;f++){let h=i[f];if(r.trim!==!1){let g=a.at(-1)??"",E=g.trimStart();g.length!==E.length&&(a[a.length-1]=E,c=_(E))}f!==0&&(c>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),c=0),(c||r.trim===!1)&&(a[a.length-1]+=" ",c++));let k=_(h);if(r.hard&&k>t){let g=t-c,E=1+Math.floor((k-g-1)/t);Math.floor((k-1)/t)<E&&a.push(""),nn(a,h,t),c=_(a.at(-1)??"");continue}if(c+k>t&&c&&k){if(r.wordWrap===!1&&c<t){nn(a,h,t),c=_(a.at(-1)??"");continue}a.push(""),c=0}if(c+k>t&&r.wordWrap===!1){nn(a,h,t),c=_(a.at(-1)??"");continue}a[a.length-1]+=h,c+=k}r.trim!==!1&&(a=a.map(f=>tc(f)));let l=a.join(`
5
- `),p=!1;for(let f=0;f<l.length;f++){let h=l[f];if(n+=h,p)p=!1;else if(p=h>="\uD800"&&h<="\uDBFF",p)continue;if(h===dr||h===Vo){Jo.lastIndex=f+1;let g=Jo.exec(l)?.groups;if(g?.code!==void 0){let E=Number.parseFloat(g.code);o=E===$a?void 0:E}else g?.uri!==void 0&&(s=g.uri.length===0?void 0:g.uri)}if(l[f+1]===`
6
- `){s&&(n+=Yo(""));let k=o?Ko(o):void 0;o&&k&&(n+=Bo(k))}else h===`
7
- `&&(o&&Ko(o)&&(n+=Bo(o)),s&&(n+=Yo(s)))}return n},nc=/\r?\n/});var ln=Io((qp,qo)=>{"use strict";var cn={to(e,t){return t?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`},move(e,t){let r="";return e<0?r+=`\x1B[${-e}D`:e>0&&(r+=`\x1B[${e}C`),t<0?r+=`\x1B[${-t}A`:t>0&&(r+=`\x1B[${t}B`),r},up:(e=1)=>`\x1B[${e}A`,down:(e=1)=>`\x1B[${e}B`,forward:(e=1)=>`\x1B[${e}C`,backward:(e=1)=>`\x1B[${e}D`,nextLine:(e=1)=>"\x1B[E".repeat(e),prevLine:(e=1)=>"\x1B[F".repeat(e),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},oc={up:(e=1)=>"\x1B[S".repeat(e),down:(e=1)=>"\x1B[T".repeat(e)},sc={screen:"\x1B[2J",up:(e=1)=>"\x1B[1J".repeat(e),down:(e=1)=>"\x1B[J".repeat(e),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(e){let t="";for(let r=0;r<e;r++)t+=this.line+(r<e-1?cn.up():"");return e&&(t+=cn.left),t}};qo.exports={cursor:cn,scroll:oc,erase:sc,beep:"\x07"}});import{styleText as un}from"node:util";import{stdout as pn,stdin as Qo}from"node:process";import*as Ae from"node:readline";import ic from"node:readline";import{ReadStream as Xo}from"node:tty";function Be(e,t,r){if(!r.some(i=>!i.disabled))return e;let n=e+t,o=Math.max(r.length-1,0),s=n<0?o:n>o?0:n;return r[s].disabled?Be(s,t<0?-1:1,r):s}function mn(e,t){if(typeof e=="string")return j.aliases.get(e)===t;for(let r of e)if(r!==void 0&&mn(r,t))return!0;return!1}function lc(e,t){if(e===t)return;let r=e.split(`
8
- `),n=t.split(`
9
- `),o=Math.max(r.length,n.length),s=[];for(let i=0;i<o;i++)r[i]!==n[i]&&s.push(i);return{lines:s,numLinesBefore:r.length,numLinesAfter:n.length,numLines:o}}function F(e){return e===dn}function pr(e,t){let r=e;r.isTTY&&r.setRawMode(t)}function _o({input:e=Qo,output:t=pn,overwrite:r=!0,hideCursor:n=!0}={}){let o=Ae.createInterface({input:e,output:t,prompt:"",tabSize:1});Ae.emitKeypressEvents(e,o),e instanceof Xo&&e.isTTY&&e.setRawMode(!0);let s=(i,{name:a,sequence:c})=>{let l=String(i);if(mn([l,a,c],"cancel")){n&&t.write(X.cursor.show),process.exit(0);return}if(!r)return;Ae.moveCursor(t,a==="return"?0:-1,a==="return"?-1:0,()=>{Ae.clearLine(t,1,()=>{e.once("keypress",s)})})};return n&&t.write(X.cursor.hide),e.once("keypress",s),()=>{e.off("keypress",s),n&&t.write(X.cursor.show),e instanceof Xo&&e.isTTY&&!uc&&e.setRawMode(!1),o.terminal=!1,o.close()}}function Ne(e,t,r,n=r,o){let s=Tt(e??pn);return Se(t,s-r.length,{hard:!0,trim:!1}).split(`
10
- `).map((i,a)=>{let c=o?o(i,a):i;return`${a===0?n:r}${c}`}).join(`
11
- `)}var X,ac,cc,j,uc,dn,Tt,fn,xt,mr,$o,fr,gr,hr,gn=w(()=>{an();X=qe(ln(),1);ac=["up","down","left","right","space","enter","cancel"],cc=["January","February","March","April","May","June","July","August","September","October","November","December"],j={actions:new Set(ac),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0,date:{monthNames:[...cc],messages:{required:"Please enter a valid date",invalidMonth:"There are only 12 months in a year",invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};uc=globalThis.process.platform.startsWith("win"),dn=Symbol("clack:cancel");Tt=e=>"columns"in e&&typeof e.columns=="number"?e.columns:80,fn=e=>"rows"in e&&typeof e.rows=="number"?e.rows:20;xt=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(e,t=!0){let{input:r=Qo,output:n=pn,render:o,signal:s,...i}=e;this.opts=i,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=o.bind(this),this._track=t,this._abortSignal=s,this.input=r,this.output=n}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let r=this._subscribers.get(e)??[];r.push(t),this._subscribers.set(e,r)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let r=this._subscribers.get(e)??[],n=[];for(let o of r)o.cb(...t),o.once&&n.push(()=>r.splice(r.indexOf(o),1));for(let o of n)o()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(dn);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=ic.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),pr(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(X.cursor.show),this.output.off("resize",this.render),pr(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(X.cursor.show),this.output.off("resize",this.render),pr(this.input,!1),e(dn)})})}_isActionKey(e,t){return e===" "}_shouldSubmit(e,t){return!0}_setValue(e){this.value=e,this.emit("value",this.value)}_setUserInput(e,t){this.userInput=e??"",this.emit("userInput",this.userInput),t&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(e,t){if(this._track&&t.name!=="return"&&(t.name&&this._isActionKey(e,t)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),t?.name&&(!this._track&&j.aliases.has(t.name)&&this.emit("cursor",j.aliases.get(t.name)),j.actions.has(t.name)&&this.emit("cursor",t.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),this.emit("key",e?.toLowerCase(),t),t?.name==="return"&&this._shouldSubmit(e,t)){if(this.opts.validate){let r=this.opts.validate(this.value);r&&(this.error=r instanceof Error?r.message:r,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}mn([e,t?.name,t?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
12
- `),pr(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=Se(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
13
- `).length-1;this.output.write(X.cursor.move(-999,e*-1))}render(){let e=Se(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(X.cursor.hide);else{let t=lc(this._prevFrame,e),r=fn(this.output);if(this.restoreCursor(),t){let n=Math.max(0,t.numLinesAfter-r),o=Math.max(0,t.numLinesBefore-r),s=t.lines.find(i=>i>=n);if(s===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(X.cursor.move(0,s-o)),this.output.write(X.erase.lines(1));let i=e.split(`
14
- `);this.output.write(i[s]),this._prevFrame=e,this.output.write(X.cursor.move(0,i.length-s-1));return}else if(t.lines.length>1){if(n<o)s=n;else{let a=s-o;a>0&&this.output.write(X.cursor.move(0,a))}this.output.write(X.erase.down());let i=e.split(`
2
+ var Da=Object.create;var er=Object.defineProperty;var Ua=Object.getOwnPropertyDescriptor;var La=Object.getOwnPropertyNames;var Wa=Object.getPrototypeOf,ja=Object.prototype.hasOwnProperty;var C=(e,t)=>()=>(e&&(t=e(e=0)),t);var Po=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ee=(e,t)=>{for(var n in t)er(e,n,{get:t[n],enumerable:!0})},Fa=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of La(t))!ja.call(e,o)&&o!==n&&er(e,o,{get:()=>t[o],enumerable:!(r=Ua(t,o))||r.enumerable});return e};var Qe=(e,t,n)=>(n=e!=null?Da(Wa(e)):{},Fa(t||!e||!e.__esModule?er(n,"default",{value:e,enumerable:!0}):n,e));var kt=Po((Vp,tr)=>{var ln=process||{},Ao=ln.argv||[],cn=ln.env||{},Ga=!(cn.NO_COLOR||Ao.includes("--no-color"))&&(!!cn.FORCE_COLOR||Ao.includes("--color")||ln.platform==="win32"||(ln.stdout||{}).isTTY&&cn.TERM!=="dumb"||!!cn.CI),Ha=(e,t,n=e)=>r=>{let o=""+r,s=o.indexOf(t,e.length);return~s?e+Ja(o,t,n,s)+t:e+o+t},Ja=(e,t,n,r)=>{let o="",s=0;do o+=e.substring(s,r)+n,s=r+t.length,r=e.indexOf(t,s);while(~r);return o+e.substring(s)},No=(e=Ga)=>{let t=e?Ha:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};tr.exports=No();tr.exports.createColors=No});import{existsSync as Ka,readFileSync as Ba}from"fs";function ie(e,t){if(!Ka(e))return t;try{return JSON.parse(Ba(e,"utf-8"))}catch(n){throw new Error(`Corrupt JSON file, refusing to overwrite: ${e}: ${n instanceof Error?n.message:String(n)}`)}}var bt=C(()=>{"use strict"});import{closeSync as nr,existsSync as Mt,fsyncSync as Do,lstatSync as Ya,mkdirSync as Va,openSync as rr,readFileSync as Uo,readlinkSync as za,realpathSync as Za,renameSync as qa,statSync as Xa,unlinkSync as Qa,writeSync as _a}from"fs";import{homedir as $a}from"os";import{basename as ec,dirname as un,join as ne,resolve as tc}from"path";import{fileURLToPath as nc}from"url";import{randomBytes as rc}from"crypto";function or(){return process.env.CLAUDE_CONFIG_DIR||ne($a(),".claude")}function q(){return ne(or(),"plugins","marketplaces","thedotmack")}function Ke(){return ne(or(),"plugins")}function _e(){return ne(Ke(),"known_marketplaces.json")}function $e(){return ne(Ke(),"installed_plugins.json")}function Ae(){return ne(or(),"settings.json")}function et(e){return ne(Ke(),"cache","thedotmack","claude-mem",e)}function dn(){let e=nc(import.meta.url),t=ne(un(e),"..","..");if(!Mt(ne(t,"package.json")))throw new Error(`npmPackageRootDirectory: expected package.json at ${t}. Bundle structure may have changed \u2014 update the path walk.`);return t}function sr(){return ne(dn(),"plugin")}function tt(){let e=ne(sr(),".claude-plugin","plugin.json");if(Mt(e))try{let n=JSON.parse(Uo(e,"utf-8"));if(n.version)return n.version}catch{}let t=ne(dn(),"package.json");if(Mt(t))try{let n=JSON.parse(Uo(t,"utf-8"));if(n.version)return n.version}catch{}return"0.0.0"}function pn(){let e=q();return Mt(ne(e,"plugin",".claude-plugin","plugin.json"))}function Tt(e){Mt(e)||Va(e,{recursive:!0})}function Re(e,t){let n=e;try{if(Ya(e).isSymbolicLink())try{n=Za(e)}catch{let l=za(e);n=tc(un(e),l)}}catch(l){let p=l.code;if(p!=="ENOENT"&&p!=="ENOTDIR")throw l}Tt(un(n));let r=un(n),o=ec(n),s=ne(r,`.${o}.${process.pid}.${rc(6).toString("hex")}.tmp`),i=Buffer.from(JSON.stringify(t,null,2)+`
3
+ `,"utf-8"),a;try{a=Xa(n).mode&511}catch{}let c;try{c=a!==void 0?rr(s,"w",a):rr(s,"w");let l=0;for(;l<i.length;){let p=_a(c,i,l,i.length-l);if(p===0)throw new Error(`writeSync stalled at ${l}/${i.length} bytes`);l+=p}if(Do(c),nr(c),c=void 0,qa(s,n),!ae){let p;try{p=rr(r,"r"),Do(p)}catch{}finally{if(p!==void 0)try{nr(p)}catch{}}}}catch(l){if(c!==void 0)try{nr(c)}catch{}try{Qa(s)}catch{}throw l}}var ae,Be=C(()=>{"use strict";bt();ae=process.platform==="win32"});var Lo,Wo,jo,Fo=C(()=>{Lo=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),Wo=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,jo=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141});var oc,sc,Go,ic,Ho,ac,cc,lc,Jo,Ko,Bo=C(()=>{Fo();oc=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,sc=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Go=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,ic=/\t{1,1000}/y,Ho=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),ac=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,cc=new RegExp("\\p{M}+","gu"),lc={limit:1/0,ellipsis:""},Jo=(e,t={},n={})=>{let r=t.limit??1/0,o=t.ellipsis??"",s=t?.ellipsisWidth??(o?Jo(o,lc,n).width:0),i=0,a=n.controlWidth??0,c=n.tabWidth??8,l=n.emojiWidth??2,p=2,f=n.regularWidth??1,h=n.wideWidth??p,k=[[ac,f],[oc,i],[sc,a],[ic,c],[Ho,l],[Go,h]],g=0,S=0,y=e.length,O=0,D=!1,W=y,K=Math.max(0,r-s),T=0,j=0,E=0,w=0;e:for(;;){if(j>T||S>=y&&S>g){let M=e.slice(T,j)||e.slice(g,S);O=0;for(let L of M.replaceAll(cc,"")){let N=L.codePointAt(0)||0;if(Wo(N)?w=p:jo(N)?w=h:w=f,E+w>K&&(W=Math.min(W,Math.max(T,g)+O)),E+w>r){D=!0;break e}O+=L.length,E+=w}T=j=0}if(S>=y)break e;for(let M=0,L=k.length;M<L;M++){let[N,Xe]=k[M];if(N.lastIndex=S,N.test(e)){if(O=N===Go?Lo(e.slice(S,N.lastIndex)):N===Ho?1:N.lastIndex-S,w=O*Xe,E+w>K&&(W=Math.min(W,S+Math.floor((K-E)/Xe))),E+w>r){D=!0;break e}E+=w,T=g,j=S,S=g=N.lastIndex;continue e}}S+=1}return{width:D?K:E,index:D?W:y,truncated:D,ellipsed:D&&r>=s}},Ko=Jo});var uc,dc,_,ir=C(()=>{Bo();uc={limit:1/0,ellipsis:"",ellipsisWidth:0},dc=(e,t={})=>Ko(e,uc,t).width,_=dc});function Se(e,t,n){return String(e).normalize().split(hc).map(r=>gc(r,t,n)).join(`
4
+ `)}var mn,qo,pc,cr,Xo,mc,Qo,lr,Yo,Vo,zo,Zo,ar,fc,gc,hc,ur=C(()=>{ir();mn="\x1B",qo="\x9B",pc=39,cr="\x07",Xo="[",mc="]",Qo="m",lr=`${mc}8;;`,Yo=new RegExp(`(?:\\${Xo}(?<code>\\d+)m|\\${lr}(?<uri>.*)${cr})`,"y"),Vo=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},zo=e=>`${mn}${Xo}${e}${Qo}`,Zo=e=>`${mn}${lr}${e}${cr}`,ar=(e,t,n)=>{let r=t[Symbol.iterator](),o=!1,s=!1,i=e.at(-1),a=i===void 0?0:_(i),c=r.next(),l=r.next(),p=0;for(;!c.done;){let f=c.value,h=_(f);a+h<=n?e[e.length-1]+=f:(e.push(f),a=0),(f===mn||f===qo)&&(o=!0,s=t.startsWith(lr,p+1)),o?s?f===cr&&(o=!1,s=!1):f===Qo&&(o=!1):(a+=h,a===n&&!l.done&&(e.push(""),a=0)),c=l,l=r.next(),p+=f.length}i=e.at(-1),!a&&i!==void 0&&i.length&&e.length>1&&(e[e.length-2]+=e.pop())},fc=e=>{let t=e.split(" "),n=t.length;for(;n&&!_(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},gc=(e,t,n={})=>{if(n.trim!==!1&&e.trim()==="")return"";let r="",o,s,i=e.split(" "),a=[""],c=0;for(let f=0;f<i.length;f++){let h=i[f];if(n.trim!==!1){let g=a.at(-1)??"",S=g.trimStart();g.length!==S.length&&(a[a.length-1]=S,c=_(S))}f!==0&&(c>=t&&(n.wordWrap===!1||n.trim===!1)&&(a.push(""),c=0),(c||n.trim===!1)&&(a[a.length-1]+=" ",c++));let k=_(h);if(n.hard&&k>t){let g=t-c,S=1+Math.floor((k-g-1)/t);Math.floor((k-1)/t)<S&&a.push(""),ar(a,h,t),c=_(a.at(-1)??"");continue}if(c+k>t&&c&&k){if(n.wordWrap===!1&&c<t){ar(a,h,t),c=_(a.at(-1)??"");continue}a.push(""),c=0}if(c+k>t&&n.wordWrap===!1){ar(a,h,t),c=_(a.at(-1)??"");continue}a[a.length-1]+=h,c+=k}n.trim!==!1&&(a=a.map(f=>fc(f)));let l=a.join(`
5
+ `),p=!1;for(let f=0;f<l.length;f++){let h=l[f];if(r+=h,p)p=!1;else if(p=h>="\uD800"&&h<="\uDBFF",p)continue;if(h===mn||h===qo){Yo.lastIndex=f+1;let g=Yo.exec(l)?.groups;if(g?.code!==void 0){let S=Number.parseFloat(g.code);o=S===pc?void 0:S}else g?.uri!==void 0&&(s=g.uri.length===0?void 0:g.uri)}if(l[f+1]===`
6
+ `){s&&(r+=Zo(""));let k=o?Vo(o):void 0;o&&k&&(r+=zo(k))}else h===`
7
+ `&&(o&&Vo(o)&&(r+=zo(o)),s&&(r+=Zo(s)))}return r},hc=/\r?\n/});var pr=Po((lm,_o)=>{"use strict";var dr={to(e,t){return t?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`},move(e,t){let n="";return e<0?n+=`\x1B[${-e}D`:e>0&&(n+=`\x1B[${e}C`),t<0?n+=`\x1B[${-t}A`:t>0&&(n+=`\x1B[${t}B`),n},up:(e=1)=>`\x1B[${e}A`,down:(e=1)=>`\x1B[${e}B`,forward:(e=1)=>`\x1B[${e}C`,backward:(e=1)=>`\x1B[${e}D`,nextLine:(e=1)=>"\x1B[E".repeat(e),prevLine:(e=1)=>"\x1B[F".repeat(e),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},Ec={up:(e=1)=>"\x1B[S".repeat(e),down:(e=1)=>"\x1B[T".repeat(e)},Sc={screen:"\x1B[2J",up:(e=1)=>"\x1B[1J".repeat(e),down:(e=1)=>"\x1B[J".repeat(e),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(e){let t="";for(let n=0;n<e;n++)t+=this.line+(n<e-1?dr.up():"");return e&&(t+=dr.left),t}};_o.exports={cursor:dr,scroll:Ec,erase:Sc,beep:"\x07"}});import{styleText as mr}from"node:util";import{stdout as gr,stdin as es}from"node:process";import*as Ne from"node:readline";import yc from"node:readline";import{ReadStream as $o}from"node:tty";function Ye(e,t,n){if(!n.some(i=>!i.disabled))return e;let r=e+t,o=Math.max(n.length-1,0),s=r<0?o:r>o?0:r;return n[s].disabled?Ye(s,t<0?-1:1,n):s}function hr(e,t){if(typeof e=="string")return F.aliases.get(e)===t;for(let n of e)if(n!==void 0&&hr(n,t))return!0;return!1}function vc(e,t){if(e===t)return;let n=e.split(`
8
+ `),r=t.split(`
9
+ `),o=Math.max(n.length,r.length),s=[];for(let i=0;i<o;i++)n[i]!==r[i]&&s.push(i);return{lines:s,numLinesBefore:n.length,numLinesAfter:r.length,numLines:o}}function G(e){return e===fr}function fn(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function ts({input:e=es,output:t=gr,overwrite:n=!0,hideCursor:r=!0}={}){let o=Ne.createInterface({input:e,output:t,prompt:"",tabSize:1});Ne.emitKeypressEvents(e,o),e instanceof $o&&e.isTTY&&e.setRawMode(!0);let s=(i,{name:a,sequence:c})=>{let l=String(i);if(hr([l,a,c],"cancel")){r&&t.write(X.cursor.show),process.exit(0);return}if(!n)return;Ne.moveCursor(t,a==="return"?0:-1,a==="return"?-1:0,()=>{Ne.clearLine(t,1,()=>{e.once("keypress",s)})})};return r&&t.write(X.cursor.hide),e.once("keypress",s),()=>{e.off("keypress",s),r&&t.write(X.cursor.show),e instanceof $o&&e.isTTY&&!kc&&e.setRawMode(!1),o.terminal=!1,o.close()}}function De(e,t,n,r=n,o){let s=xt(e??gr);return Se(t,s-n.length,{hard:!0,trim:!1}).split(`
10
+ `).map((i,a)=>{let c=o?o(i,a):i;return`${a===0?r:n}${c}`}).join(`
11
+ `)}var X,wc,Cc,F,kc,fr,xt,Er,It,gn,ns,hn,En,Sn,Sr=C(()=>{ur();X=Qe(pr(),1);wc=["up","down","left","right","space","enter","cancel"],Cc=["January","February","March","April","May","June","July","August","September","October","November","December"],F={actions:new Set(wc),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0,date:{monthNames:[...Cc],messages:{required:"Please enter a valid date",invalidMonth:"There are only 12 months in a year",invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};kc=globalThis.process.platform.startsWith("win"),fr=Symbol("clack:cancel");xt=e=>"columns"in e&&typeof e.columns=="number"?e.columns:80,Er=e=>"rows"in e&&typeof e.rows=="number"?e.rows:20;It=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(e,t=!0){let{input:n=es,output:r=gr,render:o,signal:s,...i}=e;this.opts=i,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=o.bind(this),this._track=t,this._abortSignal=s,this.input=n,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let o of n)o.cb(...t),o.once&&r.push(()=>n.splice(n.indexOf(o),1));for(let o of r)o()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(fr);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=yc.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),fn(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(X.cursor.show),this.output.off("resize",this.render),fn(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(X.cursor.show),this.output.off("resize",this.render),fn(this.input,!1),e(fr)})})}_isActionKey(e,t){return e===" "}_shouldSubmit(e,t){return!0}_setValue(e){this.value=e,this.emit("value",this.value)}_setUserInput(e,t){this.userInput=e??"",this.emit("userInput",this.userInput),t&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(e,t){if(this._track&&t.name!=="return"&&(t.name&&this._isActionKey(e,t)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),t?.name&&(!this._track&&F.aliases.has(t.name)&&this.emit("cursor",F.aliases.get(t.name)),F.actions.has(t.name)&&this.emit("cursor",t.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),this.emit("key",e?.toLowerCase(),t),t?.name==="return"&&this._shouldSubmit(e,t)){if(this.opts.validate){let n=this.opts.validate(this.value);n&&(this.error=n instanceof Error?n.message:n,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}hr([e,t?.name,t?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
12
+ `),fn(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=Se(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
13
+ `).length-1;this.output.write(X.cursor.move(-999,e*-1))}render(){let e=Se(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(X.cursor.hide);else{let t=vc(this._prevFrame,e),n=Er(this.output);if(this.restoreCursor(),t){let r=Math.max(0,t.numLinesAfter-n),o=Math.max(0,t.numLinesBefore-n),s=t.lines.find(i=>i>=r);if(s===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(X.cursor.move(0,s-o)),this.output.write(X.erase.lines(1));let i=e.split(`
14
+ `);this.output.write(i[s]),this._prevFrame=e,this.output.write(X.cursor.move(0,i.length-s-1));return}else if(t.lines.length>1){if(r<o)s=r;else{let a=s-o;a>0&&this.output.write(X.cursor.move(0,a))}this.output.write(X.erase.down());let i=e.split(`
15
15
  `).slice(s);this.output.write(i.join(`
16
- `)),this._prevFrame=e;return}}this.output.write(X.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}},mr=class extends xt{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(X.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},$o=class extends xt{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(e=>e.disabled!==!0)}toggleAll(){let e=this._enabledOptions,t=this.value!==void 0&&this.value.length===e.length;this.value=t?[]:e.map(r=>r.value)}toggleInvert(){let e=this.value;if(!e)return;let t=this._enabledOptions.filter(r=>!e.includes(r.value));this.value=t.map(r=>r.value)}toggleValue(){this.value===void 0&&(this.value=[]);let e=this.value.includes(this._value);this.value=e?this.value.filter(t=>t!==this._value):[...this.value,this._value]}constructor(e){super(e,!1),this.options=e.options,this.value=[...e.initialValues??[]];let t=Math.max(this.options.findIndex(({value:r})=>r===e.cursorAt),0);this.cursor=this.options[t].disabled?Be(t,1,this.options):t,this.on("key",r=>{r==="a"&&this.toggleAll(),r==="i"&&this.toggleInvert()}),this.on("cursor",r=>{switch(r){case"left":case"up":this.cursor=Be(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Be(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}},fr=class extends xt{_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t=this.userInput;if(this.cursor>=t.length)return`${this.masked}${un(["inverse","hidden"],"_")}`;let r=this.masked,n=r.slice(0,this.cursor),o=r.slice(this.cursor);return`${n}${un("inverse",o[0])}${o.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t,...r}){super(r),this._mask=t??"\u2022",this.on("userInput",n=>{this._setValue(n)})}},gr=class extends xt{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t){super(t,!1),this.options=t.options;let r=this.options.findIndex(({value:o})=>o===t.initialValue),n=r===-1?0:r;this.cursor=this.options[n].disabled?Be(n,1,this.options):n,this.changeValue(),this.on("cursor",o=>{switch(o){case"left":case"up":this.cursor=Be(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Be(this.cursor,1,this.options);break}this.changeValue()})}},hr=class extends xt{get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t=this.userInput;if(this.cursor>=t.length)return`${this.userInput}\u2588`;let r=t.slice(0,this.cursor),[n,...o]=t.slice(this.cursor);return`${r}${un("inverse",n)}${o.join("")}`}get cursor(){return this._cursor}constructor(t){super({...t,initialUserInput:t.initialUserInput??t.initialValue}),this.on("userInput",r=>{this._setValue(r)}),this.on("finalize",()=>{this.value||(this.value=t.defaultValue),this.value===void 0&&(this.value="")})}}});import{styleText as d,stripVTControlCharacters as pm}from"node:util";import ie from"node:process";function dc(){return ie.platform!=="win32"?ie.env.TERM!=="linux":!!ie.env.CI||!!ie.env.WT_SESSION||!!ie.env.TERMINUS_SUBLIME||ie.env.ConEmuTask==="{cmd::Cmder}"||ie.env.TERM_PROGRAM==="Terminus-Sublime"||ie.env.TERM_PROGRAM==="vscode"||ie.env.TERM==="xterm-256color"||ie.env.TERM==="alacritty"||ie.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Rt,hn,pc,I,mc,ns,os,yr,fc,v,ye,hm,Em,En,Sr,gc,es,ts,hc,rs,Ec,Sc,yc,wc,Sm,Cc,vc,kc,bc,Ot,ss,Mc,Sn,Pt,$,fe,At,De,It,is,Tc,xc,Nt,wr,Ic,Dt,ym,Er,Ye,wm,Cr,yn,wn=w(()=>{gn();gn();an();rn();Rt=qe(ln(),1);hn=dc(),pc=()=>process.env.CI==="true",I=(e,t)=>hn?e:t,mc=I("\u25C6","*"),ns=I("\u25A0","x"),os=I("\u25B2","x"),yr=I("\u25C7","o"),fc=I("\u250C","T"),v=I("\u2502","|"),ye=I("\u2514","\u2014"),hm=I("\u2510","T"),Em=I("\u2518","\u2014"),En=I("\u25CF",">"),Sr=I("\u25CB"," "),gc=I("\u25FB","[\u2022]"),es=I("\u25FC","[+]"),ts=I("\u25FB","[ ]"),hc=I("\u25AA","\u2022"),rs=I("\u2500","-"),Ec=I("\u256E","+"),Sc=I("\u251C","+"),yc=I("\u256F","+"),wc=I("\u2570","+"),Sm=I("\u256D","+"),Cc=I("\u25CF","\u2022"),vc=I("\u25C6","*"),kc=I("\u25B2","!"),bc=I("\u25A0","x"),Ot=e=>{switch(e){case"initial":case"active":return d("cyan",mc);case"cancel":return d("red",ns);case"error":return d("yellow",os);case"submit":return d("green",yr)}},ss=e=>{switch(e){case"initial":case"active":return d("cyan",v);case"cancel":return d("red",v);case"error":return d("yellow",v);case"submit":return d("green",v)}},Mc=(e,t,r,n,o)=>{let s=t,i=0;for(let a=r;a<n;a++){let c=e[a];if(s=s-c.length,i++,s<=o)break}return{lineCount:s,removals:i}},Sn=({cursor:e,options:t,style:r,output:n=process.stdout,maxItems:o=Number.POSITIVE_INFINITY,columnPadding:s=0,rowPadding:i=4})=>{let a=Tt(n)-s,c=fn(n),l=d("dim","..."),p=Math.max(c-i,0),f=Math.max(Math.min(o,p),5),h=0;e>=f-3&&(h=Math.max(Math.min(e-f+3,t.length-f),0));let k=f<t.length&&h>0,g=f<t.length&&h+f<t.length,E=Math.min(h+f,t.length),b=[],O=0;k&&O++,g&&O++;let U=h+(k?1:0),L=E-(g?1:0);for(let T=U;T<L;T++){let C=Se(r(t[T],T===e),a,{hard:!0,trim:!1}).split(`
17
- `);b.push(C),O+=C.length}if(O>p){let T=0,C=0,S=O,y=e-U,A=(J,Z)=>Mc(b,S,J,Z,p);k?({lineCount:S,removals:T}=A(0,y),S>p&&({lineCount:S,removals:C}=A(y+1,b.length))):({lineCount:S,removals:C}=A(y+1,b.length),S>p&&({lineCount:S,removals:T}=A(0,y))),T>0&&(k=!0,b.splice(0,T)),C>0&&(g=!0,b.splice(b.length-C,C))}let W=[];k&&W.push(l);for(let T of b)for(let C of T)W.push(C);return g&&W.push(l),W},Pt=e=>{let t=e.active??"Yes",r=e.inactive??"No";return new mr({active:t,inactive:r,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let n=e.withGuide??j.withGuide,o=`${Ot(this.state)} `,s=n?`${d("gray",v)} `:"",i=Ne(e.output,e.message,s,o),a=`${n?`${d("gray",v)}
16
+ `)),this._prevFrame=e;return}}this.output.write(X.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}},gn=class extends It{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",n=>{this.output.write(X.cursor.move(0,-1)),this.value=n,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},ns=class extends It{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter(e=>e.disabled!==!0)}toggleAll(){let e=this._enabledOptions,t=this.value!==void 0&&this.value.length===e.length;this.value=t?[]:e.map(n=>n.value)}toggleInvert(){let e=this.value;if(!e)return;let t=this._enabledOptions.filter(n=>!e.includes(n.value));this.value=t.map(n=>n.value)}toggleValue(){this.value===void 0&&(this.value=[]);let e=this.value.includes(this._value);this.value=e?this.value.filter(t=>t!==this._value):[...this.value,this._value]}constructor(e){super(e,!1),this.options=e.options,this.value=[...e.initialValues??[]];let t=Math.max(this.options.findIndex(({value:n})=>n===e.cursorAt),0);this.cursor=this.options[t].disabled?Ye(t,1,this.options):t,this.on("key",n=>{n==="a"&&this.toggleAll(),n==="i"&&this.toggleInvert()}),this.on("cursor",n=>{switch(n){case"left":case"up":this.cursor=Ye(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Ye(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}},hn=class extends It{_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t=this.userInput;if(this.cursor>=t.length)return`${this.masked}${mr(["inverse","hidden"],"_")}`;let n=this.masked,r=n.slice(0,this.cursor),o=n.slice(this.cursor);return`${r}${mr("inverse",o[0])}${o.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t,...n}){super(n),this._mask=t??"\u2022",this.on("userInput",r=>{this._setValue(r)})}},En=class extends It{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t){super(t,!1),this.options=t.options;let n=this.options.findIndex(({value:o})=>o===t.initialValue),r=n===-1?0:n;this.cursor=this.options[r].disabled?Ye(r,1,this.options):r,this.changeValue(),this.on("cursor",o=>{switch(o){case"left":case"up":this.cursor=Ye(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Ye(this.cursor,1,this.options);break}this.changeValue()})}},Sn=class extends It{get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t=this.userInput;if(this.cursor>=t.length)return`${this.userInput}\u2588`;let n=t.slice(0,this.cursor),[r,...o]=t.slice(this.cursor);return`${n}${mr("inverse",r)}${o.join("")}`}get cursor(){return this._cursor}constructor(t){super({...t,initialUserInput:t.initialUserInput??t.initialValue}),this.on("userInput",n=>{this._setValue(n)}),this.on("finalize",()=>{this.value||(this.value=t.defaultValue),this.value===void 0&&(this.value="")})}}});import{styleText as d,stripVTControlCharacters as Tm}from"node:util";import ce from"node:process";function bc(){return ce.platform!=="win32"?ce.env.TERM!=="linux":!!ce.env.CI||!!ce.env.WT_SESSION||!!ce.env.TERMINUS_SUBLIME||ce.env.ConEmuTask==="{cmd::Cmder}"||ce.env.TERM_PROGRAM==="Terminus-Sublime"||ce.env.TERM_PROGRAM==="vscode"||ce.env.TERM==="xterm-256color"||ce.env.TERM==="alacritty"||ce.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Ot,yr,Mc,I,Tc,is,as,Cn,xc,v,ye,Om,Pm,wr,wn,Ic,rs,os,Rc,ss,Oc,Pc,Ac,Nc,Am,Dc,Uc,Lc,Wc,Pt,cs,jc,Cr,At,$,fe,Nt,Ue,Rt,ls,Fc,Gc,Dt,vn,Hc,Ut,Nm,yn,Ve,Dm,kn,vr,kr=C(()=>{Sr();Sr();ur();ir();Ot=Qe(pr(),1);yr=bc(),Mc=()=>process.env.CI==="true",I=(e,t)=>yr?e:t,Tc=I("\u25C6","*"),is=I("\u25A0","x"),as=I("\u25B2","x"),Cn=I("\u25C7","o"),xc=I("\u250C","T"),v=I("\u2502","|"),ye=I("\u2514","\u2014"),Om=I("\u2510","T"),Pm=I("\u2518","\u2014"),wr=I("\u25CF",">"),wn=I("\u25CB"," "),Ic=I("\u25FB","[\u2022]"),rs=I("\u25FC","[+]"),os=I("\u25FB","[ ]"),Rc=I("\u25AA","\u2022"),ss=I("\u2500","-"),Oc=I("\u256E","+"),Pc=I("\u251C","+"),Ac=I("\u256F","+"),Nc=I("\u2570","+"),Am=I("\u256D","+"),Dc=I("\u25CF","\u2022"),Uc=I("\u25C6","*"),Lc=I("\u25B2","!"),Wc=I("\u25A0","x"),Pt=e=>{switch(e){case"initial":case"active":return d("cyan",Tc);case"cancel":return d("red",is);case"error":return d("yellow",as);case"submit":return d("green",Cn)}},cs=e=>{switch(e){case"initial":case"active":return d("cyan",v);case"cancel":return d("red",v);case"error":return d("yellow",v);case"submit":return d("green",v)}},jc=(e,t,n,r,o)=>{let s=t,i=0;for(let a=n;a<r;a++){let c=e[a];if(s=s-c.length,i++,s<=o)break}return{lineCount:s,removals:i}},Cr=({cursor:e,options:t,style:n,output:r=process.stdout,maxItems:o=Number.POSITIVE_INFINITY,columnPadding:s=0,rowPadding:i=4})=>{let a=xt(r)-s,c=Er(r),l=d("dim","..."),p=Math.max(c-i,0),f=Math.max(Math.min(o,p),5),h=0;e>=f-3&&(h=Math.max(Math.min(e-f+3,t.length-f),0));let k=f<t.length&&h>0,g=f<t.length&&h+f<t.length,S=Math.min(h+f,t.length),y=[],O=0;k&&O++,g&&O++;let D=h+(k?1:0),W=S-(g?1:0);for(let T=D;T<W;T++){let j=Se(n(t[T],T===e),a,{hard:!0,trim:!1}).split(`
17
+ `);y.push(j),O+=j.length}if(O>p){let T=0,j=0,E=O,w=e-D,M=(L,N)=>jc(y,E,L,N,p);k?({lineCount:E,removals:T}=M(0,w),E>p&&({lineCount:E,removals:j}=M(w+1,y.length))):({lineCount:E,removals:j}=M(w+1,y.length),E>p&&({lineCount:E,removals:T}=M(0,w))),T>0&&(k=!0,y.splice(0,T)),j>0&&(g=!0,y.splice(y.length-j,j))}let K=[];k&&K.push(l);for(let T of y)for(let j of T)K.push(j);return g&&K.push(l),K},At=e=>{let t=e.active??"Yes",n=e.inactive??"No";return new gn({active:t,inactive:n,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??F.withGuide,o=`${Pt(this.state)} `,s=r?`${d("gray",v)} `:"",i=De(e.output,e.message,s,o),a=`${r?`${d("gray",v)}
18
18
  `:""}${i}
19
- `,c=this.value?t:r;switch(this.state){case"submit":{let l=n?`${d("gray",v)} `:"";return`${a}${l}${d("dim",c)}`}case"cancel":{let l=n?`${d("gray",v)} `:"";return`${a}${l}${d(["strikethrough","dim"],c)}${n?`
20
- ${d("gray",v)}`:""}`}default:{let l=n?`${d("cyan",v)} `:"",p=n?d("cyan",ye):"";return`${a}${l}${this.value?`${d("green",En)} ${t}`:`${d("dim",Sr)} ${d("dim",t)}`}${e.vertical?n?`
19
+ `,c=this.value?t:n;switch(this.state){case"submit":{let l=r?`${d("gray",v)} `:"";return`${a}${l}${d("dim",c)}`}case"cancel":{let l=r?`${d("gray",v)} `:"";return`${a}${l}${d(["strikethrough","dim"],c)}${r?`
20
+ ${d("gray",v)}`:""}`}default:{let l=r?`${d("cyan",v)} `:"",p=r?d("cyan",ye):"";return`${a}${l}${this.value?`${d("green",wr)} ${t}`:`${d("dim",wn)} ${d("dim",t)}`}${e.vertical?r?`
21
21
  ${d("cyan",v)} `:`
22
- `:` ${d("dim","/")} `}${this.value?`${d("dim",Sr)} ${d("dim",r)}`:`${d("green",En)} ${r}`}
22
+ `:` ${d("dim","/")} `}${this.value?`${d("dim",wn)} ${d("dim",n)}`:`${d("green",wr)} ${n}`}
23
23
  ${p}
24
- `}}}}).prompt()},$={message:(e=[],{symbol:t=d("gray",v),secondarySymbol:r=d("gray",v),output:n=process.stdout,spacing:o=1,withGuide:s}={})=>{let i=[],a=s??j.withGuide,c=a?r:"",l=a?`${t} `:"",p=a?`${r} `:"";for(let h=0;h<o;h++)i.push(c);let f=Array.isArray(e)?e:e.split(`
25
- `);if(f.length>0){let[h,...k]=f;h.length>0?i.push(`${l}${h}`):i.push(a?t:"");for(let g of k)g.length>0?i.push(`${p}${g}`):i.push(a?r:"")}n.write(`${i.join(`
24
+ `}}}}).prompt()},$={message:(e=[],{symbol:t=d("gray",v),secondarySymbol:n=d("gray",v),output:r=process.stdout,spacing:o=1,withGuide:s}={})=>{let i=[],a=s??F.withGuide,c=a?n:"",l=a?`${t} `:"",p=a?`${n} `:"";for(let h=0;h<o;h++)i.push(c);let f=Array.isArray(e)?e:e.split(`
25
+ `);if(f.length>0){let[h,...k]=f;h.length>0?i.push(`${l}${h}`):i.push(a?t:"");for(let g of k)g.length>0?i.push(`${p}${g}`):i.push(a?n:"")}r.write(`${i.join(`
26
26
  `)}
27
- `)},info:(e,t)=>{$.message(e,{...t,symbol:d("blue",Cc)})},success:(e,t)=>{$.message(e,{...t,symbol:d("green",vc)})},step:(e,t)=>{$.message(e,{...t,symbol:d("green",yr)})},warn:(e,t)=>{$.message(e,{...t,symbol:d("yellow",kc)})},warning:(e,t)=>{$.warn(e,t)},error:(e,t)=>{$.message(e,{...t,symbol:d("red",bc)})}},fe=(e="",t)=>{let r=t?.output??process.stdout,n=t?.withGuide??j.withGuide?`${d("gray",ye)} `:"";r.write(`${n}${d("red",e)}
27
+ `)},info:(e,t)=>{$.message(e,{...t,symbol:d("blue",Dc)})},success:(e,t)=>{$.message(e,{...t,symbol:d("green",Uc)})},step:(e,t)=>{$.message(e,{...t,symbol:d("green",Cn)})},warn:(e,t)=>{$.message(e,{...t,symbol:d("yellow",Lc)})},warning:(e,t)=>{$.warn(e,t)},error:(e,t)=>{$.message(e,{...t,symbol:d("red",Wc)})}},fe=(e="",t)=>{let n=t?.output??process.stdout,r=t?.withGuide??F.withGuide?`${d("gray",ye)} `:"";n.write(`${r}${d("red",e)}
28
28
 
29
- `)},At=(e="",t)=>{let r=t?.output??process.stdout,n=t?.withGuide??j.withGuide?`${d("gray",fc)} `:"";r.write(`${n}${e}
30
- `)},De=(e="",t)=>{let r=t?.output??process.stdout,n=t?.withGuide??j.withGuide?`${d("gray",v)}
31
- ${d("gray",ye)} `:"";r.write(`${n}${e}
29
+ `)},Nt=(e="",t)=>{let n=t?.output??process.stdout,r=t?.withGuide??F.withGuide?`${d("gray",xc)} `:"";n.write(`${r}${e}
30
+ `)},Ue=(e="",t)=>{let n=t?.output??process.stdout,r=t?.withGuide??F.withGuide?`${d("gray",v)}
31
+ ${d("gray",ye)} `:"";n.write(`${r}${e}
32
32
 
33
- `)},It=(e,t)=>e.split(`
34
- `).map(r=>t(r)).join(`
35
- `),is=e=>{let t=(n,o)=>{let s=n.label??String(n.value);return o==="disabled"?`${d("gray",ts)} ${It(s,i=>d(["strikethrough","gray"],i))}${n.hint?` ${d("dim",`(${n.hint??"disabled"})`)}`:""}`:o==="active"?`${d("cyan",gc)} ${s}${n.hint?` ${d("dim",`(${n.hint})`)}`:""}`:o==="selected"?`${d("green",es)} ${It(s,i=>d("dim",i))}${n.hint?` ${d("dim",`(${n.hint})`)}`:""}`:o==="cancelled"?`${It(s,i=>d(["strikethrough","dim"],i))}`:o==="active-selected"?`${d("green",es)} ${s}${n.hint?` ${d("dim",`(${n.hint})`)}`:""}`:o==="submitted"?`${It(s,i=>d("dim",i))}`:`${d("dim",ts)} ${It(s,i=>d("dim",i))}`},r=e.required??!0;return new $o({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValues:e.initialValues,required:r,cursorAt:e.cursorAt,validate(n){if(r&&(n===void 0||n.length===0))return`Please select at least one option.
36
- ${d("reset",d("dim",`Press ${d(["gray","bgWhite","inverse"]," space ")} to select, ${d("gray",d("bgWhite",d("inverse"," enter ")))} to submit`))}`},render(){let n=e.withGuide??j.withGuide,o=Ne(e.output,e.message,n?`${ss(this.state)} `:"",`${Ot(this.state)} `),s=`${n?`${d("gray",v)}
33
+ `)},Rt=(e,t)=>e.split(`
34
+ `).map(n=>t(n)).join(`
35
+ `),ls=e=>{let t=(r,o)=>{let s=r.label??String(r.value);return o==="disabled"?`${d("gray",os)} ${Rt(s,i=>d(["strikethrough","gray"],i))}${r.hint?` ${d("dim",`(${r.hint??"disabled"})`)}`:""}`:o==="active"?`${d("cyan",Ic)} ${s}${r.hint?` ${d("dim",`(${r.hint})`)}`:""}`:o==="selected"?`${d("green",rs)} ${Rt(s,i=>d("dim",i))}${r.hint?` ${d("dim",`(${r.hint})`)}`:""}`:o==="cancelled"?`${Rt(s,i=>d(["strikethrough","dim"],i))}`:o==="active-selected"?`${d("green",rs)} ${s}${r.hint?` ${d("dim",`(${r.hint})`)}`:""}`:o==="submitted"?`${Rt(s,i=>d("dim",i))}`:`${d("dim",os)} ${Rt(s,i=>d("dim",i))}`},n=e.required??!0;return new ns({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValues:e.initialValues,required:n,cursorAt:e.cursorAt,validate(r){if(n&&(r===void 0||r.length===0))return`Please select at least one option.
36
+ ${d("reset",d("dim",`Press ${d(["gray","bgWhite","inverse"]," space ")} to select, ${d("gray",d("bgWhite",d("inverse"," enter ")))} to submit`))}`},render(){let r=e.withGuide??F.withGuide,o=De(e.output,e.message,r?`${cs(this.state)} `:"",`${Pt(this.state)} `),s=`${r?`${d("gray",v)}
37
37
  `:""}${o}
38
- `,i=this.value??[],a=(c,l)=>{if(c.disabled)return t(c,"disabled");let p=i.includes(c.value);return l&&p?t(c,"active-selected"):p?t(c,"selected"):t(c,l?"active":"inactive")};switch(this.state){case"submit":{let c=this.options.filter(({value:p})=>i.includes(p)).map(p=>t(p,"submitted")).join(d("dim",", "))||d("dim","none"),l=Ne(e.output,c,n?`${d("gray",v)} `:"");return`${s}${l}`}case"cancel":{let c=this.options.filter(({value:p})=>i.includes(p)).map(p=>t(p,"cancelled")).join(d("dim",", "));if(c.trim()==="")return`${s}${d("gray",v)}`;let l=Ne(e.output,c,n?`${d("gray",v)} `:"");return`${s}${l}${n?`
39
- ${d("gray",v)}`:""}`}case"error":{let c=n?`${d("yellow",v)} `:"",l=this.error.split(`
40
- `).map((h,k)=>k===0?`${n?`${d("yellow",ye)} `:""}${d("yellow",h)}`:` ${h}`).join(`
38
+ `,i=this.value??[],a=(c,l)=>{if(c.disabled)return t(c,"disabled");let p=i.includes(c.value);return l&&p?t(c,"active-selected"):p?t(c,"selected"):t(c,l?"active":"inactive")};switch(this.state){case"submit":{let c=this.options.filter(({value:p})=>i.includes(p)).map(p=>t(p,"submitted")).join(d("dim",", "))||d("dim","none"),l=De(e.output,c,r?`${d("gray",v)} `:"");return`${s}${l}`}case"cancel":{let c=this.options.filter(({value:p})=>i.includes(p)).map(p=>t(p,"cancelled")).join(d("dim",", "));if(c.trim()==="")return`${s}${d("gray",v)}`;let l=De(e.output,c,r?`${d("gray",v)} `:"");return`${s}${l}${r?`
39
+ ${d("gray",v)}`:""}`}case"error":{let c=r?`${d("yellow",v)} `:"",l=this.error.split(`
40
+ `).map((h,k)=>k===0?`${r?`${d("yellow",ye)} `:""}${d("yellow",h)}`:` ${h}`).join(`
41
41
  `),p=s.split(`
42
42
  `).length,f=l.split(`
43
- `).length+1;return`${s}${c}${Sn({output:e.output,options:this.options,cursor:this.cursor,maxItems:e.maxItems,columnPadding:c.length,rowPadding:p+f,style:a}).join(`
43
+ `).length+1;return`${s}${c}${Cr({output:e.output,options:this.options,cursor:this.cursor,maxItems:e.maxItems,columnPadding:c.length,rowPadding:p+f,style:a}).join(`
44
44
  ${c}`)}
45
45
  ${l}
46
- `}default:{let c=n?`${d("cyan",v)} `:"",l=s.split(`
47
- `).length,p=n?2:1;return`${s}${c}${Sn({output:e.output,options:this.options,cursor:this.cursor,maxItems:e.maxItems,columnPadding:c.length,rowPadding:l+p,style:a}).join(`
46
+ `}default:{let c=r?`${d("cyan",v)} `:"",l=s.split(`
47
+ `).length,p=r?2:1;return`${s}${c}${Cr({output:e.output,options:this.options,cursor:this.cursor,maxItems:e.maxItems,columnPadding:c.length,rowPadding:l+p,style:a}).join(`
48
48
  ${c}`)}
49
- ${n?d("cyan",ye):""}
50
- `}}}}).prompt()},Tc=e=>d("dim",e),xc=(e,t,r)=>{let n={hard:!0,trim:!1},o=Se(e,t,n).split(`
51
- `),s=o.reduce((c,l)=>Math.max(_(l),c),0),i=o.map(r).reduce((c,l)=>Math.max(_(l),c),0),a=t-(i-s);return Se(e,a,n)},Nt=(e="",t="",r)=>{let n=r?.output??ie.stdout,o=r?.withGuide??j.withGuide,s=r?.format??Tc,i=["",...xc(e,Tt(n)-6,s).split(`
49
+ ${r?d("cyan",ye):""}
50
+ `}}}}).prompt()},Fc=e=>d("dim",e),Gc=(e,t,n)=>{let r={hard:!0,trim:!1},o=Se(e,t,r).split(`
51
+ `),s=o.reduce((c,l)=>Math.max(_(l),c),0),i=o.map(n).reduce((c,l)=>Math.max(_(l),c),0),a=t-(i-s);return Se(e,a,r)},Dt=(e="",t="",n)=>{let r=n?.output??ce.stdout,o=n?.withGuide??F.withGuide,s=n?.format??Fc,i=["",...Gc(e,xt(r)-6,s).split(`
52
52
  `).map(s),""],a=_(t),c=Math.max(i.reduce((h,k)=>{let g=_(k);return g>h?g:h},0),a)+2,l=i.map(h=>`${d("gray",v)} ${h}${" ".repeat(c-_(h))}${d("gray",v)}`).join(`
53
53
  `),p=o?`${d("gray",v)}
54
- `:"",f=o?Sc:wc;n.write(`${p}${d("green",yr)} ${d("reset",t)} ${d("gray",rs.repeat(Math.max(c-a-1,1))+Ec)}
54
+ `:"",f=o?Pc:Nc;r.write(`${p}${d("green",Cn)} ${d("reset",t)} ${d("gray",ss.repeat(Math.max(c-a-1,1))+Oc)}
55
55
  ${l}
56
- ${d("gray",f+rs.repeat(c+2)+yc)}
57
- `)},wr=e=>new fr({validate:e.validate,mask:e.mask??hc,signal:e.signal,input:e.input,output:e.output,render(){let t=e.withGuide??j.withGuide,r=`${t?`${d("gray",v)}
58
- `:""}${Ot(this.state)} ${e.message}
59
- `,n=this.userInputWithCursor,o=this.masked;switch(this.state){case"error":{let s=t?`${d("yellow",v)} `:"",i=t?`${d("yellow",ye)} `:"",a=o??"";return e.clearOnError&&this.clear(),`${r.trim()}
56
+ ${d("gray",f+ss.repeat(c+2)+Ac)}
57
+ `)},vn=e=>new hn({validate:e.validate,mask:e.mask??Rc,signal:e.signal,input:e.input,output:e.output,render(){let t=e.withGuide??F.withGuide,n=`${t?`${d("gray",v)}
58
+ `:""}${Pt(this.state)} ${e.message}
59
+ `,r=this.userInputWithCursor,o=this.masked;switch(this.state){case"error":{let s=t?`${d("yellow",v)} `:"",i=t?`${d("yellow",ye)} `:"",a=o??"";return e.clearOnError&&this.clear(),`${n.trim()}
60
60
  ${s}${a}
61
61
  ${i}${d("yellow",this.error)}
62
- `}case"submit":{let s=t?`${d("gray",v)} `:"",i=o?d("dim",o):"";return`${r}${s}${i}`}case"cancel":{let s=t?`${d("gray",v)} `:"",i=o?d(["strikethrough","dim"],o):"";return`${r}${s}${i}${o&&t?`
63
- ${d("gray",v)}`:""}`}default:{let s=t?`${d("cyan",v)} `:"",i=t?d("cyan",ye):"";return`${r}${s}${n}
62
+ `}case"submit":{let s=t?`${d("gray",v)} `:"",i=o?d("dim",o):"";return`${n}${s}${i}`}case"cancel":{let s=t?`${d("gray",v)} `:"",i=o?d(["strikethrough","dim"],o):"";return`${n}${s}${i}${o&&t?`
63
+ ${d("gray",v)}`:""}`}default:{let s=t?`${d("cyan",v)} `:"",i=t?d("cyan",ye):"";return`${n}${s}${r}
64
64
  ${i}
65
- `}}}}).prompt(),Ic=e=>d("magenta",e),Dt=({indicator:e="dots",onCancel:t,output:r=process.stdout,cancelMessage:n,errorMessage:o,frames:s=hn?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],delay:i=hn?80:120,signal:a,...c}={})=>{let l=pc(),p,f,h=!1,k=!1,g="",E,b=performance.now(),O=Tt(r),U=c?.styleFrame??Ic,L=D=>{let se=D>1?o??j.messages.error:n??j.messages.cancel;k=D===1,h&&(Ct(se,D),k&&typeof t=="function"&&t())},W=()=>L(2),T=()=>L(1),C=()=>{process.on("uncaughtExceptionMonitor",W),process.on("unhandledRejection",W),process.on("SIGINT",T),process.on("SIGTERM",T),process.on("exit",L),a&&a.addEventListener("abort",T)},S=()=>{process.removeListener("uncaughtExceptionMonitor",W),process.removeListener("unhandledRejection",W),process.removeListener("SIGINT",T),process.removeListener("SIGTERM",T),process.removeListener("exit",L),a&&a.removeEventListener("abort",T)},y=()=>{if(E===void 0)return;l&&r.write(`
66
- `);let D=Se(E,O,{hard:!0,trim:!1}).split(`
67
- `);D.length>1&&r.write(Rt.cursor.up(D.length-1)),r.write(Rt.cursor.to(0)),r.write(Rt.erase.down())},A=D=>D.replace(/\.+$/,""),J=D=>{let se=(performance.now()-D)/1e3,xe=Math.floor(se/60),Ie=Math.floor(se%60);return xe>0?`[${xe}m ${Ie}s]`:`[${Ie}s]`},Z=c.withGuide??j.withGuide,sr=(D="")=>{h=!0,p=_o({output:r}),g=A(D),b=performance.now(),Z&&r.write(`${d("gray",v)}
68
- `);let se=0,xe=0;C(),f=setInterval(()=>{if(l&&g===E)return;y(),E=g;let Ie=U(s[se]),ir;if(l)ir=`${Ie} ${g}...`;else if(e==="timer")ir=`${Ie} ${g} ${J(b)}`;else{let Ra=".".repeat(Math.floor(xe)).slice(0,3);ir=`${Ie} ${g}${Ra}`}let Ia=Se(ir,O,{hard:!0,trim:!1});r.write(Ia),se=se+1<s.length?se+1:0,xe=xe<4?xe+.125:0},i)},Ct=(D="",se=0,xe=!1)=>{if(!h)return;h=!1,clearInterval(f),y();let Ie=se===0?d("green",yr):se===1?d("red",ns):d("red",os);g=D??g,xe||(e==="timer"?r.write(`${Ie} ${g} ${J(b)}
69
- `):r.write(`${Ie} ${g}
70
- `)),S(),p()};return{start:sr,stop:(D="")=>Ct(D,0),message:(D="")=>{g=A(D??g)},cancel:(D="")=>Ct(D,1),error:(D="")=>Ct(D,2),clear:()=>Ct("",0,!0),get isCancelled(){return k}}},ym={light:I("\u2500","-"),heavy:I("\u2501","="),block:I("\u2588","#")},Er=(e,t)=>e.includes(`
65
+ `}}}}).prompt(),Hc=e=>d("magenta",e),Ut=({indicator:e="dots",onCancel:t,output:n=process.stdout,cancelMessage:r,errorMessage:o,frames:s=yr?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],delay:i=yr?80:120,signal:a,...c}={})=>{let l=Mc(),p,f,h=!1,k=!1,g="",S,y=performance.now(),O=xt(n),D=c?.styleFrame??Hc,W=U=>{let se=U>1?o??F.messages.error:r??F.messages.cancel;k=U===1,h&&(vt(se,U),k&&typeof t=="function"&&t())},K=()=>W(2),T=()=>W(1),j=()=>{process.on("uncaughtExceptionMonitor",K),process.on("unhandledRejection",K),process.on("SIGINT",T),process.on("SIGTERM",T),process.on("exit",W),a&&a.addEventListener("abort",T)},E=()=>{process.removeListener("uncaughtExceptionMonitor",K),process.removeListener("unhandledRejection",K),process.removeListener("SIGINT",T),process.removeListener("SIGTERM",T),process.removeListener("exit",W),a&&a.removeEventListener("abort",T)},w=()=>{if(S===void 0)return;l&&n.write(`
66
+ `);let U=Se(S,O,{hard:!0,trim:!1}).split(`
67
+ `);U.length>1&&n.write(Ot.cursor.up(U.length-1)),n.write(Ot.cursor.to(0)),n.write(Ot.erase.down())},M=U=>U.replace(/\.+$/,""),L=U=>{let se=(performance.now()-U)/1e3,xe=Math.floor(se/60),Ie=Math.floor(se%60);return xe>0?`[${xe}m ${Ie}s]`:`[${Ie}s]`},N=c.withGuide??F.withGuide,Xe=(U="")=>{h=!0,p=ts({output:n}),g=M(U),y=performance.now(),N&&n.write(`${d("gray",v)}
68
+ `);let se=0,xe=0;j(),f=setInterval(()=>{if(l&&g===S)return;w(),S=g;let Ie=D(s[se]),an;if(l)an=`${Ie} ${g}...`;else if(e==="timer")an=`${Ie} ${g} ${L(y)}`;else{let Na=".".repeat(Math.floor(xe)).slice(0,3);an=`${Ie} ${g}${Na}`}let Aa=Se(an,O,{hard:!0,trim:!1});n.write(Aa),se=se+1<s.length?se+1:0,xe=xe<4?xe+.125:0},i)},vt=(U="",se=0,xe=!1)=>{if(!h)return;h=!1,clearInterval(f),w();let Ie=se===0?d("green",Cn):se===1?d("red",is):d("red",as);g=U??g,xe||(e==="timer"?n.write(`${Ie} ${g} ${L(y)}
69
+ `):n.write(`${Ie} ${g}
70
+ `)),E(),p()};return{start:Xe,stop:(U="")=>vt(U,0),message:(U="")=>{g=M(U??g)},cancel:(U="")=>vt(U,1),error:(U="")=>vt(U,2),clear:()=>vt("",0,!0),get isCancelled(){return k}}},Nm={light:I("\u2500","-"),heavy:I("\u2501","="),block:I("\u2588","#")},yn=(e,t)=>e.includes(`
71
71
  `)?e.split(`
72
- `).map(r=>t(r)).join(`
73
- `):t(e),Ye=e=>{let t=(r,n)=>{let o=r.label??String(r.value);switch(n){case"disabled":return`${d("gray",Sr)} ${Er(o,s=>d("gray",s))}${r.hint?` ${d("dim",`(${r.hint??"disabled"})`)}`:""}`;case"selected":return`${Er(o,s=>d("dim",s))}`;case"active":return`${d("green",En)} ${o}${r.hint?` ${d("dim",`(${r.hint})`)}`:""}`;case"cancelled":return`${Er(o,s=>d(["strikethrough","dim"],s))}`;default:return`${d("dim",Sr)} ${Er(o,s=>d("dim",s))}`}};return new gr({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let r=e.withGuide??j.withGuide,n=`${Ot(this.state)} `,o=`${ss(this.state)} `,s=Ne(e.output,e.message,o,n),i=`${r?`${d("gray",v)}
72
+ `).map(n=>t(n)).join(`
73
+ `):t(e),Ve=e=>{let t=(n,r)=>{let o=n.label??String(n.value);switch(r){case"disabled":return`${d("gray",wn)} ${yn(o,s=>d("gray",s))}${n.hint?` ${d("dim",`(${n.hint??"disabled"})`)}`:""}`;case"selected":return`${yn(o,s=>d("dim",s))}`;case"active":return`${d("green",wr)} ${o}${n.hint?` ${d("dim",`(${n.hint})`)}`:""}`;case"cancelled":return`${yn(o,s=>d(["strikethrough","dim"],s))}`;default:return`${d("dim",wn)} ${yn(o,s=>d("dim",s))}`}};return new En({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let n=e.withGuide??F.withGuide,r=`${Pt(this.state)} `,o=`${cs(this.state)} `,s=De(e.output,e.message,o,r),i=`${n?`${d("gray",v)}
74
74
  `:""}${s}
75
- `;switch(this.state){case"submit":{let a=r?`${d("gray",v)} `:"",c=Ne(e.output,t(this.options[this.cursor],"selected"),a);return`${i}${c}`}case"cancel":{let a=r?`${d("gray",v)} `:"",c=Ne(e.output,t(this.options[this.cursor],"cancelled"),a);return`${i}${c}${r?`
76
- ${d("gray",v)}`:""}`}default:{let a=r?`${d("cyan",v)} `:"",c=r?d("cyan",ye):"",l=i.split(`
77
- `).length,p=r?2:1;return`${i}${a}${Sn({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:a.length,rowPadding:l+p,style:(f,h)=>t(f,f.disabled?"disabled":h?"active":"inactive")}).join(`
75
+ `;switch(this.state){case"submit":{let a=n?`${d("gray",v)} `:"",c=De(e.output,t(this.options[this.cursor],"selected"),a);return`${i}${c}`}case"cancel":{let a=n?`${d("gray",v)} `:"",c=De(e.output,t(this.options[this.cursor],"cancelled"),a);return`${i}${c}${n?`
76
+ ${d("gray",v)}`:""}`}default:{let a=n?`${d("cyan",v)} `:"",c=n?d("cyan",ye):"",l=i.split(`
77
+ `).length,p=n?2:1;return`${i}${a}${Cr({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:a.length,rowPadding:l+p,style:(f,h)=>t(f,f.disabled?"disabled":h?"active":"inactive")}).join(`
78
78
  ${a}`)}
79
79
  ${c}
80
- `}}}}).prompt()},wm=`${d("gray",v)} `,Cr=async(e,t)=>{for(let r of e){if(r.enabled===!1)continue;let n=Dt(t);n.start(r.title);let o=await r.task(n.message);n.stop(o||r.title)}},yn=e=>new hr({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??j.withGuide,r=`${`${t?`${d("gray",v)}
81
- `:""}${Ot(this.state)} `}${e.message}
82
- `,n=e.placeholder?d("inverse",e.placeholder[0])+d("dim",e.placeholder.slice(1)):d(["inverse","hidden"],"_"),o=this.userInput?this.userInputWithCursor:n,s=this.value??"";switch(this.state){case"error":{let i=this.error?` ${d("yellow",this.error)}`:"",a=t?`${d("yellow",v)} `:"",c=t?d("yellow",ye):"";return`${r.trim()}
80
+ `}}}}).prompt()},Dm=`${d("gray",v)} `,kn=async(e,t)=>{for(let n of e){if(n.enabled===!1)continue;let r=Ut(t);r.start(n.title);let o=await n.task(r.message);r.stop(o||n.title)}},vr=e=>new Sn({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??F.withGuide,n=`${`${t?`${d("gray",v)}
81
+ `:""}${Pt(this.state)} `}${e.message}
82
+ `,r=e.placeholder?d("inverse",e.placeholder[0])+d("dim",e.placeholder.slice(1)):d(["inverse","hidden"],"_"),o=this.userInput?this.userInputWithCursor:r,s=this.value??"";switch(this.state){case"error":{let i=this.error?` ${d("yellow",this.error)}`:"",a=t?`${d("yellow",v)} `:"",c=t?d("yellow",ye):"";return`${n.trim()}
83
83
  ${a}${o}
84
84
  ${c}${i}
85
- `}case"submit":{let i=s?` ${d("dim",s)}`:"",a=t?d("gray",v):"";return`${r}${a}${i}`}case"cancel":{let i=s?` ${d(["strikethrough","dim"],s)}`:"",a=t?d("gray",v):"";return`${r}${a}${i}${s.trim()?`
86
- ${a}`:""}`}default:{let i=t?`${d("cyan",v)} `:"",a=t?d("cyan",ye):"";return`${r}${i}${o}
85
+ `}case"submit":{let i=s?` ${d("dim",s)}`:"",a=t?d("gray",v):"";return`${n}${a}${i}`}case"cancel":{let i=s?` ${d(["strikethrough","dim"],s)}`:"",a=t?d("gray",v):"";return`${n}${a}${i}${s.trim()?`
86
+ ${a}`:""}`}default:{let i=t?`${d("cyan",v)} `:"",a=t?d("cyan",ye):"";return`${n}${i}${o}
87
87
  ${a}
88
- `}}}}).prompt()});import{spawn as Rc}from"node:child_process";function we(e,t,r){return Rc(e,t??[],{windowsHide:!0,...r})}var tt=w(()=>{"use strict"});import{readFileSync as Oc,writeFileSync as cs,existsSync as ls,mkdirSync as Pc}from"fs";import{join as us,dirname as Ac}from"path";import{homedir as ds}from"os";var K,Ue=w(()=>{"use strict";K=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5-20251001",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:String(37700+(process.getuid?.()??77)%100),CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"subscription",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_GEMINI_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_GEMINI_MAX_TOKENS:"100000",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:us(ds(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_WELCOME_HINT_ENABLED:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_FOLDER_USE_LOCAL_MD:"false",CLAUDE_MEM_TRANSCRIPTS_ENABLED:"true",CLAUDE_MEM_TRANSCRIPTS_CONFIG_PATH:us(ds(),".claude-mem","transcript-watch.json"),CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_HOOK_FAIL_LOUD_THRESHOLD:"3",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_SEMANTIC_INJECT:"false",CLAUDE_MEM_SEMANTIC_INJECT_LIMIT:"5",CLAUDE_MEM_TIER_ROUTING_ENABLED:"true",CLAUDE_MEM_TIER_SIMPLE_MODEL:"haiku",CLAUDE_MEM_TIER_SUMMARY_MODEL:"",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database",CLAUDE_MEM_TELEGRAM_ENABLED:"true",CLAUDE_MEM_TELEGRAM_BOT_TOKEN:"",CLAUDE_MEM_TELEGRAM_CHAT_ID:"",CLAUDE_MEM_TELEGRAM_TRIGGER_TYPES:"security_alert",CLAUDE_MEM_TELEGRAM_TRIGGER_CONCEPTS:""};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return process.env[t]??this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){let r=this.get(t);return r==="true"||r===!0}static applyEnvOverrides(t){let r={...t};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(t){try{if(!ls(t)){let i=this.getAllDefaults();try{let a=Ac(t);ls(a)||Pc(a,{recursive:!0}),cs(t,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",t)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",t,a instanceof Error?a.message:String(a))}return this.applyEnvOverrides(i)}let r=Oc(t,"utf-8"),n=JSON.parse(r),o=n;if(n.env&&typeof n.env=="object"){o=n.env;try{cs(t,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",t)}catch(i){console.warn("[SETTINGS] Failed to auto-migrate settings file:",t,i instanceof Error?i.message:String(i))}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return this.applyEnvOverrides(s)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",t,r instanceof Error?r.message:String(r)),this.applyEnvOverrides(this.getAllDefaults())}}}});import{appendFileSync as Nc,existsSync as ps,mkdirSync as Dc,readFileSync as Uc}from"fs";import{join as Lc}from"path";var Cn,vn,u,G=w(()=>{"use strict";re();Cn=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(Cn||{}),vn=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let t=B.logsDir();ps(t)||Dc(t,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=Lc(t,`claude-mem-${r}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t instanceof Error?t.message:String(t)),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let t=B.settings();if(ps(t)){let r=Uc(t,"utf-8"),o=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=Cn[o]??1}else this.level=1}catch(t){console.error("[LOGGER] Failed to load log level from settings:",t instanceof Error?t.message:String(t)),this.level=1}return this.level}correlationId(t,r){return`obs-${t}-${r}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message}
89
- ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let r=Object.keys(t);return r.length===0?"{}":r.length<=3?JSON.stringify(t):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,r){if(!r)return t;let n=r;if(typeof r=="string")try{n=JSON.parse(r)}catch{n=r}if(t==="Bash"&&n.command)return`${t}(${n.command})`;if(n.file_path)return`${t}(${n.file_path})`;if(n.notebook_path)return`${t}(${n.notebook_path})`;if(t==="Glob"&&n.pattern)return`${t}(${n.pattern})`;if(t==="Grep"&&n.pattern)return`${t}(${n.pattern})`;if(n.url)return`${t}(${n.url})`;if(n.query)return`${t}(${n.query})`;if(t==="Task"){if(n.subagent_type)return`${t}(${n.subagent_type})`;if(n.description)return`${t}(${n.description})`}return t==="Skill"&&n.skill?`${t}(${n.skill})`:t==="LSP"&&n.operation?`${t}(${n.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0"),c=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${o} ${s}:${i}:${a}.${c}`}log(t,r,n,o,s){if(t<this.getLevel())return;this.ensureLogFileInitialized();let i=this.formatTimestamp(new Date),a=Cn[t].padEnd(5),c=r.padEnd(6),l="";o?.correlationId?l=`[${o.correlationId}] `:o?.sessionId&&(l=`[session-${o.sessionId}] `);let p="";if(s!=null)if(s instanceof Error)p=this.getLevel()===0?`
88
+ `}}}}).prompt()});import{spawn as Jc}from"node:child_process";function we(e,t,n){return Jc(e,t??[],{windowsHide:!0,...n})}var nt=C(()=>{"use strict"});import{readFileSync as Kc,writeFileSync as ds,existsSync as ps,mkdirSync as Bc}from"fs";import{join as ms,dirname as Yc}from"path";import{homedir as fs}from"os";var B,Le=C(()=>{"use strict";B=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5-20251001",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:String(37700+(process.getuid?.()??77)%100),CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"subscription",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_GEMINI_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_GEMINI_MAX_TOKENS:"100000",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:ms(fs(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_WELCOME_HINT_ENABLED:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_FOLDER_USE_LOCAL_MD:"false",CLAUDE_MEM_TRANSCRIPTS_ENABLED:"true",CLAUDE_MEM_TRANSCRIPTS_CONFIG_PATH:ms(fs(),".claude-mem","transcript-watch.json"),CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_HOOK_FAIL_LOUD_THRESHOLD:"3",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_SEMANTIC_INJECT:"false",CLAUDE_MEM_SEMANTIC_INJECT_LIMIT:"5",CLAUDE_MEM_TIER_ROUTING_ENABLED:"true",CLAUDE_MEM_TIER_SIMPLE_MODEL:"haiku",CLAUDE_MEM_TIER_SUMMARY_MODEL:"",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database",CLAUDE_MEM_TELEGRAM_ENABLED:"true",CLAUDE_MEM_TELEGRAM_BOT_TOKEN:"",CLAUDE_MEM_TELEGRAM_CHAT_ID:"",CLAUDE_MEM_TELEGRAM_TRIGGER_TYPES:"security_alert",CLAUDE_MEM_TELEGRAM_TRIGGER_CONCEPTS:""};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return process.env[t]??this.DEFAULTS[t]}static getInt(t){let n=this.get(t);return parseInt(n,10)}static getBool(t){let n=this.get(t);return n==="true"||n===!0}static applyEnvOverrides(t){let n={...t};for(let r of Object.keys(this.DEFAULTS))process.env[r]!==void 0&&(n[r]=process.env[r]);return n}static loadFromFile(t){try{if(!ps(t)){let i=this.getAllDefaults();try{let a=Yc(t);ps(a)||Bc(a,{recursive:!0}),ds(t,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",t)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",t,a instanceof Error?a.message:String(a))}return this.applyEnvOverrides(i)}let n=Kc(t,"utf-8"),r=JSON.parse(n),o=r;if(r.env&&typeof r.env=="object"){o=r.env;try{ds(t,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",t)}catch(i){console.warn("[SETTINGS] Failed to auto-migrate settings file:",t,i instanceof Error?i.message:String(i))}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return this.applyEnvOverrides(s)}catch(n){return console.warn("[SETTINGS] Failed to load settings, using defaults:",t,n instanceof Error?n.message:String(n)),this.applyEnvOverrides(this.getAllDefaults())}}}});import{appendFileSync as Vc,existsSync as gs,mkdirSync as zc,readFileSync as Zc}from"fs";import{join as qc}from"path";var br,Mr,u,H=C(()=>{"use strict";re();br=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(br||{}),Mr=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let t=Y.logsDir();gs(t)||zc(t,{recursive:!0});let n=new Date().toISOString().split("T")[0];this.logFilePath=qc(t,`claude-mem-${n}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t instanceof Error?t.message:String(t)),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let t=Y.settings();if(gs(t)){let n=Zc(t,"utf-8"),o=(JSON.parse(n).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=br[o]??1}else this.level=1}catch(t){console.error("[LOGGER] Failed to load log level from settings:",t instanceof Error?t.message:String(t)),this.level=1}return this.level}correlationId(t,n){return`obs-${t}-${n}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message}
89
+ ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let n=Object.keys(t);return n.length===0?"{}":n.length<=3?JSON.stringify(t):`{${n.length} keys: ${n.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,n){if(!n)return t;let r=n;if(typeof n=="string")try{r=JSON.parse(n)}catch{r=n}if(t==="Bash"&&r.command)return`${t}(${r.command})`;if(r.file_path)return`${t}(${r.file_path})`;if(r.notebook_path)return`${t}(${r.notebook_path})`;if(t==="Glob"&&r.pattern)return`${t}(${r.pattern})`;if(t==="Grep"&&r.pattern)return`${t}(${r.pattern})`;if(r.url)return`${t}(${r.url})`;if(r.query)return`${t}(${r.query})`;if(t==="Task"){if(r.subagent_type)return`${t}(${r.subagent_type})`;if(r.description)return`${t}(${r.description})`}return t==="Skill"&&r.skill?`${t}(${r.skill})`:t==="LSP"&&r.operation?`${t}(${r.operation})`:t}formatTimestamp(t){let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0"),c=String(t.getMilliseconds()).padStart(3,"0");return`${n}-${r}-${o} ${s}:${i}:${a}.${c}`}log(t,n,r,o,s){if(t<this.getLevel())return;this.ensureLogFileInitialized();let i=this.formatTimestamp(new Date),a=br[t].padEnd(5),c=n.padEnd(6),l="";o?.correlationId?l=`[${o.correlationId}] `:o?.sessionId&&(l=`[session-${o.sessionId}] `);let p="";if(s!=null)if(s instanceof Error)p=this.getLevel()===0?`
90
90
  ${s.message}
91
91
  ${s.stack}`:` ${s.message}`;else if(this.getLevel()===0&&typeof s=="object")try{p=`
92
- `+JSON.stringify(s,null,2)}catch{p=" "+this.formatData(s)}else p=" "+this.formatData(s);let f="";if(o){let{sessionId:k,memorySessionId:g,correlationId:E,...b}=o;Object.keys(b).length>0&&(f=` {${Object.entries(b).map(([U,L])=>`${U}=${L}`).join(", ")}}`)}let h=`[${i}] [${a}] [${c}] ${l}${n}${f}${p}`;if(this.logFilePath)try{Nc(this.logFilePath,h+`
92
+ `+JSON.stringify(s,null,2)}catch{p=" "+this.formatData(s)}else p=" "+this.formatData(s);let f="";if(o){let{sessionId:k,memorySessionId:g,correlationId:S,...y}=o;Object.keys(y).length>0&&(f=` {${Object.entries(y).map(([D,W])=>`${D}=${W}`).join(", ")}}`)}let h=`[${i}] [${a}] [${c}] ${l}${r}${f}${p}`;if(this.logFilePath)try{Vc(this.logFilePath,h+`
93
93
  `,"utf8")}catch(k){process.stderr.write(`[LOGGER] Failed to write to log file: ${k instanceof Error?k.message:String(k)}
94
94
  `)}else process.stderr.write(h+`
95
- `)}debug(t,r,n,o){this.log(0,t,r,n,o)}info(t,r,n,o){this.log(1,t,r,n,o)}warn(t,r,n,o){this.log(2,t,r,n,o)}error(t,r,n,o){this.log(3,t,r,n,o)}dataIn(t,r,n,o){this.info(t,`\u2192 ${r}`,n,o)}dataOut(t,r,n,o){this.info(t,`\u2190 ${r}`,n,o)}success(t,r,n,o){this.info(t,`\u2713 ${r}`,n,o)}failure(t,r,n,o){this.error(t,`\u2717 ${r}`,n,o)}timing(t,r,n,o){this.info(t,`\u23F1 ${r}`,o,{duration:`${n}ms`})}happyPathError(t,r,n,o,s=""){let l=((new Error().stack||"").split(`
96
- `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),p=l?`${l[1].split("/").pop()}:${l[2]}`:"unknown",f={...n,location:p};return this.warn(t,`[HAPPY-PATH] ${r}`,f,o),s}},u=new vn});import{join as P,dirname as Wc,basename as jc}from"path";import{homedir as ms}from"os";import{existsSync as Fc,mkdirSync as Lm,readFileSync as Gc}from"fs";import{execSync as jm}from"child_process";import{fileURLToPath as Hc}from"url";function Jc(){return typeof __dirname<"u"?__dirname:Wc(Hc(import.meta.url))}function Kc(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let e=P(ms(),".claude-mem"),t=P(e,"settings.json");try{if(Fc(t)){let r=JSON.parse(Gc(t,"utf-8")),n=r.env??r;if(n.CLAUDE_MEM_DATA_DIR)return n.CLAUDE_MEM_DATA_DIR}}catch{}return e}var Hm,N,rt,Ut,Bc,Yc,Vc,zc,Zc,nt,Jm,qc,fs,Km,Bm,Ym,Vm,B,re=w(()=>{"use strict";G();Hm=Jc();N=Kc(),rt=process.env.CLAUDE_CONFIG_DIR||P(ms(),".claude"),Ut=P(rt,"plugins","marketplaces","thedotmack"),Bc=P(N,"archives"),Yc=P(N,"logs"),Vc=P(N,"trash"),zc=P(N,"backups"),Zc=P(N,"modes"),nt=P(N,"settings.json"),Jm=P(N,"claude-mem.db"),qc=P(N,"vector-db"),fs=P(N,"observer-sessions"),Km=jc(fs),Bm=P(rt,"settings.json"),Ym=P(rt,"commands"),Vm=P(rt,"CLAUDE.md"),B={dataDir:()=>N,workerPid:()=>P(N,"worker.pid"),settings:()=>P(N,"settings.json"),database:()=>P(N,"claude-mem.db"),chroma:()=>P(N,"chroma"),combinedCerts:()=>P(N,"combined_certs.pem"),transcriptsConfig:()=>P(N,"transcript-watch.json"),transcriptsState:()=>P(N,"transcript-watch-state.json"),corpora:()=>P(N,"corpora"),supervisorRegistry:()=>P(N,"supervisor.json"),envFile:()=>P(N,".env"),logsDir:()=>Yc,archives:()=>Bc,trash:()=>Vc,backups:()=>zc,modes:()=>Zc,vectorDb:()=>qc,observerSessions:()=>fs}});import{execFile as Xc}from"child_process";import{promisify as Qc}from"util";import{existsSync as Qm,readFileSync as _m,writeFileSync as $m,mkdirSync as ef,unlinkSync as tf}from"fs";import{userInfo as nf}from"os";import{join as sf}from"path";var lf,gs=w(()=>{"use strict";re();G();lf=Qc(Xc)});import{existsSync as kn,readFileSync as Es,writeFileSync as _c,mkdirSync as $c,chmodSync as hs}from"fs";function Ss(e){let t={};for(let r of e.split(`
97
- `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),s&&(t[s]=i)}return t}function el(e){let t=["# claude-mem credentials","# This file stores keys and gateway settings for the claude-mem memory agent","# Edit this file or use claude-mem settings to configure",""];for(let[r,n]of Object.entries(e))if(n){let o=/[\s#=]/.test(n);t.push(`${r}=${o?`"${n}"`:n}`)}return t.join(`
95
+ `)}debug(t,n,r,o){this.log(0,t,n,r,o)}info(t,n,r,o){this.log(1,t,n,r,o)}warn(t,n,r,o){this.log(2,t,n,r,o)}error(t,n,r,o){this.log(3,t,n,r,o)}dataIn(t,n,r,o){this.info(t,`\u2192 ${n}`,r,o)}dataOut(t,n,r,o){this.info(t,`\u2190 ${n}`,r,o)}success(t,n,r,o){this.info(t,`\u2713 ${n}`,r,o)}failure(t,n,r,o){this.error(t,`\u2717 ${n}`,r,o)}timing(t,n,r,o){this.info(t,`\u23F1 ${n}`,o,{duration:`${r}ms`})}happyPathError(t,n,r,o,s=""){let l=((new Error().stack||"").split(`
96
+ `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),p=l?`${l[1].split("/").pop()}:${l[2]}`:"unknown",f={...r,location:p};return this.warn(t,`[HAPPY-PATH] ${n}`,f,o),s}},u=new Mr});import{join as P,dirname as Xc,basename as Qc}from"path";import{homedir as hs}from"os";import{existsSync as _c,mkdirSync as Xm,readFileSync as $c}from"fs";import{execSync as _m}from"child_process";import{fileURLToPath as el}from"url";function tl(){return typeof __dirname<"u"?__dirname:Xc(el(import.meta.url))}function nl(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let e=P(hs(),".claude-mem"),t=P(e,"settings.json");try{if(_c(t)){let n=JSON.parse($c(t,"utf-8")),r=n.env??n;if(r.CLAUDE_MEM_DATA_DIR)return r.CLAUDE_MEM_DATA_DIR}}catch{}return e}var tf,A,rt,Lt,rl,ol,sl,il,al,ot,nf,cl,Es,rf,of,sf,af,Y,re=C(()=>{"use strict";H();tf=tl();A=nl(),rt=process.env.CLAUDE_CONFIG_DIR||P(hs(),".claude"),Lt=P(rt,"plugins","marketplaces","thedotmack"),rl=P(A,"archives"),ol=P(A,"logs"),sl=P(A,"trash"),il=P(A,"backups"),al=P(A,"modes"),ot=P(A,"settings.json"),nf=P(A,"claude-mem.db"),cl=P(A,"vector-db"),Es=P(A,"observer-sessions"),rf=Qc(Es),of=P(rt,"settings.json"),sf=P(rt,"commands"),af=P(rt,"CLAUDE.md"),Y={dataDir:()=>A,workerPid:()=>P(A,"worker.pid"),settings:()=>P(A,"settings.json"),database:()=>P(A,"claude-mem.db"),chroma:()=>P(A,"chroma"),combinedCerts:()=>P(A,"combined_certs.pem"),transcriptsConfig:()=>P(A,"transcript-watch.json"),transcriptsState:()=>P(A,"transcript-watch-state.json"),corpora:()=>P(A,"corpora"),supervisorRegistry:()=>P(A,"supervisor.json"),envFile:()=>P(A,".env"),logsDir:()=>ol,archives:()=>rl,trash:()=>sl,backups:()=>il,modes:()=>al,vectorDb:()=>cl,observerSessions:()=>Es}});import{execFile as ll}from"child_process";import{promisify as ul}from"util";import{existsSync as pf,readFileSync as mf,writeFileSync as ff,mkdirSync as gf,unlinkSync as hf}from"fs";import{userInfo as Sf}from"os";import{join as wf}from"path";var kf,Ss=C(()=>{"use strict";re();H();kf=ul(ll)});import{existsSync as Tr,readFileSync as ws,writeFileSync as dl,mkdirSync as pl,chmodSync as ys}from"fs";function Cs(e){let t={};for(let n of e.split(`
97
+ `)){let r=n.trim();if(!r||r.startsWith("#"))continue;let o=r.indexOf("=");if(o===-1)continue;let s=r.slice(0,o).trim(),i=r.slice(o+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),s&&(t[s]=i)}return t}function ml(e){let t=["# claude-mem credentials","# This file stores keys and gateway settings for the claude-mem memory agent","# Edit this file or use claude-mem settings to configure",""];for(let[n,r]of Object.entries(e))if(r){let o=/[\s#=]/.test(r);t.push(`${n}=${o?`"${r}"`:r}`)}return t.join(`
98
98
  `)+`
99
- `}function Lt(){if(!kn(Le))return{};try{let e=Es(Le,"utf-8"),t=Ss(e),r={};return t.ANTHROPIC_API_KEY&&(r.ANTHROPIC_API_KEY=t.ANTHROPIC_API_KEY),t.ANTHROPIC_BASE_URL&&(r.ANTHROPIC_BASE_URL=t.ANTHROPIC_BASE_URL),t.ANTHROPIC_AUTH_TOKEN&&(r.ANTHROPIC_AUTH_TOKEN=t.ANTHROPIC_AUTH_TOKEN),t.GEMINI_API_KEY&&(r.GEMINI_API_KEY=t.GEMINI_API_KEY),t.OPENROUTER_API_KEY&&(r.OPENROUTER_API_KEY=t.OPENROUTER_API_KEY),r}catch(e){return u.warn("ENV","Failed to load .env file",{path:Le},e instanceof Error?e:new Error(String(e))),{}}}function Wt(e){let t={};try{kn(B.dataDir())||$c(B.dataDir(),{recursive:!0,mode:448}),hs(B.dataDir(),448),t=kn(Le)?Ss(Es(Le,"utf-8")):{}}catch(n){let o=n instanceof Error?n:new Error(String(n));throw u.error("ENV","Failed to set up env directory or read existing env",{},o),o}let r={...t};e.ANTHROPIC_API_KEY!==void 0&&(e.ANTHROPIC_API_KEY?r.ANTHROPIC_API_KEY=e.ANTHROPIC_API_KEY:delete r.ANTHROPIC_API_KEY),e.ANTHROPIC_BASE_URL!==void 0&&(e.ANTHROPIC_BASE_URL?r.ANTHROPIC_BASE_URL=e.ANTHROPIC_BASE_URL:delete r.ANTHROPIC_BASE_URL),e.ANTHROPIC_AUTH_TOKEN!==void 0&&(e.ANTHROPIC_AUTH_TOKEN?r.ANTHROPIC_AUTH_TOKEN=e.ANTHROPIC_AUTH_TOKEN:delete r.ANTHROPIC_AUTH_TOKEN),e.GEMINI_API_KEY!==void 0&&(e.GEMINI_API_KEY?r.GEMINI_API_KEY=e.GEMINI_API_KEY:delete r.GEMINI_API_KEY),e.OPENROUTER_API_KEY!==void 0&&(e.OPENROUTER_API_KEY?r.OPENROUTER_API_KEY=e.OPENROUTER_API_KEY:delete r.OPENROUTER_API_KEY);try{_c(Le,el(r),{encoding:"utf-8",mode:384}),hs(Le,384)}catch(n){throw u.error("ENV","Failed to save .env file",{path:Le},n instanceof Error?n:new Error(String(n))),n}}var Le,ys=w(()=>{"use strict";G();re();gs();Le=B.envFile()});function vr(e){return process.platform==="win32"?Math.round(e*Q.WINDOWS_MULTIPLIER):e}var Q,jt=w(()=>{"use strict";Q={DEFAULT:3e5,HEALTH_CHECK:3e3,API_REQUEST:3e4,HOOK_READINESS_WAIT:1e4,POST_SPAWN_WAIT:15e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5}});function bn(e=process.env){let t={};for(let[r,n]of Object.entries(e))if(n!==void 0){if(ol.has(r)){t[r]=n;continue}rl.has(r)||nl.has(r)||tl.some(o=>r.startsWith(o))||(t[r]=n)}return t}var tl,rl,nl,ol,Mn=w(()=>{"use strict";tl=["CLAUDECODE_","CLAUDE_CODE_"],rl=new Set(["CLAUDECODE","CLAUDE_CODE_SESSION","CLAUDE_CODE_ENTRYPOINT","MCP_SESSION_ID"]),nl=new Set(["HTTP_PROXY","HTTPS_PROXY","ALL_PROXY","NO_PROXY","http_proxy","https_proxy","all_proxy","no_proxy","npm_config_proxy","npm_config_https_proxy"]),ol=new Set(["CLAUDE_CODE_OAUTH_TOKEN","CLAUDE_CODE_GIT_BASH_PATH","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX","ANTHROPIC_BEDROCK_BASE_URL","AWS_REGION","AWS_PROFILE","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","ANTHROPIC_VERTEX_PROJECT_ID","CLOUD_ML_REGION","GOOGLE_APPLICATION_CREDENTIALS"])});import{spawnSync as sl}from"child_process";import{existsSync as il,mkdirSync as ws,readFileSync as vs,writeFileSync as al}from"fs";import Cs from"path";function Ce(e){if(!Number.isInteger(e)||e<0||e===0)return!1;try{return process.kill(e,0),!0}catch(t){if(t instanceof Error){let r=t.code;return r==="EPERM"?!0:(u.debug("SYSTEM","PID check failed",{pid:e,code:r}),!1)}return u.warn("SYSTEM","PID check threw non-Error",{pid:e,error:String(t)}),!1}}function ks(e){if(!Number.isInteger(e)||e<=0)return null;if(process.platform==="linux")try{let t=vs(`/proc/${e}/stat`,"utf-8"),r=t.lastIndexOf(") ");if(r<0)return null;let o=t.slice(r+2).split(" ")[19];return o&&/^\d+$/.test(o)?o:null}catch(t){return u.debug("SYSTEM","captureProcessStartToken: /proc read failed",{pid:e,error:t instanceof Error?t.message:String(t)}),null}if(process.platform==="win32")return null;try{let t=sl("ps",["-p",String(e),"-o","lstart="],{encoding:"utf-8",timeout:2e3,env:{...process.env,LC_ALL:"C",LANG:"C"}});if(t.status!==0)return null;let r=t.stdout.trim();return r.length>0?r:null}catch(t){return u.debug("SYSTEM","captureProcessStartToken: ps exec failed",{pid:e,error:t instanceof Error?t.message:String(t)}),null}}function Rn(e){if(!e||!Ce(e.pid))return!1;if(!e.startToken)return!0;let t=ks(e.pid);if(t===null)return!0;let r=t===e.startToken;return r||u.debug("SYSTEM","verifyPidFileOwnership: start-token mismatch (PID reused)",{pid:e.pid,stored:e.startToken,current:t}),r}function kr(){return Tn||(Tn=new In),Tn}function xn(){let e=dl.shift();e&&e()}var cl,ll,ul,In,Tn,dl,Ft=w(()=>{"use strict";tt();G();Mn();re();cl=5e3,ll=1e3,ul=B.supervisorRegistry();In=class{registryPath;entries=new Map;runtimeProcesses=new Map;initialized=!1;constructor(t=ul){this.registryPath=t}initialize(){if(this.initialized)return;if(this.initialized=!0,ws(Cs.dirname(this.registryPath),{recursive:!0}),!il(this.registryPath)){this.persist();return}try{let n=JSON.parse(vs(this.registryPath,"utf-8")).processes??{};for(let[o,s]of Object.entries(n))this.entries.set(o,s)}catch(r){r instanceof Error?u.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath},r):u.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath,error:String(r)}),this.entries.clear()}let t=this.pruneDeadEntries();t>0&&u.info("SYSTEM","Removed dead processes from supervisor registry",{removed:t}),this.persist()}register(t,r,n){this.initialize(),this.entries.set(t,r),n&&this.runtimeProcesses.set(t,n),this.persist()}unregister(t){this.initialize();let r=this.entries.get(t);this.entries.delete(t),this.runtimeProcesses.delete(t),this.persist(),r?.type==="sdk"&&xn()}clear(){this.entries.clear(),this.runtimeProcesses.clear(),this.persist()}getAll(){return this.initialize(),Array.from(this.entries.entries()).map(([t,r])=>({id:t,...r})).sort((t,r)=>{let n=Date.parse(t.startedAt),o=Date.parse(r.startedAt);return(Number.isNaN(n)?0:n)-(Number.isNaN(o)?0:o)})}getBySession(t){let r=String(t);return this.getAll().filter(n=>n.sessionId!==void 0&&String(n.sessionId)===r)}getRuntimeProcess(t){return this.runtimeProcesses.get(t)}getByPid(t){return this.getAll().filter(r=>r.pid===t)}pruneDeadEntries(){this.initialize();let t=0,r=0;for(let[n,o]of this.entries)Ce(o.pid)||(this.entries.delete(n),this.runtimeProcesses.delete(n),t+=1,o.type==="sdk"&&(r+=1));t>0&&this.persist();for(let n=0;n<r;n+=1)xn();return t}async reapSession(t){this.initialize();let r=this.getBySession(t);if(r.length===0)return 0;let n=typeof t=="number"?t:Number(t)||void 0;u.info("SYSTEM",`Reaping ${r.length} process(es) for session ${t}`,{sessionId:n,pids:r.map(a=>a.pid)});let o=r.filter(a=>Ce(a.pid));for(let a of o)try{typeof a.pgid=="number"&&process.platform!=="win32"?process.kill(-a.pgid,"SIGTERM"):process.kill(a.pid,"SIGTERM")}catch(c){c instanceof Error?c.code!=="ESRCH"&&u.debug("SYSTEM",`Failed to SIGTERM session process PID ${a.pid}`,{pid:a.pid,pgid:a.pgid},c):u.warn("SYSTEM",`Failed to SIGTERM session process PID ${a.pid} (non-Error)`,{pid:a.pid,pgid:a.pgid,error:String(c)})}let s=Date.now()+cl;for(;Date.now()<s&&o.filter(c=>Ce(c.pid)).length!==0;)await new Promise(c=>setTimeout(c,100));let i=o.filter(a=>Ce(a.pid));for(let a of i){u.warn("SYSTEM",`Session process PID ${a.pid} did not exit after SIGTERM, sending SIGKILL`,{pid:a.pid,pgid:a.pgid,sessionId:n});try{typeof a.pgid=="number"&&process.platform!=="win32"?process.kill(-a.pgid,"SIGKILL"):process.kill(a.pid,"SIGKILL")}catch(c){c instanceof Error?c.code!=="ESRCH"&&u.debug("SYSTEM",`Failed to SIGKILL session process PID ${a.pid}`,{pid:a.pid,pgid:a.pgid},c):u.warn("SYSTEM",`Failed to SIGKILL session process PID ${a.pid} (non-Error)`,{pid:a.pid,pgid:a.pgid,error:String(c)})}}if(i.length>0){let a=Date.now()+ll;for(;Date.now()<a&&i.filter(l=>Ce(l.pid)).length!==0;)await new Promise(l=>setTimeout(l,100))}for(let a of r)this.entries.delete(a.id),this.runtimeProcesses.delete(a.id);this.persist();for(let a of r)a.type==="sdk"&&xn();return u.info("SYSTEM",`Reaped ${r.length} process(es) for session ${t}`,{sessionId:n,reaped:r.length}),r.length}persist(){let t={processes:Object.fromEntries(this.entries.entries())};ws(Cs.dirname(this.registryPath),{recursive:!0}),al(this.registryPath,JSON.stringify(t,null,2))}},Tn=null;dl=[]});import{execFile as pl}from"child_process";import{rmSync as ml}from"fs";import{promisify as fl}from"util";async function Ts(e){let t=e.currentPid??process.pid,r=e.pidFilePath??hl,n=e.registry.getAll(),o=[...n].filter(i=>i.pid!==t).sort((i,a)=>Date.parse(a.startedAt)-Date.parse(i.startedAt));for(let i of o){if(!Ce(i.pid)){e.registry.unregister(i.id);continue}try{await Ms(i,"SIGTERM")}catch(a){a instanceof Error?u.debug("SYSTEM","Failed to send SIGTERM to child process",{pid:i.pid,pgid:i.pgid,type:i.type},a):u.warn("SYSTEM","Failed to send SIGTERM to child process (non-Error)",{pid:i.pid,pgid:i.pgid,type:i.type,error:String(a)})}}await bs(o,5e3);let s=o.filter(i=>Ce(i.pid));for(let i of s)try{await Ms(i,"SIGKILL")}catch(a){a instanceof Error?u.debug("SYSTEM","Failed to force kill child process",{pid:i.pid,pgid:i.pgid,type:i.type},a):u.warn("SYSTEM","Failed to force kill child process (non-Error)",{pid:i.pid,pgid:i.pgid,type:i.type,error:String(a)})}await bs(s,1e3);for(let i of o)e.registry.unregister(i.id);for(let i of n.filter(a=>a.pid===t))e.registry.unregister(i.id);try{ml(r,{force:!0})}catch(i){i instanceof Error?u.debug("SYSTEM","Failed to remove PID file during shutdown",{pidFilePath:r},i):u.warn("SYSTEM","Failed to remove PID file during shutdown (non-Error)",{pidFilePath:r,error:String(i)})}e.registry.pruneDeadEntries()}async function bs(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.filter(o=>Ce(o.pid)).length===0)return;await new Promise(o=>setTimeout(o,100))}}async function Ms(e,t){let{pid:r,pgid:n}=e;if(process.platform!=="win32"){if(typeof n=="number")try{process.kill(-n,t);return}catch(i){if((i instanceof Error?i.code:void 0)!=="ESRCH")throw i}try{process.kill(r,t)}catch(i){if((i instanceof Error?i.code:void 0)!=="ESRCH")throw i}return}if(t==="SIGTERM"){try{process.kill(r,t)}catch(i){if(i instanceof Error&&i.code==="ESRCH")return;throw i}return}let o=await El();if(o){await new Promise((i,a)=>{o(r,t,c=>{if(!c){i();return}if(c.code==="ESRCH"){i();return}a(c)})});return}let s=["/PID",String(r),"/T"];t==="SIGKILL"&&s.push("/F"),await gl("taskkill",s,{timeout:Q.POWERSHELL_COMMAND,windowsHide:!0})}async function El(){let e="tree-kill";try{let t=await import(e);return t.default??t}catch(t){return u.debug("SYSTEM","tree-kill module not available, using fallback",{},t instanceof Error?t:void 0),null}}var gl,hl,xs=w(()=>{"use strict";G();jt();Ft();re();gl=fl(pl),hl=B.workerPid()});function Sl(){let t=kr().pruneDeadEntries();t>0&&u.info("SYSTEM",`Health check: pruned ${t} dead process(es) from registry`)}function Rs(){ot===null&&(ot=setInterval(Sl,Is),ot.unref(),u.debug("SYSTEM","Health checker started",{intervalMs:Is}))}function Os(){ot!==null&&(clearInterval(ot),ot=null,u.debug("SYSTEM","Health checker stopped"))}var Is,ot,Ps=w(()=>{"use strict";G();Ft();Is=3e4,ot=null});import{existsSync as yl,readFileSync as wl,rmSync as As}from"fs";function Ns(){return vl}function br(e={}){let t=e.pidFilePath??Cl;if(!yl(t))return"missing";let r=null;try{r=JSON.parse(wl(t,"utf-8"))}catch(o){return o instanceof Error?u.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:t},o):u.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:t,error:String(o)}),As(t,{force:!0}),"invalid"}return Rn(r)&&r?((e.logAlive??!0)&&u.info("SYSTEM","Worker already running (PID alive)",{existingPid:r.pid,existingPort:r.port,startedAt:r.startedAt}),"alive"):(u.info("SYSTEM","Removing stale PID file (worker process is dead or PID has been reused)",{pid:r?.pid,port:r?.port,startedAt:r?.startedAt}),As(t,{force:!0}),"stale")}var Cl,On,vl,Pn=w(()=>{"use strict";G();Ft();xs();Ps();re();Cl=B.workerPid(),On=class{registry;started=!1;stopPromise=null;signalHandlersRegistered=!1;shutdownInitiated=!1;shutdownHandler=null;constructor(t){this.registry=t}async start(){if(this.started)return;if(this.registry.initialize(),br({logAlive:!1})==="alive")throw new Error("Worker already running");this.started=!0,Rs()}configureSignalHandlers(t){if(this.shutdownHandler=t,this.signalHandlersRegistered)return;this.signalHandlersRegistered=!0;let r=async n=>{if(this.shutdownInitiated){u.warn("SYSTEM",`Received ${n} but shutdown already in progress`);return}this.shutdownInitiated=!0,u.info("SYSTEM",`Received ${n}, shutting down...`);try{this.shutdownHandler?await this.shutdownHandler():await this.stop()}catch(o){o instanceof Error?u.error("SYSTEM","Error during shutdown",{},o):u.error("SYSTEM","Error during shutdown (non-Error)",{error:String(o)});try{await this.stop()}catch(s){s instanceof Error?u.debug("SYSTEM","Supervisor shutdown fallback failed",{},s):u.debug("SYSTEM","Supervisor shutdown fallback failed",{error:String(s)})}}process.exit(0)};process.on("SIGTERM",()=>{r("SIGTERM")}),process.on("SIGINT",()=>{r("SIGINT")}),process.platform!=="win32"&&(process.argv.includes("--daemon")?process.on("SIGHUP",()=>{u.debug("SYSTEM","Ignoring SIGHUP in daemon mode")}):process.on("SIGHUP",()=>{r("SIGHUP")}))}async stop(){if(this.stopPromise){await this.stopPromise;return}Os(),this.stopPromise=Ts({registry:this.registry,currentPid:process.pid}).finally(()=>{this.started=!1,this.stopPromise=null}),await this.stopPromise}assertCanSpawn(t){if(this.stopPromise!==null)throw new Error(`Supervisor is shutting down, refusing to spawn ${t}`)}registerProcess(t,r,n){this.registry.register(t,r,n)}unregisterProcess(t){this.registry.unregister(t)}getRegistry(){return this.registry}},vl=new On(kr())});import st from"path";import{homedir as kl}from"os";import{existsSync as Nn,writeFileSync as Qf,readFileSync as _f,unlinkSync as $f,mkdirSync as eg,rmSync as tg,statSync as rg,utimesSync as bl,copyFileSync as ng}from"fs";import{exec as Ml,execSync as Ls,spawnSync as sg}from"child_process";import{promisify as Tl}from"util";function Us(e){return e?/(^|[\\/])bun(\.exe)?$/i.test(e.trim()):!1}function xl(e,t){let r=t==="win32"?`where ${e}`:`which ${e}`,n;try{n=Ls(r,{stdio:["ignore","pipe","ignore"],encoding:"utf-8",windowsHide:!0})}catch(s){return s instanceof Error?u.debug("SYSTEM",`Binary lookup failed for ${e}`,{command:r},s):u.debug("SYSTEM",`Binary lookup failed for ${e}`,{command:r},new Error(String(s))),null}return n.split(/\r?\n/).map(s=>s.trim()).find(s=>s.length>0)||null}function Il(e={}){let t=Object.keys(e).length===0;if(t&&An!==void 0)return An;let r=Rl(e);return t&&r!==null&&(An=r),r}function Rl(e){let t=e.platform??process.platform,r=e.execPath??process.execPath;if(Us(r))return r;let n=e.env??process.env,o=e.homeDirectory??kl(),s=e.pathExists??Nn,i=e.lookupInPath??xl,a=t==="win32"?[n.BUN,n.BUN_PATH,st.join(o,".bun","bin","bun.exe"),st.join(o,".bun","bin","bun"),n.USERPROFILE?st.join(n.USERPROFILE,".bun","bin","bun.exe"):void 0,n.LOCALAPPDATA?st.join(n.LOCALAPPDATA,"bun","bun.exe"):void 0,n.LOCALAPPDATA?st.join(n.LOCALAPPDATA,"bun","bin","bun.exe"):void 0]:[n.BUN,n.BUN_PATH,st.join(o,".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun","/usr/bin/bun","/snap/bin/bun"];for(let c of a){let l=c?.trim();if(l&&(Us(l)&&s(l)||l.toLowerCase()==="bun"))return l}return i("bun",t)}function We(e){return process.platform==="win32"?Math.round(e*2):e}function Ws(e,t,r={}){Ns().assertCanSpawn("worker daemon");let n=bn({...process.env,CLAUDE_MEM_WORKER_PORT:String(t),...r}),o=Il();if(!o){u.error("SYSTEM","Bun runtime not found \u2014 install from https://bun.sh and ensure it is on PATH or set BUN env var. The worker daemon requires Bun because it uses bun:sqlite.");return}if(process.platform==="win32"){let p=`Start-Process -FilePath '${o.replace(/'/g,"''")}' -ArgumentList @('${e.replace(/'/g,"''")}','--daemon') -WindowStyle Hidden`,f=Buffer.from(p,"utf16le").toString("base64");try{return Ls(`powershell -NoProfile -EncodedCommand ${f}`,{stdio:"ignore",windowsHide:!0,env:n}),0}catch(h){u.error("SYSTEM","Failed to spawn worker daemon on Windows",{runtimePath:o},h instanceof Error?h:new Error(String(h)));return}}let s="/usr/bin/setsid",i=Nn(s),l=we(i?s:o,i?[o,e,"--daemon"]:[e,"--daemon"],{detached:!0,stdio:"ignore",env:n});if(l.pid!==void 0)return l.unref(),l.pid}function js(){try{if(!Nn(Ds))return;let e=new Date;bl(Ds,e,e)}catch{}}function Fs(){return br({logAlive:!1})}var mg,fg,Ds,An,Gs=w(()=>{"use strict";tt();G();jt();Mn();Pn();re();Ft();mg=Tl(Ml),fg=B.dataDir(),Ds=B.workerPid()});import Sg from"path";import Ol from"net";import{readFileSync as Cg}from"fs";async function Pl(e,t,r="GET"){let n=await fetch(`http://127.0.0.1:${e}${t}`,{method:r}),o="";try{o=await n.text()}catch{}return{ok:n.ok,statusCode:n.status,body:o}}async function Hs(e){if(process.platform==="win32")try{return(await fetch(`http://127.0.0.1:${e}/api/health`)).ok}catch(t){return t instanceof Error?u.debug("SYSTEM","Windows health check failed (port not in use)",{},t):u.debug("SYSTEM","Windows health check failed (port not in use)",{error:String(t)}),!1}return new Promise(t=>{let r=Ol.createServer();r.once("error",n=>{n.code==="EADDRINUSE"?t(!0):t(!1)}),r.once("listening",()=>{r.close(()=>t(!1))}),r.listen(e,"127.0.0.1")})}async function Js(e,t,r,n){let o=Date.now();for(;Date.now()-o<r;){try{if((await Pl(e,t)).ok)return!0}catch(s){s instanceof Error?u.debug("SYSTEM",n,{},s):u.debug("SYSTEM",n,{error:String(s)})}await new Promise(s=>setTimeout(s,500))}return!1}function Gt(e,t=3e4){return Js(e,"/api/health",t,"Service not ready yet, will retry")}function Ht(e,t=3e4){return Js(e,"/api/readiness",t,"Worker not ready yet, will retry")}var Ks=w(()=>{"use strict";G();re()});import Bs from"path";import{existsSync as Dn,mkdirSync as Al,writeFileSync as Nl,unlinkSync as Dl,statSync as Ul}from"fs";function Un(){return Bs.join(K.get("CLAUDE_MEM_DATA_DIR"),".worker-start-attempted")}function Wl(){if(process.platform!=="win32")return!1;let e=Un();if(!Dn(e))return!1;try{let t=Ul(e).mtimeMs;return Date.now()-t<Ll}catch(t){return t instanceof Error?u.debug("SYSTEM","Could not stat worker spawn lock file",{},t):u.debug("SYSTEM","Could not stat worker spawn lock file",{error:String(t)}),!1}}function jl(){if(process.platform==="win32")try{let e=Un();Al(Bs.dirname(e),{recursive:!0}),Nl(e,"","utf-8")}catch{}}function Mr(){if(process.platform==="win32")try{let e=Un();Dn(e)&&Dl(e)}catch{}}async function Ys(e,t){if(!t)return u.error("SYSTEM","ensureWorkerStarted called with empty workerScriptPath \u2014 caller bug"),"dead";if(!Dn(t))return u.error("SYSTEM","ensureWorkerStarted: worker script not found at expected path \u2014 likely a partial install or build artifact missing",{workerScriptPath:t}),"dead";if(Fs()==="alive"){if(u.info("SYSTEM","Worker PID file points to a live process, skipping duplicate spawn"),await Gt(e,We(Q.PORT_IN_USE_WAIT))){Mr();let c=await Ht(e,We(Q.READINESS_WAIT));return u.info("SYSTEM","Worker became healthy while waiting on live PID"),c?"ready":"warming"}return u.warn("SYSTEM","Live PID detected but worker did not become healthy before timeout \u2014 likely still starting"),"warming"}if(await Gt(e,1e3)){Mr();let a=await Ht(e,We(Q.READINESS_WAIT));return a||u.warn("SYSTEM","Worker is alive but readiness timed out \u2014 proceeding anyway"),u.info("SYSTEM","Worker already running and healthy"),a?"ready":"warming"}if(await Hs(e)){if(u.info("SYSTEM","Port in use, waiting for worker to become healthy"),await Gt(e,We(Q.PORT_IN_USE_WAIT))){Mr();let c=await Ht(e,We(Q.READINESS_WAIT));return u.info("SYSTEM","Worker is now healthy"),c?"ready":"warming"}return u.error("SYSTEM","Port in use but worker not responding to health checks"),"dead"}if(Wl())return u.warn("SYSTEM","Worker unavailable on Windows \u2014 skipping spawn (recent attempt failed within cooldown)"),"dead";if(u.info("SYSTEM","Starting worker daemon",{workerScriptPath:t}),jl(),Ws(t,e)===void 0)return u.error("SYSTEM","Failed to spawn worker daemon"),"dead";if(!await Gt(e,We(Q.POST_SPAWN_WAIT)))return u.warn("SYSTEM","Worker spawned but health endpoint not responding within window \u2014 likely still starting in background"),"warming";let i=await Ht(e,We(Q.READINESS_WAIT));return i||u.warn("SYSTEM","Worker is alive but readiness timed out \u2014 proceeding anyway"),Mr(),js(),u.info("SYSTEM","Worker started successfully"),i?"ready":"warming"}var Ll,Vs=w(()=>{"use strict";G();jt();Ue();Gs();Ks();Ll=120*1e3});import{existsSync as at,readFileSync as zs,writeFileSync as Fl}from"fs";import{execSync as Jt,spawnSync as Tr}from"child_process";import{join as ge}from"path";import{homedir as it}from"os";function Zs(e){return ge(e,".install-version")}function Ln(){try{if(Tr("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:ae}).status===0)return"bun"}catch{}return Gl.find(at)||null}function qs(){return Ln()!==null}function Xs(){let e=Ln();if(!e)return null;try{let t=Tr(e,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:ae});return t.status===0?t.stdout.trim():null}catch{return null}}function Wn(){try{if(Tr("uv",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:ae}).status===0)return"uv"}catch{}return Hl.find(at)||null}function Qs(){return Wn()!==null}function Jl(){let e=Wn();if(!e)return null;try{let t=Tr(e,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:ae});return t.status===0?t.stdout.trim():null}catch{return null}}function jn(e){if(e&&typeof e=="object"){let t=e,r=[];t.message&&r.push(t.message);let n=t.stderr?t.stderr.toString().trim():"";n&&r.push(`stderr: ${n}`);let o=t.stdout?t.stdout.toString().trim():"";return!n&&o&&r.push(`stdout: ${o}`),r.join(`
100
- `)}return String(e)}function Kl(){try{if(ae?Jt('powershell -c "irm bun.sh/install.ps1 | iex"',{stdio:"pipe",shell:process.env.ComSpec??"cmd.exe"}):Jt("curl -fsSL https://bun.sh/install | bash",{stdio:"pipe",shell:"/bin/bash"}),!qs())throw new Error("Bun installation completed but binary not found. Please restart your terminal and try again.")}catch(e){let t=ae?` - winget install Oven-sh.Bun
99
+ `}function Wt(){if(!Tr(We))return{};try{let e=ws(We,"utf-8"),t=Cs(e),n={};return t.ANTHROPIC_API_KEY&&(n.ANTHROPIC_API_KEY=t.ANTHROPIC_API_KEY),t.ANTHROPIC_BASE_URL&&(n.ANTHROPIC_BASE_URL=t.ANTHROPIC_BASE_URL),t.ANTHROPIC_AUTH_TOKEN&&(n.ANTHROPIC_AUTH_TOKEN=t.ANTHROPIC_AUTH_TOKEN),t.GEMINI_API_KEY&&(n.GEMINI_API_KEY=t.GEMINI_API_KEY),t.OPENROUTER_API_KEY&&(n.OPENROUTER_API_KEY=t.OPENROUTER_API_KEY),n}catch(e){return u.warn("ENV","Failed to load .env file",{path:We},e instanceof Error?e:new Error(String(e))),{}}}function jt(e){let t={};try{Tr(Y.dataDir())||pl(Y.dataDir(),{recursive:!0,mode:448}),ys(Y.dataDir(),448),t=Tr(We)?Cs(ws(We,"utf-8")):{}}catch(r){let o=r instanceof Error?r:new Error(String(r));throw u.error("ENV","Failed to set up env directory or read existing env",{},o),o}let n={...t};e.ANTHROPIC_API_KEY!==void 0&&(e.ANTHROPIC_API_KEY?n.ANTHROPIC_API_KEY=e.ANTHROPIC_API_KEY:delete n.ANTHROPIC_API_KEY),e.ANTHROPIC_BASE_URL!==void 0&&(e.ANTHROPIC_BASE_URL?n.ANTHROPIC_BASE_URL=e.ANTHROPIC_BASE_URL:delete n.ANTHROPIC_BASE_URL),e.ANTHROPIC_AUTH_TOKEN!==void 0&&(e.ANTHROPIC_AUTH_TOKEN?n.ANTHROPIC_AUTH_TOKEN=e.ANTHROPIC_AUTH_TOKEN:delete n.ANTHROPIC_AUTH_TOKEN),e.GEMINI_API_KEY!==void 0&&(e.GEMINI_API_KEY?n.GEMINI_API_KEY=e.GEMINI_API_KEY:delete n.GEMINI_API_KEY),e.OPENROUTER_API_KEY!==void 0&&(e.OPENROUTER_API_KEY?n.OPENROUTER_API_KEY=e.OPENROUTER_API_KEY:delete n.OPENROUTER_API_KEY);try{dl(We,ml(n),{encoding:"utf-8",mode:384}),ys(We,384)}catch(r){throw u.error("ENV","Failed to save .env file",{path:We},r instanceof Error?r:new Error(String(r))),r}}var We,vs=C(()=>{"use strict";H();re();Ss();We=Y.envFile()});function bn(e){return process.platform==="win32"?Math.round(e*Q.WINDOWS_MULTIPLIER):e}var Q,Ft=C(()=>{"use strict";Q={DEFAULT:3e5,HEALTH_CHECK:3e3,API_REQUEST:3e4,HOOK_READINESS_WAIT:1e4,POST_SPAWN_WAIT:15e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5}});function xr(e=process.env){let t={};for(let[n,r]of Object.entries(e))if(r!==void 0){if(El.has(n)){t[n]=r;continue}gl.has(n)||hl.has(n)||fl.some(o=>n.startsWith(o))||(t[n]=r)}return t}var fl,gl,hl,El,Ir=C(()=>{"use strict";fl=["CLAUDECODE_","CLAUDE_CODE_"],gl=new Set(["CLAUDECODE","CLAUDE_CODE_SESSION","CLAUDE_CODE_ENTRYPOINT","MCP_SESSION_ID"]),hl=new Set(["HTTP_PROXY","HTTPS_PROXY","ALL_PROXY","NO_PROXY","http_proxy","https_proxy","all_proxy","no_proxy","npm_config_proxy","npm_config_https_proxy"]),El=new Set(["CLAUDE_CODE_OAUTH_TOKEN","CLAUDE_CODE_GIT_BASH_PATH","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX","ANTHROPIC_BEDROCK_BASE_URL","AWS_REGION","AWS_PROFILE","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","ANTHROPIC_VERTEX_PROJECT_ID","CLOUD_ML_REGION","GOOGLE_APPLICATION_CREDENTIALS"])});import{spawnSync as Sl}from"child_process";import{existsSync as yl,mkdirSync as ks,readFileSync as Ms,writeFileSync as wl}from"fs";import bs from"path";function Ce(e){if(!Number.isInteger(e)||e<0||e===0)return!1;try{return process.kill(e,0),!0}catch(t){if(t instanceof Error){let n=t.code;return n==="EPERM"?!0:(u.debug("SYSTEM","PID check failed",{pid:e,code:n}),!1)}return u.warn("SYSTEM","PID check threw non-Error",{pid:e,error:String(t)}),!1}}function Ts(e){if(!Number.isInteger(e)||e<=0)return null;if(process.platform==="linux")try{let t=Ms(`/proc/${e}/stat`,"utf-8"),n=t.lastIndexOf(") ");if(n<0)return null;let o=t.slice(n+2).split(" ")[19];return o&&/^\d+$/.test(o)?o:null}catch(t){return u.debug("SYSTEM","captureProcessStartToken: /proc read failed",{pid:e,error:t instanceof Error?t.message:String(t)}),null}if(process.platform==="win32")return null;try{let t=Sl("ps",["-p",String(e),"-o","lstart="],{encoding:"utf-8",timeout:2e3,env:{...process.env,LC_ALL:"C",LANG:"C"}});if(t.status!==0)return null;let n=t.stdout.trim();return n.length>0?n:null}catch(t){return u.debug("SYSTEM","captureProcessStartToken: ps exec failed",{pid:e,error:t instanceof Error?t.message:String(t)}),null}}function Ar(e){if(!e||!Ce(e.pid))return!1;if(!e.startToken)return!0;let t=Ts(e.pid);if(t===null)return!0;let n=t===e.startToken;return n||u.debug("SYSTEM","verifyPidFileOwnership: start-token mismatch (PID reused)",{pid:e.pid,stored:e.startToken,current:t}),n}function Mn(){return Rr||(Rr=new Pr),Rr}function Or(){let e=bl.shift();e&&e()}var Cl,vl,kl,Pr,Rr,bl,Gt=C(()=>{"use strict";nt();H();Ir();re();Cl=5e3,vl=1e3,kl=Y.supervisorRegistry();Pr=class{registryPath;entries=new Map;runtimeProcesses=new Map;initialized=!1;constructor(t=kl){this.registryPath=t}initialize(){if(this.initialized)return;if(this.initialized=!0,ks(bs.dirname(this.registryPath),{recursive:!0}),!yl(this.registryPath)){this.persist();return}try{let r=JSON.parse(Ms(this.registryPath,"utf-8")).processes??{};for(let[o,s]of Object.entries(r))this.entries.set(o,s)}catch(n){n instanceof Error?u.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath},n):u.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath,error:String(n)}),this.entries.clear()}let t=this.pruneDeadEntries();t>0&&u.info("SYSTEM","Removed dead processes from supervisor registry",{removed:t}),this.persist()}register(t,n,r){this.initialize(),this.entries.set(t,n),r&&this.runtimeProcesses.set(t,r),this.persist()}unregister(t){this.initialize();let n=this.entries.get(t);this.entries.delete(t),this.runtimeProcesses.delete(t),this.persist(),n?.type==="sdk"&&Or()}clear(){this.entries.clear(),this.runtimeProcesses.clear(),this.persist()}getAll(){return this.initialize(),Array.from(this.entries.entries()).map(([t,n])=>({id:t,...n})).sort((t,n)=>{let r=Date.parse(t.startedAt),o=Date.parse(n.startedAt);return(Number.isNaN(r)?0:r)-(Number.isNaN(o)?0:o)})}getBySession(t){let n=String(t);return this.getAll().filter(r=>r.sessionId!==void 0&&String(r.sessionId)===n)}getRuntimeProcess(t){return this.runtimeProcesses.get(t)}getByPid(t){return this.getAll().filter(n=>n.pid===t)}pruneDeadEntries(){this.initialize();let t=0,n=0;for(let[r,o]of this.entries)Ce(o.pid)||(this.entries.delete(r),this.runtimeProcesses.delete(r),t+=1,o.type==="sdk"&&(n+=1));t>0&&this.persist();for(let r=0;r<n;r+=1)Or();return t}async reapSession(t){this.initialize();let n=this.getBySession(t);if(n.length===0)return 0;let r=typeof t=="number"?t:Number(t)||void 0;u.info("SYSTEM",`Reaping ${n.length} process(es) for session ${t}`,{sessionId:r,pids:n.map(a=>a.pid)});let o=n.filter(a=>Ce(a.pid));for(let a of o)try{typeof a.pgid=="number"&&process.platform!=="win32"?process.kill(-a.pgid,"SIGTERM"):process.kill(a.pid,"SIGTERM")}catch(c){c instanceof Error?c.code!=="ESRCH"&&u.debug("SYSTEM",`Failed to SIGTERM session process PID ${a.pid}`,{pid:a.pid,pgid:a.pgid},c):u.warn("SYSTEM",`Failed to SIGTERM session process PID ${a.pid} (non-Error)`,{pid:a.pid,pgid:a.pgid,error:String(c)})}let s=Date.now()+Cl;for(;Date.now()<s&&o.filter(c=>Ce(c.pid)).length!==0;)await new Promise(c=>setTimeout(c,100));let i=o.filter(a=>Ce(a.pid));for(let a of i){u.warn("SYSTEM",`Session process PID ${a.pid} did not exit after SIGTERM, sending SIGKILL`,{pid:a.pid,pgid:a.pgid,sessionId:r});try{typeof a.pgid=="number"&&process.platform!=="win32"?process.kill(-a.pgid,"SIGKILL"):process.kill(a.pid,"SIGKILL")}catch(c){c instanceof Error?c.code!=="ESRCH"&&u.debug("SYSTEM",`Failed to SIGKILL session process PID ${a.pid}`,{pid:a.pid,pgid:a.pgid},c):u.warn("SYSTEM",`Failed to SIGKILL session process PID ${a.pid} (non-Error)`,{pid:a.pid,pgid:a.pgid,error:String(c)})}}if(i.length>0){let a=Date.now()+vl;for(;Date.now()<a&&i.filter(l=>Ce(l.pid)).length!==0;)await new Promise(l=>setTimeout(l,100))}for(let a of n)this.entries.delete(a.id),this.runtimeProcesses.delete(a.id);this.persist();for(let a of n)a.type==="sdk"&&Or();return u.info("SYSTEM",`Reaped ${n.length} process(es) for session ${t}`,{sessionId:r,reaped:n.length}),n.length}persist(){let t={processes:Object.fromEntries(this.entries.entries())};ks(bs.dirname(this.registryPath),{recursive:!0}),wl(this.registryPath,JSON.stringify(t,null,2))}},Rr=null;bl=[]});import{execFile as Ml}from"child_process";import{rmSync as Tl}from"fs";import{promisify as xl}from"util";async function Rs(e){let t=e.currentPid??process.pid,n=e.pidFilePath??Rl,r=e.registry.getAll(),o=[...r].filter(i=>i.pid!==t).sort((i,a)=>Date.parse(a.startedAt)-Date.parse(i.startedAt));for(let i of o){if(!Ce(i.pid)){e.registry.unregister(i.id);continue}try{await Is(i,"SIGTERM")}catch(a){a instanceof Error?u.debug("SYSTEM","Failed to send SIGTERM to child process",{pid:i.pid,pgid:i.pgid,type:i.type},a):u.warn("SYSTEM","Failed to send SIGTERM to child process (non-Error)",{pid:i.pid,pgid:i.pgid,type:i.type,error:String(a)})}}await xs(o,5e3);let s=o.filter(i=>Ce(i.pid));for(let i of s)try{await Is(i,"SIGKILL")}catch(a){a instanceof Error?u.debug("SYSTEM","Failed to force kill child process",{pid:i.pid,pgid:i.pgid,type:i.type},a):u.warn("SYSTEM","Failed to force kill child process (non-Error)",{pid:i.pid,pgid:i.pgid,type:i.type,error:String(a)})}await xs(s,1e3);for(let i of o)e.registry.unregister(i.id);for(let i of r.filter(a=>a.pid===t))e.registry.unregister(i.id);try{Tl(n,{force:!0})}catch(i){i instanceof Error?u.debug("SYSTEM","Failed to remove PID file during shutdown",{pidFilePath:n},i):u.warn("SYSTEM","Failed to remove PID file during shutdown (non-Error)",{pidFilePath:n,error:String(i)})}e.registry.pruneDeadEntries()}async function xs(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(e.filter(o=>Ce(o.pid)).length===0)return;await new Promise(o=>setTimeout(o,100))}}async function Is(e,t){let{pid:n,pgid:r}=e;if(process.platform!=="win32"){if(typeof r=="number")try{process.kill(-r,t);return}catch(i){if((i instanceof Error?i.code:void 0)!=="ESRCH")throw i}try{process.kill(n,t)}catch(i){if((i instanceof Error?i.code:void 0)!=="ESRCH")throw i}return}if(t==="SIGTERM"){try{process.kill(n,t)}catch(i){if(i instanceof Error&&i.code==="ESRCH")return;throw i}return}let o=await Ol();if(o){await new Promise((i,a)=>{o(n,t,c=>{if(!c){i();return}if(c.code==="ESRCH"){i();return}a(c)})});return}let s=["/PID",String(n),"/T"];t==="SIGKILL"&&s.push("/F"),await Il("taskkill",s,{timeout:Q.POWERSHELL_COMMAND,windowsHide:!0})}async function Ol(){let e="tree-kill";try{let t=await import(e);return t.default??t}catch(t){return u.debug("SYSTEM","tree-kill module not available, using fallback",{},t instanceof Error?t:void 0),null}}var Il,Rl,Os=C(()=>{"use strict";H();Ft();Gt();re();Il=xl(Ml),Rl=Y.workerPid()});function Pl(){let t=Mn().pruneDeadEntries();t>0&&u.info("SYSTEM",`Health check: pruned ${t} dead process(es) from registry`)}function As(){st===null&&(st=setInterval(Pl,Ps),st.unref(),u.debug("SYSTEM","Health checker started",{intervalMs:Ps}))}function Ns(){st!==null&&(clearInterval(st),st=null,u.debug("SYSTEM","Health checker stopped"))}var Ps,st,Ds=C(()=>{"use strict";H();Gt();Ps=3e4,st=null});import{existsSync as Al,readFileSync as Nl,rmSync as Us}from"fs";function Ls(){return Ul}function Tn(e={}){let t=e.pidFilePath??Dl;if(!Al(t))return"missing";let n=null;try{n=JSON.parse(Nl(t,"utf-8"))}catch(o){return o instanceof Error?u.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:t},o):u.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:t,error:String(o)}),Us(t,{force:!0}),"invalid"}return Ar(n)&&n?((e.logAlive??!0)&&u.info("SYSTEM","Worker already running (PID alive)",{existingPid:n.pid,existingPort:n.port,startedAt:n.startedAt}),"alive"):(u.info("SYSTEM","Removing stale PID file (worker process is dead or PID has been reused)",{pid:n?.pid,port:n?.port,startedAt:n?.startedAt}),Us(t,{force:!0}),"stale")}var Dl,Nr,Ul,Dr=C(()=>{"use strict";H();Gt();Os();Ds();re();Dl=Y.workerPid(),Nr=class{registry;started=!1;stopPromise=null;signalHandlersRegistered=!1;shutdownInitiated=!1;shutdownHandler=null;constructor(t){this.registry=t}async start(){if(this.started)return;if(this.registry.initialize(),Tn({logAlive:!1})==="alive")throw new Error("Worker already running");this.started=!0,As()}configureSignalHandlers(t){if(this.shutdownHandler=t,this.signalHandlersRegistered)return;this.signalHandlersRegistered=!0;let n=async r=>{if(this.shutdownInitiated){u.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}this.shutdownInitiated=!0,u.info("SYSTEM",`Received ${r}, shutting down...`);try{this.shutdownHandler?await this.shutdownHandler():await this.stop()}catch(o){o instanceof Error?u.error("SYSTEM","Error during shutdown",{},o):u.error("SYSTEM","Error during shutdown (non-Error)",{error:String(o)});try{await this.stop()}catch(s){s instanceof Error?u.debug("SYSTEM","Supervisor shutdown fallback failed",{},s):u.debug("SYSTEM","Supervisor shutdown fallback failed",{error:String(s)})}}process.exit(0)};process.on("SIGTERM",()=>{n("SIGTERM")}),process.on("SIGINT",()=>{n("SIGINT")}),process.platform!=="win32"&&(process.argv.includes("--daemon")?process.on("SIGHUP",()=>{u.debug("SYSTEM","Ignoring SIGHUP in daemon mode")}):process.on("SIGHUP",()=>{n("SIGHUP")}))}async stop(){if(this.stopPromise){await this.stopPromise;return}Ns(),this.stopPromise=Rs({registry:this.registry,currentPid:process.pid}).finally(()=>{this.started=!1,this.stopPromise=null}),await this.stopPromise}assertCanSpawn(t){if(this.stopPromise!==null)throw new Error(`Supervisor is shutting down, refusing to spawn ${t}`)}registerProcess(t,n,r){this.registry.register(t,n,r)}unregisterProcess(t){this.registry.unregister(t)}getRegistry(){return this.registry}},Ul=new Nr(Mn())});import it from"path";import{homedir as Ll}from"os";import{existsSync as Lr,writeFileSync as dg,readFileSync as pg,unlinkSync as mg,mkdirSync as fg,rmSync as gg,statSync as hg,utimesSync as Wl,copyFileSync as Eg}from"fs";import{exec as jl,execSync as Fs,spawnSync as yg}from"child_process";import{promisify as Fl}from"util";function js(e){return e?/(^|[\\/])bun(\.exe)?$/i.test(e.trim()):!1}function Gl(e,t){let n=t==="win32"?`where ${e}`:`which ${e}`,r;try{r=Fs(n,{stdio:["ignore","pipe","ignore"],encoding:"utf-8",windowsHide:!0})}catch(s){return s instanceof Error?u.debug("SYSTEM",`Binary lookup failed for ${e}`,{command:n},s):u.debug("SYSTEM",`Binary lookup failed for ${e}`,{command:n},new Error(String(s))),null}return r.split(/\r?\n/).map(s=>s.trim()).find(s=>s.length>0)||null}function Hl(e={}){let t=Object.keys(e).length===0;if(t&&Ur!==void 0)return Ur;let n=Jl(e);return t&&n!==null&&(Ur=n),n}function Jl(e){let t=e.platform??process.platform,n=e.execPath??process.execPath;if(js(n))return n;let r=e.env??process.env,o=e.homeDirectory??Ll(),s=e.pathExists??Lr,i=e.lookupInPath??Gl,a=t==="win32"?[r.BUN,r.BUN_PATH,it.join(o,".bun","bin","bun.exe"),it.join(o,".bun","bin","bun"),r.USERPROFILE?it.join(r.USERPROFILE,".bun","bin","bun.exe"):void 0,r.LOCALAPPDATA?it.join(r.LOCALAPPDATA,"bun","bun.exe"):void 0,r.LOCALAPPDATA?it.join(r.LOCALAPPDATA,"bun","bin","bun.exe"):void 0]:[r.BUN,r.BUN_PATH,it.join(o,".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun","/usr/bin/bun","/snap/bin/bun"];for(let c of a){let l=c?.trim();if(l&&(js(l)&&s(l)||l.toLowerCase()==="bun"))return l}return i("bun",t)}function je(e){return process.platform==="win32"?Math.round(e*2):e}function Gs(e,t,n={}){Ls().assertCanSpawn("worker daemon");let r=xr({...process.env,CLAUDE_MEM_WORKER_PORT:String(t),...n}),o=Hl();if(!o){u.error("SYSTEM","Bun runtime not found \u2014 install from https://bun.sh and ensure it is on PATH or set BUN env var. The worker daemon requires Bun because it uses bun:sqlite.");return}if(process.platform==="win32"){let p=`Start-Process -FilePath '${o.replace(/'/g,"''")}' -ArgumentList @('${e.replace(/'/g,"''")}','--daemon') -WindowStyle Hidden`,f=Buffer.from(p,"utf16le").toString("base64");try{return Fs(`powershell -NoProfile -EncodedCommand ${f}`,{stdio:"ignore",windowsHide:!0,env:r}),0}catch(h){u.error("SYSTEM","Failed to spawn worker daemon on Windows",{runtimePath:o},h instanceof Error?h:new Error(String(h)));return}}let s="/usr/bin/setsid",i=Lr(s),l=we(i?s:o,i?[o,e,"--daemon"]:[e,"--daemon"],{detached:!0,stdio:"ignore",env:r});if(l.pid!==void 0)return l.unref(),l.pid}function Hs(){try{if(!Lr(Ws))return;let e=new Date;Wl(Ws,e,e)}catch{}}function Js(){return Tn({logAlive:!1})}var xg,Ig,Ws,Ur,Ks=C(()=>{"use strict";nt();H();Ft();Ir();Dr();re();Gt();xg=Fl(jl),Ig=Y.dataDir(),Ws=Y.workerPid()});import Ag from"path";import Kl from"net";import{readFileSync as Ug}from"fs";async function Bl(e,t,n="GET"){let r=await fetch(`http://127.0.0.1:${e}${t}`,{method:n}),o="";try{o=await r.text()}catch{}return{ok:r.ok,statusCode:r.status,body:o}}async function Bs(e){if(process.platform==="win32")try{return(await fetch(`http://127.0.0.1:${e}/api/health`)).ok}catch(t){return t instanceof Error?u.debug("SYSTEM","Windows health check failed (port not in use)",{},t):u.debug("SYSTEM","Windows health check failed (port not in use)",{error:String(t)}),!1}return new Promise(t=>{let n=Kl.createServer();n.once("error",r=>{r.code==="EADDRINUSE"?t(!0):t(!1)}),n.once("listening",()=>{n.close(()=>t(!1))}),n.listen(e,"127.0.0.1")})}async function Ys(e,t,n,r){let o=Date.now();for(;Date.now()-o<n;){try{if((await Bl(e,t)).ok)return!0}catch(s){s instanceof Error?u.debug("SYSTEM",r,{},s):u.debug("SYSTEM",r,{error:String(s)})}await new Promise(s=>setTimeout(s,500))}return!1}function Ht(e,t=3e4){return Ys(e,"/api/health",t,"Service not ready yet, will retry")}function Jt(e,t=3e4){return Ys(e,"/api/readiness",t,"Worker not ready yet, will retry")}var Vs=C(()=>{"use strict";H();re()});import zs from"path";import{existsSync as Wr,mkdirSync as Yl,writeFileSync as Vl,unlinkSync as zl,statSync as Zl}from"fs";function jr(){return zs.join(B.get("CLAUDE_MEM_DATA_DIR"),".worker-start-attempted")}function Xl(){if(process.platform!=="win32")return!1;let e=jr();if(!Wr(e))return!1;try{let t=Zl(e).mtimeMs;return Date.now()-t<ql}catch(t){return t instanceof Error?u.debug("SYSTEM","Could not stat worker spawn lock file",{},t):u.debug("SYSTEM","Could not stat worker spawn lock file",{error:String(t)}),!1}}function Ql(){if(process.platform==="win32")try{let e=jr();Yl(zs.dirname(e),{recursive:!0}),Vl(e,"","utf-8")}catch{}}function xn(){if(process.platform==="win32")try{let e=jr();Wr(e)&&zl(e)}catch{}}async function Zs(e,t){if(!t)return u.error("SYSTEM","ensureWorkerStarted called with empty workerScriptPath \u2014 caller bug"),"dead";if(!Wr(t))return u.error("SYSTEM","ensureWorkerStarted: worker script not found at expected path \u2014 likely a partial install or build artifact missing",{workerScriptPath:t}),"dead";if(Js()==="alive"){if(u.info("SYSTEM","Worker PID file points to a live process, skipping duplicate spawn"),await Ht(e,je(Q.PORT_IN_USE_WAIT))){xn();let c=await Jt(e,je(Q.READINESS_WAIT));return u.info("SYSTEM","Worker became healthy while waiting on live PID"),c?"ready":"warming"}return u.warn("SYSTEM","Live PID detected but worker did not become healthy before timeout \u2014 likely still starting"),"warming"}if(await Ht(e,1e3)){xn();let a=await Jt(e,je(Q.READINESS_WAIT));return a||u.warn("SYSTEM","Worker is alive but readiness timed out \u2014 proceeding anyway"),u.info("SYSTEM","Worker already running and healthy"),a?"ready":"warming"}if(await Bs(e)){if(u.info("SYSTEM","Port in use, waiting for worker to become healthy"),await Ht(e,je(Q.PORT_IN_USE_WAIT))){xn();let c=await Jt(e,je(Q.READINESS_WAIT));return u.info("SYSTEM","Worker is now healthy"),c?"ready":"warming"}return u.error("SYSTEM","Port in use but worker not responding to health checks"),"dead"}if(Xl())return u.warn("SYSTEM","Worker unavailable on Windows \u2014 skipping spawn (recent attempt failed within cooldown)"),"dead";if(u.info("SYSTEM","Starting worker daemon",{workerScriptPath:t}),Ql(),Gs(t,e)===void 0)return u.error("SYSTEM","Failed to spawn worker daemon"),"dead";if(!await Ht(e,je(Q.POST_SPAWN_WAIT)))return u.warn("SYSTEM","Worker spawned but health endpoint not responding within window \u2014 likely still starting in background"),"warming";let i=await Jt(e,je(Q.READINESS_WAIT));return i||u.warn("SYSTEM","Worker is alive but readiness timed out \u2014 proceeding anyway"),xn(),Hs(),u.info("SYSTEM","Worker started successfully"),i?"ready":"warming"}var ql,qs=C(()=>{"use strict";H();Ft();Le();Ks();Vs();ql=120*1e3});import{existsSync as ct,readFileSync as Xs,writeFileSync as _l}from"fs";import{execSync as Kt,spawnSync as In}from"child_process";import{join as ge}from"path";import{homedir as at}from"os";function Qs(e){return ge(e,".install-version")}function Fr(){try{if(In("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:le}).status===0)return"bun"}catch{}return $l.find(ct)||null}function _s(){return Fr()!==null}function $s(){let e=Fr();if(!e)return null;try{let t=In(e,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:le});return t.status===0?t.stdout.trim():null}catch{return null}}function Gr(){try{if(In("uv",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:le}).status===0)return"uv"}catch{}return eu.find(ct)||null}function ei(){return Gr()!==null}function tu(){let e=Gr();if(!e)return null;try{let t=In(e,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:le});return t.status===0?t.stdout.trim():null}catch{return null}}function Hr(e){if(e&&typeof e=="object"){let t=e,n=[];t.message&&n.push(t.message);let r=t.stderr?t.stderr.toString().trim():"";r&&n.push(`stderr: ${r}`);let o=t.stdout?t.stdout.toString().trim():"";return!r&&o&&n.push(`stdout: ${o}`),n.join(`
100
+ `)}return String(e)}function nu(){try{if(le?Kt('powershell -c "irm bun.sh/install.ps1 | iex"',{stdio:"pipe",shell:process.env.ComSpec??"cmd.exe"}):Kt("curl -fsSL https://bun.sh/install | bash",{stdio:"pipe",shell:"/bin/bash"}),!_s())throw new Error("Bun installation completed but binary not found. Please restart your terminal and try again.")}catch(e){let t=le?` - winget install Oven-sh.Bun
101
101
  - Or: powershell -c "irm bun.sh/install.ps1 | iex"`:` - curl -fsSL https://bun.sh/install | bash
102
102
  - Or: brew install oven-sh/bun/bun`;throw new Error(`Failed to install Bun. Please install manually:
103
103
  ${t}
104
104
  Then restart your terminal and try again.
105
- Underlying error: ${jn(e)}`)}}function Bl(){try{if(ae?Jt('powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe",shell:process.env.ComSpec??"cmd.exe"}):Jt("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/bash"}),!Qs())throw new Error("uv installation completed but binary not found. Please restart your terminal and try again.")}catch(e){let t=ae?` - winget install astral-sh.uv
105
+ Underlying error: ${Hr(e)}`)}}function ru(){try{if(le?Kt('powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe",shell:process.env.ComSpec??"cmd.exe"}):Kt("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/bash"}),!ei())throw new Error("uv installation completed but binary not found. Please restart your terminal and try again.")}catch(e){let t=le?` - winget install astral-sh.uv
106
106
  - Or: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"`:` - curl -LsSf https://astral.sh/uv/install.sh | sh
107
107
  - Or: brew install uv (macOS)`;throw new Error(`Failed to install uv. Please install manually:
108
108
  ${t}
109
109
  Then restart your terminal and try again.
110
- Underlying error: ${jn(e)}`)}}function Yl(e){let t=JSON.parse(zs(ge(e,"package.json"),"utf-8")),r=Object.keys(t.dependencies||{}),n=[];for(let o of r){let s=ge(e,"node_modules",...o.split("/"));at(s)||n.push(o)}if(n.length>0)throw new Error(`Post-install check failed: missing modules: ${n.join(", ")}`)}async function Kt(){qs()||Kl();let e=Ln();if(!e)throw new Error("Bun executable not found after install attempt.");let t=Xs();if(!t)throw new Error("Bun installed but version probe failed.");return{bunPath:e,version:t}}async function Fn(){Qs()||Bl();let e=Wn();if(!e)throw new Error("uv executable not found after install attempt.");let t=Jl();if(!t)throw new Error("uv installed but version probe failed.");return{uvPath:e,version:t}}async function Gn(e,t){if(!at(ge(e,"package.json")))throw new Error(`installPluginDependencies: no package.json at ${e}`);let r=ae&&t.includes(" ")?`"${t}"`:t;try{Jt(`${r} install`,{cwd:e,stdio:"pipe",...ae?{shell:process.env.ComSpec??"cmd.exe"}:{}})}catch(n){throw new Error(`bun install failed in ${e}
111
- ${jn(n)}`)}Yl(e)}function Vl(e){let t=Zs(e);if(!at(t))return null;try{return JSON.parse(zs(t,"utf-8"))}catch{return null}}function Hn(e,t,r,n){let o={version:t,bun:r,uv:n,installedAt:new Date().toISOString()};Fl(Zs(e),JSON.stringify(o))}function _s(e,t){if(!at(ge(e,"node_modules")))return!1;let r=Vl(e);if(!r||r.version!==t)return!1;let n=Xs();return!(n&&r.bun&&n!==r.bun)}var ae,Gl,Hl,$s=w(()=>{"use strict";ae=process.platform==="win32",Gl=ae?[ge(it(),".bun","bin","bun.exe")]:[ge(it(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun"],Hl=ae?[ge(it(),".local","bin","uv.exe"),ge(it(),".cargo","bin","uv.exe")]:[ge(it(),".local","bin","uv"),ge(it(),".cargo","bin","uv"),"/usr/local/bin/uv","/opt/homebrew/bin/uv"]});var je,ei=w(()=>{"use strict";je={compressed:"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",frameCount:192,width:128,height:36,frameDelay:22}});import{inflateRawSync as zl}from"zlib";function _l(e,t=1){if(!e)return"\x1B[38;5;208m";let r=Math.min(255,Math.round(230*t)),n=Math.min(255,Math.round(115*t)),o=Math.min(255,Math.round(70*t));return`\x1B[38;2;${r};${n};${o}m`}function $l(e,t=1){if(!e)return"\x1B[38;5;215m";let r=Math.min(255,Math.round(255*t)),n=Math.min(255,Math.round(180*t)),o=Math.min(255,Math.round(122*t));return`\x1B[38;2;${r};${n};${o}m`}function eu(){if(Bt)return Bt;try{Bt=zl(Buffer.from(je.compressed,"base64")).toString("utf8").split(Ql).filter(Boolean)}catch{Bt=[]}return Bt}function tu(e,t,r=1){let n=_l(t,r),o=$l(t,r),s=n,i=0,a=!1;for(;i<e.length;){let c=e[i];if(c==="<"){let l=e[i+1]==="/";for(;i<e.length&&e[i]!==">";)i++;i++,a=!l,s+=a?o:n;continue}s+=c,i++}return s+ri}function ru(){return process.env.COLORTERM==="truecolor"||process.env.COLORTERM==="24bit"}function nu(e,t){let r=Jn[e],n=je.width,o=r.slice(0,Math.min(Ve,t)).padEnd(Ve," "),s=Math.max(0,Math.floor((n-Ve)/2));return" ".repeat(s)+`\x1B[1;97m${o}\x1B[0m`+" ".repeat(Math.max(0,n-s-Ve))}function ou(e){let t=je.width,r=Math.max(0,Math.floor((t-e.length)/2));return" ".repeat(r)+`\x1B[2;37m${e}\x1B[0m`+" ".repeat(Math.max(0,t-r-e.length))}function su(){return!process.stdout.isTTY||process.env.CI||process.env.CLAUDE_MEM_NO_BANNER||process.env.NO_COLOR?!1:(process.stdout.columns??0)>=je.width}async function si(){if(!su())return;let e=ru(),t=eu();if(t.length===0)return;let r=!1,n=()=>{r=!0};process.stdout.on("resize",n),process.stdout.write(Xl),process.stdout.write(Zl),process.stdout.write(`
112
- `.repeat(ti)),process.stdout.write(`\x1B[${ti}A`),process.stdout.write("\x1B[s");let o=" ".repeat(je.width),s=(i,a,c,l=1)=>{process.stdout.write("\x1B[u"),process.stdout.write(tu(i,e,l)),process.stdout.write(`
113
- `);for(let p=0;p<ni;p++)process.stdout.write(nu(p,a)),process.stdout.write(`
114
- `);for(let p=0;p<oi;p++)process.stdout.write(o),process.stdout.write(`
115
- `);process.stdout.write(ou(c))};try{for(let l=0;l<t.length;l++){if(r)return;s(t[l],0,""),await Yt(je.frameDelay)}let i=t[t.length-1],a="persistent memory across sessions",c=14;for(let l=1;l<=c;l++){if(r)return;let p=Math.ceil(Ve*(l/c));s(i,p,""),await Yt(45)}for(let l=1;l<=6;l++){if(r)return;let p=Math.ceil(a.length*(l/6));s(i,Ve,a.slice(0,p)),await Yt(33)}for(let l of[.85,.95,1]){if(r)return;s(i,Ve,a,l),await Yt(100)}await Yt(150)}finally{process.stdout.off("resize",n),process.stdout.write(ri),process.stdout.write(ql),process.stdout.write(`
116
- `)}}var Zl,ql,Xl,ri,Ql,Bt,Jn,ni,Ve,oi,ti,Yt,ii=w(()=>{"use strict";ei();Zl="\x1B[?25l",ql="\x1B[?25h",Xl="\x1B[2J\x1B[3J\x1B[H",ri="\x1B[0m",Ql="";Bt=null;Jn=[" _ _ "," ___| | __ _ _ _ __| | ___ _ __ ___ ___ _ __ ___ "," / __| |/ _` | | | |/ _` |/ _ \\_____| '_ ` _ \\ / _ \\ '_ ` _ \\ ","| (__| | (_| | |_| | (_| | __/_____| | | | | | __/ | | | | |"," \\___|_|\\__,_|\\__,_|\\__,_|\\___| |_| |_| |_|\\___|_| |_| |_|"],ni=Jn.length,Ve=Jn[0].length,oi=1,ti=je.height+ni+oi+1;Yt=e=>new Promise(t=>setTimeout(t,e))});async function xr(e,t=1e4){let r=`http://127.0.0.1:${e}`,n=!1;try{await fetch(`${r}/api/admin/shutdown`,{method:"POST",signal:AbortSignal.timeout(5e3)}),n=!0}catch{return{workerWasRunning:!1}}let o=500,s=Math.ceil(t/o);for(let i=0;i<s;i++){await new Promise(a=>setTimeout(a,o));try{await fetch(`${r}/api/health`,{signal:AbortSignal.timeout(1e3)})}catch(a){if(a instanceof Error&&a.name==="AbortError")continue;return{workerWasRunning:n}}}return{workerWasRunning:n}}var Kn=w(()=>{"use strict"});import{execSync as iu}from"child_process";import{existsSync as ve,readdirSync as au}from"fs";import{homedir as ai}from"os";import{join as ke}from"path";function Vt(e){try{return iu(`${me?"where":"which"} ${e}`,{stdio:"pipe"}),!0}catch(t){return process.env.DEBUG&&console.error(`[ide-detection] ${e} not in PATH:`,t instanceof Error?t.message:String(t)),!1}}function cu(e){let t=ke(ai(),".vscode","extensions");if(!ve(t))return!1;try{return au(t).some(n=>n.toLowerCase().includes(e.toLowerCase()))}catch(r){return console.warn("[ide-detection] Failed to read VS Code extensions directory:",r instanceof Error?r.message:String(r)),!1}}function ct(){let e=ai();return[{id:"claude-code",label:"Claude Code",detected:Vt("claude"),supported:!0,hint:"recommended"},{id:"gemini-cli",label:"Gemini CLI",detected:ve(ke(e,".gemini")),supported:!0},{id:"opencode",label:"OpenCode",detected:ve(ke(e,".config","opencode"))||Vt("opencode"),supported:!0,hint:"plugin-based integration"},{id:"openclaw",label:"OpenClaw",detected:ve(ke(e,".openclaw")),supported:!0,hint:"plugin-based integration"},{id:"windsurf",label:"Windsurf",detected:ve(ke(e,".codeium","windsurf")),supported:!0},{id:"codex-cli",label:"Codex CLI",detected:ve(ke(e,".codex")),supported:!0,hint:"native hooks integration"},{id:"cursor",label:"Cursor",detected:ve(ke(e,".cursor")),supported:!0,hint:"hooks + MCP integration"},{id:"copilot-cli",label:"Copilot CLI",detected:Vt("copilot"),supported:!0,hint:"MCP-based integration"},{id:"antigravity",label:"Antigravity",detected:ve(ke(e,".gemini","antigravity")),supported:!0,hint:"MCP-based integration"},{id:"goose",label:"Goose",detected:ve(ke(e,".config","goose"))||Vt("goose"),supported:!0,hint:"MCP-based integration"},{id:"roo-code",label:"Roo Code",detected:cu("roo-code"),supported:!0,hint:"MCP-based integration"},{id:"warp",label:"Warp",detected:ve(ke(e,".warp"))||Vt("warp"),supported:!0,hint:"MCP-based integration"}]}var ci=w(()=>{"use strict";Ke()});var li=w(()=>{"use strict";Ue();re()});import ui from"path";import{readFileSync as rh,existsSync as nh,writeFileSync as oh,renameSync as sh,mkdirSync as ih}from"fs";import{execSync as ch}from"child_process";function Bn(e,t,r){let n=process.env[e];if(n){let o=parseInt(n,10);if(Number.isFinite(o)&&o>=r.min&&o<=r.max)return o;u.warn("SYSTEM",`Invalid ${e}, using default`,{value:n,min:r.min,max:r.max})}return t}function uu(e,t={},r){return new Promise((n,o)=>{let s=setTimeout(()=>o(new Error(`Request timed out after ${r}ms`)),r);fetch(e,t).then(i=>{clearTimeout(s),n(i)},i=>{clearTimeout(s),o(i)})})}function zt(){if(Ir!==null)return Ir;let e=ui.join(K.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=K.loadFromFile(e);return Ir=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),Ir}function du(){if(Rr!==null)return Rr;let e=ui.join(K.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return Rr=K.loadFromFile(e).CLAUDE_MEM_WORKER_HOST,Rr}function pu(e){return`http://${du()}:${zt()}${e}`}function Or(e,t={}){let r=t.method??"GET",n=t.timeoutMs??lu,o=pu(e),s={method:r};return t.headers&&(s.headers=t.headers),t.body&&(s.body=t.body),n>0?uu(o,s,n):fetch(o,s)}var hh,lu,Eh,Ir,Rr,Pr=w(()=>{"use strict";tt();G();jt();Ue();re();li();Pn();hh=Bn("CLAUDE_MEM_HEALTH_TIMEOUT_MS",vr(Q.HEALTH_CHECK),{min:500,max:3e5}),lu=Bn("CLAUDE_MEM_API_TIMEOUT_MS",vr(Q.API_REQUEST),{min:500,max:3e5}),Eh=Bn("CLAUDE_MEM_HOOK_READINESS_TIMEOUT_MS",vr(Q.HOOK_READINESS_WAIT),{min:0,max:3e5});Ir=null,Rr=null});import{existsSync as mu,readFileSync as fu,writeFileSync as di,mkdirSync as pi,renameSync as gu}from"fs";import{join as Yn,basename as Ch}from"path";function mi(e){try{return mu(e)?JSON.parse(fu(e,"utf-8")):{}}catch(t){return u.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:e,error:t instanceof Error?t.message:String(t)}),{}}}function fi(e,t){let r=Yn(e,"..");pi(r,{recursive:!0}),di(e,JSON.stringify(t,null,2))}function Vn(e,t){let r=Yn(e,".cursor","rules"),n=Yn(r,"claude-mem-context.mdc"),o=`${n}.tmp`;pi(r,{recursive:!0});let s=`---
110
+ Underlying error: ${Hr(e)}`)}}function ou(e){let t=JSON.parse(Xs(ge(e,"package.json"),"utf-8")),n=Object.keys(t.dependencies||{}),r=[];for(let o of n){let s=ge(e,"node_modules",...o.split("/"));ct(s)||r.push(o)}if(r.length>0)throw new Error(`Post-install check failed: missing modules: ${r.join(", ")}`)}async function Bt(){_s()||nu();let e=Fr();if(!e)throw new Error("Bun executable not found after install attempt.");let t=$s();if(!t)throw new Error("Bun installed but version probe failed.");return{bunPath:e,version:t}}async function Jr(){ei()||ru();let e=Gr();if(!e)throw new Error("uv executable not found after install attempt.");let t=tu();if(!t)throw new Error("uv installed but version probe failed.");return{uvPath:e,version:t}}async function Kr(e,t){if(!ct(ge(e,"package.json")))throw new Error(`installPluginDependencies: no package.json at ${e}`);let n=le&&t.includes(" ")?`"${t}"`:t;try{Kt(`${n} install`,{cwd:e,stdio:"pipe",...le?{shell:process.env.ComSpec??"cmd.exe"}:{}})}catch(r){throw new Error(`bun install failed in ${e}
111
+ ${Hr(r)}`)}ou(e)}function su(e){let t=Qs(e);if(!ct(t))return null;try{return JSON.parse(Xs(t,"utf-8"))}catch{return null}}function Br(e,t,n,r){let o={version:t,bun:n,uv:r,installedAt:new Date().toISOString()};_l(Qs(e),JSON.stringify(o))}function ti(e,t){if(!ct(ge(e,"node_modules")))return!1;let n=su(e);if(!n||n.version!==t)return!1;let r=$s();return!(r&&n.bun&&r!==n.bun)}var le,$l,eu,ni=C(()=>{"use strict";le=process.platform==="win32",$l=le?[ge(at(),".bun","bin","bun.exe")]:[ge(at(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun"],eu=le?[ge(at(),".local","bin","uv.exe"),ge(at(),".cargo","bin","uv.exe")]:[ge(at(),".local","bin","uv"),ge(at(),".cargo","bin","uv"),"/usr/local/bin/uv","/opt/homebrew/bin/uv"]});var Fe,ri=C(()=>{"use strict";Fe={compressed:"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",frameCount:192,width:128,height:36,frameDelay:22}});import{inflateRawSync as iu}from"zlib";function du(e,t=1){if(!e)return"\x1B[38;5;208m";let n=Math.min(255,Math.round(230*t)),r=Math.min(255,Math.round(115*t)),o=Math.min(255,Math.round(70*t));return`\x1B[38;2;${n};${r};${o}m`}function pu(e,t=1){if(!e)return"\x1B[38;5;215m";let n=Math.min(255,Math.round(255*t)),r=Math.min(255,Math.round(180*t)),o=Math.min(255,Math.round(122*t));return`\x1B[38;2;${n};${r};${o}m`}function mu(){if(Yt)return Yt;try{Yt=iu(Buffer.from(Fe.compressed,"base64")).toString("utf8").split(uu).filter(Boolean)}catch{Yt=[]}return Yt}function fu(e,t,n=1){let r=du(t,n),o=pu(t,n),s=r,i=0,a=!1;for(;i<e.length;){let c=e[i];if(c==="<"){let l=e[i+1]==="/";for(;i<e.length&&e[i]!==">";)i++;i++,a=!l,s+=a?o:r;continue}s+=c,i++}return s+si}function gu(){return process.env.COLORTERM==="truecolor"||process.env.COLORTERM==="24bit"}function hu(e,t){let n=Yr[e],r=Fe.width,o=n.slice(0,Math.min(ze,t)).padEnd(ze," "),s=Math.max(0,Math.floor((r-ze)/2));return" ".repeat(s)+`\x1B[1;97m${o}\x1B[0m`+" ".repeat(Math.max(0,r-s-ze))}function Eu(e){let t=Fe.width,n=Math.max(0,Math.floor((t-e.length)/2));return" ".repeat(n)+`\x1B[2;37m${e}\x1B[0m`+" ".repeat(Math.max(0,t-n-e.length))}function Su(){return!process.stdout.isTTY||process.env.CI||process.env.CLAUDE_MEM_NO_BANNER||process.env.NO_COLOR?!1:(process.stdout.columns??0)>=Fe.width}async function ci(){if(!Su())return;let e=gu(),t=mu();if(t.length===0)return;let n=!1,r=()=>{n=!0};process.stdout.on("resize",r),process.stdout.write(lu),process.stdout.write(au),process.stdout.write(`
112
+ `.repeat(oi)),process.stdout.write(`\x1B[${oi}A`),process.stdout.write("\x1B[s");let o=" ".repeat(Fe.width),s=(i,a,c,l=1)=>{process.stdout.write("\x1B[u"),process.stdout.write(fu(i,e,l)),process.stdout.write(`
113
+ `);for(let p=0;p<ii;p++)process.stdout.write(hu(p,a)),process.stdout.write(`
114
+ `);for(let p=0;p<ai;p++)process.stdout.write(o),process.stdout.write(`
115
+ `);process.stdout.write(Eu(c))};try{for(let l=0;l<t.length;l++){if(n)return;s(t[l],0,""),await Vt(Fe.frameDelay)}let i=t[t.length-1],a="persistent memory across sessions",c=14;for(let l=1;l<=c;l++){if(n)return;let p=Math.ceil(ze*(l/c));s(i,p,""),await Vt(45)}for(let l=1;l<=6;l++){if(n)return;let p=Math.ceil(a.length*(l/6));s(i,ze,a.slice(0,p)),await Vt(33)}for(let l of[.85,.95,1]){if(n)return;s(i,ze,a,l),await Vt(100)}await Vt(150)}finally{process.stdout.off("resize",r),process.stdout.write(si),process.stdout.write(cu),process.stdout.write(`
116
+ `)}}var au,cu,lu,si,uu,Yt,Yr,ii,ze,ai,oi,Vt,li=C(()=>{"use strict";ri();au="\x1B[?25l",cu="\x1B[?25h",lu="\x1B[2J\x1B[3J\x1B[H",si="\x1B[0m",uu="";Yt=null;Yr=[" _ _ "," ___| | __ _ _ _ __| | ___ _ __ ___ ___ _ __ ___ "," / __| |/ _` | | | |/ _` |/ _ \\_____| '_ ` _ \\ / _ \\ '_ ` _ \\ ","| (__| | (_| | |_| | (_| | __/_____| | | | | | __/ | | | | |"," \\___|_|\\__,_|\\__,_|\\__,_|\\___| |_| |_| |_|\\___|_| |_| |_|"],ii=Yr.length,ze=Yr[0].length,ai=1,oi=Fe.height+ii+ai+1;Vt=e=>new Promise(t=>setTimeout(t,e))});async function Rn(e,t=1e4){let n=`http://127.0.0.1:${e}`,r=!1;try{await fetch(`${n}/api/admin/shutdown`,{method:"POST",signal:AbortSignal.timeout(5e3)}),r=!0}catch{return{workerWasRunning:!1}}let o=500,s=Math.ceil(t/o);for(let i=0;i<s;i++){await new Promise(a=>setTimeout(a,o));try{await fetch(`${n}/api/health`,{signal:AbortSignal.timeout(1e3)})}catch(a){if(a instanceof Error&&a.name==="AbortError")continue;return{workerWasRunning:r}}}return{workerWasRunning:r}}var Vr=C(()=>{"use strict"});import{execSync as yu}from"child_process";import{existsSync as ve,readdirSync as wu}from"fs";import{homedir as ui}from"os";import{join as ke}from"path";function zt(e){try{return yu(`${ae?"where":"which"} ${e}`,{stdio:"pipe"}),!0}catch(t){return process.env.DEBUG&&console.error(`[ide-detection] ${e} not in PATH:`,t instanceof Error?t.message:String(t)),!1}}function Cu(e){let t=ke(ui(),".vscode","extensions");if(!ve(t))return!1;try{return wu(t).some(r=>r.toLowerCase().includes(e.toLowerCase()))}catch(n){return console.warn("[ide-detection] Failed to read VS Code extensions directory:",n instanceof Error?n.message:String(n)),!1}}function lt(){let e=ui();return[{id:"claude-code",label:"Claude Code",detected:zt("claude"),supported:!0,hint:"recommended"},{id:"gemini-cli",label:"Gemini CLI",detected:ve(ke(e,".gemini")),supported:!0},{id:"opencode",label:"OpenCode",detected:ve(ke(e,".config","opencode"))||zt("opencode"),supported:!0,hint:"plugin-based integration"},{id:"openclaw",label:"OpenClaw",detected:ve(ke(e,".openclaw")),supported:!0,hint:"plugin-based integration"},{id:"windsurf",label:"Windsurf",detected:ve(ke(e,".codeium","windsurf")),supported:!0},{id:"codex-cli",label:"Codex CLI",detected:ve(ke(e,".codex")),supported:!0,hint:"native hooks integration"},{id:"cursor",label:"Cursor",detected:ve(ke(e,".cursor")),supported:!0,hint:"hooks + MCP integration"},{id:"copilot-cli",label:"Copilot CLI",detected:zt("copilot"),supported:!0,hint:"MCP-based integration"},{id:"antigravity",label:"Antigravity",detected:ve(ke(e,".gemini","antigravity")),supported:!0,hint:"MCP-based integration"},{id:"goose",label:"Goose",detected:ve(ke(e,".config","goose"))||zt("goose"),supported:!0,hint:"MCP-based integration"},{id:"roo-code",label:"Roo Code",detected:Cu("roo-code"),supported:!0,hint:"MCP-based integration"},{id:"warp",label:"Warp",detected:ve(ke(e,".warp"))||zt("warp"),supported:!0,hint:"MCP-based integration"}]}var di=C(()=>{"use strict";Be()});var pi=C(()=>{"use strict";Le();re()});import mi from"path";import{readFileSync as hh,existsSync as Eh,writeFileSync as Sh,renameSync as yh,mkdirSync as wh}from"fs";import{execSync as vh}from"child_process";function zr(e,t,n){let r=process.env[e];if(r){let o=parseInt(r,10);if(Number.isFinite(o)&&o>=n.min&&o<=n.max)return o;u.warn("SYSTEM",`Invalid ${e}, using default`,{value:r,min:n.min,max:n.max})}return t}function ku(e,t={},n){return new Promise((r,o)=>{let s=setTimeout(()=>o(new Error(`Request timed out after ${n}ms`)),n);fetch(e,t).then(i=>{clearTimeout(s),r(i)},i=>{clearTimeout(s),o(i)})})}function Zt(){if(On!==null)return On;let e=mi.join(B.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=B.loadFromFile(e);return On=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),On}function bu(){if(Pn!==null)return Pn;let e=mi.join(B.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return Pn=B.loadFromFile(e).CLAUDE_MEM_WORKER_HOST,Pn}function Mu(e){return`http://${bu()}:${Zt()}${e}`}function An(e,t={}){let n=t.method??"GET",r=t.timeoutMs??vu,o=Mu(e),s={method:n};return t.headers&&(s.headers=t.headers),t.body&&(s.body=t.body),r>0?ku(o,s,r):fetch(o,s)}var Oh,vu,Ph,On,Pn,Nn=C(()=>{"use strict";nt();H();Ft();Le();re();pi();Dr();Oh=zr("CLAUDE_MEM_HEALTH_TIMEOUT_MS",bn(Q.HEALTH_CHECK),{min:500,max:3e5}),vu=zr("CLAUDE_MEM_API_TIMEOUT_MS",bn(Q.API_REQUEST),{min:500,max:3e5}),Ph=zr("CLAUDE_MEM_HOOK_READINESS_TIMEOUT_MS",bn(Q.HOOK_READINESS_WAIT),{min:0,max:3e5});On=null,Pn=null});import{existsSync as Tu,readFileSync as xu,writeFileSync as fi,mkdirSync as gi,renameSync as Iu}from"fs";import{join as Zr,basename as Uh}from"path";function hi(e){try{return Tu(e)?JSON.parse(xu(e,"utf-8")):{}}catch(t){return u.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:e,error:t instanceof Error?t.message:String(t)}),{}}}function Ei(e,t){let n=Zr(e,"..");gi(n,{recursive:!0}),fi(e,JSON.stringify(t,null,2))}function qr(e,t){let n=Zr(e,".cursor","rules"),r=Zr(n,"claude-mem-context.mdc"),o=`${r}.tmp`;gi(n,{recursive:!0});let s=`---
117
117
  alwaysApply: true
118
118
  description: "Claude-mem context from past sessions (auto-updated)"
119
119
  ---
@@ -126,10 +126,10 @@ ${t}
126
126
 
127
127
  ---
128
128
  *Updated after last session. Use claude-mem's MCP search tools for more detailed queries.*
129
- `;di(o,s),gu(o,n)}var gi=w(()=>{"use strict";G()});var bi={};Ee(bi,{checkCursorHooksStatus:()=>ki,configureCursorMcp:()=>Cu,detectClaudeCode:()=>Tu,detectPlatform:()=>Si,findBunPath:()=>ut,findMcpServerPath:()=>Zt,findWorkerServicePath:()=>lt,getScriptExtension:()=>yu,getTargetDir:()=>Dr,handleCursorCommand:()=>xu,installCursorHooks:()=>Ci,readCursorRegistry:()=>Nr,registerCursorProject:()=>yi,uninstallCursorHooks:()=>vi,unregisterCursorProject:()=>wi,updateCursorContextForProject:()=>wu,writeCursorRegistry:()=>Xn});import x from"path";import{homedir as Ar}from"os";import{existsSync as ce,readFileSync as hi,writeFileSync as Zn,unlinkSync as zn,mkdirSync as qn}from"fs";import{exec as hu}from"child_process";import{promisify as Eu}from"util";function Si(){return process.platform==="win32"?"windows":"unix"}function yu(){return Si()==="windows"?".ps1":".sh"}function Nr(){return mi(Ei)}function Xn(e){fi(Ei,e)}function yi(e,t){let r=Nr();r[e]={workspacePath:t,installedAt:new Date().toISOString()},Xn(r),u.info("CURSOR","Registered project for auto-context updates",{projectName:e,workspacePath:t})}function wi(e){let t=Nr();t[e]&&(delete t[e],Xn(t),u.info("CURSOR","Unregistered project",{projectName:e}))}async function wu(e,t){let n=Nr()[e];if(n)try{let o=await Or(`/api/context/inject?project=${encodeURIComponent(e)}`);if(!o.ok)return;let s=await o.text();if(!s||!s.trim())return;Vn(n.workspacePath,s),u.debug("CURSOR","Updated context file",{projectName:e,workspacePath:n.workspacePath})}catch(o){o instanceof Error?u.error("WORKER","Failed to update context file",{projectName:e},o):u.error("WORKER","Failed to update context file",{projectName:e},new Error(String(o)))}}function Zt(){let e=[x.join(Ut,"plugin","scripts","mcp-server.cjs"),x.join(process.cwd(),"plugin","scripts","mcp-server.cjs")];for(let t of e)if(ce(t))return t;return null}function lt(){let e=[x.join(Ut,"plugin","scripts","worker-service.cjs"),x.join(process.cwd(),"plugin","scripts","worker-service.cjs")];for(let t of e)if(ce(t))return t;return null}function ut(){let e=[x.join(Ar(),".bun","bin","bun"),"/usr/local/bin/bun","/usr/bin/bun",...process.platform==="win32"?[x.join(Ar(),".bun","bin","bun.exe"),x.join(process.env.LOCALAPPDATA||"","bun","bun.exe")]:[]];for(let t of e)if(t&&ce(t))return t;return"bun"}function Dr(e){switch(e){case"project":return x.join(process.cwd(),".cursor");case"user":return x.join(Ar(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?x.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}function Cu(e){let t=Zt();if(!t)return console.error("Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let r=Dr(e);if(!r)return console.error(`Invalid target: ${e}. Use: project or user`),1;let n=x.join(r,"mcp.json");try{qn(r,{recursive:!0});let o={mcpServers:{}};if(ce(n))try{o=JSON.parse(hi(n,"utf-8")),o.mcpServers||(o.mcpServers={})}catch(s){s instanceof Error?u.error("WORKER","Corrupt mcp.json, creating new config",{path:n},s):u.error("WORKER","Corrupt mcp.json, creating new config",{path:n},new Error(String(s))),o={mcpServers:{}}}return o.mcpServers["claude-mem"]={command:"node",args:[t]},Zn(n,JSON.stringify(o,null,2)),console.log(` Configured MCP server in ${e==="user"?"~/.cursor":".cursor"}/mcp.json`),console.log(` Server path: ${t}`),0}catch(o){return console.error(`Failed to configure MCP: ${o.message}`),1}}async function Ci(e){console.log(`
129
+ `;fi(o,s),Iu(o,r)}var Si=C(()=>{"use strict";H()});var xi={};Ee(xi,{checkCursorHooksStatus:()=>Ti,configureCursorMcp:()=>Du,detectClaudeCode:()=>Fu,detectPlatform:()=>Ci,findBunPath:()=>dt,findMcpServerPath:()=>qt,findWorkerServicePath:()=>ut,getScriptExtension:()=>Au,getTargetDir:()=>Ln,handleCursorCommand:()=>Gu,installCursorHooks:()=>bi,readCursorRegistry:()=>Un,registerCursorProject:()=>vi,uninstallCursorHooks:()=>Mi,unregisterCursorProject:()=>ki,updateCursorContextForProject:()=>Nu,writeCursorRegistry:()=>$r});import x from"path";import{homedir as Dn}from"os";import{existsSync as ue,readFileSync as yi,writeFileSync as Qr,unlinkSync as Xr,mkdirSync as _r}from"fs";import{exec as Ru}from"child_process";import{promisify as Ou}from"util";function Ci(){return process.platform==="win32"?"windows":"unix"}function Au(){return Ci()==="windows"?".ps1":".sh"}function Un(){return hi(wi)}function $r(e){Ei(wi,e)}function vi(e,t){let n=Un();n[e]={workspacePath:t,installedAt:new Date().toISOString()},$r(n),u.info("CURSOR","Registered project for auto-context updates",{projectName:e,workspacePath:t})}function ki(e){let t=Un();t[e]&&(delete t[e],$r(t),u.info("CURSOR","Unregistered project",{projectName:e}))}async function Nu(e,t){let r=Un()[e];if(r)try{let o=await An(`/api/context/inject?project=${encodeURIComponent(e)}`);if(!o.ok)return;let s=await o.text();if(!s||!s.trim())return;qr(r.workspacePath,s),u.debug("CURSOR","Updated context file",{projectName:e,workspacePath:r.workspacePath})}catch(o){o instanceof Error?u.error("WORKER","Failed to update context file",{projectName:e},o):u.error("WORKER","Failed to update context file",{projectName:e},new Error(String(o)))}}function qt(){let e=[x.join(Lt,"plugin","scripts","mcp-server.cjs"),x.join(process.cwd(),"plugin","scripts","mcp-server.cjs")];for(let t of e)if(ue(t))return t;return null}function ut(){let e=[x.join(Lt,"plugin","scripts","worker-service.cjs"),x.join(process.cwd(),"plugin","scripts","worker-service.cjs")];for(let t of e)if(ue(t))return t;return null}function dt(){let e=[x.join(Dn(),".bun","bin","bun"),"/usr/local/bin/bun","/usr/bin/bun",...process.platform==="win32"?[x.join(Dn(),".bun","bin","bun.exe"),x.join(process.env.LOCALAPPDATA||"","bun","bun.exe")]:[]];for(let t of e)if(t&&ue(t))return t;return"bun"}function Ln(e){switch(e){case"project":return x.join(process.cwd(),".cursor");case"user":return x.join(Dn(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?x.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}function Du(e){let t=qt();if(!t)return console.error("Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let n=Ln(e);if(!n)return console.error(`Invalid target: ${e}. Use: project or user`),1;let r=x.join(n,"mcp.json");try{_r(n,{recursive:!0});let o={mcpServers:{}};if(ue(r))try{o=JSON.parse(yi(r,"utf-8")),o.mcpServers||(o.mcpServers={})}catch(s){s instanceof Error?u.error("WORKER","Corrupt mcp.json, creating new config",{path:r},s):u.error("WORKER","Corrupt mcp.json, creating new config",{path:r},new Error(String(s))),o={mcpServers:{}}}return o.mcpServers["claude-mem"]={command:"node",args:[t]},Qr(r,JSON.stringify(o,null,2)),console.log(` Configured MCP server in ${e==="user"?"~/.cursor":".cursor"}/mcp.json`),console.log(` Server path: ${t}`),0}catch(o){return console.error(`Failed to configure MCP: ${o.message}`),1}}async function bi(e){console.log(`
130
130
  Installing Claude-Mem Cursor hooks (${e} level)...
131
- `);let t=Dr(e);if(!t)return console.error(`Invalid target: ${e}. Use: project, user, or enterprise`),1;let r=lt();if(!r)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let n=process.cwd(),o=x.join(t,"hooks.json"),s=ut(),i=s.replace(/\\/g,"\\\\"),a=r.replace(/\\/g,"\\\\"),c=p=>`"${i}" "${a}" hook cursor ${p}`;console.log(` Using Bun runtime: ${s}`);let l={version:1,hooks:{beforeSubmitPrompt:[{command:c("session-init")},{command:c("context")}],afterMCPExecution:[{command:c("observation")}],afterShellExecution:[{command:c("observation")}],afterFileEdit:[{command:c("file-edit")}],stop:[{command:c("summarize")}]}};try{return qn(t,{recursive:!0}),await vu(o,l,r,e,t,n),0}catch(p){let f=p instanceof Error?p.message:String(p);return console.error(`
132
- Installation failed: ${f}`),e==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function vu(e,t,r,n,o,s){Zn(e,JSON.stringify(t,null,2)),console.log(" Created hooks.json (unified CLI mode)"),console.log(` Worker service: ${r}`),n==="project"&&await ku(o,s),console.log(`
131
+ `);let t=Ln(e);if(!t)return console.error(`Invalid target: ${e}. Use: project, user, or enterprise`),1;let n=ut();if(!n)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let r=process.cwd(),o=x.join(t,"hooks.json"),s=dt(),i=s.replace(/\\/g,"\\\\"),a=n.replace(/\\/g,"\\\\"),c=p=>`"${i}" "${a}" hook cursor ${p}`;console.log(` Using Bun runtime: ${s}`);let l={version:1,hooks:{beforeSubmitPrompt:[{command:c("session-init")},{command:c("context")}],afterMCPExecution:[{command:c("observation")}],afterShellExecution:[{command:c("observation")}],afterFileEdit:[{command:c("file-edit")}],stop:[{command:c("summarize")}]}};try{return _r(t,{recursive:!0}),await Uu(o,l,n,e,t,r),0}catch(p){let f=p instanceof Error?p.message:String(p);return console.error(`
132
+ Installation failed: ${f}`),e==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function Uu(e,t,n,r,o,s){Qr(e,JSON.stringify(t,null,2)),console.log(" Created hooks.json (unified CLI mode)"),console.log(` Worker service: ${n}`),r==="project"&&await Lu(o,s),console.log(`
133
133
  Installation complete!
134
134
 
135
135
  Hooks installed to: ${o}/hooks.json
@@ -143,7 +143,7 @@ Next steps:
143
143
  Context Injection:
144
144
  Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc
145
145
  and automatically included in every chat. It updates after each session ends.
146
- `)}async function ku(e,t){let r=x.join(e,"rules");qn(r,{recursive:!0});let n=x.basename(t),o=!1;console.log(" Generating initial context...");try{o=await bu(n,t)}catch(s){s instanceof Error?u.debug("WORKER","Worker not running during install",{},s):u.debug("WORKER","Worker not running during install",{},new Error(String(s)))}if(!o){let s=x.join(r,"claude-mem-context.mdc");Zn(s,`---
146
+ `)}async function Lu(e,t){let n=x.join(e,"rules");_r(n,{recursive:!0});let r=x.basename(t),o=!1;console.log(" Generating initial context...");try{o=await Wu(r,t)}catch(s){s instanceof Error?u.debug("WORKER","Worker not running during install",{},s):u.debug("WORKER","Worker not running during install",{},new Error(String(s)))}if(!o){let s=x.join(n,"claude-mem-context.mdc");Qr(s,`---
147
147
  alwaysApply: true
148
148
  description: "Claude-mem context from past sessions (auto-updated)"
149
149
  ---
@@ -153,15 +153,15 @@ description: "Claude-mem context from past sessions (auto-updated)"
153
153
  *No context yet. Complete your first session and context will appear here.*
154
154
 
155
155
  Use claude-mem's MCP search tools for manual memory queries.
156
- `),console.log(" Created placeholder context file (will populate after first session)")}yi(n,t),console.log(" Registered for auto-context updates")}async function bu(e,t){if(!(await Or("/api/readiness")).ok)return!1;let n=await Or(`/api/context/inject?project=${encodeURIComponent(e)}`);if(!n.ok)return!1;let o=await n.text();return o&&o.trim()?(Vn(t,o),console.log(" Generated initial context from existing memory"),!0):!1}function vi(e){console.log(`
156
+ `),console.log(" Created placeholder context file (will populate after first session)")}vi(r,t),console.log(" Registered for auto-context updates")}async function Wu(e,t){if(!(await An("/api/readiness")).ok)return!1;let r=await An(`/api/context/inject?project=${encodeURIComponent(e)}`);if(!r.ok)return!1;let o=await r.text();return o&&o.trim()?(qr(t,o),console.log(" Generated initial context from existing memory"),!0):!1}function Mi(e){console.log(`
157
157
  Uninstalling Claude-Mem Cursor hooks (${e} level)...
158
- `);let t=Dr(e);if(!t)return console.error(`Invalid target: ${e}`),1;let r=x.join(t,"hooks"),n=x.join(t,"hooks.json"),o=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],s=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],i=[...o,...s];try{return Mu(r,i,n,e,t),0}catch(a){let c=a instanceof Error?a.message:String(a);return console.error(`
159
- Uninstallation failed: ${c}`),1}}function Mu(e,t,r,n,o){for(let s of t){let i=x.join(e,s);ce(i)&&(zn(i),console.log(` Removed legacy script: ${s}`))}if(ce(r)&&(zn(r),console.log(" Removed hooks.json")),n==="project"){let s=x.join(o,"rules","claude-mem-context.mdc");ce(s)&&(zn(s),console.log(" Removed context file"));let i=x.basename(process.cwd());wi(i),console.log(" Unregistered from auto-context updates")}console.log(`
158
+ `);let t=Ln(e);if(!t)return console.error(`Invalid target: ${e}`),1;let n=x.join(t,"hooks"),r=x.join(t,"hooks.json"),o=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],s=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],i=[...o,...s];try{return ju(n,i,r,e,t),0}catch(a){let c=a instanceof Error?a.message:String(a);return console.error(`
159
+ Uninstallation failed: ${c}`),1}}function ju(e,t,n,r,o){for(let s of t){let i=x.join(e,s);ue(i)&&(Xr(i),console.log(` Removed legacy script: ${s}`))}if(ue(n)&&(Xr(n),console.log(" Removed hooks.json")),r==="project"){let s=x.join(o,"rules","claude-mem-context.mdc");ue(s)&&(Xr(s),console.log(" Removed context file"));let i=x.basename(process.cwd());ki(i),console.log(" Unregistered from auto-context updates")}console.log(`
160
160
  Uninstallation complete!
161
- `),console.log("Restart Cursor to apply changes.")}function ki(){console.log(`
161
+ `),console.log("Restart Cursor to apply changes.")}function Ti(){console.log(`
162
162
  Claude-Mem Cursor Hooks Status
163
- `);let e=[{name:"Project",dir:x.join(process.cwd(),".cursor")},{name:"User",dir:x.join(Ar(),".cursor")}];process.platform==="darwin"?e.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&e.push({name:"Enterprise",dir:"/etc/cursor"});let t=!1;for(let r of e){let n=x.join(r.dir,"hooks.json"),o=x.join(r.dir,"hooks");if(ce(n)){t=!0,console.log(`${r.name}: Installed`),console.log(` Config: ${n}`);let s=null;try{s=JSON.parse(hi(n,"utf-8"))}catch(i){i instanceof Error?u.error("WORKER","Unable to parse hooks.json",{path:n},i):u.error("WORKER","Unable to parse hooks.json",{path:n},new Error(String(i))),console.log(" Mode: Unable to parse hooks.json")}if(s){let i=s?.hooks?.beforeSubmitPrompt?.[0]?.command||"";if(i.includes("worker-service.cjs")&&i.includes("hook cursor"))console.log(" Mode: Unified CLI (bun worker-service.cjs)");else{let a=["session-init.sh","context-inject.sh","save-observation.sh"],c=["session-init.ps1","context-inject.ps1","save-observation.ps1"],l=a.some(f=>ce(x.join(o,f))),p=c.some(f=>ce(x.join(o,f)));l||p?(console.log(" Mode: Legacy shell scripts (consider reinstalling for unified CLI)"),l&&p?console.log(" Platform: Both (bash + PowerShell)"):l?console.log(" Platform: Unix (bash)"):p&&console.log(" Platform: Windows (PowerShell)")):console.log(" Mode: Unknown configuration")}}if(r.name==="Project"){let i=x.join(r.dir,"rules","claude-mem-context.mdc");ce(i)?console.log(" Context: Active"):console.log(" Context: Not yet generated (will be created on first prompt)")}}else console.log(`${r.name}: Not installed`);console.log("")}return t||console.log(`No hooks installed. Run: claude-mem cursor install
164
- `),0}async function Tu(){try{let{stdout:t}=await Su("which claude || where claude",{timeout:5e3});if(t.trim())return!0}catch(t){t instanceof Error?u.debug("WORKER","Claude CLI not in PATH",{},t):u.debug("WORKER","Claude CLI not in PATH",{},new Error(String(t)))}let e=x.join(rt,"plugins");return!!ce(e)}async function xu(e,t){switch(e){case"install":{let r=t[0]||"project";return Ci(r)}case"uninstall":{let r=t[0]||"project";return vi(r)}case"status":return ki();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(`
163
+ `);let e=[{name:"Project",dir:x.join(process.cwd(),".cursor")},{name:"User",dir:x.join(Dn(),".cursor")}];process.platform==="darwin"?e.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&e.push({name:"Enterprise",dir:"/etc/cursor"});let t=!1;for(let n of e){let r=x.join(n.dir,"hooks.json"),o=x.join(n.dir,"hooks");if(ue(r)){t=!0,console.log(`${n.name}: Installed`),console.log(` Config: ${r}`);let s=null;try{s=JSON.parse(yi(r,"utf-8"))}catch(i){i instanceof Error?u.error("WORKER","Unable to parse hooks.json",{path:r},i):u.error("WORKER","Unable to parse hooks.json",{path:r},new Error(String(i))),console.log(" Mode: Unable to parse hooks.json")}if(s){let i=s?.hooks?.beforeSubmitPrompt?.[0]?.command||"";if(i.includes("worker-service.cjs")&&i.includes("hook cursor"))console.log(" Mode: Unified CLI (bun worker-service.cjs)");else{let a=["session-init.sh","context-inject.sh","save-observation.sh"],c=["session-init.ps1","context-inject.ps1","save-observation.ps1"],l=a.some(f=>ue(x.join(o,f))),p=c.some(f=>ue(x.join(o,f)));l||p?(console.log(" Mode: Legacy shell scripts (consider reinstalling for unified CLI)"),l&&p?console.log(" Platform: Both (bash + PowerShell)"):l?console.log(" Platform: Unix (bash)"):p&&console.log(" Platform: Windows (PowerShell)")):console.log(" Mode: Unknown configuration")}}if(n.name==="Project"){let i=x.join(n.dir,"rules","claude-mem-context.mdc");ue(i)?console.log(" Context: Active"):console.log(" Context: Not yet generated (will be created on first prompt)")}}else console.log(`${n.name}: Not installed`);console.log("")}return t||console.log(`No hooks installed. Run: claude-mem cursor install
164
+ `),0}async function Fu(){try{let{stdout:t}=await Pu("which claude || where claude",{timeout:5e3});if(t.trim())return!0}catch(t){t instanceof Error?u.debug("WORKER","Claude CLI not in PATH",{},t):u.debug("WORKER","Claude CLI not in PATH",{},new Error(String(t)))}let e=x.join(rt,"plugins");return!!ue(e)}async function Gu(e,t){switch(e){case"install":{let n=t[0]||"project";return bi(n)}case"uninstall":{let n=t[0]||"project";return Mi(n)}case"status":return Ti();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(`
165
165
  Claude-Mem Cursor Integration
166
166
 
167
167
  Usage: claude-mem cursor <command> [options]
@@ -185,20 +185,20 @@ Examples:
185
185
  claude-mem cursor status # Check if hooks are installed
186
186
 
187
187
  For more info: https://docs.claude-mem.ai/cursor
188
- `),0}}var Su,Ei,qt=w(()=>{"use strict";G();Pr();re();gi();Su=Eu(hu),Ei=x.join(N,"cursor-projects.json")});var eo={};Ee(eo,{checkGeminiCliHooksStatus:()=>Ri,handleGeminiCliCommand:()=>Lu,installGeminiCliHooks:()=>xi,uninstallGeminiCliHooks:()=>Ii});import Qn from"path";import{homedir as Iu}from"os";import{existsSync as dt,readFileSync as Ur,writeFileSync as _n,mkdirSync as Mi}from"fs";function Ou(e,t,r){let n=pt[r];if(!n)throw new Error(`Unknown Gemini CLI event: ${r}`);let o=e.replace(/\\/g,"\\\\"),s=t.replace(/\\/g,"\\\\");return`"${o}" "${s}" hook gemini-cli ${n}`}function Pu(e){return{matcher:"*",hooks:[{name:Xt,type:"command",command:e,timeout:Ru}]}}function $n(){if(!dt(ee))return{};let e=Ur(ee,"utf-8");try{return JSON.parse(e)}catch(t){throw t instanceof Error?u.error("WORKER","Corrupt JSON in Gemini settings",{path:ee},t):u.error("WORKER","Corrupt JSON in Gemini settings",{path:ee},new Error(String(t))),new Error(`Corrupt JSON in ${ee}, refusing to overwrite user settings`)}}function Ti(e){Mi(Lr,{recursive:!0}),_n(ee,JSON.stringify(e,null,2)+`
189
- `)}function Au(e,t){let r={...e};r.hooks||(r.hooks={});for(let[n,o]of Object.entries(t)){let s=r.hooks[n]??[];for(let i of o){let a=s.findIndex(c=>c.hooks.some(l=>l.name===Xt));if(a>=0){let c=s[a],l=c.hooks.findIndex(p=>p.name===Xt);l>=0?c.hooks[l]=i.hooks[0]:c.hooks.push(i.hooks[0])}else s.push(i)}r.hooks[n]=s}return r}function Nu(){let e="<claude-mem-context>",r=`${e}
188
+ `),0}}var Pu,wi,Xt=C(()=>{"use strict";H();Nn();re();Si();Pu=Ou(Ru),wi=x.join(A,"cursor-projects.json")});var ro={};Ee(ro,{checkGeminiCliHooksStatus:()=>Ai,handleGeminiCliCommand:()=>qu,installGeminiCliHooks:()=>Oi,uninstallGeminiCliHooks:()=>Pi});import eo from"path";import{homedir as Hu}from"os";import{existsSync as pt,readFileSync as Wn,writeFileSync as to,mkdirSync as Ii}from"fs";function Ku(e,t,n){let r=mt[n];if(!r)throw new Error(`Unknown Gemini CLI event: ${n}`);let o=e.replace(/\\/g,"\\\\"),s=t.replace(/\\/g,"\\\\");return`"${o}" "${s}" hook gemini-cli ${r}`}function Bu(e){return{matcher:"*",hooks:[{name:Qt,type:"command",command:e,timeout:Ju}]}}function no(){if(!pt(ee))return{};let e=Wn(ee,"utf-8");try{return JSON.parse(e)}catch(t){throw t instanceof Error?u.error("WORKER","Corrupt JSON in Gemini settings",{path:ee},t):u.error("WORKER","Corrupt JSON in Gemini settings",{path:ee},new Error(String(t))),new Error(`Corrupt JSON in ${ee}, refusing to overwrite user settings`)}}function Ri(e){Ii(jn,{recursive:!0}),to(ee,JSON.stringify(e,null,2)+`
189
+ `)}function Yu(e,t){let n={...e};n.hooks||(n.hooks={});for(let[r,o]of Object.entries(t)){let s=n.hooks[r]??[];for(let i of o){let a=s.findIndex(c=>c.hooks.some(l=>l.name===Qt));if(a>=0){let c=s[a],l=c.hooks.findIndex(p=>p.name===Qt);l>=0?c.hooks[l]=i.hooks[0]:c.hooks.push(i.hooks[0])}else s.push(i)}n.hooks[r]=s}return n}function Vu(){let e="<claude-mem-context>",n=`${e}
190
190
  # Memory Context from Past Sessions
191
191
 
192
192
  *No context yet. Complete your first session and context will appear here.*
193
- </claude-mem-context>`,n="";if(dt(he)&&(n=Ur(he,"utf-8")),n.includes(e))return;let o=n.length>0&&!n.endsWith(`
193
+ </claude-mem-context>`,r="";if(pt(he)&&(r=Wn(he,"utf-8")),r.includes(e))return;let o=r.length>0&&!r.endsWith(`
194
194
  `)?`
195
195
 
196
- `:n.length>0?`
197
- `:"",s=n+o+r+`
198
- `;Mi(Lr,{recursive:!0}),_n(he,s)}async function xi(){console.log(`
196
+ `:r.length>0?`
197
+ `:"",s=r+o+n+`
198
+ `;Ii(jn,{recursive:!0}),to(he,s)}async function Oi(){console.log(`
199
199
  Installing Claude-Mem Gemini CLI hooks...
200
- `);let e=lt();if(!e)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let t=ut();console.log(` Using Bun runtime: ${t}`),console.log(` Worker service: ${e}`);try{let r={};for(let s of Object.keys(pt)){let i=Ou(t,e,s);r[s]=[Pu(i)]}let n=$n(),o=Au(n,r);return Du(o),0}catch(r){let n=r instanceof Error?r.message:String(r);return console.error(`
201
- Installation failed: ${n}`),1}}function Du(e){Ti(e),console.log(` Merged hooks into ${ee}`),Nu(),console.log(` Setup context injection in ${he}`);let t=Object.keys(pt);console.log(` Registered ${t.length} hook events:`);for(let r of t){let n=pt[r];console.log(` ${r} \u2192 ${n}`)}console.log(`
200
+ `);let e=ut();if(!e)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let t=dt();console.log(` Using Bun runtime: ${t}`),console.log(` Worker service: ${e}`);try{let n={};for(let s of Object.keys(mt)){let i=Ku(t,e,s);n[s]=[Bu(i)]}let r=no(),o=Yu(r,n);return zu(o),0}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`
201
+ Installation failed: ${r}`),1}}function zu(e){Ri(e),console.log(` Merged hooks into ${ee}`),Vu(),console.log(` Setup context injection in ${he}`);let t=Object.keys(mt);console.log(` Registered ${t.length} hook events:`);for(let n of t){let r=mt[n];console.log(` ${n} \u2192 ${r}`)}console.log(`
202
202
  Installation complete!
203
203
 
204
204
  Hooks installed to: ${ee}
@@ -212,21 +212,21 @@ Next steps:
212
212
  Context Injection:
213
213
  Context from past sessions is injected via ~/.gemini/GEMINI.md
214
214
  and automatically included in Gemini CLI conversations.
215
- `)}function Ii(){if(console.log(`
215
+ `)}function Pi(){if(console.log(`
216
216
  Uninstalling Claude-Mem Gemini CLI hooks...
217
- `),!dt(ee))return console.log(" No Gemini CLI settings found \u2014 nothing to uninstall."),0;try{let e=$n();if(!e.hooks)return console.log(" No hooks found in Gemini CLI settings \u2014 nothing to uninstall."),0;let t=0;for(let[r,n]of Object.entries(e.hooks)){let o=n.map(s=>{let i=s.hooks.filter(a=>a.name!==Xt);return t+=s.hooks.length-i.length,{...s,hooks:i}}).filter(s=>s.hooks.length>0);o.length>0?e.hooks[r]=o:delete e.hooks[r]}return Object.keys(e.hooks).length===0&&delete e.hooks,Uu(e,t),0}catch(e){let t=e instanceof Error?e.message:String(e);return console.error(`
218
- Uninstallation failed: ${t}`),1}}function Uu(e,t){if(Ti(e),console.log(` Removed ${t} claude-mem hook(s) from ${ee}`),dt(he)){let r=Ur(he,"utf-8"),n=/\n?<claude-mem-context>[\s\S]*?<\/claude-mem-context>\n?/;n.test(r)&&(r=r.replace(n,""),_n(he,r),console.log(` Removed context section from ${he}`))}console.log(`
217
+ `),!pt(ee))return console.log(" No Gemini CLI settings found \u2014 nothing to uninstall."),0;try{let e=no();if(!e.hooks)return console.log(" No hooks found in Gemini CLI settings \u2014 nothing to uninstall."),0;let t=0;for(let[n,r]of Object.entries(e.hooks)){let o=r.map(s=>{let i=s.hooks.filter(a=>a.name!==Qt);return t+=s.hooks.length-i.length,{...s,hooks:i}}).filter(s=>s.hooks.length>0);o.length>0?e.hooks[n]=o:delete e.hooks[n]}return Object.keys(e.hooks).length===0&&delete e.hooks,Zu(e,t),0}catch(e){let t=e instanceof Error?e.message:String(e);return console.error(`
218
+ Uninstallation failed: ${t}`),1}}function Zu(e,t){if(Ri(e),console.log(` Removed ${t} claude-mem hook(s) from ${ee}`),pt(he)){let n=Wn(he,"utf-8"),r=/\n?<claude-mem-context>[\s\S]*?<\/claude-mem-context>\n?/;r.test(n)&&(n=n.replace(r,""),to(he,n),console.log(` Removed context section from ${he}`))}console.log(`
219
219
  Uninstallation complete!
220
- `),console.log("Restart Gemini CLI to apply changes.")}function Ri(){if(console.log(`
220
+ `),console.log("Restart Gemini CLI to apply changes.")}function Ai(){if(console.log(`
221
221
  Claude-Mem Gemini CLI Hooks Status
222
- `),!dt(ee))return console.log("Gemini CLI settings: Not found"),console.log(` Expected at: ${ee}
222
+ `),!pt(ee))return console.log("Gemini CLI settings: Not found"),console.log(` Expected at: ${ee}
223
223
  `),console.log(`No hooks installed. Run: claude-mem install --ide gemini-cli
224
- `),0;let e;try{e=$n()}catch(r){let n=r instanceof Error?r.message:String(r);return r instanceof Error?u.error("WORKER","Failed to read Gemini CLI settings",{path:ee},r):u.error("WORKER","Failed to read Gemini CLI settings",{path:ee},new Error(String(r))),console.log(`Gemini CLI settings: ${n}
224
+ `),0;let e;try{e=no()}catch(n){let r=n instanceof Error?n.message:String(n);return n instanceof Error?u.error("WORKER","Failed to read Gemini CLI settings",{path:ee},n):u.error("WORKER","Failed to read Gemini CLI settings",{path:ee},new Error(String(n))),console.log(`Gemini CLI settings: ${r}
225
225
  `),0}if(!e.hooks)return console.log(`Gemini CLI settings: Found, but no hooks configured
226
226
  `),console.log(`No hooks installed. Run: claude-mem install --ide gemini-cli
227
- `),0;let t=[];for(let[r,n]of Object.entries(e.hooks))n.some(s=>s.hooks.some(i=>i.name===Xt))&&t.push(r);if(t.length===0)return console.log(`Gemini CLI settings: Found, but no claude-mem hooks
227
+ `),0;let t=[];for(let[n,r]of Object.entries(e.hooks))r.some(s=>s.hooks.some(i=>i.name===Qt))&&t.push(n);if(t.length===0)return console.log(`Gemini CLI settings: Found, but no claude-mem hooks
228
228
  `),console.log(`Run: claude-mem install --ide gemini-cli
229
- `),0;console.log(`Settings: ${ee}`),console.log("Mode: Unified CLI (bun worker-service.cjs hook gemini-cli)"),console.log(`Events: ${t.length} of ${Object.keys(pt).length} mapped`);for(let r of t){let n=pt[r]??"unknown";console.log(` ${r} \u2192 ${n}`)}return dt(he)?Ur(he,"utf-8").includes("<claude-mem-context>")?console.log(`Context: Active (${he})`):console.log("Context: GEMINI.md exists but missing claude-mem section"):console.log("Context: No GEMINI.md found"),console.log(""),0}async function Lu(e,t){switch(e){case"install":return xi();case"uninstall":return Ii();case"status":return Ri();default:return console.log(`
229
+ `),0;console.log(`Settings: ${ee}`),console.log("Mode: Unified CLI (bun worker-service.cjs hook gemini-cli)"),console.log(`Events: ${t.length} of ${Object.keys(mt).length} mapped`);for(let n of t){let r=mt[n]??"unknown";console.log(` ${n} \u2192 ${r}`)}return pt(he)?Wn(he,"utf-8").includes("<claude-mem-context>")?console.log(`Context: Active (${he})`):console.log("Context: GEMINI.md exists but missing claude-mem section"):console.log("Context: No GEMINI.md found"),console.log(""),0}async function qu(e,t){switch(e){case"install":return Oi();case"uninstall":return Pi();case"status":return Ai();default:return console.log(`
230
230
  Claude-Mem Gemini CLI Integration
231
231
 
232
232
  Usage: claude-mem gemini-cli <command>
@@ -242,36 +242,36 @@ Examples:
242
242
  claude-mem gemini-cli uninstall # Remove hooks
243
243
 
244
244
  For more info: https://docs.claude-mem.ai/usage/gemini-provider
245
- `),0}}var Lr,ee,he,Xt,Ru,pt,to=w(()=>{"use strict";G();qt();Lr=Qn.join(Iu(),".gemini"),ee=Qn.join(Lr,"settings.json"),he=Qn.join(Lr,"GEMINI.md"),Xt="claude-mem",Ru=1e4,pt={SessionStart:"context",BeforeAgent:"session-init",AfterAgent:"observation",BeforeTool:"observation",AfterTool:"observation",PreCompress:"summarize",Notification:"observation"}});import Wu from"path";import{existsSync as ju,readFileSync as Fu,writeFileSync as ro,mkdirSync as Gu}from"fs";function Wr(e,t,r){let n=Wu.dirname(e);Gu(n,{recursive:!0});let o=`${Qt}
245
+ `),0}}var jn,ee,he,Qt,Ju,mt,oo=C(()=>{"use strict";H();Xt();jn=eo.join(Hu(),".gemini"),ee=eo.join(jn,"settings.json"),he=eo.join(jn,"GEMINI.md"),Qt="claude-mem",Ju=1e4,mt={SessionStart:"context",BeforeAgent:"session-init",AfterAgent:"observation",BeforeTool:"observation",AfterTool:"observation",PreCompress:"summarize",Notification:"observation"}});import Xu from"path";import{existsSync as Qu,readFileSync as _u,writeFileSync as so,mkdirSync as $u}from"fs";function Fn(e,t,n){let r=Xu.dirname(e);$u(r,{recursive:!0});let o=`${_t}
246
246
  ${t}
247
- ${mt}`;if(ju(e)){let s=Fu(e,"utf-8"),i=s.indexOf(Qt),a=s.indexOf(mt);i!==-1&&a!==-1?s=s.slice(0,i)+o+s.slice(a+mt.length):s=s.trimEnd()+`
247
+ ${ft}`;if(Qu(e)){let s=_u(e,"utf-8"),i=s.indexOf(_t),a=s.indexOf(ft);i!==-1&&a!==-1?s=s.slice(0,i)+o+s.slice(a+ft.length):s=s.trimEnd()+`
248
248
 
249
249
  `+o+`
250
- `,ro(e,s,"utf-8")}else r?ro(e,`${r}
250
+ `,so(e,s,"utf-8")}else n?so(e,`${n}
251
251
 
252
252
  ${o}
253
- `,"utf-8"):ro(e,o+`
254
- `,"utf-8")}var Qt,mt,no=w(()=>{"use strict";Qt="<claude-mem-context>",mt="</claude-mem-context>"});var io={};Ee(io,{checkOpenCodeStatus:()=>Xu,findBuiltPluginPath:()=>Ni,getInstalledPluginPath:()=>$t,getOpenCodeAgentsMdPath:()=>_t,getOpenCodeConfigDirectory:()=>jr,getOpenCodePluginsDirectory:()=>oo,injectContextIntoAgentsMd:()=>so,installOpenCodeIntegration:()=>Qu,installOpenCodePlugin:()=>Di,syncContextToAgentsMd:()=>Yu,uninstallOpenCodePlugin:()=>qu});import Fe from"path";import{homedir as Oi}from"os";import{fileURLToPath as Hu}from"url";import{existsSync as ft,readFileSync as Pi,writeFileSync as Ju,mkdirSync as Ku,copyFileSync as Bu,unlinkSync as Ai}from"fs";function jr(){return process.env.OPENCODE_CONFIG_DIR?process.env.OPENCODE_CONFIG_DIR:Fe.join(Oi(),".config","opencode")}function oo(){return Fe.join(jr(),"plugins")}function _t(){return Fe.join(jr(),"AGENTS.md")}function $t(){return Fe.join(oo(),"claude-mem.js")}function Ni(){let e=[Fe.join(process.env.CLAUDE_CONFIG_DIR||Fe.join(Oi(),".claude"),"plugins","marketplaces","thedotmack","dist","opencode-plugin","index.js"),Fe.join(Fe.dirname(Hu(import.meta.url)),"..","..","..","dist","opencode-plugin","index.js")];for(let t of e)if(ft(t))return t;return null}function Di(){let e=Ni();if(!e)return console.error("Could not find built OpenCode plugin bundle."),console.error(" Expected at: dist/opencode-plugin/index.js"),console.error(" Run the build first: npm run build"),1;let t=oo(),r=$t();try{return Ku(t,{recursive:!0}),Bu(e,r),console.log(` Plugin installed to: ${r}`),u.info("OPENCODE","Plugin installed",{destination:r}),0}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Failed to install OpenCode plugin: ${o}`),1}}function so(e){let t=_t();try{return Wr(t,e,"# Claude-Mem Memory Context"),u.info("OPENCODE","Context injected into AGENTS.md",{path:t}),0}catch(r){let n=r instanceof Error?r.message:String(r);return console.error(`Failed to inject context into AGENTS.md: ${n}`),1}}async function Yu(e,t){try{await zu(e,t)}catch(r){r instanceof Error?u.debug("WORKER","Worker not available during context sync",{},r):u.debug("WORKER","Worker not available during context sync",{},new Error(String(r)))}}async function Vu(){let e=zt();if(!(await fetch(`http://127.0.0.1:${e}/api/readiness`)).ok)return null;let r=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=opencode`);if(!r.ok)return null;let n=await r.text();return n&&n.trim()?n:null}async function zu(e,t){let r=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!r.ok)return;let n=await r.text();n&&n.trim()&&so(n)!==0&&u.warn("OPENCODE","Failed to inject context into AGENTS.md during sync")}function Zu(e,t){t.length===0||t==="# Claude-Mem Memory Context"?(Ai(e),console.log(" Removed empty AGENTS.md")):(Ju(e,t+`
255
- `,"utf-8"),console.log(" Cleaned context from AGENTS.md"))}function qu(){let e=!1,t=$t();if(ft(t))try{Ai(t),console.log(` Removed plugin: ${t}`)}catch(n){let o=n instanceof Error?n.message:String(n);console.error(` Failed to remove plugin: ${o}`),e=!0}let r=_t();if(ft(r)){let n;try{n=Pi(r,"utf-8")}catch(i){let a=i instanceof Error?i.message:String(i);console.error(` Failed to read AGENTS.md: ${a}`),e=!0,n=""}let o=n.indexOf(Qt),s=n.indexOf(mt);if(o!==-1&&s!==-1){n=n.slice(0,o).trimEnd()+`
256
- `+n.slice(s+mt.length).trimStart();let i=n.trim();try{Zu(r,i)}catch(a){let c=a instanceof Error?a.message:String(a);console.error(` Failed to clean AGENTS.md: ${c}`),e=!0}}}return e?1:0}function Xu(){console.log(`
253
+ `,"utf-8"):so(e,o+`
254
+ `,"utf-8")}var _t,ft,io=C(()=>{"use strict";_t="<claude-mem-context>",ft="</claude-mem-context>"});var lo={};Ee(lo,{checkOpenCodeStatus:()=>ld,findBuiltPluginPath:()=>Li,getInstalledPluginPath:()=>en,getOpenCodeAgentsMdPath:()=>$t,getOpenCodeConfigDirectory:()=>Gn,getOpenCodePluginsDirectory:()=>ao,injectContextIntoAgentsMd:()=>co,installOpenCodeIntegration:()=>ud,installOpenCodePlugin:()=>Wi,syncContextToAgentsMd:()=>od,uninstallOpenCodePlugin:()=>cd});import Ge from"path";import{homedir as Ni}from"os";import{fileURLToPath as ed}from"url";import{existsSync as gt,readFileSync as Di,writeFileSync as td,mkdirSync as nd,copyFileSync as rd,unlinkSync as Ui}from"fs";function Gn(){return process.env.OPENCODE_CONFIG_DIR?process.env.OPENCODE_CONFIG_DIR:Ge.join(Ni(),".config","opencode")}function ao(){return Ge.join(Gn(),"plugins")}function $t(){return Ge.join(Gn(),"AGENTS.md")}function en(){return Ge.join(ao(),"claude-mem.js")}function Li(){let e=[Ge.join(process.env.CLAUDE_CONFIG_DIR||Ge.join(Ni(),".claude"),"plugins","marketplaces","thedotmack","dist","opencode-plugin","index.js"),Ge.join(Ge.dirname(ed(import.meta.url)),"..","..","..","dist","opencode-plugin","index.js")];for(let t of e)if(gt(t))return t;return null}function Wi(){let e=Li();if(!e)return console.error("Could not find built OpenCode plugin bundle."),console.error(" Expected at: dist/opencode-plugin/index.js"),console.error(" Run the build first: npm run build"),1;let t=ao(),n=en();try{return nd(t,{recursive:!0}),rd(e,n),console.log(` Plugin installed to: ${n}`),u.info("OPENCODE","Plugin installed",{destination:n}),0}catch(r){let o=r instanceof Error?r.message:String(r);return console.error(`Failed to install OpenCode plugin: ${o}`),1}}function co(e){let t=$t();try{return Fn(t,e,"# Claude-Mem Memory Context"),u.info("OPENCODE","Context injected into AGENTS.md",{path:t}),0}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`Failed to inject context into AGENTS.md: ${r}`),1}}async function od(e,t){try{await id(e,t)}catch(n){n instanceof Error?u.debug("WORKER","Worker not available during context sync",{},n):u.debug("WORKER","Worker not available during context sync",{},new Error(String(n)))}}async function sd(){let e=Zt();if(!(await fetch(`http://127.0.0.1:${e}/api/readiness`)).ok)return null;let n=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=opencode`);if(!n.ok)return null;let r=await n.text();return r&&r.trim()?r:null}async function id(e,t){let n=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!n.ok)return;let r=await n.text();r&&r.trim()&&co(r)!==0&&u.warn("OPENCODE","Failed to inject context into AGENTS.md during sync")}function ad(e,t){t.length===0||t==="# Claude-Mem Memory Context"?(Ui(e),console.log(" Removed empty AGENTS.md")):(td(e,t+`
255
+ `,"utf-8"),console.log(" Cleaned context from AGENTS.md"))}function cd(){let e=!1,t=en();if(gt(t))try{Ui(t),console.log(` Removed plugin: ${t}`)}catch(r){let o=r instanceof Error?r.message:String(r);console.error(` Failed to remove plugin: ${o}`),e=!0}let n=$t();if(gt(n)){let r;try{r=Di(n,"utf-8")}catch(i){let a=i instanceof Error?i.message:String(i);console.error(` Failed to read AGENTS.md: ${a}`),e=!0,r=""}let o=r.indexOf(_t),s=r.indexOf(ft);if(o!==-1&&s!==-1){r=r.slice(0,o).trimEnd()+`
256
+ `+r.slice(s+ft.length).trimStart();let i=r.trim();try{ad(n,i)}catch(a){let c=a instanceof Error?a.message:String(a);console.error(` Failed to clean AGENTS.md: ${c}`),e=!0}}}return e?1:0}function ld(){console.log(`
257
257
  Claude-Mem OpenCode Integration Status
258
- `);let e=jr(),t=$t(),r=_t();if(console.log(`Config directory: ${e}`),console.log(` Exists: ${ft(e)?"yes":"no"}`),console.log(""),console.log(`Plugin: ${t}`),console.log(` Installed: ${ft(t)?"yes":"no"}`),console.log(""),console.log(`Context (AGENTS.md): ${r}`),ft(r)){let o=Pi(r,"utf-8").includes(Qt);console.log(" Exists: yes"),console.log(` Has claude-mem context: ${o?"yes":"no"}`)}else console.log(" Exists: no");return console.log(""),0}async function Qu(){console.log(`
258
+ `);let e=Gn(),t=en(),n=$t();if(console.log(`Config directory: ${e}`),console.log(` Exists: ${gt(e)?"yes":"no"}`),console.log(""),console.log(`Plugin: ${t}`),console.log(` Installed: ${gt(t)?"yes":"no"}`),console.log(""),console.log(`Context (AGENTS.md): ${n}`),gt(n)){let o=Di(n,"utf-8").includes(_t);console.log(" Exists: yes"),console.log(` Has claude-mem context: ${o?"yes":"no"}`)}else console.log(" Exists: no");return console.log(""),0}async function ud(){console.log(`
259
259
  Installing Claude-Mem for OpenCode...
260
- `);let e=Di();if(e!==0)return e;let r=`# Memory Context from Past Sessions
260
+ `);let e=Wi();if(e!==0)return e;let n=`# Memory Context from Past Sessions
261
261
 
262
262
  *No context yet. Complete your first session and context will appear here.*
263
263
 
264
- Use claude-mem search tools for manual memory queries.`,n="placeholder";try{let s=await Vu();s&&(r=s,n="existing memory")}catch(s){s instanceof Error?u.debug("WORKER","Worker not available during OpenCode install",{},s):u.debug("WORKER","Worker not available during OpenCode install",{},new Error(String(s)))}return so(r)!==0?u.warn("OPENCODE",`Failed to inject ${n} context into AGENTS.md during install`):console.log(n==="existing memory"?" Context injected from existing memory":" Placeholder context created (worker not running)"),console.log(`
264
+ Use claude-mem search tools for manual memory queries.`,r="placeholder";try{let s=await sd();s&&(n=s,r="existing memory")}catch(s){s instanceof Error?u.debug("WORKER","Worker not available during OpenCode install",{},s):u.debug("WORKER","Worker not available during OpenCode install",{},new Error(String(s)))}return co(n)!==0?u.warn("OPENCODE",`Failed to inject ${r} context into AGENTS.md during install`):console.log(r==="existing memory"?" Context injected from existing memory":" Placeholder context created (worker not running)"),console.log(`
265
265
  Installation complete!
266
266
 
267
- Plugin installed to: ${$t()}
268
- Context file: ${_t()}
267
+ Plugin installed to: ${en()}
268
+ Context file: ${$t()}
269
269
 
270
270
  Next steps:
271
271
  1. Start claude-mem worker: npx claude-mem start
272
272
  2. Restart OpenCode to load the plugin
273
273
  3. Memory capture is automatic from then on
274
- `),0}var ao=w(()=>{"use strict";G();no();Pr()});var uo={};Ee(uo,{checkWindsurfHooksStatus:()=>Ji,handleWindsurfCommand:()=>cd,installWindsurfHooks:()=>Gi,readWindsurfRegistry:()=>Jr,registerWindsurfProject:()=>ji,uninstallWindsurfHooks:()=>Hi,unregisterWindsurfProject:()=>Fi,updateWindsurfContextForProject:()=>ed,writeWindsurfContextFile:()=>lo,writeWindsurfRegistry:()=>co});import le from"path";import{homedir as _u}from"os";import{existsSync as ht,readFileSync as Gr,writeFileSync as er,unlinkSync as Li,mkdirSync as Hr,renameSync as $u}from"fs";function Jr(){try{return ht(gt)?JSON.parse(Gr(gt,"utf-8")):{}}catch(e){return e instanceof Error?u.error("WORKER","Failed to read registry, using empty",{file:gt},e):u.error("WORKER","Failed to read registry, using empty",{file:gt},new Error(String(e))),{}}}function co(e){let t=le.dirname(gt);Hr(t,{recursive:!0}),er(gt,JSON.stringify(e,null,2))}function ji(e){let t=Jr();t[e]={installedAt:new Date().toISOString()},co(t),u.info("WINDSURF","Registered project for auto-context updates",{workspacePath:e})}function Fi(e){let t=Jr();t[e]&&(delete t[e],co(t),u.info("WINDSURF","Unregistered project",{workspacePath:e}))}async function ed(e,t,r){if(Jr()[t])try{let s=await fetch(`http://127.0.0.1:${r}/api/context/inject?project=${encodeURIComponent(e)}`);if(!s.ok)return;let i=await s.text();if(!i||!i.trim())return;lo(t,i),u.debug("WINDSURF","Updated context file",{projectName:e,workspacePath:t})}catch(s){s instanceof Error?u.error("WORKER","Failed to update context file",{projectName:e,workspacePath:t},s):u.error("WORKER","Failed to update context file",{projectName:e,workspacePath:t},new Error(String(s)))}}function lo(e,t){let r=le.join(e,".windsurf","rules"),n=le.join(r,"claude-mem-context.md"),o=`${n}.tmp`;Hr(r,{recursive:!0});let s=`# Memory Context from Past Sessions
274
+ `),0}var uo=C(()=>{"use strict";H();io();Nn()});var fo={};Ee(fo,{checkWindsurfHooksStatus:()=>Yi,handleWindsurfCommand:()=>Cd,installWindsurfHooks:()=>Ki,readWindsurfRegistry:()=>Bn,registerWindsurfProject:()=>Hi,uninstallWindsurfHooks:()=>Bi,unregisterWindsurfProject:()=>Ji,updateWindsurfContextForProject:()=>md,writeWindsurfContextFile:()=>mo,writeWindsurfRegistry:()=>po});import de from"path";import{homedir as dd}from"os";import{existsSync as Et,readFileSync as Jn,writeFileSync as tn,unlinkSync as Fi,mkdirSync as Kn,renameSync as pd}from"fs";function Bn(){try{return Et(ht)?JSON.parse(Jn(ht,"utf-8")):{}}catch(e){return e instanceof Error?u.error("WORKER","Failed to read registry, using empty",{file:ht},e):u.error("WORKER","Failed to read registry, using empty",{file:ht},new Error(String(e))),{}}}function po(e){let t=de.dirname(ht);Kn(t,{recursive:!0}),tn(ht,JSON.stringify(e,null,2))}function Hi(e){let t=Bn();t[e]={installedAt:new Date().toISOString()},po(t),u.info("WINDSURF","Registered project for auto-context updates",{workspacePath:e})}function Ji(e){let t=Bn();t[e]&&(delete t[e],po(t),u.info("WINDSURF","Unregistered project",{workspacePath:e}))}async function md(e,t,n){if(Bn()[t])try{let s=await fetch(`http://127.0.0.1:${n}/api/context/inject?project=${encodeURIComponent(e)}`);if(!s.ok)return;let i=await s.text();if(!i||!i.trim())return;mo(t,i),u.debug("WINDSURF","Updated context file",{projectName:e,workspacePath:t})}catch(s){s instanceof Error?u.error("WORKER","Failed to update context file",{projectName:e,workspacePath:t},s):u.error("WORKER","Failed to update context file",{projectName:e,workspacePath:t},new Error(String(s)))}}function mo(e,t){let n=de.join(e,".windsurf","rules"),r=de.join(n,"claude-mem-context.md"),o=`${r}.tmp`;Kn(n,{recursive:!0});let s=`# Memory Context from Past Sessions
275
275
 
276
276
  The following context is from claude-mem, a persistent memory system that tracks your coding sessions.
277
277
 
@@ -279,16 +279,16 @@ ${t}
279
279
 
280
280
  ---
281
281
  *Auto-updated by claude-mem after each session. Use MCP search tools for detailed queries.*
282
- `;s.length>Ui&&(s=s.slice(0,Ui-50)+`
282
+ `;s.length>ji&&(s=s.slice(0,ji-50)+`
283
283
 
284
284
  *[Truncated \u2014 use MCP search for full history]*
285
- `),er(o,s),$u(o,n)}function td(e,t,r){let o={pre_user_prompt:"session-init",post_write_code:"file-edit",post_run_command:"observation",post_mcp_tool_use:"observation",post_cascade_response:"observation"}[r]??"observation";return`"${e}" "${t}" hook windsurf ${o}`}function rd(e,t,r){Hr(Wi,{recursive:!0});let n={hooks:{}};if(ht(V))try{n=JSON.parse(Gr(V,"utf-8")),n.hooks||(n.hooks={})}catch(o){throw o instanceof Error?u.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:V},o):u.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:V},new Error(String(o))),new Error(`Corrupt hooks.json at ${V}, refusing to overwrite`)}for(let o of Fr){let i={command:td(e,t,o),show_output:!1,working_directory:r},a=(n.hooks[o]??[]).filter(c=>!c.command.includes("worker-service")||!c.command.includes("windsurf"));n.hooks[o]=[...a,i]}er(V,JSON.stringify(n,null,2))}async function Gi(){console.log(`
285
+ `),tn(o,s),pd(o,r)}function fd(e,t,n){let o={pre_user_prompt:"session-init",post_write_code:"file-edit",post_run_command:"observation",post_mcp_tool_use:"observation",post_cascade_response:"observation"}[n]??"observation";return`"${e}" "${t}" hook windsurf ${o}`}function gd(e,t,n){Kn(Gi,{recursive:!0});let r={hooks:{}};if(Et(z))try{r=JSON.parse(Jn(z,"utf-8")),r.hooks||(r.hooks={})}catch(o){throw o instanceof Error?u.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:z},o):u.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:z},new Error(String(o))),new Error(`Corrupt hooks.json at ${z}, refusing to overwrite`)}for(let o of Hn){let i={command:fd(e,t,o),show_output:!1,working_directory:n},a=(r.hooks[o]??[]).filter(c=>!c.command.includes("worker-service")||!c.command.includes("windsurf"));r.hooks[o]=[...a,i]}tn(z,JSON.stringify(r,null,2))}async function Ki(){console.log(`
286
286
  Installing Claude-Mem Windsurf hooks (user level)...
287
- `);let e=lt();if(!e)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let t=ut();if(!t)return console.error("Could not find Bun runtime"),console.error(" Install Bun: curl -fsSL https://bun.sh/install | bash"),1;let r=le.dirname(e);console.log(` Using Bun runtime: ${t}`),console.log(` Worker service: ${e}`);let n=process.cwd();try{return await nd(t,e,r,n),0}catch(o){let s=o instanceof Error?o.message:String(o);return console.error(`
288
- Installation failed: ${s}`),1}}async function nd(e,t,r,n){rd(e,t,r),console.log(" Created/merged hooks.json"),await od(n),console.log(`
287
+ `);let e=ut();if(!e)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let t=dt();if(!t)return console.error("Could not find Bun runtime"),console.error(" Install Bun: curl -fsSL https://bun.sh/install | bash"),1;let n=de.dirname(e);console.log(` Using Bun runtime: ${t}`),console.log(` Worker service: ${e}`);let r=process.cwd();try{return await hd(t,e,n,r),0}catch(o){let s=o instanceof Error?o.message:String(o);return console.error(`
288
+ Installation failed: ${s}`),1}}async function hd(e,t,n,r){gd(e,t,n),console.log(" Created/merged hooks.json"),await Ed(r),console.log(`
289
289
  Installation complete!
290
290
 
291
- Hooks installed to: ${V}
291
+ Hooks installed to: ${z}
292
292
  Using unified CLI: bun worker-service.cjs hook windsurf <command>
293
293
 
294
294
  Events registered:
@@ -302,21 +302,21 @@ Next steps:
302
302
  1. Start claude-mem worker: claude-mem start
303
303
  2. Restart Windsurf to load the hooks
304
304
  3. Context is injected via .windsurf/rules/claude-mem-context.md (workspace-level)
305
- `)}async function od(e){let t=zt(),r=le.basename(e),n=!1;console.log(" Generating initial context...");try{n=await sd(t,r,e)}catch(o){o instanceof Error?u.debug("WORKER","Worker not running during install",{},o):u.debug("WORKER","Worker not running during install",{},new Error(String(o)))}if(!n){let o=le.join(e,".windsurf","rules");Hr(o,{recursive:!0});let s=le.join(o,"claude-mem-context.md");er(s,`# Memory Context from Past Sessions
305
+ `)}async function Ed(e){let t=Zt(),n=de.basename(e),r=!1;console.log(" Generating initial context...");try{r=await Sd(t,n,e)}catch(o){o instanceof Error?u.debug("WORKER","Worker not running during install",{},o):u.debug("WORKER","Worker not running during install",{},new Error(String(o)))}if(!r){let o=de.join(e,".windsurf","rules");Kn(o,{recursive:!0});let s=de.join(o,"claude-mem-context.md");tn(s,`# Memory Context from Past Sessions
306
306
 
307
307
  *No context yet. Complete your first session and context will appear here.*
308
308
 
309
309
  Use claude-mem's MCP search tools for manual memory queries.
310
- `),console.log(" Created placeholder context file (will populate after first session)")}ji(e),console.log(" Registered for auto-context updates")}async function sd(e,t,r){if(!(await fetch(`http://127.0.0.1:${e}/api/readiness`)).ok)return!1;let o=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!o.ok)return!1;let s=await o.text();return s&&s.trim()?(lo(r,s),console.log(" Generated initial context from existing memory"),!0):!1}function Hi(){if(console.log(`
310
+ `),console.log(" Created placeholder context file (will populate after first session)")}Hi(e),console.log(" Registered for auto-context updates")}async function Sd(e,t,n){if(!(await fetch(`http://127.0.0.1:${e}/api/readiness`)).ok)return!1;let o=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!o.ok)return!1;let s=await o.text();return s&&s.trim()?(mo(n,s),console.log(" Generated initial context from existing memory"),!0):!1}function Bi(){if(console.log(`
311
311
  Uninstalling Claude-Mem Windsurf hooks...
312
- `),ht(V))try{id()}catch(t){t instanceof Error?u.error("WORKER","Could not parse hooks.json during uninstall",{path:V},t):u.error("WORKER","Could not parse hooks.json during uninstall",{path:V},new Error(String(t))),console.log(" Warning: could not parse hooks.json \u2014 leaving file intact to preserve other hooks")}else console.log(" No hooks.json found");let e=process.cwd();try{return ad(e),0}catch(t){let r=t instanceof Error?t.message:String(t);return console.error(`
313
- Uninstallation failed: ${r}`),1}}function id(){let t={hooks:JSON.parse(Gr(V,"utf-8")).hooks??{}};for(let r of Fr){let n=t.hooks[r]??[];n.length>0&&(t.hooks[r]=n.filter(o=>!o.command.includes("worker-service")||!o.command.includes("windsurf")),t.hooks[r].length===0&&delete t.hooks[r])}Object.keys(t.hooks).length===0?(Li(V),console.log(" Removed hooks.json (no hooks remaining)")):(er(V,JSON.stringify(t,null,2)),console.log(" Removed claude-mem entries from hooks.json (other hooks preserved)"))}function ad(e){let t=le.join(e,".windsurf","rules","claude-mem-context.md");ht(t)&&(Li(t),console.log(" Removed context file")),Fi(e),console.log(" Unregistered from auto-context updates"),console.log(`
312
+ `),Et(z))try{yd()}catch(t){t instanceof Error?u.error("WORKER","Could not parse hooks.json during uninstall",{path:z},t):u.error("WORKER","Could not parse hooks.json during uninstall",{path:z},new Error(String(t))),console.log(" Warning: could not parse hooks.json \u2014 leaving file intact to preserve other hooks")}else console.log(" No hooks.json found");let e=process.cwd();try{return wd(e),0}catch(t){let n=t instanceof Error?t.message:String(t);return console.error(`
313
+ Uninstallation failed: ${n}`),1}}function yd(){let t={hooks:JSON.parse(Jn(z,"utf-8")).hooks??{}};for(let n of Hn){let r=t.hooks[n]??[];r.length>0&&(t.hooks[n]=r.filter(o=>!o.command.includes("worker-service")||!o.command.includes("windsurf")),t.hooks[n].length===0&&delete t.hooks[n])}Object.keys(t.hooks).length===0?(Fi(z),console.log(" Removed hooks.json (no hooks remaining)")):(tn(z,JSON.stringify(t,null,2)),console.log(" Removed claude-mem entries from hooks.json (other hooks preserved)"))}function wd(e){let t=de.join(e,".windsurf","rules","claude-mem-context.md");Et(t)&&(Fi(t),console.log(" Removed context file")),Ji(e),console.log(" Unregistered from auto-context updates"),console.log(`
314
314
  Uninstallation complete!
315
- `),console.log("Restart Windsurf to apply changes.")}function Ji(){if(console.log(`
315
+ `),console.log("Restart Windsurf to apply changes.")}function Yi(){if(console.log(`
316
316
  Claude-Mem Windsurf Hooks Status
317
- `),ht(V)){console.log("User-level: Installed"),console.log(` Config: ${V}`);let e=null;try{e=JSON.parse(Gr(V,"utf-8"))}catch(r){let n=r instanceof Error?r:new Error(String(r));u.error("WORKER","Unable to parse hooks.json",{path:V},n),console.log(" Mode: Unable to parse hooks.json")}if(e){let r=Fr.filter(n=>(e?.hooks?.[n]??[]).some(o=>o.command.includes("worker-service")&&o.command.includes("windsurf")));console.log(` Events: ${r.length}/${Fr.length} registered`);for(let n of r)console.log(` - ${n}`)}let t=le.join(process.cwd(),".windsurf","rules","claude-mem-context.md");ht(t)?console.log(" Context: Active (current workspace)"):console.log(" Context: Not yet generated for this workspace")}else console.log("User-level: Not installed"),console.log(`
317
+ `),Et(z)){console.log("User-level: Installed"),console.log(` Config: ${z}`);let e=null;try{e=JSON.parse(Jn(z,"utf-8"))}catch(n){let r=n instanceof Error?n:new Error(String(n));u.error("WORKER","Unable to parse hooks.json",{path:z},r),console.log(" Mode: Unable to parse hooks.json")}if(e){let n=Hn.filter(r=>(e?.hooks?.[r]??[]).some(o=>o.command.includes("worker-service")&&o.command.includes("windsurf")));console.log(` Events: ${n.length}/${Hn.length} registered`);for(let r of n)console.log(` - ${r}`)}let t=de.join(process.cwd(),".windsurf","rules","claude-mem-context.md");Et(t)?console.log(" Context: Active (current workspace)"):console.log(" Context: Not yet generated for this workspace")}else console.log("User-level: Not installed"),console.log(`
318
318
  No hooks installed. Run: claude-mem windsurf install
319
- `);return console.log(""),0}async function cd(e,t){switch(e){case"install":return Gi();case"uninstall":return Hi();case"status":return Ji();default:return console.log(`
319
+ `);return console.log(""),0}async function Cd(e,t){switch(e){case"install":return Ki();case"uninstall":return Bi();case"status":return Yi();default:return console.log(`
320
320
  Claude-Mem Windsurf Integration
321
321
 
322
322
  Usage: claude-mem windsurf <command>
@@ -332,33 +332,33 @@ Examples:
332
332
  claude-mem windsurf status # Check if hooks are installed
333
333
 
334
334
  For more info: https://docs.claude-mem.ai/windsurf
335
- `),0}}var Wi,V,Ui,gt,Fr,po=w(()=>{"use strict";G();Pr();re();qt();Wi=le.join(_u(),".codeium","windsurf"),V=le.join(Wi,"hooks.json"),Ui=6e3,gt=le.join(N,"windsurf-projects.json"),Fr=["pre_user_prompt","post_write_code","post_run_command","post_mcp_tool_use","post_cascade_response"]});var go={};Ee(go,{checkOpenClawStatus:()=>gd,findPluginManifestPath:()=>zi,findPluginSkillsDirectory:()=>Zi,findPreBuiltPluginDirectory:()=>Vi,getOpenClawClaudeMemExtensionDirectory:()=>rr,getOpenClawConfigDirectory:()=>tr,getOpenClawConfigFilePath:()=>Et,getOpenClawExtensionsDirectory:()=>Yi,installOpenClawIntegration:()=>hd,installOpenClawPlugin:()=>Xi,uninstallOpenClawPlugin:()=>fd});import H from"path";import{homedir as Kr}from"os";import{existsSync as be,readFileSync as ld,writeFileSync as Ki,mkdirSync as Bi,cpSync as mo,rmSync as ud}from"fs";function tr(){return H.join(Kr(),".openclaw")}function Yi(){return H.join(tr(),"extensions")}function rr(){return H.join(Yi(),"claude-mem")}function Et(){return H.join(tr(),"openclaw.json")}function Vi(){let e=[H.join(process.env.CLAUDE_CONFIG_DIR||H.join(Kr(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let t of e){let r=H.join(t,"openclaw","dist"),n=H.join(r,"index.js");if(be(n))return r}return null}function zi(){let e=[H.join(process.env.CLAUDE_CONFIG_DIR||H.join(Kr(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let t of e){let r=H.join(t,"openclaw","openclaw.plugin.json");if(be(r))return r}return null}function Zi(){let e=[H.join(process.env.CLAUDE_CONFIG_DIR||H.join(Kr(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let t of e){let r=H.join(t,"openclaw","skills");if(be(r))return r}return null}function fo(){let e=Et();if(!be(e))return{};try{return JSON.parse(ld(e,"utf-8"))}catch(t){let r=t instanceof Error?t:new Error(String(t));throw u.error("WORKER","Failed to parse openclaw.json",{path:e},r),r}}function qi(e){let t=tr();Bi(t,{recursive:!0}),Ki(Et(),JSON.stringify(e,null,2)+`
336
- `,"utf-8")}function dd(e,t="openclaw",r=!0){let n=fo();if(n.plugins||(n.plugins={}),n.plugins.slots||(n.plugins.slots={}),n.plugins.entries||(n.plugins.entries={}),n.plugins.slots.memory="claude-mem",!n.plugins.entries["claude-mem"])n.plugins.entries["claude-mem"]={enabled:!0,config:{workerPort:e,project:t,syncMemoryFile:r}};else{n.plugins.entries["claude-mem"].enabled=!0,n.plugins.entries["claude-mem"].config||(n.plugins.entries["claude-mem"].config={});let o=n.plugins.entries["claude-mem"].config;o.workerPort===void 0&&(o.workerPort=e),o.project===void 0&&(o.project=t),o.syncMemoryFile===void 0&&(o.syncMemoryFile=r)}qi(n)}function pd(){let e=Et();if(!be(e))return;let t=fo();t.plugins?.entries?.["claude-mem"]&&delete t.plugins.entries["claude-mem"],t.plugins?.slots?.memory==="claude-mem"&&delete t.plugins.slots.memory,qi(t)}function Xi(){let e=Vi();if(!e)return console.error("Could not find pre-built OpenClaw plugin bundle."),console.error(" Expected at: openclaw/dist/index.js"),console.error(" Ensure the npm package includes the openclaw directory."),1;let t=rr(),r=H.join(t,"dist"),n=zi(),o=Zi(),s={name:"claude-mem",version:"1.0.0",type:"module",main:"dist/index.js",openclaw:{extensions:["./dist/index.js"]}};try{return Bi(r,{recursive:!0}),md(e,r,t,n,o,s),0}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Failed to install OpenClaw plugin: ${a}`),1}}function md(e,t,r,n,o,s){if(mo(e,t,{recursive:!0,force:!0}),console.log(` Plugin dist copied to: ${t}`),n){let a=H.join(r,"openclaw.plugin.json");mo(n,a,{force:!0}),console.log(` Plugin manifest copied to: ${a}`)}if(o){let a=H.join(r,"skills");mo(o,a,{recursive:!0,force:!0}),console.log(` Skills copied to: ${a}`)}Ki(H.join(r,"package.json"),JSON.stringify(s,null,2)+`
337
- `,"utf-8");let i=K.getInt("CLAUDE_MEM_WORKER_PORT");dd(i),console.log(" Registered in openclaw.json"),u.info("OPENCLAW","Plugin installed",{destination:r})}function fd(){let e=!1,t=rr();if(be(t))try{ud(t,{recursive:!0,force:!0}),console.log(` Removed extension: ${t}`)}catch(r){let n=r instanceof Error?r.message:String(r);console.error(` Failed to remove extension directory: ${n}`),e=!0}try{pd(),console.log(" Unregistered from openclaw.json")}catch(r){let n=r instanceof Error?r.message:String(r);console.error(` Failed to update openclaw.json: ${n}`),e=!0}return e?1:0}function gd(){console.log(`
335
+ `),0}}var Gi,z,ji,ht,Hn,go=C(()=>{"use strict";H();Nn();re();Xt();Gi=de.join(dd(),".codeium","windsurf"),z=de.join(Gi,"hooks.json"),ji=6e3,ht=de.join(A,"windsurf-projects.json"),Hn=["pre_user_prompt","post_write_code","post_run_command","post_mcp_tool_use","post_cascade_response"]});var So={};Ee(So,{checkOpenClawStatus:()=>Id,findPluginManifestPath:()=>Xi,findPluginSkillsDirectory:()=>Qi,findPreBuiltPluginDirectory:()=>qi,getOpenClawClaudeMemExtensionDirectory:()=>rn,getOpenClawConfigDirectory:()=>nn,getOpenClawConfigFilePath:()=>St,getOpenClawExtensionsDirectory:()=>Zi,installOpenClawIntegration:()=>Rd,installOpenClawPlugin:()=>$i,uninstallOpenClawPlugin:()=>xd});import J from"path";import{homedir as Yn}from"os";import{existsSync as be,readFileSync as vd,writeFileSync as Vi,mkdirSync as zi,cpSync as ho,rmSync as kd}from"fs";function nn(){return J.join(Yn(),".openclaw")}function Zi(){return J.join(nn(),"extensions")}function rn(){return J.join(Zi(),"claude-mem")}function St(){return J.join(nn(),"openclaw.json")}function qi(){let e=[J.join(process.env.CLAUDE_CONFIG_DIR||J.join(Yn(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let t of e){let n=J.join(t,"openclaw","dist"),r=J.join(n,"index.js");if(be(r))return n}return null}function Xi(){let e=[J.join(process.env.CLAUDE_CONFIG_DIR||J.join(Yn(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let t of e){let n=J.join(t,"openclaw","openclaw.plugin.json");if(be(n))return n}return null}function Qi(){let e=[J.join(process.env.CLAUDE_CONFIG_DIR||J.join(Yn(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let t of e){let n=J.join(t,"openclaw","skills");if(be(n))return n}return null}function Eo(){let e=St();if(!be(e))return{};try{return JSON.parse(vd(e,"utf-8"))}catch(t){let n=t instanceof Error?t:new Error(String(t));throw u.error("WORKER","Failed to parse openclaw.json",{path:e},n),n}}function _i(e){let t=nn();zi(t,{recursive:!0}),Vi(St(),JSON.stringify(e,null,2)+`
336
+ `,"utf-8")}function bd(e,t="openclaw",n=!0){let r=Eo();if(r.plugins||(r.plugins={}),r.plugins.slots||(r.plugins.slots={}),r.plugins.entries||(r.plugins.entries={}),r.plugins.slots.memory="claude-mem",!r.plugins.entries["claude-mem"])r.plugins.entries["claude-mem"]={enabled:!0,config:{workerPort:e,project:t,syncMemoryFile:n}};else{r.plugins.entries["claude-mem"].enabled=!0,r.plugins.entries["claude-mem"].config||(r.plugins.entries["claude-mem"].config={});let o=r.plugins.entries["claude-mem"].config;o.workerPort===void 0&&(o.workerPort=e),o.project===void 0&&(o.project=t),o.syncMemoryFile===void 0&&(o.syncMemoryFile=n)}_i(r)}function Md(){let e=St();if(!be(e))return;let t=Eo();t.plugins?.entries?.["claude-mem"]&&delete t.plugins.entries["claude-mem"],t.plugins?.slots?.memory==="claude-mem"&&delete t.plugins.slots.memory,_i(t)}function $i(){let e=qi();if(!e)return console.error("Could not find pre-built OpenClaw plugin bundle."),console.error(" Expected at: openclaw/dist/index.js"),console.error(" Ensure the npm package includes the openclaw directory."),1;let t=rn(),n=J.join(t,"dist"),r=Xi(),o=Qi(),s={name:"claude-mem",version:"1.0.0",type:"module",main:"dist/index.js",openclaw:{extensions:["./dist/index.js"]}};try{return zi(n,{recursive:!0}),Td(e,n,t,r,o,s),0}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Failed to install OpenClaw plugin: ${a}`),1}}function Td(e,t,n,r,o,s){if(ho(e,t,{recursive:!0,force:!0}),console.log(` Plugin dist copied to: ${t}`),r){let a=J.join(n,"openclaw.plugin.json");ho(r,a,{force:!0}),console.log(` Plugin manifest copied to: ${a}`)}if(o){let a=J.join(n,"skills");ho(o,a,{recursive:!0,force:!0}),console.log(` Skills copied to: ${a}`)}Vi(J.join(n,"package.json"),JSON.stringify(s,null,2)+`
337
+ `,"utf-8");let i=B.getInt("CLAUDE_MEM_WORKER_PORT");bd(i),console.log(" Registered in openclaw.json"),u.info("OPENCLAW","Plugin installed",{destination:n})}function xd(){let e=!1,t=rn();if(be(t))try{kd(t,{recursive:!0,force:!0}),console.log(` Removed extension: ${t}`)}catch(n){let r=n instanceof Error?n.message:String(n);console.error(` Failed to remove extension directory: ${r}`),e=!0}try{Md(),console.log(" Unregistered from openclaw.json")}catch(n){let r=n instanceof Error?n.message:String(n);console.error(` Failed to update openclaw.json: ${r}`),e=!0}return e?1:0}function Id(){console.log(`
338
338
  Claude-Mem OpenClaw Integration Status
339
- `);let e=tr(),t=rr(),r=Et(),n=H.join(t,"dist","index.js");if(console.log(`Config directory: ${e}`),console.log(` Exists: ${be(e)?"yes":"no"}`),console.log(""),console.log(`Extension directory: ${t}`),console.log(` Exists: ${be(t)?"yes":"no"}`),console.log(` Plugin entry: ${be(n)?"yes":"no"}`),console.log(""),console.log(`Config (openclaw.json): ${r}`),be(r)){let o=fo(),s=o.plugins?.entries?.["claude-mem"]!==void 0,i=o.plugins?.entries?.["claude-mem"]?.enabled===!0,a=o.plugins?.slots?.memory==="claude-mem";if(console.log(" Exists: yes"),console.log(` Registered: ${s?"yes":"no"}`),console.log(` Enabled: ${i?"yes":"no"}`),console.log(` Memory slot: ${a?"yes":"no"}`),s){let c=o.plugins.entries["claude-mem"].config;c&&(console.log(` Worker port: ${c.workerPort??"default"}`),console.log(` Project: ${c.project??"default"}`),console.log(` Sync MEMORY.md: ${c.syncMemoryFile??"default"}`))}}else console.log(" Exists: no");return console.log(""),0}async function hd(){console.log(`
339
+ `);let e=nn(),t=rn(),n=St(),r=J.join(t,"dist","index.js");if(console.log(`Config directory: ${e}`),console.log(` Exists: ${be(e)?"yes":"no"}`),console.log(""),console.log(`Extension directory: ${t}`),console.log(` Exists: ${be(t)?"yes":"no"}`),console.log(` Plugin entry: ${be(r)?"yes":"no"}`),console.log(""),console.log(`Config (openclaw.json): ${n}`),be(n)){let o=Eo(),s=o.plugins?.entries?.["claude-mem"]!==void 0,i=o.plugins?.entries?.["claude-mem"]?.enabled===!0,a=o.plugins?.slots?.memory==="claude-mem";if(console.log(" Exists: yes"),console.log(` Registered: ${s?"yes":"no"}`),console.log(` Enabled: ${i?"yes":"no"}`),console.log(` Memory slot: ${a?"yes":"no"}`),s){let c=o.plugins.entries["claude-mem"].config;c&&(console.log(` Worker port: ${c.workerPort??"default"}`),console.log(` Project: ${c.project??"default"}`),console.log(` Sync MEMORY.md: ${c.syncMemoryFile??"default"}`))}}else console.log(" Exists: no");return console.log(""),0}async function Rd(){console.log(`
340
340
  Installing Claude-Mem for OpenClaw...
341
- `);let e=Xi();if(e!==0)return e;let t=rr();return console.log(`
341
+ `);let e=$i();if(e!==0)return e;let t=rn();return console.log(`
342
342
  Installation complete!
343
343
 
344
344
  Plugin installed to: ${t}
345
- Config updated: ${Et()}
345
+ Config updated: ${St()}
346
346
 
347
347
  Next steps:
348
348
  1. Start claude-mem worker: npx claude-mem start
349
349
  2. Restart OpenClaw to load the plugin
350
350
  3. Memory capture is automatic from then on
351
- `),0}var ho=w(()=>{"use strict";G();Ue()});var So={};Ee(So,{installCodexCli:()=>Rd,uninstallCodexCli:()=>Od});import Me from"path";import{homedir as Ed}from"os";import{execFileSync as Qi,spawnSync as ea}from"child_process";import{existsSync as Eo,readFileSync as Sd,writeFileSync as _i}from"fs";import{fileURLToPath as yd}from"url";function ra(e){try{return process.platform==="win32"?Qi("where",[e],{stdio:"ignore"}):Qi("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function vd(e){let t=Me.resolve(e);for(;;){if(Eo(Me.join(t,".codex-plugin","plugin.json")))return t;let r=Me.dirname(t);if(r===t)return null;t=r}}function na(e){return Cd.filter(t=>!Eo(Me.join(e,t)))}function kd(e){let t=Me.resolve(e),r=na(t);if(r.length>0)throw new Error(`Codex marketplace root ${t} is missing required files: ${r.join(", ")}`);return t}function bd(e){if(e)return kd(e);let t=[process.env.CLAUDE_PLUGIN_ROOT,process.env.PLUGIN_ROOT,process.cwd(),Me.dirname(yd(import.meta.url))].filter(r=>!!r);for(let r of t){let n=vd(r);if(n&&na(n).length===0)return n}throw new Error("Could not locate a Codex marketplace root with .agents/plugins/marketplace.json, .codex-plugin/plugin.json, and .mcp.json. Run npx claude-mem@latest install from the package or repo root.")}function oa(e){let t=ea("codex",e,{encoding:"utf-8",stdio:["ignore","pipe","pipe"]}),r=console,n=t.stdout?.trimEnd(),o=t.stderr?.trimEnd();if(n&&r.log(n),o&&r.error(o),t.error)throw t.error;if(t.status!==0){let s=t.status??"unknown";throw new Error(`codex ${e.join(" ")} failed with exit code ${s}${o?`: ${o}`:""}`)}}function $i(e){let t=e.match(/(\d+)\.(\d+)\.(\d+)/);return t?[Number(t[1]),Number(t[2]),Number(t[3])]:null}function Md(e,t){return e[0]!==t[0]?e[0]-t[0]:e[1]!==t[1]?e[1]-t[1]:e[2]-t[2]}function Td(){let e=ea("codex",["--version"],{encoding:"utf-8",stdio:["ignore","pipe","pipe"]}),t=`${e.stdout??""}
352
- ${e.stderr??""}`.trim();if(e.error)throw e.error;if(e.status!==0){console.warn(` Could not determine Codex CLI version. Continuing; plugin marketplace support requires ${Br} or newer.${t?`
353
- ${t}`:""}`);return}let r=$i(t);if(!r){console.warn(` Could not parse Codex CLI version from "${t||"<empty>"}". Continuing; plugin marketplace support requires ${Br} or newer.`);return}let n=$i(Br);if(n&&Md(r,n)<0)throw new Error(`Codex CLI ${r.join(".")} is too old for plugin marketplace support. Update Codex CLI to ${Br} or newer, then run: npx claude-mem@latest install`)}function xd(){if(!Eo(ze))return!0;let e="<claude-mem-context>",t="</claude-mem-context>";try{return Id(e,t),!0}catch(r){let n=r instanceof Error?r.message:String(r);return u.warn("WORKER","Failed to clean AGENTS.md context",{error:n}),!1}}function Id(e,t){let r=Sd(ze,"utf-8"),n=r.indexOf(e),o=r.indexOf(t);if(n===-1||o===-1)return;let s=r.substring(0,n).replace(/\n+$/,""),i=r.substring(o+t.length).replace(/^\n+/,""),a=(s+(i?`
351
+ `),0}var yo=C(()=>{"use strict";H();Le()});var Co={};Ee(Co,{installCodexCli:()=>Jd,uninstallCodexCli:()=>Kd});import Me from"path";import{homedir as Od}from"os";import{execFileSync as ea,spawnSync as ra}from"child_process";import{existsSync as wo,readFileSync as Pd,writeFileSync as ta}from"fs";import{fileURLToPath as Ad}from"url";function sa(e){try{return process.platform==="win32"?ea("where",[e],{stdio:"ignore"}):ea("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function Ud(e){let t=Me.resolve(e);for(;;){if(wo(Me.join(t,".codex-plugin","plugin.json")))return t;let n=Me.dirname(t);if(n===t)return null;t=n}}function ia(e){return Dd.filter(t=>!wo(Me.join(e,t)))}function Ld(e){let t=Me.resolve(e),n=ia(t);if(n.length>0)throw new Error(`Codex marketplace root ${t} is missing required files: ${n.join(", ")}`);return t}function Wd(e){if(e)return Ld(e);let t=[process.env.CLAUDE_PLUGIN_ROOT,process.env.PLUGIN_ROOT,process.cwd(),Me.dirname(Ad(import.meta.url))].filter(n=>!!n);for(let n of t){let r=Ud(n);if(r&&ia(r).length===0)return r}throw new Error("Could not locate a Codex marketplace root with .agents/plugins/marketplace.json, .codex-plugin/plugin.json, and .mcp.json. Run npx claude-mem@latest install from the package or repo root.")}function aa(e){let t=ra("codex",e,{encoding:"utf-8",stdio:["ignore","pipe","pipe"]}),n=console,r=t.stdout?.trimEnd(),o=t.stderr?.trimEnd();if(r&&n.log(r),o&&n.error(o),t.error)throw t.error;if(t.status!==0){let s=t.status??"unknown";throw new Error(`codex ${e.join(" ")} failed with exit code ${s}${o?`: ${o}`:""}`)}}function na(e){let t=e.match(/(\d+)\.(\d+)\.(\d+)/);return t?[Number(t[1]),Number(t[2]),Number(t[3])]:null}function jd(e,t){return e[0]!==t[0]?e[0]-t[0]:e[1]!==t[1]?e[1]-t[1]:e[2]-t[2]}function Fd(){let e=ra("codex",["--version"],{encoding:"utf-8",stdio:["ignore","pipe","pipe"]}),t=`${e.stdout??""}
352
+ ${e.stderr??""}`.trim();if(e.error)throw e.error;if(e.status!==0){console.warn(` Could not determine Codex CLI version. Continuing; plugin marketplace support requires ${Vn} or newer.${t?`
353
+ ${t}`:""}`);return}let n=na(t);if(!n){console.warn(` Could not parse Codex CLI version from "${t||"<empty>"}". Continuing; plugin marketplace support requires ${Vn} or newer.`);return}let r=na(Vn);if(r&&jd(n,r)<0)throw new Error(`Codex CLI ${n.join(".")} is too old for plugin marketplace support. Update Codex CLI to ${Vn} or newer, then run: npx claude-mem@latest install`)}function Gd(){if(!wo(Ze))return!0;let e="<claude-mem-context>",t="</claude-mem-context>";try{return Hd(e,t),!0}catch(n){let r=n instanceof Error?n.message:String(n);return u.warn("WORKER","Failed to clean AGENTS.md context",{error:r}),!1}}function Hd(e,t){let n=Pd(Ze,"utf-8"),r=n.indexOf(e),o=n.indexOf(t);if(r===-1||o===-1)return;let s=n.substring(0,r).replace(/\n+$/,""),i=n.substring(o+t.length).replace(/^\n+/,""),a=(s+(i?`
354
354
 
355
- `+i:"")).trim();a?_i(ze,a+`
356
- `):_i(ze,""),console.log(` Removed legacy global context from ${ze}`)}async function Rd(e){if(console.log(`
355
+ `+i:"")).trim();a?ta(Ze,a+`
356
+ `):ta(Ze,""),console.log(` Removed legacy global context from ${Ze}`)}async function Jd(e){if(console.log(`
357
357
  Installing Claude-Mem for Codex CLI (native hooks)...
358
- `),!ra("codex"))return console.error("Codex CLI was not found on PATH."),console.error("Install Codex, then run: npx claude-mem@latest install"),1;try{Td();let t=bd(e);return console.log(` Registering Codex plugin marketplace: ${t}`),oa(["plugin","marketplace","add",t]),sa()||console.warn(` Native Codex hooks registered, but failed to remove legacy AGENTS.md context from ${ze}.`),console.log(`
358
+ `),!sa("codex"))return console.error("Codex CLI was not found on PATH."),console.error("Install Codex, then run: npx claude-mem@latest install"),1;try{Fd();let t=Wd(e);return console.log(` Registering Codex plugin marketplace: ${t}`),aa(["plugin","marketplace","add",t]),ca()||console.warn(` Native Codex hooks registered, but failed to remove legacy AGENTS.md context from ${Ze}.`),console.log(`
359
359
  Installation complete!
360
360
 
361
- Codex marketplace: ${ta}
361
+ Codex marketplace: ${oa}
362
362
  Plugin source: ${t}
363
363
 
364
364
  Next steps:
@@ -368,34 +368,34 @@ Next steps:
368
368
 
369
369
  For a fresh setup, the supported entry point is:
370
370
  npx claude-mem@latest install
371
- `),0}catch(t){let r=t instanceof Error?t.message:String(t);return console.error(`
372
- Installation failed: ${r}`),1}}function Od(){console.log(`
371
+ `),0}catch(t){let n=t instanceof Error?t.message:String(t);return console.error(`
372
+ Installation failed: ${n}`),1}}function Kd(){console.log(`
373
373
  Uninstalling Claude-Mem Codex CLI integration...
374
- `);let e=!1;try{ra("codex")?oa(["plugin","marketplace","remove",ta]):console.log(" Codex CLI not found; skipping marketplace removal.")}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`
375
- Codex marketplace removal failed: ${r}`),e=!0}try{sa()||(console.error(`
376
- Failed to remove legacy AGENTS.md context from ${ze}.`),e=!0)}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`
377
- Legacy AGENTS.md cleanup failed: ${r}`),e=!0}return e?(console.error(`
374
+ `);let e=!1;try{sa("codex")?aa(["plugin","marketplace","remove",oa]):console.log(" Codex CLI not found; skipping marketplace removal.")}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`
375
+ Codex marketplace removal failed: ${n}`),e=!0}try{ca()||(console.error(`
376
+ Failed to remove legacy AGENTS.md context from ${Ze}.`),e=!0)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`
377
+ Legacy AGENTS.md cleanup failed: ${n}`),e=!0}return e?(console.error(`
378
378
  Uninstallation completed with errors.`),1):(console.log(`
379
379
  Uninstallation complete!`),console.log(`Restart Codex CLI to apply changes.
380
- `),0)}var wd,ze,ta,Br,Cd,sa,yo=w(()=>{"use strict";G();wd=Me.join(Ed(),".codex"),ze=Me.join(wd,"AGENTS.md"),ta="claude-mem-local",Br="0.128.0",Cd=[Me.join(".agents","plugins","marketplace.json"),Me.join(".codex-plugin","plugin.json"),".mcp.json"];sa=xd});var da={};Ee(da,{MCP_IDE_INSTALLERS:()=>Kd,installGooseMcpIntegration:()=>ua});import ue from"path";import{homedir as Vr}from"os";import{existsSync as ca,readFileSync as Pd,writeFileSync as nr,mkdirSync as la}from"fs";function Nd(e){return{command:process.execPath,args:[e]}}function Dd(e,t,r="mcpServers"){let n=ue.dirname(e);la(n,{recursive:!0});let o=pe(e,{});o[r]||(o[r]={}),o[r]["claude-mem"]=Nd(t),nr(e,JSON.stringify(o,null,2)+`
381
- `)}function Yr(e){return async()=>{console.log(`
380
+ `),0)}var Nd,Ze,oa,Vn,Dd,ca,vo=C(()=>{"use strict";H();Nd=Me.join(Od(),".codex"),Ze=Me.join(Nd,"AGENTS.md"),oa="claude-mem-local",Vn="0.128.0",Dd=[Me.join(".agents","plugins","marketplace.json"),Me.join(".codex-plugin","plugin.json"),".mcp.json"];ca=Gd});var fa={};Ee(fa,{MCP_IDE_INSTALLERS:()=>np,installGooseMcpIntegration:()=>ma});import pe from"path";import{homedir as Zn}from"os";import{existsSync as da,readFileSync as Bd,writeFileSync as on,mkdirSync as pa}from"fs";function Vd(e){return{command:process.execPath,args:[e]}}function zd(e,t,n="mcpServers"){let r=pe.dirname(e);pa(r,{recursive:!0});let o=ie(e,{});o[n]||(o[n]={}),o[n]["claude-mem"]=Vd(t),on(e,JSON.stringify(o,null,2)+`
381
+ `)}function zn(e){return async()=>{console.log(`
382
382
  Installing Claude-Mem MCP integration for ${e.ideLabel}...
383
- `);let t=Zt();if(!t)return console.error("Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let r=e.configPath,n=e.ideId==="warp"&&!ca(ue.dirname(r)),o;e.contextFile&&(o=e.contextFile.path);try{return Ud(e,r,t,n,o),0}catch(s){let i=s instanceof Error?s.message:String(s);return console.error(`
384
- Installation failed: ${i}`),1}}}function Ud(e,t,r,n,o){n?console.log(" Note: ~/.warp/ not found. MCP may need to be configured via Warp Drive UI."):(Dd(t,r,e.configKey),console.log(` MCP config written to: ${t}`)),o&&(Wr(o,Ad),console.log(` Context placeholder written to: ${o}`));let s=[`
383
+ `);let t=qt();if(!t)return console.error("Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let n=e.configPath,r=e.ideId==="warp"&&!da(pe.dirname(n)),o;e.contextFile&&(o=e.contextFile.path);try{return Zd(e,n,t,r,o),0}catch(s){let i=s instanceof Error?s.message:String(s);return console.error(`
384
+ Installation failed: ${i}`),1}}}function Zd(e,t,n,r,o){r?console.log(" Note: ~/.warp/ not found. MCP may need to be configured via Warp Drive UI."):(zd(t,n,e.configKey),console.log(` MCP config written to: ${t}`)),o&&(Fn(o,Yd),console.log(` Context placeholder written to: ${o}`));let s=[`
385
385
  Installation complete!
386
386
  `];s.push(`MCP config: ${t}`),o&&s.push(`Context: ${o}`),s.push(""),s.push("Note: This is an MCP-only integration providing search tools and context."),s.push(`Transcript capture is not available for ${e.ideLabel}.`),e.ideId==="warp"&&s.push("If MCP config via file is not supported, configure MCP through Warp Drive UI."),s.push(""),s.push("Next steps:"),s.push(" 1. Start claude-mem worker: npx claude-mem start"),s.push(` 2. Restart ${e.ideLabel} to pick up the MCP server`),s.push(""),console.log(s.join(`
387
- `))}function Gd(){return ue.join(Vr(),".config","goose","config.yaml")}function Hd(e){return e.includes("claude-mem:")&&e.includes("mcpServers:")}function ia(e){return["mcpServers:"," claude-mem:",` command: ${process.execPath}`," args:",` - ${e}`].join(`
388
- `)}function aa(e){return[" claude-mem:",` command: ${process.execPath}`," args:",` - ${e}`].join(`
389
- `)}async function ua(){console.log(`
387
+ `))}function $d(){return pe.join(Zn(),".config","goose","config.yaml")}function ep(e){return e.includes("claude-mem:")&&e.includes("mcpServers:")}function la(e){return["mcpServers:"," claude-mem:",` command: ${process.execPath}`," args:",` - ${e}`].join(`
388
+ `)}function ua(e){return[" claude-mem:",` command: ${process.execPath}`," args:",` - ${e}`].join(`
389
+ `)}async function ma(){console.log(`
390
390
  Installing Claude-Mem MCP integration for Goose...
391
- `);let e=Zt();if(!e)return console.error("Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let t=Gd(),r=ue.dirname(t);try{return la(r,{recursive:!0}),Jd(t,e),0}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`
392
- Installation failed: ${o}`),1}}function Jd(e,t){if(ca(e)){let r=Pd(e,"utf-8");if(Hd(r)){let n=/( {2}claude-mem:\n(?:.*\n)*?(?= {2}\S|\n\n|^\S|$))/m,o=aa(t)+`
393
- `;if(!n.test(r))throw new Error("Found mcpServers/claude-mem markers but could not locate a replaceable claude-mem block");r=r.replace(n,o),nr(e,r),console.log(` Updated existing claude-mem entry in: ${e}`)}else if(r.includes("mcpServers:")){let o=r.indexOf("mcpServers:")+11,s=`
394
- `+aa(t);r=r.slice(0,o)+s+r.slice(o),nr(e,r),console.log(` Added claude-mem to existing mcpServers in: ${e}`)}else{let n=`
395
- `+ia(t)+`
396
- `;r=r.trimEnd()+`
397
- `+n,nr(e,r),console.log(` Appended mcpServers section to: ${e}`)}}else{let r=ia(t)+`
398
- `;nr(e,r),console.log(` Created config with MCP server: ${e}`)}console.log(`
391
+ `);let e=qt();if(!e)return console.error("Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let t=$d(),n=pe.dirname(t);try{return pa(n,{recursive:!0}),tp(t,e),0}catch(r){let o=r instanceof Error?r.message:String(r);return console.error(`
392
+ Installation failed: ${o}`),1}}function tp(e,t){if(da(e)){let n=Bd(e,"utf-8");if(ep(n)){let r=/( {2}claude-mem:\n(?:.*\n)*?(?= {2}\S|\n\n|^\S|$))/m,o=ua(t)+`
393
+ `;if(!r.test(n))throw new Error("Found mcpServers/claude-mem markers but could not locate a replaceable claude-mem block");n=n.replace(r,o),on(e,n),console.log(` Updated existing claude-mem entry in: ${e}`)}else if(n.includes("mcpServers:")){let o=n.indexOf("mcpServers:")+11,s=`
394
+ `+ua(t);n=n.slice(0,o)+s+n.slice(o),on(e,n),console.log(` Added claude-mem to existing mcpServers in: ${e}`)}else{let r=`
395
+ `+la(t)+`
396
+ `;n=n.trimEnd()+`
397
+ `+r,on(e,n),console.log(` Appended mcpServers section to: ${e}`)}}else{let n=la(t)+`
398
+ `;on(e,n),console.log(` Created config with MCP server: ${e}`)}console.log(`
399
399
  Installation complete!
400
400
 
401
401
  MCP config: ${e}
@@ -406,28 +406,28 @@ Transcript capture is not available for Goose.
406
406
  Next steps:
407
407
  1. Start claude-mem worker: npx claude-mem start
408
408
  2. Restart Goose to pick up the MCP server
409
- `)}var Ad,Ld,Wd,jd,Fd,Kd,pa=w(()=>{"use strict";qt();kt();no();Ad=`# claude-mem: Cross-Session Memory
409
+ `)}var Yd,qd,Xd,Qd,_d,np,ga=C(()=>{"use strict";Xt();bt();io();Yd=`# claude-mem: Cross-Session Memory
410
410
 
411
411
  *No context yet. Complete your first session and context will appear here.*
412
412
 
413
- Use claude-mem's MCP search tools for manual memory queries.`;Ld={ideId:"copilot-cli",ideLabel:"Copilot CLI",configPath:ue.join(Vr(),".github","copilot","mcp.json"),configKey:"servers",contextFile:{path:ue.join(process.cwd(),".github","copilot-instructions.md"),isWorkspaceRelative:!0}},Wd={ideId:"antigravity",ideLabel:"Antigravity",configPath:ue.join(Vr(),".gemini","antigravity","mcp_config.json"),configKey:"mcpServers",contextFile:{path:ue.join(process.cwd(),".agents","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},jd={ideId:"roo-code",ideLabel:"Roo Code",configPath:ue.join(process.cwd(),".roo","mcp.json"),configKey:"mcpServers",contextFile:{path:ue.join(process.cwd(),".roo","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},Fd={ideId:"warp",ideLabel:"Warp",configPath:ue.join(Vr(),".warp","mcp.json"),configKey:"mcpServers",contextFile:{path:ue.join(process.cwd(),"WARP.md"),isWorkspaceRelative:!0}};Kd={"copilot-cli":Yr(Ld),antigravity:Yr(Wd),goose:ua,"roo-code":Yr(jd),warp:Yr(Fd)}});var qr={};Ee(qr,{runInstallCommand:()=>sp,runRepairCommand:()=>ip});import{execSync as Bd}from"child_process";import{cpSync as ma,existsSync as de,mkdirSync as fa,readFileSync as Zr,rmSync as ga,writeFileSync as ha}from"fs";import{homedir as Ea}from"os";import{dirname as Sa,join as ne}from"path";function St(e){return K.loadFromFile(nt)[e]}async function zr(e){if(Y)await Cr(e);else for(let t of e){let r=await t.task(n=>console.log(` ${n}`));console.log(` ${r}`)}}async function Ge(e){if(!Y)return{result:await e(),output:""};let t="",r=(...o)=>{t+=o.map(s=>typeof s=="string"?s:String(s)).join(" ")+`
414
- `},n={log:console.log,error:console.error,warn:console.warn};console.log=r,console.error=r,console.warn=r;try{return{result:await e(),output:t}}finally{console.log=n.log,console.error=n.error,console.warn=n.warn}}function Yd(){let e=pe(Xe(),{});e.thedotmack={source:{source:"github",repo:"thedotmack/claude-mem"},installLocation:q(),lastUpdated:new Date().toISOString(),autoUpdate:!0},Mt(Je()),Pe(Xe(),e)}function Vd(e){let t=pe(Qe(),{});t.version||(t.version=2),t.plugins||(t.plugins={});let r=$e(e),n=new Date().toISOString();t.plugins["claude-mem@thedotmack"]=[{scope:"user",installPath:r,version:e,installedAt:n,lastUpdated:n}],Pe(Qe(),t)}function zd(){let e=pe(_e(),{});e.enabledPlugins||(e.enabledPlugins={}),e.enabledPlugins["claude-mem@thedotmack"]=!0,Pe(_e(),e)}function Zd(e,t,r){let n=(o,s)=>{t.push(e),s&&s.trim().length>0&&r.push(`${o}
415
- ${s.trim()}`)};switch(e){case"claude-code":return{title:"Claude Code: registering plugin",task:async()=>`Claude Code: plugin registered ${m.default.green("OK")}`};case"cursor":return{title:"Cursor: installing hooks + MCP",task:async o=>{o("Loading Cursor installer\u2026");let{installCursorHooks:s,configureCursorMcp:i}=await Promise.resolve().then(()=>(qt(),bi));o("Installing Cursor hooks\u2026");let{result:a,output:c}=await Ge(()=>s("user"));if(a!==0)return n("Cursor: hook installation failed",c),`Cursor: hook installation failed ${m.default.red("FAIL")}`;o("Configuring Cursor MCP\u2026");let{result:l}=await Ge(async()=>i("user"));return l===0?`Cursor: hooks + MCP installed ${m.default.green("OK")}`:`Cursor: hooks installed; MCP setup failed \u2014 run \`npx claude-mem cursor mcp\` ${m.default.yellow("!")}`}};case"gemini-cli":return{title:"Gemini CLI: installing hooks",task:async o=>{o("Loading Gemini CLI installer\u2026");let{installGeminiCliHooks:s}=await Promise.resolve().then(()=>(to(),eo));o("Installing Gemini CLI hooks\u2026");let{result:i,output:a}=await Ge(()=>s());return i!==0?(n("Gemini CLI: hook installation failed",a),`Gemini CLI: hook installation failed ${m.default.red("FAIL")}`):`Gemini CLI: hooks installed ${m.default.green("OK")}`}};case"opencode":return{title:"OpenCode: installing plugin",task:async o=>{o("Loading OpenCode installer\u2026");let{installOpenCodeIntegration:s}=await Promise.resolve().then(()=>(ao(),io));o("Installing OpenCode plugin\u2026");let{result:i,output:a}=await Ge(()=>s());return i!==0?(n("OpenCode: plugin installation failed",a),`OpenCode: plugin installation failed ${m.default.red("FAIL")}`):`OpenCode: plugin installed ${m.default.green("OK")}`}};case"windsurf":return{title:"Windsurf: installing hooks",task:async o=>{o("Loading Windsurf installer\u2026");let{installWindsurfHooks:s}=await Promise.resolve().then(()=>(po(),uo));o("Installing Windsurf hooks\u2026");let{result:i,output:a}=await Ge(()=>s());return i!==0?(n("Windsurf: hook installation failed",a),`Windsurf: hook installation failed ${m.default.red("FAIL")}`):`Windsurf: hooks installed ${m.default.green("OK")}`}};case"openclaw":return{title:"OpenClaw: installing plugin",task:async o=>{o("Loading OpenClaw installer\u2026");let{installOpenClawIntegration:s}=await Promise.resolve().then(()=>(ho(),go));o("Copying plugin files\u2026");let{result:i,output:a}=await Ge(()=>s());return i!==0?(n("OpenClaw: plugin installation failed",a),`OpenClaw: plugin installation failed ${m.default.red("FAIL")}`):`OpenClaw: plugin installed ${m.default.green("OK")}`}};case"codex-cli":return{title:"Codex CLI: registering hooks marketplace",task:async o=>{o("Loading Codex CLI installer\u2026");let{installCodexCli:s}=await Promise.resolve().then(()=>(yo(),So));o("Registering native Codex hooks\u2026");let{result:i,output:a}=await Ge(()=>s(q()));return i!==0?(n("Codex CLI: integration setup failed",a),`Codex CLI: integration setup failed ${m.default.red("FAIL")}`):`Codex CLI: hooks marketplace registered ${m.default.green("OK")}`}};case"copilot-cli":case"antigravity":case"goose":case"roo-code":case"warp":{let i=ct().find(a=>a.id===e)?.label??e;return{title:`${i}: installing MCP integration`,task:async a=>{a("Loading MCP installer\u2026");let{MCP_IDE_INSTALLERS:c}=await Promise.resolve().then(()=>(pa(),da)),l=c[e];if(!l)return`${i}: MCP installer not found ${m.default.yellow("!")}`;a(`Configuring ${i} MCP\u2026`);let{result:p,output:f}=await Ge(()=>l());return p!==0?(n(`${i}: MCP integration failed`,f),`${i}: MCP integration failed ${m.default.red("FAIL")}`):`${i}: MCP integration installed ${m.default.green("OK")}`}}}default:{let s=ct().find(i=>i.id===e);return s&&!s.supported?{title:`${s.label}: skipping`,task:async()=>`${s.label}: support coming soon ${m.default.yellow("!")}`}:null}}}async function qd(e){let t=[],r=[],n=[];for(let o of e){let s=Zd(o,t,r);s&&n.push(s)}n.length>0&&await zr(n);for(let o of r)M.warn(o);return t}function Xd(){let e=Ea(),t=process.env.SHELL??"";if(t.includes("fish"))return{path:ne(e,".config","fish","config.fish"),shell:"fish"};if(t.includes("zsh"))return{path:ne(e,".zshrc"),shell:"zsh"};if(process.platform==="darwin"){let r=ne(e,".bash_profile");if(de(r))return{path:r,shell:"bash"}}return{path:ne(e,".bashrc"),shell:"bash"}}function Qd(){let e=Ea(),t=ne(e,".local","bin"),r=ne(t,"claude");if(!de(r))return;let n=process.env.PATH??"";if(n.split(":").includes(t))return;let{path:s,shell:i}=Xd(),a="$HOME/.local/bin",c=i==="fish"?`set -gx PATH ${t} $PATH`:`export PATH="${a}:$PATH"`,l="";if(de(s))try{l=Zr(s,"utf-8")}catch(p){M.warn(`Could not read ${s}: ${p instanceof Error?p.message:String(p)}`)}else try{fa(Sa(s),{recursive:!0})}catch{}if(l.includes(t)||l.includes(a))M.info(`Claude Code PATH already configured in ${s}`);else try{let f=`${l.length===0||l.endsWith(`
413
+ Use claude-mem's MCP search tools for manual memory queries.`;qd={ideId:"copilot-cli",ideLabel:"Copilot CLI",configPath:pe.join(Zn(),".github","copilot","mcp.json"),configKey:"servers",contextFile:{path:pe.join(process.cwd(),".github","copilot-instructions.md"),isWorkspaceRelative:!0}},Xd={ideId:"antigravity",ideLabel:"Antigravity",configPath:pe.join(Zn(),".gemini","antigravity","mcp_config.json"),configKey:"mcpServers",contextFile:{path:pe.join(process.cwd(),".agents","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},Qd={ideId:"roo-code",ideLabel:"Roo Code",configPath:pe.join(process.cwd(),".roo","mcp.json"),configKey:"mcpServers",contextFile:{path:pe.join(process.cwd(),".roo","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},_d={ideId:"warp",ideLabel:"Warp",configPath:pe.join(Zn(),".warp","mcp.json"),configKey:"mcpServers",contextFile:{path:pe.join(process.cwd(),"WARP.md"),isWorkspaceRelative:!0}};np={"copilot-cli":zn(qd),antigravity:zn(Xd),goose:ma,"roo-code":zn(Qd),warp:zn(_d)}});var Qn={};Ee(Qn,{disableClaudeAutoMemory:()=>va,runInstallCommand:()=>Sp,runRepairCommand:()=>yp});import{execSync as rp}from"child_process";import{cpSync as ha,existsSync as me,mkdirSync as Ea,readFileSync as Xn,rmSync as Sa,writeFileSync as ya}from"fs";import{homedir as wa}from"os";import{dirname as Ca,join as oe}from"path";function yt(e){return B.loadFromFile(ot)[e]}async function qn(e){if(V)await kn(e);else for(let t of e){let n=await t.task(r=>console.log(` ${r}`));console.log(` ${n}`)}}async function He(e){if(!V)return{result:await e(),output:""};let t="",n=(...o)=>{t+=o.map(s=>typeof s=="string"?s:String(s)).join(" ")+`
414
+ `},r={log:console.log,error:console.error,warn:console.warn};console.log=n,console.error=n,console.warn=n;try{return{result:await e(),output:t}}finally{console.log=r.log,console.error=r.error,console.warn=r.warn}}function op(){let e=ie(_e(),{});e.thedotmack={source:{source:"github",repo:"thedotmack/claude-mem"},installLocation:q(),lastUpdated:new Date().toISOString(),autoUpdate:!0},Tt(Ke()),Re(_e(),e)}function sp(e){let t=ie($e(),{});t.version||(t.version=2),t.plugins||(t.plugins={});let n=et(e),r=new Date().toISOString();t.plugins["claude-mem@thedotmack"]=[{scope:"user",installPath:n,version:e,installedAt:r,lastUpdated:r}],Re($e(),t)}function ip(){let e=ie(Ae(),{});e.enabledPlugins||(e.enabledPlugins={}),e.enabledPlugins["claude-mem@thedotmack"]=!0,Re(Ae(),e)}function va(){let e=ie(Ae(),{}),t=e.env&&typeof e.env=="object"?e.env:{};return t.CLAUDE_CODE_DISABLE_AUTO_MEMORY==="1"?!1:(e.env={...t,CLAUDE_CODE_DISABLE_AUTO_MEMORY:"1"},Re(Ae(),e),!0)}function ap(e,t,n){let r=(o,s)=>{t.push(e),s&&s.trim().length>0&&n.push(`${o}
415
+ ${s.trim()}`)};switch(e){case"claude-code":return{title:"Claude Code: registering plugin",task:async()=>`Claude Code: plugin registered ${m.default.green("OK")}`};case"cursor":return{title:"Cursor: installing hooks + MCP",task:async o=>{o("Loading Cursor installer\u2026");let{installCursorHooks:s,configureCursorMcp:i}=await Promise.resolve().then(()=>(Xt(),xi));o("Installing Cursor hooks\u2026");let{result:a,output:c}=await He(()=>s("user"));if(a!==0)return r("Cursor: hook installation failed",c),`Cursor: hook installation failed ${m.default.red("FAIL")}`;o("Configuring Cursor MCP\u2026");let{result:l}=await He(async()=>i("user"));return l===0?`Cursor: hooks + MCP installed ${m.default.green("OK")}`:`Cursor: hooks installed; MCP setup failed \u2014 run \`npx claude-mem cursor mcp\` ${m.default.yellow("!")}`}};case"gemini-cli":return{title:"Gemini CLI: installing hooks",task:async o=>{o("Loading Gemini CLI installer\u2026");let{installGeminiCliHooks:s}=await Promise.resolve().then(()=>(oo(),ro));o("Installing Gemini CLI hooks\u2026");let{result:i,output:a}=await He(()=>s());return i!==0?(r("Gemini CLI: hook installation failed",a),`Gemini CLI: hook installation failed ${m.default.red("FAIL")}`):`Gemini CLI: hooks installed ${m.default.green("OK")}`}};case"opencode":return{title:"OpenCode: installing plugin",task:async o=>{o("Loading OpenCode installer\u2026");let{installOpenCodeIntegration:s}=await Promise.resolve().then(()=>(uo(),lo));o("Installing OpenCode plugin\u2026");let{result:i,output:a}=await He(()=>s());return i!==0?(r("OpenCode: plugin installation failed",a),`OpenCode: plugin installation failed ${m.default.red("FAIL")}`):`OpenCode: plugin installed ${m.default.green("OK")}`}};case"windsurf":return{title:"Windsurf: installing hooks",task:async o=>{o("Loading Windsurf installer\u2026");let{installWindsurfHooks:s}=await Promise.resolve().then(()=>(go(),fo));o("Installing Windsurf hooks\u2026");let{result:i,output:a}=await He(()=>s());return i!==0?(r("Windsurf: hook installation failed",a),`Windsurf: hook installation failed ${m.default.red("FAIL")}`):`Windsurf: hooks installed ${m.default.green("OK")}`}};case"openclaw":return{title:"OpenClaw: installing plugin",task:async o=>{o("Loading OpenClaw installer\u2026");let{installOpenClawIntegration:s}=await Promise.resolve().then(()=>(yo(),So));o("Copying plugin files\u2026");let{result:i,output:a}=await He(()=>s());return i!==0?(r("OpenClaw: plugin installation failed",a),`OpenClaw: plugin installation failed ${m.default.red("FAIL")}`):`OpenClaw: plugin installed ${m.default.green("OK")}`}};case"codex-cli":return{title:"Codex CLI: registering hooks marketplace",task:async o=>{o("Loading Codex CLI installer\u2026");let{installCodexCli:s}=await Promise.resolve().then(()=>(vo(),Co));o("Registering native Codex hooks\u2026");let{result:i,output:a}=await He(()=>s(q()));return i!==0?(r("Codex CLI: integration setup failed",a),`Codex CLI: integration setup failed ${m.default.red("FAIL")}`):`Codex CLI: hooks marketplace registered ${m.default.green("OK")}`}};case"copilot-cli":case"antigravity":case"goose":case"roo-code":case"warp":{let i=lt().find(a=>a.id===e)?.label??e;return{title:`${i}: installing MCP integration`,task:async a=>{a("Loading MCP installer\u2026");let{MCP_IDE_INSTALLERS:c}=await Promise.resolve().then(()=>(ga(),fa)),l=c[e];if(!l)return`${i}: MCP installer not found ${m.default.yellow("!")}`;a(`Configuring ${i} MCP\u2026`);let{result:p,output:f}=await He(()=>l());return p!==0?(r(`${i}: MCP integration failed`,f),`${i}: MCP integration failed ${m.default.red("FAIL")}`):`${i}: MCP integration installed ${m.default.green("OK")}`}}}default:{let s=lt().find(i=>i.id===e);return s&&!s.supported?{title:`${s.label}: skipping`,task:async()=>`${s.label}: support coming soon ${m.default.yellow("!")}`}:null}}}async function cp(e){let t=[],n=[],r=[];for(let o of e){let s=ap(o,t,n);s&&r.push(s)}r.length>0&&await qn(r);for(let o of n)b.warn(o);return t}function lp(){let e=wa(),t=process.env.SHELL??"";if(t.includes("fish"))return{path:oe(e,".config","fish","config.fish"),shell:"fish"};if(t.includes("zsh"))return{path:oe(e,".zshrc"),shell:"zsh"};if(process.platform==="darwin"){let n=oe(e,".bash_profile");if(me(n))return{path:n,shell:"bash"}}return{path:oe(e,".bashrc"),shell:"bash"}}function up(){let e=wa(),t=oe(e,".local","bin"),n=oe(t,"claude");if(!me(n))return;let r=process.env.PATH??"";if(r.split(":").includes(t))return;let{path:s,shell:i}=lp(),a="$HOME/.local/bin",c=i==="fish"?`set -gx PATH ${t} $PATH`:`export PATH="${a}:$PATH"`,l="";if(me(s))try{l=Xn(s,"utf-8")}catch(p){b.warn(`Could not read ${s}: ${p instanceof Error?p.message:String(p)}`)}else try{Ea(Ca(s),{recursive:!0})}catch{}if(l.includes(t)||l.includes(a))b.info(`Claude Code PATH already configured in ${s}`);else try{let f=`${l.length===0||l.endsWith(`
416
416
  `)?"":`
417
417
  `}
418
418
  # Added by claude-mem installer for Claude Code
419
419
  ${c}
420
- `;ha(s,l+f,"utf-8"),M.success(`Added Claude Code to PATH in ${s}`)}catch(p){M.warn(`Could not update ${s}: ${p instanceof Error?p.message:String(p)}`),M.info(`Run manually: echo '${c}' >> ${s}`);return}process.env.PATH=`${t}:${n}`}async function _d(){let e=me?'powershell -ExecutionPolicy ByPass -c "irm https://claude.ai/install.ps1 | iex"':"curl -fsSL https://claude.ai/install.sh | bash",t=Y?Dt():null;return t?.start("Installing Claude Code (this can take a few minutes \u2014 downloading the native build)\u2026"),new Promise(r=>{let n="",o=we(e,[],{shell:me?process.env.ComSpec??"cmd.exe":"/bin/bash",stdio:t?["inherit","pipe","pipe"]:"inherit"});o.stdout?.on("data",s=>{n+=s.toString()}),o.stderr?.on("data",s=>{n+=s.toString()}),o.on("error",s=>{t?.stop("Claude Code install failed",1),n&&process.stderr.write(n),M.error(`Claude Code install failed: ${s.message}`),M.info("You can install it manually later: https://claude.ai/install.sh"),r(!1)}),o.on("exit",s=>{if(s!==0){t?.stop("Claude Code install failed",1),n&&process.stderr.write(n),M.error(`Claude Code install failed (exit ${s??"unknown"})`),M.info("You can install it manually later: https://claude.ai/install.sh"),r(!1);return}if(t?.stop("Claude Code installed"),!me)try{Qd()}catch(i){M.warn(`Could not auto-apply PATH setup: ${i instanceof Error?i.message:String(i)}`)}r(!0)})})}async function $d(){let e=ct(),t=e.find(s=>s.id==="claude-code");if(t&&!t.detected){M.warn("Claude Code is not installed. Claude-mem works best in Claude Code, but also works with the IDEs below.");let s=await Ye({message:"Install Claude Code now?",options:[{value:"install",label:"Yes \u2014 install Claude Code (recommended)"},{value:"skip",label:"No \u2014 pick another IDE below"},{value:"cancel",label:"Cancel installation"}],initialValue:"install"});(F(s)||s==="cancel")&&(fe("Installation cancelled."),process.exit(0)),s==="install"&&await _d()&&(e=ct())}e.filter(s=>s.detected).length===0&&M.warn("No supported IDEs detected \u2014 pick the one(s) you plan to use.");let n=e.map(s=>{let i=s.detected?" [detected]":"",a=s.supported?`${s.hint}${i}`:`coming soon${i}`;return{value:s.id,label:s.label,hint:a}}),o=await is({message:"Which IDEs do you use?",options:n,initialValues:[],required:!0});return F(o)&&(fe("Installation cancelled."),process.exit(0)),o}function ep(){let e=q(),t=lr();Mt(e);let r=[".agents",".codex-plugin",".mcp.json","plugin","package.json","package-lock.json","openclaw","dist","LICENSE","README.md","CHANGELOG.md"];for(let n of r){let o=ne(t,n),s=ne(e,n);de(o)&&(de(s)&&ga(s,{recursive:!0,force:!0}),ma(o,s,{recursive:!0,force:!0}))}}function ya(e){let t=tn(),r=$e(e);ga(r,{recursive:!0,force:!0}),Mt(r),ma(t,r,{recursive:!0,force:!0})}function tp(){let e=q(),t=ne(e,"package.json");de(t)&&Bd("npm install --omit=dev --legacy-peer-deps",{cwd:e,stdio:"pipe",encoding:"utf8",...me?{shell:process.env.ComSpec??"cmd.exe"}:{}})}function He(e){let t=nt;try{let r={};if(de(t))try{let n=Zr(t,"utf-8"),o=JSON.parse(n);o&&typeof o=="object"&&o.env&&typeof o.env=="object"?r={...o.env}:o&&typeof o=="object"&&(r={...o})}catch(n){console.warn("[install] Failed to parse existing settings.json, starting from empty:",n instanceof Error?n.message:String(n)),r={}}else{let n=Sa(t);de(n)||fa(n,{recursive:!0})}for(let[n,o]of Object.entries(e))r[n]=o;return ha(t,JSON.stringify(r,null,2),"utf-8"),!0}catch(r){return M.error(`Failed to write settings to ${t}: ${r instanceof Error?r.message:String(r)}`),!1}}function rp(){try{if(!de(nt))return;let e=JSON.parse(Zr(nt,"utf-8")),r=(e.env&&typeof e.env=="object"?e.env:e).CLAUDE_MEM_CLAUDE_AUTH_METHOD;return r==="subscription"||r==="api-key"||r==="gateway"?r:void 0}catch{return}}function wo(){let e=rp();if(e)return e;let t=Lt();return t.ANTHROPIC_BASE_URL?.trim()?"gateway":t.ANTHROPIC_API_KEY?.trim()?"api-key":"subscription"}async function np(e){let t=St("CLAUDE_MEM_PROVIDER")||"claude",r=g=>{let E=g??wo();He({CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:E})&&M.info("Saved Claude Agent SDK configuration to ~/.claude-mem/settings.json")},n=()=>{r("subscription"),Wt({ANTHROPIC_API_KEY:"",ANTHROPIC_BASE_URL:"",ANTHROPIC_AUTH_TOKEN:""}),M.info("Configured claude-mem to use your logged-in Claude SDK account.")},o=async()=>{let g=Lt().ANTHROPIC_API_KEY||"";if(g.trim().length>0){let b=await Ye({message:"An Anthropic API key is already configured. Keep it or enter a new one?",options:[{value:"keep",label:"Keep existing key"},{value:"replace",label:"Enter a new key (rotate)"}],initialValue:"keep"});if(F(b)){M.warn("API key prompt cancelled \u2014 leaving existing configuration untouched.");return}if(b==="keep"){Wt({ANTHROPIC_API_KEY:g.trim(),ANTHROPIC_BASE_URL:"",ANTHROPIC_AUTH_TOKEN:""}),r("api-key");return}}let E=await wr({message:"Paste your Anthropic API key:",mask:"*",validate:b=>!b||b.trim().length===0?"API key required":void 0});if(F(E)){M.warn("API key prompt cancelled \u2014 leaving existing configuration untouched.");return}Wt({ANTHROPIC_API_KEY:String(E).trim(),ANTHROPIC_BASE_URL:"",ANTHROPIC_AUTH_TOKEN:""}),r("api-key"),M.info("Saved Anthropic API key for the Claude Agent SDK path.")},s=async()=>{let g=Lt(),E=await yn({message:"Gateway URL:",placeholder:g.ANTHROPIC_BASE_URL||"http://localhost:4000",defaultValue:g.ANTHROPIC_BASE_URL||"",validate:W=>{let T=W?.trim()??"";if(!T)return"Gateway URL required";try{new URL(T);return}catch{return"Enter a valid URL, for example http://localhost:4000"}}});if(F(E)){M.warn("Gateway setup cancelled \u2014 leaving existing configuration untouched.");return}let b=await wr({message:"Gateway key/token (leave blank to keep current token, or type a new one):",mask:"*"}),O=F(b),U=O?"":String(b).trim(),L={ANTHROPIC_API_KEY:"",ANTHROPIC_BASE_URL:String(E).trim()};!O&&U.length>0&&(L.ANTHROPIC_AUTH_TOKEN=U),Wt(L),r("gateway"),O||U.length===0?M.info("Gateway URL saved; existing gateway token preserved."):M.info("Configured Claude Agent SDK gateway in ~/.claude-mem/.env.")};if(!Y)return e.provider?e.provider==="claude"?(r(),"claude"):(He({CLAUDE_MEM_PROVIDER:e.provider})&&M.info(`Saved provider=${e.provider} to ~/.claude-mem/settings.json`),M.warn(`Provider=${e.provider} requested non-interactively. API key prompt skipped \u2014 set CLAUDE_MEM_${e.provider.toUpperCase()}_API_KEY and CLAUDE_MEM_PROVIDER in settings.json or env manually if not already set.`),e.provider):t;let i=async()=>{let g=wo(),b=await Ye({message:"Do you use a subscription plan or an API key/gateway for the memory agent?",options:[{value:"subscription",label:"Subscription plan (recommended \u2014 uses your logged-in Claude SDK account)"},{value:"api-key",label:"API key or gateway (Anthropic, LiteLLM, or compatible proxy)"}],initialValue:g==="subscription"?"subscription":"api-key"});if(F(b)&&(fe("Installation cancelled."),process.exit(0)),b==="subscription"){n();return}let O=await Ye({message:"How should claude-mem connect?",options:[{value:"direct",label:"Anthropic API key"},{value:"gateway",label:"LiteLLM or custom gateway"}],initialValue:g==="gateway"||Lt().ANTHROPIC_BASE_URL?"gateway":"direct"});F(O)&&(fe("Installation cancelled."),process.exit(0)),O==="gateway"?await s():await o()},a;if(e.provider)a=e.provider;else{let g=await Ye({message:"Which memory provider do you want to use?",options:[{value:"claude",label:"Claude Agent SDK (recommended)"},{value:"gemini",label:"Gemini"},{value:"openrouter",label:"OpenRouter"}],initialValue:t});F(g)&&(fe("Installation cancelled."),process.exit(0)),a=g}if(a==="claude")return await i(),"claude";let c=a==="gemini"?"Gemini":"OpenRouter",l=a==="gemini"?"CLAUDE_MEM_GEMINI_API_KEY":"CLAUDE_MEM_OPENROUTER_API_KEY",p=St(l);if(p&&p.trim().length>0)return He({CLAUDE_MEM_PROVIDER:a})&&M.info(`Saved provider=${a} to ~/.claude-mem/settings.json`),a;let f=await wr({message:`Paste your ${c} API key:`,mask:"*",validate:g=>!g||g.trim().length===0?"API key required":void 0});if(F(f))return M.warn("API key prompt cancelled \u2014 falling back to Claude provider."),r(),"claude";let h=String(f).trim();return He({CLAUDE_MEM_PROVIDER:a,[l]:h})&&M.info(`Saved provider=${a} to ~/.claude-mem/settings.json`),a}async function op(e){let t=new Set(["claude-haiku-4-5-20251001","claude-sonnet-4-6","claude-opus-4-7"]),r=wo()==="gateway";if(e.model&&!r){if(!t.has(e.model))throw new Error(`Unknown Claude model: ${e.model}. Allowed: ${[...t].join(", ")}`);He({CLAUDE_MEM_MODEL:e.model})&&M.info(`Saved Claude model=${e.model} to ~/.claude-mem/settings.json`);return}if(e.model&&r){He({CLAUDE_MEM_MODEL:e.model})&&M.info(`Saved gateway model=${e.model} to ~/.claude-mem/settings.json`);return}if(!Y)return;let n=St("CLAUDE_MEM_MODEL");if(r){let c=await yn({message:"Which model should the gateway use?",placeholder:"claude-haiku-4-5-20251001",defaultValue:n||"claude-haiku-4-5-20251001",validate:f=>!f||f.trim().length===0?"Model required":void 0});F(c)&&(fe("Installation cancelled."),process.exit(0));let l=String(c).trim();He({CLAUDE_MEM_MODEL:l})&&M.info(`Saved gateway model=${l} to ~/.claude-mem/settings.json`);return}let o=t.has(n)?n:"claude-haiku-4-5-20251001",s=await Ye({message:`Which Claude model should claude-mem use to compress observations?
421
- This runs whenever you and Claude touch a file \u2014 keep it cheap and fast.`,options:[{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5 (recommended \u2014 fast, cheap, great for compression)"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6 (balanced quality and cost)"},{value:"claude-opus-4-7",label:"Opus 4.7 (highest quality, most expensive)"}],initialValue:o});F(s)&&(fe("Installation cancelled."),process.exit(0));let i=s;He({CLAUDE_MEM_MODEL:i})&&M.info(`Saved Claude model=${i} to ~/.claude-mem/settings.json`)}async function sp(e={}){let t=et();Y?(await si(),At(m.default.bgCyan(m.default.black(" claude-mem install ")))):console.log("claude-mem install");let r=q(),n=de(ne(r,"plugin",".claude-plugin","plugin.json")),o;if(n)try{o=JSON.parse(Zr(ne(r,"plugin",".claude-plugin","plugin.json"),"utf-8")).version??void 0}catch(C){console.warn("[install] Failed to read existing plugin version:",C instanceof Error?C.message:String(C))}let s=m.default.dim("\xB7"),i=[`${m.default.bold("claude-mem")} ${m.default.cyan(`v${t}`)}`];if(o&&o!==t?i.push(`installed ${m.default.yellow(`v${o}`)}`):o&&i.push(m.default.dim("reinstall")),M.info(i.join(` ${s} `)),n&&process.stdin.isTTY){let C=await Pt({message:"Overwrite existing installation?",initialValue:!0});(F(C)||!C)&&(fe("Installation cancelled."),process.exit(0))}let a;if(e.ide){a=[e.ide];let C=ct(),S=C.find(y=>y.id===e.ide);S&&!S.supported&&(M.error(`Support for ${S.label} coming soon.`),process.exit(1)),S||(M.error(`Unknown IDE: ${e.ide}`),M.info(`Available IDEs: ${C.map(y=>y.id).join(", ")}`),process.exit(1))}else process.stdin.isTTY?a=await $d():a=["claude-code"];await np(e)==="claude"&&await op(e);let l="dead",p=a.length>0;{if(p){let S=St("CLAUDE_MEM_WORKER_PORT"),y=Y?Dt():null;y?.start("Stopping running worker (so we can overwrite cleanly)\u2026");try{let A=await xr(S,1e4);y?y.stop(A.workerWasRunning?"Stopped running worker before overwrite.":"No worker running \u2014 proceeding."):A.workerWasRunning&&M.info("Stopped running worker before overwrite.")}catch(A){let J=A instanceof Error?A.message:String(A);y?y.stop(`Pre-overwrite worker shutdown failed: ${J}`,1):console.warn("[install] Pre-overwrite worker shutdown failed:",J)}}let C=[{title:"Caching plugin version",task:async S=>(S(`Caching v${t}...`),ya(t),`Plugin cached (v${t}) ${m.default.green("OK")}`)},{title:"Registering marketplace",task:async()=>(Yd(),`Marketplace registered ${m.default.green("OK")}`)},{title:"Registering plugin",task:async()=>(Vd(t),`Plugin registered ${m.default.green("OK")}`)},{title:"Enabling plugin in Claude settings",task:async()=>(zd(),`Plugin enabled ${m.default.green("OK")}`)},{title:"Setting up runtime (first install can take ~30s)",task:async S=>{S("Checking Bun\u2026");let{version:y}=await Kt();S("Checking uv\u2026");let{version:A}=await Fn(),J=$e(t);if(!_s(J,t)){S("Installing plugin dependencies\u2026");let{bunPath:Z}=await Kt();await Gn(J,Z),Hn(J,t,y,A)}return`Runtime ready (Bun ${y}, uv ${A}) ${m.default.green("OK")}`}}];p&&(C.unshift({title:"Copying plugin files to marketplace",task:async S=>(S("Copying to marketplace directory..."),ep(),`Plugin files copied ${m.default.green("OK")}`)}),C.push({title:"Installing marketplace dependencies",task:async S=>{S("Running npm install...");try{return tp(),`Dependencies installed ${m.default.green("OK")}`}catch(y){return console.warn("[install] npm install error:",y instanceof Error?y.message:String(y)),`Dependencies may need manual install ${m.default.yellow("!")}`}}})),await zr(C)}let f=await qd(a),h=!Y||e.noAutoStart;await zr([{title:"Starting worker daemon",task:async C=>{if(h)return Y?"Skipped (--no-auto-start)":"Skipped (non-TTY)";let S=Number(St("CLAUDE_MEM_WORKER_PORT")),y=ne(q(),"plugin","scripts","worker-service.cjs"),A=ne($e(t),"scripts","worker-service.cjs"),J=de(y)?y:A;switch(C(`Spawning worker on port ${S}...`),l=await Ys(S,J),l){case"ready":return`Worker ready at http://localhost:${S} ${m.default.green("OK")}`;case"warming":return`Worker starting on port ${S} \u2014 finishing in background ${m.default.yellow("\u23F3")}`;case"dead":return`Worker did not start \u2014 try \`npx claude-mem start\` manually ${m.default.yellow("!")}`}}}]);let k=f.length>0?"Installation Partial":"Installation Complete",g=[`Version: ${m.default.cyan(t)}`,`Plugin dir: ${m.default.cyan(r)}`,`IDEs: ${m.default.cyan(a.join(", "))}`];f.length>0&&g.push(`Failed: ${m.default.red(f.join(", "))}`),Y?Nt(g.join(`
422
- `),k):(console.log(`
423
- ${k}`),g.forEach(C=>console.log(` ${C}`)));let E=St("CLAUDE_MEM_WORKER_PORT"),b=E,O=!1;if(!h){let C=Y?Dt():null;C?.start(`Verifying worker on port ${E}\u2026`);try{let S=await fetch(`http://127.0.0.1:${E}/api/health`,{signal:AbortSignal.timeout(3e3)});if(S.ok){O=!0;try{let y=await S.json();y&&(typeof y.port=="number"||typeof y.port=="string")&&(b=y.port)}catch{}}C?.stop(O?`Worker ready at http://localhost:${b}`:`Worker reachable but not ready on port ${E}`)}catch{C?.stop(`Worker not yet responding on port ${E} (still starting)`)}}let U=l,L=U!=="dead"||O,W=h?`${m.default.yellow("!")} Worker autostart skipped \u2014 start it manually with ${m.default.bold("npx claude-mem start")}`:O||U==="ready"?`${m.default.green("\u2713")} Worker running at ${m.default.underline(`http://localhost:${b}`)}`:`${m.default.yellow("\u23F3")} Worker starting at ${m.default.underline(`http://localhost:${b}`)} \u2014 give it ~30s, then refresh`,T=h?[W,"",`${m.default.bold("First success:")} once the worker is running, keep ${m.default.underline(`http://localhost:${E}`)} open in a browser, then open Claude Code in any project. Observations stream in as Claude reads, edits, and runs commands.`,"",`${m.default.bold("Two paths from here:")}`,` ${m.default.cyan("A.")} Just start working. Memory builds passively from your first prompt. (Recommended.)`,` ${m.default.cyan("B.")} Front-load it: open Claude Code and run ${m.default.bold("/learn-codebase")} to ingest the whole repo (~5 min, optional).`,"","Memory injection starts on your second session in a project.",`Everything stays in ${m.default.cyan("~/.claude-mem")} on this machine.`,"",`${m.default.dim("How it works: /how-it-works \xB7 Disable first-session hint: CLAUDE_MEM_WELCOME_HINT_ENABLED=false")}`,`${m.default.dim("Note: close all Claude Code sessions before uninstalling, or ~/.claude-mem will be recreated by active hooks.")}`]:L?[W,"",`${m.default.bold("First success:")} keep that URL open in a browser, then open Claude Code in any project. Observations stream in as Claude reads, edits, and runs commands.`,"",`${m.default.bold("Two paths from here:")}`,` ${m.default.cyan("A.")} Just start working. Memory builds passively from your first prompt. (Recommended.)`,` ${m.default.cyan("B.")} Front-load it: open Claude Code and run ${m.default.bold("/learn-codebase")} to ingest the whole repo (~5 min, optional).`,"","Memory injection starts on your second session in a project.",`Everything stays in ${m.default.cyan("~/.claude-mem")} on this machine.`,"",`${m.default.dim("How it works: /how-it-works \xB7 Disable first-session hint: CLAUDE_MEM_WELCOME_HINT_ENABLED=false")}`,`${m.default.dim("Note: close all Claude Code sessions before uninstalling, or ~/.claude-mem will be recreated by active hooks.")}`]:[`${m.default.yellow("!")} Worker not yet ready on port ${m.default.cyan(String(E))} -- still starting up; check ${m.default.bold("claude-mem status")} later, or start manually: ${m.default.bold("npx claude-mem start")}`,"",`${m.default.bold("First success:")} keep ${m.default.underline(`http://localhost:${E}`)} open in a browser, then open Claude Code in any project. Observations stream in as Claude reads, edits, and runs commands.`,"",`${m.default.bold("Two paths from here:")}`,` ${m.default.cyan("A.")} Just start working. Memory builds passively from your first prompt. (Recommended.)`,` ${m.default.cyan("B.")} Front-load it: open Claude Code and run ${m.default.bold("/learn-codebase")} to ingest the whole repo (~5 min, optional).`,"","Memory injection starts on your second session in a project.",`Everything stays in ${m.default.cyan("~/.claude-mem")} on this machine.`,"",`${m.default.dim("How it works: /how-it-works \xB7 Disable first-session hint: CLAUDE_MEM_WELCOME_HINT_ENABLED=false")}`,`${m.default.dim("Note: close all Claude Code sessions before uninstalling, or ~/.claude-mem will be recreated by active hooks.")}`];Y?(Nt(T.join(`
424
- `),"Next Steps"),f.length>0?De(m.default.yellow("claude-mem installed with some IDE setup failures.")):De(m.default.green("claude-mem installed successfully!"))):(console.log(`
425
- Next Steps`),T.forEach(C=>console.log(` ${C}`)),f.length>0?(console.log(`
420
+ `;ya(s,l+f,"utf-8"),b.success(`Added Claude Code to PATH in ${s}`)}catch(p){b.warn(`Could not update ${s}: ${p instanceof Error?p.message:String(p)}`),b.info(`Run manually: echo '${c}' >> ${s}`);return}process.env.PATH=`${t}:${r}`}async function dp(){let e=ae?'powershell -ExecutionPolicy ByPass -c "irm https://claude.ai/install.ps1 | iex"':"curl -fsSL https://claude.ai/install.sh | bash",t=V?Ut():null;return t?.start("Installing Claude Code (this can take a few minutes \u2014 downloading the native build)\u2026"),new Promise(n=>{let r="",o=we(e,[],{shell:ae?process.env.ComSpec??"cmd.exe":"/bin/bash",stdio:t?["inherit","pipe","pipe"]:"inherit"});o.stdout?.on("data",s=>{r+=s.toString()}),o.stderr?.on("data",s=>{r+=s.toString()}),o.on("error",s=>{t?.stop("Claude Code install failed",1),r&&process.stderr.write(r),b.error(`Claude Code install failed: ${s.message}`),b.info("You can install it manually later: https://claude.ai/install.sh"),n(!1)}),o.on("exit",s=>{if(s!==0){t?.stop("Claude Code install failed",1),r&&process.stderr.write(r),b.error(`Claude Code install failed (exit ${s??"unknown"})`),b.info("You can install it manually later: https://claude.ai/install.sh"),n(!1);return}if(t?.stop("Claude Code installed"),!ae)try{up()}catch(i){b.warn(`Could not auto-apply PATH setup: ${i instanceof Error?i.message:String(i)}`)}n(!0)})})}async function pp(){let e=lt(),t=e.find(s=>s.id==="claude-code");if(t&&!t.detected){b.warn("Claude Code is not installed. Claude-mem works best in Claude Code, but also works with the IDEs below.");let s=await Ve({message:"Install Claude Code now?",options:[{value:"install",label:"Yes \u2014 install Claude Code (recommended)"},{value:"skip",label:"No \u2014 pick another IDE below"},{value:"cancel",label:"Cancel installation"}],initialValue:"install"});(G(s)||s==="cancel")&&(fe("Installation cancelled."),process.exit(0)),s==="install"&&await dp()&&(e=lt())}e.filter(s=>s.detected).length===0&&b.warn("No supported IDEs detected \u2014 pick the one(s) you plan to use.");let r=e.map(s=>{let i=s.detected?" [detected]":"",a=s.supported?`${s.hint}${i}`:`coming soon${i}`;return{value:s.id,label:s.label,hint:a}}),o=await ls({message:"Which IDEs do you use?",options:r,initialValues:[],required:!0});return G(o)&&(fe("Installation cancelled."),process.exit(0)),o}function mp(){let e=q(),t=dn();Tt(e);let n=[".agents",".codex-plugin",".mcp.json","plugin","package.json","package-lock.json","openclaw","dist","LICENSE","README.md","CHANGELOG.md"];for(let r of n){let o=oe(t,r),s=oe(e,r);me(o)&&(me(s)&&Sa(s,{recursive:!0,force:!0}),ha(o,s,{recursive:!0,force:!0}))}}function ka(e){let t=sr(),n=et(e);Sa(n,{recursive:!0,force:!0}),Tt(n),ha(t,n,{recursive:!0,force:!0})}function fp(){let e=q(),t=oe(e,"package.json");me(t)&&rp("npm install --omit=dev --legacy-peer-deps",{cwd:e,stdio:"pipe",encoding:"utf8",...ae?{shell:process.env.ComSpec??"cmd.exe"}:{}})}function Je(e){let t=ot;try{let n={};if(me(t))try{let r=Xn(t,"utf-8"),o=JSON.parse(r);o&&typeof o=="object"&&o.env&&typeof o.env=="object"?n={...o.env}:o&&typeof o=="object"&&(n={...o})}catch(r){console.warn("[install] Failed to parse existing settings.json, starting from empty:",r instanceof Error?r.message:String(r)),n={}}else{let r=Ca(t);me(r)||Ea(r,{recursive:!0})}for(let[r,o]of Object.entries(e))n[r]=o;return ya(t,JSON.stringify(n,null,2),"utf-8"),!0}catch(n){return b.error(`Failed to write settings to ${t}: ${n instanceof Error?n.message:String(n)}`),!1}}function gp(){try{if(!me(ot))return;let e=JSON.parse(Xn(ot,"utf-8")),n=(e.env&&typeof e.env=="object"?e.env:e).CLAUDE_MEM_CLAUDE_AUTH_METHOD;return n==="subscription"||n==="api-key"||n==="gateway"?n:void 0}catch{return}}function ko(){let e=gp();if(e)return e;let t=Wt();return t.ANTHROPIC_BASE_URL?.trim()?"gateway":t.ANTHROPIC_API_KEY?.trim()?"api-key":"subscription"}async function hp(e){let t=yt("CLAUDE_MEM_PROVIDER")||"claude",n=g=>{let S=g??ko();Je({CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:S})&&b.info("Saved Claude Agent SDK configuration to ~/.claude-mem/settings.json")},r=()=>{n("subscription"),jt({ANTHROPIC_API_KEY:"",ANTHROPIC_BASE_URL:"",ANTHROPIC_AUTH_TOKEN:""}),b.info("Configured claude-mem to use your logged-in Claude SDK account.")},o=async()=>{let g=Wt().ANTHROPIC_API_KEY||"";if(g.trim().length>0){let y=await Ve({message:"An Anthropic API key is already configured. Keep it or enter a new one?",options:[{value:"keep",label:"Keep existing key"},{value:"replace",label:"Enter a new key (rotate)"}],initialValue:"keep"});if(G(y)){b.warn("API key prompt cancelled \u2014 leaving existing configuration untouched.");return}if(y==="keep"){jt({ANTHROPIC_API_KEY:g.trim(),ANTHROPIC_BASE_URL:"",ANTHROPIC_AUTH_TOKEN:""}),n("api-key");return}}let S=await vn({message:"Paste your Anthropic API key:",mask:"*",validate:y=>!y||y.trim().length===0?"API key required":void 0});if(G(S)){b.warn("API key prompt cancelled \u2014 leaving existing configuration untouched.");return}jt({ANTHROPIC_API_KEY:String(S).trim(),ANTHROPIC_BASE_URL:"",ANTHROPIC_AUTH_TOKEN:""}),n("api-key"),b.info("Saved Anthropic API key for the Claude Agent SDK path.")},s=async()=>{let g=Wt(),S=await vr({message:"Gateway URL:",placeholder:g.ANTHROPIC_BASE_URL||"http://localhost:4000",defaultValue:g.ANTHROPIC_BASE_URL||"",validate:K=>{let T=K?.trim()??"";if(!T)return"Gateway URL required";try{new URL(T);return}catch{return"Enter a valid URL, for example http://localhost:4000"}}});if(G(S)){b.warn("Gateway setup cancelled \u2014 leaving existing configuration untouched.");return}let y=await vn({message:"Gateway key/token (leave blank to keep current token, or type a new one):",mask:"*"}),O=G(y),D=O?"":String(y).trim(),W={ANTHROPIC_API_KEY:"",ANTHROPIC_BASE_URL:String(S).trim()};!O&&D.length>0&&(W.ANTHROPIC_AUTH_TOKEN=D),jt(W),n("gateway"),O||D.length===0?b.info("Gateway URL saved; existing gateway token preserved."):b.info("Configured Claude Agent SDK gateway in ~/.claude-mem/.env.")};if(!V)return e.provider?e.provider==="claude"?(n(),"claude"):(Je({CLAUDE_MEM_PROVIDER:e.provider})&&b.info(`Saved provider=${e.provider} to ~/.claude-mem/settings.json`),b.warn(`Provider=${e.provider} requested non-interactively. API key prompt skipped \u2014 set CLAUDE_MEM_${e.provider.toUpperCase()}_API_KEY and CLAUDE_MEM_PROVIDER in settings.json or env manually if not already set.`),e.provider):t;let i=async()=>{let g=ko(),y=await Ve({message:"Do you use a subscription plan or an API key/gateway for the memory agent?",options:[{value:"subscription",label:"Subscription plan (recommended \u2014 uses your logged-in Claude SDK account)"},{value:"api-key",label:"API key or gateway (Anthropic, LiteLLM, or compatible proxy)"}],initialValue:g==="subscription"?"subscription":"api-key"});if(G(y)&&(fe("Installation cancelled."),process.exit(0)),y==="subscription"){r();return}let O=await Ve({message:"How should claude-mem connect?",options:[{value:"direct",label:"Anthropic API key"},{value:"gateway",label:"LiteLLM or custom gateway"}],initialValue:g==="gateway"||Wt().ANTHROPIC_BASE_URL?"gateway":"direct"});G(O)&&(fe("Installation cancelled."),process.exit(0)),O==="gateway"?await s():await o()},a;if(e.provider)a=e.provider;else{let g=await Ve({message:"Which memory provider do you want to use?",options:[{value:"claude",label:"Claude Agent SDK (recommended)"},{value:"gemini",label:"Gemini"},{value:"openrouter",label:"OpenRouter"}],initialValue:t});G(g)&&(fe("Installation cancelled."),process.exit(0)),a=g}if(a==="claude")return await i(),"claude";let c=a==="gemini"?"Gemini":"OpenRouter",l=a==="gemini"?"CLAUDE_MEM_GEMINI_API_KEY":"CLAUDE_MEM_OPENROUTER_API_KEY",p=yt(l);if(p&&p.trim().length>0)return Je({CLAUDE_MEM_PROVIDER:a})&&b.info(`Saved provider=${a} to ~/.claude-mem/settings.json`),a;let f=await vn({message:`Paste your ${c} API key:`,mask:"*",validate:g=>!g||g.trim().length===0?"API key required":void 0});if(G(f))return b.warn("API key prompt cancelled \u2014 falling back to Claude provider."),n(),"claude";let h=String(f).trim();return Je({CLAUDE_MEM_PROVIDER:a,[l]:h})&&b.info(`Saved provider=${a} to ~/.claude-mem/settings.json`),a}async function Ep(e){let t=new Set(["claude-haiku-4-5-20251001","claude-sonnet-4-6","claude-opus-4-7"]),n=ko()==="gateway";if(e.model&&!n){if(!t.has(e.model))throw new Error(`Unknown Claude model: ${e.model}. Allowed: ${[...t].join(", ")}`);Je({CLAUDE_MEM_MODEL:e.model})&&b.info(`Saved Claude model=${e.model} to ~/.claude-mem/settings.json`);return}if(e.model&&n){Je({CLAUDE_MEM_MODEL:e.model})&&b.info(`Saved gateway model=${e.model} to ~/.claude-mem/settings.json`);return}if(!V)return;let r=yt("CLAUDE_MEM_MODEL");if(n){let c=await vr({message:"Which model should the gateway use?",placeholder:"claude-haiku-4-5-20251001",defaultValue:r||"claude-haiku-4-5-20251001",validate:f=>!f||f.trim().length===0?"Model required":void 0});G(c)&&(fe("Installation cancelled."),process.exit(0));let l=String(c).trim();Je({CLAUDE_MEM_MODEL:l})&&b.info(`Saved gateway model=${l} to ~/.claude-mem/settings.json`);return}let o=t.has(r)?r:"claude-haiku-4-5-20251001",s=await Ve({message:`Which Claude model should claude-mem use to compress observations?
421
+ This runs whenever you and Claude touch a file \u2014 keep it cheap and fast.`,options:[{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5 (recommended \u2014 fast, cheap, great for compression)"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6 (balanced quality and cost)"},{value:"claude-opus-4-7",label:"Opus 4.7 (highest quality, most expensive)"}],initialValue:o});G(s)&&(fe("Installation cancelled."),process.exit(0));let i=s;Je({CLAUDE_MEM_MODEL:i})&&b.info(`Saved Claude model=${i} to ~/.claude-mem/settings.json`)}async function Sp(e={}){let t=tt();V?(await ci(),Nt(m.default.bgCyan(m.default.black(" claude-mem install ")))):console.log("claude-mem install");let n=q(),r=me(oe(n,"plugin",".claude-plugin","plugin.json")),o;if(r)try{o=JSON.parse(Xn(oe(n,"plugin",".claude-plugin","plugin.json"),"utf-8")).version??void 0}catch(E){console.warn("[install] Failed to read existing plugin version:",E instanceof Error?E.message:String(E))}let s=m.default.dim("\xB7"),i=[`${m.default.bold("claude-mem")} ${m.default.cyan(`v${t}`)}`];if(o&&o!==t?i.push(`installed ${m.default.yellow(`v${o}`)}`):o&&i.push(m.default.dim("reinstall")),b.info(i.join(` ${s} `)),r&&process.stdin.isTTY){let E=await At({message:"Overwrite existing installation?",initialValue:!0});(G(E)||!E)&&(fe("Installation cancelled."),process.exit(0))}let a;if(e.ide){a=[e.ide];let E=lt(),w=E.find(M=>M.id===e.ide);w&&!w.supported&&(b.error(`Support for ${w.label} coming soon.`),process.exit(1)),w||(b.error(`Unknown IDE: ${e.ide}`),b.info(`Available IDEs: ${E.map(M=>M.id).join(", ")}`),process.exit(1))}else process.stdin.isTTY?a=await pp():a=["claude-code"];await hp(e)==="claude"&&await Ep(e);let l="dead",p=a.length>0;{if(p){let w=yt("CLAUDE_MEM_WORKER_PORT"),M=V?Ut():null;M?.start("Stopping running worker (so we can overwrite cleanly)\u2026");try{let L=await Rn(w,1e4);M?M.stop(L.workerWasRunning?"Stopped running worker before overwrite.":"No worker running \u2014 proceeding."):L.workerWasRunning&&b.info("Stopped running worker before overwrite.")}catch(L){let N=L instanceof Error?L.message:String(L);M?M.stop(`Pre-overwrite worker shutdown failed: ${N}`,1):console.warn("[install] Pre-overwrite worker shutdown failed:",N)}}let E=[{title:"Caching plugin version",task:async w=>(w(`Caching v${t}...`),ka(t),`Plugin cached (v${t}) ${m.default.green("OK")}`)},{title:"Registering marketplace",task:async()=>(op(),`Marketplace registered ${m.default.green("OK")}`)},{title:"Registering plugin",task:async()=>(sp(t),`Plugin registered ${m.default.green("OK")}`)},{title:"Enabling plugin in Claude settings",task:async()=>(ip(),`Plugin enabled ${m.default.green("OK")}`)},{title:"Setting up runtime (first install can take ~30s)",task:async w=>{w("Checking Bun\u2026");let{version:M}=await Bt();w("Checking uv\u2026");let{version:L}=await Jr(),N=et(t);if(!ti(N,t)){w("Installing plugin dependencies\u2026");let{bunPath:Xe}=await Bt();await Kr(N,Xe),Br(N,t,M,L)}return`Runtime ready (Bun ${M}, uv ${L}) ${m.default.green("OK")}`}}];p&&(E.unshift({title:"Copying plugin files to marketplace",task:async w=>(w("Copying to marketplace directory..."),mp(),`Plugin files copied ${m.default.green("OK")}`)}),E.push({title:"Installing marketplace dependencies",task:async w=>{w("Running npm install...");try{return fp(),`Dependencies installed ${m.default.green("OK")}`}catch(M){return console.warn("[install] npm install error:",M instanceof Error?M.message:String(M)),`Dependencies may need manual install ${m.default.yellow("!")}`}}})),await qn(E)}let f=await cp(a),h=null;if(a.includes("claude-code"))try{let E=va();h=E?"disabled":"already-disabled",E?b.success("Claude Code: auto-memory disabled (CLAUDE_CODE_DISABLE_AUTO_MEMORY=1)."):b.info("Claude Code: auto-memory already disabled, leaving settings.json untouched.")}catch(E){h="failed",b.warn(`Could not disable Claude Code auto-memory: ${E instanceof Error?E.message:String(E)}`)}let k=!V||e.noAutoStart;await qn([{title:"Starting worker daemon",task:async E=>{if(k)return V?"Skipped (--no-auto-start)":"Skipped (non-TTY)";let w=Number(yt("CLAUDE_MEM_WORKER_PORT")),M=oe(q(),"plugin","scripts","worker-service.cjs"),L=oe(et(t),"scripts","worker-service.cjs"),N=me(M)?M:L;switch(E(`Spawning worker on port ${w}...`),l=await Zs(w,N),l){case"ready":return`Worker ready at http://localhost:${w} ${m.default.green("OK")}`;case"warming":return`Worker starting on port ${w} \u2014 finishing in background ${m.default.yellow("\u23F3")}`;case"dead":return`Worker did not start \u2014 try \`npx claude-mem start\` manually ${m.default.yellow("!")}`}}}]);let g=f.length>0?"Installation Partial":"Installation Complete",S=[`Version: ${m.default.cyan(t)}`,`Plugin dir: ${m.default.cyan(n)}`,`IDEs: ${m.default.cyan(a.join(", "))}`];h==="disabled"?S.push(`Auto-memory: ${m.default.cyan("disabled")} (CLAUDE_CODE_DISABLE_AUTO_MEMORY=1)`):h==="already-disabled"?S.push(`Auto-memory: ${m.default.cyan("already disabled")} (CLAUDE_CODE_DISABLE_AUTO_MEMORY=1)`):h==="failed"&&S.push(`Auto-memory: ${m.default.red("write failed")} (see warning above)`),f.length>0&&S.push(`Failed: ${m.default.red(f.join(", "))}`),V?Dt(S.join(`
422
+ `),g):(console.log(`
423
+ ${g}`),S.forEach(E=>console.log(` ${E}`)));let y=yt("CLAUDE_MEM_WORKER_PORT"),O=y,D=!1;if(!k){let E=V?Ut():null;E?.start(`Verifying worker on port ${y}\u2026`);try{let w=await fetch(`http://127.0.0.1:${y}/api/health`,{signal:AbortSignal.timeout(3e3)});if(w.ok){D=!0;try{let M=await w.json();M&&(typeof M.port=="number"||typeof M.port=="string")&&(O=M.port)}catch{}}E?.stop(D?`Worker ready at http://localhost:${O}`:`Worker reachable but not ready on port ${y}`)}catch{E?.stop(`Worker not yet responding on port ${y} (still starting)`)}}let W=l,K=W!=="dead"||D,T=k?`${m.default.yellow("!")} Worker autostart skipped \u2014 start it manually with ${m.default.bold("npx claude-mem start")}`:D||W==="ready"?`${m.default.green("\u2713")} Worker running at ${m.default.underline(`http://localhost:${O}`)}`:`${m.default.yellow("\u23F3")} Worker starting at ${m.default.underline(`http://localhost:${O}`)} \u2014 give it ~30s, then refresh`,j=k?[T,"",`${m.default.bold("First success:")} once the worker is running, keep ${m.default.underline(`http://localhost:${y}`)} open in a browser, then open Claude Code in any project. Observations stream in as Claude reads, edits, and runs commands.`,"",`${m.default.bold("Two paths from here:")}`,` ${m.default.cyan("A.")} Just start working. Memory builds passively from your first prompt. (Recommended.)`,` ${m.default.cyan("B.")} Front-load it: open Claude Code and run ${m.default.bold("/learn-codebase")} to ingest the whole repo (~5 min, optional).`,"","Memory injection starts on your second session in a project.",`Everything stays in ${m.default.cyan("~/.claude-mem")} on this machine.`,"",`${m.default.dim("How it works: /how-it-works \xB7 Disable first-session hint: CLAUDE_MEM_WELCOME_HINT_ENABLED=false")}`,`${m.default.dim("Note: close all Claude Code sessions before uninstalling, or ~/.claude-mem will be recreated by active hooks.")}`]:K?[T,"",`${m.default.bold("First success:")} keep that URL open in a browser, then open Claude Code in any project. Observations stream in as Claude reads, edits, and runs commands.`,"",`${m.default.bold("Two paths from here:")}`,` ${m.default.cyan("A.")} Just start working. Memory builds passively from your first prompt. (Recommended.)`,` ${m.default.cyan("B.")} Front-load it: open Claude Code and run ${m.default.bold("/learn-codebase")} to ingest the whole repo (~5 min, optional).`,"","Memory injection starts on your second session in a project.",`Everything stays in ${m.default.cyan("~/.claude-mem")} on this machine.`,"",`${m.default.dim("How it works: /how-it-works \xB7 Disable first-session hint: CLAUDE_MEM_WELCOME_HINT_ENABLED=false")}`,`${m.default.dim("Note: close all Claude Code sessions before uninstalling, or ~/.claude-mem will be recreated by active hooks.")}`]:[`${m.default.yellow("!")} Worker not yet ready on port ${m.default.cyan(String(y))} -- still starting up; check ${m.default.bold("claude-mem status")} later, or start manually: ${m.default.bold("npx claude-mem start")}`,"",`${m.default.bold("First success:")} keep ${m.default.underline(`http://localhost:${y}`)} open in a browser, then open Claude Code in any project. Observations stream in as Claude reads, edits, and runs commands.`,"",`${m.default.bold("Two paths from here:")}`,` ${m.default.cyan("A.")} Just start working. Memory builds passively from your first prompt. (Recommended.)`,` ${m.default.cyan("B.")} Front-load it: open Claude Code and run ${m.default.bold("/learn-codebase")} to ingest the whole repo (~5 min, optional).`,"","Memory injection starts on your second session in a project.",`Everything stays in ${m.default.cyan("~/.claude-mem")} on this machine.`,"",`${m.default.dim("How it works: /how-it-works \xB7 Disable first-session hint: CLAUDE_MEM_WELCOME_HINT_ENABLED=false")}`,`${m.default.dim("Note: close all Claude Code sessions before uninstalling, or ~/.claude-mem will be recreated by active hooks.")}`];V?(Dt(j.join(`
424
+ `),"Next Steps"),f.length>0?Ue(m.default.yellow("claude-mem installed with some IDE setup failures.")):Ue(m.default.green("claude-mem installed successfully!"))):(console.log(`
425
+ Next Steps`),j.forEach(E=>console.log(` ${E}`)),f.length>0?(console.log(`
426
426
  claude-mem installed with some IDE setup failures.`),process.exitCode=1):console.log(`
427
- claude-mem installed successfully!`))}async function ip(){let e=et(),t=$e(e);Y?At(m.default.bgCyan(m.default.black(" claude-mem repair "))):console.log("claude-mem repair"),M.info(`Version: ${m.default.cyan(e)}`),await zr([{title:"Setting up runtime",task:async r=>{r("Checking Bun\u2026");let{version:n}=await Kt();r("Checking uv\u2026");let{version:o}=await Fn();de(ne(t,"package.json"))||(r("Cache missing \u2014 repopulating from npm package\u2026"),ya(e)),r("Reinstalling plugin dependencies\u2026");let{bunPath:s}=await Kt();return await Gn(t,s),Hn(t,e,n,o),`Runtime ready (Bun ${n}, uv ${o}) ${m.default.green("OK")}`}}]),Y?De(m.default.green("claude-mem repair complete.")):console.log("claude-mem repair complete.")}var m,Y,M,Xr=w(()=>{"use strict";wn();m=qe(vt(),1);tt();Ue();re();ys();Vs();$s();ii();Ke();kt();Kn();ci();Y=process.stdin.isTTY===!0;M={info:e=>Y?$.info(e):console.log(` ${e}`),success:e=>Y?$.success(e):console.log(` ${e}`),warn:e=>Y?$.warn(e):console.warn(` ${e}`),error:e=>Y?$.error(e):console.error(` ${e}`)}});var Ca={};Ee(Ca,{runUninstallCommand:()=>hp});import{existsSync as Ze,readFileSync as ap,readdirSync as Co,rmSync as or,writeFileSync as cp}from"fs";import{homedir as wa}from"os";import{join as Te}from"path";function lp(){let e=q();return Ze(e)?(or(e,{recursive:!0,force:!0}),!0):!1}function up(){let e=Te(Je(),"cache","thedotmack","claude-mem");return Ze(e)?(or(e,{recursive:!0,force:!0}),!0):!1}function dp(){let e=pe(Xe(),{});e.thedotmack&&(delete e.thedotmack,Pe(Xe(),e))}function pp(){let e=pe(Qe(),{});e.plugins?.["claude-mem@thedotmack"]&&(delete e.plugins["claude-mem@thedotmack"],Pe(Qe(),e))}function mp(){let e=wa(),t=[Te(e,".bashrc"),Te(e,".zshrc"),Te(e,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1")],r=/^\s*alias\s+claude-mem\s*=/;for(let n of t){if(!Ze(n))continue;let o;try{o=ap(n,"utf-8")}catch(a){console.warn(`[uninstall] Could not read ${n}:`,a instanceof Error?a.message:String(a));continue}let s=o.split(`
428
- `),i=s.filter(a=>!r.test(a));if(i.length!==s.length)try{cp(n,i.join(`
429
- `)),console.error(`Removed legacy claude-mem alias from ${n}`)}catch(a){console.warn(`[uninstall] Could not rewrite ${n}:`,a instanceof Error?a.message:String(a))}}}function fp(){let e=pe(_e(),{});e.enabledPlugins?.["claude-mem@thedotmack"]!==void 0&&(delete e.enabledPlugins["claude-mem@thedotmack"],Pe(_e(),e))}function gp(){let e=wa(),t=0,r=Te(e,".npm","_npx");if(Ze(r)){let s=[];try{s=Co(r)}catch(i){console.warn(`[uninstall] Could not read ${r}:`,i instanceof Error?i.message:String(i))}for(let i of s){let a=Te(r,i,"node_modules","claude-mem");if(Ze(a))try{or(a,{recursive:!0,force:!0}),t++}catch(c){console.warn(`[uninstall] Could not remove ${a}:`,c instanceof Error?c.message:String(c))}}}let n=Te(e,".cache","claude-cli-nodejs");if(Ze(n)){let s=[];try{s=Co(n)}catch(i){console.warn(`[uninstall] Could not read ${n}:`,i instanceof Error?i.message:String(i))}for(let i of s){let a=Te(n,i),c=[];try{c=Co(a)}catch(l){console.warn(`[uninstall] Could not read ${a}:`,l instanceof Error?l.message:String(l));continue}for(let l of c){if(!l.startsWith("mcp-logs-plugin-claude-mem-"))continue;let p=Te(a,l);try{or(p,{recursive:!0,force:!0}),t++}catch(f){console.warn(`[uninstall] Could not remove ${p}:`,f instanceof Error?f.message:String(f))}}}}let o=Te(e,".claude","plugins","data","claude-mem-thedotmack");if(Ze(o))try{or(o,{recursive:!0,force:!0}),t++}catch(s){console.warn(`[uninstall] Could not remove ${o}:`,s instanceof Error?s.message:String(s))}return t}async function hp(){if(At(te.default.bgRed(te.default.white(" claude-mem uninstall "))),ur()){if(process.stdin.isTTY){let r=await Pt({message:"Are you sure you want to uninstall claude-mem?",initialValue:!1});if(F(r)||!r){fe("Uninstall cancelled.");return}}}else if($.warn("claude-mem does not appear to be installed."),process.stdin.isTTY){let r=await Pt({message:"Clean up any remaining registration data anyway?",initialValue:!1});if(F(r)||!r){De("Nothing to do.");return}}else{De("Nothing to do.");return}let e=K.get("CLAUDE_MEM_WORKER_PORT");try{(await xr(e,1e4)).workerWasRunning&&$.info("Worker service stopped.")}catch(r){console.warn("[uninstall] Worker shutdown attempt failed:",r instanceof Error?r.message:String(r))}await Cr([{title:"Removing marketplace directory",task:async()=>lp()?`Marketplace directory removed ${te.default.green("OK")}`:`Marketplace directory not found ${te.default.dim("skipped")}`},{title:"Removing cache directory",task:async()=>up()?`Cache directory removed ${te.default.green("OK")}`:`Cache directory not found ${te.default.dim("skipped")}`},{title:"Removing marketplace registration",task:async()=>(dp(),`Marketplace registration removed ${te.default.green("OK")}`)},{title:"Removing plugin registration",task:async()=>(pp(),`Plugin registration removed ${te.default.green("OK")}`)},{title:"Removing from Claude settings",task:async()=>(fp(),`Claude settings updated ${te.default.green("OK")}`)},{title:"Removing legacy claude-mem shell alias",task:async()=>(mp(),`Legacy alias check complete ${te.default.green("OK")}`)},{title:"Removing stray claude-mem caches and logs",task:async()=>{let r=gp();return r>0?`Stray paths removed: ${r} ${te.default.green("OK")}`:`No stray paths found ${te.default.dim("skipped")}`}}]);let t=[{label:"Gemini CLI hooks",fn:async()=>{let{uninstallGeminiCliHooks:r}=await Promise.resolve().then(()=>(to(),eo));return r()}},{label:"Windsurf hooks",fn:async()=>{let{uninstallWindsurfHooks:r}=await Promise.resolve().then(()=>(po(),uo));return r()}},{label:"OpenCode plugin",fn:async()=>{let{uninstallOpenCodePlugin:r}=await Promise.resolve().then(()=>(ao(),io));return r()}},{label:"OpenClaw plugin",fn:async()=>{let{uninstallOpenClawPlugin:r}=await Promise.resolve().then(()=>(ho(),go));return r()}},{label:"Codex CLI",fn:async()=>{let{uninstallCodexCli:r}=await Promise.resolve().then(()=>(yo(),So));return r()}}];for(let{label:r,fn:n}of t)try{await n()===0&&$.info(`${r}: removed.`)}catch(o){console.warn(`[uninstall] ${r} cleanup failed:`,o instanceof Error?o.message:String(o))}Nt([`Your data directory at ${te.default.cyan("~/.claude-mem")} was preserved.`,"To remove it manually: rm -rf ~/.claude-mem"].join(`
430
- `),"Note"),De(te.default.green("claude-mem has been uninstalled."))}var te,va=w(()=>{"use strict";wn();te=qe(vt(),1);Ke();kt();Ue();Kn()});import{spawnSync as Ep}from"child_process";import{existsSync as Sp}from"fs";import{homedir as vo}from"os";import{join as ko}from"path";function yp(){return me?[ko(vo(),".bun","bin","bun.exe"),ko(process.env.USERPROFILE||vo(),".bun","bin","bun.exe")]:[ko(vo(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"]}function ka(){let t=Ep(me?"where":"which",["bun"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:me});if(t.status===0&&t.stdout.trim())return"bun";for(let r of yp())if(Sp(r))return r;return null}var ba=w(()=>{"use strict";Ke()});var Re={};Ee(Re,{runAdoptCommand:()=>bp,runCleanupCommand:()=>Mp,runRestartCommand:()=>vp,runSearchCommand:()=>Tp,runStartCommand:()=>wp,runStatusCommand:()=>kp,runStopCommand:()=>Cp,runTranscriptWatchCommand:()=>xp});import{existsSync as bo}from"fs";import{join as Ma}from"path";function Qr(){ur()||(console.error(z.default.red("claude-mem is not installed.")),console.error(`Run: ${z.default.bold("npx claude-mem install")}`),process.exit(1))}function Mo(){let e=ka();return e||(console.error(z.default.red("Bun not found.")),console.error("Install Bun: https://bun.sh"),console.error("After installation, restart your terminal."),process.exit(1)),e}function Ta(){return Ma(q(),"plugin","scripts","worker-service.cjs")}function yt(e,t=[]){Qr();let r=Mo(),n=Ta();bo(n)||(console.error(z.default.red(`Worker script not found at: ${n}`)),console.error("The installation may be corrupted. Try: npx claude-mem install"),process.exit(1));let o=[n,e,...t],s=we(r,o,{stdio:"inherit",cwd:q(),env:process.env});s.on("error",i=>{console.error(z.default.red(`Failed to start Bun: ${i.message}`)),process.exit(1)}),s.on("close",i=>{process.exit(i??0)})}function wp(){yt("start")}function Cp(){yt("stop")}function vp(){yt("restart")}function kp(){yt("status")}function bp(e=[]){Qr();let t=Mo(),r=Ta();bo(r)||(console.error(z.default.red(`Worker script not found at: ${r}`)),console.error("The installation may be corrupted. Try: npx claude-mem install"),process.exit(1));let n=process.cwd(),o=[r,"adopt","--cwd",n,...e],s=we(t,o,{stdio:"inherit",cwd:q(),env:process.env});s.on("error",i=>{console.error(z.default.red(`Failed to start Bun: ${i.message}`)),process.exit(1)}),s.on("close",i=>{process.exit(i??0)})}function Mp(e=[]){yt("cleanup",e)}async function Tp(e){Qr();let t=e.join(" ").trim();t||(console.error(z.default.red("Usage: npx claude-mem search <query>")),process.exit(1));let n=`http://127.0.0.1:${K.get("CLAUDE_MEM_WORKER_PORT")}/api/search?query=${encodeURIComponent(t)}`,o;try{o=await fetch(n)}catch(i){let a=i instanceof Error?i.message:String(i);((i instanceof Error?i.cause:void 0)?.code==="ECONNREFUSED"||a.includes("ECONNREFUSED"))&&(console.error(z.default.red("Worker is not running.")),console.error(`Start it with: ${z.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(z.default.red(`Search failed: ${a}`)),process.exit(1)}o.ok||(o.status===404&&(console.error(z.default.red("Search endpoint not found. Is the worker running?")),console.error(`Try: ${z.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(z.default.red(`Search failed: HTTP ${o.status}`)),process.exit(1));let s;try{s=await o.json()}catch(i){let a=i instanceof Error?i.message:String(i);console.error(z.default.red(`Search failed: invalid JSON response (${a})`)),process.exit(1)}console.log(typeof s=="object"&&s!==null?JSON.stringify(s,null,2):s)}function xp(){Qr();let e=Mo(),t=Ma(q(),"plugin","scripts","transcript-watcher.cjs");if(!bo(t)){yt("transcript",["watch"]);return}let r=we(e,[t,"watch"],{stdio:"inherit",cwd:q(),env:process.env});r.on("error",n=>{console.error(z.default.red(`Failed to start transcript watcher: ${n.message}`)),process.exit(1)}),r.on("close",n=>{process.exit(n??0)})}var z,Oe=w(()=>{"use strict";tt();z=qe(vt(),1);ba();Ke();Ue()});var R=qe(vt(),1);Ke();var wt=process.argv.slice(2),To=wt[0]?.toLowerCase()??"",Ip=new Set(["-h","--help","-v","--version"]),xa=To.startsWith("-")&&!Ip.has(To)?"install":To;function Rp(){let e=et();console.log(`
427
+ claude-mem installed successfully!`))}async function yp(){let e=tt(),t=et(e);V?Nt(m.default.bgCyan(m.default.black(" claude-mem repair "))):console.log("claude-mem repair"),b.info(`Version: ${m.default.cyan(e)}`),await qn([{title:"Setting up runtime",task:async n=>{n("Checking Bun\u2026");let{version:r}=await Bt();n("Checking uv\u2026");let{version:o}=await Jr();me(oe(t,"package.json"))||(n("Cache missing \u2014 repopulating from npm package\u2026"),ka(e)),n("Reinstalling plugin dependencies\u2026");let{bunPath:s}=await Bt();return await Kr(t,s),Br(t,e,r,o),`Runtime ready (Bun ${r}, uv ${o}) ${m.default.green("OK")}`}}]),V?Ue(m.default.green("claude-mem repair complete.")):console.log("claude-mem repair complete.")}var m,V,b,_n=C(()=>{"use strict";kr();m=Qe(kt(),1);nt();Le();re();vs();qs();ni();li();Be();bt();Vr();di();V=process.stdin.isTTY===!0;b={info:e=>V?$.info(e):console.log(` ${e}`),success:e=>V?$.success(e):console.log(` ${e}`),warn:e=>V?$.warn(e):console.warn(` ${e}`),error:e=>V?$.error(e):console.error(` ${e}`)}});var Ma={};Ee(Ma,{runUninstallCommand:()=>Rp});import{existsSync as qe,readFileSync as wp,readdirSync as bo,rmSync as sn,writeFileSync as Cp}from"fs";import{homedir as ba}from"os";import{join as Te}from"path";function vp(){let e=q();return qe(e)?(sn(e,{recursive:!0,force:!0}),!0):!1}function kp(){let e=Te(Ke(),"cache","thedotmack","claude-mem");return qe(e)?(sn(e,{recursive:!0,force:!0}),!0):!1}function bp(){let e=ie(_e(),{});e.thedotmack&&(delete e.thedotmack,Re(_e(),e))}function Mp(){let e=ie($e(),{});e.plugins?.["claude-mem@thedotmack"]&&(delete e.plugins["claude-mem@thedotmack"],Re($e(),e))}function Tp(){let e=ba(),t=[Te(e,".bashrc"),Te(e,".zshrc"),Te(e,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1")],n=/^\s*alias\s+claude-mem\s*=/;for(let r of t){if(!qe(r))continue;let o;try{o=wp(r,"utf-8")}catch(a){console.warn(`[uninstall] Could not read ${r}:`,a instanceof Error?a.message:String(a));continue}let s=o.split(`
428
+ `),i=s.filter(a=>!n.test(a));if(i.length!==s.length)try{Cp(r,i.join(`
429
+ `)),console.error(`Removed legacy claude-mem alias from ${r}`)}catch(a){console.warn(`[uninstall] Could not rewrite ${r}:`,a instanceof Error?a.message:String(a))}}}function xp(){let e=ie(Ae(),{});e.enabledPlugins?.["claude-mem@thedotmack"]!==void 0&&(delete e.enabledPlugins["claude-mem@thedotmack"],Re(Ae(),e))}function Ip(){let e=ba(),t=0,n=Te(e,".npm","_npx");if(qe(n)){let s=[];try{s=bo(n)}catch(i){console.warn(`[uninstall] Could not read ${n}:`,i instanceof Error?i.message:String(i))}for(let i of s){let a=Te(n,i,"node_modules","claude-mem");if(qe(a))try{sn(a,{recursive:!0,force:!0}),t++}catch(c){console.warn(`[uninstall] Could not remove ${a}:`,c instanceof Error?c.message:String(c))}}}let r=Te(e,".cache","claude-cli-nodejs");if(qe(r)){let s=[];try{s=bo(r)}catch(i){console.warn(`[uninstall] Could not read ${r}:`,i instanceof Error?i.message:String(i))}for(let i of s){let a=Te(r,i),c=[];try{c=bo(a)}catch(l){console.warn(`[uninstall] Could not read ${a}:`,l instanceof Error?l.message:String(l));continue}for(let l of c){if(!l.startsWith("mcp-logs-plugin-claude-mem-"))continue;let p=Te(a,l);try{sn(p,{recursive:!0,force:!0}),t++}catch(f){console.warn(`[uninstall] Could not remove ${p}:`,f instanceof Error?f.message:String(f))}}}}let o=Te(e,".claude","plugins","data","claude-mem-thedotmack");if(qe(o))try{sn(o,{recursive:!0,force:!0}),t++}catch(s){console.warn(`[uninstall] Could not remove ${o}:`,s instanceof Error?s.message:String(s))}return t}async function Rp(){if(Nt(te.default.bgRed(te.default.white(" claude-mem uninstall "))),pn()){if(process.stdin.isTTY){let n=await At({message:"Are you sure you want to uninstall claude-mem?",initialValue:!1});if(G(n)||!n){fe("Uninstall cancelled.");return}}}else if($.warn("claude-mem does not appear to be installed."),process.stdin.isTTY){let n=await At({message:"Clean up any remaining registration data anyway?",initialValue:!1});if(G(n)||!n){Ue("Nothing to do.");return}}else{Ue("Nothing to do.");return}let e=B.get("CLAUDE_MEM_WORKER_PORT");try{(await Rn(e,1e4)).workerWasRunning&&$.info("Worker service stopped.")}catch(n){console.warn("[uninstall] Worker shutdown attempt failed:",n instanceof Error?n.message:String(n))}await kn([{title:"Removing marketplace directory",task:async()=>vp()?`Marketplace directory removed ${te.default.green("OK")}`:`Marketplace directory not found ${te.default.dim("skipped")}`},{title:"Removing cache directory",task:async()=>kp()?`Cache directory removed ${te.default.green("OK")}`:`Cache directory not found ${te.default.dim("skipped")}`},{title:"Removing marketplace registration",task:async()=>(bp(),`Marketplace registration removed ${te.default.green("OK")}`)},{title:"Removing plugin registration",task:async()=>(Mp(),`Plugin registration removed ${te.default.green("OK")}`)},{title:"Removing from Claude settings",task:async()=>(xp(),`Claude settings updated ${te.default.green("OK")}`)},{title:"Removing legacy claude-mem shell alias",task:async()=>(Tp(),`Legacy alias check complete ${te.default.green("OK")}`)},{title:"Removing stray claude-mem caches and logs",task:async()=>{let n=Ip();return n>0?`Stray paths removed: ${n} ${te.default.green("OK")}`:`No stray paths found ${te.default.dim("skipped")}`}}]);let t=[{label:"Gemini CLI hooks",fn:async()=>{let{uninstallGeminiCliHooks:n}=await Promise.resolve().then(()=>(oo(),ro));return n()}},{label:"Windsurf hooks",fn:async()=>{let{uninstallWindsurfHooks:n}=await Promise.resolve().then(()=>(go(),fo));return n()}},{label:"OpenCode plugin",fn:async()=>{let{uninstallOpenCodePlugin:n}=await Promise.resolve().then(()=>(uo(),lo));return n()}},{label:"OpenClaw plugin",fn:async()=>{let{uninstallOpenClawPlugin:n}=await Promise.resolve().then(()=>(yo(),So));return n()}},{label:"Codex CLI",fn:async()=>{let{uninstallCodexCli:n}=await Promise.resolve().then(()=>(vo(),Co));return n()}}];for(let{label:n,fn:r}of t)try{await r()===0&&$.info(`${n}: removed.`)}catch(o){console.warn(`[uninstall] ${n} cleanup failed:`,o instanceof Error?o.message:String(o))}Dt([`Your data directory at ${te.default.cyan("~/.claude-mem")} was preserved.`,"To remove it manually: rm -rf ~/.claude-mem"].join(`
430
+ `),"Note"),Ue(te.default.green("claude-mem has been uninstalled."))}var te,Ta=C(()=>{"use strict";kr();te=Qe(kt(),1);Be();bt();Le();Vr()});import{spawnSync as Op}from"child_process";import{existsSync as Pp}from"fs";import{homedir as Mo}from"os";import{join as To}from"path";function Ap(){return ae?[To(Mo(),".bun","bin","bun.exe"),To(process.env.USERPROFILE||Mo(),".bun","bin","bun.exe")]:[To(Mo(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"]}function xa(){let t=Op(ae?"where":"which",["bun"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:ae});if(t.status===0&&t.stdout.trim())return"bun";for(let n of Ap())if(Pp(n))return n;return null}var Ia=C(()=>{"use strict";Be()});var Oe={};Ee(Oe,{runAdoptCommand:()=>Wp,runCleanupCommand:()=>jp,runRestartCommand:()=>Up,runSearchCommand:()=>Fp,runStartCommand:()=>Np,runStatusCommand:()=>Lp,runStopCommand:()=>Dp,runTranscriptWatchCommand:()=>Gp});import{existsSync as xo}from"fs";import{join as Ra}from"path";function $n(){pn()||(console.error(Z.default.red("claude-mem is not installed.")),console.error(`Run: ${Z.default.bold("npx claude-mem install")}`),process.exit(1))}function Io(){let e=xa();return e||(console.error(Z.default.red("Bun not found.")),console.error("Install Bun: https://bun.sh"),console.error("After installation, restart your terminal."),process.exit(1)),e}function Oa(){return Ra(q(),"plugin","scripts","worker-service.cjs")}function wt(e,t=[]){$n();let n=Io(),r=Oa();xo(r)||(console.error(Z.default.red(`Worker script not found at: ${r}`)),console.error("The installation may be corrupted. Try: npx claude-mem install"),process.exit(1));let o=[r,e,...t],s=we(n,o,{stdio:"inherit",cwd:q(),env:process.env});s.on("error",i=>{console.error(Z.default.red(`Failed to start Bun: ${i.message}`)),process.exit(1)}),s.on("close",i=>{process.exit(i??0)})}function Np(){wt("start")}function Dp(){wt("stop")}function Up(){wt("restart")}function Lp(){wt("status")}function Wp(e=[]){$n();let t=Io(),n=Oa();xo(n)||(console.error(Z.default.red(`Worker script not found at: ${n}`)),console.error("The installation may be corrupted. Try: npx claude-mem install"),process.exit(1));let r=process.cwd(),o=[n,"adopt","--cwd",r,...e],s=we(t,o,{stdio:"inherit",cwd:q(),env:process.env});s.on("error",i=>{console.error(Z.default.red(`Failed to start Bun: ${i.message}`)),process.exit(1)}),s.on("close",i=>{process.exit(i??0)})}function jp(e=[]){wt("cleanup",e)}async function Fp(e){$n();let t=e.join(" ").trim();t||(console.error(Z.default.red("Usage: npx claude-mem search <query>")),process.exit(1));let r=`http://127.0.0.1:${B.get("CLAUDE_MEM_WORKER_PORT")}/api/search?query=${encodeURIComponent(t)}`,o;try{o=await fetch(r)}catch(i){let a=i instanceof Error?i.message:String(i);((i instanceof Error?i.cause:void 0)?.code==="ECONNREFUSED"||a.includes("ECONNREFUSED"))&&(console.error(Z.default.red("Worker is not running.")),console.error(`Start it with: ${Z.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(Z.default.red(`Search failed: ${a}`)),process.exit(1)}o.ok||(o.status===404&&(console.error(Z.default.red("Search endpoint not found. Is the worker running?")),console.error(`Try: ${Z.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(Z.default.red(`Search failed: HTTP ${o.status}`)),process.exit(1));let s;try{s=await o.json()}catch(i){let a=i instanceof Error?i.message:String(i);console.error(Z.default.red(`Search failed: invalid JSON response (${a})`)),process.exit(1)}console.log(typeof s=="object"&&s!==null?JSON.stringify(s,null,2):s)}function Gp(){$n();let e=Io(),t=Ra(q(),"plugin","scripts","transcript-watcher.cjs");if(!xo(t)){wt("transcript",["watch"]);return}let n=we(e,[t,"watch"],{stdio:"inherit",cwd:q(),env:process.env});n.on("error",r=>{console.error(Z.default.red(`Failed to start transcript watcher: ${r.message}`)),process.exit(1)}),n.on("close",r=>{process.exit(r??0)})}var Z,Pe=C(()=>{"use strict";nt();Z=Qe(kt(),1);Ia();Be();Le()});var R=Qe(kt(),1);Be();var Ct=process.argv.slice(2),Ro=Ct[0]?.toLowerCase()??"",Hp=new Set(["-h","--help","-v","--version"]),Pa=Ro.startsWith("-")&&!Hp.has(Ro)?"install":Ro;function Jp(){let e=tt();console.log(`
431
431
  ${R.default.bold("claude-mem")} v${e} \u2014 persistent memory for AI coding assistants
432
432
 
433
433
  ${R.default.bold("Install Commands")} (no Bun required):
@@ -456,4 +456,4 @@ ${R.default.bold("IDE Identifiers")}:
456
456
  claude-code, cursor, gemini-cli, opencode, openclaw,
457
457
  windsurf, codex-cli, copilot-cli, antigravity, goose,
458
458
  roo-code, warp
459
- `)}function xo(e,t){let r=e.indexOf(t);if(r===-1)return;let n=e[r+1];return(n===void 0||n.startsWith("-"))&&(console.error(R.default.red(`Flag ${t} requires a value.`)),process.exit(1)),n}function Op(e){let t=xo(e,"--provider");return t!==void 0&&t!=="claude"&&t!=="gemini"&&t!=="openrouter"&&(console.error(`Unknown --provider: ${t}. Allowed: claude, gemini, openrouter`),process.exit(1)),{ide:xo(e,"--ide"),provider:t,model:xo(e,"--model"),noAutoStart:e.includes("--no-auto-start")}}async function Pp(){switch(xa){case"":case"install":{let{runInstallCommand:e}=await Promise.resolve().then(()=>(Xr(),qr));await e(Op(wt));break}case"repair":{let{runRepairCommand:e}=await Promise.resolve().then(()=>(Xr(),qr));await e();break}case"update":case"upgrade":{let{runInstallCommand:e}=await Promise.resolve().then(()=>(Xr(),qr));await e();break}case"uninstall":case"remove":{let{runUninstallCommand:e}=await Promise.resolve().then(()=>(va(),Ca));await e();break}case"version":case"--version":case"-v":{console.log(et());break}case"help":case"--help":case"-h":{Rp();break}case"start":{let{runStartCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));e();break}case"stop":{let{runStopCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));e();break}case"restart":{let{runRestartCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));e();break}case"status":{let{runStatusCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));e();break}case"search":{let{runSearchCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));await e(wt.slice(1));break}case"adopt":{let{runAdoptCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));e(wt.slice(1));break}case"cleanup":{let{runCleanupCommand:e}=await Promise.resolve().then(()=>(Oe(),Re));e(wt.slice(1));break}case"transcript":{let e=wt[1]?.toLowerCase();if(e==="watch"){let{runTranscriptWatchCommand:t}=await Promise.resolve().then(()=>(Oe(),Re));t()}else console.error(R.default.red(`Unknown transcript subcommand: ${e??"(none)"}`)),console.error("Usage: npx claude-mem transcript watch"),process.exit(1);break}default:console.error(R.default.red(`Unknown command: ${xa}`)),console.error(`Run ${R.default.bold("npx claude-mem --help")} for usage information.`),process.exit(1)}}Pp().catch(e=>{console.error(R.default.red("Fatal error:"),e.message||e),process.exit(1)});
459
+ `)}function Oo(e,t){let n=e.indexOf(t);if(n===-1)return;let r=e[n+1];return(r===void 0||r.startsWith("-"))&&(console.error(R.default.red(`Flag ${t} requires a value.`)),process.exit(1)),r}function Kp(e){let t=Oo(e,"--provider");return t!==void 0&&t!=="claude"&&t!=="gemini"&&t!=="openrouter"&&(console.error(`Unknown --provider: ${t}. Allowed: claude, gemini, openrouter`),process.exit(1)),{ide:Oo(e,"--ide"),provider:t,model:Oo(e,"--model"),noAutoStart:e.includes("--no-auto-start")}}async function Bp(){switch(Pa){case"":case"install":{let{runInstallCommand:e}=await Promise.resolve().then(()=>(_n(),Qn));await e(Kp(Ct));break}case"repair":{let{runRepairCommand:e}=await Promise.resolve().then(()=>(_n(),Qn));await e();break}case"update":case"upgrade":{let{runInstallCommand:e}=await Promise.resolve().then(()=>(_n(),Qn));await e();break}case"uninstall":case"remove":{let{runUninstallCommand:e}=await Promise.resolve().then(()=>(Ta(),Ma));await e();break}case"version":case"--version":case"-v":{console.log(tt());break}case"help":case"--help":case"-h":{Jp();break}case"start":{let{runStartCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));e();break}case"stop":{let{runStopCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));e();break}case"restart":{let{runRestartCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));e();break}case"status":{let{runStatusCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));e();break}case"search":{let{runSearchCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));await e(Ct.slice(1));break}case"adopt":{let{runAdoptCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));e(Ct.slice(1));break}case"cleanup":{let{runCleanupCommand:e}=await Promise.resolve().then(()=>(Pe(),Oe));e(Ct.slice(1));break}case"transcript":{let e=Ct[1]?.toLowerCase();if(e==="watch"){let{runTranscriptWatchCommand:t}=await Promise.resolve().then(()=>(Pe(),Oe));t()}else console.error(R.default.red(`Unknown transcript subcommand: ${e??"(none)"}`)),console.error("Usage: npx claude-mem transcript watch"),process.exit(1);break}default:console.error(R.default.red(`Unknown command: ${Pa}`)),console.error(`Run ${R.default.bold("npx claude-mem --help")} for usage information.`),process.exit(1)}}Bp().catch(e=>{console.error(R.default.red("Fatal error:"),e.message||e),process.exit(1)});