Add standalone hook entry points for context, new, save, summary, and worker

- Implemented context-hook.ts for handling session start events.
- Created new-hook.ts for user prompt submission events.
- Developed save-hook.ts for post tool use events.
- Added summary-hook.ts for handling stop events.
- Introduced worker.ts as a standalone background process for the SDK agent.
- Each hook reads input from stdin, processes it, and handles errors gracefully.
This commit is contained in:
Alex Newman
2025-10-16 15:39:30 -04:00
parent 723f1f5374
commit 834cf4095e
20 changed files with 1563 additions and 63 deletions
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bun
/**
* Context Hook Entry Point - SessionStart
* Standalone executable for plugin hooks
*/
import { contextHook } from '../../hooks/context.js';
// Read input from stdin
const input = await Bun.stdin.text();
try {
const parsed = input.trim() ? JSON.parse(input) : undefined;
contextHook(parsed);
} catch (error: any) {
console.error(`[claude-mem context-hook error: ${error.message}]`);
process.exit(0);
}
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bun
/**
* New Hook Entry Point - UserPromptSubmit
* Standalone executable for plugin hooks
*/
import { newHook } from '../../hooks/new.js';
// Read input from stdin
const input = await Bun.stdin.text();
try {
const parsed = input.trim() ? JSON.parse(input) : undefined;
newHook(parsed);
} catch (error: any) {
console.error(`[claude-mem new-hook error: ${error.message}]`);
console.log('{"continue": true, "suppressOutput": true}');
process.exit(0);
}
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bun
/**
* Save Hook Entry Point - PostToolUse
* Standalone executable for plugin hooks
*/
import { saveHook } from '../../hooks/save.js';
// Read input from stdin
const input = await Bun.stdin.text();
try {
const parsed = input.trim() ? JSON.parse(input) : undefined;
saveHook(parsed);
} catch (error: any) {
console.error(`[claude-mem save-hook error: ${error.message}]`);
console.log('{"continue": true, "suppressOutput": true}');
process.exit(0);
}
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bun
/**
* Summary Hook Entry Point - Stop
* Standalone executable for plugin hooks
*/
import { summaryHook } from '../../hooks/summary.js';
// Read input from stdin
const input = await Bun.stdin.text();
try {
const parsed = input.trim() ? JSON.parse(input) : undefined;
summaryHook(parsed);
} catch (error: any) {
console.error(`[claude-mem summary-hook error: ${error.message}]`);
console.log('{"continue": true, "suppressOutput": true}');
process.exit(0);
}
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bun
/**
* Worker Entry Point
* Standalone background process for SDK agent
*/
import { main } from '../../sdk/worker.js';
// Entry point - just call the worker main function
main().catch((error) => {
console.error('[SDK Worker] Fatal error:', error);
process.exit(1);
});