@exero1/claudecontext 0.1.2 → 0.1.4
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/dist/installer/install.js +156 -133
- package/dist/installer/install.js.map +1 -1
- package/hooks/post-write.mjs +2 -8
- package/hooks/pre-compact.mjs +7 -17
- package/hooks/pre-tool-use.mjs +7 -16
- package/hooks/session-start.mjs +26 -24
- package/package.json +3 -2
|
@@ -36,14 +36,21 @@ function ask(rl, question) {
|
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
+
function askDefault(rl, question, defaultVal) {
|
|
40
|
+
return new Promise(resolve => {
|
|
41
|
+
rl.question(` ${question} [${defaultVal}]: `, answer => {
|
|
42
|
+
resolve(answer.trim() || defaultVal);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
39
46
|
function mergeJson(existing, patch) {
|
|
40
47
|
return { ...existing, ...patch };
|
|
41
48
|
}
|
|
42
49
|
async function cmdInit(projectRoot, opts = {}) {
|
|
43
50
|
process.stdout.write('\n╔══════════════════════════════════════╗\n');
|
|
44
|
-
process.stdout.write('║
|
|
51
|
+
process.stdout.write('║ ClaudeContext Setup ║\n');
|
|
45
52
|
process.stdout.write('╚══════════════════════════════════════╝\n\n');
|
|
46
|
-
log(`Setting up
|
|
53
|
+
log(`Setting up in: ${projectRoot}`);
|
|
47
54
|
let projectName;
|
|
48
55
|
let projectDesc;
|
|
49
56
|
let techStack;
|
|
@@ -95,44 +102,43 @@ async function cmdInit(projectRoot, opts = {}) {
|
|
|
95
102
|
process.exit(1);
|
|
96
103
|
}
|
|
97
104
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
process.stdout.write('\n');
|
|
106
|
+
projectName = await askDefault(rl, 'Project name', basename(projectRoot));
|
|
107
|
+
projectDesc = await ask(rl, 'What are you building? (optional — press Enter to skip):');
|
|
108
|
+
techStack = '';
|
|
109
|
+
testStrategy = '';
|
|
110
|
+
conventions = '';
|
|
111
|
+
invariants = '';
|
|
112
|
+
// Auto-detect areas from existing code
|
|
113
|
+
process.stdout.write('\n Scanning project structure...\n');
|
|
106
114
|
const detected = detectAreas(projectRoot);
|
|
115
|
+
areas = [];
|
|
107
116
|
if (detected.length > 0) {
|
|
108
|
-
log(`
|
|
117
|
+
log(`Found: ${detected.map(a => a.name).join(', ')}`);
|
|
118
|
+
const confirm = await askDefault(rl, 'Use these?', 'Y');
|
|
119
|
+
if (confirm.toLowerCase() !== 'n') {
|
|
120
|
+
areas = detected;
|
|
121
|
+
ok(`Using ${areas.length} area(s)`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
log('No existing code found — areas will be detected automatically as you add files.');
|
|
126
|
+
}
|
|
127
|
+
if (areas.length === 0) {
|
|
128
|
+
const manual = await ask(rl, 'Any main sections to track? (comma-separated names like "auth, api, database" — or press Enter to skip):');
|
|
129
|
+
if (manual) {
|
|
130
|
+
areas = manual.split(',').map(n => n.trim()).filter(Boolean).map(name => ({
|
|
131
|
+
name,
|
|
132
|
+
globs: [`src/${name}/**`, `**/${name}*`],
|
|
133
|
+
docPath: `docs/context/${name}.md`,
|
|
134
|
+
}));
|
|
135
|
+
if (areas.length > 0)
|
|
136
|
+
ok(`Added: ${areas.map(a => a.name).join(', ')}`);
|
|
137
|
+
}
|
|
109
138
|
}
|
|
110
|
-
log('Enter your main code areas. Press Enter with empty input to finish.');
|
|
111
|
-
log('Example: auth, api, database, frontend');
|
|
112
|
-
areas = [];
|
|
113
|
-
while (true) {
|
|
114
|
-
const areaName = await ask(rl, `Area name (or Enter to finish):`);
|
|
115
|
-
if (!areaName)
|
|
116
|
-
break;
|
|
117
|
-
const globs = await ask(rl, ` File patterns for "${areaName}" (comma-separated, e.g. src/auth/**,src/middleware/auth*):`);
|
|
118
|
-
areas.push({
|
|
119
|
-
name: areaName,
|
|
120
|
-
globs: globs.split(',').map(g => g.trim()).filter(Boolean),
|
|
121
|
-
docPath: `docs/context/${areaName}.md`,
|
|
122
|
-
});
|
|
123
|
-
ok(`Area "${areaName}" added`);
|
|
124
|
-
}
|
|
125
|
-
if (areas.length === 0 && detected.length > 0) {
|
|
126
|
-
areas = detected;
|
|
127
|
-
log(`No areas entered — using auto-detected areas: ${areas.map(a => a.name).join(', ')}`);
|
|
128
|
-
}
|
|
129
|
-
// Step 3/4: Conventions
|
|
130
|
-
process.stdout.write('\n── Step 3/4: Conventions ───────────────\n');
|
|
131
|
-
conventions = await ask(rl, 'Key conventions (e.g. "Use async/await, no callbacks; snake_case for DB"):');
|
|
132
|
-
invariants = await ask(rl, 'Critical invariants (e.g. "Never expose user IDs in URLs"):');
|
|
133
139
|
rl.close();
|
|
134
140
|
}
|
|
135
|
-
process.stdout.write('\n
|
|
141
|
+
process.stdout.write('\n Setting up your files...\n');
|
|
136
142
|
// Create directories
|
|
137
143
|
const stateDir = join(projectRoot, '.claudecontext');
|
|
138
144
|
const hooksDir = join(projectRoot, '.claude', 'hooks');
|
|
@@ -154,52 +160,28 @@ async function cmdInit(projectRoot, opts = {}) {
|
|
|
154
160
|
? areas.map(a => `- **${a.name}**: \`${a.globs.join(', ')}\` → docs at \`${a.docPath}\``).join('\n')
|
|
155
161
|
: '- (no areas configured — run `claudecontext init` to add areas)';
|
|
156
162
|
const claudeMdContent = `# ${projectName || 'Project'}
|
|
163
|
+
${projectDesc ? `\n${projectDesc}\n` : ''}
|
|
164
|
+
## ClaudeContext — Session Instructions
|
|
157
165
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
**MANDATORY — do these every session:**
|
|
161
|
-
|
|
162
|
-
1. **Start of session / after compaction:** call \`context_get_bundle\` immediately. This restores your task context.
|
|
163
|
-
2. **After EVERY technical decision** (architecture choice, tradeoff accepted, approach selected): call \`context_update_task\` and record it in the "decisions" field. Do not defer this — decisions not recorded here are permanently lost on compaction.
|
|
164
|
-
3. **First time you understand the goal:** call \`context_update_task\` to set the "goal" field in plain English.
|
|
165
|
-
4. **Files touched** are auto-tracked by the post-write hook — you do NOT need to add them manually.
|
|
166
|
-
5. To show the user what context is loaded: call \`context_status\`.
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Project Description
|
|
171
|
-
|
|
172
|
-
${projectDesc || '(add description)'}
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Tech Stack
|
|
177
|
-
|
|
178
|
-
${techStack || '(add tech stack)'}
|
|
166
|
+
**Do these every session:**
|
|
179
167
|
|
|
168
|
+
1. **On start / after compaction:** call \`context_get_bundle\` — this restores your task context.
|
|
169
|
+
2. **After any technical decision:** call \`context_update_task\` and record it in "decisions". Decisions not recorded here are lost on compaction.
|
|
170
|
+
3. **When you understand the goal:** call \`context_update_task\` to set the "goal" field.
|
|
171
|
+
4. Files you edit are tracked automatically — you don't need to do anything.
|
|
172
|
+
5. To see what context is loaded: call \`context_status\`.
|
|
173
|
+
${areas.length > 0 ? `
|
|
180
174
|
---
|
|
181
175
|
|
|
182
176
|
## Key Areas
|
|
183
177
|
|
|
184
178
|
${areasSection}
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Conventions
|
|
189
|
-
|
|
190
|
-
${conventions || '(add conventions)'}
|
|
191
|
-
|
|
179
|
+
` : ''}
|
|
192
180
|
---
|
|
193
181
|
|
|
194
|
-
##
|
|
195
|
-
|
|
196
|
-
${invariants || '(add invariants)'}
|
|
197
|
-
|
|
198
|
-
---
|
|
182
|
+
## Notes
|
|
199
183
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
${testStrategy || '(add test strategy)'}
|
|
184
|
+
(Add project-specific conventions, gotchas, or rules here — Claude will follow them every session.)
|
|
203
185
|
`;
|
|
204
186
|
writeFileSync(claudeMdPath, claudeMdContent);
|
|
205
187
|
ok('Generated CLAUDE.md');
|
|
@@ -582,78 +564,114 @@ async function cmdAutoAreas(projectRoot, dryRun) {
|
|
|
582
564
|
process.stdout.write('\n');
|
|
583
565
|
}
|
|
584
566
|
/**
|
|
585
|
-
* Register claudecontext as a user-scoped (global) MCP server.
|
|
586
|
-
*
|
|
587
|
-
* This means it's available in every project without per-project .mcp.json.
|
|
588
|
-
* Uses `claude mcp add --scope user` which writes to ~/.claude.json.
|
|
567
|
+
* Register claudecontext as a user-scoped (global) MCP server + global hooks.
|
|
589
568
|
*
|
|
590
|
-
*
|
|
569
|
+
* Runs automatically on `npm install -g` via postinstall.
|
|
570
|
+
* --auto flag: silent, non-fatal errors (used by postinstall).
|
|
591
571
|
*/
|
|
592
|
-
async function cmdGlobalInstall() {
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
log('');
|
|
572
|
+
async function cmdGlobalInstall(opts = {}) {
|
|
573
|
+
if (!opts.auto) {
|
|
574
|
+
process.stdout.write('\n╔══════════════════════════════════════╗\n');
|
|
575
|
+
process.stdout.write('║ ClaudeContext Global Install ║\n');
|
|
576
|
+
process.stdout.write('╚══════════════════════════════════════╝\n\n');
|
|
577
|
+
}
|
|
599
578
|
// Check Node version
|
|
600
579
|
const nodeVersion = process.version;
|
|
601
580
|
const major = parseInt(nodeVersion.slice(1), 10);
|
|
602
581
|
if (major < 22) {
|
|
603
582
|
err(`Node.js ${nodeVersion} detected — Node 22+ required. Please upgrade.`);
|
|
604
|
-
|
|
583
|
+
if (!opts.auto)
|
|
584
|
+
process.exit(1);
|
|
585
|
+
return;
|
|
605
586
|
}
|
|
606
|
-
|
|
607
|
-
|
|
587
|
+
if (!opts.auto)
|
|
588
|
+
ok(`Node.js ${nodeVersion}`);
|
|
589
|
+
// ── Register MCP server ───────────────────────────────────────────────────
|
|
608
590
|
const claudeBin = isWindows ? 'claude.cmd' : 'claude';
|
|
591
|
+
let claudeFound = false;
|
|
609
592
|
try {
|
|
610
593
|
execSync(`${claudeBin} --version`, { stdio: 'pipe' });
|
|
611
|
-
|
|
594
|
+
claudeFound = true;
|
|
612
595
|
}
|
|
613
|
-
catch {
|
|
614
|
-
|
|
615
|
-
|
|
596
|
+
catch { /* claude not installed yet — that's ok for postinstall */ }
|
|
597
|
+
if (claudeFound) {
|
|
598
|
+
try {
|
|
599
|
+
execSync(`${claudeBin} mcp add --transport stdio --scope user claudecontext -- npx --yes -p @exero1/claudecontext claudecontext-mcp`, { stdio: opts.auto ? 'pipe' : 'inherit' });
|
|
600
|
+
ok('MCP server registered (user scope)');
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
// Fallback: write directly to ~/.claude.json
|
|
604
|
+
const homeDir = process.env['HOME'] ?? process.env['USERPROFILE'] ?? '';
|
|
605
|
+
const claudeJsonPath = join(homeDir, '.claude.json');
|
|
606
|
+
let claudeJson = {};
|
|
607
|
+
if (existsSync(claudeJsonPath)) {
|
|
608
|
+
try {
|
|
609
|
+
claudeJson = JSON.parse(readFileSync(claudeJsonPath, 'utf8'));
|
|
610
|
+
}
|
|
611
|
+
catch { /* ignore */ }
|
|
612
|
+
}
|
|
613
|
+
const mcpServers = claudeJson['mcpServers'] ?? {};
|
|
614
|
+
mcpServers['claudecontext'] = {
|
|
615
|
+
type: 'stdio',
|
|
616
|
+
command: 'npx',
|
|
617
|
+
args: ['--yes', '-p', '@exero1/claudecontext', 'claudecontext-mcp'],
|
|
618
|
+
env: { NODE_OPTIONS: '--no-warnings' },
|
|
619
|
+
};
|
|
620
|
+
claudeJson['mcpServers'] = mcpServers;
|
|
621
|
+
writeFileSync(claudeJsonPath, JSON.stringify(claudeJson, null, 2));
|
|
622
|
+
ok('MCP server registered (~/.claude.json)');
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
else if (!opts.auto) {
|
|
626
|
+
warn('claude CLI not found — MCP server not registered. Run `claudecontext global-install` after installing Claude Code.');
|
|
616
627
|
}
|
|
617
|
-
// Register
|
|
618
|
-
//
|
|
619
|
-
|
|
628
|
+
// ── Register global hooks in ~/.claude/settings.json ─────────────────────
|
|
629
|
+
// Use `npm root -g` to find the real global install — __dirname may point to
|
|
630
|
+
// npm's temp cache during postinstall, so we can't rely on it for the path.
|
|
631
|
+
let globalHooksDir;
|
|
620
632
|
try {
|
|
621
|
-
|
|
622
|
-
|
|
633
|
+
const globalRoot = execSync('npm root -g', { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
634
|
+
globalHooksDir = join(globalRoot, '@exero1', 'claudecontext', 'hooks');
|
|
623
635
|
}
|
|
624
636
|
catch {
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
637
|
+
// fallback: relative to install.js (works when run manually after install)
|
|
638
|
+
globalHooksDir = resolve(__dirname, '..', '..', 'hooks');
|
|
639
|
+
}
|
|
640
|
+
// No quotes around Unix paths — Claude Code runs hooks directly, not via shell
|
|
641
|
+
const hookCmd = (name) => isWindows ? `node "${join(globalHooksDir, name)}"` : join(globalHooksDir, name);
|
|
642
|
+
const homeDir = process.env['HOME'] ?? process.env['USERPROFILE'] ?? '';
|
|
643
|
+
const globalSettingsPath = join(homeDir, '.claude', 'settings.json');
|
|
644
|
+
let settings = {};
|
|
645
|
+
if (existsSync(globalSettingsPath)) {
|
|
646
|
+
try {
|
|
647
|
+
settings = JSON.parse(readFileSync(globalSettingsPath, 'utf8'));
|
|
648
|
+
}
|
|
649
|
+
catch { /* ignore */ }
|
|
650
|
+
}
|
|
651
|
+
settings['hooks'] = {
|
|
652
|
+
SessionStart: [{ matcher: '', hooks: [{ type: 'command', command: hookCmd('session-start.mjs') }] }],
|
|
653
|
+
PreToolUse: [{ matcher: '', hooks: [{ type: 'command', command: hookCmd('pre-tool-use.mjs') }] }],
|
|
654
|
+
PostToolUse: [{ matcher: 'Write|Edit|NotebookEdit', hooks: [{ type: 'command', command: hookCmd('post-write.mjs') }] }],
|
|
655
|
+
PreCompact: [{ matcher: '', hooks: [{ type: 'command', command: hookCmd('pre-compact.mjs') }] }],
|
|
656
|
+
};
|
|
657
|
+
try {
|
|
658
|
+
mkdirSync(dirname(globalSettingsPath), { recursive: true });
|
|
659
|
+
writeFileSync(globalSettingsPath, JSON.stringify(settings, null, 2));
|
|
660
|
+
ok('Global hooks registered (~/.claude/settings.json)');
|
|
661
|
+
}
|
|
662
|
+
catch (e) {
|
|
663
|
+
if (!opts.auto)
|
|
664
|
+
warn(`Could not write ~/.claude/settings.json: ${e}`);
|
|
665
|
+
}
|
|
666
|
+
if (!opts.auto) {
|
|
667
|
+
process.stdout.write('\n╔══════════════════════════════════════╗\n');
|
|
668
|
+
process.stdout.write('║ Setup complete! ║\n');
|
|
669
|
+
process.stdout.write('╚══════════════════════════════════════╝\n\n');
|
|
670
|
+
log('Open any project with `claude` — context memory is active immediately.');
|
|
671
|
+
log('');
|
|
672
|
+
log('Optional: run `claudecontext init` in a project to generate CLAUDE.md.');
|
|
673
|
+
log('');
|
|
646
674
|
}
|
|
647
|
-
process.stdout.write('\n╔══════════════════════════════════════╗\n');
|
|
648
|
-
process.stdout.write('║ Global install complete! ║\n');
|
|
649
|
-
process.stdout.write('╚══════════════════════════════════════╝\n\n');
|
|
650
|
-
log('The claudecontext MCP server is now available in all your projects.');
|
|
651
|
-
log('');
|
|
652
|
-
log('To verify: open any project in Claude Code and run context_status()');
|
|
653
|
-
log('');
|
|
654
|
-
log('Note: Hooks (SessionStart, PreToolUse, etc.) are still per-project.');
|
|
655
|
-
log('Run `claudecontext init` in each project to install hooks.');
|
|
656
|
-
log('');
|
|
657
675
|
}
|
|
658
676
|
// ── Main ───────────────────────────────────────────────────────────────────
|
|
659
677
|
const args = process.argv.slice(2);
|
|
@@ -675,9 +693,11 @@ switch (command) {
|
|
|
675
693
|
await cmdInit(projectRoot, initOpts);
|
|
676
694
|
break;
|
|
677
695
|
}
|
|
678
|
-
case 'global-install':
|
|
679
|
-
|
|
696
|
+
case 'global-install': {
|
|
697
|
+
const auto = args.includes('--auto');
|
|
698
|
+
await cmdGlobalInstall({ auto });
|
|
680
699
|
break;
|
|
700
|
+
}
|
|
681
701
|
case 'remove': {
|
|
682
702
|
const dryRun = args.includes('--dry-run');
|
|
683
703
|
const purge = args.includes('--purge');
|
|
@@ -699,16 +719,19 @@ switch (command) {
|
|
|
699
719
|
process.stdout.write(`
|
|
700
720
|
ClaudeContext — Persistent memory for Claude Code
|
|
701
721
|
|
|
722
|
+
After \`npm install -g @exero1/claudecontext\`, just open any project with \`claude\`.
|
|
723
|
+
No per-project setup required.
|
|
724
|
+
|
|
702
725
|
Commands:
|
|
703
|
-
claudecontext
|
|
726
|
+
claudecontext global-install Re-run global setup (MCP server + hooks)
|
|
727
|
+
claudecontext init [--project-root <path>] Optional: generate CLAUDE.md and per-project config
|
|
704
728
|
--yes Skip prompts, use auto-detected defaults
|
|
705
|
-
--config <file> Load setup from a JSON config file
|
|
706
|
-
claudecontext
|
|
707
|
-
claudecontext remove Remove hooks and config (preserves state.db)
|
|
729
|
+
--config <file> Load setup from a JSON config file
|
|
730
|
+
claudecontext remove Remove per-project files (preserves state.db)
|
|
708
731
|
--dry-run Show what would be removed without deleting
|
|
709
732
|
--purge Also delete state.db and .claudecontext/
|
|
710
|
-
claudecontext migrate Migrate database schema
|
|
711
733
|
claudecontext doctor Check installation health
|
|
734
|
+
claudecontext migrate Migrate database schema
|
|
712
735
|
claudecontext auto-areas [--dry-run] Auto-detect subsystem areas from directory structure
|
|
713
736
|
|
|
714
737
|
`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../installer/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../installer/install.ts"],"names":[],"mappings":"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"}
|
package/hooks/post-write.mjs
CHANGED
|
@@ -15,7 +15,7 @@ const projectRoot = resolve(process.env.CLAUDECONTEXT_PROJECT_ROOT ?? process.cw
|
|
|
15
15
|
function findCli() {
|
|
16
16
|
const local = join(projectRoot, 'node_modules', '.bin', 'claudecontext-cli');
|
|
17
17
|
if (existsSync(local)) return local;
|
|
18
|
-
return
|
|
18
|
+
return 'claudecontext-cli'; // global install in PATH
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
// Read hook input from stdin
|
|
@@ -35,14 +35,8 @@ process.stdin.on('end', () => {
|
|
|
35
35
|
if (!filePath) return;
|
|
36
36
|
|
|
37
37
|
const cli = findCli();
|
|
38
|
-
const args = cli
|
|
39
|
-
? [cli, 'ingest-diff', filePath]
|
|
40
|
-
: ['npx', 'claudecontext-cli', 'ingest-diff', filePath];
|
|
41
38
|
|
|
42
|
-
|
|
43
|
-
const cmdArgs = args.slice(1);
|
|
44
|
-
|
|
45
|
-
execFile(cmd, cmdArgs, {
|
|
39
|
+
execFile(cli, ['ingest-diff', filePath], {
|
|
46
40
|
cwd: projectRoot,
|
|
47
41
|
env: { ...process.env, NODE_NO_WARNINGS: '1', CLAUDE_SESSION_ID: hookData.session_id ?? '' },
|
|
48
42
|
timeout: 19000,
|
package/hooks/pre-compact.mjs
CHANGED
|
@@ -15,27 +15,17 @@ const projectRoot = resolve(process.env.CLAUDECONTEXT_PROJECT_ROOT ?? process.cw
|
|
|
15
15
|
function findCli() {
|
|
16
16
|
const local = join(projectRoot, 'node_modules', '.bin', 'claudecontext-cli');
|
|
17
17
|
if (existsSync(local)) return local;
|
|
18
|
-
return
|
|
18
|
+
return 'claudecontext-cli'; // global install in PATH
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
try {
|
|
22
22
|
const cli = findCli();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
stdio: 'inherit',
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
32
|
-
execFileSync('npx', ['claudecontext-cli', 'summarize-session'], {
|
|
33
|
-
cwd: projectRoot,
|
|
34
|
-
env: { ...process.env, NODE_NO_WARNINGS: '1' },
|
|
35
|
-
timeout: 24000,
|
|
36
|
-
stdio: 'inherit',
|
|
37
|
-
});
|
|
38
|
-
}
|
|
23
|
+
execFileSync(cli, ['summarize-session'], {
|
|
24
|
+
cwd: projectRoot,
|
|
25
|
+
env: { ...process.env, NODE_NO_WARNINGS: '1' },
|
|
26
|
+
timeout: 24000,
|
|
27
|
+
stdio: 'inherit',
|
|
28
|
+
});
|
|
39
29
|
} catch (err) {
|
|
40
30
|
// Fail silently — don't block compaction
|
|
41
31
|
process.stderr.write(`[claudecontext/pre-compact] Error: ${err?.message ?? err}\n`);
|
package/hooks/pre-tool-use.mjs
CHANGED
|
@@ -14,7 +14,7 @@ const projectRoot = resolve(process.env.CLAUDECONTEXT_PROJECT_ROOT ?? process.cw
|
|
|
14
14
|
function findCli() {
|
|
15
15
|
const local = join(projectRoot, 'node_modules', '.bin', 'claudecontext-cli');
|
|
16
16
|
if (existsSync(local)) return local;
|
|
17
|
-
return
|
|
17
|
+
return 'claudecontext-cli'; // global install in PATH
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// Read hook input from stdin
|
|
@@ -50,21 +50,12 @@ process.stdin.on('end', () => {
|
|
|
50
50
|
: ['gate-check', checkString];
|
|
51
51
|
|
|
52
52
|
try {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
});
|
|
60
|
-
} else {
|
|
61
|
-
execFileSync('npx', ['claudecontext-cli', ...gateArgs], {
|
|
62
|
-
cwd: projectRoot,
|
|
63
|
-
env: { ...process.env, NODE_NO_WARNINGS: '1' },
|
|
64
|
-
timeout: 7000,
|
|
65
|
-
stdio: ['ignore', 'ignore', 'pipe'],
|
|
66
|
-
});
|
|
67
|
-
}
|
|
53
|
+
execFileSync(cli, gateArgs, {
|
|
54
|
+
cwd: projectRoot,
|
|
55
|
+
env: { ...process.env, NODE_NO_WARNINGS: '1' },
|
|
56
|
+
timeout: 7000,
|
|
57
|
+
stdio: ['ignore', 'ignore', 'pipe'],
|
|
58
|
+
});
|
|
68
59
|
// Exit 0 = allow (also: exit 1 = warn, execFileSync throws for non-zero but warn is caught below)
|
|
69
60
|
process.exit(0);
|
|
70
61
|
} catch (err) {
|
package/hooks/session-start.mjs
CHANGED
|
@@ -3,52 +3,54 @@
|
|
|
3
3
|
* ClaudeContext SessionStart hook.
|
|
4
4
|
* Fires on Claude Code startup and resume.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Auto-initialises project state on first use (no `claudecontext init` needed).
|
|
7
|
+
* Hydrates context bundle and outputs additionalContext.
|
|
7
8
|
* Timeout: 15s (Claude Code default).
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import { execFileSync } from 'node:child_process';
|
|
11
|
-
import { existsSync } from 'node:fs';
|
|
12
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
12
13
|
import { join, resolve } from 'node:path';
|
|
13
14
|
|
|
14
15
|
const projectRoot = resolve(process.env.CLAUDECONTEXT_PROJECT_ROOT ?? process.cwd());
|
|
16
|
+
const stateDir = join(projectRoot, '.claudecontext');
|
|
15
17
|
|
|
16
|
-
//
|
|
18
|
+
// Auto-init project state on first use — no claudecontext init required
|
|
19
|
+
if (!existsSync(stateDir)) {
|
|
20
|
+
try {
|
|
21
|
+
mkdirSync(stateDir, { recursive: true });
|
|
22
|
+
if (!existsSync(join(stateDir, 'areas.json')))
|
|
23
|
+
writeFileSync(join(stateDir, 'areas.json'), '[]');
|
|
24
|
+
if (!existsSync(join(stateDir, 'config.json')))
|
|
25
|
+
writeFileSync(join(stateDir, 'config.json'), '{"budgets":{}}');
|
|
26
|
+
if (!existsSync(join(stateDir, 'gate-rules.json')))
|
|
27
|
+
writeFileSync(join(stateDir, 'gate-rules.json'), '[]');
|
|
28
|
+
} catch { /* ignore — directory may already exist */ }
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Prefer installed local binary (~2x faster than global)
|
|
17
32
|
function findCli() {
|
|
18
33
|
const local = join(projectRoot, 'node_modules', '.bin', 'claudecontext-cli');
|
|
19
34
|
if (existsSync(local)) return local;
|
|
20
|
-
return
|
|
35
|
+
return 'claudecontext-cli'; // global install in PATH
|
|
21
36
|
}
|
|
22
37
|
|
|
23
38
|
try {
|
|
24
39
|
const cli = findCli();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
timeout: 14000,
|
|
32
|
-
encoding: 'utf8',
|
|
33
|
-
});
|
|
34
|
-
} else {
|
|
35
|
-
result = execFileSync('npx', ['claudecontext-cli', 'hydrate'], {
|
|
36
|
-
cwd: projectRoot,
|
|
37
|
-
env: { ...process.env, NODE_NO_WARNINGS: '1' },
|
|
38
|
-
timeout: 14000,
|
|
39
|
-
encoding: 'utf8',
|
|
40
|
-
});
|
|
41
|
-
}
|
|
40
|
+
const result = execFileSync(cli, ['hydrate'], {
|
|
41
|
+
cwd: projectRoot,
|
|
42
|
+
env: { ...process.env, NODE_NO_WARNINGS: '1' },
|
|
43
|
+
timeout: 14000,
|
|
44
|
+
encoding: 'utf8',
|
|
45
|
+
});
|
|
42
46
|
|
|
43
|
-
// result is JSON: { additionalContext: "..." }
|
|
44
47
|
const parsed = JSON.parse(result);
|
|
45
48
|
if (parsed.additionalContext) {
|
|
46
|
-
// Output in the format Claude Code expects for session hooks
|
|
47
49
|
process.stdout.write(JSON.stringify({ additionalContext: parsed.additionalContext }));
|
|
48
50
|
}
|
|
49
51
|
} catch (err) {
|
|
50
52
|
// Fail silently — don't break Claude Code startup
|
|
51
|
-
process.stderr.write(`[claudecontext/session-start]
|
|
53
|
+
process.stderr.write(`[claudecontext/session-start] ${err?.message ?? err}\n`);
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
process.exit(0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exero1/claudecontext",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Persistent memory system for Claude Code — hierarchical cache levels + association graph",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"clean": "rm -rf dist",
|
|
29
29
|
"ci": "npm run typecheck && npm run build && npm run test:unit && npm run test:integration",
|
|
30
30
|
"build:publish": "tsc --project tsconfig.build.json",
|
|
31
|
-
"prepublishOnly": "npm run clean && npm run build:publish && npm run typecheck"
|
|
31
|
+
"prepublishOnly": "npm run clean && npm run build:publish && npm run typecheck",
|
|
32
|
+
"postinstall": "node dist/installer/install.js global-install --auto || true"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"@modelcontextprotocol/sdk": "^1.12.0",
|