context-mode 0.8.0 → 0.9.0
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/hooks/hooks.json +5 -5
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +3 -3
- package/.mcp.json +2 -2
- package/README.md +5 -1
- package/build/cli.js +51 -26
- package/build/executor.js +37 -6
- package/build/runtime.js +5 -2
- package/build/server.js +1 -1
- package/hooks/hooks.json +5 -5
- package/hooks/pretooluse.mjs +157 -0
- package/package.json +2 -2
- package/server.bundle.mjs +63 -57
- package/start.mjs +41 -0
- package/start.sh +0 -15
package/start.mjs
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { execSync } from "node:child_process";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { dirname, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
|
|
7
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
process.chdir(__dirname);
|
|
9
|
+
|
|
10
|
+
if (!process.env.CLAUDE_PROJECT_DIR) {
|
|
11
|
+
process.env.CLAUDE_PROJECT_DIR = process.cwd();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Ensure native module is available
|
|
15
|
+
if (!existsSync(resolve(__dirname, "node_modules", "better-sqlite3"))) {
|
|
16
|
+
try {
|
|
17
|
+
execSync("npm install better-sqlite3 --no-package-lock --no-save --silent", {
|
|
18
|
+
cwd: __dirname,
|
|
19
|
+
stdio: "pipe",
|
|
20
|
+
timeout: 60000,
|
|
21
|
+
});
|
|
22
|
+
} catch { /* best effort */ }
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Bundle exists (CI-built) — start instantly
|
|
26
|
+
if (existsSync(resolve(__dirname, "server.bundle.mjs"))) {
|
|
27
|
+
await import("./server.bundle.mjs");
|
|
28
|
+
} else {
|
|
29
|
+
// Dev or npm install — full build
|
|
30
|
+
if (!existsSync(resolve(__dirname, "node_modules"))) {
|
|
31
|
+
try {
|
|
32
|
+
execSync("npm install --silent", { cwd: __dirname, stdio: "pipe", timeout: 60000 });
|
|
33
|
+
} catch { /* best effort */ }
|
|
34
|
+
}
|
|
35
|
+
if (!existsSync(resolve(__dirname, "build", "server.js"))) {
|
|
36
|
+
try {
|
|
37
|
+
execSync("npx tsc --silent", { cwd: __dirname, stdio: "pipe", timeout: 30000 });
|
|
38
|
+
} catch { /* best effort */ }
|
|
39
|
+
}
|
|
40
|
+
await import("./build/server.js");
|
|
41
|
+
}
|
package/start.sh
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
3
|
-
DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
4
|
-
cd "$DIR"
|
|
5
|
-
|
|
6
|
-
# Bundle exists (CI-built) — start instantly, install native module in background
|
|
7
|
-
if [ -f server.bundle.mjs ]; then
|
|
8
|
-
[ -d node_modules/better-sqlite3 ] || npm install better-sqlite3 --no-package-lock --no-save --silent 2>/dev/null &
|
|
9
|
-
CLAUDE_PROJECT_DIR="$CLAUDE_PROJECT_DIR" exec node server.bundle.mjs
|
|
10
|
-
fi
|
|
11
|
-
|
|
12
|
-
# Fallback: no bundle (dev or npm install) — full build
|
|
13
|
-
[ -d node_modules ] || npm install --silent 2>/dev/null
|
|
14
|
-
[ -f build/server.js ] || npx tsc --silent 2>/dev/null
|
|
15
|
-
CLAUDE_PROJECT_DIR="$CLAUDE_PROJECT_DIR" exec node build/server.js
|