@pcircle/memesh 4.9.4 → 4.10.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/AGENTS.md +35 -4
- package/README.de.md +3 -3
- package/README.md +3 -3
- package/README.zh-TW.md +3 -3
- package/dashboard/dist/index.html +8 -8
- package/dist/cli/view-live.d.ts.map +1 -1
- package/dist/cli/view-live.js +0 -427
- package/dist/cli/view-live.js.map +1 -1
- package/dist/core/briefing-index.d.ts +30 -0
- package/dist/core/briefing-index.d.ts.map +1 -0
- package/dist/core/briefing-index.js +140 -0
- package/dist/core/briefing-index.js.map +1 -0
- package/dist/core/briefing.d.ts +4 -0
- package/dist/core/briefing.d.ts.map +1 -1
- package/dist/core/briefing.js +42 -4
- package/dist/core/briefing.js.map +1 -1
- package/dist/core/capture-liveness.d.ts +136 -0
- package/dist/core/capture-liveness.d.ts.map +1 -0
- package/dist/core/capture-liveness.js +447 -0
- package/dist/core/capture-liveness.js.map +1 -0
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +3 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/delegation.d.ts +47 -0
- package/dist/core/delegation.d.ts.map +1 -0
- package/dist/core/delegation.js +174 -0
- package/dist/core/delegation.js.map +1 -0
- package/dist/core/doctor-fixes.d.ts +1 -0
- package/dist/core/doctor-fixes.d.ts.map +1 -1
- package/dist/core/doctor-fixes.js +21 -0
- package/dist/core/doctor-fixes.js.map +1 -1
- package/dist/core/doctor.d.ts +8 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +148 -3
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/note-derive.d.ts +14 -0
- package/dist/core/note-derive.d.ts.map +1 -0
- package/dist/core/note-derive.js +66 -0
- package/dist/core/note-derive.js.map +1 -0
- package/dist/core/note-ingest.d.ts +34 -0
- package/dist/core/note-ingest.d.ts.map +1 -0
- package/dist/core/note-ingest.js +445 -0
- package/dist/core/note-ingest.js.map +1 -0
- package/dist/core/operations.d.ts +10 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +129 -14
- package/dist/core/operations.js.map +1 -1
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +10 -4
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/serializer.d.ts.map +1 -1
- package/dist/core/serializer.js +3 -0
- package/dist/core/serializer.js.map +1 -1
- package/dist/core/session-insight.d.ts +44 -0
- package/dist/core/session-insight.d.ts.map +1 -0
- package/dist/core/session-insight.js +216 -0
- package/dist/core/session-insight.js.map +1 -0
- package/dist/core/task-state-store.d.ts +4 -0
- package/dist/core/task-state-store.d.ts.map +1 -1
- package/dist/core/task-state-store.js +18 -5
- package/dist/core/task-state-store.js.map +1 -1
- package/dist/core/turn-signal.d.ts +22 -0
- package/dist/core/turn-signal.d.ts.map +1 -0
- package/dist/core/turn-signal.js +89 -0
- package/dist/core/turn-signal.js.map +1 -0
- package/dist/core/types.d.ts +12 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/update-entrypoint.d.ts +19 -0
- package/dist/core/update-entrypoint.d.ts.map +1 -0
- package/dist/core/update-entrypoint.js +222 -0
- package/dist/core/update-entrypoint.js.map +1 -0
- package/dist/core/update-notice.d.ts +69 -0
- package/dist/core/update-notice.d.ts.map +1 -0
- package/dist/core/update-notice.js +188 -0
- package/dist/core/update-notice.js.map +1 -0
- package/dist/host-runtime/codex-session.d.ts +10 -0
- package/dist/host-runtime/codex-session.d.ts.map +1 -1
- package/dist/host-runtime/codex-session.js +1 -1
- package/dist/host-runtime/codex-session.js.map +1 -1
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +24 -3
- package/dist/knowledge-graph.js.map +1 -1
- package/dist/mcp/THIRD_PARTY_NOTICES.txt +2 -2
- package/dist/mcp/server.js +1079 -90
- package/dist/mcp/server.js.map +3 -3
- package/dist/skills-manifest.json +46 -26
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +7702 -5764
- package/dist/transports/cli/cli.js.map +3 -3
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +38 -27
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +25 -5
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +43 -5
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +4 -2
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +29 -3
- package/dist/transports/schemas.js.map +1 -1
- package/docs/platforms/README.md +1 -0
- package/docs/platforms/agent-messaging.md +22 -5
- package/package.json +14 -4
- package/scripts/hooks/_generated/briefing-index.js +147 -0
- package/scripts/hooks/_generated/capture-liveness.js +454 -0
- package/scripts/hooks/_generated/update-notice.js +195 -0
- package/scripts/hooks/_shared.js +302 -14
- package/scripts/hooks/_stop-notes.js +504 -0
- package/scripts/hooks/auto-update-runner.mjs +22 -0
- package/scripts/hooks/decision-nudge.js +32 -5
- package/scripts/hooks/guard-check.js +30 -3
- package/scripts/hooks/post-commit.js +329 -133
- package/scripts/hooks/pre-compact.js +17 -2
- package/scripts/hooks/pre-edit-recall.js +32 -1
- package/scripts/hooks/session-start.js +361 -78
- package/scripts/hooks/session-summary.js +217 -41
- package/scripts/hooks/user-prompt-intent.js +89 -19
- package/skills/memesh/SKILL.md +20 -8
- package/dist/cli/assets/d3.v7.min.js +0 -2
- package/dist/core/graph.d.ts +0 -26
- package/dist/core/graph.d.ts.map +0 -1
- package/dist/core/graph.js +0 -74
- package/dist/core/graph.js.map +0 -1
|
@@ -26,6 +26,9 @@ import {
|
|
|
26
26
|
matchingGuards,
|
|
27
27
|
guardWarningLines,
|
|
28
28
|
recordGuardFires,
|
|
29
|
+
hookErrorReason,
|
|
30
|
+
SKIP_REASONS,
|
|
31
|
+
recordHookOutcome,
|
|
29
32
|
} from './_shared.js';
|
|
30
33
|
import { MemeshDatabase } from './_generated/sqlite.js';
|
|
31
34
|
|
|
@@ -35,15 +38,23 @@ const THROTTLE_FILE = join(memeshDir, 'session-recalled-files.json');
|
|
|
35
38
|
const MAX_RESULTS = 3;
|
|
36
39
|
|
|
37
40
|
let input = '';
|
|
41
|
+
// See post-commit.js for why every exit path leaves a record (#327).
|
|
42
|
+
let payload = null;
|
|
43
|
+
function record(outcome, reason, entity) {
|
|
44
|
+
recordHookOutcome(process.env, { hook: 'pre-edit-recall', outcome, reason, entity, payload });
|
|
45
|
+
}
|
|
46
|
+
|
|
38
47
|
process.stdin.setEncoding('utf8');
|
|
39
48
|
process.stdin.on('data', (chunk) => { input += chunk; });
|
|
40
49
|
process.stdin.on('end', () => {
|
|
41
50
|
try {
|
|
42
51
|
const data = JSON.parse(input);
|
|
52
|
+
payload = data;
|
|
43
53
|
if (!data.tool_input) {
|
|
44
54
|
// Schema-flip signal — Claude Code has renamed `tool_input` for
|
|
45
55
|
// transcript blocks before. Trace so the rename surfaces day-1.
|
|
46
56
|
try { process.stderr.write(`[memesh pre-edit-recall] tool_input absent (keys: ${Object.keys(data).join(',')}); skipping\n`); } catch {}
|
|
57
|
+
record('skipped', SKIP_REASONS.toolInputAbsent);
|
|
47
58
|
return pass();
|
|
48
59
|
}
|
|
49
60
|
const toolInput = data.tool_input;
|
|
@@ -51,6 +62,7 @@ process.stdin.on('end', () => {
|
|
|
51
62
|
|
|
52
63
|
// Only process if we have a file path
|
|
53
64
|
if (!filePath || typeof filePath !== 'string') {
|
|
65
|
+
record('skipped', SKIP_REASONS.noFilePath);
|
|
54
66
|
return pass();
|
|
55
67
|
}
|
|
56
68
|
|
|
@@ -69,7 +81,10 @@ process.stdin.on('end', () => {
|
|
|
69
81
|
}
|
|
70
82
|
const throttled = seenFiles.includes(fileKey);
|
|
71
83
|
|
|
72
|
-
if (!existsSync(dbPath))
|
|
84
|
+
if (!existsSync(dbPath)) {
|
|
85
|
+
record('skipped', SKIP_REASONS.noDatabaseForRecall);
|
|
86
|
+
return pass();
|
|
87
|
+
}
|
|
73
88
|
|
|
74
89
|
// Get project name from cwd for project-scoped RECALL filtering — this
|
|
75
90
|
// spawns 1-2 git subprocesses, and the throttled path (every repeat
|
|
@@ -102,6 +117,7 @@ process.stdin.on('end', () => {
|
|
|
102
117
|
db.prepare('SELECT 1').get();
|
|
103
118
|
} catch {
|
|
104
119
|
db.close();
|
|
120
|
+
record('error', 'the database stayed locked past the hook busy timeout');
|
|
105
121
|
return pass();
|
|
106
122
|
}
|
|
107
123
|
let guardMatches = [];
|
|
@@ -236,6 +252,7 @@ process.stdin.on('end', () => {
|
|
|
236
252
|
}
|
|
237
253
|
|
|
238
254
|
if (guardMatches.length === 0 && recallLines.length === 0) {
|
|
255
|
+
record('skipped', SKIP_REASONS.nothingToRecall);
|
|
239
256
|
return pass();
|
|
240
257
|
}
|
|
241
258
|
|
|
@@ -257,6 +274,19 @@ process.stdin.on('end', () => {
|
|
|
257
274
|
additionalContext: buildReferenceContext(lines),
|
|
258
275
|
},
|
|
259
276
|
}));
|
|
277
|
+
// A recall hook produces an INJECTION, so it records `notified`, not
|
|
278
|
+
// `wrote`: doctor's `writes` answers "is memory capture still alive",
|
|
279
|
+
// and recalling a memory is not storing one.
|
|
280
|
+
//
|
|
281
|
+
// Not "this hook writes nothing" — it does, and the distinction is the
|
|
282
|
+
// whole point of the outcome. `recordGuardFires` above issues an
|
|
283
|
+
// `UPDATE entities SET metadata = json_set(… '$.guard.fires' …)`
|
|
284
|
+
// (_shared.js), bumping a counter on a memory that already exists. That
|
|
285
|
+
// is a write to the database and NOT a write of a memory, which is what
|
|
286
|
+
// `writes` counts. guard-check.js does the same thing for the same
|
|
287
|
+
// reason. A run of skips here is normal; a long run of them on a machine
|
|
288
|
+
// that edits files daily is not (#327).
|
|
289
|
+
record('notified', undefined, `injected:${guardMatches.length}g+${recallLines.length}r`);
|
|
260
290
|
} catch (err) {
|
|
261
291
|
// Never crash Claude Code, but trace — peer hooks (post-commit,
|
|
262
292
|
// pre-compact, session-summary) all stderr-trace their outer
|
|
@@ -264,6 +294,7 @@ process.stdin.on('end', () => {
|
|
|
264
294
|
// would silently break continuous recall on every Edit/Write
|
|
265
295
|
// tool call indefinitely.
|
|
266
296
|
try { process.stderr.write(`[memesh pre-edit-recall] ${err?.message || err}\n`); } catch {}
|
|
297
|
+
record('error', hookErrorReason(err));
|
|
267
298
|
pass();
|
|
268
299
|
}
|
|
269
300
|
});
|