@rangerchaz/aimem 0.2.0 → 0.2.1

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.
Files changed (182) hide show
  1. package/README.md +10 -11
  2. package/dist/cli/commands/git.d.ts +0 -0
  3. package/dist/cli/commands/git.d.ts.map +0 -0
  4. package/dist/cli/commands/git.js +0 -0
  5. package/dist/cli/commands/git.js.map +0 -0
  6. package/dist/cli/commands/guardrails.d.ts.map +1 -1
  7. package/dist/cli/commands/guardrails.js +90 -1
  8. package/dist/cli/commands/guardrails.js.map +1 -1
  9. package/dist/cli/commands/import.d.ts +0 -0
  10. package/dist/cli/commands/import.d.ts.map +0 -0
  11. package/dist/cli/commands/import.js +0 -0
  12. package/dist/cli/commands/import.js.map +0 -0
  13. package/dist/cli/commands/init.d.ts +0 -0
  14. package/dist/cli/commands/init.d.ts.map +0 -0
  15. package/dist/cli/commands/init.js +0 -0
  16. package/dist/cli/commands/init.js.map +0 -0
  17. package/dist/cli/commands/mcp-serve.d.ts +0 -0
  18. package/dist/cli/commands/mcp-serve.d.ts.map +0 -0
  19. package/dist/cli/commands/mcp-serve.js +0 -0
  20. package/dist/cli/commands/mcp-serve.js.map +0 -0
  21. package/dist/cli/commands/query.d.ts +0 -0
  22. package/dist/cli/commands/query.d.ts.map +0 -0
  23. package/dist/cli/commands/query.js +0 -0
  24. package/dist/cli/commands/query.js.map +0 -0
  25. package/dist/cli/commands/reindex.js +4 -4
  26. package/dist/cli/commands/setup.d.ts +0 -0
  27. package/dist/cli/commands/setup.d.ts.map +0 -0
  28. package/dist/cli/commands/setup.js +0 -0
  29. package/dist/cli/commands/setup.js.map +0 -0
  30. package/dist/cli/commands/start.d.ts +0 -0
  31. package/dist/cli/commands/start.d.ts.map +0 -0
  32. package/dist/cli/commands/start.js +0 -0
  33. package/dist/cli/commands/start.js.map +0 -0
  34. package/dist/cli/commands/status.d.ts +0 -0
  35. package/dist/cli/commands/status.d.ts.map +0 -0
  36. package/dist/cli/commands/status.js +0 -0
  37. package/dist/cli/commands/status.js.map +0 -0
  38. package/dist/cli/commands/stop.d.ts +0 -0
  39. package/dist/cli/commands/stop.d.ts.map +0 -0
  40. package/dist/cli/commands/stop.js +0 -0
  41. package/dist/cli/commands/stop.js.map +0 -0
  42. package/dist/cli/commands/visualize.d.ts +0 -0
  43. package/dist/cli/commands/visualize.d.ts.map +0 -0
  44. package/dist/cli/commands/visualize.js +0 -0
  45. package/dist/cli/commands/visualize.js.map +0 -0
  46. package/dist/cli/index.d.ts +0 -0
  47. package/dist/cli/index.d.ts.map +0 -0
  48. package/dist/cli/index.js +0 -0
  49. package/dist/cli/index.js.map +0 -0
  50. package/dist/db/index.d.ts +16 -1
  51. package/dist/db/index.d.ts.map +1 -1
  52. package/dist/db/index.js +325 -196
  53. package/dist/db/index.js.map +1 -1
  54. package/dist/db/schema.d.ts +0 -0
  55. package/dist/db/schema.d.ts.map +1 -1
  56. package/dist/db/schema.js +247 -238
  57. package/dist/db/schema.js.map +1 -1
  58. package/dist/extractor/index.d.ts +0 -0
  59. package/dist/extractor/index.d.ts.map +0 -0
  60. package/dist/extractor/index.js +0 -0
  61. package/dist/extractor/index.js.map +0 -0
  62. package/dist/git/extractor.d.ts +0 -0
  63. package/dist/git/extractor.d.ts.map +0 -0
  64. package/dist/git/extractor.js +0 -0
  65. package/dist/git/extractor.js.map +0 -0
  66. package/dist/git/hooks.d.ts +0 -0
  67. package/dist/git/hooks.d.ts.map +0 -0
  68. package/dist/git/hooks.js +0 -0
  69. package/dist/git/hooks.js.map +0 -0
  70. package/dist/git/index.d.ts +0 -0
  71. package/dist/git/index.d.ts.map +0 -0
  72. package/dist/git/index.js +0 -0
  73. package/dist/git/index.js.map +0 -0
  74. package/dist/guardrails/enforcer.d.ts +3 -2
  75. package/dist/guardrails/enforcer.d.ts.map +1 -1
  76. package/dist/guardrails/enforcer.js +30 -3
  77. package/dist/guardrails/enforcer.js.map +1 -1
  78. package/dist/guardrails/index.d.ts +2 -0
  79. package/dist/guardrails/index.d.ts.map +1 -1
  80. package/dist/guardrails/index.js +4 -0
  81. package/dist/guardrails/index.js.map +1 -1
  82. package/dist/guardrails/vindication-checker.d.ts +24 -0
  83. package/dist/guardrails/vindication-checker.d.ts.map +1 -0
  84. package/dist/guardrails/vindication-checker.js +209 -0
  85. package/dist/guardrails/vindication-checker.js.map +1 -0
  86. package/dist/guardrails/vindication-queue.d.ts +63 -0
  87. package/dist/guardrails/vindication-queue.d.ts.map +1 -0
  88. package/dist/guardrails/vindication-queue.js +98 -0
  89. package/dist/guardrails/vindication-queue.js.map +1 -0
  90. package/dist/indexer/index.d.ts +0 -0
  91. package/dist/indexer/index.d.ts.map +0 -0
  92. package/dist/indexer/index.js +0 -0
  93. package/dist/indexer/index.js.map +0 -0
  94. package/dist/indexer/parsers/base.d.ts +0 -0
  95. package/dist/indexer/parsers/base.d.ts.map +0 -0
  96. package/dist/indexer/parsers/base.js +0 -0
  97. package/dist/indexer/parsers/base.js.map +0 -0
  98. package/dist/indexer/parsers/cpp.d.ts +0 -0
  99. package/dist/indexer/parsers/cpp.d.ts.map +0 -0
  100. package/dist/indexer/parsers/cpp.js +0 -0
  101. package/dist/indexer/parsers/cpp.js.map +0 -0
  102. package/dist/indexer/parsers/go.d.ts +0 -0
  103. package/dist/indexer/parsers/go.d.ts.map +0 -0
  104. package/dist/indexer/parsers/go.js +0 -0
  105. package/dist/indexer/parsers/go.js.map +0 -0
  106. package/dist/indexer/parsers/java.d.ts +0 -0
  107. package/dist/indexer/parsers/java.d.ts.map +0 -0
  108. package/dist/indexer/parsers/java.js +0 -0
  109. package/dist/indexer/parsers/java.js.map +0 -0
  110. package/dist/indexer/parsers/javascript.d.ts +0 -0
  111. package/dist/indexer/parsers/javascript.d.ts.map +0 -0
  112. package/dist/indexer/parsers/javascript.js +0 -0
  113. package/dist/indexer/parsers/javascript.js.map +0 -0
  114. package/dist/indexer/parsers/kotlin.d.ts +0 -0
  115. package/dist/indexer/parsers/kotlin.d.ts.map +0 -0
  116. package/dist/indexer/parsers/kotlin.js +0 -0
  117. package/dist/indexer/parsers/kotlin.js.map +0 -0
  118. package/dist/indexer/parsers/php.d.ts +0 -0
  119. package/dist/indexer/parsers/php.d.ts.map +0 -0
  120. package/dist/indexer/parsers/php.js +0 -0
  121. package/dist/indexer/parsers/php.js.map +0 -0
  122. package/dist/indexer/parsers/python.d.ts +0 -0
  123. package/dist/indexer/parsers/python.d.ts.map +0 -0
  124. package/dist/indexer/parsers/python.js +0 -0
  125. package/dist/indexer/parsers/python.js.map +0 -0
  126. package/dist/indexer/parsers/ruby.d.ts +0 -0
  127. package/dist/indexer/parsers/ruby.d.ts.map +0 -0
  128. package/dist/indexer/parsers/ruby.js +0 -0
  129. package/dist/indexer/parsers/ruby.js.map +0 -0
  130. package/dist/indexer/parsers/rust.d.ts +0 -0
  131. package/dist/indexer/parsers/rust.d.ts.map +0 -0
  132. package/dist/indexer/parsers/rust.js +0 -0
  133. package/dist/indexer/parsers/rust.js.map +0 -0
  134. package/dist/indexer/watcher-daemon.d.ts +0 -0
  135. package/dist/indexer/watcher-daemon.d.ts.map +0 -0
  136. package/dist/indexer/watcher-daemon.js +10 -0
  137. package/dist/indexer/watcher-daemon.js.map +1 -1
  138. package/dist/indexer/watcher.d.ts +2 -0
  139. package/dist/indexer/watcher.d.ts.map +1 -1
  140. package/dist/indexer/watcher.js +8 -0
  141. package/dist/indexer/watcher.js.map +1 -1
  142. package/dist/mcp/server.d.ts +0 -0
  143. package/dist/mcp/server.d.ts.map +1 -1
  144. package/dist/mcp/server.js +172 -273
  145. package/dist/mcp/server.js.map +1 -1
  146. package/dist/proxy/interceptor-mockttp.d.ts +0 -0
  147. package/dist/proxy/interceptor-mockttp.d.ts.map +0 -0
  148. package/dist/proxy/interceptor-mockttp.js +0 -0
  149. package/dist/proxy/interceptor-mockttp.js.map +0 -0
  150. package/dist/proxy/proxy-daemon.d.ts +0 -0
  151. package/dist/proxy/proxy-daemon.d.ts.map +0 -0
  152. package/dist/proxy/proxy-daemon.js +0 -0
  153. package/dist/proxy/proxy-daemon.js.map +0 -0
  154. package/dist/query/index.d.ts +0 -0
  155. package/dist/query/index.d.ts.map +0 -0
  156. package/dist/query/index.js +0 -0
  157. package/dist/query/index.js.map +0 -0
  158. package/dist/types/index.d.ts +38 -0
  159. package/dist/types/index.d.ts.map +1 -1
  160. package/dist/types/index.js +0 -0
  161. package/dist/types/index.js.map +0 -0
  162. package/dist/visualize/index.d.ts +0 -0
  163. package/dist/visualize/index.d.ts.map +0 -0
  164. package/dist/visualize/index.js +0 -0
  165. package/dist/visualize/index.js.map +0 -0
  166. package/dist/visualize/server.d.ts +0 -0
  167. package/dist/visualize/server.d.ts.map +0 -0
  168. package/dist/visualize/server.js +0 -0
  169. package/dist/visualize/server.js.map +0 -0
  170. package/dist/visualize/template.d.ts +0 -0
  171. package/dist/visualize/template.d.ts.map +0 -0
  172. package/dist/visualize/template.js +0 -0
  173. package/dist/visualize/template.js.map +0 -0
  174. package/package.json +15 -4
  175. package/dist/cli/commands/hook-session-end.d.ts +0 -7
  176. package/dist/cli/commands/hook-session-end.d.ts.map +0 -1
  177. package/dist/cli/commands/hook-session-end.js +0 -109
  178. package/dist/cli/commands/hook-session-end.js.map +0 -1
  179. package/dist/cli/commands/hook-session-start.d.ts +0 -7
  180. package/dist/cli/commands/hook-session-start.d.ts.map +0 -1
  181. package/dist/cli/commands/hook-session-start.js +0 -116
  182. package/dist/cli/commands/hook-session-start.js.map +0 -1
File without changes
File without changes
File without changes
@@ -111,6 +111,14 @@ export interface GuardrailEvent {
111
111
  response: string | null;
112
112
  dik_level: number | null;
113
113
  timestamp: string;
114
+ suggestion?: string | null;
115
+ code_context?: string | null;
116
+ file_path?: string | null;
117
+ line_start?: number | null;
118
+ line_end?: number | null;
119
+ content_hash?: string | null;
120
+ vindication_pending?: number | null;
121
+ checked_at?: string | null;
114
122
  }
115
123
  export interface ProjectDik {
116
124
  id: number;
@@ -144,4 +152,34 @@ export interface ProposedRule {
144
152
  confidence: number;
145
153
  evidence: string[];
146
154
  }
155
+ export interface VindicationCandidate {
156
+ eventId: number;
157
+ guardrailId: number;
158
+ projectId: number;
159
+ suggestion: string;
160
+ filePath: string;
161
+ lineStart: number;
162
+ lineEnd: number;
163
+ originalCode: string;
164
+ contentHash: string;
165
+ reason: string;
166
+ timestamp: string;
167
+ }
168
+ export interface VindicationResult {
169
+ eventId: number;
170
+ vindicated: boolean;
171
+ confidence: number;
172
+ reason: string;
173
+ }
174
+ export interface VindicationCheckResult {
175
+ candidate: VindicationCandidate;
176
+ result: VindicationResult;
177
+ newDikLevel?: number;
178
+ }
179
+ export interface OverrideContext {
180
+ suggestion?: string;
181
+ filePath?: string;
182
+ lineStart?: number;
183
+ lineEnd?: number;
184
+ }
147
185
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rangerchaz/aimem",
3
- "version": "0.2.0",
4
- "description": "Local memory system for AI coding assistants",
3
+ "version": "0.2.1",
4
+ "description": "Local memory and guardrails for AI coding assistants. Your AI gets more opinionated as your codebase gets crappier.",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
7
7
  "bin": {
@@ -12,14 +12,25 @@
12
12
  "dev": "tsc --watch",
13
13
  "start": "node dist/cli/index.js",
14
14
  "test": "tsc -p tsconfig.test.json && node --test dist-test/test/",
15
- "test:watch": "tsc -p tsconfig.test.json --watch"
15
+ "test:watch": "tsc -p tsconfig.test.json --watch",
16
+ "prepublishOnly": "npm run build && npm test"
16
17
  },
17
18
  "keywords": [
18
19
  "ai",
19
20
  "memory",
20
21
  "llm",
21
22
  "context",
22
- "coding-assistant"
23
+ "coding-assistant",
24
+ "claude",
25
+ "claude-code",
26
+ "mcp",
27
+ "model-context-protocol",
28
+ "guardrails",
29
+ "anthropic",
30
+ "openai",
31
+ "cursor",
32
+ "aider",
33
+ "copilot"
23
34
  ],
24
35
  "author": "Chad Cox",
25
36
  "license": "MIT",
@@ -1,7 +0,0 @@
1
- /**
2
- * Hook: SessionEnd
3
- * Called by Claude Code at the end of each session.
4
- * Reads the conversation transcript, extracts decisions/patterns, and stores them.
5
- */
6
- export declare function hookSessionEndCommand(): Promise<void>;
7
- //# sourceMappingURL=hook-session-end.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-session-end.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hook-session-end.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiCH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgI3D"}
@@ -1,109 +0,0 @@
1
- /**
2
- * Hook: SessionEnd
3
- * Called by Claude Code at the end of each session.
4
- * Reads the conversation transcript, extracts decisions/patterns, and stores them.
5
- */
6
- import { readFileSync, existsSync } from 'fs';
7
- import { findProjectForPath, insertConversation, insertExtraction, createLink, getStructuresByName, ensureDataDir, isDuplicateExtraction, } from '../../db/index.js';
8
- import { extractDecisions, generateSummary, } from '../../extractor/index.js';
9
- export async function hookSessionEndCommand() {
10
- try {
11
- ensureDataDir();
12
- // Read hook input from stdin
13
- let inputRaw = '';
14
- try {
15
- inputRaw = readFileSync(0, 'utf-8');
16
- }
17
- catch {
18
- outputResult({ success: false, error: 'No input provided' });
19
- return;
20
- }
21
- if (!inputRaw.trim()) {
22
- outputResult({ success: false, error: 'Empty input' });
23
- return;
24
- }
25
- const input = JSON.parse(inputRaw);
26
- const { cwd, transcript_path, session_id } = input;
27
- // Find project for current directory
28
- const project = findProjectForPath(cwd);
29
- // Read transcript file (JSONL format - one JSON object per line)
30
- if (!transcript_path || !existsSync(transcript_path)) {
31
- outputResult({ success: false, error: 'Transcript file not found' });
32
- return;
33
- }
34
- const transcriptRaw = readFileSync(transcript_path, 'utf-8');
35
- const lines = transcriptRaw.split('\n').filter(line => line.trim());
36
- if (lines.length === 0) {
37
- outputResult({ success: false, error: 'Empty transcript' });
38
- return;
39
- }
40
- // Parse JSONL
41
- const messages = [];
42
- for (const line of lines) {
43
- try {
44
- messages.push(JSON.parse(line));
45
- }
46
- catch {
47
- // Skip malformed lines
48
- continue;
49
- }
50
- }
51
- if (messages.length === 0) {
52
- outputResult({ success: false, error: 'No valid messages in transcript' });
53
- return;
54
- }
55
- // Generate summary
56
- const summary = generateSummary(messages);
57
- // Store conversation
58
- const conversation = insertConversation(transcriptRaw, project?.id || null, 'claude', 'claude-code', `[${session_id}] ${summary}`);
59
- // Extract decisions and patterns
60
- const extractions = extractDecisions(messages);
61
- let linkedCount = 0;
62
- let storedCount = 0;
63
- let skippedCount = 0;
64
- // Store extractions and link to code structures (with deduplication)
65
- for (const ext of extractions) {
66
- // Check for duplicates before storing
67
- if (isDuplicateExtraction(ext.content, project?.id || null)) {
68
- skippedCount++;
69
- continue;
70
- }
71
- const extraction = insertExtraction(conversation.id, ext.type, ext.content, ext.metadata);
72
- storedCount++;
73
- // Link to mentioned code structures (if project is indexed)
74
- if (project) {
75
- for (const entityName of ext.mentionedEntities) {
76
- const structures = getStructuresByName(entityName, project.id);
77
- for (const structure of structures) {
78
- try {
79
- // Link extraction to structure
80
- createLink('extraction', extraction.id, 'structure', structure.id, ext.type === 'decision' ? 'decision' : 'rejected');
81
- linkedCount++;
82
- }
83
- catch {
84
- // Ignore duplicate link errors
85
- }
86
- }
87
- }
88
- }
89
- }
90
- outputResult({
91
- success: true,
92
- conversationId: conversation.id,
93
- extractionsCount: storedCount,
94
- });
95
- // Log to stderr for debugging (won't interfere with JSON output)
96
- const dupeInfo = skippedCount > 0 ? ` (${skippedCount} duplicates skipped)` : '';
97
- console.error(`[aimem] SessionEnd: Stored conversation #${conversation.id}, ${storedCount} extractions${dupeInfo}, ${linkedCount} links`);
98
- }
99
- catch (error) {
100
- outputResult({
101
- success: false,
102
- error: error.message
103
- });
104
- }
105
- }
106
- function outputResult(result) {
107
- console.log(JSON.stringify(result));
108
- }
109
- //# sourceMappingURL=hook-session-end.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-session-end.js","sourceRoot":"","sources":["../../../src/cli/commands/hook-session-end.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Hook: SessionStart
3
- * Called by Claude Code at the start of each session.
4
- * Loads relevant context from aimem and injects it into the conversation.
5
- */
6
- export declare function hookSessionStartCommand(): Promise<void>;
7
- //# sourceMappingURL=hook-session-start.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-session-start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hook-session-start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiH7D"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Hook: SessionStart
3
- * Called by Claude Code at the start of each session.
4
- * Loads relevant context from aimem and injects it into the conversation.
5
- */
6
- import { readFileSync, appendFileSync } from 'fs';
7
- import { join } from 'path';
8
- import { homedir } from 'os';
9
- import { findProjectForPath, getDb, ensureDataDir, } from '../../db/index.js';
10
- function debugLog(message) {
11
- try {
12
- const logPath = join(homedir(), '.aimem', 'hook-debug.log');
13
- appendFileSync(logPath, `[${new Date().toISOString()}] ${message}\n`);
14
- }
15
- catch {
16
- // Ignore logging errors
17
- }
18
- }
19
- export async function hookSessionStartCommand() {
20
- try {
21
- ensureDataDir();
22
- debugLog('SessionStart hook invoked');
23
- // Read hook input from stdin
24
- let inputRaw = '';
25
- try {
26
- inputRaw = readFileSync(0, 'utf-8');
27
- debugLog(`Input received: ${inputRaw.slice(0, 200)}`);
28
- }
29
- catch (e) {
30
- // No stdin provided - this is OK, just return empty
31
- debugLog(`No stdin: ${e.message}`);
32
- outputResult({});
33
- return;
34
- }
35
- if (!inputRaw.trim()) {
36
- debugLog('Empty input');
37
- outputResult({});
38
- return;
39
- }
40
- let input;
41
- try {
42
- input = JSON.parse(inputRaw);
43
- }
44
- catch (e) {
45
- debugLog(`JSON parse error: ${e.message}`);
46
- outputResult({});
47
- return;
48
- }
49
- const { cwd } = input;
50
- debugLog(`CWD: ${cwd}`);
51
- // Find project for current directory
52
- const project = findProjectForPath(cwd);
53
- if (!project) {
54
- debugLog('No project found for path');
55
- outputResult({});
56
- return;
57
- }
58
- debugLog(`Found project: ${project.name} (id: ${project.id})`);
59
- // Query recent decisions and rejections for this project
60
- const db = getDb();
61
- // Get recent extractions (decisions and rejections)
62
- const recentExtractions = db.prepare(`
63
- SELECT e.content, e.type, c.timestamp, e.metadata
64
- FROM extractions e
65
- JOIN conversations c ON e.conversation_id = c.id
66
- WHERE c.project_id = ?
67
- AND e.type IN ('decision', 'rejection')
68
- ORDER BY c.timestamp DESC
69
- LIMIT 15
70
- `).all(project.id);
71
- debugLog(`Found ${recentExtractions.length} extractions`);
72
- if (recentExtractions.length === 0) {
73
- outputResult({});
74
- return;
75
- }
76
- // Group by type
77
- const decisions = recentExtractions.filter(e => e.type === 'decision');
78
- const rejections = recentExtractions.filter(e => e.type === 'rejection');
79
- // Format context for injection
80
- let context = `## Previous Context (from aimem)\n\n`;
81
- context += `Project: ${project.name}\n\n`;
82
- if (decisions.length > 0) {
83
- context += `### Decisions Made\n`;
84
- for (const d of decisions.slice(0, 8)) {
85
- context += `- ${d.content}\n`;
86
- }
87
- context += '\n';
88
- }
89
- if (rejections.length > 0) {
90
- context += `### Approaches Rejected\n`;
91
- for (const r of rejections.slice(0, 5)) {
92
- context += `- ${r.content}\n`;
93
- }
94
- context += '\n';
95
- }
96
- context += `_Context loaded from ${recentExtractions.length} previous conversation extractions._\n`;
97
- debugLog('Outputting context');
98
- // Output with additionalContext for Claude Code to inject
99
- outputResult({
100
- hookSpecificOutput: {
101
- hookEventName: 'SessionStart',
102
- additionalContext: context
103
- }
104
- });
105
- }
106
- catch (error) {
107
- // On error, output empty result (don't block session start)
108
- // DO NOT use console.error - it causes Claude Code to think there was an error
109
- debugLog(`Error: ${error.message}`);
110
- outputResult({});
111
- }
112
- }
113
- function outputResult(result) {
114
- console.log(JSON.stringify(result));
115
- }
116
- //# sourceMappingURL=hook-session-start.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-session-start.js","sourceRoot":"","sources":["../../../src/cli/commands/hook-session-start.ts"],"names":[],"mappings":"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"}