context-mode 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/build/cli.js +22 -10
- package/build/server.js +1 -1
- package/cli.bundle.mjs +14 -14
- package/hooks/pretooluse.mjs +3 -1
- package/package.json +1 -1
- package/server.bundle.mjs +1 -1
package/hooks/pretooluse.mjs
CHANGED
|
@@ -40,7 +40,9 @@ try {
|
|
|
40
40
|
const cacheParent = dirname(myRoot);
|
|
41
41
|
const marker = resolve(tmpdir(), `context-mode-healed-${myVersion}`);
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
// Only self-heal inside plugin cache dirs — skip in dev/CI environments
|
|
44
|
+
const isInPluginCache = myRoot.includes("/plugins/cache/") || myRoot.includes("\\plugins\\cache\\");
|
|
45
|
+
if (myVersion !== "unknown" && isInPluginCache && !existsSync(marker)) {
|
|
44
46
|
// 1. If dir name doesn't match version (e.g. "0.7.0" but code is "0.9.12"),
|
|
45
47
|
// create correct dir, copy files, update registry + hooks
|
|
46
48
|
const correctDir = resolve(cacheParent, myVersion);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "context-mode",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "MCP plugin that saves 98% of your context window. Works with Claude Code, Gemini CLI, VS Code Copilot, OpenCode, and Codex CLI. Sandboxed code execution, FTS5 knowledge base, and intent-driven search.",
|
|
6
6
|
"author": "Mert Koseoğlu",
|
package/server.bundle.mjs
CHANGED
|
@@ -227,7 +227,7 @@ stdout:
|
|
|
227
227
|
${n}
|
|
228
228
|
|
|
229
229
|
stderr:
|
|
230
|
-
${o}`}}var lx="1.0.
|
|
230
|
+
${o}`}}var lx="1.0.10";process.on("unhandledRejection",t=>{process.stderr.write(`[context-mode] unhandledRejection: ${t}
|
|
231
231
|
`)});process.on("uncaughtException",t=>{process.stderr.write(`[context-mode] uncaughtException: ${t?.message??t}
|
|
232
232
|
`)});var hp=Ui(),uz=py(hp),Nt=new Zi({name:"context-mode",version:lx}),Wo=new Hi({runtimes:hp,projectRoot:process.env.CLAUDE_PROJECT_DIR}),Dn=null;function lz(t){try{let e=ra(ux(),".claude","context-mode","sessions");if(!cx(e))return;let r=oz(e).filter(n=>n.endsWith("-events.md"));for(let n of r){let o=ra(e,n);try{t.index({path:o,source:"session-events"}),nz(o)}catch{}}}catch{}}function Yo(){return Dn||(Dn=new Vi),lz(Dn),Dn}var qe={calls:{},bytesReturned:{},bytesIndexed:0,bytesSandboxed:0,sessionStart:Date.now()};function J(t,e){let r=e.content.reduce((n,o)=>n+Buffer.byteLength(o.text),0);return qe.calls[t]=(qe.calls[t]||0)+1,qe.bytesReturned[t]=(qe.bytesReturned[t]||0)+r,e}function gr(t){qe.bytesIndexed+=t}function gp(t,e){try{let r=Fd(process.env.CLAUDE_PROJECT_DIR),n=Hd(t,r);if(n.decision==="deny")return J(e,{content:[{type:"text",text:`Command blocked by security policy: matches deny pattern ${n.matchedPattern}`}],isError:!0})}catch{}return null}function dx(t,e,r){try{let n=Iy(t,e);if(n.length===0)return null;let o=Fd(process.env.CLAUDE_PROJECT_DIR);for(let s of n){let i=Hd(s,o);if(i.decision==="deny")return J(r,{content:[{type:"text",text:`Command blocked by security policy: embedded shell command "${s}" matches deny pattern ${i.matchedPattern}`}],isError:!0})}}catch{}return null}function dz(t,e){try{let r=zy("Read",process.env.CLAUDE_PROJECT_DIR),n=Oy(t,r);if(n.denied)return J(e,{content:[{type:"text",text:`File access blocked by security policy: path matches Read deny pattern ${n.matchedPattern}`}],isError:!0})}catch{}return null}var pz=uz.join(", "),fz=Zd()?" (Bun detected \u2014 JS/TS runs 3-5x faster)":"",mz="",hz="";function gz(t){let e=[],r=0,n=0;for(;n<t.length;)if(t[n]===mz){for(e.push(r),n++;n<t.length&&t[n]!==hz;)r++,n++;n<t.length&&n++}else r++,n++;return e}function px(t,e,r=1500,n){if(t.length<=r)return t;let o=[];if(n)for(let u of gz(n))o.push(u);if(o.length===0){let u=e.toLowerCase().split(/\s+/).filter(d=>d.length>2),l=t.toLowerCase();for(let d of u){let f=l.indexOf(d);for(;f!==-1;)o.push(f),f=l.indexOf(d,f+1)}}if(o.length===0)return t.slice(0,r)+`
|
|
233
233
|
\u2026`;o.sort((u,l)=>u-l);let s=300,i=[];for(let u of o){let l=Math.max(0,u-s),d=Math.min(t.length,u+s);i.length>0&&l<=i[i.length-1][1]?i[i.length-1][1]=d:i.push([l,d])}let a=[],c=0;for(let[u,l]of i){if(c>=r)break;let d=t.slice(u,Math.min(l,u+(r-c)));a.push((u>0?"\u2026":"")+d+(l<t.length?"\u2026":"")),c+=d.length}return a.join(`
|