@pcircle/memesh 3.0.1 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/consolidator.d.ts +3 -0
- package/dist/core/consolidator.d.ts.map +1 -0
- package/dist/core/consolidator.js +147 -0
- package/dist/core/consolidator.js.map +1 -0
- 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 +4 -4
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +13 -212
- package/dist/core/operations.js.map +1 -1
- package/dist/core/query-expander.d.ts.map +1 -1
- package/dist/core/query-expander.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/serializer.d.ts +4 -0
- package/dist/core/serializer.d.ts.map +1 -0
- package/dist/core/serializer.js +75 -0
- package/dist/core/serializer.js.map +1 -0
- package/dist/core/types.d.ts +75 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js.map +1 -1
- package/dist/knowledge-graph.d.ts +1 -0
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +83 -17
- package/dist/knowledge-graph.js.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 +51 -52
- 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 +28 -51
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +94 -0
- package/dist/transports/schemas.d.ts.map +1 -0
- package/dist/transports/schemas.js +60 -0
- package/dist/transports/schemas.js.map +1 -0
- 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
|
@@ -171,6 +171,37 @@ export declare const TOOL_DEFINITIONS: readonly [{
|
|
|
171
171
|
readonly required: readonly ["data", "merge_strategy"];
|
|
172
172
|
readonly additionalProperties: false;
|
|
173
173
|
};
|
|
174
|
+
}, {
|
|
175
|
+
readonly name: "learn";
|
|
176
|
+
readonly description: "Record a structured lesson from a mistake or discovery. Creates a lesson_learned entity with error, root cause, fix, and prevention.";
|
|
177
|
+
readonly inputSchema: {
|
|
178
|
+
readonly type: "object";
|
|
179
|
+
readonly properties: {
|
|
180
|
+
readonly error: {
|
|
181
|
+
readonly type: "string";
|
|
182
|
+
readonly description: "What went wrong";
|
|
183
|
+
};
|
|
184
|
+
readonly fix: {
|
|
185
|
+
readonly type: "string";
|
|
186
|
+
readonly description: "What fixed it";
|
|
187
|
+
};
|
|
188
|
+
readonly root_cause: {
|
|
189
|
+
readonly type: "string";
|
|
190
|
+
readonly description: "Why it happened (optional)";
|
|
191
|
+
};
|
|
192
|
+
readonly prevention: {
|
|
193
|
+
readonly type: "string";
|
|
194
|
+
readonly description: "How to prevent it next time (optional)";
|
|
195
|
+
};
|
|
196
|
+
readonly severity: {
|
|
197
|
+
readonly type: "string";
|
|
198
|
+
readonly enum: readonly ["critical", "major", "minor"];
|
|
199
|
+
readonly description: "Severity level (default: minor)";
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
readonly required: readonly ["error", "fix"];
|
|
203
|
+
readonly additionalProperties: false;
|
|
204
|
+
};
|
|
174
205
|
}];
|
|
175
206
|
type ToolResult = {
|
|
176
207
|
content: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/handlers.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkLnB,CAAC;AAMX,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA0BF,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAgD7E"}
|
|
@@ -1,57 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { remember, recallEnhanced, forget, consolidate, exportMemories, importMemories } from '../../core/operations.js';
|
|
2
|
+
import { remember, recallEnhanced, forget, consolidate, exportMemories, importMemories, learn } from '../../core/operations.js';
|
|
3
3
|
import { KnowledgeGraph } from '../../knowledge-graph.js';
|
|
4
4
|
import { getDatabase } from '../../db.js';
|
|
5
|
-
|
|
6
|
-
name: z.string().min(1),
|
|
7
|
-
type: z.string().min(1),
|
|
8
|
-
observations: z.array(z.string()).optional(),
|
|
9
|
-
tags: z.array(z.string()).optional(),
|
|
10
|
-
relations: z
|
|
11
|
-
.array(z.object({ to: z.string().min(1), type: z.string().min(1) }))
|
|
12
|
-
.optional(),
|
|
13
|
-
namespace: z.enum(['personal', 'team', 'global']).optional(),
|
|
14
|
-
});
|
|
15
|
-
const RecallSchema = z.object({
|
|
16
|
-
query: z.string().optional(),
|
|
17
|
-
tag: z.string().optional(),
|
|
18
|
-
limit: z.number().int().min(1).max(100).optional(),
|
|
19
|
-
include_archived: z.boolean().optional(),
|
|
20
|
-
namespace: z.enum(['personal', 'team', 'global']).optional(),
|
|
21
|
-
cross_project: z.boolean().optional(),
|
|
22
|
-
});
|
|
23
|
-
const ForgetSchema = z.object({
|
|
24
|
-
name: z.string().min(1),
|
|
25
|
-
observation: z.string().optional(),
|
|
26
|
-
});
|
|
27
|
-
const ConsolidateSchema = z.object({
|
|
28
|
-
name: z.string().optional(),
|
|
29
|
-
tag: z.string().optional(),
|
|
30
|
-
min_observations: z.number().int().min(1).optional(),
|
|
31
|
-
});
|
|
32
|
-
const ExportSchema = z.object({
|
|
33
|
-
tag: z.string().optional(),
|
|
34
|
-
namespace: z.string().optional(),
|
|
35
|
-
limit: z.number().int().min(1).max(10000).optional(),
|
|
36
|
-
});
|
|
37
|
-
const ExportResultSchema = z.object({
|
|
38
|
-
version: z.string(),
|
|
39
|
-
exported_at: z.string(),
|
|
40
|
-
entity_count: z.number(),
|
|
41
|
-
entities: z.array(z.object({
|
|
42
|
-
name: z.string().min(1).max(255),
|
|
43
|
-
type: z.string().min(1).max(100),
|
|
44
|
-
namespace: z.string(),
|
|
45
|
-
observations: z.array(z.string().max(10000)),
|
|
46
|
-
tags: z.array(z.string().max(255)),
|
|
47
|
-
relations: z.array(z.object({ to: z.string().min(1).max(255), type: z.string().min(1).max(100) })),
|
|
48
|
-
})),
|
|
49
|
-
});
|
|
50
|
-
const ImportSchema = z.object({
|
|
51
|
-
data: ExportResultSchema,
|
|
52
|
-
namespace: z.string().optional(),
|
|
53
|
-
merge_strategy: z.enum(['skip', 'overwrite', 'append']),
|
|
54
|
-
});
|
|
5
|
+
import { RememberSchema, RecallSchema, ForgetSchema, ConsolidateSchema, ExportSchema, ImportSchema, LearnSchema, } from '../schemas.js';
|
|
55
6
|
export const TOOL_DEFINITIONS = [
|
|
56
7
|
{
|
|
57
8
|
name: 'remember',
|
|
@@ -201,6 +152,26 @@ export const TOOL_DEFINITIONS = [
|
|
|
201
152
|
additionalProperties: false,
|
|
202
153
|
},
|
|
203
154
|
},
|
|
155
|
+
{
|
|
156
|
+
name: 'learn',
|
|
157
|
+
description: 'Record a structured lesson from a mistake or discovery. Creates a lesson_learned entity with error, root cause, fix, and prevention.',
|
|
158
|
+
inputSchema: {
|
|
159
|
+
type: 'object',
|
|
160
|
+
properties: {
|
|
161
|
+
error: { type: 'string', description: 'What went wrong' },
|
|
162
|
+
fix: { type: 'string', description: 'What fixed it' },
|
|
163
|
+
root_cause: { type: 'string', description: 'Why it happened (optional)' },
|
|
164
|
+
prevention: { type: 'string', description: 'How to prevent it next time (optional)' },
|
|
165
|
+
severity: {
|
|
166
|
+
type: 'string',
|
|
167
|
+
enum: ['critical', 'major', 'minor'],
|
|
168
|
+
description: 'Severity level (default: minor)',
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
required: ['error', 'fix'],
|
|
172
|
+
additionalProperties: false,
|
|
173
|
+
},
|
|
174
|
+
},
|
|
204
175
|
];
|
|
205
176
|
function ok(data) {
|
|
206
177
|
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
@@ -262,6 +233,12 @@ export async function handleTool(name, args) {
|
|
|
262
233
|
return r.result;
|
|
263
234
|
return ok(importMemories(r.data));
|
|
264
235
|
}
|
|
236
|
+
if (name === 'learn') {
|
|
237
|
+
const r = parseOrFail(LearnSchema, args);
|
|
238
|
+
if (!r.ok)
|
|
239
|
+
return r.result;
|
|
240
|
+
return ok(learn(r.data));
|
|
241
|
+
}
|
|
265
242
|
return fail(`Unknown tool: ${name}`);
|
|
266
243
|
}
|
|
267
244
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/transports/mcp/handlers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/transports/mcp/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const RememberSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
type: z.ZodString;
|
|
5
|
+
observations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
7
|
+
relations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
8
|
+
to: z.ZodString;
|
|
9
|
+
type: z.ZodString;
|
|
10
|
+
}, z.core.$strip>>>;
|
|
11
|
+
namespace: z.ZodOptional<z.ZodEnum<{
|
|
12
|
+
personal: "personal";
|
|
13
|
+
team: "team";
|
|
14
|
+
global: "global";
|
|
15
|
+
}>>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export declare const RecallSchema: z.ZodObject<{
|
|
18
|
+
query: z.ZodOptional<z.ZodString>;
|
|
19
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
20
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
include_archived: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
namespace: z.ZodOptional<z.ZodEnum<{
|
|
23
|
+
personal: "personal";
|
|
24
|
+
team: "team";
|
|
25
|
+
global: "global";
|
|
26
|
+
}>>;
|
|
27
|
+
cross_project: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
export declare const ForgetSchema: z.ZodObject<{
|
|
30
|
+
name: z.ZodString;
|
|
31
|
+
observation: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export declare const ConsolidateSchema: z.ZodObject<{
|
|
34
|
+
name: z.ZodOptional<z.ZodString>;
|
|
35
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
36
|
+
min_observations: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export declare const ExportSchema: z.ZodObject<{
|
|
39
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
40
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
41
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
}, z.core.$strip>;
|
|
43
|
+
export declare const ExportResultSchema: z.ZodObject<{
|
|
44
|
+
version: z.ZodString;
|
|
45
|
+
exported_at: z.ZodString;
|
|
46
|
+
entity_count: z.ZodNumber;
|
|
47
|
+
entities: z.ZodArray<z.ZodObject<{
|
|
48
|
+
name: z.ZodString;
|
|
49
|
+
type: z.ZodString;
|
|
50
|
+
namespace: z.ZodString;
|
|
51
|
+
observations: z.ZodArray<z.ZodString>;
|
|
52
|
+
tags: z.ZodArray<z.ZodString>;
|
|
53
|
+
relations: z.ZodArray<z.ZodObject<{
|
|
54
|
+
to: z.ZodString;
|
|
55
|
+
type: z.ZodString;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
}, z.core.$strip>>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export declare const ImportSchema: z.ZodObject<{
|
|
60
|
+
data: z.ZodObject<{
|
|
61
|
+
version: z.ZodString;
|
|
62
|
+
exported_at: z.ZodString;
|
|
63
|
+
entity_count: z.ZodNumber;
|
|
64
|
+
entities: z.ZodArray<z.ZodObject<{
|
|
65
|
+
name: z.ZodString;
|
|
66
|
+
type: z.ZodString;
|
|
67
|
+
namespace: z.ZodString;
|
|
68
|
+
observations: z.ZodArray<z.ZodString>;
|
|
69
|
+
tags: z.ZodArray<z.ZodString>;
|
|
70
|
+
relations: z.ZodArray<z.ZodObject<{
|
|
71
|
+
to: z.ZodString;
|
|
72
|
+
type: z.ZodString;
|
|
73
|
+
}, z.core.$strip>>;
|
|
74
|
+
}, z.core.$strip>>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
77
|
+
merge_strategy: z.ZodEnum<{
|
|
78
|
+
skip: "skip";
|
|
79
|
+
overwrite: "overwrite";
|
|
80
|
+
append: "append";
|
|
81
|
+
}>;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
export declare const LearnSchema: z.ZodObject<{
|
|
84
|
+
error: z.ZodString;
|
|
85
|
+
fix: z.ZodString;
|
|
86
|
+
root_cause: z.ZodOptional<z.ZodString>;
|
|
87
|
+
prevention: z.ZodOptional<z.ZodString>;
|
|
88
|
+
severity: z.ZodOptional<z.ZodEnum<{
|
|
89
|
+
critical: "critical";
|
|
90
|
+
major: "major";
|
|
91
|
+
minor: "minor";
|
|
92
|
+
}>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/transports/schemas.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;iBAUzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;iBAOvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAGvB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;iBAIvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;iBAY7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;iBAIvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;iBAMtB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const RememberSchema = z.object({
|
|
3
|
+
name: z.string().min(1).max(255),
|
|
4
|
+
type: z.string().min(1).max(100),
|
|
5
|
+
observations: z.array(z.string().max(10000)).max(100).optional(),
|
|
6
|
+
tags: z.array(z.string().max(255)).max(50).optional(),
|
|
7
|
+
relations: z
|
|
8
|
+
.array(z.object({ to: z.string().min(1).max(255), type: z.string().min(1).max(100) }))
|
|
9
|
+
.max(50)
|
|
10
|
+
.optional(),
|
|
11
|
+
namespace: z.enum(['personal', 'team', 'global']).optional(),
|
|
12
|
+
});
|
|
13
|
+
export const RecallSchema = z.object({
|
|
14
|
+
query: z.string().max(1000).optional(),
|
|
15
|
+
tag: z.string().max(255).optional(),
|
|
16
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
17
|
+
include_archived: z.boolean().optional(),
|
|
18
|
+
namespace: z.enum(['personal', 'team', 'global']).optional(),
|
|
19
|
+
cross_project: z.boolean().optional(),
|
|
20
|
+
});
|
|
21
|
+
export const ForgetSchema = z.object({
|
|
22
|
+
name: z.string().min(1).max(255),
|
|
23
|
+
observation: z.string().max(10000).optional(),
|
|
24
|
+
});
|
|
25
|
+
export const ConsolidateSchema = z.object({
|
|
26
|
+
name: z.string().max(255).optional(),
|
|
27
|
+
tag: z.string().max(255).optional(),
|
|
28
|
+
min_observations: z.number().int().min(1).optional(),
|
|
29
|
+
});
|
|
30
|
+
export const ExportSchema = z.object({
|
|
31
|
+
tag: z.string().max(255).optional(),
|
|
32
|
+
namespace: z.string().max(50).optional(),
|
|
33
|
+
limit: z.number().int().min(1).max(10000).optional(),
|
|
34
|
+
});
|
|
35
|
+
export const ExportResultSchema = z.object({
|
|
36
|
+
version: z.string(),
|
|
37
|
+
exported_at: z.string(),
|
|
38
|
+
entity_count: z.number(),
|
|
39
|
+
entities: z.array(z.object({
|
|
40
|
+
name: z.string().min(1).max(255),
|
|
41
|
+
type: z.string().min(1).max(100),
|
|
42
|
+
namespace: z.string(),
|
|
43
|
+
observations: z.array(z.string().max(10000)),
|
|
44
|
+
tags: z.array(z.string().max(255)),
|
|
45
|
+
relations: z.array(z.object({ to: z.string().min(1).max(255), type: z.string().min(1).max(100) })),
|
|
46
|
+
})),
|
|
47
|
+
});
|
|
48
|
+
export const ImportSchema = z.object({
|
|
49
|
+
data: ExportResultSchema,
|
|
50
|
+
namespace: z.string().max(50).optional(),
|
|
51
|
+
merge_strategy: z.enum(['skip', 'overwrite', 'append']),
|
|
52
|
+
});
|
|
53
|
+
export const LearnSchema = z.object({
|
|
54
|
+
error: z.string().min(1).max(5000),
|
|
55
|
+
fix: z.string().min(1).max(5000),
|
|
56
|
+
root_cause: z.string().max(5000).optional(),
|
|
57
|
+
prevention: z.string().max(5000).optional(),
|
|
58
|
+
severity: z.enum(['critical', 'major', 'minor']).optional(),
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/transports/schemas.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/plugin.json
CHANGED
|
@@ -127,7 +127,44 @@ process.stdin.on('end', () => {
|
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
let memorySummary = lines.join('\n');
|
|
131
|
+
|
|
132
|
+
// --- Proactive lesson warnings ---
|
|
133
|
+
try {
|
|
134
|
+
const lessonEntities = db.prepare(`
|
|
135
|
+
SELECT DISTINCT e.id, e.name, e.confidence
|
|
136
|
+
FROM entities e
|
|
137
|
+
JOIN tags t ON t.entity_id = e.id
|
|
138
|
+
WHERE e.type = 'lesson_learned'
|
|
139
|
+
AND e.status = 'active'
|
|
140
|
+
AND t.tag = ?
|
|
141
|
+
ORDER BY CASE WHEN e.confidence IS NULL THEN 0.5 ELSE e.confidence END DESC,
|
|
142
|
+
CASE WHEN e.access_count IS NULL THEN 0 ELSE e.access_count END DESC
|
|
143
|
+
LIMIT 5
|
|
144
|
+
`).all(projectTag);
|
|
145
|
+
|
|
146
|
+
if (lessonEntities.length > 0) {
|
|
147
|
+
memorySummary += '\n\n⚠️ Known lessons for this project:\n';
|
|
148
|
+
for (const lesson of lessonEntities) {
|
|
149
|
+
// Load ALL observations per lesson (not fragile LIKE pattern)
|
|
150
|
+
const allObs = db.prepare(
|
|
151
|
+
'SELECT content FROM observations WHERE entity_id = ? ORDER BY id'
|
|
152
|
+
).all(lesson.id);
|
|
153
|
+
|
|
154
|
+
// Find the Prevention line
|
|
155
|
+
const prevention = allObs.find(o => o.content.startsWith('Prevention:'));
|
|
156
|
+
const display = prevention
|
|
157
|
+
? prevention.content.replace(/^Prevention:\s*/, '')
|
|
158
|
+
: (allObs[allObs.length - 1]?.content || lesson.name);
|
|
159
|
+
|
|
160
|
+
const conf = typeof lesson.confidence === 'number' ? lesson.confidence.toFixed(1) : '1.0';
|
|
161
|
+
memorySummary += `• ${display} (confidence: ${conf})\n`;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
} catch {
|
|
165
|
+
// Lesson query failed — don't break session start
|
|
166
|
+
}
|
|
167
|
+
|
|
131
168
|
const hookOutput = {
|
|
132
169
|
suppressOutput: true,
|
|
133
170
|
hookSpecificOutput: {
|
|
@@ -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 {}
|