(t)
| 579 | stderr: |
| 580 | ${o}`}}var HP=x(()=>{"use strict"});import{execFileSync as GB}from"node:child_process";function JB(){if(process.platform==="win32")return NaN;let t=process.ppid;if(!t||t<=1)return NaN;try{let e=GB("ps",["-o","ppid=","-p",String(t)],{encoding:"utf-8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim(),n=parseInt(e,10);return Number.isFinite(n)?n:NaN}catch{return NaN}}function XB(t={}){let e=t.getPpid??(()=>process.ppid),n=t.readGrandparentPpid??JB,r=e(),o=n();return()=>{let s=e();return!(s!==r||s===0||s===1||!Number.isNaN(o)&&o>1&&n()===1)}}function QB(t=process.env){let e=t.CONTEXT_MODE_BRIDGE_DEPTH;if(e===void 0)return 3e4;let n=Number.parseInt(e,10);return!Number.isFinite(n)||n<=0?3e4:1e3}function eq(t=process.env){let e=Number.parseInt(t.CONTEXT_MODE_BRIDGE_DEPTH??"",10);if(!Number.isFinite(e)||e<=0)return 0;let n=t.CONTEXT_MODE_BRIDGE_IDLE_MS;if(n!==void 0){let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>0?r:0}return 18e4}function tq(t){return`[context-mode] Released an idle MCP helper after ${Math.round(t/1e3)}s of inactivity to free memory; it reconnects automatically on next use. (#854)`}function Q_(){Ya=Date.now()}function UP(){Jl++,Ya=Date.now()}function FP(){Jl>0&&Jl--,Ya=Date.now()}function ZP(t){if(!t)return;let e=typeof t.onmessage=="function"?t.onmessage.bind(t):null;e&&(t.onmessage=(n,r)=>{try{Q_()}catch{}return e(n,r)})}function BP(t){let e=t.checkIntervalMs??QB(),n=t.isParentAlive??YB,r=!1,o=()=>{r||(r=!0,t.onShutdown())},s=setInterval(()=>{n()||o()},e);s.unref();let i=["SIGTERM","SIGINT"];process.platform!=="win32"&&i.push("SIGHUP");for(let l of i)process.on(l,o);let a=()=>{n()||o()};process.stdin.isTTY||process.stdin.on("end",a);let c=t.bridgeIdleMs??eq(),u;return c>0&&(Ya=Date.now(),u=setInterval(()=>{Jl===0&&Date.now()-Ya>=c&&(process.stderr.write(tq(c)+` |
| 581 | `),o())},Math.max(1e3,Math.min(Math.floor(c/4),3e4))),u.unref()),()=>{r=!0,clearInterval(s),u&&clearInterval(u);for(let l of i)process.removeListener(l,o);process.stdin.removeListener("end",a)}}var YB,Ya,Jl,qP=x(()=>{"use strict";YB=XB();Ya=Date.now(),Jl=0});function VP(t,e){if(e<=0)return"";if(t.length<=e)return t;let n=e,r=t.charCodeAt(n-1);return r>=55296&&r<=56319&&(n-=1),t.slice(0,n)}var WP=x(()=>{"use strict"});import{existsSync as eb,unlinkSync as nq}from"node:fs";import{join as Qa}from"node:path";function tb(t,e){try{return nq(t),e.push(t),!0}catch{return!1}}function Xl(t,e){let n=!1;for(let r of rq)tb(`${t}${r}`,e)&&r===""&&(n=!0);return n}function KP(t){let{projectDir:e,sessionsDir:n,storePath:r,contentDir:o,legacyContentDir:s,contentHash:i,sessionId:a,scope:c}=t,u=[],l=[],d=c??(a?"session":"project");if(d==="session"&&!a)throw new TypeError("purgeSession: scope:'session' requires sessionId. Pass scope:'project' for the legacy whole-project wipe.");if(d==="session"&&a){let b=Oi(e),S=rt(e),T=On(e),M=S===T?[S]:[S,T],v=!1;for(let A of M){let R=Qa(n,`${A}${b}.db`);if(!eb(R))continue;let C=null;try{C=new Gt({dbPath:R});let H=C.getEvents(a).length;C.deleteSession(a),H>0&&(v=!0)}catch{}finally{try{C?.close()}catch{}}}v&&u.push(`session rows for ${a}`);let $=[];if(r&&eb(r)&&$.push(r),o){let A=rt(e),R=On(e),C=A===R?[A]:[A,R];for(let H of C){let W=Qa(o,`${H}.db`);eb(W)&&!$.includes(W)&&$.push(W)}}let P=!1;for(let A of $)try{let R=nt(),C=new R(A,{timeout:3e4});try{let H=C.prepare("SELECT COUNT(*) AS c FROM chunks WHERE session_id = ?").get(a).c;C.prepare("DELETE FROM chunks WHERE session_id = ?").run(a),C.prepare("DELETE FROM chunks_trigram WHERE session_id = ?").run(a),H>0&&(P=!0)}finally{try{C.close()}catch{}}}catch{}return P&&u.push(`FTS5 chunks for ${a}`),{deleted:u,wipedPaths:l}}let p=!1;if(r&&Xl(r,l)&&(p=!0),o){let b=rt(e),S=On(e),T=b===S?[b]:[b,S];for(let M of T){let v=Qa(o,`${M}.db`);Xl(v,l)&&(p=!0)}}if(p&&u.push("knowledge base (FTS5)"),s){if(!i)throw new TypeError("purgeSession: contentHash is required when legacyContentDir is provided");let b=Qa(s,`${i}.db`);Xl(b,l)}let f=Oi(e),m=rt(e),h=On(e),g=m===h?[m]:[m,h],y=!1,_=!1;for(let b of g){let S=Qa(n,`${b}${f}`);Xl(`${S}.db`,l)&&(y=!0),tb(`${S}-events.md`,l)&&(_=!0),tb(`${S}.cleanup`,l)}return y&&u.push("session events DB"),_&&u.push("session events markdown"),{deleted:u,wipedPaths:l}}var rq,GP=x(()=>{"use strict";hr();Jt();rq=["","-wal","-shm"]});import{existsSync as oq}from"node:fs";function nb(t,e){try{if(!oq(t))return;let n=new Gt({dbPath:t});try{let r=n.getLatestSessionId();if(!r)return;e(n,r)}finally{try{n.close()}catch{}}}catch{}}function JP(t){nb(t.sessionDbPath,(e,n)=>{e.insertEvent(n,{type:"sandbox-execute",category:"sandbox",priority:1,data:t.toolName,project_dir:"",attribution_source:"server",attribution_confidence:1},"ctx-server",void 0,{bytesReturned:t.bytesReturned})})}function XP(t){nb(t.sessionDbPath,(e,n)=>{e.insertEvent(n,{type:"index-write",category:"sandbox",priority:1,data:t.source,project_dir:"",attribution_source:"server",attribution_confidence:1},"ctx-server",void 0,{bytesAvoided:t.bytesAvoided})})}function YP(t){nb(t.sessionDbPath,(e,n)=>{e.insertEvent(n,{type:"cache-hit",category:"cache",priority:1,data:t.source,project_dir:"",attribution_source:"server",attribution_confidence:1},"ctx-server",void 0,{bytesAvoided:t.bytesAvoided})})}var QP=x(()=>{"use strict";Jt()});import{existsSync as eR}from"node:fs";function tR(t,e,n){try{if(!eR(t))return;let r=new Gt({dbPath:t});try{let o=r.getLatestSessionId();if(!o)return;r.incrementToolCall(o,e,n)}finally{r.close()}}catch{}}function nR(t){try{if(!eR(t))return null;let e=new Gt({dbPath:t});try{let n=e.getLatestSessionId();if(!n)return null;let r=e.getToolCallStats(n),o={},s={};for(let[a,c]of Object.entries(r.byTool))o[a]=c.calls,s[a]=c.bytesReturned;let i=Date.now();try{let a=e.getSessionStats(n);if(a?.started_at){let c=Date.parse(`${a.started_at}Z`);Number.isFinite(c)&&c>0&&(i=c)}}catch{}return Object.keys(o).length===0&&Object.keys(s).length===0?{calls:o,bytesReturned:s,sessionStart:i}:{calls:o,bytesReturned:s,sessionStart:i}}finally{e.close()}}catch{return null}}var rR=x(()=>{"use strict";Jt()});import{existsSync as rb,readFileSync as sq,readdirSync as iq,statSync as aq}from"node:fs";import{join as ui,isAbsolute as cq}from"node:path";function iR(t,e=5,n,r,o){let s=[],i=o?.getInstructionFiles()??["CLAUDE.md"],a=o?.getConfigDir(),u=(a?sR(n,a):null)??r??Ze(),l=o?.getMemoryDir(n),d=ui(u,"memory"),p=n?ui(d,rt(n)):d,f=l?sR(n,l):p,m=[];if(n)for(let h of i){let g=ui(n,h);rb(g)&&m.push({path:g,label:`project/${h}`})}if(u&&u!==n)for(let h of i){let g=ui(u,h);rb(g)&&m.push({path:g,label:`user/${h}`})}if(f&&rb(f))try{let h=iq(f).filter(g=>g.endsWith(".md"));for(let g of h)m.push({path:ui(f,g),label:`memory/${g}`})}catch(h){oR&&process.stderr.write(`[ctx] auto-memory dir scan failed: ${h} |
| 582 | `)}for(let h of m){if(s.length>=e)break;try{let g;try{if(g=aq(h.path),g.size>1e6)continue}catch{continue}let y=sq(h.path,"utf-8"),_=y.toLowerCase();for(let b of t){if(s.length>=e)break;let T=b.toLowerCase().split(/\s+/).filter(v=>v.length>=3);if(T.some(v=>{try{return new RegExp(`\\b${v.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\b`,"i").test(y)}catch{return _.includes(v)}})){let v=T.reduce((H,W)=>{let ge=_.indexOf(W);return ge>=0&&(H<0||ge<H)?ge:H},-1),$=Math.max(0,v-200),P=Math.min(y.length,v+500),A=y.lastIndexOf(` |
| 583 | |
| 584 | `,$),R=y.indexOf(` |
no test coverage detected