claude-memory-store 0.2.1 → 0.2.2

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 (75) hide show
  1. package/dist/atlas/vector.d.ts +6 -0
  2. package/dist/atlas/vector.d.ts.map +1 -1
  3. package/dist/atlas/vector.js +44 -0
  4. package/dist/atlas/vector.js.map +1 -1
  5. package/dist/bin/claude-memory.js +135 -80
  6. package/dist/bin/claude-memory.js.map +1 -1
  7. package/dist/bin/mcp-server.js +48 -8
  8. package/dist/bin/mcp-server.js.map +1 -1
  9. package/dist/config.d.ts +7 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +43 -2
  12. package/dist/config.js.map +1 -1
  13. package/dist/hooks/hook-input.d.ts +34 -0
  14. package/dist/hooks/hook-input.d.ts.map +1 -0
  15. package/dist/hooks/hook-input.js +68 -0
  16. package/dist/hooks/hook-input.js.map +1 -0
  17. package/dist/hooks/post-tool-use.d.ts +8 -2
  18. package/dist/hooks/post-tool-use.d.ts.map +1 -1
  19. package/dist/hooks/post-tool-use.js +203 -3
  20. package/dist/hooks/post-tool-use.js.map +1 -1
  21. package/dist/hooks/pre-compact.d.ts +3 -0
  22. package/dist/hooks/pre-compact.d.ts.map +1 -0
  23. package/dist/hooks/pre-compact.js +36 -0
  24. package/dist/hooks/pre-compact.js.map +1 -0
  25. package/dist/hooks/pre-tool-use.d.ts +15 -0
  26. package/dist/hooks/pre-tool-use.d.ts.map +1 -1
  27. package/dist/hooks/pre-tool-use.js +166 -8
  28. package/dist/hooks/pre-tool-use.js.map +1 -1
  29. package/dist/hooks/stop.js +6 -99
  30. package/dist/hooks/stop.js.map +1 -1
  31. package/dist/hooks/transcript-utils.d.ts +18 -0
  32. package/dist/hooks/transcript-utils.d.ts.map +1 -0
  33. package/dist/hooks/transcript-utils.js +110 -0
  34. package/dist/hooks/transcript-utils.js.map +1 -0
  35. package/dist/memory/commands.d.ts.map +1 -1
  36. package/dist/memory/commands.js +7 -1
  37. package/dist/memory/commands.js.map +1 -1
  38. package/dist/memory/developer.d.ts +16 -0
  39. package/dist/memory/developer.d.ts.map +1 -1
  40. package/dist/memory/developer.js +28 -0
  41. package/dist/memory/developer.js.map +1 -1
  42. package/dist/memory/project.d.ts +26 -0
  43. package/dist/memory/project.d.ts.map +1 -1
  44. package/dist/memory/project.js +79 -0
  45. package/dist/memory/project.js.map +1 -1
  46. package/dist/memory/working.d.ts.map +1 -1
  47. package/dist/memory/working.js +2 -1
  48. package/dist/memory/working.js.map +1 -1
  49. package/dist/modes/code.d.ts +7 -0
  50. package/dist/modes/code.d.ts.map +1 -0
  51. package/dist/modes/code.js +15 -0
  52. package/dist/modes/code.js.map +1 -0
  53. package/dist/modes/index.d.ts +16 -0
  54. package/dist/modes/index.d.ts.map +1 -0
  55. package/dist/modes/index.js +29 -0
  56. package/dist/modes/index.js.map +1 -0
  57. package/dist/modes/research.d.ts +7 -0
  58. package/dist/modes/research.d.ts.map +1 -0
  59. package/dist/modes/research.js +15 -0
  60. package/dist/modes/research.js.map +1 -0
  61. package/dist/natural-language/router.js +1 -3
  62. package/dist/natural-language/router.js.map +1 -1
  63. package/dist/startup/injector.d.ts.map +1 -1
  64. package/dist/startup/injector.js +64 -38
  65. package/dist/startup/injector.js.map +1 -1
  66. package/dist/types.d.ts +8 -0
  67. package/dist/types.d.ts.map +1 -1
  68. package/dist/utils.d.ts +10 -0
  69. package/dist/utils.d.ts.map +1 -1
  70. package/dist/utils.js +33 -0
  71. package/dist/utils.js.map +1 -1
  72. package/dist/watch/event-log.d.ts.map +1 -1
  73. package/dist/watch/event-log.js +23 -0
  74. package/dist/watch/event-log.js.map +1 -1
  75. package/package.json +1 -1
@@ -1,17 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initCommandCache = initCommandCache;
4
+ exports.reloadCommandCache = reloadCommandCache;
4
5
  exports.getCommandCache = getCommandCache;
6
+ exports.preToolUseDispatch = preToolUseDispatch;
5
7
  exports.preToolUse = preToolUse;
6
8
  const command_cache_js_1 = require("../cache/command-cache.js");
7
9
  const project_js_1 = require("../memory/project.js");
8
- const project_js_2 = require("../memory/project.js");
9
10
  const vector_js_1 = require("../atlas/vector.js");
10
11
  const project_id_js_1 = require("../project-id.js");
11
12
  const utils_js_1 = require("../utils.js");
12
13
  const config_js_1 = require("../config.js");
14
+ const index_js_1 = require("../modes/index.js");
13
15
  const injector_js_1 = require("../startup/injector.js");
14
16
  const event_log_js_1 = require("../watch/event-log.js");
17
+ const hook_input_js_1 = require("./hook-input.js");
15
18
  let commandCache = null;
16
19
  let cacheLoaded = false;
17
20
  async function initCommandCache() {
@@ -20,9 +23,154 @@ async function initCommandCache() {
20
23
  commandCache.load(commands);
21
24
  cacheLoaded = true;
22
25
  }
26
+ /**
27
+ * Reload the command cache from the database.
28
+ * Call after command mutations (store/delete) to keep the cache fresh.
29
+ */
30
+ async function reloadCommandCache() {
31
+ if (!commandCache) {
32
+ await initCommandCache();
33
+ return;
34
+ }
35
+ try {
36
+ const commands = await (0, project_js_1.getAllCommands)();
37
+ commandCache.load(commands);
38
+ }
39
+ catch {
40
+ // Best-effort reload — stale cache is better than no cache
41
+ }
42
+ }
23
43
  function getCommandCache() {
24
44
  return commandCache;
25
45
  }
46
+ // ─── Tool-Specific Dispatch ─────────────────────────────────────────────────
47
+ /**
48
+ * New entry point: dispatches to tool-specific handlers based on the
49
+ * structured JSON that Claude Code sends via stdin.
50
+ */
51
+ async function preToolUseDispatch(input) {
52
+ const toolName = input.tool_name || '';
53
+ switch (toolName) {
54
+ case 'Edit':
55
+ case 'Write':
56
+ return preToolUseFileChange(input);
57
+ case 'Bash':
58
+ return preToolUseBash(input);
59
+ case 'Read':
60
+ case 'Glob':
61
+ case 'Grep':
62
+ // Read-only tools — no injection needed
63
+ return null;
64
+ default:
65
+ return preToolUseGeneric(input);
66
+ }
67
+ }
68
+ /**
69
+ * Before Edit/Write: surface file-specific memory.
70
+ * Uses text search (not vector) because file paths match better with regex.
71
+ */
72
+ async function preToolUseFileChange(input) {
73
+ const filePath = (0, hook_input_js_1.getFilePath)(input);
74
+ if (!filePath)
75
+ return null;
76
+ try {
77
+ const fileMemory = await (0, project_js_1.searchByFilePath)(filePath);
78
+ if (fileMemory.length === 0)
79
+ return null;
80
+ const sections = [];
81
+ sections.push(`[MEMORY:FILE] Context for ${filePath.split('/').slice(-2).join('/')}:\n`);
82
+ for (const item of fileMemory) {
83
+ sections.push(` ${(0, utils_js_1.formatCompactLine)(item.type, item.id, item.content)}`);
84
+ }
85
+ sections.push('\nUse recall_detail(id) for full content.');
86
+ return (0, injector_js_1.trimInjection)(sections.join('\n'));
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ }
92
+ /**
93
+ * Before Bash: check command cache and avoid rules.
94
+ */
95
+ async function preToolUseBash(input) {
96
+ const command = (0, hook_input_js_1.getBashCommand)(input);
97
+ if (!command)
98
+ return null;
99
+ // Ensure cache is loaded
100
+ if (!cacheLoaded || !commandCache) {
101
+ try {
102
+ await initCommandCache();
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ }
108
+ const sections = [];
109
+ // Check command cache for verified commands
110
+ const matchedCommand = commandCache.match(command);
111
+ if (matchedCommand) {
112
+ (0, event_log_js_1.logCacheHit)(command);
113
+ sections.push('[MEMORY:ACTIVE] Act on this before responding:\n');
114
+ sections.push(`VERIFIED COMMAND -- ${matchedCommand.triggers[0] || 'unnamed'} (confirmed ${matchedCommand.verified_count}x)`);
115
+ matchedCommand.steps.forEach((step, i) => {
116
+ sections.push(`${i + 1}. ${step}`);
117
+ });
118
+ if (matchedCommand.notes) {
119
+ sections.push(`Notes: ${matchedCommand.notes}`);
120
+ }
121
+ }
122
+ else {
123
+ (0, event_log_js_1.logCacheMiss)(command);
124
+ }
125
+ // Check avoid rules for known-bad command patterns
126
+ try {
127
+ const avoidRules = await (0, project_js_1.getAvoidRules)();
128
+ const commandLower = command.toLowerCase();
129
+ const matchingAvoids = avoidRules.filter((rule) => {
130
+ const ruleLower = rule.toLowerCase();
131
+ // Check if the avoid rule mentions a command fragment that appears in this command
132
+ const ruleWords = ruleLower.split(/\s+/).filter((w) => w.length > 3);
133
+ return ruleWords.some((word) => commandLower.includes(word));
134
+ });
135
+ if (matchingAvoids.length > 0) {
136
+ if (sections.length === 0) {
137
+ sections.push('[MEMORY:ACTIVE] Act on this before responding:\n');
138
+ }
139
+ sections.push('\nAVOID RULES (check before running):');
140
+ for (const rule of matchingAvoids) {
141
+ sections.push(` ! ${rule.slice(0, 200)}`);
142
+ }
143
+ }
144
+ }
145
+ catch {
146
+ // Avoid rule check failed — continue silently
147
+ }
148
+ return sections.length > 0 ? (0, injector_js_1.trimInjection)(sections.join('\n')) : null;
149
+ }
150
+ /**
151
+ * Generic fallback: semantic vector search for tools without dedicated handlers.
152
+ * Extracts a meaningful query from the tool input.
153
+ */
154
+ async function preToolUseGeneric(input) {
155
+ const query = (0, hook_input_js_1.extractSearchQuery)(input);
156
+ if (!query)
157
+ return null;
158
+ // Quality gate: skip noisy/too-short/too-long queries
159
+ const trimmed = query.trim();
160
+ if (trimmed.length < 8 || trimmed.length > 500)
161
+ return null;
162
+ // Skip queries that are mostly non-alpha (paths, IDs, JSON fragments)
163
+ const alphaRatio = (trimmed.match(/[a-zA-Z]/g) || []).length / trimmed.length;
164
+ if (alphaRatio < 0.4)
165
+ return null;
166
+ // Delegate to the legacy semantic search with the extracted query
167
+ return preToolUse(trimmed);
168
+ }
169
+ // ─── Legacy Entry Point (backward compat) ───────────────────────────────────
170
+ /**
171
+ * Original entry point: semantic search on a raw text prompt.
172
+ * Kept for backward compatibility when stdin is not JSON.
173
+ */
26
174
  async function preToolUse(prompt) {
27
175
  const projectId = (0, project_id_js_1.getProjectId)();
28
176
  // Ensure cache is loaded
@@ -48,11 +196,14 @@ async function preToolUse(prompt) {
48
196
  if (!matchedCommand) {
49
197
  try {
50
198
  const searchStart = Date.now();
51
- const results = await (0, vector_js_1.search)(prompt, projectId, 3);
199
+ const maxResults = (0, config_js_1.getContextMaxResults)();
200
+ const results = await (0, vector_js_1.search)(prompt, projectId, maxResults);
52
201
  const searchMs = Date.now() - searchStart;
53
202
  const topScore = results.length > 0 ? results[0].score : 0;
54
203
  (0, event_log_js_1.logSearch)(prompt, results.length, searchMs, topScore);
55
- relevantMemory = results.filter((r) => r.score >= config_js_1.VECTOR_RELEVANCE_THRESHOLD);
204
+ relevantMemory = results
205
+ .filter((r) => r.score >= config_js_1.VECTOR_RELEVANCE_THRESHOLD)
206
+ .map((r) => ({ id: r.id, type: r.type, content: r.content, score: r.score }));
56
207
  }
57
208
  catch {
58
209
  // Semantic search unavailable — continue silently
@@ -61,7 +212,7 @@ async function preToolUse(prompt) {
61
212
  // Step 3: Open thread relevance check
62
213
  let relatedThreads = [];
63
214
  try {
64
- const allThreads = await (0, project_js_2.getOpenThreads)();
215
+ const allThreads = await (0, project_js_1.getOpenThreads)();
65
216
  const promptLower = prompt.toLowerCase();
66
217
  relatedThreads = allThreads.filter((thread) => {
67
218
  const descLower = thread.description.toLowerCase();
@@ -95,9 +246,16 @@ function buildContextInjection(command, memory, threads) {
95
246
  sections.push('');
96
247
  }
97
248
  if (memory.length > 0) {
249
+ const detail = (0, config_js_1.getContextDetail)();
250
+ const compactMax = (0, index_js_1.getActiveMode)().compact_max_chars;
98
251
  sections.push('RELATED MEMORY');
99
252
  for (const item of memory) {
100
- sections.push(` [${item.type}] ${item.content.slice(0, 200)}`);
253
+ if (detail === 'full') {
254
+ sections.push(` [${item.type}] ${item.content}`);
255
+ }
256
+ else {
257
+ sections.push(` ${(0, utils_js_1.formatCompactLine)(item.type, item.id, item.content, compactMax)}`);
258
+ }
101
259
  }
102
260
  sections.push('');
103
261
  }
@@ -105,11 +263,11 @@ function buildContextInjection(command, memory, threads) {
105
263
  sections.push('RELATED OPEN THREADS');
106
264
  for (const thread of threads) {
107
265
  sections.push(`! ${thread.description} -- ${thread.status} (${(0, utils_js_1.getAge)(thread.created)})`);
108
- if (thread.context) {
109
- sections.push(` "${thread.context}"`);
110
- }
111
266
  }
112
267
  }
268
+ if (memory.length > 0 || threads.length > 0) {
269
+ sections.push('\nUse recall_detail(id) for full content.');
270
+ }
113
271
  return sections.join('\n');
114
272
  }
115
273
  //# sourceMappingURL=pre-tool-use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pre-tool-use.js","sourceRoot":"","sources":["../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pre-tool-use.js","sourceRoot":"","sources":["../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ exports.sessionEnd = sessionEnd;
4
4
  exports.processSummaryResponse = processSummaryResponse;
5
5
  exports.handleAcknowledgement = handleAcknowledgement;
6
6
  const uuid_1 = require("uuid");
7
- const fs_1 = require("fs");
8
7
  const working_js_1 = require("../memory/working.js");
9
8
  const project_js_1 = require("../memory/project.js");
10
9
  const developer_js_1 = require("../memory/developer.js");
11
10
  const summarizer_js_1 = require("../summarizer.js");
12
11
  const acknowledgement_js_1 = require("../acknowledgement.js");
13
12
  const detector_js_1 = require("../detector.js");
13
+ const transcript_utils_js_1 = require("./transcript-utils.js");
14
14
  /**
15
15
  * Stop hook - fires at session end.
16
16
  *
@@ -116,107 +116,14 @@ async function handleAcknowledgement(choice, items, individualChoices) {
116
116
  return '[MEMORY] Unknown choice. Working memory was still saved.';
117
117
  }
118
118
  }
119
- // Minimum message length to store (skip "ok", "yes", greetings)
120
- const MIN_CONTENT_LENGTH = 100;
121
- const MAX_CONTENT_LENGTH = 2000;
122
- // Patterns that indicate noise, not real developer knowledge
123
- const NOISE_PATTERNS = [
124
- /^<(command-|task-|system-|local-command)/i, // XML tags from Claude Code internals
125
- /^<\/?(command|task|system)/i,
126
- /<task-notification>/i,
127
- /<task-id>/i,
128
- /toolu_[A-Za-z0-9]/, // Tool use IDs
129
- /^\s*\[?(Request interrupted|Tool loaded)/i, // System messages
130
- /^\/mdd\s/i, // MDD slash commands
131
- /^\/recall|^\/remember|^\/threads|^\/stats/i, // Memory slash commands
132
- /^\s*```/, // Code blocks (not knowledge)
133
- /^(yes|no|ok|sure|y|n|go|do it|looks good)\s*$/i, // Short affirmations
134
- /<system-reminder>/i,
135
- /hook success|hook fail/i,
136
- /^npm\s|^git\s|^npx\s/i, // Raw commands
137
- /^\s*\d+\)\s/, // Numbered list fragments
138
- ];
139
119
  /**
140
- * Check if a message contains actual developer knowledge worth storing,
141
- * not system noise, XML tags, or tool artifacts.
142
- */
143
- function isSubstantiveContent(content) {
144
- if (content.length < MIN_CONTENT_LENGTH)
145
- return false;
146
- if (content.length > MAX_CONTENT_LENGTH)
147
- return false;
148
- // Check against noise patterns
149
- for (const pattern of NOISE_PATTERNS) {
150
- if (pattern.test(content))
151
- return false;
152
- }
153
- // Require at least some regular words (not just IDs/paths/XML)
154
- const wordCount = content.replace(/<[^>]+>/g, '').split(/\s+/).filter(w => /^[a-zA-Z]{3,}$/.test(w)).length;
155
- if (wordCount < 5)
156
- return false;
157
- return true;
158
- }
159
- /**
160
- * Clean content before storing — strip XML tags, control chars, collapse whitespace.
161
- */
162
- function cleanContent(content) {
163
- return content
164
- .replace(/<[^>]+>/g, ' ') // Strip XML/HTML tags
165
- .replace(/[\x00-\x1f]/g, ' ') // Strip control chars
166
- .replace(/\s+/g, ' ') // Collapse whitespace
167
- .trim();
168
- }
169
- /**
170
- * Read the transcript JSONL, extract the latest user message(s),
171
- * and store substantive content as context memory.
120
+ * Read the transcript JSONL, extract substantive content, and store as context.
121
+ * Delegates to shared transcript-utils module.
172
122
  */
173
123
  async function storeTranscriptContent(transcriptPath) {
174
- let lines;
175
- try {
176
- const raw = (0, fs_1.readFileSync)(transcriptPath, 'utf-8');
177
- lines = raw.trim().split('\n').filter(Boolean);
178
- }
179
- catch {
180
- return;
181
- }
182
- const messages = [];
183
- for (const line of lines) {
184
- try {
185
- const entry = JSON.parse(line);
186
- const role = entry.role || entry.type || '';
187
- let content = '';
188
- if (typeof entry.content === 'string') {
189
- content = entry.content;
190
- }
191
- else if (Array.isArray(entry.content)) {
192
- content = entry.content
193
- .filter((b) => b.type === 'text')
194
- .map((b) => b.text)
195
- .join('\n');
196
- }
197
- else if (entry.message?.content) {
198
- content = typeof entry.message.content === 'string'
199
- ? entry.message.content
200
- : '';
201
- }
202
- if (role && content) {
203
- messages.push({ role, content });
204
- }
205
- }
206
- catch {
207
- // Skip unparseable lines
208
- }
209
- }
210
- // Filter to substantive user messages only
211
- const userMessages = messages
212
- .filter(m => m.role === 'human' || m.role === 'user')
213
- .filter(m => isSubstantiveContent(m.content));
214
- // Clean and store each message
215
- for (const msg of userMessages) {
216
- const cleaned = cleanContent(msg.content);
217
- if (cleaned.length >= MIN_CONTENT_LENGTH) {
218
- await (0, project_js_1.addContext)(cleaned);
219
- }
124
+ const messages = (0, transcript_utils_js_1.extractSubstantiveContent)(transcriptPath);
125
+ for (const msg of messages) {
126
+ await (0, project_js_1.addContext)(msg);
220
127
  }
221
128
  }
222
129
  //# sourceMappingURL=stop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/hooks/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/hooks/stop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const MIN_CONTENT_LENGTH = 100;
2
+ export declare const MAX_CONTENT_LENGTH = 2000;
3
+ export declare const NOISE_PATTERNS: RegExp[];
4
+ /**
5
+ * Check if a message contains actual developer knowledge worth storing,
6
+ * not system noise, XML tags, or tool artifacts.
7
+ */
8
+ export declare function isSubstantiveContent(content: string): boolean;
9
+ /**
10
+ * Clean content before storing — strip XML tags, control chars, collapse whitespace.
11
+ */
12
+ export declare function cleanContent(content: string): string;
13
+ /**
14
+ * Read a transcript JSONL file and extract substantive user messages.
15
+ * Returns cleaned content strings ready for storage.
16
+ */
17
+ export declare function extractSubstantiveContent(transcriptPath: string): string[];
18
+ //# sourceMappingURL=transcript-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-utils.d.ts","sourceRoot":"","sources":["../../src/hooks/transcript-utils.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAGvC,eAAO,MAAM,cAAc,UAe1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CA2C1E"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NOISE_PATTERNS = exports.MAX_CONTENT_LENGTH = exports.MIN_CONTENT_LENGTH = void 0;
4
+ exports.isSubstantiveContent = isSubstantiveContent;
5
+ exports.cleanContent = cleanContent;
6
+ exports.extractSubstantiveContent = extractSubstantiveContent;
7
+ /**
8
+ * Shared transcript processing utilities.
9
+ * Used by both the Stop hook and PreCompact hook.
10
+ */
11
+ const fs_1 = require("fs");
12
+ // Minimum message length to store (skip "ok", "yes", greetings)
13
+ exports.MIN_CONTENT_LENGTH = 100;
14
+ exports.MAX_CONTENT_LENGTH = 2000;
15
+ // Patterns that indicate noise, not real developer knowledge
16
+ exports.NOISE_PATTERNS = [
17
+ /^<(command-|task-|system-|local-command)/i, // XML tags from Claude Code internals
18
+ /^<\/?(command|task|system)/i,
19
+ /<task-notification>/i,
20
+ /<task-id>/i,
21
+ /toolu_[A-Za-z0-9]/, // Tool use IDs
22
+ /^\s*\[?(Request interrupted|Tool loaded)/i, // System messages
23
+ /^\/mdd\s/i, // MDD slash commands
24
+ /^\/recall|^\/remember|^\/threads|^\/stats/i, // Memory slash commands
25
+ /^\s*```/, // Code blocks (not knowledge)
26
+ /^(yes|no|ok|sure|y|n|go|do it|looks good)\s*$/i, // Short affirmations
27
+ /<system-reminder>/i,
28
+ /hook success|hook fail/i,
29
+ /^npm\s|^git\s|^npx\s/i, // Raw commands
30
+ /^\s*\d+\)\s/, // Numbered list fragments
31
+ ];
32
+ /**
33
+ * Check if a message contains actual developer knowledge worth storing,
34
+ * not system noise, XML tags, or tool artifacts.
35
+ */
36
+ function isSubstantiveContent(content) {
37
+ if (content.length < exports.MIN_CONTENT_LENGTH)
38
+ return false;
39
+ if (content.length > exports.MAX_CONTENT_LENGTH)
40
+ return false;
41
+ // Check against noise patterns
42
+ for (const pattern of exports.NOISE_PATTERNS) {
43
+ if (pattern.test(content))
44
+ return false;
45
+ }
46
+ // Require at least some regular words (not just IDs/paths/XML)
47
+ const wordCount = content.replace(/<[^>]+>/g, '').split(/\s+/).filter(w => /^[a-zA-Z]{3,}$/.test(w)).length;
48
+ if (wordCount < 5)
49
+ return false;
50
+ return true;
51
+ }
52
+ /**
53
+ * Clean content before storing — strip XML tags, control chars, collapse whitespace.
54
+ */
55
+ function cleanContent(content) {
56
+ return content
57
+ .replace(/<[^>]+>/g, ' ') // Strip XML/HTML tags
58
+ .replace(/[\x00-\x1f]/g, ' ') // Strip control chars
59
+ .replace(/\s+/g, ' ') // Collapse whitespace
60
+ .trim();
61
+ }
62
+ /**
63
+ * Read a transcript JSONL file and extract substantive user messages.
64
+ * Returns cleaned content strings ready for storage.
65
+ */
66
+ function extractSubstantiveContent(transcriptPath) {
67
+ let lines;
68
+ try {
69
+ const raw = (0, fs_1.readFileSync)(transcriptPath, 'utf-8');
70
+ lines = raw.trim().split('\n').filter(Boolean);
71
+ }
72
+ catch {
73
+ return [];
74
+ }
75
+ const messages = [];
76
+ for (const line of lines) {
77
+ try {
78
+ const entry = JSON.parse(line);
79
+ const role = entry.role || entry.type || '';
80
+ let content = '';
81
+ if (typeof entry.content === 'string') {
82
+ content = entry.content;
83
+ }
84
+ else if (Array.isArray(entry.content)) {
85
+ content = entry.content
86
+ .filter((b) => b.type === 'text')
87
+ .map((b) => b.text)
88
+ .join('\n');
89
+ }
90
+ else if (entry.message?.content) {
91
+ content = typeof entry.message.content === 'string'
92
+ ? entry.message.content
93
+ : '';
94
+ }
95
+ if (role && content) {
96
+ messages.push({ role, content });
97
+ }
98
+ }
99
+ catch {
100
+ // Skip unparseable lines
101
+ }
102
+ }
103
+ // Filter to substantive user messages, clean, and return
104
+ return messages
105
+ .filter(m => m.role === 'human' || m.role === 'user')
106
+ .filter(m => isSubstantiveContent(m.content))
107
+ .map(m => cleanContent(m.content))
108
+ .filter(c => c.length >= exports.MIN_CONTENT_LENGTH);
109
+ }
110
+ //# sourceMappingURL=transcript-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-utils.js","sourceRoot":"","sources":["../../src/hooks/transcript-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/memory/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAYjF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAC3C,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC,CACrD,CAMA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/memory/commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAYjF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIrE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAC3C,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC,CACrD,CAMA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE"}
@@ -6,6 +6,7 @@ exports.deleteCommand = deleteCommand;
6
6
  exports.listCommands = listCommands;
7
7
  exports.verifyCommand = verifyCommand;
8
8
  const project_js_1 = require("./project.js");
9
+ const pre_tool_use_js_1 = require("../hooks/pre-tool-use.js");
9
10
  async function storeCommand(trigger, data) {
10
11
  const existing = await (0, project_js_1.getAllCommands)();
11
12
  const prev = existing[trigger];
@@ -18,6 +19,8 @@ async function storeCommand(trigger, data) {
18
19
  notes: data.notes || '',
19
20
  };
20
21
  await (0, project_js_1.saveCommand)(trigger, command);
22
+ // Invalidate command cache so preToolUse sees the new/updated command immediately
23
+ (0, pre_tool_use_js_1.reloadCommandCache)().catch(() => { });
21
24
  }
22
25
  async function getCommand(trigger) {
23
26
  const commands = await (0, project_js_1.getAllCommands)();
@@ -33,7 +36,10 @@ async function getCommand(trigger) {
33
36
  return null;
34
37
  }
35
38
  async function deleteCommand(trigger) {
36
- return (0, project_js_1.removeCommand)(trigger);
39
+ const result = await (0, project_js_1.removeCommand)(trigger);
40
+ if (result)
41
+ (0, pre_tool_use_js_1.reloadCommandCache)().catch(() => { });
42
+ return result;
37
43
  }
38
44
  async function listCommands() {
39
45
  const commands = await (0, project_js_1.getAllCommands)();
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/memory/commands.ts"],"names":[],"mappings":";;AAGA,oCAsBC;AAED,gCAYC;AAED,sCAEC;AAED,oCAQC;AAED,sCASC;AAhED,6CAA0E;AAGnE,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,IAKC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAoB;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC;QACpC,aAAa,EAAE,IAAI,IAAI,EAAE;QACzB,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC;IAEF,MAAM,IAAA,wBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,eAAe;IACf,IAAI,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEhD,kBAAkB;IAClB,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,OAAO,IAAA,0BAAa,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAEM,KAAK,UAAU,YAAY;IAGhC,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO;QACP,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,GAAG,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;IAC/B,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC;IACxB,MAAM,IAAA,wBAAW,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/memory/commands.ts"],"names":[],"mappings":";;AAIA,oCAyBC;AAED,gCAYC;AAED,sCAIC;AAED,oCAQC;AAED,sCASC;AAtED,6CAA0E;AAC1E,8DAA8D;AAGvD,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,IAKC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAoB;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC;QACpC,aAAa,EAAE,IAAI,IAAI,EAAE;QACzB,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC;IAEF,MAAM,IAAA,wBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEpC,kFAAkF;IAClF,IAAA,oCAAkB,GAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,eAAe;IACf,IAAI,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEhD,kBAAkB;IAClB,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,IAAA,oCAAkB,GAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,YAAY;IAGhC,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO;QACP,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,GAAE,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,GAAG,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;IAC/B,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC;IACxB,MAAM,IAAA,wBAAW,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -4,14 +4,30 @@ export declare function ensureDeveloperMeta(): Promise<DeveloperMeta>;
4
4
  export declare function incrementDeveloperSession(costUsd?: number): Promise<void>;
5
5
  export declare function addPreference(pref: string): Promise<void>;
6
6
  export declare function getPreferences(devId?: string): Promise<string[]>;
7
+ export declare function getPreferencesRaw(devId?: string): Promise<Array<{
8
+ id: string;
9
+ content: string;
10
+ }>>;
7
11
  export declare function removePreference(pref: string): Promise<boolean>;
8
12
  export declare function addStyle(style: string): Promise<void>;
9
13
  export declare function getStyles(devId?: string): Promise<string[]>;
14
+ export declare function getStylesRaw(devId?: string): Promise<Array<{
15
+ id: string;
16
+ content: string;
17
+ }>>;
10
18
  export declare function removeStyle(style: string): Promise<boolean>;
11
19
  export declare function addDefault(def: string): Promise<void>;
12
20
  export declare function getDefaults(devId?: string): Promise<string[]>;
21
+ export declare function getDefaultsRaw(devId?: string): Promise<Array<{
22
+ id: string;
23
+ content: string;
24
+ }>>;
13
25
  export declare function removeDefault(def: string): Promise<boolean>;
14
26
  export declare function addDeveloperAvoid(avoid: string): Promise<void>;
15
27
  export declare function removeDevAvoid(avoid: string): Promise<boolean>;
16
28
  export declare function getDevAvoidRules(devId?: string): Promise<string[]>;
29
+ export declare function getDevAvoidRulesRaw(devId?: string): Promise<Array<{
30
+ id: string;
31
+ content: string;
32
+ }>>;
17
33
  //# sourceMappingURL=developer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../src/memory/developer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,aAAa,CAAC;AAIrB,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUtE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAkBlE;AAED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlF;AAID,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/D;AAED,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUtE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrE;AAID,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3D;AAED,wBAAsB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUjE;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWjE;AAID,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3D;AAED,wBAAsB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWjE;AAID,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBpE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWpE;AAED,wBAAsB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUxE"}
1
+ {"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../src/memory/developer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,aAAa,CAAC;AAIrB,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUtE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAkBlE;AAED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlF;AAID,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/D;AAED,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUtE;AAED,wBAAsB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAKvG;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrE;AAID,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3D;AAED,wBAAsB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUjE;AAED,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAKlG;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWjE;AAID,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3D;AAED,wBAAsB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnE;AAED,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAKpG;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWjE;AAID,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBpE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWpE;AAED,wBAAsB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUxE;AAED,wBAAsB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAKzG"}