claude-mem 12.3.2 → 12.3.3

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,65 +1,65 @@
1
1
  #!/usr/bin/env node
2
- var zr=Object.create;var Gt=Object.defineProperty;var Zr=Object.getOwnPropertyDescriptor;var Qr=Object.getOwnPropertyNames;var es=Object.getPrototypeOf,ts=Object.prototype.hasOwnProperty;var ns=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var f=(t,e)=>()=>(t&&(e=t(t=0)),e);var Kn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),V=(t,e)=>{for(var n in e)Gt(t,n,{get:e[n],enumerable:!0})},os=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Qr(e))!ts.call(t,s)&&s!==n&&Gt(t,s,{get:()=>e[s],enumerable:!(r=Zr(e,s))||r.enumerable});return t};var ue=(t,e,n)=>(n=t!=null?zr(es(t)):{},os(e||!t||!t.__esModule?Gt(n,"default",{value:t,enumerable:!0}):n,t));var me=Kn((Sa,Ht)=>{var st=process||{},Jn=st.argv||[],rt=st.env||{},rs=!(rt.NO_COLOR||Jn.includes("--no-color"))&&(!!rt.FORCE_COLOR||Jn.includes("--color")||st.platform==="win32"||(st.stdout||{}).isTTY&&rt.TERM!=="dumb"||!!rt.CI),ss=(t,e,n=t)=>r=>{let s=""+r,i=s.indexOf(e,t.length);return~i?t+is(s,e,n,i)+e:t+s+e},is=(t,e,n,r)=>{let s="",i=0;do s+=t.substring(i,r)+n,i=r+e.length,r=t.indexOf(e,i);while(~r);return s+t.substring(i)},Vn=(t=rs)=>{let e=t?ss:()=>String;return{isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};Ht.exports=Vn();Ht.exports.createColors=Vn});import{existsSync as us,readFileSync as as}from"fs";function W(t,e){if(!us(t))return e;try{return JSON.parse(as(t,"utf-8"))}catch(n){throw new Error(`Corrupt JSON file, refusing to overwrite: ${t}: ${n instanceof Error?n.message:String(n)}`)}}var Me=f(()=>{"use strict"});import{existsSync as Ie,mkdirSync as cs,readFileSync as Xn,writeFileSync as ls}from"fs";import{homedir as Ds}from"os";import{dirname as Yn,join as O}from"path";import{fileURLToPath as ds}from"url";function Kt(){return process.env.CLAUDE_CONFIG_DIR||O(Ds(),".claude")}function k(){return O(Kt(),"plugins","marketplaces","thedotmack")}function ae(){return O(Kt(),"plugins")}function pe(){return O(ae(),"known_marketplaces.json")}function ge(){return O(ae(),"installed_plugins.json")}function fe(){return O(Kt(),"settings.json")}function Jt(t){return O(ae(),"cache","thedotmack","claude-mem",t)}function it(){let t=ds(import.meta.url),e=O(Yn(t),"..","..");if(!Ie(O(e,"package.json")))throw new Error(`npmPackageRootDirectory: expected package.json at ${e}. Bundle structure may have changed \u2014 update the path walk.`);return e}function Vt(){return O(it(),"plugin")}function Oe(){let t=O(Vt(),".claude-plugin","plugin.json");if(Ie(t))try{let n=JSON.parse(Xn(t,"utf-8"));if(n.version)return n.version}catch{}let e=O(it(),"package.json");if(Ie(e))try{let n=JSON.parse(Xn(e,"utf-8"));if(n.version)return n.version}catch{}return"0.0.0"}function ut(){let t=k();return Ie(O(t,"plugin",".claude-plugin","plugin.json"))}function Re(t){Ie(t)||cs(t,{recursive:!0})}function Z(t,e){Re(Yn(t)),ls(t,JSON.stringify(e,null,2)+`
3
- `,"utf-8")}var q,ce=f(()=>{"use strict";Me();q=process.platform==="win32"});var Yt=Kn((Oa,qn)=>{"use strict";var Xt={to(t,e){return e?`\x1B[${e+1};${t+1}H`:`\x1B[${t+1}G`},move(t,e){let n="";return t<0?n+=`\x1B[${-t}D`:t>0&&(n+=`\x1B[${t}C`),e<0?n+=`\x1B[${-e}A`:e>0&&(n+=`\x1B[${e}B`),n},up:(t=1)=>`\x1B[${t}A`,down:(t=1)=>`\x1B[${t}B`,forward:(t=1)=>`\x1B[${t}C`,backward:(t=1)=>`\x1B[${t}D`,nextLine:(t=1)=>"\x1B[E".repeat(t),prevLine:(t=1)=>"\x1B[F".repeat(t),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},ms={up:(t=1)=>"\x1B[S".repeat(t),down:(t=1)=>"\x1B[T".repeat(t)},ps={screen:"\x1B[2J",up:(t=1)=>"\x1B[1J".repeat(t),down:(t=1)=>"\x1B[J".repeat(t),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(t){let e="";for(let n=0;n<t;n++)e+=this.line+(n<t-1?Xt.up():"");return t&&(e+=Xt.left),e}};qn.exports={cursor:Xt,scroll:ms,erase:ps,beep:"\x07"}});import{stdin as so,stdout as io}from"node:process";import*as Q from"node:readline";import zn from"node:readline";import{WriteStream as gs}from"node:tty";function fs({onlyFirst:t=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}function uo(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Cs,"")}function ao(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Te(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=uo(t),t.length===0))return 0;t=t.replace(ys()," ");let n=e.ambiguousIsNarrow?1:2,r=0;for(let s of t){let i=s.codePointAt(0);if(!(i<=31||i>=127&&i<=159||i>=768&&i<=879))switch(hs.eastAsianWidth(s)){case"F":case"W":r+=2;break;case"A":r+=n;break;default:r+=1}}return r}function Ss(){let t=new Map;for(let[e,n]of Object.entries(C)){for(let[r,s]of Object.entries(n))C[r]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},n[r]=C[r],t.set(s[0],s[1]);Object.defineProperty(C,e,{value:n,enumerable:!1})}return Object.defineProperty(C,"codes",{value:t,enumerable:!1}),C.color.close="\x1B[39m",C.bgColor.close="\x1B[49m",C.color.ansi=Zn(),C.color.ansi256=Qn(),C.color.ansi16m=eo(),C.bgColor.ansi=Zn(qt),C.bgColor.ansi256=Qn(qt),C.bgColor.ansi16m=eo(qt),Object.defineProperties(C,{rgbToAnsi256:{value:(e,n,r)=>e===n&&n===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5),enumerable:!1},hexToRgb:{value:e=>{let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[r]=n;r.length===3&&(r=[...r].map(i=>i+i).join(""));let s=Number.parseInt(r,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:e=>C.rgbToAnsi256(...C.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,r,s;if(e>=232)n=((e-232)*10+8)/255,r=n,s=n;else{e-=16;let u=e%36;n=Math.floor(e/36)/5,r=Math.floor(u/6)/5,s=u%6/5}let i=Math.max(n,r,s)*2;if(i===0)return 30;let o=30+(Math.round(s)<<2|Math.round(r)<<1|Math.round(n));return i===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(e,n,r)=>C.ansi256ToAnsi(C.rgbToAnsi256(e,n,r)),enumerable:!1},hexToAnsi:{value:e=>C.ansi256ToAnsi(C.hexToAnsi256(e)),enumerable:!1}}),C}function oo(t,e,n){return String(t).normalize().replace(/\r\n/g,`
2
+ var es=Object.create;var Ht=Object.defineProperty;var ts=Object.getOwnPropertyDescriptor;var ns=Object.getOwnPropertyNames;var os=Object.getPrototypeOf,rs=Object.prototype.hasOwnProperty;var ss=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var f=(t,e)=>()=>(t&&(e=t(t=0)),e);var Jn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),V=(t,e)=>{for(var n in e)Ht(t,n,{get:e[n],enumerable:!0})},is=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ns(e))!rs.call(t,s)&&s!==n&&Ht(t,s,{get:()=>e[s],enumerable:!(r=ts(e,s))||r.enumerable});return t};var ue=(t,e,n)=>(n=t!=null?es(os(t)):{},is(e||!t||!t.__esModule?Ht(n,"default",{value:t,enumerable:!0}):n,t));var me=Jn((Ra,Kt)=>{var it=process||{},Vn=it.argv||[],st=it.env||{},us=!(st.NO_COLOR||Vn.includes("--no-color"))&&(!!st.FORCE_COLOR||Vn.includes("--color")||it.platform==="win32"||(it.stdout||{}).isTTY&&st.TERM!=="dumb"||!!st.CI),as=(t,e,n=t)=>r=>{let s=""+r,i=s.indexOf(e,t.length);return~i?t+cs(s,e,n,i)+e:t+s+e},cs=(t,e,n,r)=>{let s="",i=0;do s+=t.substring(i,r)+n,i=r+e.length,r=t.indexOf(e,i);while(~r);return s+t.substring(i)},Xn=(t=us)=>{let e=t?as:()=>String;return{isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};Kt.exports=Xn();Kt.exports.createColors=Xn});import{existsSync as ls,readFileSync as Ds}from"fs";function W(t,e){if(!ls(t))return e;try{return JSON.parse(Ds(t,"utf-8"))}catch(n){throw new Error(`Corrupt JSON file, refusing to overwrite: ${t}: ${n instanceof Error?n.message:String(n)}`)}}var Me=f(()=>{"use strict"});import{existsSync as Ie,mkdirSync as ds,readFileSync as Yn,writeFileSync as ms}from"fs";import{homedir as ps}from"os";import{dirname as qn,join as R}from"path";import{fileURLToPath as gs}from"url";function Jt(){return process.env.CLAUDE_CONFIG_DIR||R(ps(),".claude")}function $(){return R(Jt(),"plugins","marketplaces","thedotmack")}function ae(){return R(Jt(),"plugins")}function pe(){return R(ae(),"known_marketplaces.json")}function ge(){return R(ae(),"installed_plugins.json")}function fe(){return R(Jt(),"settings.json")}function Vt(t){return R(ae(),"cache","thedotmack","claude-mem",t)}function ut(){let t=gs(import.meta.url),e=R(qn(t),"..","..");if(!Ie(R(e,"package.json")))throw new Error(`npmPackageRootDirectory: expected package.json at ${e}. Bundle structure may have changed \u2014 update the path walk.`);return e}function Xt(){return R(ut(),"plugin")}function Oe(){let t=R(Xt(),".claude-plugin","plugin.json");if(Ie(t))try{let n=JSON.parse(Yn(t,"utf-8"));if(n.version)return n.version}catch{}let e=R(ut(),"package.json");if(Ie(e))try{let n=JSON.parse(Yn(e,"utf-8"));if(n.version)return n.version}catch{}return"0.0.0"}function at(){let t=$();return Ie(R(t,"plugin",".claude-plugin","plugin.json"))}function Re(t){Ie(t)||ds(t,{recursive:!0})}function Z(t,e){Re(qn(t)),ms(t,JSON.stringify(e,null,2)+`
3
+ `,"utf-8")}var q,ce=f(()=>{"use strict";Me();q=process.platform==="win32"});var qt=Jn((Ga,zn)=>{"use strict";var Yt={to(t,e){return e?`\x1B[${e+1};${t+1}H`:`\x1B[${t+1}G`},move(t,e){let n="";return t<0?n+=`\x1B[${-t}D`:t>0&&(n+=`\x1B[${t}C`),e<0?n+=`\x1B[${-e}A`:e>0&&(n+=`\x1B[${e}B`),n},up:(t=1)=>`\x1B[${t}A`,down:(t=1)=>`\x1B[${t}B`,forward:(t=1)=>`\x1B[${t}C`,backward:(t=1)=>`\x1B[${t}D`,nextLine:(t=1)=>"\x1B[E".repeat(t),prevLine:(t=1)=>"\x1B[F".repeat(t),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},fs={up:(t=1)=>"\x1B[S".repeat(t),down:(t=1)=>"\x1B[T".repeat(t)},Cs={screen:"\x1B[2J",up:(t=1)=>"\x1B[1J".repeat(t),down:(t=1)=>"\x1B[J".repeat(t),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(t){let e="";for(let n=0;n<t;n++)e+=this.line+(n<t-1?Yt.up():"");return t&&(e+=Yt.left),e}};zn.exports={cursor:Yt,scroll:fs,erase:Cs,beep:"\x07"}});import{stdin as io,stdout as uo}from"node:process";import*as Q from"node:readline";import Zn from"node:readline";import{WriteStream as Es}from"node:tty";function hs({onlyFirst:t=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}function ao(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Fs,"")}function co(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Te(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=ao(t),t.length===0))return 0;t=t.replace(vs()," ");let n=e.ambiguousIsNarrow?1:2,r=0;for(let s of t){let i=s.codePointAt(0);if(!(i<=31||i>=127&&i<=159||i>=768&&i<=879))switch(xs.eastAsianWidth(s)){case"F":case"W":r+=2;break;case"A":r+=n;break;default:r+=1}}return r}function As(){let t=new Map;for(let[e,n]of Object.entries(C)){for(let[r,s]of Object.entries(n))C[r]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},n[r]=C[r],t.set(s[0],s[1]);Object.defineProperty(C,e,{value:n,enumerable:!1})}return Object.defineProperty(C,"codes",{value:t,enumerable:!1}),C.color.close="\x1B[39m",C.bgColor.close="\x1B[49m",C.color.ansi=Qn(),C.color.ansi256=eo(),C.color.ansi16m=to(),C.bgColor.ansi=Qn(zt),C.bgColor.ansi256=eo(zt),C.bgColor.ansi16m=to(zt),Object.defineProperties(C,{rgbToAnsi256:{value:(e,n,r)=>e===n&&n===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5),enumerable:!1},hexToRgb:{value:e=>{let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[r]=n;r.length===3&&(r=[...r].map(i=>i+i).join(""));let s=Number.parseInt(r,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:e=>C.rgbToAnsi256(...C.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,r,s;if(e>=232)n=((e-232)*10+8)/255,r=n,s=n;else{e-=16;let u=e%36;n=Math.floor(e/36)/5,r=Math.floor(u/6)/5,s=u%6/5}let i=Math.max(n,r,s)*2;if(i===0)return 30;let o=30+(Math.round(s)<<2|Math.round(r)<<1|Math.round(n));return i===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(e,n,r)=>C.ansi256ToAnsi(C.rgbToAnsi256(e,n,r)),enumerable:!1},hexToAnsi:{value:e=>C.ansi256ToAnsi(C.hexToAnsi256(e)),enumerable:!1}}),C}function ro(t,e,n){return String(t).normalize().replace(/\r\n/g,`
4
4
  `).split(`
5
- `).map(r=>$s(r,e,n)).join(`
6
- `)}function tn(t,e){if(typeof t=="string")return ct.aliases.get(t)===e;for(let n of t)if(n!==void 0&&tn(n,e))return!0;return!1}function Is(t,e){if(t===e)return;let n=t.split(`
5
+ `).map(r=>Os(r,e,n)).join(`
6
+ `)}function nn(t,e){if(typeof t=="string")return lt.aliases.get(t)===e;for(let n of t)if(n!==void 0&&nn(n,e))return!0;return!1}function Ts(t,e){if(t===e)return;let n=t.split(`
7
7
  `),r=e.split(`
8
- `),s=[];for(let i=0;i<Math.max(n.length,r.length);i++)n[i]!==r[i]&&s.push(i);return s}function ee(t){return t===Zt}function at(t,e){let n=t;n.isTTY&&n.setRawMode(e)}function mo({input:t=so,output:e=io,overwrite:n=!0,hideCursor:r=!0}={}){let s=Q.createInterface({input:t,output:e,prompt:"",tabSize:1});Q.emitKeypressEvents(t,s),t.isTTY&&t.setRawMode(!0);let i=(o,{name:u,sequence:c})=>{let d=String(o);if(tn([d,u,c],"cancel")){r&&e.write(A.cursor.show),process.exit(0);return}if(!n)return;Q.moveCursor(e,u==="return"?0:-1,u==="return"?-1:0,()=>{Q.clearLine(e,1,()=>{t.once("keypress",i)})})};return r&&e.write(A.cursor.hide),t.once("keypress",i),()=>{t.off("keypress",i),r&&e.write(A.cursor.show),t.isTTY&&!Os&&t.setRawMode(!1),s.terminal=!1,s.close()}}var A,Cs,co,Es,hs,Fs,ys,qt,Zn,Qn,eo,C,xs,vs,_s,dt,ws,Qt,lo,As,Do,en,to,no,bs,zt,ks,$s,Ms,ct,Os,Zt,Rs,Ts,R,lt,Dt,Bs,Ps,ro,po,nn=f(()=>{A=ue(Yt(),1);Cs=fs();co={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(r){var s=r.charCodeAt(0),i=r.length==2?r.charCodeAt(1):0,o=s;return 55296<=s&&s<=56319&&56320<=i&&i<=57343&&(s&=1023,i&=1023,o=s<<10|i,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},e.characterLength=function(r){var s=this.eastAsianWidth(r);return s=="F"||s=="W"||s=="A"?2:1};function n(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(r){for(var s=n(r),i=0,o=0;o<s.length;o++)i=i+this.characterLength(s[o]);return i},e.slice=function(r,s,i){textLen=e.length(r),s=s||0,i=i||1,s<0&&(s=textLen+s),i<0&&(i=textLen+i);for(var o="",u=0,c=n(r),d=0;d<c.length;d++){var m=c[d],l=e.length(m);if(u>=s-(l==2?1:0))if(u+l<=i)o+=m;else break;u+=l}return o}})(co);Es=co.exports,hs=ao(Es),Fs=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},ys=ao(Fs);qt=10,Zn=(t=0)=>e=>`\x1B[${e+t}m`,Qn=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,eo=(t=0)=>(e,n,r)=>`\x1B[${38+t};2;${e};${n};${r}m`,C={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(C.modifier);xs=Object.keys(C.color),vs=Object.keys(C.bgColor);[...xs,...vs];_s=Ss(),dt=new Set(["\x1B","\x9B"]),ws=39,Qt="\x07",lo="[",As="]",Do="m",en=`${As}8;;`,to=t=>`${dt.values().next().value}${lo}${t}${Do}`,no=t=>`${dt.values().next().value}${en}${t}${Qt}`,bs=t=>t.split(" ").map(e=>Te(e)),zt=(t,e,n)=>{let r=[...e],s=!1,i=!1,o=Te(uo(t[t.length-1]));for(let[u,c]of r.entries()){let d=Te(c);if(o+d<=n?t[t.length-1]+=c:(t.push(c),o=0),dt.has(c)&&(s=!0,i=r.slice(u+1).join("").startsWith(en)),s){i?c===Qt&&(s=!1,i=!1):c===Do&&(s=!1);continue}o+=d,o===n&&u<r.length-1&&(t.push(""),o=0)}!o&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},ks=t=>{let e=t.split(" "),n=e.length;for(;n>0&&!(Te(e[n-1])>0);)n--;return n===e.length?t:e.slice(0,n).join(" ")+e.slice(n).join("")},$s=(t,e,n={})=>{if(n.trim!==!1&&t.trim()==="")return"";let r="",s,i,o=bs(t),u=[""];for(let[d,m]of t.split(" ").entries()){n.trim!==!1&&(u[u.length-1]=u[u.length-1].trimStart());let l=Te(u[u.length-1]);if(d!==0&&(l>=e&&(n.wordWrap===!1||n.trim===!1)&&(u.push(""),l=0),(l>0||n.trim===!1)&&(u[u.length-1]+=" ",l++)),n.hard&&o[d]>e){let E=e-l,S=1+Math.floor((o[d]-E-1)/e);Math.floor((o[d]-1)/e)<S&&u.push(""),zt(u,m,e);continue}if(l+o[d]>e&&l>0&&o[d]>0){if(n.wordWrap===!1&&l<e){zt(u,m,e);continue}u.push("")}if(l+o[d]>e&&n.wordWrap===!1){zt(u,m,e);continue}u[u.length-1]+=m}n.trim!==!1&&(u=u.map(d=>ks(d)));let c=[...u.join(`
9
- `)];for(let[d,m]of c.entries()){if(r+=m,dt.has(m)){let{groups:E}=new RegExp(`(?:\\${lo}(?<code>\\d+)m|\\${en}(?<uri>.*)${Qt})`).exec(c.slice(d).join(""))||{groups:{}};if(E.code!==void 0){let S=Number.parseFloat(E.code);s=S===ws?void 0:S}else E.uri!==void 0&&(i=E.uri.length===0?void 0:E.uri)}let l=_s.codes.get(Number(s));c[d+1]===`
10
- `?(i&&(r+=no("")),s&&l&&(r+=to(l))):m===`
11
- `&&(s&&l&&(r+=to(s)),i&&(r+=no(i)))}return r};Ms=["up","down","left","right","space","enter","cancel"],ct={actions:new Set(Ms),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};Os=globalThis.process.platform.startsWith("win"),Zt=Symbol("clack:cancel");Rs=Object.defineProperty,Ts=(t,e,n)=>e in t?Rs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,R=(t,e,n)=>(Ts(t,typeof e!="symbol"?e+"":e,n),n),lt=class{constructor(e,n=!0){R(this,"input"),R(this,"output"),R(this,"_abortSignal"),R(this,"rl"),R(this,"opts"),R(this,"_render"),R(this,"_track",!1),R(this,"_prevFrame",""),R(this,"_subscribers",new Map),R(this,"_cursor",0),R(this,"state","initial"),R(this,"error",""),R(this,"value");let{input:r=so,output:s=io,render:i,signal:o,...u}=e;this.opts=u,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=n,this._abortSignal=o,this.input=r,this.output=s}unsubscribe(){this._subscribers.clear()}setSubscriber(e,n){let r=this._subscribers.get(e)??[];r.push(n),this._subscribers.set(e,r)}on(e,n){this.setSubscriber(e,{cb:n})}once(e,n){this.setSubscriber(e,{cb:n,once:!0})}emit(e,...n){let r=this._subscribers.get(e)??[],s=[];for(let i of r)i.cb(...n),i.once&&s.push(()=>r.splice(r.indexOf(i),1));for(let i of s)i()}prompt(){return new Promise((e,n)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(Zt);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let r=new gs(0);r._write=(s,i,o)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),o()},this.input.pipe(r),this.rl=zn.createInterface({input:this.input,output:r,tabSize:2,prompt:"",escapeCodeTimeout:50}),zn.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),at(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(A.cursor.show),this.output.off("resize",this.render),at(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(A.cursor.show),this.output.off("resize",this.render),at(this.input,!1),e(Zt)})})}onKeypress(e,n){if(this.state==="error"&&(this.state="active"),n?.name&&(!this._track&&ct.aliases.has(n.name)&&this.emit("cursor",ct.aliases.get(n.name)),ct.actions.has(n.name)&&this.emit("cursor",n.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),e===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),e&&this.emit("key",e.toLowerCase()),n?.name==="return"){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.value))}this.state!=="error"&&(this.state="submit")}tn([e,n?.name,n?.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
- `),at(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=oo(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
13
- `).length-1;this.output.write(A.cursor.move(-999,e*-1))}render(){let e=oo(this._render(this)??"",process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(A.cursor.hide);else{let n=Is(this._prevFrame,e);if(this.restoreCursor(),n&&n?.length===1){let r=n[0];this.output.write(A.cursor.move(0,r)),this.output.write(A.erase.lines(1));let s=e.split(`
8
+ `),s=[];for(let i=0;i<Math.max(n.length,r.length);i++)n[i]!==r[i]&&s.push(i);return s}function ee(t){return t===Qt}function ct(t,e){let n=t;n.isTTY&&n.setRawMode(e)}function po({input:t=io,output:e=uo,overwrite:n=!0,hideCursor:r=!0}={}){let s=Q.createInterface({input:t,output:e,prompt:"",tabSize:1});Q.emitKeypressEvents(t,s),t.isTTY&&t.setRawMode(!0);let i=(o,{name:u,sequence:c})=>{let d=String(o);if(nn([d,u,c],"cancel")){r&&e.write(A.cursor.show),process.exit(0);return}if(!n)return;Q.moveCursor(e,u==="return"?0:-1,u==="return"?-1:0,()=>{Q.clearLine(e,1,()=>{t.once("keypress",i)})})};return r&&e.write(A.cursor.hide),t.once("keypress",i),()=>{t.off("keypress",i),r&&e.write(A.cursor.show),t.isTTY&&!Bs&&t.setRawMode(!1),s.terminal=!1,s.close()}}var A,Fs,lo,ys,xs,Ss,vs,zt,Qn,eo,to,C,_s,ws,bs,mt,ks,en,Do,$s,mo,tn,no,oo,Ms,Zt,Is,Os,Rs,lt,Bs,Qt,Ps,Ls,T,Dt,dt,js,Ns,so,go,on=f(()=>{A=ue(qt(),1);Fs=hs();lo={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(r){var s=r.charCodeAt(0),i=r.length==2?r.charCodeAt(1):0,o=s;return 55296<=s&&s<=56319&&56320<=i&&i<=57343&&(s&=1023,i&=1023,o=s<<10|i,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},e.characterLength=function(r){var s=this.eastAsianWidth(r);return s=="F"||s=="W"||s=="A"?2:1};function n(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(r){for(var s=n(r),i=0,o=0;o<s.length;o++)i=i+this.characterLength(s[o]);return i},e.slice=function(r,s,i){textLen=e.length(r),s=s||0,i=i||1,s<0&&(s=textLen+s),i<0&&(i=textLen+i);for(var o="",u=0,c=n(r),d=0;d<c.length;d++){var m=c[d],l=e.length(m);if(u>=s-(l==2?1:0))if(u+l<=i)o+=m;else break;u+=l}return o}})(lo);ys=lo.exports,xs=co(ys),Ss=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},vs=co(Ss);zt=10,Qn=(t=0)=>e=>`\x1B[${e+t}m`,eo=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,to=(t=0)=>(e,n,r)=>`\x1B[${38+t};2;${e};${n};${r}m`,C={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(C.modifier);_s=Object.keys(C.color),ws=Object.keys(C.bgColor);[..._s,...ws];bs=As(),mt=new Set(["\x1B","\x9B"]),ks=39,en="\x07",Do="[",$s="]",mo="m",tn=`${$s}8;;`,no=t=>`${mt.values().next().value}${Do}${t}${mo}`,oo=t=>`${mt.values().next().value}${tn}${t}${en}`,Ms=t=>t.split(" ").map(e=>Te(e)),Zt=(t,e,n)=>{let r=[...e],s=!1,i=!1,o=Te(ao(t[t.length-1]));for(let[u,c]of r.entries()){let d=Te(c);if(o+d<=n?t[t.length-1]+=c:(t.push(c),o=0),mt.has(c)&&(s=!0,i=r.slice(u+1).join("").startsWith(tn)),s){i?c===en&&(s=!1,i=!1):c===mo&&(s=!1);continue}o+=d,o===n&&u<r.length-1&&(t.push(""),o=0)}!o&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},Is=t=>{let e=t.split(" "),n=e.length;for(;n>0&&!(Te(e[n-1])>0);)n--;return n===e.length?t:e.slice(0,n).join(" ")+e.slice(n).join("")},Os=(t,e,n={})=>{if(n.trim!==!1&&t.trim()==="")return"";let r="",s,i,o=Ms(t),u=[""];for(let[d,m]of t.split(" ").entries()){n.trim!==!1&&(u[u.length-1]=u[u.length-1].trimStart());let l=Te(u[u.length-1]);if(d!==0&&(l>=e&&(n.wordWrap===!1||n.trim===!1)&&(u.push(""),l=0),(l>0||n.trim===!1)&&(u[u.length-1]+=" ",l++)),n.hard&&o[d]>e){let E=e-l,v=1+Math.floor((o[d]-E-1)/e);Math.floor((o[d]-1)/e)<v&&u.push(""),Zt(u,m,e);continue}if(l+o[d]>e&&l>0&&o[d]>0){if(n.wordWrap===!1&&l<e){Zt(u,m,e);continue}u.push("")}if(l+o[d]>e&&n.wordWrap===!1){Zt(u,m,e);continue}u[u.length-1]+=m}n.trim!==!1&&(u=u.map(d=>Is(d)));let c=[...u.join(`
9
+ `)];for(let[d,m]of c.entries()){if(r+=m,mt.has(m)){let{groups:E}=new RegExp(`(?:\\${Do}(?<code>\\d+)m|\\${tn}(?<uri>.*)${en})`).exec(c.slice(d).join(""))||{groups:{}};if(E.code!==void 0){let v=Number.parseFloat(E.code);s=v===ks?void 0:v}else E.uri!==void 0&&(i=E.uri.length===0?void 0:E.uri)}let l=bs.codes.get(Number(s));c[d+1]===`
10
+ `?(i&&(r+=oo("")),s&&l&&(r+=no(l))):m===`
11
+ `&&(s&&l&&(r+=no(s)),i&&(r+=oo(i)))}return r};Rs=["up","down","left","right","space","enter","cancel"],lt={actions:new Set(Rs),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};Bs=globalThis.process.platform.startsWith("win"),Qt=Symbol("clack:cancel");Ps=Object.defineProperty,Ls=(t,e,n)=>e in t?Ps(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,T=(t,e,n)=>(Ls(t,typeof e!="symbol"?e+"":e,n),n),Dt=class{constructor(e,n=!0){T(this,"input"),T(this,"output"),T(this,"_abortSignal"),T(this,"rl"),T(this,"opts"),T(this,"_render"),T(this,"_track",!1),T(this,"_prevFrame",""),T(this,"_subscribers",new Map),T(this,"_cursor",0),T(this,"state","initial"),T(this,"error",""),T(this,"value");let{input:r=io,output:s=uo,render:i,signal:o,...u}=e;this.opts=u,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=n,this._abortSignal=o,this.input=r,this.output=s}unsubscribe(){this._subscribers.clear()}setSubscriber(e,n){let r=this._subscribers.get(e)??[];r.push(n),this._subscribers.set(e,r)}on(e,n){this.setSubscriber(e,{cb:n})}once(e,n){this.setSubscriber(e,{cb:n,once:!0})}emit(e,...n){let r=this._subscribers.get(e)??[],s=[];for(let i of r)i.cb(...n),i.once&&s.push(()=>r.splice(r.indexOf(i),1));for(let i of s)i()}prompt(){return new Promise((e,n)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(Qt);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let r=new Es(0);r._write=(s,i,o)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),o()},this.input.pipe(r),this.rl=Zn.createInterface({input:this.input,output:r,tabSize:2,prompt:"",escapeCodeTimeout:50}),Zn.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),ct(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(A.cursor.show),this.output.off("resize",this.render),ct(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(A.cursor.show),this.output.off("resize",this.render),ct(this.input,!1),e(Qt)})})}onKeypress(e,n){if(this.state==="error"&&(this.state="active"),n?.name&&(!this._track&&lt.aliases.has(n.name)&&this.emit("cursor",lt.aliases.get(n.name)),lt.actions.has(n.name)&&this.emit("cursor",n.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),e===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),e&&this.emit("key",e.toLowerCase()),n?.name==="return"){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.value))}this.state!=="error"&&(this.state="submit")}nn([e,n?.name,n?.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
+ `),ct(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=ro(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
13
+ `).length-1;this.output.write(A.cursor.move(-999,e*-1))}render(){let e=ro(this._render(this)??"",process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(A.cursor.hide);else{let n=Ts(this._prevFrame,e);if(this.restoreCursor(),n&&n?.length===1){let r=n[0];this.output.write(A.cursor.move(0,r)),this.output.write(A.erase.lines(1));let s=e.split(`
14
14
  `);this.output.write(s[r]),this._prevFrame=e,this.output.write(A.cursor.move(0,s.length-r-1));return}if(n&&n?.length>1){let r=n[0];this.output.write(A.cursor.move(0,r)),this.output.write(A.erase.down());let s=e.split(`
15
15
  `).slice(r);this.output.write(s.join(`
16
- `)),this._prevFrame=e;return}this.output.write(A.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}},Dt=class extends lt{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",n=>{this.output.write(A.cursor.move(0,-1)),this.value=n,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},Bs=Object.defineProperty,Ps=(t,e,n)=>e in t?Bs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ro=(t,e,n)=>(Ps(t,typeof e!="symbol"?e+"":e,n),n),po=class extends lt{constructor(t){super(t,!1),ro(this,"options"),ro(this,"cursor",0),this.options=t.options,this.value=[...t.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===t.cursorAt),0),this.on("key",e=>{e==="a"&&this.toggleAll()}),this.on("cursor",e=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let t=this.value.length===this.options.length;this.value=t?[]:this.options.map(e=>e.value)}toggleValue(){let t=this.value.includes(this._value);this.value=t?this.value.filter(e=>e!==this._value):[...this.value,this._value]}}});import{stripVTControlCharacters as on}from"node:util";import G from"node:process";function Ls(){return G.platform!=="win32"?G.env.TERM!=="linux":!!G.env.CI||!!G.env.WT_SESSION||!!G.env.TERMINUS_SUBLIME||G.env.ConEmuTask==="{cmd::Cmder}"||G.env.TERM_PROGRAM==="Terminus-Sublime"||G.env.TERM_PROGRAM==="vscode"||G.env.TERM==="xterm-256color"||G.env.TERM==="alacritty"||G.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var a,mt,rn,x,js,Fo,yo,pt,Ns,y,Be,go,fo,Us,Co,Ws,Xa,Eo,Gs,Hs,Ks,Js,Vs,Xs,Ys,xo,ho,Pe,vo,Le,je,gt,le,$,qs,ft,sn=f(()=>{nn();nn();a=ue(me(),1),mt=ue(Yt(),1);rn=Ls(),x=(t,e)=>rn?t:e,js=x("\u25C6","*"),Fo=x("\u25A0","x"),yo=x("\u25B2","x"),pt=x("\u25C7","o"),Ns=x("\u250C","T"),y=x("\u2502","|"),Be=x("\u2514","\u2014"),go=x("\u25CF",">"),fo=x("\u25CB"," "),Us=x("\u25FB","[\u2022]"),Co=x("\u25FC","[+]"),Ws=x("\u25FB","[ ]"),Xa=x("\u25AA","\u2022"),Eo=x("\u2500","-"),Gs=x("\u256E","+"),Hs=x("\u251C","+"),Ks=x("\u256F","+"),Js=x("\u25CF","\u2022"),Vs=x("\u25C6","*"),Xs=x("\u25B2","!"),Ys=x("\u25A0","x"),xo=t=>{switch(t){case"initial":case"active":return a.default.cyan(js);case"cancel":return a.default.red(Fo);case"error":return a.default.yellow(yo);case"submit":return a.default.green(pt)}},ho=t=>{let{cursor:e,options:n,style:r}=t,s=t.maxItems??Number.POSITIVE_INFINITY,i=Math.max(process.stdout.rows-4,0),o=Math.min(i,Math.max(s,5)),u=0;e>=u+o-3?u=Math.max(Math.min(e-o+3,n.length-o),0):e<u+2&&(u=Math.max(e-2,0));let c=o<n.length&&u>0,d=o<n.length&&u+o<n.length;return n.slice(u,u+o).map((m,l,E)=>{let S=l===0&&c,de=l===E.length-1&&d;return S||de?a.default.dim("..."):r(m,l+u===e)})},Pe=t=>{let e=t.active??"Yes",n=t.inactive??"No";return new Dt({active:e,inactive:n,initialValue:t.initialValue??!0,render(){let r=`${a.default.gray(y)}
17
- ${xo(this.state)} ${t.message}
16
+ `)),this._prevFrame=e;return}this.output.write(A.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}},dt=class extends Dt{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",n=>{this.output.write(A.cursor.move(0,-1)),this.value=n,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},js=Object.defineProperty,Ns=(t,e,n)=>e in t?js(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,so=(t,e,n)=>(Ns(t,typeof e!="symbol"?e+"":e,n),n),go=class extends Dt{constructor(t){super(t,!1),so(this,"options"),so(this,"cursor",0),this.options=t.options,this.value=[...t.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===t.cursorAt),0),this.on("key",e=>{e==="a"&&this.toggleAll()}),this.on("cursor",e=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let t=this.value.length===this.options.length;this.value=t?[]:this.options.map(e=>e.value)}toggleValue(){let t=this.value.includes(this._value);this.value=t?this.value.filter(e=>e!==this._value):[...this.value,this._value]}}});import{stripVTControlCharacters as rn}from"node:util";import G from"node:process";function Us(){return G.platform!=="win32"?G.env.TERM!=="linux":!!G.env.CI||!!G.env.WT_SESSION||!!G.env.TERMINUS_SUBLIME||G.env.ConEmuTask==="{cmd::Cmder}"||G.env.TERM_PROGRAM==="Terminus-Sublime"||G.env.TERM_PROGRAM==="vscode"||G.env.TERM==="xterm-256color"||G.env.TERM==="alacritty"||G.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var a,pt,sn,x,Ws,yo,xo,gt,Gs,y,Be,fo,Co,Hs,Eo,Ks,rc,ho,Js,Vs,Xs,Ys,qs,zs,Zs,So,Fo,Pe,vo,Le,je,ft,le,M,Qs,Ct,un=f(()=>{on();on();a=ue(me(),1),pt=ue(qt(),1);sn=Us(),x=(t,e)=>sn?t:e,Ws=x("\u25C6","*"),yo=x("\u25A0","x"),xo=x("\u25B2","x"),gt=x("\u25C7","o"),Gs=x("\u250C","T"),y=x("\u2502","|"),Be=x("\u2514","\u2014"),fo=x("\u25CF",">"),Co=x("\u25CB"," "),Hs=x("\u25FB","[\u2022]"),Eo=x("\u25FC","[+]"),Ks=x("\u25FB","[ ]"),rc=x("\u25AA","\u2022"),ho=x("\u2500","-"),Js=x("\u256E","+"),Vs=x("\u251C","+"),Xs=x("\u256F","+"),Ys=x("\u25CF","\u2022"),qs=x("\u25C6","*"),zs=x("\u25B2","!"),Zs=x("\u25A0","x"),So=t=>{switch(t){case"initial":case"active":return a.default.cyan(Ws);case"cancel":return a.default.red(yo);case"error":return a.default.yellow(xo);case"submit":return a.default.green(gt)}},Fo=t=>{let{cursor:e,options:n,style:r}=t,s=t.maxItems??Number.POSITIVE_INFINITY,i=Math.max(process.stdout.rows-4,0),o=Math.min(i,Math.max(s,5)),u=0;e>=u+o-3?u=Math.max(Math.min(e-o+3,n.length-o),0):e<u+2&&(u=Math.max(e-2,0));let c=o<n.length&&u>0,d=o<n.length&&u+o<n.length;return n.slice(u,u+o).map((m,l,E)=>{let v=l===0&&c,de=l===E.length-1&&d;return v||de?a.default.dim("..."):r(m,l+u===e)})},Pe=t=>{let e=t.active??"Yes",n=t.inactive??"No";return new dt({active:e,inactive:n,initialValue:t.initialValue??!0,render(){let r=`${a.default.gray(y)}
17
+ ${So(this.state)} ${t.message}
18
18
  `,s=this.value?e:n;switch(this.state){case"submit":return`${r}${a.default.gray(y)} ${a.default.dim(s)}`;case"cancel":return`${r}${a.default.gray(y)} ${a.default.strikethrough(a.default.dim(s))}
19
- ${a.default.gray(y)}`;default:return`${r}${a.default.cyan(y)} ${this.value?`${a.default.green(go)} ${e}`:`${a.default.dim(fo)} ${a.default.dim(e)}`} ${a.default.dim("/")} ${this.value?`${a.default.dim(fo)} ${a.default.dim(n)}`:`${a.default.green(go)} ${n}`}
19
+ ${a.default.gray(y)}`;default:return`${r}${a.default.cyan(y)} ${this.value?`${a.default.green(fo)} ${e}`:`${a.default.dim(Co)} ${a.default.dim(e)}`} ${a.default.dim("/")} ${this.value?`${a.default.dim(Co)} ${a.default.dim(n)}`:`${a.default.green(fo)} ${n}`}
20
20
  ${a.default.cyan(Be)}
21
- `}}}).prompt()},vo=t=>{let e=(n,r)=>{let s=n.label??String(n.value);return r==="active"?`${a.default.cyan(Us)} ${s} ${n.hint?a.default.dim(`(${n.hint})`):""}`:r==="selected"?`${a.default.green(Co)} ${a.default.dim(s)}`:r==="cancelled"?`${a.default.strikethrough(a.default.dim(s))}`:r==="active-selected"?`${a.default.green(Co)} ${s} ${n.hint?a.default.dim(`(${n.hint})`):""}`:r==="submitted"?`${a.default.dim(s)}`:`${a.default.dim(Ws)} ${a.default.dim(s)}`};return new po({options:t.options,initialValues:t.initialValues,required:t.required??!0,cursorAt:t.cursorAt,validate(n){if(this.required&&n.length===0)return`Please select at least one option.
21
+ `}}}).prompt()},vo=t=>{let e=(n,r)=>{let s=n.label??String(n.value);return r==="active"?`${a.default.cyan(Hs)} ${s} ${n.hint?a.default.dim(`(${n.hint})`):""}`:r==="selected"?`${a.default.green(Eo)} ${a.default.dim(s)}`:r==="cancelled"?`${a.default.strikethrough(a.default.dim(s))}`:r==="active-selected"?`${a.default.green(Eo)} ${s} ${n.hint?a.default.dim(`(${n.hint})`):""}`:r==="submitted"?`${a.default.dim(s)}`:`${a.default.dim(Ks)} ${a.default.dim(s)}`};return new go({options:t.options,initialValues:t.initialValues,required:t.required??!0,cursorAt:t.cursorAt,validate(n){if(this.required&&n.length===0)return`Please select at least one option.
22
22
  ${a.default.reset(a.default.dim(`Press ${a.default.gray(a.default.bgWhite(a.default.inverse(" space ")))} to select, ${a.default.gray(a.default.bgWhite(a.default.inverse(" enter ")))} to submit`))}`},render(){let n=`${a.default.gray(y)}
23
- ${xo(this.state)} ${t.message}
23
+ ${So(this.state)} ${t.message}
24
24
  `,r=(s,i)=>{let o=this.value.includes(s.value);return i&&o?e(s,"active-selected"):o?e(s,"selected"):e(s,i?"active":"inactive")};switch(this.state){case"submit":return`${n}${a.default.gray(y)} ${this.options.filter(({value:s})=>this.value.includes(s)).map(s=>e(s,"submitted")).join(a.default.dim(", "))||a.default.dim("none")}`;case"cancel":{let s=this.options.filter(({value:i})=>this.value.includes(i)).map(i=>e(i,"cancelled")).join(a.default.dim(", "));return`${n}${a.default.gray(y)} ${s.trim()?`${s}
25
25
  ${a.default.gray(y)}`:""}`}case"error":{let s=this.error.split(`
26
26
  `).map((i,o)=>o===0?`${a.default.yellow(Be)} ${a.default.yellow(i)}`:` ${i}`).join(`
27
- `);return`${n+a.default.yellow(y)} ${ho({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:r}).join(`
27
+ `);return`${n+a.default.yellow(y)} ${Fo({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:r}).join(`
28
28
  ${a.default.yellow(y)} `)}
29
29
  ${s}
30
- `}default:return`${n}${a.default.cyan(y)} ${ho({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:r}).join(`
30
+ `}default:return`${n}${a.default.cyan(y)} ${Fo({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:r}).join(`
31
31
  ${a.default.cyan(y)} `)}
32
32
  ${a.default.cyan(Be)}
33
33
  `}}}).prompt()},Le=(t="",e="")=>{let n=`
34
34
  ${t}
35
35
  `.split(`
36
- `),r=on(e).length,s=Math.max(n.reduce((o,u)=>{let c=on(u);return c.length>o?c.length:o},0),r)+2,i=n.map(o=>`${a.default.gray(y)} ${a.default.dim(o)}${" ".repeat(s-on(o).length)}${a.default.gray(y)}`).join(`
36
+ `),r=rn(e).length,s=Math.max(n.reduce((o,u)=>{let c=rn(u);return c.length>o?c.length:o},0),r)+2,i=n.map(o=>`${a.default.gray(y)} ${a.default.dim(o)}${" ".repeat(s-rn(o).length)}${a.default.gray(y)}`).join(`
37
37
  `);process.stdout.write(`${a.default.gray(y)}
38
- ${a.default.green(pt)} ${a.default.reset(e)} ${a.default.gray(Eo.repeat(Math.max(s-r-1,1))+Gs)}
38
+ ${a.default.green(gt)} ${a.default.reset(e)} ${a.default.gray(ho.repeat(Math.max(s-r-1,1))+Js)}
39
39
  ${i}
40
- ${a.default.gray(Hs+Eo.repeat(s+2)+Ks)}
40
+ ${a.default.gray(Vs+ho.repeat(s+2)+Xs)}
41
41
  `)},je=(t="")=>{process.stdout.write(`${a.default.gray(Be)} ${a.default.red(t)}
42
42
 
43
- `)},gt=(t="")=>{process.stdout.write(`${a.default.gray(Ns)} ${t}
43
+ `)},ft=(t="")=>{process.stdout.write(`${a.default.gray(Gs)} ${t}
44
44
  `)},le=(t="")=>{process.stdout.write(`${a.default.gray(y)}
45
45
  ${a.default.gray(Be)} ${t}
46
46
 
47
- `)},$={message:(t="",{symbol:e=a.default.gray(y)}={})=>{let n=[`${a.default.gray(y)}`];if(t){let[r,...s]=t.split(`
47
+ `)},M={message:(t="",{symbol:e=a.default.gray(y)}={})=>{let n=[`${a.default.gray(y)}`];if(t){let[r,...s]=t.split(`
48
48
  `);n.push(`${e} ${r}`,...s.map(i=>`${a.default.gray(y)} ${i}`))}process.stdout.write(`${n.join(`
49
49
  `)}
50
- `)},info:t=>{$.message(t,{symbol:a.default.blue(Js)})},success:t=>{$.message(t,{symbol:a.default.green(Vs)})},step:t=>{$.message(t,{symbol:a.default.green(pt)})},warn:t=>{$.message(t,{symbol:a.default.yellow(Xs)})},warning:t=>{$.warn(t)},error:t=>{$.message(t,{symbol:a.default.red(Ys)})}},qs=()=>{let t=rn?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],e=rn?80:120,n=process.env.CI==="true",r,s,i=!1,o="",u,c=I=>{let U=I>1?"Something went wrong":"Canceled";i&&$e(U,I)},d=()=>c(2),m=()=>c(1),l=()=>{process.on("uncaughtExceptionMonitor",d),process.on("unhandledRejection",d),process.on("SIGINT",m),process.on("SIGTERM",m),process.on("exit",c)},E=()=>{process.removeListener("uncaughtExceptionMonitor",d),process.removeListener("unhandledRejection",d),process.removeListener("SIGINT",m),process.removeListener("SIGTERM",m),process.removeListener("exit",c)},S=()=>{if(u===void 0)return;n&&process.stdout.write(`
51
- `);let I=u.split(`
52
- `);process.stdout.write(mt.cursor.move(-999,I.length-1)),process.stdout.write(mt.erase.down(I.length))},de=I=>I.replace(/\.+$/,""),Hn=(I="")=>{i=!0,r=mo(),o=de(I),process.stdout.write(`${a.default.gray(y)}
53
- `);let U=0,z=0;l(),s=setInterval(()=>{if(n&&o===u)return;S(),u=o;let Yr=a.default.magenta(t[U]),qr=n?"...":".".repeat(Math.floor(z)).slice(0,3);process.stdout.write(`${Yr} ${o}${qr}`),U=U+1<t.length?U+1:0,z=z<t.length?z+.125:0},e)},$e=(I="",U=0)=>{i=!1,clearInterval(s),S();let z=U===0?a.default.green(pt):U===1?a.default.red(Fo):a.default.red(yo);o=de(I??o),process.stdout.write(`${z} ${o}
54
- `),E(),r()};return{start:Hn,stop:$e,message:(I="")=>{o=de(I??o)}}},ft=async t=>{for(let e of t){if(e.enabled===!1)continue;let n=qs();n.start(e.title);let r=await e.task(n.message);n.stop(r||e.title)}}});import{execSync as zs}from"child_process";import{existsSync as H,readdirSync as Zs}from"fs";import{homedir as _o}from"os";import{join as K}from"path";function Ne(t){try{return zs(`${q?"where":"which"} ${t}`,{stdio:"pipe"}),!0}catch(e){return process.env.DEBUG&&console.error(`[ide-detection] ${t} not in PATH:`,e instanceof Error?e.message:String(e)),!1}}function Qs(t){let e=K(_o(),".vscode","extensions");if(!H(e))return!1;try{return Zs(e).some(r=>r.toLowerCase().includes(t.toLowerCase()))}catch(n){return console.warn("[ide-detection] Failed to read VS Code extensions directory:",n instanceof Error?n.message:String(n)),!1}}function Ue(){let t=_o();return[{id:"claude-code",label:"Claude Code",detected:H(K(t,".claude")),supported:!0,hint:"recommended"},{id:"gemini-cli",label:"Gemini CLI",detected:H(K(t,".gemini")),supported:!0},{id:"opencode",label:"OpenCode",detected:H(K(t,".config","opencode"))||Ne("opencode"),supported:!0,hint:"plugin-based integration"},{id:"openclaw",label:"OpenClaw",detected:H(K(t,".openclaw")),supported:!0,hint:"plugin-based integration"},{id:"windsurf",label:"Windsurf",detected:H(K(t,".codeium","windsurf")),supported:!0},{id:"codex-cli",label:"Codex CLI",detected:H(K(t,".codex")),supported:!0,hint:"transcript-based integration"},{id:"cursor",label:"Cursor",detected:H(K(t,".cursor")),supported:!0,hint:"hooks + MCP integration"},{id:"copilot-cli",label:"Copilot CLI",detected:Ne("copilot"),supported:!0,hint:"MCP-based integration"},{id:"antigravity",label:"Antigravity",detected:H(K(t,".gemini","antigravity")),supported:!0,hint:"MCP-based integration"},{id:"goose",label:"Goose",detected:H(K(t,".config","goose"))||Ne("goose"),supported:!0,hint:"MCP-based integration"},{id:"crush",label:"Crush",detected:Ne("crush"),supported:!0,hint:"MCP-based integration"},{id:"roo-code",label:"Roo Code",detected:Qs("roo-code"),supported:!0,hint:"MCP-based integration"},{id:"warp",label:"Warp",detected:H(K(t,".warp"))||Ne("warp"),supported:!0,hint:"MCP-based integration"}]}var wo=f(()=>{"use strict";ce()});import{appendFileSync as ei,existsSync as Ao,mkdirSync as ti,readFileSync as ni}from"fs";import{join as Ct}from"path";import{homedir as oi}from"os";var un,bo,an,D,X=f(()=>{"use strict";un=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(un||{}),bo=Ct(oi(),".claude-mem"),an=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let e=Ct(bo,"logs");Ao(e)||ti(e,{recursive:!0});let n=new Date().toISOString().split("T")[0];this.logFilePath=Ct(e,`claude-mem-${n}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e instanceof Error?e.message:String(e)),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=Ct(bo,"settings.json");if(Ao(e)){let n=ni(e,"utf-8"),s=(JSON.parse(n).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=un[s]??1}else this.level=1}catch(e){console.error("[LOGGER] Failed to load log level from settings:",e instanceof Error?e.message:String(e)),this.level=1}return this.level}correlationId(e,n){return`obs-${e}-${n}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message}
55
- ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let n=Object.keys(e);return n.length===0?"{}":n.length<=3?JSON.stringify(e):`{${n.length} keys: ${n.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,n){if(!n)return e;let r=n;if(typeof n=="string")try{r=JSON.parse(n)}catch{r=n}if(e==="Bash"&&r.command)return`${e}(${r.command})`;if(r.file_path)return`${e}(${r.file_path})`;if(r.notebook_path)return`${e}(${r.notebook_path})`;if(e==="Glob"&&r.pattern)return`${e}(${r.pattern})`;if(e==="Grep"&&r.pattern)return`${e}(${r.pattern})`;if(r.url)return`${e}(${r.url})`;if(r.query)return`${e}(${r.query})`;if(e==="Task"){if(r.subagent_type)return`${e}(${r.subagent_type})`;if(r.description)return`${e}(${r.description})`}return e==="Skill"&&r.skill?`${e}(${r.skill})`:e==="LSP"&&r.operation?`${e}(${r.operation})`:e}formatTimestamp(e){let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),u=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${n}-${r}-${s} ${i}:${o}:${u}.${c}`}log(e,n,r,s,i){if(e<this.getLevel())return;this.ensureLogFileInitialized();let o=this.formatTimestamp(new Date),u=un[e].padEnd(5),c=n.padEnd(6),d="";s?.correlationId?d=`[${s.correlationId}] `:s?.sessionId&&(d=`[session-${s.sessionId}] `);let m="";i!=null&&(i instanceof Error?m=this.getLevel()===0?`
50
+ `)},info:t=>{M.message(t,{symbol:a.default.blue(Ys)})},success:t=>{M.message(t,{symbol:a.default.green(qs)})},step:t=>{M.message(t,{symbol:a.default.green(gt)})},warn:t=>{M.message(t,{symbol:a.default.yellow(zs)})},warning:t=>{M.warn(t)},error:t=>{M.message(t,{symbol:a.default.red(Zs)})}},Qs=()=>{let t=sn?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],e=sn?80:120,n=process.env.CI==="true",r,s,i=!1,o="",u,c=O=>{let U=O>1?"Something went wrong":"Canceled";i&&$e(U,O)},d=()=>c(2),m=()=>c(1),l=()=>{process.on("uncaughtExceptionMonitor",d),process.on("unhandledRejection",d),process.on("SIGINT",m),process.on("SIGTERM",m),process.on("exit",c)},E=()=>{process.removeListener("uncaughtExceptionMonitor",d),process.removeListener("unhandledRejection",d),process.removeListener("SIGINT",m),process.removeListener("SIGTERM",m),process.removeListener("exit",c)},v=()=>{if(u===void 0)return;n&&process.stdout.write(`
51
+ `);let O=u.split(`
52
+ `);process.stdout.write(pt.cursor.move(-999,O.length-1)),process.stdout.write(pt.erase.down(O.length))},de=O=>O.replace(/\.+$/,""),Kn=(O="")=>{i=!0,r=po(),o=de(O),process.stdout.write(`${a.default.gray(y)}
53
+ `);let U=0,z=0;l(),s=setInterval(()=>{if(n&&o===u)return;v(),u=o;let Zr=a.default.magenta(t[U]),Qr=n?"...":".".repeat(Math.floor(z)).slice(0,3);process.stdout.write(`${Zr} ${o}${Qr}`),U=U+1<t.length?U+1:0,z=z<t.length?z+.125:0},e)},$e=(O="",U=0)=>{i=!1,clearInterval(s),v();let z=U===0?a.default.green(gt):U===1?a.default.red(yo):a.default.red(xo);o=de(O??o),process.stdout.write(`${z} ${o}
54
+ `),E(),r()};return{start:Kn,stop:$e,message:(O="")=>{o=de(O??o)}}},Ct=async t=>{for(let e of t){if(e.enabled===!1)continue;let n=Qs();n.start(e.title);let r=await e.task(n.message);n.stop(r||e.title)}}});import{execSync as ei}from"child_process";import{existsSync as H,readdirSync as ti}from"fs";import{homedir as wo}from"os";import{join as K}from"path";function Ne(t){try{return ei(`${q?"where":"which"} ${t}`,{stdio:"pipe"}),!0}catch(e){return process.env.DEBUG&&console.error(`[ide-detection] ${t} not in PATH:`,e instanceof Error?e.message:String(e)),!1}}function ni(t){let e=K(wo(),".vscode","extensions");if(!H(e))return!1;try{return ti(e).some(r=>r.toLowerCase().includes(t.toLowerCase()))}catch(n){return console.warn("[ide-detection] Failed to read VS Code extensions directory:",n instanceof Error?n.message:String(n)),!1}}function Ue(){let t=wo();return[{id:"claude-code",label:"Claude Code",detected:H(K(t,".claude")),supported:!0,hint:"recommended"},{id:"gemini-cli",label:"Gemini CLI",detected:H(K(t,".gemini")),supported:!0},{id:"opencode",label:"OpenCode",detected:H(K(t,".config","opencode"))||Ne("opencode"),supported:!0,hint:"plugin-based integration"},{id:"openclaw",label:"OpenClaw",detected:H(K(t,".openclaw")),supported:!0,hint:"plugin-based integration"},{id:"windsurf",label:"Windsurf",detected:H(K(t,".codeium","windsurf")),supported:!0},{id:"codex-cli",label:"Codex CLI",detected:H(K(t,".codex")),supported:!0,hint:"transcript-based integration"},{id:"cursor",label:"Cursor",detected:H(K(t,".cursor")),supported:!0,hint:"hooks + MCP integration"},{id:"copilot-cli",label:"Copilot CLI",detected:Ne("copilot"),supported:!0,hint:"MCP-based integration"},{id:"antigravity",label:"Antigravity",detected:H(K(t,".gemini","antigravity")),supported:!0,hint:"MCP-based integration"},{id:"goose",label:"Goose",detected:H(K(t,".config","goose"))||Ne("goose"),supported:!0,hint:"MCP-based integration"},{id:"crush",label:"Crush",detected:Ne("crush"),supported:!0,hint:"MCP-based integration"},{id:"roo-code",label:"Roo Code",detected:ni("roo-code"),supported:!0,hint:"MCP-based integration"},{id:"warp",label:"Warp",detected:H(K(t,".warp"))||Ne("warp"),supported:!0,hint:"MCP-based integration"}]}var Ao=f(()=>{"use strict";ce()});import{appendFileSync as oi,existsSync as bo,mkdirSync as ri,readFileSync as si}from"fs";import{join as Et}from"path";import{homedir as ii}from"os";var an,ko,cn,D,X=f(()=>{"use strict";an=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(an||{}),ko=Et(ii(),".claude-mem"),cn=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let e=Et(ko,"logs");bo(e)||ri(e,{recursive:!0});let n=new Date().toISOString().split("T")[0];this.logFilePath=Et(e,`claude-mem-${n}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e instanceof Error?e.message:String(e)),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=Et(ko,"settings.json");if(bo(e)){let n=si(e,"utf-8"),s=(JSON.parse(n).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=an[s]??1}else this.level=1}catch(e){console.error("[LOGGER] Failed to load log level from settings:",e instanceof Error?e.message:String(e)),this.level=1}return this.level}correlationId(e,n){return`obs-${e}-${n}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message}
55
+ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let n=Object.keys(e);return n.length===0?"{}":n.length<=3?JSON.stringify(e):`{${n.length} keys: ${n.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,n){if(!n)return e;let r=n;if(typeof n=="string")try{r=JSON.parse(n)}catch{r=n}if(e==="Bash"&&r.command)return`${e}(${r.command})`;if(r.file_path)return`${e}(${r.file_path})`;if(r.notebook_path)return`${e}(${r.notebook_path})`;if(e==="Glob"&&r.pattern)return`${e}(${r.pattern})`;if(e==="Grep"&&r.pattern)return`${e}(${r.pattern})`;if(r.url)return`${e}(${r.url})`;if(r.query)return`${e}(${r.query})`;if(e==="Task"){if(r.subagent_type)return`${e}(${r.subagent_type})`;if(r.description)return`${e}(${r.description})`}return e==="Skill"&&r.skill?`${e}(${r.skill})`:e==="LSP"&&r.operation?`${e}(${r.operation})`:e}formatTimestamp(e){let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),u=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${n}-${r}-${s} ${i}:${o}:${u}.${c}`}log(e,n,r,s,i){if(e<this.getLevel())return;this.ensureLogFileInitialized();let o=this.formatTimestamp(new Date),u=an[e].padEnd(5),c=n.padEnd(6),d="";s?.correlationId?d=`[${s.correlationId}] `:s?.sessionId&&(d=`[session-${s.sessionId}] `);let m="";i!=null&&(i instanceof Error?m=this.getLevel()===0?`
56
56
  ${i.message}
57
57
  ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?m=`
58
- `+JSON.stringify(i,null,2):m=" "+this.formatData(i));let l="";if(s){let{sessionId:S,memorySessionId:de,correlationId:Hn,...$e}=s;Object.keys($e).length>0&&(l=` {${Object.entries($e).map(([U,z])=>`${U}=${z}`).join(", ")}}`)}let E=`[${o}] [${u}] [${c}] ${d}${r}${l}${m}`;if(this.logFilePath)try{ei(this.logFilePath,E+`
59
- `,"utf8")}catch(S){process.stderr.write(`[LOGGER] Failed to write to log file: ${S instanceof Error?S.message:String(S)}
58
+ `+JSON.stringify(i,null,2):m=" "+this.formatData(i));let l="";if(s){let{sessionId:v,memorySessionId:de,correlationId:Kn,...$e}=s;Object.keys($e).length>0&&(l=` {${Object.entries($e).map(([U,z])=>`${U}=${z}`).join(", ")}}`)}let E=`[${o}] [${u}] [${c}] ${d}${r}${l}${m}`;if(this.logFilePath)try{oi(this.logFilePath,E+`
59
+ `,"utf8")}catch(v){process.stderr.write(`[LOGGER] Failed to write to log file: ${v instanceof Error?v.message:String(v)}
60
60
  `)}else process.stderr.write(E+`
61
61
  `)}debug(e,n,r,s){this.log(0,e,n,r,s)}info(e,n,r,s){this.log(1,e,n,r,s)}warn(e,n,r,s){this.log(2,e,n,r,s)}error(e,n,r,s){this.log(3,e,n,r,s)}dataIn(e,n,r,s){this.info(e,`\u2192 ${n}`,r,s)}dataOut(e,n,r,s){this.info(e,`\u2190 ${n}`,r,s)}success(e,n,r,s){this.info(e,`\u2713 ${n}`,r,s)}failure(e,n,r,s){this.error(e,`\u2717 ${n}`,r,s)}timing(e,n,r,s){this.info(e,`\u23F1 ${n}`,s,{duration:`${r}ms`})}happyPathError(e,n,r,s,i=""){let d=((new Error().stack||"").split(`
62
- `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),m=d?`${d[1].split("/").pop()}:${d[2]}`:"unknown",l={...r,location:m};return this.warn(e,`[HAPPY-PATH] ${n}`,l,s),i}},D=new an});function ko(t){return process.platform==="win32"?Math.round(t*cn.WINDOWS_MULTIPLIER):t}var cn,$o=f(()=>{"use strict";cn={DEFAULT:3e5,HEALTH_CHECK:3e3,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}});import{readFileSync as ri,writeFileSync as Mo,existsSync as Io,mkdirSync as si}from"fs";import{join as Oo,dirname as ii}from"path";import{homedir as Ro}from"os";var De,To=f(()=>{"use strict";De=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-6",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",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:"cli",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:Oo(Ro(),".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_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_FOLDER_USE_LOCAL_MD:"false",CLAUDE_MEM_TRANSCRIPTS_ENABLED:"true",CLAUDE_MEM_TRANSCRIPTS_CONFIG_PATH:Oo(Ro(),".claude-mem","transcript-watch.json"),CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let n=this.get(e);return parseInt(n,10)}static getBool(e){let n=this.get(e);return n==="true"||n===!0}static applyEnvOverrides(e){let n={...e};for(let r of Object.keys(this.DEFAULTS))process.env[r]!==void 0&&(n[r]=process.env[r]);return n}static loadFromFile(e){try{if(!Io(e)){let o=this.getAllDefaults();try{let u=ii(e);Io(u)||si(u,{recursive:!0}),Mo(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(u){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,u instanceof Error?u.message:String(u))}return this.applyEnvOverrides(o)}let n=ri(e,"utf-8"),r=JSON.parse(n),s=r;if(r.env&&typeof r.env=="object"){s=r.env;try{Mo(e,JSON.stringify(s,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(o){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,o instanceof Error?o.message:String(o))}}let i={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))s[o]!==void 0&&(i[o]=s[o]);return this.applyEnvOverrides(i)}catch(n){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,n instanceof Error?n.message:String(n)),this.applyEnvOverrides(this.getAllDefaults())}}}});import{join as b,dirname as ui,basename as ai}from"path";import{homedir as Bo}from"os";import{existsSync as ci,mkdirSync as gc}from"fs";import{execSync as Cc}from"child_process";import{fileURLToPath as li}from"url";function Di(){return typeof __dirname<"u"?__dirname:ui(li(import.meta.url))}function di(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let t=b(Bo(),".claude-mem"),e=b(t,"settings.json");try{if(ci(e)){let{readFileSync:n}=ns("fs"),r=JSON.parse(n(e,"utf-8")),s=r.env??r;if(s.CLAUDE_MEM_DATA_DIR)return s.CLAUDE_MEM_DATA_DIR}}catch{}return t}var Fc,T,Ce,Et,yc,xc,vc,Sc,_c,wc,Ac,bc,mi,kc,$c,Mc,Ic,ht=f(()=>{"use strict";X();Fc=Di();T=di(),Ce=process.env.CLAUDE_CONFIG_DIR||b(Bo(),".claude"),Et=b(Ce,"plugins","marketplaces","thedotmack"),yc=b(T,"archives"),xc=b(T,"logs"),vc=b(T,"trash"),Sc=b(T,"backups"),_c=b(T,"modes"),wc=b(T,"settings.json"),Ac=b(T,"claude-mem.db"),bc=b(T,"vector-db"),mi=b(T,"observer-sessions"),kc=ai(mi),$c=b(Ce,"settings.json"),Mc=b(Ce,"commands"),Ic=b(Ce,"CLAUDE.md")});import Po from"path";import{readFileSync as Bc}from"fs";function gi(t,e={},n){return new Promise((r,s)=>{let i=setTimeout(()=>s(new Error(`Request timed out after ${n}ms`)),n);fetch(t,e).then(o=>{clearTimeout(i),r(o)},o=>{clearTimeout(i),s(o)})})}function We(){if(Ft!==null)return Ft;let t=Po.join(De.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=De.loadFromFile(t);return Ft=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),Ft}function fi(){if(yt!==null)return yt;let t=Po.join(De.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return yt=De.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,yt}function Ci(t){return`http://${fi()}:${We()}${t}`}function xt(t,e={}){let n=e.method??"GET",r=e.timeoutMs??pi,s=Ci(t),i={method:n};return e.headers&&(i.headers=e.headers),e.body&&(i.body=e.body),r>0?gi(s,i,r):fetch(s,i)}var pi,Ft,yt,vt=f(()=>{"use strict";X();$o();To();ht();pi=(()=>{let t=process.env.CLAUDE_MEM_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;D.warn("SYSTEM","Invalid CLAUDE_MEM_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return ko(cn.HEALTH_CHECK)})();Ft=null,yt=null});import{existsSync as Ei,readFileSync as hi,writeFileSync as Lo,mkdirSync as jo,renameSync as Fi}from"fs";import{join as ln,basename as Hc}from"path";function No(t){try{return Ei(t)?JSON.parse(hi(t,"utf-8")):{}}catch(e){return D.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function Uo(t,e){let n=ln(t,"..");jo(n,{recursive:!0}),Lo(t,JSON.stringify(e,null,2))}function Dn(t,e){let n=ln(t,".cursor","rules"),r=ln(n,"claude-mem-context.mdc"),s=`${r}.tmp`;jo(n,{recursive:!0});let i=`---
62
+ `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),m=d?`${d[1].split("/").pop()}:${d[2]}`:"unknown",l={...r,location:m};return this.warn(e,`[HAPPY-PATH] ${n}`,l,s),i}},D=new cn});function $o(t){return process.platform==="win32"?Math.round(t*ln.WINDOWS_MULTIPLIER):t}var ln,Mo=f(()=>{"use strict";ln={DEFAULT:3e5,HEALTH_CHECK:3e3,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}});import{readFileSync as ui,writeFileSync as Io,existsSync as Oo,mkdirSync as ai}from"fs";import{join as Ro,dirname as ci}from"path";import{homedir as To}from"os";var De,Bo=f(()=>{"use strict";De=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-6",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:"cli",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:Ro(To(),".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_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_FOLDER_USE_LOCAL_MD:"false",CLAUDE_MEM_TRANSCRIPTS_ENABLED:"true",CLAUDE_MEM_TRANSCRIPTS_CONFIG_PATH:Ro(To(),".claude-mem","transcript-watch.json"),CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let n=this.get(e);return parseInt(n,10)}static getBool(e){let n=this.get(e);return n==="true"||n===!0}static applyEnvOverrides(e){let n={...e};for(let r of Object.keys(this.DEFAULTS))process.env[r]!==void 0&&(n[r]=process.env[r]);return n}static loadFromFile(e){try{if(!Oo(e)){let o=this.getAllDefaults();try{let u=ci(e);Oo(u)||ai(u,{recursive:!0}),Io(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(u){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,u instanceof Error?u.message:String(u))}return this.applyEnvOverrides(o)}let n=ui(e,"utf-8"),r=JSON.parse(n),s=r;if(r.env&&typeof r.env=="object"){s=r.env;try{Io(e,JSON.stringify(s,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(o){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,o instanceof Error?o.message:String(o))}}let i={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))s[o]!==void 0&&(i[o]=s[o]);return this.applyEnvOverrides(i)}catch(n){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,n instanceof Error?n.message:String(n)),this.applyEnvOverrides(this.getAllDefaults())}}}});import{join as b,dirname as li,basename as Di}from"path";import{homedir as Po}from"os";import{existsSync as di,mkdirSync as _c}from"fs";import{execSync as Ac}from"child_process";import{fileURLToPath as mi}from"url";function pi(){return typeof __dirname<"u"?__dirname:li(mi(import.meta.url))}function gi(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let t=b(Po(),".claude-mem"),e=b(t,"settings.json");try{if(di(e)){let{readFileSync:n}=ss("fs"),r=JSON.parse(n(e,"utf-8")),s=r.env??r;if(s.CLAUDE_MEM_DATA_DIR)return s.CLAUDE_MEM_DATA_DIR}}catch{}return t}var $c,k,Ce,ht,Mc,Ic,Oc,Rc,Tc,Bc,Pc,Lc,fi,jc,Nc,Uc,Wc,We=f(()=>{"use strict";X();$c=pi();k=gi(),Ce=process.env.CLAUDE_CONFIG_DIR||b(Po(),".claude"),ht=b(Ce,"plugins","marketplaces","thedotmack"),Mc=b(k,"archives"),Ic=b(k,"logs"),Oc=b(k,"trash"),Rc=b(k,"backups"),Tc=b(k,"modes"),Bc=b(k,"settings.json"),Pc=b(k,"claude-mem.db"),Lc=b(k,"vector-db"),fi=b(k,"observer-sessions"),jc=Di(fi),Nc=b(Ce,"settings.json"),Uc=b(Ce,"commands"),Wc=b(Ce,"CLAUDE.md")});import{randomBytes as Ci}from"crypto";import{readFileSync as Ei,writeFileSync as hi,existsSync as Fi,mkdirSync as yi}from"fs";import{join as xi}from"path";function Lo(){if(Ft)return Ft;let t=xi(k,Si);if(Fi(t)){let n=Ei(t,"utf-8").trim();if(n.length>=32)return Ft=n,n}let e=Ci(32).toString("hex");return yi(k,{recursive:!0}),hi(t,e,{mode:384}),Ft=e,e}var Si,Ft,jo=f(()=>{"use strict";We();Si="worker-auth-token",Ft=null});import No from"path";import{readFileSync as zc}from"fs";function _i(t,e={},n){return new Promise((r,s)=>{let i=setTimeout(()=>s(new Error(`Request timed out after ${n}ms`)),n);fetch(t,e).then(o=>{clearTimeout(i),r(o)},o=>{clearTimeout(i),s(o)})})}function Ge(){if(yt!==null)return yt;let t=No.join(De.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=De.loadFromFile(t);return yt=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),yt}function wi(){if(xt!==null)return xt;let t=No.join(De.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return xt=De.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,xt}function Ai(t){return`http://${wi()}:${Ge()}${t}`}function St(t,e={}){let n=e.method??"GET",r=e.timeoutMs??vi,s=Ai(t),i={method:n},o={...e.headers,Authorization:`Bearer ${Lo()}`};return i.headers=o,e.body&&(i.body=e.body),r>0?_i(s,i,r):fetch(s,i)}var vi,yt,xt,vt=f(()=>{"use strict";X();Mo();Bo();We();jo();vi=(()=>{let t=process.env.CLAUDE_MEM_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;D.warn("SYSTEM","Invalid CLAUDE_MEM_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return $o(ln.HEALTH_CHECK)})();yt=null,xt=null});import{existsSync as bi,readFileSync as ki,writeFileSync as Uo,mkdirSync as Wo,renameSync as $i}from"fs";import{join as Dn,basename as il}from"path";function Go(t){try{return bi(t)?JSON.parse(ki(t,"utf-8")):{}}catch(e){return D.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function Ho(t,e){let n=Dn(t,"..");Wo(n,{recursive:!0}),Uo(t,JSON.stringify(e,null,2))}function dn(t,e){let n=Dn(t,".cursor","rules"),r=Dn(n,"claude-mem-context.mdc"),s=`${r}.tmp`;Wo(n,{recursive:!0});let i=`---
63
63
  alwaysApply: true
64
64
  description: "Claude-mem context from past sessions (auto-updated)"
65
65
  ---
@@ -72,10 +72,10 @@ ${e}
72
72
 
73
73
  ---
74
74
  *Updated after last session. Use claude-mem's MCP search tools for more detailed queries.*
75
- `;Lo(s,i),Fi(s,r)}var Wo=f(()=>{"use strict";X()});var zo={};V(zo,{checkCursorHooksStatus:()=>qo,configureCursorMcp:()=>wi,detectClaudeCode:()=>Mi,detectPlatform:()=>Ko,findBunPath:()=>he,findMcpServerPath:()=>Ge,findWorkerServicePath:()=>Ee,getScriptExtension:()=>Si,getTargetDir:()=>wt,handleCursorCommand:()=>Ii,installCursorHooks:()=>Xo,readCursorRegistry:()=>_t,registerCursorProject:()=>Jo,uninstallCursorHooks:()=>Yo,unregisterCursorProject:()=>Vo,updateCursorContextForProject:()=>_i,writeCursorRegistry:()=>gn});import p from"path";import{homedir as St}from"os";import{existsSync as P,readFileSync as Go,writeFileSync as mn,unlinkSync as dn,mkdirSync as pn}from"fs";import{exec as yi}from"child_process";import{promisify as xi}from"util";function Ko(){return process.platform==="win32"?"windows":"unix"}function Si(){return Ko()==="windows"?".ps1":".sh"}function _t(){return No(Ho)}function gn(t){Uo(Ho,t)}function Jo(t,e){let n=_t();n[t]={workspacePath:e,installedAt:new Date().toISOString()},gn(n),D.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function Vo(t){let e=_t();e[t]&&(delete e[t],gn(e),D.info("CURSOR","Unregistered project",{projectName:t}))}async function _i(t,e){let r=_t()[t];if(r)try{let s=await xt(`/api/context/inject?project=${encodeURIComponent(t)}`);if(!s.ok)return;let i=await s.text();if(!i||!i.trim())return;Dn(r.workspacePath,i),D.debug("CURSOR","Updated context file",{projectName:t,workspacePath:r.workspacePath})}catch(s){s instanceof Error?D.error("WORKER","Failed to update context file",{projectName:t},s):D.error("WORKER","Failed to update context file",{projectName:t},new Error(String(s)))}}function Ge(){let t=[p.join(Et,"plugin","scripts","mcp-server.cjs"),p.join(process.cwd(),"plugin","scripts","mcp-server.cjs")];for(let e of t)if(P(e))return e;return null}function Ee(){let t=[p.join(Et,"plugin","scripts","worker-service.cjs"),p.join(process.cwd(),"plugin","scripts","worker-service.cjs")];for(let e of t)if(P(e))return e;return null}function he(){let t=[p.join(St(),".bun","bin","bun"),"/usr/local/bin/bun","/usr/bin/bun",...process.platform==="win32"?[p.join(St(),".bun","bin","bun.exe"),p.join(process.env.LOCALAPPDATA||"","bun","bun.exe")]:[]];for(let e of t)if(e&&P(e))return e;return"bun"}function wt(t){switch(t){case"project":return p.join(process.cwd(),".cursor");case"user":return p.join(St(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?p.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}function wi(t){let e=Ge();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 n=wt(t);if(!n)return console.error(`Invalid target: ${t}. Use: project or user`),1;let r=p.join(n,"mcp.json");try{pn(n,{recursive:!0});let s={mcpServers:{}};if(P(r))try{s=JSON.parse(Go(r,"utf-8")),s.mcpServers||(s.mcpServers={})}catch(i){i instanceof Error?D.error("WORKER","Corrupt mcp.json, creating new config",{path:r},i):D.error("WORKER","Corrupt mcp.json, creating new config",{path:r},new Error(String(i))),s={mcpServers:{}}}return s.mcpServers["claude-mem"]={command:"node",args:[e]},mn(r,JSON.stringify(s,null,2)),console.log(` Configured MCP server in ${t==="user"?"~/.cursor":".cursor"}/mcp.json`),console.log(` Server path: ${e}`),0}catch(s){return console.error(`Failed to configure MCP: ${s.message}`),1}}async function Xo(t){console.log(`
75
+ `;Uo(s,i),$i(s,r)}var Ko=f(()=>{"use strict";X()});var er={};V(er,{checkCursorHooksStatus:()=>Qo,configureCursorMcp:()=>Bi,detectClaudeCode:()=>Ui,detectPlatform:()=>Xo,findBunPath:()=>he,findMcpServerPath:()=>He,findWorkerServicePath:()=>Ee,getScriptExtension:()=>Ri,getTargetDir:()=>At,handleCursorCommand:()=>Wi,installCursorHooks:()=>zo,readCursorRegistry:()=>wt,registerCursorProject:()=>Yo,uninstallCursorHooks:()=>Zo,unregisterCursorProject:()=>qo,updateCursorContextForProject:()=>Ti,writeCursorRegistry:()=>fn});import p from"path";import{homedir as _t}from"os";import{existsSync as P,readFileSync as Jo,writeFileSync as pn,unlinkSync as mn,mkdirSync as gn}from"fs";import{exec as Mi}from"child_process";import{promisify as Ii}from"util";function Xo(){return process.platform==="win32"?"windows":"unix"}function Ri(){return Xo()==="windows"?".ps1":".sh"}function wt(){return Go(Vo)}function fn(t){Ho(Vo,t)}function Yo(t,e){let n=wt();n[t]={workspacePath:e,installedAt:new Date().toISOString()},fn(n),D.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function qo(t){let e=wt();e[t]&&(delete e[t],fn(e),D.info("CURSOR","Unregistered project",{projectName:t}))}async function Ti(t,e){let r=wt()[t];if(r)try{let s=await St(`/api/context/inject?project=${encodeURIComponent(t)}`);if(!s.ok)return;let i=await s.text();if(!i||!i.trim())return;dn(r.workspacePath,i),D.debug("CURSOR","Updated context file",{projectName:t,workspacePath:r.workspacePath})}catch(s){s instanceof Error?D.error("WORKER","Failed to update context file",{projectName:t},s):D.error("WORKER","Failed to update context file",{projectName:t},new Error(String(s)))}}function He(){let t=[p.join(ht,"plugin","scripts","mcp-server.cjs"),p.join(process.cwd(),"plugin","scripts","mcp-server.cjs")];for(let e of t)if(P(e))return e;return null}function Ee(){let t=[p.join(ht,"plugin","scripts","worker-service.cjs"),p.join(process.cwd(),"plugin","scripts","worker-service.cjs")];for(let e of t)if(P(e))return e;return null}function he(){let t=[p.join(_t(),".bun","bin","bun"),"/usr/local/bin/bun","/usr/bin/bun",...process.platform==="win32"?[p.join(_t(),".bun","bin","bun.exe"),p.join(process.env.LOCALAPPDATA||"","bun","bun.exe")]:[]];for(let e of t)if(e&&P(e))return e;return"bun"}function At(t){switch(t){case"project":return p.join(process.cwd(),".cursor");case"user":return p.join(_t(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?p.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}function Bi(t){let e=He();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 n=At(t);if(!n)return console.error(`Invalid target: ${t}. Use: project or user`),1;let r=p.join(n,"mcp.json");try{gn(n,{recursive:!0});let s={mcpServers:{}};if(P(r))try{s=JSON.parse(Jo(r,"utf-8")),s.mcpServers||(s.mcpServers={})}catch(i){i instanceof Error?D.error("WORKER","Corrupt mcp.json, creating new config",{path:r},i):D.error("WORKER","Corrupt mcp.json, creating new config",{path:r},new Error(String(i))),s={mcpServers:{}}}return s.mcpServers["claude-mem"]={command:"node",args:[e]},pn(r,JSON.stringify(s,null,2)),console.log(` Configured MCP server in ${t==="user"?"~/.cursor":".cursor"}/mcp.json`),console.log(` Server path: ${e}`),0}catch(s){return console.error(`Failed to configure MCP: ${s.message}`),1}}async function zo(t){console.log(`
76
76
  Installing Claude-Mem Cursor hooks (${t} level)...
77
- `);let e=wt(t);if(!e)return console.error(`Invalid target: ${t}. Use: project, user, or enterprise`),1;let n=Ee();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(),s=p.join(e,"hooks.json"),i=he(),o=i.replace(/\\/g,"\\\\"),u=n.replace(/\\/g,"\\\\"),c=m=>`"${o}" "${u}" hook cursor ${m}`;console.log(` Using Bun runtime: ${i}`);let d={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 pn(e,{recursive:!0}),await Ai(s,d,n,t,e,r),0}catch(m){let l=m instanceof Error?m.message:String(m);return console.error(`
78
- Installation failed: ${l}`),t==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function Ai(t,e,n,r,s,i){mn(t,JSON.stringify(e,null,2)),console.log(" Created hooks.json (unified CLI mode)"),console.log(` Worker service: ${n}`),r==="project"&&await bi(s,i),console.log(`
77
+ `);let e=At(t);if(!e)return console.error(`Invalid target: ${t}. Use: project, user, or enterprise`),1;let n=Ee();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(),s=p.join(e,"hooks.json"),i=he(),o=i.replace(/\\/g,"\\\\"),u=n.replace(/\\/g,"\\\\"),c=m=>`"${o}" "${u}" hook cursor ${m}`;console.log(` Using Bun runtime: ${i}`);let d={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 gn(e,{recursive:!0}),await Pi(s,d,n,t,e,r),0}catch(m){let l=m instanceof Error?m.message:String(m);return console.error(`
78
+ Installation failed: ${l}`),t==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function Pi(t,e,n,r,s,i){pn(t,JSON.stringify(e,null,2)),console.log(" Created hooks.json (unified CLI mode)"),console.log(` Worker service: ${n}`),r==="project"&&await Li(s,i),console.log(`
79
79
  Installation complete!
80
80
 
81
81
  Hooks installed to: ${s}/hooks.json
@@ -89,7 +89,7 @@ Next steps:
89
89
  Context Injection:
90
90
  Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc
91
91
  and automatically included in every chat. It updates after each session ends.
92
- `)}async function bi(t,e){let n=p.join(t,"rules");pn(n,{recursive:!0});let r=p.basename(e),s=!1;console.log(" Generating initial context...");try{s=await ki(r,e)}catch(i){i instanceof Error?D.debug("WORKER","Worker not running during install",{},i):D.debug("WORKER","Worker not running during install",{},new Error(String(i)))}if(!s){let i=p.join(n,"claude-mem-context.mdc");mn(i,`---
92
+ `)}async function Li(t,e){let n=p.join(t,"rules");gn(n,{recursive:!0});let r=p.basename(e),s=!1;console.log(" Generating initial context...");try{s=await ji(r,e)}catch(i){i instanceof Error?D.debug("WORKER","Worker not running during install",{},i):D.debug("WORKER","Worker not running during install",{},new Error(String(i)))}if(!s){let i=p.join(n,"claude-mem-context.mdc");pn(i,`---
93
93
  alwaysApply: true
94
94
  description: "Claude-mem context from past sessions (auto-updated)"
95
95
  ---
@@ -99,15 +99,15 @@ description: "Claude-mem context from past sessions (auto-updated)"
99
99
  *No context yet. Complete your first session and context will appear here.*
100
100
 
101
101
  Use claude-mem's MCP search tools for manual memory queries.
102
- `),console.log(" Created placeholder context file (will populate after first session)")}Jo(r,e),console.log(" Registered for auto-context updates")}async function ki(t,e){if(!(await xt("/api/readiness")).ok)return!1;let r=await xt(`/api/context/inject?project=${encodeURIComponent(t)}`);if(!r.ok)return!1;let s=await r.text();return s&&s.trim()?(Dn(e,s),console.log(" Generated initial context from existing memory"),!0):!1}function Yo(t){console.log(`
102
+ `),console.log(" Created placeholder context file (will populate after first session)")}Yo(r,e),console.log(" Registered for auto-context updates")}async function ji(t,e){if(!(await St("/api/readiness")).ok)return!1;let r=await St(`/api/context/inject?project=${encodeURIComponent(t)}`);if(!r.ok)return!1;let s=await r.text();return s&&s.trim()?(dn(e,s),console.log(" Generated initial context from existing memory"),!0):!1}function Zo(t){console.log(`
103
103
  Uninstalling Claude-Mem Cursor hooks (${t} level)...
104
- `);let e=wt(t);if(!e)return console.error(`Invalid target: ${t}`),1;let n=p.join(e,"hooks"),r=p.join(e,"hooks.json"),s=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],i=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...s,...i];try{return $i(n,o,r,t,e),0}catch(u){let c=u instanceof Error?u.message:String(u);return console.error(`
105
- Uninstallation failed: ${c}`),1}}function $i(t,e,n,r,s){for(let i of e){let o=p.join(t,i);P(o)&&(dn(o),console.log(` Removed legacy script: ${i}`))}if(P(n)&&(dn(n),console.log(" Removed hooks.json")),r==="project"){let i=p.join(s,"rules","claude-mem-context.mdc");P(i)&&(dn(i),console.log(" Removed context file"));let o=p.basename(process.cwd());Vo(o),console.log(" Unregistered from auto-context updates")}console.log(`
104
+ `);let e=At(t);if(!e)return console.error(`Invalid target: ${t}`),1;let n=p.join(e,"hooks"),r=p.join(e,"hooks.json"),s=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],i=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...s,...i];try{return Ni(n,o,r,t,e),0}catch(u){let c=u instanceof Error?u.message:String(u);return console.error(`
105
+ Uninstallation failed: ${c}`),1}}function Ni(t,e,n,r,s){for(let i of e){let o=p.join(t,i);P(o)&&(mn(o),console.log(` Removed legacy script: ${i}`))}if(P(n)&&(mn(n),console.log(" Removed hooks.json")),r==="project"){let i=p.join(s,"rules","claude-mem-context.mdc");P(i)&&(mn(i),console.log(" Removed context file"));let o=p.basename(process.cwd());qo(o),console.log(" Unregistered from auto-context updates")}console.log(`
106
106
  Uninstallation complete!
107
- `),console.log("Restart Cursor to apply changes.")}function qo(){console.log(`
107
+ `),console.log("Restart Cursor to apply changes.")}function Qo(){console.log(`
108
108
  Claude-Mem Cursor Hooks Status
109
- `);let t=[{name:"Project",dir:p.join(process.cwd(),".cursor")},{name:"User",dir:p.join(St(),".cursor")}];process.platform==="darwin"?t.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&t.push({name:"Enterprise",dir:"/etc/cursor"});let e=!1;for(let n of t){let r=p.join(n.dir,"hooks.json"),s=p.join(n.dir,"hooks");if(P(r)){e=!0,console.log(`${n.name}: Installed`),console.log(` Config: ${r}`);let i=null;try{i=JSON.parse(Go(r,"utf-8"))}catch(o){o instanceof Error?D.error("WORKER","Unable to parse hooks.json",{path:r},o):D.error("WORKER","Unable to parse hooks.json",{path:r},new Error(String(o))),console.log(" Mode: Unable to parse hooks.json")}if(i){let o=i?.hooks?.beforeSubmitPrompt?.[0]?.command||"";if(o.includes("worker-service.cjs")&&o.includes("hook cursor"))console.log(" Mode: Unified CLI (bun worker-service.cjs)");else{let u=["session-init.sh","context-inject.sh","save-observation.sh"],c=["session-init.ps1","context-inject.ps1","save-observation.ps1"],d=u.some(l=>P(p.join(s,l))),m=c.some(l=>P(p.join(s,l)));d||m?(console.log(" Mode: Legacy shell scripts (consider reinstalling for unified CLI)"),d&&m?console.log(" Platform: Both (bash + PowerShell)"):d?console.log(" Platform: Unix (bash)"):m&&console.log(" Platform: Windows (PowerShell)")):console.log(" Mode: Unknown configuration")}}if(n.name==="Project"){let o=p.join(n.dir,"rules","claude-mem-context.mdc");P(o)?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 e||console.log(`No hooks installed. Run: claude-mem cursor install
110
- `),0}async function Mi(){try{let{stdout:e}=await vi("which claude || where claude",{timeout:5e3});if(e.trim())return!0}catch(e){e instanceof Error?D.debug("WORKER","Claude CLI not in PATH",{},e):D.debug("WORKER","Claude CLI not in PATH",{},new Error(String(e)))}let t=p.join(Ce,"plugins");return!!P(t)}async function Ii(t,e){switch(t){case"install":{let n=e[0]||"project";return Xo(n)}case"uninstall":{let n=e[0]||"project";return Yo(n)}case"status":return qo();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(`
109
+ `);let t=[{name:"Project",dir:p.join(process.cwd(),".cursor")},{name:"User",dir:p.join(_t(),".cursor")}];process.platform==="darwin"?t.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&t.push({name:"Enterprise",dir:"/etc/cursor"});let e=!1;for(let n of t){let r=p.join(n.dir,"hooks.json"),s=p.join(n.dir,"hooks");if(P(r)){e=!0,console.log(`${n.name}: Installed`),console.log(` Config: ${r}`);let i=null;try{i=JSON.parse(Jo(r,"utf-8"))}catch(o){o instanceof Error?D.error("WORKER","Unable to parse hooks.json",{path:r},o):D.error("WORKER","Unable to parse hooks.json",{path:r},new Error(String(o))),console.log(" Mode: Unable to parse hooks.json")}if(i){let o=i?.hooks?.beforeSubmitPrompt?.[0]?.command||"";if(o.includes("worker-service.cjs")&&o.includes("hook cursor"))console.log(" Mode: Unified CLI (bun worker-service.cjs)");else{let u=["session-init.sh","context-inject.sh","save-observation.sh"],c=["session-init.ps1","context-inject.ps1","save-observation.ps1"],d=u.some(l=>P(p.join(s,l))),m=c.some(l=>P(p.join(s,l)));d||m?(console.log(" Mode: Legacy shell scripts (consider reinstalling for unified CLI)"),d&&m?console.log(" Platform: Both (bash + PowerShell)"):d?console.log(" Platform: Unix (bash)"):m&&console.log(" Platform: Windows (PowerShell)")):console.log(" Mode: Unknown configuration")}}if(n.name==="Project"){let o=p.join(n.dir,"rules","claude-mem-context.mdc");P(o)?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 e||console.log(`No hooks installed. Run: claude-mem cursor install
110
+ `),0}async function Ui(){try{let{stdout:e}=await Oi("which claude || where claude",{timeout:5e3});if(e.trim())return!0}catch(e){e instanceof Error?D.debug("WORKER","Claude CLI not in PATH",{},e):D.debug("WORKER","Claude CLI not in PATH",{},new Error(String(e)))}let t=p.join(Ce,"plugins");return!!P(t)}async function Wi(t,e){switch(t){case"install":{let n=e[0]||"project";return zo(n)}case"uninstall":{let n=e[0]||"project";return Zo(n)}case"status":return Qo();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(`
111
111
  Claude-Mem Cursor Integration
112
112
 
113
113
  Usage: claude-mem cursor <command> [options]
@@ -131,23 +131,23 @@ Examples:
131
131
  claude-mem cursor status # Check if hooks are installed
132
132
 
133
133
  For more info: https://docs.claude-mem.ai/cursor
134
- `),0}}var vi,Ho,He=f(()=>{"use strict";X();vt();ht();Wo();vi=xi(yi),Ho=p.join(T,"cursor-projects.json")});var hn={};V(hn,{checkGeminiCliHooksStatus:()=>nr,handleGeminiCliCommand:()=>Ui,installGeminiCliHooks:()=>er,uninstallGeminiCliHooks:()=>tr});import fn from"path";import{homedir as Oi}from"os";import{existsSync as Fe,readFileSync as At,writeFileSync as Cn,mkdirSync as Zo}from"fs";function Ti(t,e,n){let r=ye[n];if(!r)throw new Error(`Unknown Gemini CLI event: ${n}`);let s=t.replace(/\\/g,"\\\\"),i=e.replace(/\\/g,"\\\\");return`"${s}" "${i}" hook gemini-cli ${r}`}function Bi(t){return{matcher:"*",hooks:[{name:Ke,type:"command",command:t,timeout:Ri}]}}function En(){if(!Fe(M))return{};let t=At(M,"utf-8");try{return JSON.parse(t)}catch(e){throw e instanceof Error?D.error("WORKER","Corrupt JSON in Gemini settings",{path:M},e):D.error("WORKER","Corrupt JSON in Gemini settings",{path:M},new Error(String(e))),new Error(`Corrupt JSON in ${M}, refusing to overwrite user settings`)}}function Qo(t){Zo(bt,{recursive:!0}),Cn(M,JSON.stringify(t,null,2)+`
135
- `)}function Pi(t,e){let n={...t};n.hooks||(n.hooks={});for(let[r,s]of Object.entries(e)){let i=n.hooks[r]??[];for(let o of s){let u=i.findIndex(c=>c.hooks.some(d=>d.name===Ke));if(u>=0){let c=i[u],d=c.hooks.findIndex(m=>m.name===Ke);d>=0?c.hooks[d]=o.hooks[0]:c.hooks.push(o.hooks[0])}else i.push(o)}n.hooks[r]=i}return n}function Li(){let t="<claude-mem-context>",n=`${t}
134
+ `),0}}var Oi,Vo,Ke=f(()=>{"use strict";X();vt();We();Ko();Oi=Ii(Mi),Vo=p.join(k,"cursor-projects.json")});var Fn={};V(Fn,{checkGeminiCliHooksStatus:()=>sr,handleGeminiCliCommand:()=>zi,installGeminiCliHooks:()=>or,uninstallGeminiCliHooks:()=>rr});import Cn from"path";import{homedir as Gi}from"os";import{existsSync as Fe,readFileSync as bt,writeFileSync as En,mkdirSync as tr}from"fs";function Ki(t,e,n){let r=ye[n];if(!r)throw new Error(`Unknown Gemini CLI event: ${n}`);let s=t.replace(/\\/g,"\\\\"),i=e.replace(/\\/g,"\\\\");return`"${s}" "${i}" hook gemini-cli ${r}`}function Ji(t){return{matcher:"*",hooks:[{name:Je,type:"command",command:t,timeout:Hi}]}}function hn(){if(!Fe(I))return{};let t=bt(I,"utf-8");try{return JSON.parse(t)}catch(e){throw e instanceof Error?D.error("WORKER","Corrupt JSON in Gemini settings",{path:I},e):D.error("WORKER","Corrupt JSON in Gemini settings",{path:I},new Error(String(e))),new Error(`Corrupt JSON in ${I}, refusing to overwrite user settings`)}}function nr(t){tr(kt,{recursive:!0}),En(I,JSON.stringify(t,null,2)+`
135
+ `)}function Vi(t,e){let n={...t};n.hooks||(n.hooks={});for(let[r,s]of Object.entries(e)){let i=n.hooks[r]??[];for(let o of s){let u=i.findIndex(c=>c.hooks.some(d=>d.name===Je));if(u>=0){let c=i[u],d=c.hooks.findIndex(m=>m.name===Je);d>=0?c.hooks[d]=o.hooks[0]:c.hooks.push(o.hooks[0])}else i.push(o)}n.hooks[r]=i}return n}function Xi(){let t="<claude-mem-context>",n=`${t}
136
136
  # Memory Context from Past Sessions
137
137
 
138
138
  *No context yet. Complete your first session and context will appear here.*
139
- </claude-mem-context>`,r="";if(Fe(J)&&(r=At(J,"utf-8")),r.includes(t))return;let s=r.length>0&&!r.endsWith(`
139
+ </claude-mem-context>`,r="";if(Fe(J)&&(r=bt(J,"utf-8")),r.includes(t))return;let s=r.length>0&&!r.endsWith(`
140
140
  `)?`
141
141
 
142
142
  `:r.length>0?`
143
143
  `:"",i=r+s+n+`
144
- `;Zo(bt,{recursive:!0}),Cn(J,i)}async function er(){console.log(`
144
+ `;tr(kt,{recursive:!0}),En(J,i)}async function or(){console.log(`
145
145
  Installing Claude-Mem Gemini CLI hooks...
146
- `);let t=Ee();if(!t)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let e=he();console.log(` Using Bun runtime: ${e}`),console.log(` Worker service: ${t}`);try{let n={};for(let i of Object.keys(ye)){let o=Ti(e,t,i);n[i]=[Bi(o)]}let r=En(),s=Pi(r,n);return ji(s),0}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`
147
- Installation failed: ${r}`),1}}function ji(t){Qo(t),console.log(` Merged hooks into ${M}`),Li(),console.log(` Setup context injection in ${J}`);let e=Object.keys(ye);console.log(` Registered ${e.length} hook events:`);for(let n of e){let r=ye[n];console.log(` ${n} \u2192 ${r}`)}console.log(`
146
+ `);let t=Ee();if(!t)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let e=he();console.log(` Using Bun runtime: ${e}`),console.log(` Worker service: ${t}`);try{let n={};for(let i of Object.keys(ye)){let o=Ki(e,t,i);n[i]=[Ji(o)]}let r=hn(),s=Vi(r,n);return Yi(s),0}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`
147
+ Installation failed: ${r}`),1}}function Yi(t){nr(t),console.log(` Merged hooks into ${I}`),Xi(),console.log(` Setup context injection in ${J}`);let e=Object.keys(ye);console.log(` Registered ${e.length} hook events:`);for(let n of e){let r=ye[n];console.log(` ${n} \u2192 ${r}`)}console.log(`
148
148
  Installation complete!
149
149
 
150
- Hooks installed to: ${M}
150
+ Hooks installed to: ${I}
151
151
  Using unified CLI: bun worker-service.cjs hook gemini-cli <event>
152
152
 
153
153
  Next steps:
@@ -158,21 +158,21 @@ Next steps:
158
158
  Context Injection:
159
159
  Context from past sessions is injected via ~/.gemini/GEMINI.md
160
160
  and automatically included in Gemini CLI conversations.
161
- `)}function tr(){if(console.log(`
161
+ `)}function rr(){if(console.log(`
162
162
  Uninstalling Claude-Mem Gemini CLI hooks...
163
- `),!Fe(M))return console.log(" No Gemini CLI settings found \u2014 nothing to uninstall."),0;try{let t=En();if(!t.hooks)return console.log(" No hooks found in Gemini CLI settings \u2014 nothing to uninstall."),0;let e=0;for(let[n,r]of Object.entries(t.hooks)){let s=r.map(i=>{let o=i.hooks.filter(u=>u.name!==Ke);return e+=i.hooks.length-o.length,{...i,hooks:o}}).filter(i=>i.hooks.length>0);s.length>0?t.hooks[n]=s:delete t.hooks[n]}return Object.keys(t.hooks).length===0&&delete t.hooks,Ni(t,e),0}catch(t){let e=t instanceof Error?t.message:String(t);return console.error(`
164
- Uninstallation failed: ${e}`),1}}function Ni(t,e){if(Qo(t),console.log(` Removed ${e} claude-mem hook(s) from ${M}`),Fe(J)){let n=At(J,"utf-8"),r=/\n?<claude-mem-context>[\s\S]*?<\/claude-mem-context>\n?/;r.test(n)&&(n=n.replace(r,""),Cn(J,n),console.log(` Removed context section from ${J}`))}console.log(`
163
+ `),!Fe(I))return console.log(" No Gemini CLI settings found \u2014 nothing to uninstall."),0;try{let t=hn();if(!t.hooks)return console.log(" No hooks found in Gemini CLI settings \u2014 nothing to uninstall."),0;let e=0;for(let[n,r]of Object.entries(t.hooks)){let s=r.map(i=>{let o=i.hooks.filter(u=>u.name!==Je);return e+=i.hooks.length-o.length,{...i,hooks:o}}).filter(i=>i.hooks.length>0);s.length>0?t.hooks[n]=s:delete t.hooks[n]}return Object.keys(t.hooks).length===0&&delete t.hooks,qi(t,e),0}catch(t){let e=t instanceof Error?t.message:String(t);return console.error(`
164
+ Uninstallation failed: ${e}`),1}}function qi(t,e){if(nr(t),console.log(` Removed ${e} claude-mem hook(s) from ${I}`),Fe(J)){let n=bt(J,"utf-8"),r=/\n?<claude-mem-context>[\s\S]*?<\/claude-mem-context>\n?/;r.test(n)&&(n=n.replace(r,""),En(J,n),console.log(` Removed context section from ${J}`))}console.log(`
165
165
  Uninstallation complete!
166
- `),console.log("Restart Gemini CLI to apply changes.")}function nr(){if(console.log(`
166
+ `),console.log("Restart Gemini CLI to apply changes.")}function sr(){if(console.log(`
167
167
  Claude-Mem Gemini CLI Hooks Status
168
- `),!Fe(M))return console.log("Gemini CLI settings: Not found"),console.log(` Expected at: ${M}
168
+ `),!Fe(I))return console.log("Gemini CLI settings: Not found"),console.log(` Expected at: ${I}
169
169
  `),console.log(`No hooks installed. Run: claude-mem install --ide gemini-cli
170
- `),0;let t;try{t=En()}catch(n){let r=n instanceof Error?n.message:String(n);return n instanceof Error?D.error("WORKER","Failed to read Gemini CLI settings",{path:M},n):D.error("WORKER","Failed to read Gemini CLI settings",{path:M},new Error(String(n))),console.log(`Gemini CLI settings: ${r}
170
+ `),0;let t;try{t=hn()}catch(n){let r=n instanceof Error?n.message:String(n);return n instanceof Error?D.error("WORKER","Failed to read Gemini CLI settings",{path:I},n):D.error("WORKER","Failed to read Gemini CLI settings",{path:I},new Error(String(n))),console.log(`Gemini CLI settings: ${r}
171
171
  `),0}if(!t.hooks)return console.log(`Gemini CLI settings: Found, but no hooks configured
172
172
  `),console.log(`No hooks installed. Run: claude-mem install --ide gemini-cli
173
- `),0;let e=[];for(let[n,r]of Object.entries(t.hooks))r.some(i=>i.hooks.some(o=>o.name===Ke))&&e.push(n);if(e.length===0)return console.log(`Gemini CLI settings: Found, but no claude-mem hooks
173
+ `),0;let e=[];for(let[n,r]of Object.entries(t.hooks))r.some(i=>i.hooks.some(o=>o.name===Je))&&e.push(n);if(e.length===0)return console.log(`Gemini CLI settings: Found, but no claude-mem hooks
174
174
  `),console.log(`Run: claude-mem install --ide gemini-cli
175
- `),0;console.log(`Settings: ${M}`),console.log("Mode: Unified CLI (bun worker-service.cjs hook gemini-cli)"),console.log(`Events: ${e.length} of ${Object.keys(ye).length} mapped`);for(let n of e){let r=ye[n]??"unknown";console.log(` ${n} \u2192 ${r}`)}return Fe(J)?At(J,"utf-8").includes("<claude-mem-context>")?console.log(`Context: Active (${J})`):console.log("Context: GEMINI.md exists but missing claude-mem section"):console.log("Context: No GEMINI.md found"),console.log(""),0}async function Ui(t,e){switch(t){case"install":return er();case"uninstall":return tr();case"status":return nr();default:return console.log(`
175
+ `),0;console.log(`Settings: ${I}`),console.log("Mode: Unified CLI (bun worker-service.cjs hook gemini-cli)"),console.log(`Events: ${e.length} of ${Object.keys(ye).length} mapped`);for(let n of e){let r=ye[n]??"unknown";console.log(` ${n} \u2192 ${r}`)}return Fe(J)?bt(J,"utf-8").includes("<claude-mem-context>")?console.log(`Context: Active (${J})`):console.log("Context: GEMINI.md exists but missing claude-mem section"):console.log("Context: No GEMINI.md found"),console.log(""),0}async function zi(t,e){switch(t){case"install":return or();case"uninstall":return rr();case"status":return sr();default:return console.log(`
176
176
  Claude-Mem Gemini CLI Integration
177
177
 
178
178
  Usage: claude-mem gemini-cli <command>
@@ -188,36 +188,36 @@ Examples:
188
188
  claude-mem gemini-cli uninstall # Remove hooks
189
189
 
190
190
  For more info: https://docs.claude-mem.ai/usage/gemini-provider
191
- `),0}}var bt,M,J,Ke,Ri,ye,Fn=f(()=>{"use strict";X();He();bt=fn.join(Oi(),".gemini"),M=fn.join(bt,"settings.json"),J=fn.join(bt,"GEMINI.md"),Ke="claude-mem",Ri=1e4,ye={SessionStart:"context",BeforeAgent:"session-init",AfterAgent:"observation",BeforeTool:"observation",AfterTool:"observation",PreCompress:"summarize",Notification:"observation",SessionEnd:"session-complete"}});import Wi from"path";import{existsSync as Gi,readFileSync as Hi,writeFileSync as yn,mkdirSync as Ki}from"fs";function kt(t,e,n){let r=Wi.dirname(t);Ki(r,{recursive:!0});let s=`${Je}
191
+ `),0}}var kt,I,J,Je,Hi,ye,yn=f(()=>{"use strict";X();Ke();kt=Cn.join(Gi(),".gemini"),I=Cn.join(kt,"settings.json"),J=Cn.join(kt,"GEMINI.md"),Je="claude-mem",Hi=1e4,ye={SessionStart:"context",BeforeAgent:"session-init",AfterAgent:"observation",BeforeTool:"observation",AfterTool:"observation",PreCompress:"summarize",Notification:"observation",SessionEnd:"session-complete"}});import Zi from"path";import{existsSync as Qi,readFileSync as eu,writeFileSync as xn,mkdirSync as tu}from"fs";function $t(t,e,n){let r=Zi.dirname(t);tu(r,{recursive:!0});let s=`${Ve}
192
192
  ${e}
193
- ${xe}`;if(Gi(t)){let i=Hi(t,"utf-8"),o=i.indexOf(Je),u=i.indexOf(xe);o!==-1&&u!==-1?i=i.slice(0,o)+s+i.slice(u+xe.length):i=i.trimEnd()+`
193
+ ${xe}`;if(Qi(t)){let i=eu(t,"utf-8"),o=i.indexOf(Ve),u=i.indexOf(xe);o!==-1&&u!==-1?i=i.slice(0,o)+s+i.slice(u+xe.length):i=i.trimEnd()+`
194
194
 
195
195
  `+s+`
196
- `,yn(t,i,"utf-8")}else n?yn(t,`${n}
196
+ `,xn(t,i,"utf-8")}else n?xn(t,`${n}
197
197
 
198
198
  ${s}
199
- `,"utf-8"):yn(t,s+`
200
- `,"utf-8")}var Je,xe,xn=f(()=>{"use strict";Je="<claude-mem-context>",xe="</claude-mem-context>"});var _n={};V(_n,{checkOpenCodeStatus:()=>tu,findBuiltPluginPath:()=>ir,getInstalledPluginPath:()=>Xe,getOpenCodeAgentsMdPath:()=>Ve,getOpenCodeConfigDirectory:()=>$t,getOpenCodePluginsDirectory:()=>vn,injectContextIntoAgentsMd:()=>Sn,installOpenCodeIntegration:()=>nu,installOpenCodePlugin:()=>ur,syncContextToAgentsMd:()=>qi,uninstallOpenCodePlugin:()=>eu});import te from"path";import{homedir as or}from"os";import{fileURLToPath as Ji}from"url";import{existsSync as ve,readFileSync as rr,writeFileSync as Vi,mkdirSync as Xi,copyFileSync as Yi,unlinkSync as sr}from"fs";function $t(){return process.env.OPENCODE_CONFIG_DIR?process.env.OPENCODE_CONFIG_DIR:te.join(or(),".config","opencode")}function vn(){return te.join($t(),"plugins")}function Ve(){return te.join($t(),"AGENTS.md")}function Xe(){return te.join(vn(),"claude-mem.js")}function ir(){let t=[te.join(process.env.CLAUDE_CONFIG_DIR||te.join(or(),".claude"),"plugins","marketplaces","thedotmack","dist","opencode-plugin","index.js"),te.join(te.dirname(Ji(import.meta.url)),"..","..","..","dist","opencode-plugin","index.js")];for(let e of t)if(ve(e))return e;return null}function ur(){let t=ir();if(!t)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 e=vn(),n=Xe();try{return Xi(e,{recursive:!0}),Yi(t,n),console.log(` Plugin installed to: ${n}`),D.info("OPENCODE","Plugin installed",{destination:n}),0}catch(r){let s=r instanceof Error?r.message:String(r);return console.error(`Failed to install OpenCode plugin: ${s}`),1}}function Sn(t){let e=Ve();try{return kt(e,t,"# Claude-Mem Memory Context"),D.info("OPENCODE","Context injected into AGENTS.md",{path:e}),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 qi(t,e){try{await Zi(t,e)}catch(n){n instanceof Error?D.debug("WORKER","Worker not available during context sync",{},n):D.debug("WORKER","Worker not available during context sync",{},new Error(String(n)))}}async function zi(){let t=We();if(!(await fetch(`http://127.0.0.1:${t}/api/readiness`)).ok)return null;let n=await fetch(`http://127.0.0.1:${t}/api/context/inject?project=opencode`);if(!n.ok)return null;let r=await n.text();return r&&r.trim()?r:null}async function Zi(t,e){let n=await fetch(`http://127.0.0.1:${t}/api/context/inject?project=${encodeURIComponent(e)}`);if(!n.ok)return;let r=await n.text();r&&r.trim()&&Sn(r)!==0&&D.warn("OPENCODE","Failed to inject context into AGENTS.md during sync")}function Qi(t,e){e.length===0||e==="# Claude-Mem Memory Context"?(sr(t),console.log(" Removed empty AGENTS.md")):(Vi(t,e+`
201
- `,"utf-8"),console.log(" Cleaned context from AGENTS.md"))}function eu(){let t=!1,e=Xe();if(ve(e))try{sr(e),console.log(` Removed plugin: ${e}`)}catch(r){let s=r instanceof Error?r.message:String(r);console.error(` Failed to remove plugin: ${s}`),t=!0}let n=Ve();if(ve(n)){let r;try{r=rr(n,"utf-8")}catch(o){let u=o instanceof Error?o.message:String(o);console.error(` Failed to read AGENTS.md: ${u}`),t=!0,r=""}let s=r.indexOf(Je),i=r.indexOf(xe);if(s!==-1&&i!==-1){r=r.slice(0,s).trimEnd()+`
202
- `+r.slice(i+xe.length).trimStart();let o=r.trim();try{Qi(n,o)}catch(u){let c=u instanceof Error?u.message:String(u);console.error(` Failed to clean AGENTS.md: ${c}`),t=!0}}}return t?1:0}function tu(){console.log(`
199
+ `,"utf-8"):xn(t,s+`
200
+ `,"utf-8")}var Ve,xe,Sn=f(()=>{"use strict";Ve="<claude-mem-context>",xe="</claude-mem-context>"});var wn={};V(wn,{checkOpenCodeStatus:()=>Du,findBuiltPluginPath:()=>cr,getInstalledPluginPath:()=>Ye,getOpenCodeAgentsMdPath:()=>Xe,getOpenCodeConfigDirectory:()=>Mt,getOpenCodePluginsDirectory:()=>vn,injectContextIntoAgentsMd:()=>_n,installOpenCodeIntegration:()=>du,installOpenCodePlugin:()=>lr,syncContextToAgentsMd:()=>iu,uninstallOpenCodePlugin:()=>lu});import te from"path";import{homedir as ir}from"os";import{fileURLToPath as nu}from"url";import{existsSync as Se,readFileSync as ur,writeFileSync as ou,mkdirSync as ru,copyFileSync as su,unlinkSync as ar}from"fs";function Mt(){return process.env.OPENCODE_CONFIG_DIR?process.env.OPENCODE_CONFIG_DIR:te.join(ir(),".config","opencode")}function vn(){return te.join(Mt(),"plugins")}function Xe(){return te.join(Mt(),"AGENTS.md")}function Ye(){return te.join(vn(),"claude-mem.js")}function cr(){let t=[te.join(process.env.CLAUDE_CONFIG_DIR||te.join(ir(),".claude"),"plugins","marketplaces","thedotmack","dist","opencode-plugin","index.js"),te.join(te.dirname(nu(import.meta.url)),"..","..","..","dist","opencode-plugin","index.js")];for(let e of t)if(Se(e))return e;return null}function lr(){let t=cr();if(!t)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 e=vn(),n=Ye();try{return ru(e,{recursive:!0}),su(t,n),console.log(` Plugin installed to: ${n}`),D.info("OPENCODE","Plugin installed",{destination:n}),0}catch(r){let s=r instanceof Error?r.message:String(r);return console.error(`Failed to install OpenCode plugin: ${s}`),1}}function _n(t){let e=Xe();try{return $t(e,t,"# Claude-Mem Memory Context"),D.info("OPENCODE","Context injected into AGENTS.md",{path:e}),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 iu(t,e){try{await au(t,e)}catch(n){n instanceof Error?D.debug("WORKER","Worker not available during context sync",{},n):D.debug("WORKER","Worker not available during context sync",{},new Error(String(n)))}}async function uu(){let t=Ge();if(!(await fetch(`http://127.0.0.1:${t}/api/readiness`)).ok)return null;let n=await fetch(`http://127.0.0.1:${t}/api/context/inject?project=opencode`);if(!n.ok)return null;let r=await n.text();return r&&r.trim()?r:null}async function au(t,e){let n=await fetch(`http://127.0.0.1:${t}/api/context/inject?project=${encodeURIComponent(e)}`);if(!n.ok)return;let r=await n.text();r&&r.trim()&&_n(r)!==0&&D.warn("OPENCODE","Failed to inject context into AGENTS.md during sync")}function cu(t,e){e.length===0||e==="# Claude-Mem Memory Context"?(ar(t),console.log(" Removed empty AGENTS.md")):(ou(t,e+`
201
+ `,"utf-8"),console.log(" Cleaned context from AGENTS.md"))}function lu(){let t=!1,e=Ye();if(Se(e))try{ar(e),console.log(` Removed plugin: ${e}`)}catch(r){let s=r instanceof Error?r.message:String(r);console.error(` Failed to remove plugin: ${s}`),t=!0}let n=Xe();if(Se(n)){let r;try{r=ur(n,"utf-8")}catch(o){let u=o instanceof Error?o.message:String(o);console.error(` Failed to read AGENTS.md: ${u}`),t=!0,r=""}let s=r.indexOf(Ve),i=r.indexOf(xe);if(s!==-1&&i!==-1){r=r.slice(0,s).trimEnd()+`
202
+ `+r.slice(i+xe.length).trimStart();let o=r.trim();try{cu(n,o)}catch(u){let c=u instanceof Error?u.message:String(u);console.error(` Failed to clean AGENTS.md: ${c}`),t=!0}}}return t?1:0}function Du(){console.log(`
203
203
  Claude-Mem OpenCode Integration Status
204
- `);let t=$t(),e=Xe(),n=Ve();if(console.log(`Config directory: ${t}`),console.log(` Exists: ${ve(t)?"yes":"no"}`),console.log(""),console.log(`Plugin: ${e}`),console.log(` Installed: ${ve(e)?"yes":"no"}`),console.log(""),console.log(`Context (AGENTS.md): ${n}`),ve(n)){let s=rr(n,"utf-8").includes(Je);console.log(" Exists: yes"),console.log(` Has claude-mem context: ${s?"yes":"no"}`)}else console.log(" Exists: no");return console.log(""),0}async function nu(){console.log(`
204
+ `);let t=Mt(),e=Ye(),n=Xe();if(console.log(`Config directory: ${t}`),console.log(` Exists: ${Se(t)?"yes":"no"}`),console.log(""),console.log(`Plugin: ${e}`),console.log(` Installed: ${Se(e)?"yes":"no"}`),console.log(""),console.log(`Context (AGENTS.md): ${n}`),Se(n)){let s=ur(n,"utf-8").includes(Ve);console.log(" Exists: yes"),console.log(` Has claude-mem context: ${s?"yes":"no"}`)}else console.log(" Exists: no");return console.log(""),0}async function du(){console.log(`
205
205
  Installing Claude-Mem for OpenCode...
206
- `);let t=ur();if(t!==0)return t;let n=`# Memory Context from Past Sessions
206
+ `);let t=lr();if(t!==0)return t;let n=`# Memory Context from Past Sessions
207
207
 
208
208
  *No context yet. Complete your first session and context will appear here.*
209
209
 
210
- Use claude-mem search tools for manual memory queries.`,r="placeholder";try{let i=await zi();i&&(n=i,r="existing memory")}catch(i){i instanceof Error?D.debug("WORKER","Worker not available during OpenCode install",{},i):D.debug("WORKER","Worker not available during OpenCode install",{},new Error(String(i)))}return Sn(n)!==0?D.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(`
210
+ Use claude-mem search tools for manual memory queries.`,r="placeholder";try{let i=await uu();i&&(n=i,r="existing memory")}catch(i){i instanceof Error?D.debug("WORKER","Worker not available during OpenCode install",{},i):D.debug("WORKER","Worker not available during OpenCode install",{},new Error(String(i)))}return _n(n)!==0?D.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(`
211
211
  Installation complete!
212
212
 
213
- Plugin installed to: ${Xe()}
214
- Context file: ${Ve()}
213
+ Plugin installed to: ${Ye()}
214
+ Context file: ${Xe()}
215
215
 
216
216
  Next steps:
217
217
  1. Start claude-mem worker: npx claude-mem start
218
218
  2. Restart OpenCode to load the plugin
219
219
  3. Memory capture is automatic from then on
220
- `),0}var wn=f(()=>{"use strict";X();xn();vt()});var kn={};V(kn,{checkWindsurfHooksStatus:()=>gr,handleWindsurfCommand:()=>mu,installWindsurfHooks:()=>mr,readWindsurfRegistry:()=>Rt,registerWindsurfProject:()=>Dr,uninstallWindsurfHooks:()=>pr,unregisterWindsurfProject:()=>dr,updateWindsurfContextForProject:()=>su,writeWindsurfContextFile:()=>bn,writeWindsurfRegistry:()=>An});import L from"path";import{homedir as ou}from"os";import{existsSync as _e,readFileSync as It,writeFileSync as Ye,unlinkSync as cr,mkdirSync as Ot,renameSync as ru}from"fs";function Rt(){try{return _e(Se)?JSON.parse(It(Se,"utf-8")):{}}catch(t){return t instanceof Error?D.error("WORKER","Failed to read registry, using empty",{file:Se},t):D.error("WORKER","Failed to read registry, using empty",{file:Se},new Error(String(t))),{}}}function An(t){let e=L.dirname(Se);Ot(e,{recursive:!0}),Ye(Se,JSON.stringify(t,null,2))}function Dr(t){let e=Rt();e[t]={installedAt:new Date().toISOString()},An(e),D.info("WINDSURF","Registered project for auto-context updates",{workspacePath:t})}function dr(t){let e=Rt();e[t]&&(delete e[t],An(e),D.info("WINDSURF","Unregistered project",{workspacePath:t}))}async function su(t,e,n){if(Rt()[e])try{let i=await fetch(`http://127.0.0.1:${n}/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let o=await i.text();if(!o||!o.trim())return;bn(e,o),D.debug("WINDSURF","Updated context file",{projectName:t,workspacePath:e})}catch(i){i instanceof Error?D.error("WORKER","Failed to update context file",{projectName:t,workspacePath:e},i):D.error("WORKER","Failed to update context file",{projectName:t,workspacePath:e},new Error(String(i)))}}function bn(t,e){let n=L.join(t,".windsurf","rules"),r=L.join(n,"claude-mem-context.md"),s=`${r}.tmp`;Ot(n,{recursive:!0});let i=`# Memory Context from Past Sessions
220
+ `),0}var An=f(()=>{"use strict";X();Sn();vt()});var $n={};V($n,{checkWindsurfHooksStatus:()=>Er,handleWindsurfCommand:()=>Su,installWindsurfHooks:()=>fr,readWindsurfRegistry:()=>Tt,registerWindsurfProject:()=>pr,uninstallWindsurfHooks:()=>Cr,unregisterWindsurfProject:()=>gr,updateWindsurfContextForProject:()=>gu,writeWindsurfContextFile:()=>kn,writeWindsurfRegistry:()=>bn});import L from"path";import{homedir as mu}from"os";import{existsSync as _e,readFileSync as Ot,writeFileSync as qe,unlinkSync as dr,mkdirSync as Rt,renameSync as pu}from"fs";function Tt(){try{return _e(ve)?JSON.parse(Ot(ve,"utf-8")):{}}catch(t){return t instanceof Error?D.error("WORKER","Failed to read registry, using empty",{file:ve},t):D.error("WORKER","Failed to read registry, using empty",{file:ve},new Error(String(t))),{}}}function bn(t){let e=L.dirname(ve);Rt(e,{recursive:!0}),qe(ve,JSON.stringify(t,null,2))}function pr(t){let e=Tt();e[t]={installedAt:new Date().toISOString()},bn(e),D.info("WINDSURF","Registered project for auto-context updates",{workspacePath:t})}function gr(t){let e=Tt();e[t]&&(delete e[t],bn(e),D.info("WINDSURF","Unregistered project",{workspacePath:t}))}async function gu(t,e,n){if(Tt()[e])try{let i=await fetch(`http://127.0.0.1:${n}/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let o=await i.text();if(!o||!o.trim())return;kn(e,o),D.debug("WINDSURF","Updated context file",{projectName:t,workspacePath:e})}catch(i){i instanceof Error?D.error("WORKER","Failed to update context file",{projectName:t,workspacePath:e},i):D.error("WORKER","Failed to update context file",{projectName:t,workspacePath:e},new Error(String(i)))}}function kn(t,e){let n=L.join(t,".windsurf","rules"),r=L.join(n,"claude-mem-context.md"),s=`${r}.tmp`;Rt(n,{recursive:!0});let i=`# Memory Context from Past Sessions
221
221
 
222
222
  The following context is from claude-mem, a persistent memory system that tracks your coding sessions.
223
223
 
@@ -225,13 +225,13 @@ ${e}
225
225
 
226
226
  ---
227
227
  *Auto-updated by claude-mem after each session. Use MCP search tools for detailed queries.*
228
- `;i.length>ar&&(i=i.slice(0,ar-50)+`
228
+ `;i.length>Dr&&(i=i.slice(0,Dr-50)+`
229
229
 
230
230
  *[Truncated \u2014 use MCP search for full history]*
231
- `),Ye(s,i),ru(s,r)}function iu(t,e,n){let s={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`"${t}" "${e}" hook windsurf ${s}`}function uu(t,e,n){Ot(lr,{recursive:!0});let r={hooks:{}};if(_e(_))try{r=JSON.parse(It(_,"utf-8")),r.hooks||(r.hooks={})}catch(s){throw s instanceof Error?D.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:_},s):D.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:_},new Error(String(s))),new Error(`Corrupt hooks.json at ${_}, refusing to overwrite`)}for(let s of Mt){let o={command:iu(t,e,s),show_output:!1,working_directory:n},u=(r.hooks[s]??[]).filter(c=>!c.command.includes("worker-service")||!c.command.includes("windsurf"));r.hooks[s]=[...u,o]}Ye(_,JSON.stringify(r,null,2))}async function mr(){console.log(`
231
+ `),qe(s,i),pu(s,r)}function fu(t,e,n){let s={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`"${t}" "${e}" hook windsurf ${s}`}function Cu(t,e,n){Rt(mr,{recursive:!0});let r={hooks:{}};if(_e(_))try{r=JSON.parse(Ot(_,"utf-8")),r.hooks||(r.hooks={})}catch(s){throw s instanceof Error?D.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:_},s):D.error("WORKER","Corrupt hooks.json, refusing to overwrite",{path:_},new Error(String(s))),new Error(`Corrupt hooks.json at ${_}, refusing to overwrite`)}for(let s of It){let o={command:fu(t,e,s),show_output:!1,working_directory:n},u=(r.hooks[s]??[]).filter(c=>!c.command.includes("worker-service")||!c.command.includes("windsurf"));r.hooks[s]=[...u,o]}qe(_,JSON.stringify(r,null,2))}async function fr(){console.log(`
232
232
  Installing Claude-Mem Windsurf hooks (user level)...
233
- `);let t=Ee();if(!t)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let e=he();if(!e)return console.error("Could not find Bun runtime"),console.error(" Install Bun: curl -fsSL https://bun.sh/install | bash"),1;let n=L.dirname(t);console.log(` Using Bun runtime: ${e}`),console.log(` Worker service: ${t}`);let r=process.cwd();try{return await au(e,t,n,r),0}catch(s){let i=s instanceof Error?s.message:String(s);return console.error(`
234
- Installation failed: ${i}`),1}}async function au(t,e,n,r){uu(t,e,n),console.log(" Created/merged hooks.json"),await cu(r),console.log(`
233
+ `);let t=Ee();if(!t)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let e=he();if(!e)return console.error("Could not find Bun runtime"),console.error(" Install Bun: curl -fsSL https://bun.sh/install | bash"),1;let n=L.dirname(t);console.log(` Using Bun runtime: ${e}`),console.log(` Worker service: ${t}`);let r=process.cwd();try{return await Eu(e,t,n,r),0}catch(s){let i=s instanceof Error?s.message:String(s);return console.error(`
234
+ Installation failed: ${i}`),1}}async function Eu(t,e,n,r){Cu(t,e,n),console.log(" Created/merged hooks.json"),await hu(r),console.log(`
235
235
  Installation complete!
236
236
 
237
237
  Hooks installed to: ${_}
@@ -248,21 +248,21 @@ Next steps:
248
248
  1. Start claude-mem worker: claude-mem start
249
249
  2. Restart Windsurf to load the hooks
250
250
  3. Context is injected via .windsurf/rules/claude-mem-context.md (workspace-level)
251
- `)}async function cu(t){let e=We(),n=L.basename(t),r=!1;console.log(" Generating initial context...");try{r=await lu(e,n,t)}catch(s){s instanceof Error?D.debug("WORKER","Worker not running during install",{},s):D.debug("WORKER","Worker not running during install",{},new Error(String(s)))}if(!r){let s=L.join(t,".windsurf","rules");Ot(s,{recursive:!0});let i=L.join(s,"claude-mem-context.md");Ye(i,`# Memory Context from Past Sessions
251
+ `)}async function hu(t){let e=Ge(),n=L.basename(t),r=!1;console.log(" Generating initial context...");try{r=await Fu(e,n,t)}catch(s){s instanceof Error?D.debug("WORKER","Worker not running during install",{},s):D.debug("WORKER","Worker not running during install",{},new Error(String(s)))}if(!r){let s=L.join(t,".windsurf","rules");Rt(s,{recursive:!0});let i=L.join(s,"claude-mem-context.md");qe(i,`# Memory Context from Past Sessions
252
252
 
253
253
  *No context yet. Complete your first session and context will appear here.*
254
254
 
255
255
  Use claude-mem's MCP search tools for manual memory queries.
256
- `),console.log(" Created placeholder context file (will populate after first session)")}Dr(t),console.log(" Registered for auto-context updates")}async function lu(t,e,n){if(!(await fetch(`http://127.0.0.1:${t}/api/readiness`)).ok)return!1;let s=await fetch(`http://127.0.0.1:${t}/api/context/inject?project=${encodeURIComponent(e)}`);if(!s.ok)return!1;let i=await s.text();return i&&i.trim()?(bn(n,i),console.log(" Generated initial context from existing memory"),!0):!1}function pr(){if(console.log(`
256
+ `),console.log(" Created placeholder context file (will populate after first session)")}pr(t),console.log(" Registered for auto-context updates")}async function Fu(t,e,n){if(!(await fetch(`http://127.0.0.1:${t}/api/readiness`)).ok)return!1;let s=await fetch(`http://127.0.0.1:${t}/api/context/inject?project=${encodeURIComponent(e)}`);if(!s.ok)return!1;let i=await s.text();return i&&i.trim()?(kn(n,i),console.log(" Generated initial context from existing memory"),!0):!1}function Cr(){if(console.log(`
257
257
  Uninstalling Claude-Mem Windsurf hooks...
258
- `),_e(_))try{Du()}catch(e){e instanceof Error?D.error("WORKER","Could not parse hooks.json during uninstall",{path:_},e):D.error("WORKER","Could not parse hooks.json during uninstall",{path:_},new Error(String(e))),console.log(" Warning: could not parse hooks.json \u2014 leaving file intact to preserve other hooks")}else console.log(" No hooks.json found");let t=process.cwd();try{return du(t),0}catch(e){let n=e instanceof Error?e.message:String(e);return console.error(`
259
- Uninstallation failed: ${n}`),1}}function Du(){let e={hooks:JSON.parse(It(_,"utf-8")).hooks??{}};for(let n of Mt){let r=e.hooks[n]??[];r.length>0&&(e.hooks[n]=r.filter(s=>!s.command.includes("worker-service")||!s.command.includes("windsurf")),e.hooks[n].length===0&&delete e.hooks[n])}Object.keys(e.hooks).length===0?(cr(_),console.log(" Removed hooks.json (no hooks remaining)")):(Ye(_,JSON.stringify(e,null,2)),console.log(" Removed claude-mem entries from hooks.json (other hooks preserved)"))}function du(t){let e=L.join(t,".windsurf","rules","claude-mem-context.md");_e(e)&&(cr(e),console.log(" Removed context file")),dr(t),console.log(" Unregistered from auto-context updates"),console.log(`
258
+ `),_e(_))try{yu()}catch(e){e instanceof Error?D.error("WORKER","Could not parse hooks.json during uninstall",{path:_},e):D.error("WORKER","Could not parse hooks.json during uninstall",{path:_},new Error(String(e))),console.log(" Warning: could not parse hooks.json \u2014 leaving file intact to preserve other hooks")}else console.log(" No hooks.json found");let t=process.cwd();try{return xu(t),0}catch(e){let n=e instanceof Error?e.message:String(e);return console.error(`
259
+ Uninstallation failed: ${n}`),1}}function yu(){let e={hooks:JSON.parse(Ot(_,"utf-8")).hooks??{}};for(let n of It){let r=e.hooks[n]??[];r.length>0&&(e.hooks[n]=r.filter(s=>!s.command.includes("worker-service")||!s.command.includes("windsurf")),e.hooks[n].length===0&&delete e.hooks[n])}Object.keys(e.hooks).length===0?(dr(_),console.log(" Removed hooks.json (no hooks remaining)")):(qe(_,JSON.stringify(e,null,2)),console.log(" Removed claude-mem entries from hooks.json (other hooks preserved)"))}function xu(t){let e=L.join(t,".windsurf","rules","claude-mem-context.md");_e(e)&&(dr(e),console.log(" Removed context file")),gr(t),console.log(" Unregistered from auto-context updates"),console.log(`
260
260
  Uninstallation complete!
261
- `),console.log("Restart Windsurf to apply changes.")}function gr(){if(console.log(`
261
+ `),console.log("Restart Windsurf to apply changes.")}function Er(){if(console.log(`
262
262
  Claude-Mem Windsurf Hooks Status
263
- `),_e(_)){console.log("User-level: Installed"),console.log(` Config: ${_}`);let t=null;try{t=JSON.parse(It(_,"utf-8"))}catch(n){let r=n instanceof Error?n:new Error(String(n));D.error("WORKER","Unable to parse hooks.json",{path:_},r),console.log(" Mode: Unable to parse hooks.json")}if(t){let n=Mt.filter(r=>(t?.hooks?.[r]??[]).some(s=>s.command.includes("worker-service")&&s.command.includes("windsurf")));console.log(` Events: ${n.length}/${Mt.length} registered`);for(let r of n)console.log(` - ${r}`)}let e=L.join(process.cwd(),".windsurf","rules","claude-mem-context.md");_e(e)?console.log(" Context: Active (current workspace)"):console.log(" Context: Not yet generated for this workspace")}else console.log("User-level: Not installed"),console.log(`
263
+ `),_e(_)){console.log("User-level: Installed"),console.log(` Config: ${_}`);let t=null;try{t=JSON.parse(Ot(_,"utf-8"))}catch(n){let r=n instanceof Error?n:new Error(String(n));D.error("WORKER","Unable to parse hooks.json",{path:_},r),console.log(" Mode: Unable to parse hooks.json")}if(t){let n=It.filter(r=>(t?.hooks?.[r]??[]).some(s=>s.command.includes("worker-service")&&s.command.includes("windsurf")));console.log(` Events: ${n.length}/${It.length} registered`);for(let r of n)console.log(` - ${r}`)}let e=L.join(process.cwd(),".windsurf","rules","claude-mem-context.md");_e(e)?console.log(" Context: Active (current workspace)"):console.log(" Context: Not yet generated for this workspace")}else console.log("User-level: Not installed"),console.log(`
264
264
  No hooks installed. Run: claude-mem windsurf install
265
- `);return console.log(""),0}async function mu(t,e){switch(t){case"install":return mr();case"uninstall":return pr();case"status":return gr();default:return console.log(`
265
+ `);return console.log(""),0}async function Su(t,e){switch(t){case"install":return fr();case"uninstall":return Cr();case"status":return Er();default:return console.log(`
266
266
  Claude-Mem Windsurf Integration
267
267
 
268
268
  Usage: claude-mem windsurf <command>
@@ -278,13 +278,13 @@ Examples:
278
278
  claude-mem windsurf status # Check if hooks are installed
279
279
 
280
280
  For more info: https://docs.claude-mem.ai/windsurf
281
- `),0}}var lr,_,ar,Se,Mt,$n=f(()=>{"use strict";X();vt();ht();He();lr=L.join(ou(),".codeium","windsurf"),_=L.join(lr,"hooks.json"),ar=6e3,Se=L.join(T,"windsurf-projects.json"),Mt=["pre_user_prompt","post_write_code","post_run_command","post_mcp_tool_use","post_cascade_response"]});var On={};V(On,{checkOpenClawStatus:()=>Fu,findPluginManifestPath:()=>Fr,findPluginSkillsDirectory:()=>yr,findPreBuiltPluginDirectory:()=>hr,getOpenClawClaudeMemExtensionDirectory:()=>ze,getOpenClawConfigDirectory:()=>qe,getOpenClawConfigFilePath:()=>we,getOpenClawExtensionsDirectory:()=>Er,installOpenClawIntegration:()=>yu,installOpenClawPlugin:()=>vr,uninstallOpenClawPlugin:()=>hu});import v from"path";import{homedir as Tt}from"os";import{existsSync as Y,readFileSync as pu,writeFileSync as fr,mkdirSync as Cr,cpSync as Mn,rmSync as gu}from"fs";function qe(){return v.join(Tt(),".openclaw")}function Er(){return v.join(qe(),"extensions")}function ze(){return v.join(Er(),"claude-mem")}function we(){return v.join(qe(),"openclaw.json")}function hr(){let t=[v.join(process.env.CLAUDE_CONFIG_DIR||v.join(Tt(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let e of t){let n=v.join(e,"openclaw","dist"),r=v.join(n,"index.js");if(Y(r))return n}return null}function Fr(){let t=[v.join(process.env.CLAUDE_CONFIG_DIR||v.join(Tt(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let e of t){let n=v.join(e,"openclaw","openclaw.plugin.json");if(Y(n))return n}return null}function yr(){let t=[v.join(process.env.CLAUDE_CONFIG_DIR||v.join(Tt(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let e of t){let n=v.join(e,"openclaw","skills");if(Y(n))return n}return null}function In(){let t=we();if(!Y(t))return{};try{return JSON.parse(pu(t,"utf-8"))}catch(e){let n=e instanceof Error?e:new Error(String(e));throw D.error("WORKER","Failed to parse openclaw.json",{path:t},n),n}}function xr(t){let e=qe();Cr(e,{recursive:!0}),fr(we(),JSON.stringify(t,null,2)+`
282
- `,"utf-8")}function fu(t=37777,e="openclaw",n=!0){let r=In();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:t,project:e,syncMemoryFile:n}};else{r.plugins.entries["claude-mem"].enabled=!0,r.plugins.entries["claude-mem"].config||(r.plugins.entries["claude-mem"].config={});let s=r.plugins.entries["claude-mem"].config;s.workerPort===void 0&&(s.workerPort=t),s.project===void 0&&(s.project=e),s.syncMemoryFile===void 0&&(s.syncMemoryFile=n)}xr(r)}function Cu(){let t=we();if(!Y(t))return;let e=In();e.plugins?.entries?.["claude-mem"]&&delete e.plugins.entries["claude-mem"],e.plugins?.slots?.memory==="claude-mem"&&delete e.plugins.slots.memory,xr(e)}function vr(){let t=hr();if(!t)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 e=ze(),n=v.join(e,"dist"),r=Fr(),s=yr(),i={name:"claude-mem",version:"1.0.0",type:"module",main:"dist/index.js",openclaw:{extensions:["./dist/index.js"]}};try{return Cr(n,{recursive:!0}),Eu(t,n,e,r,s,i),0}catch(o){let u=o instanceof Error?o.message:String(o);return console.error(`Failed to install OpenClaw plugin: ${u}`),1}}function Eu(t,e,n,r,s,i){if(Mn(t,e,{recursive:!0,force:!0}),console.log(` Plugin dist copied to: ${e}`),r){let o=v.join(n,"openclaw.plugin.json");Mn(r,o,{force:!0}),console.log(` Plugin manifest copied to: ${o}`)}if(s){let o=v.join(n,"skills");Mn(s,o,{recursive:!0,force:!0}),console.log(` Skills copied to: ${o}`)}fr(v.join(n,"package.json"),JSON.stringify(i,null,2)+`
283
- `,"utf-8"),fu(),console.log(" Registered in openclaw.json"),D.info("OPENCLAW","Plugin installed",{destination:n})}function hu(){let t=!1,e=ze();if(Y(e))try{gu(e,{recursive:!0,force:!0}),console.log(` Removed extension: ${e}`)}catch(n){let r=n instanceof Error?n.message:String(n);console.error(` Failed to remove extension directory: ${r}`),t=!0}try{Cu(),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}`),t=!0}return t?1:0}function Fu(){console.log(`
281
+ `),0}}var mr,_,Dr,ve,It,Mn=f(()=>{"use strict";X();vt();We();Ke();mr=L.join(mu(),".codeium","windsurf"),_=L.join(mr,"hooks.json"),Dr=6e3,ve=L.join(k,"windsurf-projects.json"),It=["pre_user_prompt","post_write_code","post_run_command","post_mcp_tool_use","post_cascade_response"]});var Rn={};V(Rn,{checkOpenClawStatus:()=>$u,findPluginManifestPath:()=>Sr,findPluginSkillsDirectory:()=>vr,findPreBuiltPluginDirectory:()=>xr,getOpenClawClaudeMemExtensionDirectory:()=>Ze,getOpenClawConfigDirectory:()=>ze,getOpenClawConfigFilePath:()=>we,getOpenClawExtensionsDirectory:()=>yr,installOpenClawIntegration:()=>Mu,installOpenClawPlugin:()=>wr,uninstallOpenClawPlugin:()=>ku});import S from"path";import{homedir as Bt}from"os";import{existsSync as Y,readFileSync as vu,writeFileSync as hr,mkdirSync as Fr,cpSync as In,rmSync as _u}from"fs";function ze(){return S.join(Bt(),".openclaw")}function yr(){return S.join(ze(),"extensions")}function Ze(){return S.join(yr(),"claude-mem")}function we(){return S.join(ze(),"openclaw.json")}function xr(){let t=[S.join(process.env.CLAUDE_CONFIG_DIR||S.join(Bt(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let e of t){let n=S.join(e,"openclaw","dist"),r=S.join(n,"index.js");if(Y(r))return n}return null}function Sr(){let t=[S.join(process.env.CLAUDE_CONFIG_DIR||S.join(Bt(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let e of t){let n=S.join(e,"openclaw","openclaw.plugin.json");if(Y(n))return n}return null}function vr(){let t=[S.join(process.env.CLAUDE_CONFIG_DIR||S.join(Bt(),".claude"),"plugins","marketplaces","thedotmack"),process.cwd()];for(let e of t){let n=S.join(e,"openclaw","skills");if(Y(n))return n}return null}function On(){let t=we();if(!Y(t))return{};try{return JSON.parse(vu(t,"utf-8"))}catch(e){let n=e instanceof Error?e:new Error(String(e));throw D.error("WORKER","Failed to parse openclaw.json",{path:t},n),n}}function _r(t){let e=ze();Fr(e,{recursive:!0}),hr(we(),JSON.stringify(t,null,2)+`
282
+ `,"utf-8")}function wu(t=37777,e="openclaw",n=!0){let r=On();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:t,project:e,syncMemoryFile:n}};else{r.plugins.entries["claude-mem"].enabled=!0,r.plugins.entries["claude-mem"].config||(r.plugins.entries["claude-mem"].config={});let s=r.plugins.entries["claude-mem"].config;s.workerPort===void 0&&(s.workerPort=t),s.project===void 0&&(s.project=e),s.syncMemoryFile===void 0&&(s.syncMemoryFile=n)}_r(r)}function Au(){let t=we();if(!Y(t))return;let e=On();e.plugins?.entries?.["claude-mem"]&&delete e.plugins.entries["claude-mem"],e.plugins?.slots?.memory==="claude-mem"&&delete e.plugins.slots.memory,_r(e)}function wr(){let t=xr();if(!t)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 e=Ze(),n=S.join(e,"dist"),r=Sr(),s=vr(),i={name:"claude-mem",version:"1.0.0",type:"module",main:"dist/index.js",openclaw:{extensions:["./dist/index.js"]}};try{return Fr(n,{recursive:!0}),bu(t,n,e,r,s,i),0}catch(o){let u=o instanceof Error?o.message:String(o);return console.error(`Failed to install OpenClaw plugin: ${u}`),1}}function bu(t,e,n,r,s,i){if(In(t,e,{recursive:!0,force:!0}),console.log(` Plugin dist copied to: ${e}`),r){let o=S.join(n,"openclaw.plugin.json");In(r,o,{force:!0}),console.log(` Plugin manifest copied to: ${o}`)}if(s){let o=S.join(n,"skills");In(s,o,{recursive:!0,force:!0}),console.log(` Skills copied to: ${o}`)}hr(S.join(n,"package.json"),JSON.stringify(i,null,2)+`
283
+ `,"utf-8"),wu(),console.log(" Registered in openclaw.json"),D.info("OPENCLAW","Plugin installed",{destination:n})}function ku(){let t=!1,e=Ze();if(Y(e))try{_u(e,{recursive:!0,force:!0}),console.log(` Removed extension: ${e}`)}catch(n){let r=n instanceof Error?n.message:String(n);console.error(` Failed to remove extension directory: ${r}`),t=!0}try{Au(),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}`),t=!0}return t?1:0}function $u(){console.log(`
284
284
  Claude-Mem OpenClaw Integration Status
285
- `);let t=qe(),e=ze(),n=we(),r=v.join(e,"dist","index.js");if(console.log(`Config directory: ${t}`),console.log(` Exists: ${Y(t)?"yes":"no"}`),console.log(""),console.log(`Extension directory: ${e}`),console.log(` Exists: ${Y(e)?"yes":"no"}`),console.log(` Plugin entry: ${Y(r)?"yes":"no"}`),console.log(""),console.log(`Config (openclaw.json): ${n}`),Y(n)){let s=In(),i=s.plugins?.entries?.["claude-mem"]!==void 0,o=s.plugins?.entries?.["claude-mem"]?.enabled===!0,u=s.plugins?.slots?.memory==="claude-mem";if(console.log(" Exists: yes"),console.log(` Registered: ${i?"yes":"no"}`),console.log(` Enabled: ${o?"yes":"no"}`),console.log(` Memory slot: ${u?"yes":"no"}`),i){let c=s.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 yu(){console.log(`
285
+ `);let t=ze(),e=Ze(),n=we(),r=S.join(e,"dist","index.js");if(console.log(`Config directory: ${t}`),console.log(` Exists: ${Y(t)?"yes":"no"}`),console.log(""),console.log(`Extension directory: ${e}`),console.log(` Exists: ${Y(e)?"yes":"no"}`),console.log(` Plugin entry: ${Y(r)?"yes":"no"}`),console.log(""),console.log(`Config (openclaw.json): ${n}`),Y(n)){let s=On(),i=s.plugins?.entries?.["claude-mem"]!==void 0,o=s.plugins?.entries?.["claude-mem"]?.enabled===!0,u=s.plugins?.slots?.memory==="claude-mem";if(console.log(" Exists: yes"),console.log(` Registered: ${i?"yes":"no"}`),console.log(` Enabled: ${o?"yes":"no"}`),console.log(` Memory slot: ${u?"yes":"no"}`),i){let c=s.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 Mu(){console.log(`
286
286
  Installing Claude-Mem for OpenClaw...
287
- `);let t=vr();if(t!==0)return t;let e=ze();return console.log(`
287
+ `);let t=wr();if(t!==0)return t;let e=Ze();return console.log(`
288
288
  Installation complete!
289
289
 
290
290
  Plugin installed to: ${e}
@@ -294,14 +294,14 @@ Next steps:
294
294
  1. Start claude-mem worker: npx claude-mem start
295
295
  2. Restart OpenClaw to load the plugin
296
296
  3. Memory capture is automatic from then on
297
- `),0}var Rn=f(()=>{"use strict";X()});import{existsSync as Ml,readFileSync as Il,writeFileSync as Ol,mkdirSync as Rl}from"fs";import{homedir as Sr}from"os";import{join as _r,dirname as Pl}from"path";var j,Ze,xu,Bt,wr=f(()=>{"use strict";j=_r(Sr(),".claude-mem","transcript-watch.json"),Ze=_r(Sr(),".claude-mem","transcript-watch-state.json"),xu={name:"codex",version:"0.3",description:"Schema for Codex session JSONL files under ~/.codex/sessions.",events:[{name:"session-meta",match:{path:"type",equals:"session_meta"},action:"session_context",fields:{sessionId:"payload.id",cwd:"payload.cwd"}},{name:"turn-context",match:{path:"type",equals:"turn_context"},action:"session_context",fields:{cwd:"payload.cwd"}},{name:"user-message",match:{path:"payload.type",equals:"user_message"},action:"session_init",fields:{prompt:"payload.message"}},{name:"assistant-message",match:{path:"payload.type",equals:"agent_message"},action:"assistant_message",fields:{message:"payload.message"}},{name:"tool-use",match:{path:"payload.type",in:["function_call","custom_tool_call","web_search_call","exec_command"]},action:"tool_use",fields:{toolId:"payload.call_id",toolName:{coalesce:["payload.name","payload.type",{value:"web_search"}]},toolInput:{coalesce:["payload.arguments","payload.input","payload.command","payload.action"]}}},{name:"tool-result",match:{path:"payload.type",in:["function_call_output","custom_tool_call_output","exec_command_output"]},action:"tool_result",fields:{toolId:"payload.call_id",toolResponse:"payload.output"}},{name:"session-end",match:{path:"payload.type",in:["turn_aborted","turn_completed"]},action:"session_end"}]},Bt={version:1,schemas:{codex:xu},watches:[{name:"codex",path:"~/.codex/sessions/**/*.jsonl",schema:"codex",startAtEnd:!0,context:{mode:"agents",updateOn:["session_start","session_end"]}}],stateFile:Ze}});var Bn={};V(Bn,{checkCodexCliStatus:()=>Mu,installCodexCli:()=>bu,uninstallCodexCli:()=>$u});import jt from"path";import{homedir as Ar}from"os";import{existsSync as Ae,readFileSync as Pt,writeFileSync as Lt,mkdirSync as vu}from"fs";function Tn(){let t=j;if(!Ae(t))return{version:1,schemas:{},watches:[],stateFile:Ze};try{let e=Pt(t,"utf-8"),n=JSON.parse(e);return n.version||(n.version=1),n.watches||(n.watches=[]),n.schemas||(n.schemas={}),n.stateFile||(n.stateFile=Ze),n}catch(e){e instanceof Error?D.error("WORKER","Corrupt transcript-watch.json, creating backup",{path:t},e):D.error("WORKER","Corrupt transcript-watch.json, creating backup",{path:t},new Error(String(e)));let n=`${t}.backup.${Date.now()}`;return Lt(n,Pt(t)),console.warn(` Backed up corrupt transcript-watch.json to ${n}`),{version:1,schemas:{},watches:[],stateFile:Ze}}}function _u(t){let e={...t};e.schemas={...e.schemas};let n=Bt.schemas?.[oe];n&&(e.schemas[oe]=n);let r=Bt.watches.find(s=>s.name===oe);if(r){let s=e.watches.findIndex(i=>i.name===oe);s!==-1?e.watches[s]=r:e.watches.push(r)}return e}function kr(t){vu(Su,{recursive:!0}),Lt(j,JSON.stringify(t,null,2)+`
298
- `)}function wu(){if(!Ae(ne))return;let t="<claude-mem-context>",e="</claude-mem-context>";try{Au(t,e)}catch(n){let r=n instanceof Error?n.message:String(n);D.warn("WORKER","Failed to clean AGENTS.md context",{error:r})}}function Au(t,e){let n=Pt(ne,"utf-8"),r=n.indexOf(t),s=n.indexOf(e);if(r===-1||s===-1)return;let i=n.substring(0,r).replace(/\n+$/,""),o=n.substring(s+e.length).replace(/^\n+/,""),u=(i+(o?`
297
+ `),0}var Tn=f(()=>{"use strict";X()});import{existsSync as Vl,readFileSync as Xl,writeFileSync as Yl,mkdirSync as ql}from"fs";import{homedir as Ar}from"os";import{join as br,dirname as Ql}from"path";var j,Qe,Iu,Pt,kr=f(()=>{"use strict";j=br(Ar(),".claude-mem","transcript-watch.json"),Qe=br(Ar(),".claude-mem","transcript-watch-state.json"),Iu={name:"codex",version:"0.3",description:"Schema for Codex session JSONL files under ~/.codex/sessions.",events:[{name:"session-meta",match:{path:"type",equals:"session_meta"},action:"session_context",fields:{sessionId:"payload.id",cwd:"payload.cwd"}},{name:"turn-context",match:{path:"type",equals:"turn_context"},action:"session_context",fields:{cwd:"payload.cwd"}},{name:"user-message",match:{path:"payload.type",equals:"user_message"},action:"session_init",fields:{prompt:"payload.message"}},{name:"assistant-message",match:{path:"payload.type",equals:"agent_message"},action:"assistant_message",fields:{message:"payload.message"}},{name:"tool-use",match:{path:"payload.type",in:["function_call","custom_tool_call","web_search_call","exec_command"]},action:"tool_use",fields:{toolId:"payload.call_id",toolName:{coalesce:["payload.name","payload.type",{value:"web_search"}]},toolInput:{coalesce:["payload.arguments","payload.input","payload.command","payload.action"]}}},{name:"tool-result",match:{path:"payload.type",in:["function_call_output","custom_tool_call_output","exec_command_output"]},action:"tool_result",fields:{toolId:"payload.call_id",toolResponse:"payload.output"}},{name:"session-end",match:{path:"payload.type",in:["turn_aborted","turn_completed"]},action:"session_end"}]},Pt={version:1,schemas:{codex:Iu},watches:[{name:"codex",path:"~/.codex/sessions/**/*.jsonl",schema:"codex",startAtEnd:!0,context:{mode:"agents",updateOn:["session_start","session_end"]}}],stateFile:Qe}});var Pn={};V(Pn,{checkCodexCliStatus:()=>Uu,installCodexCli:()=>Lu,uninstallCodexCli:()=>Nu});import Nt from"path";import{homedir as $r}from"os";import{existsSync as Ae,readFileSync as Lt,writeFileSync as jt,mkdirSync as Ou}from"fs";function Bn(){let t=j;if(!Ae(t))return{version:1,schemas:{},watches:[],stateFile:Qe};try{let e=Lt(t,"utf-8"),n=JSON.parse(e);return n.version||(n.version=1),n.watches||(n.watches=[]),n.schemas||(n.schemas={}),n.stateFile||(n.stateFile=Qe),n}catch(e){e instanceof Error?D.error("WORKER","Corrupt transcript-watch.json, creating backup",{path:t},e):D.error("WORKER","Corrupt transcript-watch.json, creating backup",{path:t},new Error(String(e)));let n=`${t}.backup.${Date.now()}`;return jt(n,Lt(t)),console.warn(` Backed up corrupt transcript-watch.json to ${n}`),{version:1,schemas:{},watches:[],stateFile:Qe}}}function Tu(t){let e={...t};e.schemas={...e.schemas};let n=Pt.schemas?.[oe];n&&(e.schemas[oe]=n);let r=Pt.watches.find(s=>s.name===oe);if(r){let s=e.watches.findIndex(i=>i.name===oe);s!==-1?e.watches[s]=r:e.watches.push(r)}return e}function Ir(t){Ou(Ru,{recursive:!0}),jt(j,JSON.stringify(t,null,2)+`
298
+ `)}function Bu(){if(!Ae(ne))return;let t="<claude-mem-context>",e="</claude-mem-context>";try{Pu(t,e)}catch(n){let r=n instanceof Error?n.message:String(n);D.warn("WORKER","Failed to clean AGENTS.md context",{error:r})}}function Pu(t,e){let n=Lt(ne,"utf-8"),r=n.indexOf(t),s=n.indexOf(e);if(r===-1||s===-1)return;let i=n.substring(0,r).replace(/\n+$/,""),o=n.substring(s+e.length).replace(/^\n+/,""),u=(i+(o?`
299
299
 
300
- `+o:"")).trim();u?Lt(ne,u+`
301
- `):Lt(ne,""),console.log(` Removed legacy global context from ${ne}`)}async function bu(){console.log(`
300
+ `+o:"")).trim();u?jt(ne,u+`
301
+ `):jt(ne,""),console.log(` Removed legacy global context from ${ne}`)}async function Lu(){console.log(`
302
302
  Installing Claude-Mem for Codex CLI (transcript watching)...
303
- `);let t=Tn(),e=_u(t);try{return ku(e),0}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`
304
- Installation failed: ${r}`),1}}function ku(t){kr(t),console.log(` Updated ${j}`),console.log(" Watch path: ~/.codex/sessions/**/*.jsonl"),console.log(` Schema: codex (v${Bt.schemas?.codex?.version??"?"})`),$r(),console.log(`
303
+ `);let t=Bn(),e=Tu(t);try{return ju(e),0}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`
304
+ Installation failed: ${r}`),1}}function ju(t){Ir(t),console.log(` Updated ${j}`),console.log(" Watch path: ~/.codex/sessions/**/*.jsonl"),console.log(` Schema: codex (v${Pt.schemas?.codex?.version??"?"})`),Or(),console.log(`
305
305
  Installation complete!
306
306
 
307
307
  Transcript watch config: ${j}
@@ -315,36 +315,36 @@ How it works:
315
315
  Next steps:
316
316
  1. Start claude-mem worker: npx claude-mem start
317
317
  2. Use Codex CLI as usual -- memory capture is automatic!
318
- `)}function $u(){if(console.log(`
318
+ `)}function Nu(){if(console.log(`
319
319
  Uninstalling Claude-Mem Codex CLI integration...
320
- `),Ae(j)){let t=Tn();t.watches=t.watches.filter(e=>e.name!==oe),t.schemas&&delete t.schemas[oe];try{kr(t),console.log(` Removed codex watch from ${j}`)}catch(e){let n=e instanceof Error?e.message:String(e);return console.error(`
321
- Uninstallation failed: ${n}`),1}}else console.log(" No transcript-watch.json found -- nothing to remove.");return $r(),console.log(`
320
+ `),Ae(j)){let t=Bn();t.watches=t.watches.filter(e=>e.name!==oe),t.schemas&&delete t.schemas[oe];try{Ir(t),console.log(` Removed codex watch from ${j}`)}catch(e){let n=e instanceof Error?e.message:String(e);return console.error(`
321
+ Uninstallation failed: ${n}`),1}}else console.log(" No transcript-watch.json found -- nothing to remove.");return Or(),console.log(`
322
322
  Uninstallation complete!`),console.log(`Restart claude-mem worker to apply changes.
323
- `),0}function Mu(){if(console.log(`
323
+ `),0}function Uu(){if(console.log(`
324
324
  Claude-Mem Codex CLI Integration Status
325
325
  `),!Ae(j))return console.log("Status: Not installed"),console.log(` No transcript watch config at ${j}`),console.log(`
326
326
  Run: npx claude-mem install --ide codex-cli
327
- `),0;let t;try{t=Tn()}catch(s){return s instanceof Error?D.error("WORKER","Could not parse transcript-watch.json",{path:j},s):D.error("WORKER","Could not parse transcript-watch.json",{path:j},new Error(String(s))),console.log("Status: Unknown"),console.log(" Could not parse transcript-watch.json."),console.log(""),0}let e=t.watches.find(s=>s.name===oe),n=t.schemas?.[oe];if(!e)return console.log("Status: Not installed"),console.log(" transcript-watch.json exists but no codex watch configured."),console.log(`
327
+ `),0;let t;try{t=Bn()}catch(s){return s instanceof Error?D.error("WORKER","Could not parse transcript-watch.json",{path:j},s):D.error("WORKER","Could not parse transcript-watch.json",{path:j},new Error(String(s))),console.log("Status: Unknown"),console.log(" Could not parse transcript-watch.json."),console.log(""),0}let e=t.watches.find(s=>s.name===oe),n=t.schemas?.[oe];if(!e)return console.log("Status: Not installed"),console.log(" transcript-watch.json exists but no codex watch configured."),console.log(`
328
328
  Run: npx claude-mem install --ide codex-cli
329
- `),0;console.log("Status: Installed"),console.log(` Config: ${j}`),console.log(` Watch path: ${e.path}`),console.log(` Schema: ${n?`codex (v${n.version??"?"})`:"missing"}`),console.log(` Start at end: ${e.startAtEnd??!1}`),e.context&&(console.log(` Context mode: ${e.context.mode}`),console.log(` Context path: ${e.context.path??"<workspace>/AGENTS.md (default)"}`),console.log(` Context updates on: ${e.context.updateOn?.join(", ")??"none"}`)),Ae(ne)?Pt(ne,"utf-8").includes("<claude-mem-context>")?console.log(` Legacy global context: Present (${ne})`):console.log(" Legacy global context: Not active"):console.log(" Legacy global context: None");let r=jt.join(br,"sessions");return Ae(r)?console.log(" Sessions directory: exists"):console.log(" Sessions directory: not yet created (use Codex CLI to generate sessions)"),console.log(""),0}var br,ne,Su,oe,$r,Pn=f(()=>{"use strict";X();wr();br=jt.join(Ar(),".codex"),ne=jt.join(br,"AGENTS.md"),Su=jt.join(Ar(),".claude-mem"),oe="codex";$r=wu});var Br={};V(Br,{MCP_IDE_INSTALLERS:()=>Ku,installGooseMcpIntegration:()=>Tr});import B from"path";import{homedir as tt}from"os";import{existsSync as Or,readFileSync as Iu,writeFileSync as et,mkdirSync as Rr}from"fs";function Ru(t){return{command:process.execPath,args:[t]}}function Tu(t,e,n="mcpServers"){let r=B.dirname(t);Rr(r,{recursive:!0});let s=W(t,{});s[n]||(s[n]={}),s[n]["claude-mem"]=Ru(e),et(t,JSON.stringify(s,null,2)+`
330
- `)}function Qe(t){return async()=>{console.log(`
329
+ `),0;console.log("Status: Installed"),console.log(` Config: ${j}`),console.log(` Watch path: ${e.path}`),console.log(` Schema: ${n?`codex (v${n.version??"?"})`:"missing"}`),console.log(` Start at end: ${e.startAtEnd??!1}`),e.context&&(console.log(` Context mode: ${e.context.mode}`),console.log(` Context path: ${e.context.path??"<workspace>/AGENTS.md (default)"}`),console.log(` Context updates on: ${e.context.updateOn?.join(", ")??"none"}`)),Ae(ne)?Lt(ne,"utf-8").includes("<claude-mem-context>")?console.log(` Legacy global context: Present (${ne})`):console.log(" Legacy global context: Not active"):console.log(" Legacy global context: None");let r=Nt.join(Mr,"sessions");return Ae(r)?console.log(" Sessions directory: exists"):console.log(" Sessions directory: not yet created (use Codex CLI to generate sessions)"),console.log(""),0}var Mr,ne,Ru,oe,Or,Ln=f(()=>{"use strict";X();kr();Mr=Nt.join($r(),".codex"),ne=Nt.join(Mr,"AGENTS.md"),Ru=Nt.join($r(),".claude-mem"),oe="codex";Or=Bu});var jr={};V(jr,{MCP_IDE_INSTALLERS:()=>ta,installGooseMcpIntegration:()=>Lr});import B from"path";import{homedir as nt}from"os";import{existsSync as Br,readFileSync as Wu,writeFileSync as tt,mkdirSync as Pr}from"fs";function Hu(t){return{command:process.execPath,args:[t]}}function Ku(t,e,n="mcpServers"){let r=B.dirname(t);Pr(r,{recursive:!0});let s=W(t,{});s[n]||(s[n]={}),s[n]["claude-mem"]=Hu(e),tt(t,JSON.stringify(s,null,2)+`
330
+ `)}function et(t){return async()=>{console.log(`
331
331
  Installing Claude-Mem MCP integration for ${t.ideLabel}...
332
- `);let e=Ge();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 n=t.configPath,r=t.ideId==="warp"&&!Or(B.dirname(n)),s;t.contextFile&&(s=t.contextFile.path);try{return Bu(t,n,e,r,s),0}catch(i){let o=i instanceof Error?i.message:String(i);return console.error(`
333
- Installation failed: ${o}`),1}}}function Bu(t,e,n,r,s){r?console.log(" Note: ~/.warp/ not found. MCP may need to be configured via Warp Drive UI."):(Tu(e,n,t.configKey),console.log(` MCP config written to: ${e}`)),s&&(kt(s,Ou),console.log(` Context placeholder written to: ${s}`));let i=[`
332
+ `);let e=He();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 n=t.configPath,r=t.ideId==="warp"&&!Br(B.dirname(n)),s;t.contextFile&&(s=t.contextFile.path);try{return Ju(t,n,e,r,s),0}catch(i){let o=i instanceof Error?i.message:String(i);return console.error(`
333
+ Installation failed: ${o}`),1}}}function Ju(t,e,n,r,s){r?console.log(" Note: ~/.warp/ not found. MCP may need to be configured via Warp Drive UI."):(Ku(e,n,t.configKey),console.log(` MCP config written to: ${e}`)),s&&($t(s,Gu),console.log(` Context placeholder written to: ${s}`));let i=[`
334
334
  Installation complete!
335
335
  `];i.push(`MCP config: ${e}`),s&&i.push(`Context: ${s}`),i.push(""),i.push("Note: This is an MCP-only integration providing search tools and context."),i.push(`Transcript capture is not available for ${t.ideLabel}.`),t.ideId==="warp"&&i.push("If MCP config via file is not supported, configure MCP through Warp Drive UI."),i.push(""),i.push("Next steps:"),i.push(" 1. Start claude-mem worker: npx claude-mem start"),i.push(` 2. Restart ${t.ideLabel} to pick up the MCP server`),i.push(""),console.log(i.join(`
336
- `))}function Wu(){return B.join(tt(),".config","goose","config.yaml")}function Gu(t){return t.includes("claude-mem:")&&t.includes("mcpServers:")}function Mr(t){return["mcpServers:"," claude-mem:",` command: ${process.execPath}`," args:",` - ${t}`].join(`
337
- `)}function Ir(t){return[" claude-mem:",` command: ${process.execPath}`," args:",` - ${t}`].join(`
338
- `)}async function Tr(){console.log(`
336
+ `))}function Zu(){return B.join(nt(),".config","goose","config.yaml")}function Qu(t){return t.includes("claude-mem:")&&t.includes("mcpServers:")}function Rr(t){return["mcpServers:"," claude-mem:",` command: ${process.execPath}`," args:",` - ${t}`].join(`
337
+ `)}function Tr(t){return[" claude-mem:",` command: ${process.execPath}`," args:",` - ${t}`].join(`
338
+ `)}async function Lr(){console.log(`
339
339
  Installing Claude-Mem MCP integration for Goose...
340
- `);let t=Ge();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 e=Wu(),n=B.dirname(e);try{return Rr(n,{recursive:!0}),Hu(e,t),0}catch(r){let s=r instanceof Error?r.message:String(r);return console.error(`
341
- Installation failed: ${s}`),1}}function Hu(t,e){if(Or(t)){let n=Iu(t,"utf-8");if(Gu(n)){let r=/( {2}claude-mem:\n(?:.*\n)*?(?= {2}\S|\n\n|^\S|$))/m,s=Ir(e)+`
342
- `;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,s),et(t,n),console.log(` Updated existing claude-mem entry in: ${t}`)}else if(n.includes("mcpServers:")){let s=n.indexOf("mcpServers:")+11,i=`
343
- `+Ir(e);n=n.slice(0,s)+i+n.slice(s),et(t,n),console.log(` Added claude-mem to existing mcpServers in: ${t}`)}else{let r=`
344
- `+Mr(e)+`
340
+ `);let t=He();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 e=Zu(),n=B.dirname(e);try{return Pr(n,{recursive:!0}),ea(e,t),0}catch(r){let s=r instanceof Error?r.message:String(r);return console.error(`
341
+ Installation failed: ${s}`),1}}function ea(t,e){if(Br(t)){let n=Wu(t,"utf-8");if(Qu(n)){let r=/( {2}claude-mem:\n(?:.*\n)*?(?= {2}\S|\n\n|^\S|$))/m,s=Tr(e)+`
342
+ `;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,s),tt(t,n),console.log(` Updated existing claude-mem entry in: ${t}`)}else if(n.includes("mcpServers:")){let s=n.indexOf("mcpServers:")+11,i=`
343
+ `+Tr(e);n=n.slice(0,s)+i+n.slice(s),tt(t,n),console.log(` Added claude-mem to existing mcpServers in: ${t}`)}else{let r=`
344
+ `+Rr(e)+`
345
345
  `;n=n.trimEnd()+`
346
- `+r,et(t,n),console.log(` Appended mcpServers section to: ${t}`)}}else{let n=Mr(e)+`
347
- `;et(t,n),console.log(` Created config with MCP server: ${t}`)}console.log(`
346
+ `+r,tt(t,n),console.log(` Appended mcpServers section to: ${t}`)}}else{let n=Rr(e)+`
347
+ `;tt(t,n),console.log(` Created config with MCP server: ${t}`)}console.log(`
348
348
  Installation complete!
349
349
 
350
350
  MCP config: ${t}
@@ -355,18 +355,18 @@ Transcript capture is not available for Goose.
355
355
  Next steps:
356
356
  1. Start claude-mem worker: npx claude-mem start
357
357
  2. Restart Goose to pick up the MCP server
358
- `)}var Ou,Pu,Lu,ju,Nu,Uu,Ku,Pr=f(()=>{"use strict";He();Me();xn();Ou=`# claude-mem: Cross-Session Memory
358
+ `)}var Gu,Vu,Xu,Yu,qu,zu,ta,Nr=f(()=>{"use strict";Ke();Me();Sn();Gu=`# claude-mem: Cross-Session Memory
359
359
 
360
360
  *No context yet. Complete your first session and context will appear here.*
361
361
 
362
- Use claude-mem's MCP search tools for manual memory queries.`;Pu={ideId:"copilot-cli",ideLabel:"Copilot CLI",configPath:B.join(tt(),".github","copilot","mcp.json"),configKey:"servers",contextFile:{path:B.join(process.cwd(),".github","copilot-instructions.md"),isWorkspaceRelative:!0}},Lu={ideId:"antigravity",ideLabel:"Antigravity",configPath:B.join(tt(),".gemini","antigravity","mcp_config.json"),configKey:"mcpServers",contextFile:{path:B.join(process.cwd(),".agent","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},ju={ideId:"crush",ideLabel:"Crush",configPath:B.join(tt(),".config","crush","mcp.json"),configKey:"mcpServers"},Nu={ideId:"roo-code",ideLabel:"Roo Code",configPath:B.join(process.cwd(),".roo","mcp.json"),configKey:"mcpServers",contextFile:{path:B.join(process.cwd(),".roo","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},Uu={ideId:"warp",ideLabel:"Warp",configPath:B.join(tt(),".warp","mcp.json"),configKey:"mcpServers",contextFile:{path:B.join(process.cwd(),"WARP.md"),isWorkspaceRelative:!0}};Ku={"copilot-cli":Qe(Pu),antigravity:Qe(Lu),goose:Tr,crush:Qe(ju),"roo-code":Qe(Nu),warp:Qe(Uu)}});var Nt={};V(Nt,{runInstallCommand:()=>oa});import{execSync as Ln}from"child_process";import{cpSync as Lr,existsSync as nt,readFileSync as Ju,rmSync as jr}from"fs";import{join as be}from"path";async function Vu(t){if(re)await ft(t);else for(let e of t){let n=await e.task(r=>console.log(` ${r}`));console.log(` ${n}`)}}function Xu(){let t=W(pe(),{});t.thedotmack={source:{source:"github",repo:"thedotmack/claude-mem"},installLocation:k(),lastUpdated:new Date().toISOString(),autoUpdate:!0},Re(ae()),Z(pe(),t)}function Yu(t){let e=W(ge(),{});e.version||(e.version=2),e.plugins||(e.plugins={});let n=Jt(t),r=new Date().toISOString();e.plugins["claude-mem@thedotmack"]=[{scope:"user",installPath:n,version:t,installedAt:r,lastUpdated:r}],Z(ge(),e)}function qu(){let t=W(fe(),{});t.enabledPlugins||(t.enabledPlugins={}),t.enabledPlugins["claude-mem@thedotmack"]=!0,Z(fe(),t)}async function zu(t){let e=[];for(let n of t)switch(n){case"claude-code":{try{Ln("claude plugin marketplace add thedotmack/claude-mem && claude plugin install claude-mem",{stdio:"inherit"}),g.success("Claude Code: plugin installed via CLI.")}catch(r){console.error("[install] Claude Code plugin install error:",r instanceof Error?r.message:String(r)),g.error("Claude Code: plugin install failed. Is `claude` CLI on your PATH?"),e.push(n)}break}case"cursor":{let{installCursorHooks:r,configureCursorMcp:s}=await Promise.resolve().then(()=>(He(),zo));await r("user")===0?s("user")===0?g.success("Cursor: hooks + MCP installed."):g.success("Cursor: hooks installed (MCP setup failed \u2014 run `npx claude-mem cursor mcp` to retry)."):(g.error("Cursor: hook installation failed."),e.push(n));break}case"gemini-cli":{let{installGeminiCliHooks:r}=await Promise.resolve().then(()=>(Fn(),hn));await r()===0?g.success("Gemini CLI: hooks installed."):(g.error("Gemini CLI: hook installation failed."),e.push(n));break}case"opencode":{let{installOpenCodeIntegration:r}=await Promise.resolve().then(()=>(wn(),_n));await r()===0?g.success("OpenCode: plugin installed."):(g.error("OpenCode: plugin installation failed."),e.push(n));break}case"windsurf":{let{installWindsurfHooks:r}=await Promise.resolve().then(()=>($n(),kn));await r()===0?g.success("Windsurf: hooks installed."):(g.error("Windsurf: hook installation failed."),e.push(n));break}case"openclaw":{let{installOpenClawIntegration:r}=await Promise.resolve().then(()=>(Rn(),On));await r()===0?g.success("OpenClaw: plugin installed."):(g.error("OpenClaw: plugin installation failed."),e.push(n));break}case"codex-cli":{let{installCodexCli:r}=await Promise.resolve().then(()=>(Pn(),Bn));await r()===0?g.success("Codex CLI: transcript watching configured."):(g.error("Codex CLI: integration setup failed."),e.push(n));break}case"copilot-cli":case"antigravity":case"goose":case"crush":case"roo-code":case"warp":{let{MCP_IDE_INSTALLERS:r}=await Promise.resolve().then(()=>(Pr(),Br)),s=r[n];if(s){let i=await s(),c=Ue().find(d=>d.id===n)?.label??n;i===0?g.success(`${c}: MCP integration installed.`):(g.error(`${c}: MCP integration failed.`),e.push(n))}break}default:{let s=Ue().find(i=>i.id===n);s&&!s.supported&&g.warn(`Support for ${s.label} coming soon.`);break}}return e}async function Zu(){let e=Ue().filter(s=>s.detected);if(e.length===0)return g.warn("No supported IDEs detected. Installing for Claude Code by default."),["claude-code"];let n=e.map(s=>({value:s.id,label:s.label,hint:s.supported?s.hint:"coming soon"})),r=await vo({message:"Which IDEs do you use?",options:n,initialValues:e.filter(s=>s.supported).map(s=>s.id),required:!0});return ee(r)&&(je("Installation cancelled."),process.exit(0)),r}function Qu(){let t=k(),e=it();Re(t);let n=["plugin","package.json","package-lock.json","node_modules","openclaw","dist","LICENSE","README.md","CHANGELOG.md"];for(let r of n){let s=be(e,r),i=be(t,r);nt(s)&&(nt(i)&&jr(i,{recursive:!0,force:!0}),Lr(s,i,{recursive:!0,force:!0}))}}function ea(t){let e=Vt(),n=Jt(t);jr(n,{recursive:!0,force:!0}),Re(n),Lr(e,n,{recursive:!0,force:!0})}function ta(){let t=k(),e=be(t,"package.json");nt(e)&&Ln("npm install --production",{cwd:t,stdio:"pipe",...q?{shell:!0}:{}})}function na(){let t=be(k(),"plugin","scripts","smart-install.js");if(!nt(t))return g.warn("smart-install.js not found \u2014 skipping Bun/uv auto-install."),!1;try{return Ln(`node "${t}"`,{stdio:"inherit",...q?{shell:!0}:{}}),!0}catch(e){return console.warn("[install] smart-install error:",e instanceof Error?e.message:String(e)),g.warn("smart-install encountered an issue. You may need to install Bun/uv manually."),!1}}async function oa(t={}){let e=Oe();re?gt(h.default.bgCyan(h.default.black(" claude-mem install "))):console.log("claude-mem install"),g.info(`Version: ${h.default.cyan(e)}`),g.info(`Platform: ${process.platform} (${process.arch})`);let n=k();if(nt(be(n,"plugin",".claude-plugin","plugin.json"))){try{let l=JSON.parse(Ju(be(n,"plugin",".claude-plugin","plugin.json"),"utf-8"));g.warn(`Existing installation detected (v${l.version??"unknown"}).`)}catch(l){console.warn("[install] Failed to read existing plugin version:",l instanceof Error?l.message:String(l)),g.warn("Existing installation detected.")}if(process.stdin.isTTY){let l=await Pe({message:"Overwrite existing installation?",initialValue:!0});(ee(l)||!l)&&(je("Installation cancelled."),process.exit(0))}}let s;if(t.ide){s=[t.ide];let l=Ue(),E=l.find(S=>S.id===t.ide);E&&!E.supported&&(g.error(`Support for ${E.label} coming soon.`),process.exit(1)),E||(g.error(`Unknown IDE: ${t.ide}`),g.info(`Available IDEs: ${l.map(S=>S.id).join(", ")}`),process.exit(1))}else process.stdin.isTTY?s=await Zu():s=["claude-code"];s.some(l=>l!=="claude-code")&&await Vu([{title:"Copying plugin files",task:async l=>(l("Copying to marketplace directory..."),Qu(),`Plugin files copied ${h.default.green("OK")}`)},{title:"Caching plugin version",task:async l=>(l(`Caching v${e}...`),ea(e),`Plugin cached (v${e}) ${h.default.green("OK")}`)},{title:"Registering marketplace",task:async()=>(Xu(),`Marketplace registered ${h.default.green("OK")}`)},{title:"Registering plugin",task:async()=>(Yu(e),`Plugin registered ${h.default.green("OK")}`)},{title:"Enabling plugin in Claude settings",task:async()=>(qu(),`Plugin enabled ${h.default.green("OK")}`)},{title:"Installing dependencies",task:async l=>{l("Running npm install...");try{return ta(),`Dependencies installed ${h.default.green("OK")}`}catch(E){return console.warn("[install] npm install error:",E instanceof Error?E.message:String(E)),`Dependencies may need manual install ${h.default.yellow("!")}`}}},{title:"Setting up Bun and uv",task:async l=>(l("Running smart-install..."),na()?`Runtime dependencies ready ${h.default.green("OK")}`:`Runtime setup may need attention ${h.default.yellow("!")}`)}]);let o=await zu(s),u=o.length>0?"Installation Partial":"Installation Complete",c=[`Version: ${h.default.cyan(e)}`,`Plugin dir: ${h.default.cyan(n)}`,`IDEs: ${h.default.cyan(s.join(", "))}`];o.length>0&&c.push(`Failed: ${h.default.red(o.join(", "))}`),re?Le(c.join(`
362
+ Use claude-mem's MCP search tools for manual memory queries.`;Vu={ideId:"copilot-cli",ideLabel:"Copilot CLI",configPath:B.join(nt(),".github","copilot","mcp.json"),configKey:"servers",contextFile:{path:B.join(process.cwd(),".github","copilot-instructions.md"),isWorkspaceRelative:!0}},Xu={ideId:"antigravity",ideLabel:"Antigravity",configPath:B.join(nt(),".gemini","antigravity","mcp_config.json"),configKey:"mcpServers",contextFile:{path:B.join(process.cwd(),".agent","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},Yu={ideId:"crush",ideLabel:"Crush",configPath:B.join(nt(),".config","crush","mcp.json"),configKey:"mcpServers"},qu={ideId:"roo-code",ideLabel:"Roo Code",configPath:B.join(process.cwd(),".roo","mcp.json"),configKey:"mcpServers",contextFile:{path:B.join(process.cwd(),".roo","rules","claude-mem-context.md"),isWorkspaceRelative:!0}},zu={ideId:"warp",ideLabel:"Warp",configPath:B.join(nt(),".warp","mcp.json"),configKey:"mcpServers",contextFile:{path:B.join(process.cwd(),"WARP.md"),isWorkspaceRelative:!0}};ta={"copilot-cli":et(Vu),antigravity:et(Xu),goose:Lr,crush:et(Yu),"roo-code":et(qu),warp:et(zu)}});var Ut={};V(Ut,{runInstallCommand:()=>ma});import{execSync as jn}from"child_process";import{cpSync as Ur,existsSync as ot,readFileSync as na,rmSync as Wr}from"fs";import{join as be}from"path";async function oa(t){if(re)await Ct(t);else for(let e of t){let n=await e.task(r=>console.log(` ${r}`));console.log(` ${n}`)}}function ra(){let t=W(pe(),{});t.thedotmack={source:{source:"github",repo:"thedotmack/claude-mem"},installLocation:$(),lastUpdated:new Date().toISOString(),autoUpdate:!0},Re(ae()),Z(pe(),t)}function sa(t){let e=W(ge(),{});e.version||(e.version=2),e.plugins||(e.plugins={});let n=Vt(t),r=new Date().toISOString();e.plugins["claude-mem@thedotmack"]=[{scope:"user",installPath:n,version:t,installedAt:r,lastUpdated:r}],Z(ge(),e)}function ia(){let t=W(fe(),{});t.enabledPlugins||(t.enabledPlugins={}),t.enabledPlugins["claude-mem@thedotmack"]=!0,Z(fe(),t)}async function ua(t){let e=[];for(let n of t)switch(n){case"claude-code":{try{jn("claude plugin marketplace add thedotmack/claude-mem && claude plugin install claude-mem",{stdio:"inherit"}),g.success("Claude Code: plugin installed via CLI.")}catch(r){console.error("[install] Claude Code plugin install error:",r instanceof Error?r.message:String(r)),g.error("Claude Code: plugin install failed. Is `claude` CLI on your PATH?"),e.push(n)}break}case"cursor":{let{installCursorHooks:r,configureCursorMcp:s}=await Promise.resolve().then(()=>(Ke(),er));await r("user")===0?s("user")===0?g.success("Cursor: hooks + MCP installed."):g.success("Cursor: hooks installed (MCP setup failed \u2014 run `npx claude-mem cursor mcp` to retry)."):(g.error("Cursor: hook installation failed."),e.push(n));break}case"gemini-cli":{let{installGeminiCliHooks:r}=await Promise.resolve().then(()=>(yn(),Fn));await r()===0?g.success("Gemini CLI: hooks installed."):(g.error("Gemini CLI: hook installation failed."),e.push(n));break}case"opencode":{let{installOpenCodeIntegration:r}=await Promise.resolve().then(()=>(An(),wn));await r()===0?g.success("OpenCode: plugin installed."):(g.error("OpenCode: plugin installation failed."),e.push(n));break}case"windsurf":{let{installWindsurfHooks:r}=await Promise.resolve().then(()=>(Mn(),$n));await r()===0?g.success("Windsurf: hooks installed."):(g.error("Windsurf: hook installation failed."),e.push(n));break}case"openclaw":{let{installOpenClawIntegration:r}=await Promise.resolve().then(()=>(Tn(),Rn));await r()===0?g.success("OpenClaw: plugin installed."):(g.error("OpenClaw: plugin installation failed."),e.push(n));break}case"codex-cli":{let{installCodexCli:r}=await Promise.resolve().then(()=>(Ln(),Pn));await r()===0?g.success("Codex CLI: transcript watching configured."):(g.error("Codex CLI: integration setup failed."),e.push(n));break}case"copilot-cli":case"antigravity":case"goose":case"crush":case"roo-code":case"warp":{let{MCP_IDE_INSTALLERS:r}=await Promise.resolve().then(()=>(Nr(),jr)),s=r[n];if(s){let i=await s(),c=Ue().find(d=>d.id===n)?.label??n;i===0?g.success(`${c}: MCP integration installed.`):(g.error(`${c}: MCP integration failed.`),e.push(n))}break}default:{let s=Ue().find(i=>i.id===n);s&&!s.supported&&g.warn(`Support for ${s.label} coming soon.`);break}}return e}async function aa(){let e=Ue().filter(s=>s.detected);if(e.length===0)return g.warn("No supported IDEs detected. Installing for Claude Code by default."),["claude-code"];let n=e.map(s=>({value:s.id,label:s.label,hint:s.supported?s.hint:"coming soon"})),r=await vo({message:"Which IDEs do you use?",options:n,initialValues:e.filter(s=>s.supported).map(s=>s.id),required:!0});return ee(r)&&(je("Installation cancelled."),process.exit(0)),r}function ca(){let t=$(),e=ut();Re(t);let n=["plugin","package.json","package-lock.json","node_modules","openclaw","dist","LICENSE","README.md","CHANGELOG.md"];for(let r of n){let s=be(e,r),i=be(t,r);ot(s)&&(ot(i)&&Wr(i,{recursive:!0,force:!0}),Ur(s,i,{recursive:!0,force:!0}))}}function la(t){let e=Xt(),n=Vt(t);Wr(n,{recursive:!0,force:!0}),Re(n),Ur(e,n,{recursive:!0,force:!0})}function Da(){let t=$(),e=be(t,"package.json");ot(e)&&jn("npm install --production",{cwd:t,stdio:"pipe",...q?{shell:!0}:{}})}function da(){let t=be($(),"plugin","scripts","smart-install.js");if(!ot(t))return g.warn("smart-install.js not found \u2014 skipping Bun/uv auto-install."),!1;try{return jn(`node "${t}"`,{stdio:"inherit",...q?{shell:!0}:{}}),!0}catch(e){return console.warn("[install] smart-install error:",e instanceof Error?e.message:String(e)),g.warn("smart-install encountered an issue. You may need to install Bun/uv manually."),!1}}async function ma(t={}){let e=Oe();re?ft(h.default.bgCyan(h.default.black(" claude-mem install "))):console.log("claude-mem install"),g.info(`Version: ${h.default.cyan(e)}`),g.info(`Platform: ${process.platform} (${process.arch})`);let n=$();if(ot(be(n,"plugin",".claude-plugin","plugin.json"))){try{let l=JSON.parse(na(be(n,"plugin",".claude-plugin","plugin.json"),"utf-8"));g.warn(`Existing installation detected (v${l.version??"unknown"}).`)}catch(l){console.warn("[install] Failed to read existing plugin version:",l instanceof Error?l.message:String(l)),g.warn("Existing installation detected.")}if(process.stdin.isTTY){let l=await Pe({message:"Overwrite existing installation?",initialValue:!0});(ee(l)||!l)&&(je("Installation cancelled."),process.exit(0))}}let s;if(t.ide){s=[t.ide];let l=Ue(),E=l.find(v=>v.id===t.ide);E&&!E.supported&&(g.error(`Support for ${E.label} coming soon.`),process.exit(1)),E||(g.error(`Unknown IDE: ${t.ide}`),g.info(`Available IDEs: ${l.map(v=>v.id).join(", ")}`),process.exit(1))}else process.stdin.isTTY?s=await aa():s=["claude-code"];s.some(l=>l!=="claude-code")&&await oa([{title:"Copying plugin files",task:async l=>(l("Copying to marketplace directory..."),ca(),`Plugin files copied ${h.default.green("OK")}`)},{title:"Caching plugin version",task:async l=>(l(`Caching v${e}...`),la(e),`Plugin cached (v${e}) ${h.default.green("OK")}`)},{title:"Registering marketplace",task:async()=>(ra(),`Marketplace registered ${h.default.green("OK")}`)},{title:"Registering plugin",task:async()=>(sa(e),`Plugin registered ${h.default.green("OK")}`)},{title:"Enabling plugin in Claude settings",task:async()=>(ia(),`Plugin enabled ${h.default.green("OK")}`)},{title:"Installing dependencies",task:async l=>{l("Running npm install...");try{return Da(),`Dependencies installed ${h.default.green("OK")}`}catch(E){return console.warn("[install] npm install error:",E instanceof Error?E.message:String(E)),`Dependencies may need manual install ${h.default.yellow("!")}`}}},{title:"Setting up Bun and uv",task:async l=>(l("Running smart-install..."),da()?`Runtime dependencies ready ${h.default.green("OK")}`:`Runtime setup may need attention ${h.default.yellow("!")}`)}]);let o=await ua(s),u=o.length>0?"Installation Partial":"Installation Complete",c=[`Version: ${h.default.cyan(e)}`,`Plugin dir: ${h.default.cyan(n)}`,`IDEs: ${h.default.cyan(s.join(", "))}`];o.length>0&&c.push(`Failed: ${h.default.red(o.join(", "))}`),re?Le(c.join(`
363
363
  `),u):(console.log(`
364
364
  ${u}`),c.forEach(l=>console.log(` ${l}`)));let d=process.env.CLAUDE_MEM_WORKER_PORT||"37777",m=["Open Claude Code and start a conversation -- memory is automatic!",`View your memories: ${h.default.underline(`http://localhost:${d}`)}`,`Search past work: use ${h.default.bold("/mem-search")} in Claude Code`,`Start worker: ${h.default.bold("npx claude-mem start")}`];re?(Le(m.join(`
365
365
  `),"Next Steps"),o.length>0?le(h.default.yellow("claude-mem installed with some IDE setup failures.")):le(h.default.green("claude-mem installed successfully!"))):(console.log(`
366
366
  Next Steps`),m.forEach(l=>console.log(` ${l}`)),o.length>0?(console.log(`
367
367
  claude-mem installed with some IDE setup failures.`),process.exitCode=1):console.log(`
368
- claude-mem installed successfully!`))}var h,re,g,Ut=f(()=>{"use strict";sn();h=ue(me(),1);ce();Me();wo();re=process.stdin.isTTY===!0;g={info:t=>re?$.info(t):console.log(` ${t}`),success:t=>re?$.success(t):console.log(` ${t}`),warn:t=>re?$.warn(t):console.warn(` ${t}`),error:t=>re?$.error(t):console.error(` ${t}`)}});var Wr={};V(Wr,{runUninstallCommand:()=>la});import{existsSync as Nr,rmSync as Ur}from"fs";import{join as ra}from"path";function sa(){let t=k();return Nr(t)?(Ur(t,{recursive:!0,force:!0}),!0):!1}function ia(){let t=ra(ae(),"cache","thedotmack","claude-mem");return Nr(t)?(Ur(t,{recursive:!0,force:!0}),!0):!1}function ua(){let t=W(pe(),{});t.thedotmack&&(delete t.thedotmack,Z(pe(),t))}function aa(){let t=W(ge(),{});t.plugins?.["claude-mem@thedotmack"]&&(delete t.plugins["claude-mem@thedotmack"],Z(ge(),t))}function ca(){let t=W(fe(),{});t.enabledPlugins?.["claude-mem@thedotmack"]!==void 0&&(delete t.enabledPlugins["claude-mem@thedotmack"],Z(fe(),t))}async function la(){if(gt(N.default.bgRed(N.default.white(" claude-mem uninstall "))),ut()){if(process.stdin.isTTY){let n=await Pe({message:"Are you sure you want to uninstall claude-mem?",initialValue:!1});if(ee(n)||!n){je("Uninstall cancelled.");return}}}else if($.warn("claude-mem does not appear to be installed."),process.stdin.isTTY){let n=await Pe({message:"Clean up any remaining registration data anyway?",initialValue:!1});if(ee(n)||!n){le("Nothing to do.");return}}else{le("Nothing to do.");return}let t=process.env.CLAUDE_MEM_WORKER_PORT||"37777";try{await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST",signal:AbortSignal.timeout(5e3)});for(let n=0;n<20;n++){await new Promise(r=>setTimeout(r,500));try{await fetch(`http://127.0.0.1:${t}/api/health`,{signal:AbortSignal.timeout(1e3)})}catch(r){console.error("[uninstall] Worker health check failed (worker stopped):",r instanceof Error?r.message:String(r));break}}$.info("Worker service stopped.")}catch{}await ft([{title:"Removing marketplace directory",task:async()=>sa()?`Marketplace directory removed ${N.default.green("OK")}`:`Marketplace directory not found ${N.default.dim("skipped")}`},{title:"Removing cache directory",task:async()=>ia()?`Cache directory removed ${N.default.green("OK")}`:`Cache directory not found ${N.default.dim("skipped")}`},{title:"Removing marketplace registration",task:async()=>(ua(),`Marketplace registration removed ${N.default.green("OK")}`)},{title:"Removing plugin registration",task:async()=>(aa(),`Plugin registration removed ${N.default.green("OK")}`)},{title:"Removing from Claude settings",task:async()=>(ca(),`Claude settings updated ${N.default.green("OK")}`)}]);let e=[{label:"Gemini CLI hooks",fn:async()=>{let{uninstallGeminiCliHooks:n}=await Promise.resolve().then(()=>(Fn(),hn));return n()}},{label:"Windsurf hooks",fn:async()=>{let{uninstallWindsurfHooks:n}=await Promise.resolve().then(()=>($n(),kn));return n()}},{label:"OpenCode plugin",fn:async()=>{let{uninstallOpenCodePlugin:n}=await Promise.resolve().then(()=>(wn(),_n));return n()}},{label:"OpenClaw plugin",fn:async()=>{let{uninstallOpenClawPlugin:n}=await Promise.resolve().then(()=>(Rn(),On));return n()}},{label:"Codex CLI",fn:async()=>{let{uninstallCodexCli:n}=await Promise.resolve().then(()=>(Pn(),Bn));return n()}}];for(let{label:n,fn:r}of e)try{await r()===0&&$.info(`${n}: removed.`)}catch(s){console.warn(`[uninstall] ${n} cleanup failed:`,s instanceof Error?s.message:String(s))}Le([`Your data directory at ${N.default.cyan("~/.claude-mem")} was preserved.`,"To remove it manually: rm -rf ~/.claude-mem"].join(`
369
- `),"Note"),le(N.default.green("claude-mem has been uninstalled."))}var N,Gr=f(()=>{"use strict";sn();N=ue(me(),1);ce();Me()});import{spawnSync as Da}from"child_process";import{existsSync as da}from"fs";import{homedir as jn}from"os";import{join as Nn}from"path";function ma(){return q?[Nn(jn(),".bun","bin","bun.exe"),Nn(process.env.USERPROFILE||jn(),".bun","bin","bun.exe")]:[Nn(jn(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"]}function Hr(){let e=Da(q?"where":"which",["bun"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:q});if(e.status===0&&e.stdout.trim())return"bun";for(let n of ma())if(da(n))return n;return null}var Kr=f(()=>{"use strict";ce()});var se={};V(se,{runAdoptCommand:()=>Ea,runRestartCommand:()=>fa,runSearchCommand:()=>ha,runStartCommand:()=>pa,runStatusCommand:()=>Ca,runStopCommand:()=>ga,runTranscriptWatchCommand:()=>Fa});import{spawn as Un}from"child_process";import{existsSync as Wn}from"fs";import{join as Jr}from"path";function Wt(){ut()||(console.error(w.default.red("claude-mem is not installed.")),console.error(`Run: ${w.default.bold("npx claude-mem install")}`),process.exit(1))}function Gn(){let t=Hr();return t||(console.error(w.default.red("Bun not found.")),console.error("Install Bun: https://bun.sh"),console.error("After installation, restart your terminal."),process.exit(1)),t}function Vr(){return Jr(k(),"plugin","scripts","worker-service.cjs")}function ot(t,e=[]){Wt();let n=Gn(),r=Vr();Wn(r)||(console.error(w.default.red(`Worker script not found at: ${r}`)),console.error("The installation may be corrupted. Try: npx claude-mem install"),process.exit(1));let s=[r,t,...e],i=Un(n,s,{stdio:"inherit",cwd:k(),env:process.env});i.on("error",o=>{console.error(w.default.red(`Failed to start Bun: ${o.message}`)),process.exit(1)}),i.on("close",o=>{process.exit(o??0)})}function pa(){ot("start")}function ga(){ot("stop")}function fa(){ot("restart")}function Ca(){ot("status")}function Ea(t=[]){Wt();let e=Gn(),n=Vr();Wn(n)||(console.error(w.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(),s=[n,"adopt","--cwd",r,...t],i=Un(e,s,{stdio:"inherit",cwd:k(),env:process.env});i.on("error",o=>{console.error(w.default.red(`Failed to start Bun: ${o.message}`)),process.exit(1)}),i.on("close",o=>{process.exit(o??0)})}async function ha(t){Wt();let e=t.join(" ").trim();e||(console.error(w.default.red("Usage: npx claude-mem search <query>")),process.exit(1));let r=`http://127.0.0.1:${process.env.CLAUDE_MEM_WORKER_PORT||"37777"}/api/search?query=${encodeURIComponent(e)}`,s;try{s=await fetch(r)}catch(o){let u=o instanceof Error?o.message:String(o);((o instanceof Error?o.cause:void 0)?.code==="ECONNREFUSED"||u.includes("ECONNREFUSED"))&&(console.error(w.default.red("Worker is not running.")),console.error(`Start it with: ${w.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(w.default.red(`Search failed: ${u}`)),process.exit(1)}s.ok||(s.status===404&&(console.error(w.default.red("Search endpoint not found. Is the worker running?")),console.error(`Try: ${w.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(w.default.red(`Search failed: HTTP ${s.status}`)),process.exit(1));let i;try{i=await s.json()}catch(o){let u=o instanceof Error?o.message:String(o);console.error(w.default.red(`Search failed: invalid JSON response (${u})`)),process.exit(1)}console.log(typeof i=="object"&&i!==null?JSON.stringify(i,null,2):i)}function Fa(){Wt();let t=Gn(),e=Jr(k(),"plugin","scripts","transcript-watcher.cjs");if(!Wn(e)){ot("transcript",["watch"]);return}let n=Un(t,[e,"watch"],{stdio:"inherit",cwd:k(),env:process.env});n.on("error",r=>{console.error(w.default.red(`Failed to start transcript watcher: ${r.message}`)),process.exit(1)}),n.on("close",r=>{process.exit(r??0)})}var w,ie=f(()=>{"use strict";w=ue(me(),1);Kr();ce()});var F=ue(me(),1);ce();var ke=process.argv.slice(2),Xr=ke[0]?.toLowerCase()??"";function ya(){let t=Oe();console.log(`
368
+ claude-mem installed successfully!`))}var h,re,g,Wt=f(()=>{"use strict";un();h=ue(me(),1);ce();Me();Ao();re=process.stdin.isTTY===!0;g={info:t=>re?M.info(t):console.log(` ${t}`),success:t=>re?M.success(t):console.log(` ${t}`),warn:t=>re?M.warn(t):console.warn(` ${t}`),error:t=>re?M.error(t):console.error(` ${t}`)}});var Kr={};V(Kr,{runUninstallCommand:()=>Fa});import{existsSync as Gr,rmSync as Hr}from"fs";import{join as pa}from"path";function ga(){let t=$();return Gr(t)?(Hr(t,{recursive:!0,force:!0}),!0):!1}function fa(){let t=pa(ae(),"cache","thedotmack","claude-mem");return Gr(t)?(Hr(t,{recursive:!0,force:!0}),!0):!1}function Ca(){let t=W(pe(),{});t.thedotmack&&(delete t.thedotmack,Z(pe(),t))}function Ea(){let t=W(ge(),{});t.plugins?.["claude-mem@thedotmack"]&&(delete t.plugins["claude-mem@thedotmack"],Z(ge(),t))}function ha(){let t=W(fe(),{});t.enabledPlugins?.["claude-mem@thedotmack"]!==void 0&&(delete t.enabledPlugins["claude-mem@thedotmack"],Z(fe(),t))}async function Fa(){if(ft(N.default.bgRed(N.default.white(" claude-mem uninstall "))),at()){if(process.stdin.isTTY){let n=await Pe({message:"Are you sure you want to uninstall claude-mem?",initialValue:!1});if(ee(n)||!n){je("Uninstall cancelled.");return}}}else if(M.warn("claude-mem does not appear to be installed."),process.stdin.isTTY){let n=await Pe({message:"Clean up any remaining registration data anyway?",initialValue:!1});if(ee(n)||!n){le("Nothing to do.");return}}else{le("Nothing to do.");return}let t=process.env.CLAUDE_MEM_WORKER_PORT||"37777";try{await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST",signal:AbortSignal.timeout(5e3)});for(let n=0;n<20;n++){await new Promise(r=>setTimeout(r,500));try{await fetch(`http://127.0.0.1:${t}/api/health`,{signal:AbortSignal.timeout(1e3)})}catch(r){console.error("[uninstall] Worker health check failed (worker stopped):",r instanceof Error?r.message:String(r));break}}M.info("Worker service stopped.")}catch{}await Ct([{title:"Removing marketplace directory",task:async()=>ga()?`Marketplace directory removed ${N.default.green("OK")}`:`Marketplace directory not found ${N.default.dim("skipped")}`},{title:"Removing cache directory",task:async()=>fa()?`Cache directory removed ${N.default.green("OK")}`:`Cache directory not found ${N.default.dim("skipped")}`},{title:"Removing marketplace registration",task:async()=>(Ca(),`Marketplace registration removed ${N.default.green("OK")}`)},{title:"Removing plugin registration",task:async()=>(Ea(),`Plugin registration removed ${N.default.green("OK")}`)},{title:"Removing from Claude settings",task:async()=>(ha(),`Claude settings updated ${N.default.green("OK")}`)}]);let e=[{label:"Gemini CLI hooks",fn:async()=>{let{uninstallGeminiCliHooks:n}=await Promise.resolve().then(()=>(yn(),Fn));return n()}},{label:"Windsurf hooks",fn:async()=>{let{uninstallWindsurfHooks:n}=await Promise.resolve().then(()=>(Mn(),$n));return n()}},{label:"OpenCode plugin",fn:async()=>{let{uninstallOpenCodePlugin:n}=await Promise.resolve().then(()=>(An(),wn));return n()}},{label:"OpenClaw plugin",fn:async()=>{let{uninstallOpenClawPlugin:n}=await Promise.resolve().then(()=>(Tn(),Rn));return n()}},{label:"Codex CLI",fn:async()=>{let{uninstallCodexCli:n}=await Promise.resolve().then(()=>(Ln(),Pn));return n()}}];for(let{label:n,fn:r}of e)try{await r()===0&&M.info(`${n}: removed.`)}catch(s){console.warn(`[uninstall] ${n} cleanup failed:`,s instanceof Error?s.message:String(s))}Le([`Your data directory at ${N.default.cyan("~/.claude-mem")} was preserved.`,"To remove it manually: rm -rf ~/.claude-mem"].join(`
369
+ `),"Note"),le(N.default.green("claude-mem has been uninstalled."))}var N,Jr=f(()=>{"use strict";un();N=ue(me(),1);ce();Me()});import{spawnSync as ya}from"child_process";import{existsSync as xa}from"fs";import{homedir as Nn}from"os";import{join as Un}from"path";function Sa(){return q?[Un(Nn(),".bun","bin","bun.exe"),Un(process.env.USERPROFILE||Nn(),".bun","bin","bun.exe")]:[Un(Nn(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"]}function Vr(){let e=ya(q?"where":"which",["bun"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:q});if(e.status===0&&e.stdout.trim())return"bun";for(let n of Sa())if(xa(n))return n;return null}var Xr=f(()=>{"use strict";ce()});var se={};V(se,{runAdoptCommand:()=>ba,runRestartCommand:()=>wa,runSearchCommand:()=>ka,runStartCommand:()=>va,runStatusCommand:()=>Aa,runStopCommand:()=>_a,runTranscriptWatchCommand:()=>$a});import{spawn as Wn}from"child_process";import{existsSync as Gn}from"fs";import{join as Yr}from"path";function Gt(){at()||(console.error(w.default.red("claude-mem is not installed.")),console.error(`Run: ${w.default.bold("npx claude-mem install")}`),process.exit(1))}function Hn(){let t=Vr();return t||(console.error(w.default.red("Bun not found.")),console.error("Install Bun: https://bun.sh"),console.error("After installation, restart your terminal."),process.exit(1)),t}function qr(){return Yr($(),"plugin","scripts","worker-service.cjs")}function rt(t,e=[]){Gt();let n=Hn(),r=qr();Gn(r)||(console.error(w.default.red(`Worker script not found at: ${r}`)),console.error("The installation may be corrupted. Try: npx claude-mem install"),process.exit(1));let s=[r,t,...e],i=Wn(n,s,{stdio:"inherit",cwd:$(),env:process.env});i.on("error",o=>{console.error(w.default.red(`Failed to start Bun: ${o.message}`)),process.exit(1)}),i.on("close",o=>{process.exit(o??0)})}function va(){rt("start")}function _a(){rt("stop")}function wa(){rt("restart")}function Aa(){rt("status")}function ba(t=[]){Gt();let e=Hn(),n=qr();Gn(n)||(console.error(w.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(),s=[n,"adopt","--cwd",r,...t],i=Wn(e,s,{stdio:"inherit",cwd:$(),env:process.env});i.on("error",o=>{console.error(w.default.red(`Failed to start Bun: ${o.message}`)),process.exit(1)}),i.on("close",o=>{process.exit(o??0)})}async function ka(t){Gt();let e=t.join(" ").trim();e||(console.error(w.default.red("Usage: npx claude-mem search <query>")),process.exit(1));let r=`http://127.0.0.1:${process.env.CLAUDE_MEM_WORKER_PORT||"37777"}/api/search?query=${encodeURIComponent(e)}`,s;try{s=await fetch(r)}catch(o){let u=o instanceof Error?o.message:String(o);((o instanceof Error?o.cause:void 0)?.code==="ECONNREFUSED"||u.includes("ECONNREFUSED"))&&(console.error(w.default.red("Worker is not running.")),console.error(`Start it with: ${w.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(w.default.red(`Search failed: ${u}`)),process.exit(1)}s.ok||(s.status===404&&(console.error(w.default.red("Search endpoint not found. Is the worker running?")),console.error(`Try: ${w.default.bold("npx claude-mem start")}`),process.exit(1)),console.error(w.default.red(`Search failed: HTTP ${s.status}`)),process.exit(1));let i;try{i=await s.json()}catch(o){let u=o instanceof Error?o.message:String(o);console.error(w.default.red(`Search failed: invalid JSON response (${u})`)),process.exit(1)}console.log(typeof i=="object"&&i!==null?JSON.stringify(i,null,2):i)}function $a(){Gt();let t=Hn(),e=Yr($(),"plugin","scripts","transcript-watcher.cjs");if(!Gn(e)){rt("transcript",["watch"]);return}let n=Wn(t,[e,"watch"],{stdio:"inherit",cwd:$(),env:process.env});n.on("error",r=>{console.error(w.default.red(`Failed to start transcript watcher: ${r.message}`)),process.exit(1)}),n.on("close",r=>{process.exit(r??0)})}var w,ie=f(()=>{"use strict";w=ue(me(),1);Xr();ce()});var F=ue(me(),1);ce();var ke=process.argv.slice(2),zr=ke[0]?.toLowerCase()??"";function Ma(){let t=Oe();console.log(`
370
370
  ${F.default.bold("claude-mem")} v${t} \u2014 persistent memory for AI coding assistants
371
371
 
372
372
  ${F.default.bold("Install Commands")} (no Bun required):
@@ -390,4 +390,4 @@ ${F.default.bold("IDE Identifiers")}:
390
390
  claude-code, cursor, gemini-cli, opencode, openclaw,
391
391
  windsurf, codex-cli, copilot-cli, antigravity, goose,
392
392
  crush, roo-code, warp
393
- `)}async function xa(){switch(Xr){case"":{let{runInstallCommand:t}=await Promise.resolve().then(()=>(Ut(),Nt));await t();break}case"install":{let t=ke.indexOf("--ide"),e=t!==-1?ke[t+1]:void 0,{runInstallCommand:n}=await Promise.resolve().then(()=>(Ut(),Nt));await n({ide:e});break}case"update":case"upgrade":{let{runInstallCommand:t}=await Promise.resolve().then(()=>(Ut(),Nt));await t();break}case"uninstall":case"remove":{let{runUninstallCommand:t}=await Promise.resolve().then(()=>(Gr(),Wr));await t();break}case"version":case"--version":case"-v":{console.log(Oe());break}case"help":case"--help":case"-h":{ya();break}case"start":{let{runStartCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"stop":{let{runStopCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"restart":{let{runRestartCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"status":{let{runStatusCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"search":{let{runSearchCommand:t}=await Promise.resolve().then(()=>(ie(),se));await t(ke.slice(1));break}case"adopt":{let{runAdoptCommand:t}=await Promise.resolve().then(()=>(ie(),se));t(ke.slice(1));break}case"transcript":{let t=ke[1]?.toLowerCase();if(t==="watch"){let{runTranscriptWatchCommand:e}=await Promise.resolve().then(()=>(ie(),se));e()}else console.error(F.default.red(`Unknown transcript subcommand: ${t??"(none)"}`)),console.error("Usage: npx claude-mem transcript watch"),process.exit(1);break}default:console.error(F.default.red(`Unknown command: ${Xr}`)),console.error(`Run ${F.default.bold("npx claude-mem --help")} for usage information.`),process.exit(1)}}xa().catch(t=>{console.error(F.default.red("Fatal error:"),t.message||t),process.exit(1)});
393
+ `)}async function Ia(){switch(zr){case"":{let{runInstallCommand:t}=await Promise.resolve().then(()=>(Wt(),Ut));await t();break}case"install":{let t=ke.indexOf("--ide"),e=t!==-1?ke[t+1]:void 0,{runInstallCommand:n}=await Promise.resolve().then(()=>(Wt(),Ut));await n({ide:e});break}case"update":case"upgrade":{let{runInstallCommand:t}=await Promise.resolve().then(()=>(Wt(),Ut));await t();break}case"uninstall":case"remove":{let{runUninstallCommand:t}=await Promise.resolve().then(()=>(Jr(),Kr));await t();break}case"version":case"--version":case"-v":{console.log(Oe());break}case"help":case"--help":case"-h":{Ma();break}case"start":{let{runStartCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"stop":{let{runStopCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"restart":{let{runRestartCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"status":{let{runStatusCommand:t}=await Promise.resolve().then(()=>(ie(),se));t();break}case"search":{let{runSearchCommand:t}=await Promise.resolve().then(()=>(ie(),se));await t(ke.slice(1));break}case"adopt":{let{runAdoptCommand:t}=await Promise.resolve().then(()=>(ie(),se));t(ke.slice(1));break}case"transcript":{let t=ke[1]?.toLowerCase();if(t==="watch"){let{runTranscriptWatchCommand:e}=await Promise.resolve().then(()=>(ie(),se));e()}else console.error(F.default.red(`Unknown transcript subcommand: ${t??"(none)"}`)),console.error("Usage: npx claude-mem transcript watch"),process.exit(1);break}default:console.error(F.default.red(`Unknown command: ${zr}`)),console.error(`Run ${F.default.bold("npx claude-mem --help")} for usage information.`),process.exit(1)}}Ia().catch(t=>{console.error(F.default.red("Fatal error:"),t.message||t),process.exit(1)});