@memnexus-ai/cli 1.7.62 → 1.7.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/commit-context.d.ts +2 -1
- package/dist/commands/commit-context.d.ts.map +1 -1
- package/dist/commands/commit-context.js +148 -2
- package/dist/commands/commit-context.js.map +1 -1
- package/dist/commands/hook.d.ts +3 -0
- package/dist/commands/hook.d.ts.map +1 -1
- package/dist/commands/hook.js +88 -10
- package/dist/commands/hook.js.map +1 -1
- package/dist/lib/agent-help.d.ts.map +1 -1
- package/dist/lib/agent-help.js +20 -1
- package/dist/lib/agent-help.js.map +1 -1
- package/dist/lib/commit-context/fact-enricher.d.ts +40 -0
- package/dist/lib/commit-context/fact-enricher.d.ts.map +1 -0
- package/dist/lib/commit-context/fact-enricher.js +46 -0
- package/dist/lib/commit-context/fact-enricher.js.map +1 -0
- package/dist/lib/commit-context/git-reader.d.ts +9 -0
- package/dist/lib/commit-context/git-reader.d.ts.map +1 -1
- package/dist/lib/commit-context/git-reader.js +24 -0
- package/dist/lib/commit-context/git-reader.js.map +1 -1
- package/dist/lib/commit-context/index.d.ts +5 -2
- package/dist/lib/commit-context/index.d.ts.map +1 -1
- package/dist/lib/commit-context/index.js +9 -1
- package/dist/lib/commit-context/index.js.map +1 -1
- package/dist/lib/commit-context/llm-summarizer.d.ts +9 -0
- package/dist/lib/commit-context/llm-summarizer.d.ts.map +1 -0
- package/dist/lib/commit-context/llm-summarizer.js +145 -0
- package/dist/lib/commit-context/llm-summarizer.js.map +1 -0
- package/dist/lib/commit-context/privacy-filter.d.ts +13 -0
- package/dist/lib/commit-context/privacy-filter.d.ts.map +1 -0
- package/dist/lib/commit-context/privacy-filter.js +46 -0
- package/dist/lib/commit-context/privacy-filter.js.map +1 -0
- package/dist/lib/commit-context/session-reader.d.ts +9 -0
- package/dist/lib/commit-context/session-reader.d.ts.map +1 -1
- package/dist/lib/commit-context/session-reader.js +69 -0
- package/dist/lib/commit-context/session-reader.js.map +1 -1
- package/dist/lib/commit-context/types.d.ts +1 -0
- package/dist/lib/commit-context/types.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Commit Context Commands — list and
|
|
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
|
|
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
|
-
|
|
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
|
|
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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"}
|
package/dist/commands/hook.d.ts
CHANGED
|
@@ -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
|
|
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,CAwB3D"}
|
package/dist/commands/hook.js
CHANGED
|
@@ -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,12 +48,19 @@ 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);
|
|
50
56
|
}
|
|
51
|
-
catch {
|
|
52
|
-
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (options.dryRun) {
|
|
59
|
+
// In dry-run mode, surface errors so the user can see what went wrong
|
|
60
|
+
console.error(`[CommitContext] Error: ${error?.message || error}`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
// In real hook mode, always exit 0 — never block commits
|
|
53
64
|
process.exit(0);
|
|
54
65
|
}
|
|
55
66
|
});
|
|
@@ -58,33 +69,88 @@ async function handlePostCommit(options) {
|
|
|
58
69
|
const cwd = options.cwd;
|
|
59
70
|
const dryRun = options.dryRun || false;
|
|
60
71
|
const shouldSync = options.sync !== false; // default true
|
|
72
|
+
const summarizer = options.summarizer || 'llm';
|
|
73
|
+
const shouldEnrichFacts = options.enrichFacts !== false; // default true
|
|
61
74
|
// 1. Read git context
|
|
62
75
|
const git = (0, commit_context_1.readGitContext)(cwd);
|
|
63
|
-
// 2.
|
|
76
|
+
// 2. Check if trivial
|
|
77
|
+
const { trivial, reason } = (0, commit_context_1.isTrivialCommit)(git);
|
|
78
|
+
if (trivial) {
|
|
79
|
+
if (dryRun) {
|
|
80
|
+
console.log(`[CommitContext] Skipped: ${reason} (${git.shortSha})`);
|
|
81
|
+
}
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// 3. Detect AI agent
|
|
64
85
|
const agentInfo = config_1.config.detectAIAgent();
|
|
65
|
-
//
|
|
86
|
+
// 4. Read session context if Claude Code
|
|
66
87
|
let session;
|
|
67
88
|
if (agentInfo.agent === 'claude-code') {
|
|
68
89
|
session = (0, commit_context_1.readSessionContext)(cwd);
|
|
69
90
|
}
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
//
|
|
91
|
+
// 5. Read diff content (new in Phase 2)
|
|
92
|
+
const diffContent = (0, commit_context_1.readDiffContent)(cwd);
|
|
93
|
+
// 6. Read transcript excerpt (new in Phase 2)
|
|
94
|
+
let transcriptExcerpt = '';
|
|
95
|
+
if (agentInfo.agent === 'claude-code') {
|
|
96
|
+
const projectDir = (0, commit_context_1.findClaudeProjectDir)(cwd);
|
|
97
|
+
if (projectDir) {
|
|
98
|
+
const sessionFile = (0, commit_context_1.findLatestSession)(projectDir);
|
|
99
|
+
if (sessionFile) {
|
|
100
|
+
transcriptExcerpt = (0, commit_context_1.getTranscriptExcerpt)(sessionFile);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// 7. Fetch recent session memories (new in Phase 2)
|
|
105
|
+
let sessionMemories = '';
|
|
106
|
+
if (shouldSync && config_1.config.hasApiKey()) {
|
|
107
|
+
try {
|
|
108
|
+
const { getSdk } = await Promise.resolve().then(() => __importStar(require('../lib/api-client')));
|
|
109
|
+
const sdk = getSdk();
|
|
110
|
+
const eventTimeFrom = (0, date_utils_1.getRecentTimestamp)('1h') || undefined;
|
|
111
|
+
const response = await sdk.memories.searchMemoriesGet({
|
|
112
|
+
limit: 5,
|
|
113
|
+
sortBy: 'createdAt',
|
|
114
|
+
order: 'desc',
|
|
115
|
+
eventTimeFrom,
|
|
116
|
+
});
|
|
117
|
+
const memories = response?.data || [];
|
|
118
|
+
if (memories.length > 0) {
|
|
119
|
+
sessionMemories = memories
|
|
120
|
+
.map((m) => (0, privacy_filter_1.sanitize)(m.content || '').slice(0, 500))
|
|
121
|
+
.join('\n---\n');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Non-critical — continue without session memories
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// 8. Summarize — LLM (default) or heuristic
|
|
129
|
+
let data;
|
|
130
|
+
if (summarizer === 'llm') {
|
|
131
|
+
// LLM summarizer — fails with clear error if no ANTHROPIC_API_KEY
|
|
132
|
+
data = await (0, llm_summarizer_1.summarizeWithLLM)(git, session, diffContent, transcriptExcerpt, sessionMemories);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Heuristic summarizer — no API key needed
|
|
136
|
+
data = (0, commit_context_1.summarizeCommit)(git, session);
|
|
137
|
+
}
|
|
73
138
|
if (data.skipped) {
|
|
74
139
|
if (dryRun) {
|
|
75
140
|
console.log(`[CommitContext] Skipped: ${data.skipReason} (${git.shortSha})`);
|
|
76
141
|
}
|
|
77
142
|
return;
|
|
78
143
|
}
|
|
79
|
-
//
|
|
144
|
+
// 9. Dry run — just print
|
|
80
145
|
if (dryRun) {
|
|
81
146
|
console.log('[CommitContext] Dry run output:\n');
|
|
82
147
|
console.log(data.content);
|
|
83
148
|
console.log(`\nContext: ${data.contextField}`);
|
|
84
149
|
console.log(`Topics: ${data.topics.join(', ')}`);
|
|
150
|
+
console.log(`Summarizer: ${summarizer}`);
|
|
85
151
|
return;
|
|
86
152
|
}
|
|
87
|
-
//
|
|
153
|
+
// 10. Write to local cache
|
|
88
154
|
const projectRoot = (0, commit_context_1.findProjectRoot)(cwd) || cwd;
|
|
89
155
|
const cacheEntry = {
|
|
90
156
|
sha: git.sha,
|
|
@@ -96,7 +162,7 @@ async function handlePostCommit(options) {
|
|
|
96
162
|
synced: false,
|
|
97
163
|
};
|
|
98
164
|
(0, commit_context_1.writeCache)(projectRoot, cacheEntry);
|
|
99
|
-
//
|
|
165
|
+
// 11. Sync to API
|
|
100
166
|
if (shouldSync && config_1.config.hasApiKey()) {
|
|
101
167
|
try {
|
|
102
168
|
const { getSdk } = await Promise.resolve().then(() => __importStar(require('../lib/api-client')));
|
|
@@ -111,6 +177,18 @@ async function handlePostCommit(options) {
|
|
|
111
177
|
const memoryId = response?.data?.id || response?.id;
|
|
112
178
|
if (memoryId) {
|
|
113
179
|
(0, commit_context_1.markSynced)(projectRoot, git.shortSha, memoryId);
|
|
180
|
+
// 12. Enrich with facts (new in Phase 2)
|
|
181
|
+
if (shouldEnrichFacts) {
|
|
182
|
+
try {
|
|
183
|
+
const result = await (0, fact_enricher_1.enrichCommitFacts)(sdk, memoryId, git);
|
|
184
|
+
if (result.failed > 0) {
|
|
185
|
+
console.log(`[CommitContext] ${git.shortSha} facts: ${result.created} created, ${result.failed} failed`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
// Non-critical — facts are supplementary
|
|
190
|
+
}
|
|
191
|
+
}
|
|
114
192
|
}
|
|
115
193
|
console.log(`[CommitContext] ${git.shortSha} captured and synced`);
|
|
116
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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":"
|
|
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"}
|
package/dist/lib/agent-help.js
CHANGED
|
@@ -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":";;;;;
|
|
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;
|
|
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":";;
|
|
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;
|
|
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,
|
|
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;
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"session-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/session-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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.
|
|
3
|
+
"version": "1.7.64",
|
|
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",
|