@pcircle/memesh 3.0.1 → 3.1.0
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/README.de.md +234 -0
- package/README.es.md +234 -0
- package/README.fr.md +234 -0
- package/README.ja.md +234 -0
- package/README.ko.md +234 -0
- package/README.md +141 -94
- package/README.pt.md +234 -0
- package/README.th.md +234 -0
- package/README.vi.md +234 -0
- package/README.zh-CN.md +234 -0
- package/README.zh-TW.md +234 -0
- package/dashboard/dist/index.html +16 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +5 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/failure-analyzer.d.ts +13 -0
- package/dist/core/failure-analyzer.d.ts.map +1 -0
- package/dist/core/failure-analyzer.js +98 -0
- package/dist/core/failure-analyzer.js.map +1 -0
- package/dist/core/lesson-engine.d.ts +21 -0
- package/dist/core/lesson-engine.d.ts.map +1 -0
- package/dist/core/lesson-engine.js +76 -0
- package/dist/core/lesson-engine.js.map +1 -0
- package/dist/core/operations.d.ts +2 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +15 -0
- package/dist/core/operations.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +18 -0
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/types.d.ts +12 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +35 -3
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +52 -1
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +31 -0
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +34 -1
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/hooks/session-start.js +38 -1
- package/scripts/hooks/session-summary.js +34 -2
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
import { createRequire } from 'module';
|
|
8
8
|
import { homedir } from 'os';
|
|
9
|
-
import { join, basename } from 'path';
|
|
9
|
+
import { join, basename, dirname } from 'path';
|
|
10
10
|
import { existsSync, mkdirSync, readFileSync } from 'fs';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
11
12
|
|
|
12
13
|
const require = createRequire(import.meta.url);
|
|
13
14
|
|
|
@@ -118,7 +119,7 @@ function parseTranscript(transcriptPath) {
|
|
|
118
119
|
let input = '';
|
|
119
120
|
process.stdin.setEncoding('utf8');
|
|
120
121
|
process.stdin.on('data', (chunk) => { input += chunk; });
|
|
121
|
-
process.stdin.on('end', () => {
|
|
122
|
+
process.stdin.on('end', async () => {
|
|
122
123
|
try {
|
|
123
124
|
if (!input.trim()) return exit0();
|
|
124
125
|
|
|
@@ -240,6 +241,37 @@ process.stdin.on('end', () => {
|
|
|
240
241
|
} finally {
|
|
241
242
|
db.close();
|
|
242
243
|
}
|
|
244
|
+
|
|
245
|
+
// ── LLM-powered failure analysis (Level 1 only) ──────────────────────
|
|
246
|
+
// Runs AFTER the hook's own DB is closed.
|
|
247
|
+
// Uses the core module's DB singleton (openDatabase/closeDatabase).
|
|
248
|
+
// Wrapped in its own try/catch — never blocks rule-based extraction.
|
|
249
|
+
if (errorsEncountered.length > 0 && filesEdited.length > 0) {
|
|
250
|
+
try {
|
|
251
|
+
const pluginRoot = process.env.CLAUDE_PLUGIN_ROOT
|
|
252
|
+
|| dirname(dirname(fileURLToPath(import.meta.url)));
|
|
253
|
+
const configMod = await import(join(pluginRoot, 'dist/core/config.js'));
|
|
254
|
+
const config = configMod.readConfig();
|
|
255
|
+
|
|
256
|
+
if (config.llm) {
|
|
257
|
+
const { openDatabase, closeDatabase } = await import(join(pluginRoot, 'dist/db.js'));
|
|
258
|
+
const { analyzeFailure } = await import(join(pluginRoot, 'dist/core/failure-analyzer.js'));
|
|
259
|
+
const { createLesson } = await import(join(pluginRoot, 'dist/core/lesson-engine.js'));
|
|
260
|
+
|
|
261
|
+
openDatabase();
|
|
262
|
+
try {
|
|
263
|
+
const lesson = await analyzeFailure(errorsEncountered, filesEdited, config.llm);
|
|
264
|
+
if (lesson) {
|
|
265
|
+
createLesson(lesson, projectName);
|
|
266
|
+
}
|
|
267
|
+
} finally {
|
|
268
|
+
closeDatabase();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
} catch {
|
|
272
|
+
// LLM analysis failed — rule-based extraction already captured the session
|
|
273
|
+
}
|
|
274
|
+
}
|
|
243
275
|
} catch (err) {
|
|
244
276
|
// Never crash Claude Code — leave a trace for debugging
|
|
245
277
|
try { process.stderr.write(`[memesh session-summary] ${err?.message || err}\n`); } catch {}
|