diff --git a/plugin/scripts/context-generator.cjs b/plugin/scripts/context-generator.cjs index c3343955..9071ec61 100644 --- a/plugin/scripts/context-generator.cjs +++ b/plugin/scripts/context-generator.cjs @@ -1,5 +1,3 @@ -var __filename = require("node:url").fileURLToPath(import.meta.url); -var __dirname = require("node:path").dirname(__filename); "use strict";var Tt=Object.create;var U=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var ft=Object.getOwnPropertyNames;var bt=Object.getPrototypeOf,St=Object.prototype.hasOwnProperty;var ht=(r,e)=>{for(var t in e)U(r,t,{get:e[t],enumerable:!0})},de=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ft(e))!St.call(r,n)&&n!==t&&U(r,n,{get:()=>e[n],enumerable:!(s=gt(e,n))||s.enumerable});return r};var y=(r,e,t)=>(t=r!=null?Tt(bt(r)):{},de(e||!r||!r.__esModule?U(t,"default",{value:r,enumerable:!0}):t,r)),Ot=r=>de(U({},"__esModule",{value:!0}),r);var Pt={};ht(Pt,{generateContext:()=>ae});module.exports=Ot(Pt);var _t=y(require("path"),1),ut=require("os"),lt=require("fs");var Te=require("bun:sqlite");var S=require("path"),K=require("os"),k=require("fs");var me=require("url");var A=require("fs"),v=require("path"),pe=require("os"),q=(o=>(o[o.DEBUG=0]="DEBUG",o[o.INFO=1]="INFO",o[o.WARN=2]="WARN",o[o.ERROR=3]="ERROR",o[o.SILENT=4]="SILENT",o))(q||{}),ce=(0,v.join)((0,pe.homedir)(),".claude-mem"),V=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=(0,v.join)(ce,"logs");(0,A.existsSync)(e)||(0,A.mkdirSync)(e,{recursive:!0});let t=new Date().toISOString().split("T")[0];this.logFilePath=(0,v.join)(e,`claude-mem-${t}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,v.join)(ce,"settings.json");if((0,A.existsSync)(e)){let t=(0,A.readFileSync)(e,"utf-8"),n=(JSON.parse(t).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=q[n]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}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} ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;let s=t;if(typeof t=="string")try{s=JSON.parse(t)}catch{s=t}if(e==="Bash"&&s.command)return`${e}(${s.command})`;if(s.file_path)return`${e}(${s.file_path})`;if(s.notebook_path)return`${e}(${s.notebook_path})`;if(e==="Glob"&&s.pattern)return`${e}(${s.pattern})`;if(e==="Grep"&&s.pattern)return`${e}(${s.pattern})`;if(s.url)return`${e}(${s.url})`;if(s.query)return`${e}(${s.query})`;if(e==="Task"){if(s.subagent_type)return`${e}(${s.subagent_type})`;if(s.description)return`${e}(${s.description})`}return e==="Skill"&&s.skill?`${e}(${s.skill})`:e==="LSP"&&s.operation?`${e}(${s.operation})`:e}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),d=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${n} ${o}:${i}:${a}.${d}`}log(e,t,s,n,o){if(e()=>(e||t((e={exports:{}}).exports,e),e.exports),In=(t,e)=>{for(var r in e)Rs(t,r,{get:e[r],enumerable:!0})},b$=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of _$(e))!$$.call(t,o)&&o!==r&&Rs(t,o,{get:()=>e[o],enumerable:!(n=v$(e,o))||n.enumerable});return t};var vi=(t,e,r)=>(r=t!=null?g$(y$(t)):{},b$(e||!t||!t.__esModule?Rs(r,"default",{value:t,enumerable:!0}):r,t));var Lo=S(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.regexpCode=re.getEsmExportName=re.getProperty=re.safeStringify=re.stringify=re.strConcat=re.addCodeArg=re.str=re._=re.nil=re._Code=re.Name=re.IDENTIFIER=re._CodeOrName=void 0;var Uo=class{};re._CodeOrName=Uo;re.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var xr=class extends Uo{constructor(e){if(super(),!re.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};re.Name=xr;var it=class extends Uo{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof xr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};re._Code=it;re.nil=new it("");function ov(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.ValueScope=Ve.ValueScopeName=Ve.Scope=Ve.varKinds=Ve.UsedValueState=void 0;var Fe=Lo(),jd=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Za;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Za||(Ve.UsedValueState=Za={}));Ve.varKinds={const:new Fe.Name("const"),let:new Fe.Name("let"),var:new Fe.Name("var")};var La=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Fe.Name?e:this.name(e)}name(e){return new Fe.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ve.Scope=La;var qa=class extends Fe.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Fe._)`.${new Fe.Name(r)}[${n}]`}};Ve.ValueScopeName=qa;var gw=(0,Fe._)`\n`,Dd=class extends La{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?gw:Fe.nil}}get(){return this._scope}name(e){return new qa(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:i}=o,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let l=s.get(a);if(l)return l}else s=this._values[i]=new Map;s.set(a,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Fe._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=Fe.nil;for(let a in e){let s=e[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,Za.Started);let l=r(u);if(l){let d=this.opts.es5?Ve.varKinds.var:Ve.varKinds.const;i=(0,Fe._)`${i}${d} ${u} = ${l};${this.opts._n}`}else if(l=o?.(u))i=(0,Fe._)`${i}${l}${this.opts._n}`;else throw new jd(u);c.set(u,Za.Completed)})}return i}};Ve.ValueScope=Dd});var W=S(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.or=H.and=H.not=H.CodeGen=H.operators=H.varKinds=H.ValueScopeName=H.ValueScope=H.Scope=H.Name=H.regexpCode=H.stringify=H.getProperty=H.nil=H.strConcat=H.str=H._=void 0;var Q=Lo(),pt=Nd(),ir=Lo();Object.defineProperty(H,"_",{enumerable:!0,get:function(){return ir._}});Object.defineProperty(H,"str",{enumerable:!0,get:function(){return ir.str}});Object.defineProperty(H,"strConcat",{enumerable:!0,get:function(){return ir.strConcat}});Object.defineProperty(H,"nil",{enumerable:!0,get:function(){return ir.nil}});Object.defineProperty(H,"getProperty",{enumerable:!0,get:function(){return ir.getProperty}});Object.defineProperty(H,"stringify",{enumerable:!0,get:function(){return ir.stringify}});Object.defineProperty(H,"regexpCode",{enumerable:!0,get:function(){return ir.regexpCode}});Object.defineProperty(H,"Name",{enumerable:!0,get:function(){return ir.Name}});var Wa=Nd();Object.defineProperty(H,"Scope",{enumerable:!0,get:function(){return Wa.Scope}});Object.defineProperty(H,"ValueScope",{enumerable:!0,get:function(){return Wa.ValueScope}});Object.defineProperty(H,"ValueScopeName",{enumerable:!0,get:function(){return Wa.ValueScopeName}});Object.defineProperty(H,"varKinds",{enumerable:!0,get:function(){return Wa.varKinds}});H.operators={GT:new Q._Code(">"),GTE:new Q._Code(">="),LT:new Q._Code("<"),LTE:new Q._Code("<="),EQ:new Q._Code("==="),NEQ:new Q._Code("!=="),NOT:new Q._Code("!"),OR:new Q._Code("||"),AND:new Q._Code("&&"),ADD:new Q._Code("+")};var Ut=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Rd=class extends Ut{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?pt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=un(this.rhs,e,r)),this}get names(){return this.rhs instanceof Q._CodeOrName?this.rhs.names:{}}},Fa=class extends Ut{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof Q.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=un(this.rhs,e,r),this}get names(){let e=this.lhs instanceof Q.Name?{}:{...this.lhs.names};return Ja(e,this.rhs)}},Ad=class extends Fa{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Md=class extends Ut{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Cd=class extends Ut{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Ud=class extends Ut{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Zd=class extends Ut{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=un(this.code,e,r),this}get names(){return this.code instanceof Q._CodeOrName?this.code.names:{}}},qo=class extends Ut{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(vw(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>wr(e,r.names),{})}},Zt=class extends qo{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Ld=class extends qo{},cn=class extends Zt{};cn.kind="else";var kr=class t extends Zt{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new cn(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(av(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=un(this.condition,e,r),this}get names(){let e=super.names;return Ja(e,this.condition),this.else&&wr(e,this.else.names),e}};kr.kind="if";var Sr=class extends Zt{};Sr.kind="for";var qd=class extends Sr{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=un(this.iteration,e,r),this}get names(){return wr(super.names,this.iteration.names)}},Fd=class extends Sr{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?pt.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=Ja(super.names,this.from);return Ja(e,this.to)}},Va=class extends Sr{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=un(this.iterable,e,r),this}get names(){return wr(super.names,this.iterable.names)}},Fo=class extends Zt{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};Fo.kind="func";var Vo=class extends qo{render(e){return"return "+super.render(e)}};Vo.kind="return";var Vd=class extends Zt{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&wr(e,this.catch.names),this.finally&&wr(e,this.finally.names),e}},Jo=class extends Zt{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Jo.kind="catch";var Wo=class extends Zt{render(e){return"finally"+super.render(e)}};Wo.kind="finally";var Jd=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` `:""},this._extScope=e,this._scope=new pt.Scope({parent:e}),this._nodes=[new Ld]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new Rd(e,i,n)),i}const(e,r,n){return this._def(pt.varKinds.const,e,r,n)}let(e,r,n){return this._def(pt.varKinds.let,e,r,n)}var(e,r,n){return this._def(pt.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new Fa(e,r,n))}add(e,r){return this._leafNode(new Ad(e,H.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==Q.nil&&this._leafNode(new Zd(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,Q.addCodeArg)(r,o));return r.push("}"),new Q._Code(r)}if(e,r,n){if(this._blockNode(new kr(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new kr(e))}else(){return this._elseNode(new cn)}endIf(){return this._endBlockNode(kr,cn)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new qd(e),r)}forRange(e,r,n,o,i=this.opts.es5?pt.varKinds.var:pt.varKinds.let){let a=this._scope.toName(e);return this._for(new Fd(i,a,r,n),()=>o(a))}forOf(e,r,n,o=pt.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let a=r instanceof Q.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Q._)`${a}.length`,s=>{this.var(i,(0,Q._)`${a}[${s}]`),n(i)})}return this._for(new Va("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?pt.varKinds.var:pt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Q._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new Va("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(Sr)}label(e){return this._leafNode(new Md(e))}break(e){return this._leafNode(new Cd(e))}return(e){let r=new Vo;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Vo)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Vd;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new Jo(i),r(i)}return n&&(this._currNode=o.finally=new Wo,this.code(n)),this._endBlockNode(Jo,Wo)}throw(e){return this._leafNode(new Ud(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=Q.nil,n,o){return this._blockNode(new Fo(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Fo)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof kr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};H.CodeGen=Jd;function wr(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Ja(t,e){return e instanceof Q._CodeOrName?wr(t,e.names):t}function un(t,e,r){if(t instanceof Q.Name)return n(t);if(!o(t))return t;return new Q._Code(t._items.reduce((i,a)=>(a instanceof Q.Name&&(a=n(a)),a instanceof Q._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||e[i.str]!==1?i:(delete e[i.str],a)}function o(i){return i instanceof Q._Code&&i._items.some(a=>a instanceof Q.Name&&e[a.str]===1&&r[a.str]!==void 0)}}function vw(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function av(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Q._)`!${Wd(t)}`}H.not=av;var _w=sv(H.operators.AND);function yw(...t){return t.reduce(_w)}H.and=yw;var $w=sv(H.operators.OR);function bw(...t){return t.reduce($w)}H.or=bw;function sv(t){return(e,r)=>e===Q.nil?r:r===Q.nil?e:(0,Q._)`${Wd(e)} ${t} ${Wd(r)}`}function Wd(t){return t instanceof Q.Name?t:(0,Q._)`(${t})`}});var ee=S(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.checkStrictMode=B.getErrorPath=B.Type=B.useFunc=B.setEvaluated=B.evaluatedPropsToName=B.mergeEvaluated=B.eachItem=B.unescapeJsonPointer=B.escapeJsonPointer=B.escapeFragment=B.unescapeFragment=B.schemaRefOrVal=B.schemaHasRulesButRef=B.schemaHasRules=B.checkUnknownRules=B.alwaysValidSchema=B.toHash=void 0;var le=W(),xw=Lo();function kw(t){let e={};for(let r of t)e[r]=!0;return e}B.toHash=kw;function Sw(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(lv(t,e),!dv(e,t.self.RULES.all))}B.alwaysValidSchema=Sw;function lv(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let i in e)o[i]||mv(t,`unknown keyword: "${i}"`)}B.checkUnknownRules=lv;function dv(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}B.schemaHasRules=dv;function ww(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}B.schemaHasRulesButRef=ww;function zw({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,le._)`${r}`}return(0,le._)`${t}${e}${(0,le.getProperty)(n)}`}B.schemaRefOrVal=zw;function Iw(t){return pv(decodeURIComponent(t))}B.unescapeFragment=Iw;function Ew(t){return encodeURIComponent(Hd(t))}B.escapeFragment=Ew;function Hd(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}B.escapeJsonPointer=Hd;function pv(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}B.unescapeJsonPointer=pv;function Tw(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}B.eachItem=Tw;function cv({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,i,a,s)=>{let c=a===void 0?i:a instanceof le.Name?(i instanceof le.Name?t(o,i,a):e(o,i,a),a):i instanceof le.Name?(e(o,a,i),i):r(i,a);return s===le.Name&&!(c instanceof le.Name)?n(o,c):c}}B.mergeEvaluated={props:cv({mergeNames:(t,e,r)=>t.if((0,le._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,le._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,le._)`${r} || {}`).code((0,le._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,le._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,le._)`${r} || {}`),Gd(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:fv}),items:cv({mergeNames:(t,e,r)=>t.if((0,le._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,le._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,le._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,le._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function fv(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,le._)`{}`);return e!==void 0&&Gd(t,r,e),r}B.evaluatedPropsToName=fv;function Gd(t,e,r){Object.keys(r).forEach(n=>t.assign((0,le._)`${e}${(0,le.getProperty)(n)}`,!0))}B.setEvaluated=Gd;var uv={};function Pw(t,e){return t.scopeValue("func",{ref:e,code:uv[e.code]||(uv[e.code]=new xw._Code(e.code))})}B.useFunc=Pw;var Kd;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Kd||(B.Type=Kd={}));function Ow(t,e,r){if(t instanceof le.Name){let n=e===Kd.Num;return r?n?(0,le._)`"[" + ${t} + "]"`:(0,le._)`"['" + ${t} + "']"`:n?(0,le._)`"/" + ${t}`:(0,le._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,le.getProperty)(t).toString():"/"+Hd(t)}B.getErrorPath=Ow;function mv(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}B.checkStrictMode=mv});var Lt=S(Bd=>{"use strict";Object.defineProperty(Bd,"__esModule",{value:!0});var Oe=W(),jw={data:new Oe.Name("data"),valCxt:new Oe.Name("valCxt"),instancePath:new Oe.Name("instancePath"),parentData:new Oe.Name("parentData"),parentDataProperty:new Oe.Name("parentDataProperty"),rootData:new Oe.Name("rootData"),dynamicAnchors:new Oe.Name("dynamicAnchors"),vErrors:new Oe.Name("vErrors"),errors:new Oe.Name("errors"),this:new Oe.Name("this"),self:new Oe.Name("self"),scope:new Oe.Name("scope"),json:new Oe.Name("json"),jsonPos:new Oe.Name("jsonPos"),jsonLen:new Oe.Name("jsonLen"),jsonPart:new Oe.Name("jsonPart")};Bd.default=jw});var Ko=S(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.extendErrors=je.resetErrorsCount=je.reportExtraError=je.reportError=je.keyword$DataError=je.keywordError=void 0;var te=W(),Ka=ee(),Ue=Lt();je.keywordError={message:({keyword:t})=>(0,te.str)`must pass "${t}" keyword validation`};je.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,te.str)`"${t}" keyword must be ${e} ($data)`:(0,te.str)`"${t}" keyword is invalid ($data)`};function Dw(t,e=je.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:a,allErrors:s}=o,c=vv(t,e,r);n??(a||s)?hv(i,c):gv(o,(0,te._)`[${c}]`)}je.reportError=Dw;function Nw(t,e=je.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:a}=n,s=vv(t,e,r);hv(o,s),i||a||gv(n,Ue.default.vErrors)}je.reportExtraError=Nw;function Rw(t,e){t.assign(Ue.default.errors,e),t.if((0,te._)`${Ue.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,te._)`${Ue.default.vErrors}.length`,e),()=>t.assign(Ue.default.vErrors,null)))}je.resetErrorsCount=Rw;function Aw({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let a=t.name("err");t.forRange("i",o,Ue.default.errors,s=>{t.const(a,(0,te._)`${Ue.default.vErrors}[${s}]`),t.if((0,te._)`${a}.instancePath === undefined`,()=>t.assign((0,te._)`${a}.instancePath`,(0,te.strConcat)(Ue.default.instancePath,i.errorPath))),t.assign((0,te._)`${a}.schemaPath`,(0,te.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,te._)`${a}.schema`,r),t.assign((0,te._)`${a}.data`,n))})}je.extendErrors=Aw;function hv(t,e){let r=t.const("err",e);t.if((0,te._)`${Ue.default.vErrors} === null`,()=>t.assign(Ue.default.vErrors,(0,te._)`[${r}]`),(0,te._)`${Ue.default.vErrors}.push(${r})`),t.code((0,te._)`${Ue.default.errors}++`)}function gv(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,te._)`new ${t.ValidationError}(${e})`):(r.assign((0,te._)`${n}.errors`,e),r.return(!1))}var zr={keyword:new te.Name("keyword"),schemaPath:new te.Name("schemaPath"),params:new te.Name("params"),propertyName:new te.Name("propertyName"),message:new te.Name("message"),schema:new te.Name("schema"),parentSchema:new te.Name("parentSchema")};function vv(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,te._)`{}`:Mw(t,e,r)}function Mw(t,e,r={}){let{gen:n,it:o}=t,i=[Cw(o,r),Uw(t,r)];return Zw(t,e,i),n.object(...i)}function Cw({errorPath:t},{instancePath:e}){let r=e?(0,te.str)`${t}${(0,Ka.getErrorPath)(e,Ka.Type.Str)}`:t;return[Ue.default.instancePath,(0,te.strConcat)(Ue.default.instancePath,r)]}function Uw({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,te.str)`${e}/${t}`;return r&&(o=(0,te.str)`${o}${(0,Ka.getErrorPath)(r,Ka.Type.Str)}`),[zr.schemaPath,o]}function Zw(t,{params:e,message:r},n){let{keyword:o,data:i,schemaValue:a,it:s}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([zr.keyword,o],[zr.params,typeof e=="function"?e(t):e||(0,te._)`{}`]),c.messages&&n.push([zr.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([zr.schema,a],[zr.parentSchema,(0,te._)`${l}${d}`],[Ue.default.data,i]),u&&n.push([zr.propertyName,u])}});var yv=S(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.boolOrEmptySchema=ln.topBoolOrEmptySchema=void 0;var Lw=Ko(),qw=W(),Fw=Lt(),Vw={message:"boolean schema is false"};function Jw(t){let{gen:e,schema:r,validateName:n}=t;r===!1?_v(t,!1):typeof r=="object"&&r.$async===!0?e.return(Fw.default.data):(e.assign((0,qw._)`${n}.errors`,null),e.return(!0))}ln.topBoolOrEmptySchema=Jw;function Ww(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),_v(t)):r.var(e,!0)}ln.boolOrEmptySchema=Ww;function _v(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,Lw.reportError)(o,Vw,void 0,e)}});var Xd=S(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.getRules=dn.isJSONType=void 0;var Kw=["string","number","integer","boolean","null","object","array"],Hw=new Set(Kw);function Gw(t){return typeof t=="string"&&Hw.has(t)}dn.isJSONType=Gw;function Bw(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}dn.getRules=Bw});var Yd=S(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.shouldUseRule=ar.shouldUseGroup=ar.schemaHasRulesForType=void 0;function Xw({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&$v(t,n)}ar.schemaHasRulesForType=Xw;function $v(t,e){return e.rules.some(r=>bv(t,r))}ar.shouldUseGroup=$v;function bv(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}ar.shouldUseRule=bv});var Ho=S(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.reportTypeError=De.checkDataTypes=De.checkDataType=De.coerceAndCheckDataType=De.getJSONTypes=De.getSchemaTypes=De.DataType=void 0;var Yw=Xd(),Qw=Yd(),e0=Ko(),J=W(),xv=ee(),pn;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(pn||(De.DataType=pn={}));function t0(t){let e=kv(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}De.getSchemaTypes=t0;function kv(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(Yw.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}De.getJSONTypes=kv;function r0(t,e){let{gen:r,data:n,opts:o}=t,i=n0(e,o.coerceTypes),a=e.length>0&&!(i.length===0&&e.length===1&&(0,Qw.schemaHasRulesForType)(t,e[0]));if(a){let s=ep(e,n,o.strictNumbers,pn.Wrong);r.if(s,()=>{i.length?o0(t,e,i):tp(t)})}return a}De.coerceAndCheckDataType=r0;var Sv=new Set(["string","number","integer","boolean","null"]);function n0(t,e){return e?t.filter(r=>Sv.has(r)||e==="array"&&r==="array"):[]}function o0(t,e,r){let{gen:n,data:o,opts:i}=t,a=n.let("dataType",(0,J._)`typeof ${o}`),s=n.let("coerced",(0,J._)`undefined`);i.coerceTypes==="array"&&n.if((0,J._)`${a} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,J._)`${o}[0]`).assign(a,(0,J._)`typeof ${o}`).if(ep(e,o,i.strictNumbers),()=>n.assign(s,o))),n.if((0,J._)`${s} !== undefined`);for(let u of r)(Sv.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),tp(t),n.endIf(),n.if((0,J._)`${s} !== undefined`,()=>{n.assign(o,s),i0(t,s)});function c(u){switch(u){case"string":n.elseIf((0,J._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,J._)`"" + ${o}`).elseIf((0,J._)`${o} === null`).assign(s,(0,J._)`""`);return;case"number":n.elseIf((0,J._)`${a} == "boolean" || ${o} === null || (${a} == "string" && ${o} && ${o} == +${o})`).assign(s,(0,J._)`+${o}`);return;case"integer":n.elseIf((0,J._)`${a} === "boolean" || ${o} === null diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index df8277d3..556fa0ab 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -824,7 +824,7 @@ View Observations Live @ http://localhost:${i}`:void 0;return{hookSpecificOutput `),s=!1;for(let o=i.length-1;o>=0;o--){let a=JSON.parse(i[o]);if(a.type===e&&(s=!0,a.message?.content)){let c="",u=a.message.content;if(typeof u=="string")c=u;else if(Array.isArray(u))c=u.filter(l=>l.type==="text").map(l=>l.text).join(` `);else throw new Error(`Unknown message content format in transcript. Type: ${typeof u}`);return r&&(c=c.replace(/[\s\S]*?<\/system-reminder>/g,""),c=c.replace(/\n{3,}/g,` -`).trim()),c}}return""}var vv,O9=Pe(()=>{"use strict";vv=require("fs");oe()});var mge,O$,P$=Pe(()=>{"use strict";qr();oe();O9();gn();mge=Pf(_r.DEFAULT),O$={async execute(t){if(!await en())return{continue:!0,suppressOutput:!0,exitCode:st.SUCCESS};let{sessionId:r,transcriptPath:n}=t;if(!n)return y.debug("HOOK",`No transcriptPath in Stop hook input for session ${r} - skipping summary`),{continue:!0,suppressOutput:!0,exitCode:st.SUCCESS};let i="";try{i=R9(n,"assistant",!0)}catch(o){return y.warn("HOOK",`Failed to extract last assistant message: ${o instanceof Error?o.message:o}`),{continue:!0,suppressOutput:!0,exitCode:st.SUCCESS}}return y.dataIn("HOOK","Stop: Requesting summary",{hasLastAssistantMessage:!!i}),(await jt("/api/sessions/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,last_assistant_message:i}),timeoutMs:mge})).ok?(y.debug("HOOK","Summary request sent successfully"),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var P9,C$,A$=Pe(()=>{"use strict";P9=require("path");qr();gn();C$={async execute(t){if(!await en())return{exitCode:st.SUCCESS};let r=Ur(),n=(0,P9.basename)(t.cwd??process.cwd());try{let i=await jt(`/api/context/inject?project=${encodeURIComponent(n)}&colors=true`);if(!i.ok)return{exitCode:st.SUCCESS};let s=await i.text();process.stderr.write(` +`).trim()),c}}return""}var vv,O9=Pe(()=>{"use strict";vv=require("fs");oe()});var mge,O$,P$=Pe(()=>{"use strict";qr();oe();O9();gn();mge=Pf(_r.DEFAULT),O$={async execute(t){if(!await en())return{continue:!0,suppressOutput:!0,exitCode:st.SUCCESS};let{sessionId:r,transcriptPath:n}=t;if(!n)return y.debug("HOOK",`No transcriptPath in Stop hook input for session ${r} - skipping summary`),{continue:!0,suppressOutput:!0,exitCode:st.SUCCESS};let i="";try{i=R9(n,"assistant",!0)}catch(o){return y.warn("HOOK",`Stop hook: failed to extract last assistant message for session ${r}: ${o instanceof Error?o.message:o}`),{continue:!0,suppressOutput:!0,exitCode:st.SUCCESS}}return y.dataIn("HOOK","Stop: Requesting summary",{hasLastAssistantMessage:!!i}),(await jt("/api/sessions/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,last_assistant_message:i}),timeoutMs:mge})).ok?(y.debug("HOOK","Summary request sent successfully"),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var P9,C$,A$=Pe(()=>{"use strict";P9=require("path");qr();gn();C$={async execute(t){if(!await en())return{exitCode:st.SUCCESS};let r=Ur(),n=(0,P9.basename)(t.cwd??process.cwd());try{let i=await jt(`/api/context/inject?project=${encodeURIComponent(n)}&colors=true`);if(!i.ok)return{exitCode:st.SUCCESS};let s=await i.text();process.stderr.write(` `+String.fromCodePoint(128221)+` Claude-Mem Context Loaded diff --git a/scripts/build-hooks.js b/scripts/build-hooks.js index 58a6cc95..2dde9ee7 100644 --- a/scripts/build-hooks.js +++ b/scripts/build-hooks.js @@ -157,11 +157,7 @@ async function buildHooks() { '__DEFAULT_PACKAGE_VERSION__': `"${version}"` }, banner: { - js: [ - '#!/usr/bin/env node', - 'var __filename = require("node:url").fileURLToPath(import.meta.url);', - 'var __dirname = require("node:path").dirname(__filename);' - ].join('\n') + js: '#!/usr/bin/env node' } }); @@ -185,12 +181,7 @@ async function buildHooks() { define: { '__DEFAULT_PACKAGE_VERSION__': `"${version}"` }, - banner: { - js: [ - 'var __filename = require("node:url").fileURLToPath(import.meta.url);', - 'var __dirname = require("node:path").dirname(__filename);' - ].join('\n') - } + // No banner needed: CJS files under Node.js have __dirname/__filename natively }); const contextGenStats = fs.statSync(`${hooksDir}/${CONTEXT_GENERATOR.name}.cjs`);