@memnexus-ai/cli 1.7.62 → 1.7.63

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 (38) hide show
  1. package/dist/commands/commit-context.d.ts +2 -1
  2. package/dist/commands/commit-context.d.ts.map +1 -1
  3. package/dist/commands/commit-context.js +148 -2
  4. package/dist/commands/commit-context.js.map +1 -1
  5. package/dist/commands/hook.d.ts +3 -0
  6. package/dist/commands/hook.d.ts.map +1 -1
  7. package/dist/commands/hook.js +81 -8
  8. package/dist/commands/hook.js.map +1 -1
  9. package/dist/lib/agent-help.d.ts.map +1 -1
  10. package/dist/lib/agent-help.js +20 -1
  11. package/dist/lib/agent-help.js.map +1 -1
  12. package/dist/lib/commit-context/fact-enricher.d.ts +40 -0
  13. package/dist/lib/commit-context/fact-enricher.d.ts.map +1 -0
  14. package/dist/lib/commit-context/fact-enricher.js +46 -0
  15. package/dist/lib/commit-context/fact-enricher.js.map +1 -0
  16. package/dist/lib/commit-context/git-reader.d.ts +9 -0
  17. package/dist/lib/commit-context/git-reader.d.ts.map +1 -1
  18. package/dist/lib/commit-context/git-reader.js +24 -0
  19. package/dist/lib/commit-context/git-reader.js.map +1 -1
  20. package/dist/lib/commit-context/index.d.ts +5 -2
  21. package/dist/lib/commit-context/index.d.ts.map +1 -1
  22. package/dist/lib/commit-context/index.js +9 -1
  23. package/dist/lib/commit-context/index.js.map +1 -1
  24. package/dist/lib/commit-context/llm-summarizer.d.ts +9 -0
  25. package/dist/lib/commit-context/llm-summarizer.d.ts.map +1 -0
  26. package/dist/lib/commit-context/llm-summarizer.js +145 -0
  27. package/dist/lib/commit-context/llm-summarizer.js.map +1 -0
  28. package/dist/lib/commit-context/privacy-filter.d.ts +13 -0
  29. package/dist/lib/commit-context/privacy-filter.d.ts.map +1 -0
  30. package/dist/lib/commit-context/privacy-filter.js +46 -0
  31. package/dist/lib/commit-context/privacy-filter.js.map +1 -0
  32. package/dist/lib/commit-context/session-reader.d.ts +9 -0
  33. package/dist/lib/commit-context/session-reader.d.ts.map +1 -1
  34. package/dist/lib/commit-context/session-reader.js +69 -0
  35. package/dist/lib/commit-context/session-reader.js.map +1 -1
  36. package/dist/lib/commit-context/types.d.ts +1 -0
  37. package/dist/lib/commit-context/types.d.ts.map +1 -1
  38. package/package.json +2 -1
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Commit Context Commands — list and show commit context entries.
2
+ * Commit Context Commands — list, show, and sync commit context entries.
3
3
  *
4
4
  * `mx commit-context list` — list recent commit contexts (API or local cache)
5
5
  * `mx commit-context show <sha>` — show full details for a specific commit
6
+ * `mx commit-context sync` — upload unsynced local cache entries to the API
6
7
  */
7
8
  import { Command } from 'commander';
8
9
  export declare function registerCommitContextCommands(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"commit-context.d.ts","sourceRoot":"","sources":["../../src/commands/commit-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgCpE"}
1
+ {"version":3,"file":"commit-context.d.ts","sourceRoot":"","sources":["../../src/commands/commit-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiDpE"}
@@ -43,6 +43,7 @@ const errors_1 = require("../lib/errors");
43
43
  const formatters_1 = require("../lib/formatters");
44
44
  const spinner_1 = require("../lib/spinner");
45
45
  const commit_context_1 = require("../lib/commit-context");
46
+ const fact_enricher_1 = require("../lib/commit-context/fact-enricher");
46
47
  function registerCommitContextCommands(program) {
47
48
  const commitContext = program
48
49
  .command('commit-context')
@@ -53,6 +54,8 @@ function registerCommitContextCommands(program) {
53
54
  .option('--local', 'Read from local cache only (no API)')
54
55
  .option('--recent <period>', 'Time filter (e.g. 24h, 7d)', '7d')
55
56
  .option('--limit <n>', 'Max results', '10')
57
+ .option('--branch <name>', 'Filter by branch name')
58
+ .option('--agent <name>', 'Filter by agent name (e.g. claude-code)')
56
59
  .option('--format <format>', 'Output format')
57
60
  .action(async (options) => {
58
61
  try {
@@ -75,6 +78,21 @@ function registerCommitContextCommands(program) {
75
78
  (0, errors_1.handleError)(error);
76
79
  }
77
80
  });
81
+ commitContext
82
+ .command('sync')
83
+ .description('Upload unsynced local cache entries to the API')
84
+ .option('--limit <n>', 'Max entries to sync', '50')
85
+ .option('--dry-run', 'Show what would be synced without syncing')
86
+ .option('--no-enrich-facts', 'Skip fact enrichment after sync')
87
+ .option('--format <format>', 'Output format')
88
+ .action(async (options) => {
89
+ try {
90
+ await handleSync(options);
91
+ }
92
+ catch (error) {
93
+ (0, errors_1.handleError)(error);
94
+ }
95
+ });
78
96
  }
79
97
  async function handleList(options) {
80
98
  const format = (options.format || config_1.config.getEffectiveFormat());
@@ -82,7 +100,17 @@ async function handleList(options) {
82
100
  if (options.local) {
83
101
  // Local cache mode
84
102
  const projectRoot = (0, commit_context_1.findProjectRoot)() || process.cwd();
85
- const entries = (0, commit_context_1.listCache)(projectRoot, { limit });
103
+ let entries = (0, commit_context_1.listCache)(projectRoot, { limit: limit * 2 }); // overfetch for filtering
104
+ // Apply branch filter
105
+ if (options.branch) {
106
+ entries = entries.filter((e) => e.branch === options.branch);
107
+ }
108
+ // Apply agent filter
109
+ if (options.agent) {
110
+ entries = entries.filter((e) => e.agent === options.agent);
111
+ }
112
+ // Apply limit after filtering
113
+ entries = entries.slice(0, limit);
86
114
  if (entries.length === 0) {
87
115
  console.log(chalk_1.default.yellow('No local commit context entries found.'));
88
116
  console.log(chalk_1.default.gray('Commit contexts are cached at .mx/commit-context/'));
@@ -109,8 +137,15 @@ async function handleList(options) {
109
137
  try {
110
138
  const { getSdk } = await Promise.resolve().then(() => __importStar(require('../lib/api-client')));
111
139
  const sdk = getSdk();
140
+ // Build query with optional filters
141
+ const queryParts = [];
142
+ if (options.branch)
143
+ queryParts.push(`branch:${options.branch}`);
144
+ if (options.agent)
145
+ queryParts.push(`agent:${options.agent}`);
146
+ const q = queryParts.length > 0 ? queryParts.join(' ') : 'commit-context';
112
147
  const response = await sdk.memories.searchMemoriesGet({
113
- q: 'commit-context',
148
+ q,
114
149
  topics: 'commit-context',
115
150
  limit,
116
151
  sortBy: 'createdAt',
@@ -194,6 +229,89 @@ async function handleShow(sha, options) {
194
229
  throw error;
195
230
  }
196
231
  }
232
+ async function handleSync(options) {
233
+ const format = (options.format || config_1.config.getEffectiveFormat());
234
+ const limit = parseInt(options.limit || '50', 10);
235
+ const dryRun = options.dryRun || false;
236
+ const shouldEnrichFacts = options.enrichFacts !== false;
237
+ const projectRoot = (0, commit_context_1.findProjectRoot)() || process.cwd();
238
+ const unsynced = (0, commit_context_1.listCache)(projectRoot, { unsynced: true, limit });
239
+ if (unsynced.length === 0) {
240
+ console.log(chalk_1.default.green('All entries are synced. Nothing to do.'));
241
+ return;
242
+ }
243
+ if (dryRun) {
244
+ console.log(chalk_1.default.cyan(`Found ${unsynced.length} unsynced entries:`));
245
+ for (const entry of unsynced) {
246
+ console.log(` ${entry.shortSha} (${entry.branch}) — ${entry.timestamp}`);
247
+ }
248
+ console.log(chalk_1.default.gray('\nRun without --dry-run to sync these entries.'));
249
+ return;
250
+ }
251
+ if (!config_1.config.hasApiKey()) {
252
+ console.log(chalk_1.default.red('No API key configured. Run `mx auth login` first.'));
253
+ return;
254
+ }
255
+ const spinner = (0, spinner_1.createSpinner)(`Syncing ${unsynced.length} entries...`, format).start();
256
+ try {
257
+ const { getSdk } = await Promise.resolve().then(() => __importStar(require('../lib/api-client')));
258
+ const sdk = getSdk();
259
+ let synced = 0;
260
+ let failed = 0;
261
+ for (const entry of unsynced) {
262
+ try {
263
+ // Parse context field from content (extract from first lines)
264
+ const contextField = buildContextFieldFromCache(entry);
265
+ const topics = ['commit-context', `branch:${entry.branch}`];
266
+ const response = await sdk.memories.createMemory({
267
+ content: entry.content,
268
+ context: contextField,
269
+ topics,
270
+ conversationId: 'NEW',
271
+ });
272
+ const memoryId = response?.data?.id || response?.id;
273
+ if (memoryId) {
274
+ (0, commit_context_1.markSynced)(projectRoot, entry.shortSha, memoryId);
275
+ // Enrich with facts if enabled
276
+ if (shouldEnrichFacts) {
277
+ try {
278
+ // Reconstruct minimal git context for fact enrichment
279
+ const git = {
280
+ sha: entry.sha,
281
+ shortSha: entry.shortSha,
282
+ branch: entry.branch,
283
+ message: extractMessageFromContent(entry.content),
284
+ author: 'unknown', // Not stored in cache
285
+ timestamp: entry.timestamp,
286
+ filesChanged: extractFilesFromContent(entry.content),
287
+ insertions: 0,
288
+ deletions: 0,
289
+ isMergeCommit: false,
290
+ };
291
+ await (0, fact_enricher_1.enrichCommitFacts)(sdk, memoryId, git);
292
+ }
293
+ catch {
294
+ // Non-critical
295
+ }
296
+ }
297
+ }
298
+ synced++;
299
+ }
300
+ catch (error) {
301
+ (0, commit_context_1.markSyncError)(projectRoot, entry.shortSha, error?.message || 'Unknown error');
302
+ failed++;
303
+ }
304
+ }
305
+ spinner.succeed(`Synced ${synced} entries${failed > 0 ? `, ${failed} failed` : ''}`);
306
+ if (format === 'json') {
307
+ (0, formatters_1.printOutput)({ synced, failed, total: unsynced.length }, format);
308
+ }
309
+ }
310
+ catch (error) {
311
+ spinner.fail('Sync failed');
312
+ throw error;
313
+ }
314
+ }
197
315
  /** Parse the context field format: "commit:<sha> branch:<branch> agent:<agent>" */
198
316
  function parseContextField(context) {
199
317
  if (!context)
@@ -207,4 +325,32 @@ function parseContextField(context) {
207
325
  agent: agentMatch?.[1],
208
326
  };
209
327
  }
328
+ /** Build context field from cache entry */
329
+ function buildContextFieldFromCache(entry) {
330
+ return `commit:${entry.shortSha} branch:${entry.branch} agent:${entry.agent}`.slice(0, 200);
331
+ }
332
+ /** Extract commit message from content header line */
333
+ function extractMessageFromContent(content) {
334
+ const match = content.match(/^## CommitContext:\s*(.+?)\s*\(/m);
335
+ return match?.[1] || '';
336
+ }
337
+ /** Extract file paths from content bullet points */
338
+ function extractFilesFromContent(content) {
339
+ const files = [];
340
+ const lines = content.split('\n');
341
+ let inFileSection = false;
342
+ for (const line of lines) {
343
+ if (line.startsWith('**Files changed**')) {
344
+ inFileSection = true;
345
+ continue;
346
+ }
347
+ if (inFileSection && line.startsWith('- ')) {
348
+ files.push(line.slice(2).trim());
349
+ }
350
+ else if (inFileSection && !line.startsWith('- ')) {
351
+ break;
352
+ }
353
+ }
354
+ return files;
355
+ }
210
356
  //# sourceMappingURL=commit-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commit-context.js","sourceRoot":"","sources":["../../src/commands/commit-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit-context.js","sourceRoot":"","sources":["../../src/commands/commit-context.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@
5
5
  * It reads git + session context, builds a structured memory, caches locally,
6
6
  * and syncs to the MemNexus API.
7
7
  *
8
+ * Phase 2 additions: LLM distillation, privacy filtering, diff content,
9
+ * transcript excerpts, session memories, fact enrichment.
10
+ *
8
11
  * Always exits 0 — never blocks commits.
9
12
  */
10
13
  import { Command } from 'commander';
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB3D"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmB3D"}
@@ -36,6 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerHookCommands = registerHookCommands;
37
37
  const config_1 = require("../lib/config");
38
38
  const commit_context_1 = require("../lib/commit-context");
39
+ const llm_summarizer_1 = require("../lib/commit-context/llm-summarizer");
40
+ const fact_enricher_1 = require("../lib/commit-context/fact-enricher");
41
+ const privacy_filter_1 = require("../lib/commit-context/privacy-filter");
42
+ const date_utils_1 = require("../lib/date-utils");
39
43
  function registerHookCommands(program) {
40
44
  const hook = program.command('hook').description('Git hook handlers');
41
45
  hook
@@ -44,6 +48,8 @@ function registerHookCommands(program) {
44
48
  .option('--cwd <dir>', 'Working directory', process.cwd())
45
49
  .option('--dry-run', 'Print output without saving')
46
50
  .option('--no-sync', 'Skip API sync (cache only)')
51
+ .option('--summarizer <type>', 'Summarizer: llm (default) or heuristic', 'llm')
52
+ .option('--no-enrich-facts', 'Skip fact enrichment after sync')
47
53
  .action(async (options) => {
48
54
  try {
49
55
  await handlePostCommit(options);
@@ -58,33 +64,88 @@ async function handlePostCommit(options) {
58
64
  const cwd = options.cwd;
59
65
  const dryRun = options.dryRun || false;
60
66
  const shouldSync = options.sync !== false; // default true
67
+ const summarizer = options.summarizer || 'llm';
68
+ const shouldEnrichFacts = options.enrichFacts !== false; // default true
61
69
  // 1. Read git context
62
70
  const git = (0, commit_context_1.readGitContext)(cwd);
63
- // 2. Detect AI agent
71
+ // 2. Check if trivial
72
+ const { trivial, reason } = (0, commit_context_1.isTrivialCommit)(git);
73
+ if (trivial) {
74
+ if (dryRun) {
75
+ console.log(`[CommitContext] Skipped: ${reason} (${git.shortSha})`);
76
+ }
77
+ return;
78
+ }
79
+ // 3. Detect AI agent
64
80
  const agentInfo = config_1.config.detectAIAgent();
65
- // 3. Read session context if Claude Code
81
+ // 4. Read session context if Claude Code
66
82
  let session;
67
83
  if (agentInfo.agent === 'claude-code') {
68
84
  session = (0, commit_context_1.readSessionContext)(cwd);
69
85
  }
70
- // 4. Build content via heuristic summarizer
71
- const data = (0, commit_context_1.summarizeCommit)(git, session);
72
- // 5. Check if trivial
86
+ // 5. Read diff content (new in Phase 2)
87
+ const diffContent = (0, commit_context_1.readDiffContent)(cwd);
88
+ // 6. Read transcript excerpt (new in Phase 2)
89
+ let transcriptExcerpt = '';
90
+ if (agentInfo.agent === 'claude-code') {
91
+ const projectDir = (0, commit_context_1.findClaudeProjectDir)(cwd);
92
+ if (projectDir) {
93
+ const sessionFile = (0, commit_context_1.findLatestSession)(projectDir);
94
+ if (sessionFile) {
95
+ transcriptExcerpt = (0, commit_context_1.getTranscriptExcerpt)(sessionFile);
96
+ }
97
+ }
98
+ }
99
+ // 7. Fetch recent session memories (new in Phase 2)
100
+ let sessionMemories = '';
101
+ if (shouldSync && config_1.config.hasApiKey()) {
102
+ try {
103
+ const { getSdk } = await Promise.resolve().then(() => __importStar(require('../lib/api-client')));
104
+ const sdk = getSdk();
105
+ const eventTimeFrom = (0, date_utils_1.getRecentTimestamp)('1h') || undefined;
106
+ const response = await sdk.memories.searchMemoriesGet({
107
+ limit: 5,
108
+ sortBy: 'createdAt',
109
+ order: 'desc',
110
+ eventTimeFrom,
111
+ });
112
+ const memories = response?.data || [];
113
+ if (memories.length > 0) {
114
+ sessionMemories = memories
115
+ .map((m) => (0, privacy_filter_1.sanitize)(m.content || '').slice(0, 500))
116
+ .join('\n---\n');
117
+ }
118
+ }
119
+ catch {
120
+ // Non-critical — continue without session memories
121
+ }
122
+ }
123
+ // 8. Summarize — LLM (default) or heuristic
124
+ let data;
125
+ if (summarizer === 'llm') {
126
+ // LLM summarizer — fails with clear error if no ANTHROPIC_API_KEY
127
+ data = await (0, llm_summarizer_1.summarizeWithLLM)(git, session, diffContent, transcriptExcerpt, sessionMemories);
128
+ }
129
+ else {
130
+ // Heuristic summarizer — no API key needed
131
+ data = (0, commit_context_1.summarizeCommit)(git, session);
132
+ }
73
133
  if (data.skipped) {
74
134
  if (dryRun) {
75
135
  console.log(`[CommitContext] Skipped: ${data.skipReason} (${git.shortSha})`);
76
136
  }
77
137
  return;
78
138
  }
79
- // 6. Dry run — just print
139
+ // 9. Dry run — just print
80
140
  if (dryRun) {
81
141
  console.log('[CommitContext] Dry run output:\n');
82
142
  console.log(data.content);
83
143
  console.log(`\nContext: ${data.contextField}`);
84
144
  console.log(`Topics: ${data.topics.join(', ')}`);
145
+ console.log(`Summarizer: ${summarizer}`);
85
146
  return;
86
147
  }
87
- // 7. Write to local cache
148
+ // 10. Write to local cache
88
149
  const projectRoot = (0, commit_context_1.findProjectRoot)(cwd) || cwd;
89
150
  const cacheEntry = {
90
151
  sha: git.sha,
@@ -96,7 +157,7 @@ async function handlePostCommit(options) {
96
157
  synced: false,
97
158
  };
98
159
  (0, commit_context_1.writeCache)(projectRoot, cacheEntry);
99
- // 8. Sync to API
160
+ // 11. Sync to API
100
161
  if (shouldSync && config_1.config.hasApiKey()) {
101
162
  try {
102
163
  const { getSdk } = await Promise.resolve().then(() => __importStar(require('../lib/api-client')));
@@ -111,6 +172,18 @@ async function handlePostCommit(options) {
111
172
  const memoryId = response?.data?.id || response?.id;
112
173
  if (memoryId) {
113
174
  (0, commit_context_1.markSynced)(projectRoot, git.shortSha, memoryId);
175
+ // 12. Enrich with facts (new in Phase 2)
176
+ if (shouldEnrichFacts) {
177
+ try {
178
+ const result = await (0, fact_enricher_1.enrichCommitFacts)(sdk, memoryId, git);
179
+ if (result.failed > 0) {
180
+ console.log(`[CommitContext] ${git.shortSha} facts: ${result.created} created, ${result.failed} failed`);
181
+ }
182
+ }
183
+ catch {
184
+ // Non-critical — facts are supplementary
185
+ }
186
+ }
114
187
  }
115
188
  console.log(`[CommitContext] ${git.shortSha} captured and synced`);
116
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-help.d.ts","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"AAuYA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAetF"}
1
+ {"version":3,"file":"agent-help.d.ts","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"AA6ZA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAetF"}
@@ -154,9 +154,27 @@ const WORKFLOWS = [
154
154
  {
155
155
  goal: 'Test commit context capture (dry run)',
156
156
  command: 'mx hook post-commit --dry-run',
157
- notes: 'Runs the commit context capture pipeline without saving. Shows what would be captured.',
157
+ notes: 'Runs the commit context capture pipeline without saving. Shows what would be captured. Uses LLM by default (requires ANTHROPIC_API_KEY). Use --summarizer heuristic for no-key mode.',
158
158
  scope: 'hook',
159
159
  },
160
+ {
161
+ goal: 'Filter commit contexts by branch',
162
+ command: 'mx commit-context list --branch feature/rate-limiting',
163
+ notes: 'Filters API results by branch name. Works with --local for offline cache too.',
164
+ scope: 'commit-context',
165
+ },
166
+ {
167
+ goal: 'Filter commit contexts by AI agent',
168
+ command: 'mx commit-context list --agent claude-code',
169
+ notes: 'Filters API results by agent name. Works with --local for offline cache too.',
170
+ scope: 'commit-context',
171
+ },
172
+ {
173
+ goal: 'Sync unsynced commit contexts to API',
174
+ command: 'mx commit-context sync [--dry-run] [--limit 50]',
175
+ notes: 'Uploads locally cached commit contexts that failed to sync. Use --dry-run to preview. Enriches facts by default (--no-enrich-facts to skip).',
176
+ scope: 'commit-context',
177
+ },
160
178
  ];
161
179
  const DISAMBIGUATION = [
162
180
  {
@@ -207,6 +225,7 @@ const ENVIRONMENT = {
207
225
  MX_OUTPUT_FORMAT: 'Force output format (json, table, yaml)',
208
226
  MX_DEFAULT_LIMIT: 'Override default result limit',
209
227
  NO_COLOR: "Set to '1' to disable ANSI color codes",
228
+ ANTHROPIC_API_KEY: 'Required for LLM-powered commit context distillation (--summarizer llm). Get from console.anthropic.com.',
210
229
  };
211
230
  const TIPS = [
212
231
  'Always use --content flag (not interactive mode) for automation.',
@@ -1 +1 @@
1
- {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Fact Enricher — creates programmatic facts for deterministic retrieval
3
+ * after a commit-context memory is synced to the API.
4
+ *
5
+ * Facts created per commit:
6
+ * - commit:<sha> modified <filepath> (max 10 files)
7
+ * - commit:<sha> on-branch <branch>
8
+ * - commit:<sha> authored-by <author>
9
+ * - commit:<sha> message <first 100 chars>
10
+ *
11
+ * All calls are fire-and-forget: errors are logged but don't block.
12
+ */
13
+ import type { GitContext } from './types';
14
+ /** SDK interface — just the facts.createFact method we need */
15
+ interface FactsSdk {
16
+ facts: {
17
+ createFact(data: {
18
+ subject: string;
19
+ predicate: string;
20
+ object: string;
21
+ confidence?: number;
22
+ memoryId?: string;
23
+ }): Promise<any>;
24
+ };
25
+ }
26
+ export interface EnrichResult {
27
+ created: number;
28
+ failed: number;
29
+ }
30
+ /**
31
+ * Create structured facts for a commit-context memory.
32
+ *
33
+ * @param sdk - The MemNexus SDK instance
34
+ * @param memoryId - The memory ID returned from API sync
35
+ * @param git - The git context for this commit
36
+ * @returns Count of created/failed facts
37
+ */
38
+ export declare function enrichCommitFacts(sdk: FactsSdk, memoryId: string, git: GitContext): Promise<EnrichResult>;
39
+ export {};
40
+ //# sourceMappingURL=fact-enricher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-enricher.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/fact-enricher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,+DAA+D;AAC/D,UAAU,QAAQ;IAChB,KAAK,EAAE;QACL,UAAU,CAAC,IAAI,EAAE;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,YAAY,CAAC,CA2CvB"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enrichCommitFacts = enrichCommitFacts;
4
+ const MAX_FILE_FACTS = 10;
5
+ /**
6
+ * Create structured facts for a commit-context memory.
7
+ *
8
+ * @param sdk - The MemNexus SDK instance
9
+ * @param memoryId - The memory ID returned from API sync
10
+ * @param git - The git context for this commit
11
+ * @returns Count of created/failed facts
12
+ */
13
+ async function enrichCommitFacts(sdk, memoryId, git) {
14
+ const subject = `commit:${git.shortSha}`;
15
+ let created = 0;
16
+ let failed = 0;
17
+ const factEntries = [];
18
+ // File facts (max 10)
19
+ for (const file of git.filesChanged.slice(0, MAX_FILE_FACTS)) {
20
+ factEntries.push({ predicate: 'modified', object: file });
21
+ }
22
+ // Branch fact
23
+ factEntries.push({ predicate: 'on-branch', object: git.branch });
24
+ // Author fact
25
+ factEntries.push({ predicate: 'authored-by', object: git.author });
26
+ // Message fact (first 100 chars)
27
+ factEntries.push({ predicate: 'message', object: git.message.slice(0, 100) });
28
+ // Fire all fact creation calls concurrently
29
+ const results = await Promise.allSettled(factEntries.map((entry) => sdk.facts.createFact({
30
+ subject,
31
+ predicate: entry.predicate,
32
+ object: entry.object,
33
+ confidence: 1.0,
34
+ memoryId,
35
+ })));
36
+ for (const result of results) {
37
+ if (result.status === 'fulfilled') {
38
+ created++;
39
+ }
40
+ else {
41
+ failed++;
42
+ }
43
+ }
44
+ return { created, failed };
45
+ }
46
+ //# sourceMappingURL=fact-enricher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-enricher.js","sourceRoot":"","sources":["../../../src/lib/commit-context/fact-enricher.ts"],"names":[],"mappings":";;AA0CA,8CA+CC;AAzDD,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB,CACrC,GAAa,EACb,QAAgB,EAChB,GAAe;IAEf,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,WAAW,GAAiD,EAAE,CAAC;IAErE,sBAAsB;IACtB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;QAC7D,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc;IACd,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjE,cAAc;IACd,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnE,iCAAiC;IACjC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAE9E,4CAA4C;IAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QACnB,OAAO;QACP,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,GAAG;QACf,QAAQ;KACT,CAAC,CACH,CACF,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC"}
@@ -11,4 +11,13 @@ export declare function parseShortStat(stat: string): {
11
11
  * @param cwd - Working directory (defaults to process.cwd())
12
12
  */
13
13
  export declare function readGitContext(cwd?: string): GitContext;
14
+ /**
15
+ * Read the actual diff content for the most recent commit, truncated to maxLines.
16
+ * Privacy filter is applied to strip secrets from diff output.
17
+ *
18
+ * @param cwd - Working directory (defaults to process.cwd())
19
+ * @param maxLines - Maximum lines to return (default 200)
20
+ * @returns The diff text, or empty string on error
21
+ */
22
+ export declare function readDiffContent(cwd?: string, maxLines?: number): string;
14
23
  //# sourceMappingURL=git-reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAM1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOtF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,UAAU,CAwDtE"}
1
+ {"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOtF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,UAAU,CAwDtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAc3F"}
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseShortStat = parseShortStat;
4
4
  exports.readGitContext = readGitContext;
5
+ exports.readDiffContent = readDiffContent;
5
6
  /**
6
7
  * Git Reader — reads git state for the most recent commit via execFileSync.
7
8
  */
8
9
  const child_process_1 = require("child_process");
10
+ const privacy_filter_1 = require("./privacy-filter");
9
11
  function git(args, cwd) {
10
12
  return (0, child_process_1.execFileSync)('git', args, { cwd, encoding: 'utf8', timeout: 5000 }).trim();
11
13
  }
@@ -81,4 +83,26 @@ function readGitContext(cwd = process.cwd()) {
81
83
  isMergeCommit,
82
84
  };
83
85
  }
86
+ /**
87
+ * Read the actual diff content for the most recent commit, truncated to maxLines.
88
+ * Privacy filter is applied to strip secrets from diff output.
89
+ *
90
+ * @param cwd - Working directory (defaults to process.cwd())
91
+ * @param maxLines - Maximum lines to return (default 200)
92
+ * @returns The diff text, or empty string on error
93
+ */
94
+ function readDiffContent(cwd = process.cwd(), maxLines = 200) {
95
+ try {
96
+ const diff = git(['diff', 'HEAD~1', 'HEAD'], cwd);
97
+ if (!diff)
98
+ return '';
99
+ const lines = diff.split('\n');
100
+ const truncated = lines.slice(0, maxLines).join('\n');
101
+ const suffix = lines.length > maxLines ? `\n... (${lines.length - maxLines} lines truncated)` : '';
102
+ return (0, privacy_filter_1.sanitize)(truncated + suffix);
103
+ }
104
+ catch {
105
+ return '';
106
+ }
107
+ }
84
108
  //# sourceMappingURL=git-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":";;AAaA,wCAOC;AAMD,wCAwDC;AAlFD;;GAEG;AACH,iDAA6C;AAG7C,SAAS,GAAG,CAAC,IAAc,EAAE,GAAW;IACtC,OAAO,IAAA,4BAAY,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACzC,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACxD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;IAE1D,yDAAyD;IACzD,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAClE,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YACrF,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC/B,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,6CAA6C;IAC7C,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IAED,OAAO;QACL,GAAG;QACH,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,YAAY;QACZ,UAAU;QACV,SAAS;QACT,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"git-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,12 @@
4
4
  * Barrel exports for all commit-context modules.
5
5
  */
6
6
  export * from './types';
7
- export { readGitContext, parseShortStat } from './git-reader';
8
- export { readSessionContext, findClaudeProjectDir, findLatestSession, parseSessionTail, deriveProjectDirName, } from './session-reader';
7
+ export { readGitContext, parseShortStat, readDiffContent } from './git-reader';
8
+ export { readSessionContext, findClaudeProjectDir, findLatestSession, parseSessionTail, deriveProjectDirName, getTranscriptExcerpt, } from './session-reader';
9
9
  export { summarizeCommit, isTrivialCommit } from './heuristic-summarizer';
10
+ export { summarizeWithLLM } from './llm-summarizer';
11
+ export { sanitize } from './privacy-filter';
12
+ export { enrichCommitFacts } from './fact-enricher';
10
13
  export { writeCache, readCache, listCache, markSynced, markSyncError, getCacheDir, findProjectRoot, } from './local-cache';
11
14
  export { installHook, isHookInstalled } from './hook-installer';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.isHookInstalled = exports.installHook = exports.findProjectRoot = exports.getCacheDir = exports.markSyncError = exports.markSynced = exports.listCache = exports.readCache = exports.writeCache = exports.isTrivialCommit = exports.summarizeCommit = exports.deriveProjectDirName = exports.parseSessionTail = exports.findLatestSession = exports.findClaudeProjectDir = exports.readSessionContext = exports.parseShortStat = exports.readGitContext = void 0;
17
+ exports.isHookInstalled = exports.installHook = exports.findProjectRoot = exports.getCacheDir = exports.markSyncError = exports.markSynced = exports.listCache = exports.readCache = exports.writeCache = exports.enrichCommitFacts = exports.sanitize = exports.summarizeWithLLM = exports.isTrivialCommit = exports.summarizeCommit = exports.getTranscriptExcerpt = exports.deriveProjectDirName = exports.parseSessionTail = exports.findLatestSession = exports.findClaudeProjectDir = exports.readSessionContext = exports.readDiffContent = exports.parseShortStat = exports.readGitContext = void 0;
18
18
  /**
19
19
  * CommitContext — automatic commit context capture.
20
20
  *
@@ -24,15 +24,23 @@ __exportStar(require("./types"), exports);
24
24
  var git_reader_1 = require("./git-reader");
25
25
  Object.defineProperty(exports, "readGitContext", { enumerable: true, get: function () { return git_reader_1.readGitContext; } });
26
26
  Object.defineProperty(exports, "parseShortStat", { enumerable: true, get: function () { return git_reader_1.parseShortStat; } });
27
+ Object.defineProperty(exports, "readDiffContent", { enumerable: true, get: function () { return git_reader_1.readDiffContent; } });
27
28
  var session_reader_1 = require("./session-reader");
28
29
  Object.defineProperty(exports, "readSessionContext", { enumerable: true, get: function () { return session_reader_1.readSessionContext; } });
29
30
  Object.defineProperty(exports, "findClaudeProjectDir", { enumerable: true, get: function () { return session_reader_1.findClaudeProjectDir; } });
30
31
  Object.defineProperty(exports, "findLatestSession", { enumerable: true, get: function () { return session_reader_1.findLatestSession; } });
31
32
  Object.defineProperty(exports, "parseSessionTail", { enumerable: true, get: function () { return session_reader_1.parseSessionTail; } });
32
33
  Object.defineProperty(exports, "deriveProjectDirName", { enumerable: true, get: function () { return session_reader_1.deriveProjectDirName; } });
34
+ Object.defineProperty(exports, "getTranscriptExcerpt", { enumerable: true, get: function () { return session_reader_1.getTranscriptExcerpt; } });
33
35
  var heuristic_summarizer_1 = require("./heuristic-summarizer");
34
36
  Object.defineProperty(exports, "summarizeCommit", { enumerable: true, get: function () { return heuristic_summarizer_1.summarizeCommit; } });
35
37
  Object.defineProperty(exports, "isTrivialCommit", { enumerable: true, get: function () { return heuristic_summarizer_1.isTrivialCommit; } });
38
+ var llm_summarizer_1 = require("./llm-summarizer");
39
+ Object.defineProperty(exports, "summarizeWithLLM", { enumerable: true, get: function () { return llm_summarizer_1.summarizeWithLLM; } });
40
+ var privacy_filter_1 = require("./privacy-filter");
41
+ Object.defineProperty(exports, "sanitize", { enumerable: true, get: function () { return privacy_filter_1.sanitize; } });
42
+ var fact_enricher_1 = require("./fact-enricher");
43
+ Object.defineProperty(exports, "enrichCommitFacts", { enumerable: true, get: function () { return fact_enricher_1.enrichCommitFacts; } });
36
44
  var local_cache_1 = require("./local-cache");
37
45
  Object.defineProperty(exports, "writeCache", { enumerable: true, get: function () { return local_cache_1.writeCache; } });
38
46
  Object.defineProperty(exports, "readCache", { enumerable: true, get: function () { return local_cache_1.readCache; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/commit-context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,0CAAwB;AACxB,2CAA8D;AAArD,4GAAA,cAAc,OAAA;AAAE,4GAAA,cAAc,OAAA;AACvC,mDAM0B;AALxB,oHAAA,kBAAkB,OAAA;AAClB,sHAAA,oBAAoB,OAAA;AACpB,mHAAA,iBAAiB,OAAA;AACjB,kHAAA,gBAAgB,OAAA;AAChB,sHAAA,oBAAoB,OAAA;AAEtB,+DAA0E;AAAjE,uHAAA,eAAe,OAAA;AAAE,uHAAA,eAAe,OAAA;AACzC,6CAQuB;AAPrB,yGAAA,UAAU,OAAA;AACV,wGAAA,SAAS,OAAA;AACT,wGAAA,SAAS,OAAA;AACT,yGAAA,UAAU,OAAA;AACV,4GAAA,aAAa,OAAA;AACb,0GAAA,WAAW,OAAA;AACX,8GAAA,eAAe,OAAA;AAEjB,mDAAgE;AAAvD,6GAAA,WAAW,OAAA;AAAE,iHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/commit-context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,0CAAwB;AACxB,2CAA+E;AAAtE,4GAAA,cAAc,OAAA;AAAE,4GAAA,cAAc,OAAA;AAAE,6GAAA,eAAe,OAAA;AACxD,mDAO0B;AANxB,oHAAA,kBAAkB,OAAA;AAClB,sHAAA,oBAAoB,OAAA;AACpB,mHAAA,iBAAiB,OAAA;AACjB,kHAAA,gBAAgB,OAAA;AAChB,sHAAA,oBAAoB,OAAA;AACpB,sHAAA,oBAAoB,OAAA;AAEtB,+DAA0E;AAAjE,uHAAA,eAAe,OAAA;AAAE,uHAAA,eAAe,OAAA;AACzC,mDAAoD;AAA3C,kHAAA,gBAAgB,OAAA;AACzB,mDAA4C;AAAnC,0GAAA,QAAQ,OAAA;AACjB,iDAAoD;AAA3C,kHAAA,iBAAiB,OAAA;AAC1B,6CAQuB;AAPrB,yGAAA,UAAU,OAAA;AACV,wGAAA,SAAS,OAAA;AACT,wGAAA,SAAS,OAAA;AACT,yGAAA,UAAU,OAAA;AACV,4GAAA,aAAa,OAAA;AACb,0GAAA,WAAW,OAAA;AACX,8GAAA,eAAe,OAAA;AAEjB,mDAAgE;AAAvD,6GAAA,WAAW,OAAA;AAAE,iHAAA,eAAe,OAAA"}
@@ -0,0 +1,9 @@
1
+ import type { GitContext, SessionContext, CommitContextData } from './types';
2
+ /**
3
+ * Summarize a commit using the Anthropic LLM API.
4
+ *
5
+ * @throws Error if ANTHROPIC_API_KEY is not set
6
+ * @throws Error if the API call fails
7
+ */
8
+ export declare function summarizeWithLLM(git: GitContext, session: SessionContext | undefined, diffContent: string, transcriptExcerpt: string, sessionMemories?: string): Promise<CommitContextData>;
9
+ //# sourceMappingURL=llm-summarizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-summarizer.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/llm-summarizer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAuD7E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAwF5B"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.summarizeWithLLM = summarizeWithLLM;
7
+ /**
8
+ * LLM Summarizer — calls Anthropic Haiku to produce rich distilled commit context.
9
+ *
10
+ * Requires ANTHROPIC_API_KEY. Fails with clear error if not set.
11
+ * Use --summarizer heuristic to opt into heuristic-only mode (no key required).
12
+ */
13
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
14
+ const privacy_filter_1 = require("./privacy-filter");
15
+ const MODEL = 'claude-haiku-4-5-20251001';
16
+ const MAX_OUTPUT_TOKENS = 1024;
17
+ const DISTILLATION_PROMPT = `You are a commit context analyzer. Given git metadata, a diff, and optionally an AI agent transcript, produce a structured markdown summary of what was done and why.
18
+
19
+ Output format (use only sections that have content):
20
+
21
+ ## CommitContext: <commit message> (<short sha>)
22
+
23
+ <!-- commit-metadata
24
+ sha: <full sha>
25
+ short_sha: <short sha>
26
+ branch: <branch>
27
+ author: <author>
28
+ timestamp: <timestamp>
29
+ message: <commit message>
30
+ files:
31
+ <file list, one per line with " - " prefix>
32
+ insertions: <number>
33
+ deletions: <number>
34
+ parent_sha: <if available>
35
+ agent: <agent or "none">
36
+ model: <model or "none">
37
+ -->
38
+
39
+ **Branch:** <branch>
40
+ **Files changed** (<count>): +<insertions> -<deletions>
41
+ <file list as bullet points>
42
+
43
+ ### What changed
44
+ <1-3 sentence summary of the actual code changes>
45
+
46
+ ### Key decisions
47
+ <Bullet points of important technical decisions made, if evident from the diff or transcript>
48
+
49
+ ### Debugging path
50
+ <If there was debugging involved, summarize the path from problem to solution>
51
+
52
+ ### Patterns used
53
+ <Notable design patterns, conventions, or approaches used>
54
+
55
+ ### Gotchas
56
+ <Any pitfalls, edge cases, or non-obvious things to watch out for>
57
+
58
+ Rules:
59
+ - Be concise — this is a reference document, not a narrative
60
+ - Only include sections that have actual content
61
+ - Focus on the "why" more than the "what" when possible
62
+ - If no transcript is available, focus on what the diff tells you
63
+ - Include file paths in backticks
64
+ - Strip any secrets or API keys from the output`;
65
+ /**
66
+ * Summarize a commit using the Anthropic LLM API.
67
+ *
68
+ * @throws Error if ANTHROPIC_API_KEY is not set
69
+ * @throws Error if the API call fails
70
+ */
71
+ async function summarizeWithLLM(git, session, diffContent, transcriptExcerpt, sessionMemories) {
72
+ const apiKey = process.env.ANTHROPIC_API_KEY;
73
+ if (!apiKey) {
74
+ throw new Error('ANTHROPIC_API_KEY is not set. LLM summarization requires an Anthropic API key.\n' +
75
+ 'Set it with: export ANTHROPIC_API_KEY=your-key\n' +
76
+ 'Or use --summarizer heuristic to skip LLM summarization.');
77
+ }
78
+ const client = new sdk_1.default({ apiKey });
79
+ // Build the user message with all available context
80
+ const parts = [];
81
+ parts.push('## Git Metadata');
82
+ parts.push(`- SHA: ${git.sha}`);
83
+ parts.push(`- Short SHA: ${git.shortSha}`);
84
+ parts.push(`- Branch: ${git.branch}`);
85
+ parts.push(`- Message: ${git.message}`);
86
+ parts.push(`- Author: ${git.author}`);
87
+ parts.push(`- Timestamp: ${git.timestamp}`);
88
+ parts.push(`- Files (${git.filesChanged.length}): ${git.filesChanged.slice(0, 20).join(', ')}`);
89
+ parts.push(`- Changes: +${git.insertions} -${git.deletions}`);
90
+ if (diffContent) {
91
+ parts.push('\n## Diff Content');
92
+ parts.push(diffContent);
93
+ }
94
+ if (session) {
95
+ parts.push('\n## AI Agent Session');
96
+ parts.push(`- Agent: ${session.agent}`);
97
+ if (session.model)
98
+ parts.push(`- Model: ${session.model}`);
99
+ if (session.totalToolCalls > 0) {
100
+ const tools = session.toolCalls
101
+ .slice(0, 8)
102
+ .map((t) => `${t.name}:${t.count}`)
103
+ .join(', ');
104
+ parts.push(`- Tool calls (${session.totalToolCalls}): ${tools}`);
105
+ }
106
+ if (session.errors.length > 0) {
107
+ parts.push(`- Errors: ${session.errors.join('; ')}`);
108
+ }
109
+ }
110
+ if (transcriptExcerpt) {
111
+ parts.push('\n## Transcript Excerpt');
112
+ parts.push(transcriptExcerpt);
113
+ }
114
+ if (sessionMemories) {
115
+ parts.push('\n## Recent Session Memories');
116
+ parts.push(sessionMemories);
117
+ }
118
+ const userMessage = (0, privacy_filter_1.sanitize)(parts.join('\n'));
119
+ const response = await client.messages.create({
120
+ model: MODEL,
121
+ max_tokens: MAX_OUTPUT_TOKENS,
122
+ system: DISTILLATION_PROMPT,
123
+ messages: [{ role: 'user', content: userMessage }],
124
+ });
125
+ // Extract text from response
126
+ const content = response.content
127
+ .filter((block) => block.type === 'text')
128
+ .map((block) => block.text)
129
+ .join('\n');
130
+ const sanitizedContent = (0, privacy_filter_1.sanitize)(content);
131
+ // Build context field
132
+ const agent = session?.agent || 'unknown';
133
+ const contextField = `commit:${git.shortSha} branch:${git.branch} agent:${agent}`.slice(0, 200);
134
+ // Build topics
135
+ const topics = ['commit-context', `branch:${git.branch}`];
136
+ return {
137
+ git,
138
+ session,
139
+ content: sanitizedContent,
140
+ contextField,
141
+ topics,
142
+ skipped: false,
143
+ };
144
+ }
145
+ //# sourceMappingURL=llm-summarizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-summarizer.js","sourceRoot":"","sources":["../../../src/lib/commit-context/llm-summarizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Privacy Filter — client-side secret stripping applied before content leaves the CLI.
3
+ *
4
+ * Runs on session transcripts, diff content, error messages to redact secrets.
5
+ */
6
+ /**
7
+ * Sanitize text by replacing detected secrets with [REDACTED].
8
+ *
9
+ * @param text - The text to sanitize
10
+ * @returns The sanitized text with secrets replaced
11
+ */
12
+ export declare function sanitize(text: string): string;
13
+ //# sourceMappingURL=privacy-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-filter.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/privacy-filter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6BH;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU7C"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * Privacy Filter — client-side secret stripping applied before content leaves the CLI.
4
+ *
5
+ * Runs on session transcripts, diff content, error messages to redact secrets.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.sanitize = sanitize;
9
+ const REDACTED = '[REDACTED]';
10
+ /**
11
+ * Patterns to redact, ordered by specificity (most specific first).
12
+ * Each pattern is applied globally across the input text.
13
+ */
14
+ const SECRET_PATTERNS = [
15
+ // PEM private keys (multi-line — match the header line)
16
+ /-----BEGIN [A-Z ]+ KEY-----/g,
17
+ // Anthropic / OpenAI API keys
18
+ /sk-[a-zA-Z0-9]{20,}/g,
19
+ // GitHub Personal Access Tokens
20
+ /ghp_[a-zA-Z0-9]{36}/g,
21
+ // GitHub OAuth / user / service tokens
22
+ /gh[ous]_[a-zA-Z0-9]{36}/g,
23
+ // Bearer tokens
24
+ /Bearer\s+[a-zA-Z0-9._-]{20,}/g,
25
+ // Generic key=value secrets (password, secret, token, key followed by = or :)
26
+ // Negative lookahead avoids re-redacting already-redacted values
27
+ /(?:password|secret|token|key)[=:]\s*(?!\[REDACTED\])\S{8,}/gi,
28
+ ];
29
+ /**
30
+ * Sanitize text by replacing detected secrets with [REDACTED].
31
+ *
32
+ * @param text - The text to sanitize
33
+ * @returns The sanitized text with secrets replaced
34
+ */
35
+ function sanitize(text) {
36
+ if (!text)
37
+ return text;
38
+ let result = text;
39
+ for (const pattern of SECRET_PATTERNS) {
40
+ // Reset lastIndex for global regexes
41
+ pattern.lastIndex = 0;
42
+ result = result.replace(pattern, REDACTED);
43
+ }
44
+ return result;
45
+ }
46
+ //# sourceMappingURL=privacy-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-filter.js","sourceRoot":"","sources":["../../../src/lib/commit-context/privacy-filter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmCH,4BAUC;AA3CD,MAAM,QAAQ,GAAG,YAAY,CAAC;AAE9B;;;GAGG;AACH,MAAM,eAAe,GAAa;IAChC,wDAAwD;IACxD,8BAA8B;IAE9B,8BAA8B;IAC9B,sBAAsB;IAEtB,gCAAgC;IAChC,sBAAsB;IAEtB,uCAAuC;IACvC,0BAA0B;IAE1B,gBAAgB;IAChB,+BAA+B;IAE/B,8EAA8E;IAC9E,iEAAiE;IACjE,8DAA8D;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,qCAAqC;QACrC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -24,4 +24,13 @@ export declare function parseSessionTail(filePath: string, maxLines?: number): S
24
24
  * Returns undefined if no session is found.
25
25
  */
26
26
  export declare function readSessionContext(cwd?: string): SessionContext | undefined;
27
+ /**
28
+ * Get a cleaned, privacy-filtered transcript excerpt from a session file.
29
+ * Extracts meaningful content (user prompts, assistant reasoning) and strips tool call noise.
30
+ *
31
+ * @param filePath - Path to the .jsonl session file
32
+ * @param maxChars - Maximum characters to return (default 8000, ~2000 tokens)
33
+ * @returns Cleaned transcript excerpt, or empty string on error
34
+ */
35
+ export declare function getTranscriptExcerpt(filePath: string, maxChars?: number): string;
27
36
  //# sourceMappingURL=session-reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/session-reader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,SAAS,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAapE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBxE;AAaD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,cAAc,CA6EzF;AAqBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,cAAc,GAAG,SAAS,CAQ1F"}
1
+ {"version":3,"file":"session-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/session-reader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,SAAS,CAAC;AAG5D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAapE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBxE;AAaD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,cAAc,CA6EzF;AAqBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,cAAc,GAAG,SAAS,CAQ1F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,GAAG,MAAM,CAkDtF"}
@@ -38,6 +38,7 @@ exports.findClaudeProjectDir = findClaudeProjectDir;
38
38
  exports.findLatestSession = findLatestSession;
39
39
  exports.parseSessionTail = parseSessionTail;
40
40
  exports.readSessionContext = readSessionContext;
41
+ exports.getTranscriptExcerpt = getTranscriptExcerpt;
41
42
  /**
42
43
  * Session Reader — finds and parses Claude Code session transcripts.
43
44
  *
@@ -50,6 +51,7 @@ exports.readSessionContext = readSessionContext;
50
51
  const fs = __importStar(require("fs"));
51
52
  const path = __importStar(require("path"));
52
53
  const os = __importStar(require("os"));
54
+ const privacy_filter_1 = require("./privacy-filter");
53
55
  /**
54
56
  * Derive the Claude Code project directory name from a CWD path.
55
57
  * Slashes become dashes, leading dash removed.
@@ -205,4 +207,71 @@ function readSessionContext(cwd = process.cwd()) {
205
207
  return undefined;
206
208
  return parseSessionTail(sessionFile);
207
209
  }
210
+ /**
211
+ * Get a cleaned, privacy-filtered transcript excerpt from a session file.
212
+ * Extracts meaningful content (user prompts, assistant reasoning) and strips tool call noise.
213
+ *
214
+ * @param filePath - Path to the .jsonl session file
215
+ * @param maxChars - Maximum characters to return (default 8000, ~2000 tokens)
216
+ * @returns Cleaned transcript excerpt, or empty string on error
217
+ */
218
+ function getTranscriptExcerpt(filePath, maxChars = 8000) {
219
+ try {
220
+ const content = fs.readFileSync(filePath, 'utf8');
221
+ const lines = content.split('\n').filter(Boolean);
222
+ const excerptParts = [];
223
+ let charCount = 0;
224
+ // Process from the end (most recent) backwards
225
+ for (let i = lines.length - 1; i >= 0 && charCount < maxChars; i--) {
226
+ let parsed;
227
+ try {
228
+ parsed = JSON.parse(lines[i]);
229
+ }
230
+ catch {
231
+ continue;
232
+ }
233
+ // User messages
234
+ if (parsed.type === 'user' && parsed.message?.role === 'user') {
235
+ const text = extractTextContent(parsed.message.content);
236
+ if (text) {
237
+ const entry = `[User] ${text}`;
238
+ excerptParts.unshift(entry);
239
+ charCount += entry.length;
240
+ }
241
+ }
242
+ // Assistant text blocks (skip tool_use blocks — they're noise)
243
+ if (parsed.message?.role === 'assistant' && Array.isArray(parsed.message.content)) {
244
+ const textParts = [];
245
+ for (const block of parsed.message.content) {
246
+ if (block.type === 'text' && block.text) {
247
+ textParts.push(block.text);
248
+ }
249
+ }
250
+ if (textParts.length > 0) {
251
+ const entry = `[Assistant] ${textParts.join(' ')}`;
252
+ excerptParts.unshift(entry);
253
+ charCount += entry.length;
254
+ }
255
+ }
256
+ }
257
+ const joined = excerptParts.join('\n\n');
258
+ const truncated = joined.length > maxChars ? joined.slice(0, maxChars) + '\n... (truncated)' : joined;
259
+ return (0, privacy_filter_1.sanitize)(truncated);
260
+ }
261
+ catch {
262
+ return '';
263
+ }
264
+ }
265
+ /** Extract text from message content (string or content blocks) */
266
+ function extractTextContent(content) {
267
+ if (!content)
268
+ return '';
269
+ if (typeof content === 'string')
270
+ return content.trim();
271
+ return content
272
+ .filter((b) => b.type === 'text' && b.text)
273
+ .map((b) => b.text)
274
+ .join(' ')
275
+ .trim();
276
+ }
208
277
  //# sourceMappingURL=session-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/session-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/session-reader.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ export interface CommitContextData {
38
38
  topics: string[];
39
39
  skipped: boolean;
40
40
  skipReason?: string;
41
+ diffContent?: string;
41
42
  }
42
43
  /** Fields sent to the MemNexus API for memory creation */
43
44
  export interface CommitContextMemoryFields {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0DAA0D;AAC1D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,0DAA0D;AAC1D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memnexus-ai/cli",
3
- "version": "1.7.62",
3
+ "version": "1.7.63",
4
4
  "description": "Command-line interface for MemNexus Core API",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -33,6 +33,7 @@
33
33
  "node": ">=18.0.0"
34
34
  },
35
35
  "dependencies": {
36
+ "@anthropic-ai/sdk": "^0.74.0",
36
37
  "@memnexus-ai/typescript-sdk": "^1.48.0",
37
38
  "@modelcontextprotocol/sdk": "^1.26.0",
38
39
  "axios": "^1.13.5",