hippo-memory 1.31.0 → 1.32.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/dist/consolidate.d.ts +1 -0
- package/dist/consolidate.d.ts.map +1 -1
- package/dist/consolidate.js +157 -115
- package/dist/consolidate.js.map +1 -1
- package/dist/dag.d.ts +7 -1
- package/dist/dag.d.ts.map +1 -1
- package/dist/dag.js +96 -50
- package/dist/dag.js.map +1 -1
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +6 -0
- package/dist/extract.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +25 -21
- package/dist/mcp/server.js.map +1 -1
- package/dist/src/consolidate.js +157 -115
- package/dist/src/consolidate.js.map +1 -1
- package/dist/src/dag.js +96 -50
- package/dist/src/dag.js.map +1 -1
- package/dist/src/extract.js +6 -0
- package/dist/src/extract.js.map +1 -1
- package/dist/src/mcp/server.js +25 -21
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/store.js +26 -16
- package/dist/src/store.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/store.d.ts +10 -4
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +26 -16
- package/dist/store.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/dag.js
CHANGED
|
@@ -79,53 +79,86 @@ export async function generateDagSummary(label, factContents, opts) {
|
|
|
79
79
|
export async function buildDag(hippoRoot, facts, opts) {
|
|
80
80
|
const result = { candidateClusters: 0, summariesCreated: 0, factsLinked: 0, rejected: 0 };
|
|
81
81
|
const unparented = facts.filter((f) => f.dag_level === 1 && !f.dag_parent_id && f.tags.includes('extracted'));
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
// member re-parenting writes below never run for a skipped cluster
|
|
105
|
-
// (there is no summary id to parent them under).
|
|
106
|
-
try {
|
|
107
|
-
writeEntry(hippoRoot, summaryEntry);
|
|
108
|
-
}
|
|
109
|
-
catch (err) {
|
|
110
|
-
if (err instanceof RejectedValueError) {
|
|
111
|
-
result.rejected++;
|
|
112
|
-
console.error(`[buildDag] cluster "${cluster.label}" skipped: summary matches a rejected value`);
|
|
82
|
+
// Hardening follow-up (mirrors consolidate.ts's mergeCandidatesByTenant,
|
|
83
|
+
// T1): partition unparented facts by tenantId BEFORE clustering so a
|
|
84
|
+
// cluster can never mix facts from different tenants into one
|
|
85
|
+
// LLM-synthesized summary. Map preserves insertion order, so
|
|
86
|
+
// single-tenant stores (every row 'default') get exactly one partition
|
|
87
|
+
// and iterate in the same order as before this fix — byte-identical
|
|
88
|
+
// behavior there.
|
|
89
|
+
const unparentedByTenant = new Map();
|
|
90
|
+
for (const fact of unparented) {
|
|
91
|
+
const bucket = unparentedByTenant.get(fact.tenantId);
|
|
92
|
+
if (bucket)
|
|
93
|
+
bucket.push(fact);
|
|
94
|
+
else
|
|
95
|
+
unparentedByTenant.set(fact.tenantId, [fact]);
|
|
96
|
+
}
|
|
97
|
+
for (const [factTenant, tenantFacts] of unparentedByTenant) {
|
|
98
|
+
const clusters = clusterFacts(tenantFacts);
|
|
99
|
+
const eligibleClusters = clusters.filter((c) => c.members.length >= 3);
|
|
100
|
+
result.candidateClusters += eligibleClusters.length;
|
|
101
|
+
for (const cluster of eligibleClusters) {
|
|
102
|
+
const summary = await generateDagSummary(cluster.label, cluster.members.map((m) => m.content), opts);
|
|
103
|
+
if (!summary)
|
|
113
104
|
continue;
|
|
105
|
+
const memberCreatedAts = cluster.members.map((m) => m.created).sort();
|
|
106
|
+
// Every member of `cluster` shares factTenant by construction (the
|
|
107
|
+
// tenant partition above), so the summary lands in the same tenant
|
|
108
|
+
// as the facts it summarizes instead of always 'default'
|
|
109
|
+
// (memory.ts:535 defaults tenantId when the option is omitted).
|
|
110
|
+
const summaryEntry = createMemory(summary, {
|
|
111
|
+
layer: Layer.Semantic,
|
|
112
|
+
tags: [...cluster.entityTags, 'dag-summary'],
|
|
113
|
+
confidence: 'inferred',
|
|
114
|
+
dag_level: 2,
|
|
115
|
+
tenantId: factTenant,
|
|
116
|
+
});
|
|
117
|
+
// Schema v25: cache descendant_count + earliest/latest_at on the summary
|
|
118
|
+
// row so DAG-aware recall (docs/plans/2026-05-05-dag-recall.md Task 2)
|
|
119
|
+
// can reason about scope without walking the children.
|
|
120
|
+
summaryEntry.descendant_count = cluster.members.length;
|
|
121
|
+
summaryEntry.earliest_at = memberCreatedAts[0];
|
|
122
|
+
summaryEntry.latest_at = memberCreatedAts[memberCreatedAts.length - 1];
|
|
123
|
+
// AT1 (plan §3 containment): a refused LLM-synthesized summary skips
|
|
124
|
+
// ONLY this cluster — the sleep cycle continues to the next one. The
|
|
125
|
+
// member re-parenting writes below never run for a skipped cluster
|
|
126
|
+
// (there is no summary id to parent them under).
|
|
127
|
+
//
|
|
128
|
+
// The tombstone check itself is tenant-scoped for free: writeEntry ->
|
|
129
|
+
// writeEntryDbOnly -> upsertEntryRow calls
|
|
130
|
+
// checkRejectionGuard(db, entry.tenantId ?? 'default', ...)
|
|
131
|
+
// (store.ts:1172), reading tenantId off the entry being written. Now
|
|
132
|
+
// that summaryEntry carries factTenant instead of the implicit
|
|
133
|
+
// 'default', the guard consults that tenant's tombstones — no
|
|
134
|
+
// separate check needed here (unlike consolidate.ts's merge pass,
|
|
135
|
+
// which pre-checks via findRejectedValue because it writes through
|
|
136
|
+
// batchWriteAndDelete's bypassRejectionGuard path instead of
|
|
137
|
+
// writeEntry).
|
|
138
|
+
try {
|
|
139
|
+
writeEntry(hippoRoot, summaryEntry);
|
|
114
140
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
141
|
+
catch (err) {
|
|
142
|
+
if (err instanceof RejectedValueError) {
|
|
143
|
+
result.rejected++;
|
|
144
|
+
console.error(`[buildDag] cluster "${cluster.label}" skipped: summary matches a rejected value`);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
throw err;
|
|
148
|
+
}
|
|
149
|
+
result.summariesCreated++;
|
|
150
|
+
for (const member of cluster.members) {
|
|
151
|
+
const updated = { ...member, dag_parent_id: summaryEntry.id };
|
|
152
|
+
writeEntry(hippoRoot, updated);
|
|
153
|
+
result.factsLinked++;
|
|
154
|
+
}
|
|
155
|
+
// v0.30 / E3 — cancel the cascade of dirty-marks fired by member
|
|
156
|
+
// writeEntry calls (E2 hook on writeEntryDbOnly at store.ts:1214).
|
|
157
|
+
// The summary we just built IS fresh, no rebuild needed. Without this,
|
|
158
|
+
// E3 in the SAME sleep cycle would re-rebuild every new summary
|
|
159
|
+
// (2x LLM cost). plan-eng-r1 HIGH must-fix.
|
|
160
|
+
clearSummaryDirtyAfterBuild(hippoRoot, summaryEntry.id, summaryEntry.tenantId, 'buildDag');
|
|
122
161
|
}
|
|
123
|
-
// v0.30 / E3 — cancel the cascade of dirty-marks fired by member
|
|
124
|
-
// writeEntry calls (E2 hook on writeEntryDbOnly at store.ts:1214).
|
|
125
|
-
// The summary we just built IS fresh, no rebuild needed. Without this,
|
|
126
|
-
// E3 in the SAME sleep cycle would re-rebuild every new summary
|
|
127
|
-
// (2x LLM cost). plan-eng-r1 HIGH must-fix.
|
|
128
|
-
clearSummaryDirtyAfterBuild(hippoRoot, summaryEntry.id, summaryEntry.tenantId, 'buildDag');
|
|
129
162
|
}
|
|
130
163
|
return result;
|
|
131
164
|
}
|
|
@@ -139,7 +172,12 @@ export async function buildDag(hippoRoot, facts, opts) {
|
|
|
139
172
|
*
|
|
140
173
|
* Race-loser handling: applyRebuildResult's UPDATE WHERE includes
|
|
141
174
|
* AND summary_dirty=1, so concurrent sleep's second writer returns
|
|
142
|
-
* changed=false. Silent skip (neither rebuilt++ nor failed++).
|
|
175
|
+
* changed=false. Silent skip (neither rebuilt++ nor refused++ nor failed++).
|
|
176
|
+
*
|
|
177
|
+
* T4: applyRebuildResult returns { changed, refused } — a tombstone hit
|
|
178
|
+
* (rebuild content matches a previously-rejected value) increments
|
|
179
|
+
* `refused`, not `rebuilt`. Dirty still clears either way; only the stat
|
|
180
|
+
* split changed (docs/plans/2026-08-15-hardening-at1-followups.md T4).
|
|
143
181
|
*/
|
|
144
182
|
export async function rebuildDirtySummaries(hippoRoot, opts) {
|
|
145
183
|
const cap = opts.cap ?? 20;
|
|
@@ -149,6 +187,7 @@ export async function rebuildDirtySummaries(hippoRoot, opts) {
|
|
|
149
187
|
const result = {
|
|
150
188
|
attempted: queue.length,
|
|
151
189
|
rebuilt: 0,
|
|
190
|
+
refused: 0,
|
|
152
191
|
zeroChildSkipped: 0,
|
|
153
192
|
failed: 0,
|
|
154
193
|
capped,
|
|
@@ -167,7 +206,7 @@ export async function rebuildDirtySummaries(hippoRoot, opts) {
|
|
|
167
206
|
const children = loadChildrenOfSummary(hippoRoot, summary.id, summary.tenantId);
|
|
168
207
|
if (children.length === 0) {
|
|
169
208
|
// Zero-child case: clear dirty + zero counts, no LLM call, no rebuild_count bump.
|
|
170
|
-
const changed = applyRebuildResult(hippoRoot, summary, {
|
|
209
|
+
const { changed } = applyRebuildResult(hippoRoot, summary, {
|
|
171
210
|
content: summary.content,
|
|
172
211
|
descendant_count: 0,
|
|
173
212
|
earliest_at: null,
|
|
@@ -178,7 +217,9 @@ export async function rebuildDirtySummaries(hippoRoot, opts) {
|
|
|
178
217
|
});
|
|
179
218
|
if (changed)
|
|
180
219
|
result.zeroChildSkipped++;
|
|
181
|
-
// changed=false → race lost / row vanished; silently skip
|
|
220
|
+
// changed=false → race lost / row vanished; silently skip. `refused`
|
|
221
|
+
// is always false here — applyRebuildResult only checks the
|
|
222
|
+
// tombstone when bumpRebuildCount is true (store.ts:3398).
|
|
182
223
|
continue;
|
|
183
224
|
}
|
|
184
225
|
// Derive label from summary's existing entity tags (mirrors clusterFacts)
|
|
@@ -193,7 +234,7 @@ export async function rebuildDirtySummaries(hippoRoot, opts) {
|
|
|
193
234
|
continue;
|
|
194
235
|
}
|
|
195
236
|
const childCreatedAts = children.map((c) => c.created).sort();
|
|
196
|
-
const changed = applyRebuildResult(hippoRoot, summary, {
|
|
237
|
+
const { changed, refused } = applyRebuildResult(hippoRoot, summary, {
|
|
197
238
|
content: newContent,
|
|
198
239
|
descendant_count: children.length,
|
|
199
240
|
earliest_at: childCreatedAts[0],
|
|
@@ -202,9 +243,14 @@ export async function rebuildDirtySummaries(hippoRoot, opts) {
|
|
|
202
243
|
zeroChildren: false,
|
|
203
244
|
actor: 'sleep',
|
|
204
245
|
});
|
|
205
|
-
if (
|
|
246
|
+
if (refused) {
|
|
247
|
+
result.refused++;
|
|
248
|
+
}
|
|
249
|
+
else if (changed) {
|
|
206
250
|
result.rebuilt++;
|
|
207
|
-
|
|
251
|
+
}
|
|
252
|
+
// changed=false (refused also false) → race lost; not failure, not
|
|
253
|
+
// success, silently skip
|
|
208
254
|
}
|
|
209
255
|
catch (err) {
|
|
210
256
|
// Per-summary failure isolation — one throw doesn't abort the queue.
|
package/dist/dag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"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"}
|
package/dist/extract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAS,gBAAgB,EAAgB,MAAM,aAAa,CAAC;AAIjF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAeD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,aAAa,EAAE,CAAC,CAsD1B;AAID,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,aAAa,EAAE,GACrB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAS,gBAAgB,EAAgB,MAAM,aAAa,CAAC;AAIjF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAeD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,aAAa,EAAE,CAAC,CAsD1B;AAID,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,aAAa,EAAE,GACrB,WAAW,EAAE,CA6Cf"}
|
package/dist/extract.js
CHANGED
|
@@ -80,6 +80,12 @@ export function storeExtractedFacts(hippoRoot, source, facts) {
|
|
|
80
80
|
confidence: 'inferred',
|
|
81
81
|
source: source.source,
|
|
82
82
|
extracted_from: source.id,
|
|
83
|
+
// T1 executor check (2026-08-15 hardening pass): same defect as the
|
|
84
|
+
// consolidate.ts merge/trace passes — createMemory with no tenantId
|
|
85
|
+
// option stamps 'default' (memory.ts:535) regardless of the source
|
|
86
|
+
// entry's own tenant. Thread it through so extracted facts land in
|
|
87
|
+
// the same tenant as the episodic memory they were extracted from.
|
|
88
|
+
tenantId: source.tenantId,
|
|
83
89
|
});
|
|
84
90
|
// AT1 containment: a refusal is per-VALUE — one rejected fact must not
|
|
85
91
|
// drop the rest of this batch. writeEntry has already audited the
|
package/dist/extract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA4CH,kFAAkF;AAClF,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAyBD,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA4CH,kFAAkF;AAClF,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAyBD,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmkCD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,UAAU,EACf,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2C7B;AAyBD;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAmBrC"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -406,7 +406,7 @@ async function executeTool(name, args, ctx) {
|
|
|
406
406
|
const apiCtx = {
|
|
407
407
|
hippoRoot,
|
|
408
408
|
tenantId,
|
|
409
|
-
actor: adminActor('mcp'),
|
|
409
|
+
actor: adminActor(ctx?.actor ?? 'mcp'),
|
|
410
410
|
};
|
|
411
411
|
// Route through api.recall for audit + (when requested) continuity block.
|
|
412
412
|
// api.recall already applies the same default-deny / exact-match rules
|
|
@@ -510,7 +510,7 @@ async function executeTool(name, args, ctx) {
|
|
|
510
510
|
// flag; ids below stay populated for outcome attribution.
|
|
511
511
|
if (!isRecallBoostAblated()) {
|
|
512
512
|
for (const entry of retrieved)
|
|
513
|
-
writeEntry(hippoRoot, entry);
|
|
513
|
+
writeEntry(hippoRoot, entry, { actor: ctx?.actor ?? 'mcp' });
|
|
514
514
|
}
|
|
515
515
|
lastRecalledIds.set(resolveClientKey(ctx), retrieved.map((e) => e.id));
|
|
516
516
|
// v0.33 / J1 — MCP per-pipeline anchoring detector. UNLIKE J3.2's
|
|
@@ -535,7 +535,7 @@ async function executeTool(name, args, ctx) {
|
|
|
535
535
|
try {
|
|
536
536
|
appendAuditEvent(dbForAudit, {
|
|
537
537
|
tenantId,
|
|
538
|
-
actor: 'mcp',
|
|
538
|
+
actor: ctx?.actor ?? 'mcp',
|
|
539
539
|
op: 'recall_anchor_detected_memory_dominance',
|
|
540
540
|
targetId: mcpAnchoringHint.memoryId,
|
|
541
541
|
metadata: {
|
|
@@ -553,7 +553,7 @@ async function executeTool(name, args, ctx) {
|
|
|
553
553
|
try {
|
|
554
554
|
appendAuditEvent(dbForAudit, {
|
|
555
555
|
tenantId,
|
|
556
|
-
actor: 'mcp',
|
|
556
|
+
actor: ctx?.actor ?? 'mcp',
|
|
557
557
|
op: 'recall_anchor_detected_query_repeat',
|
|
558
558
|
targetId: mcpAnchoringHint.memoryId,
|
|
559
559
|
metadata: { memory_id: mcpAnchoringHint.memoryId },
|
|
@@ -574,7 +574,7 @@ async function executeTool(name, args, ctx) {
|
|
|
574
574
|
try {
|
|
575
575
|
appendAuditEvent(dbForAudit, {
|
|
576
576
|
tenantId,
|
|
577
|
-
actor: 'mcp',
|
|
577
|
+
actor: ctx?.actor ?? 'mcp',
|
|
578
578
|
op: 'recall_anchor_skipped_no_session',
|
|
579
579
|
targetId: undefined,
|
|
580
580
|
metadata: {
|
|
@@ -591,7 +591,8 @@ async function executeTool(name, args, ctx) {
|
|
|
591
591
|
// v0.32 / J3.2 — auto-injection of reference-class baserate hint
|
|
592
592
|
// when the query carries a forward-prediction phrase. Read from
|
|
593
593
|
// apiResult.planningFallacyHint (already computed inside api.recall
|
|
594
|
-
// with
|
|
594
|
+
// with the caller identity threaded through ctx.actor.subject -
|
|
595
|
+
// auth-resolved actor under HTTP-MCP, 'mcp' for stdio). The hint is
|
|
595
596
|
// pipeline-INVARIANT — same (hippoRoot, tenantId, query) inputs
|
|
596
597
|
// produce the same hint regardless of which downstream search
|
|
597
598
|
// pipeline (api.recall band vs physics/hybrid) renders the memory
|
|
@@ -627,7 +628,8 @@ async function executeTool(name, args, ctx) {
|
|
|
627
628
|
// planningFallacyHint), this depends on MCP's OWN returned top-K and the
|
|
628
629
|
// scope-filtered candidate pool (entries) it was drawn from, so MCP
|
|
629
630
|
// computes its own hint here. Soft warning only. Gated by
|
|
630
|
-
// HIPPO_AVAILABILITY=off; audit emission is pipeline-local (actor=
|
|
631
|
+
// HIPPO_AVAILABILITY=off; audit emission is pipeline-local (actor =
|
|
632
|
+
// auth-resolved ctx.actor under HTTP-MCP, 'mcp' for stdio).
|
|
631
633
|
let mcpAvailabilityHint = null;
|
|
632
634
|
if (process.env.HIPPO_AVAILABILITY !== 'off') {
|
|
633
635
|
mcpAvailabilityHint = detectAvailabilityBias({
|
|
@@ -639,7 +641,7 @@ async function executeTool(name, args, ctx) {
|
|
|
639
641
|
try {
|
|
640
642
|
appendAuditEvent(dbForAudit, {
|
|
641
643
|
tenantId,
|
|
642
|
-
actor: 'mcp',
|
|
644
|
+
actor: ctx?.actor ?? 'mcp',
|
|
643
645
|
op: 'recall_availability_detected',
|
|
644
646
|
metadata: {
|
|
645
647
|
recent_fraction: mcpAvailabilityHint.recentFraction,
|
|
@@ -751,7 +753,7 @@ async function executeTool(name, args, ctx) {
|
|
|
751
753
|
const apiCtx = {
|
|
752
754
|
hippoRoot,
|
|
753
755
|
tenantId,
|
|
754
|
-
actor: adminActor('mcp'),
|
|
756
|
+
actor: adminActor(ctx?.actor ?? 'mcp'),
|
|
755
757
|
};
|
|
756
758
|
const explicitScope = typeof args.scope === 'string' && args.scope.length > 0
|
|
757
759
|
? String(args.scope)
|
|
@@ -790,7 +792,7 @@ async function executeTool(name, args, ctx) {
|
|
|
790
792
|
const apiCtx = {
|
|
791
793
|
hippoRoot,
|
|
792
794
|
tenantId,
|
|
793
|
-
actor: adminActor('mcp'),
|
|
795
|
+
actor: adminActor(ctx?.actor ?? 'mcp'),
|
|
794
796
|
};
|
|
795
797
|
const r = apiDrillDown(apiCtx, summaryId, {
|
|
796
798
|
...(Number.isFinite(limit) && limit > 0 ? { limit } : {}),
|
|
@@ -826,7 +828,7 @@ async function executeTool(name, args, ctx) {
|
|
|
826
828
|
const classTag = String(args.class_tag || '').trim();
|
|
827
829
|
if (!classTag)
|
|
828
830
|
return 'No class_tag provided. Usage: pass class_tag matching a class used in past predictions (e.g. "migration-effort").';
|
|
829
|
-
const baserate = computePredictionBaserate(hippoRoot, tenantId, classTag, 'mcp');
|
|
831
|
+
const baserate = computePredictionBaserate(hippoRoot, tenantId, classTag, ctx?.actor ?? 'mcp');
|
|
830
832
|
if (baserate.nClosed === 0) {
|
|
831
833
|
return `No closed predictions in class "${classTag}" yet. Create one via hippo_predict (or 'hippo predict ...' CLI) and close it with hippo_predict_close once the actual outcome is known. Base rates need closed predictions with numeric actual_value to compute.`;
|
|
832
834
|
}
|
|
@@ -854,14 +856,15 @@ async function executeTool(name, args, ctx) {
|
|
|
854
856
|
tags.push('error');
|
|
855
857
|
if (args.tag)
|
|
856
858
|
tags.push(String(args.tag));
|
|
857
|
-
// Route through api.ts so audit_log captures
|
|
858
|
-
// CLI/REST
|
|
859
|
-
//
|
|
860
|
-
//
|
|
859
|
+
// Route through api.ts so audit_log captures the caller identity
|
|
860
|
+
// uniformly with CLI/REST: the auth-resolved ctx.actor under HTTP-MCP,
|
|
861
|
+
// 'mcp' for stdio (no ctx). api.ts.remember writes the memory + audit
|
|
862
|
+
// row in one transaction-friendly path; we re-read the entry to surface
|
|
863
|
+
// the half-life used in the MCP human-readable response.
|
|
861
864
|
const apiCtx = {
|
|
862
865
|
hippoRoot,
|
|
863
866
|
tenantId,
|
|
864
|
-
actor: adminActor('mcp'),
|
|
867
|
+
actor: adminActor(ctx?.actor ?? 'mcp'),
|
|
865
868
|
};
|
|
866
869
|
const result = apiRemember(apiCtx, {
|
|
867
870
|
content: text,
|
|
@@ -895,13 +898,14 @@ async function executeTool(name, args, ctx) {
|
|
|
895
898
|
const ids = lastRecalledIds.get(clientKey) ?? [];
|
|
896
899
|
if (ids.length === 0)
|
|
897
900
|
return 'No recent recalls to apply outcome to.';
|
|
898
|
-
// Route through src/api.ts so audit_log captures
|
|
899
|
-
//
|
|
901
|
+
// Route through src/api.ts so audit_log captures the caller identity
|
|
902
|
+
// (auth-resolved ctx.actor under HTTP-MCP, 'mcp' for stdio) and tenant
|
|
903
|
+
// scoping is enforced uniformly (same surface as recall/remember).
|
|
900
904
|
// outcome() also handles cross-tenant id skip silently.
|
|
901
905
|
const apiCtx = {
|
|
902
906
|
hippoRoot,
|
|
903
907
|
tenantId,
|
|
904
|
-
actor: adminActor('mcp'),
|
|
908
|
+
actor: adminActor(ctx?.actor ?? 'mcp'),
|
|
905
909
|
};
|
|
906
910
|
const { applied } = apiOutcome(apiCtx, ids, good);
|
|
907
911
|
return `Applied ${good ? 'positive' : 'negative'} outcome to ${applied} memories`;
|
|
@@ -984,7 +988,7 @@ async function executeTool(name, args, ctx) {
|
|
|
984
988
|
// flag; ids below stay populated for outcome attribution.
|
|
985
989
|
if (!isRecallBoostAblated()) {
|
|
986
990
|
for (const entry of retrieved)
|
|
987
|
-
writeEntry(hippoRoot, entry);
|
|
991
|
+
writeEntry(hippoRoot, entry, { actor: ctx?.actor ?? 'mcp' });
|
|
988
992
|
}
|
|
989
993
|
lastRecalledIds.set(resolveClientKey(ctx), retrieved.map((e) => e.id));
|
|
990
994
|
const rawSnapshot = loadActiveTaskSnapshot(hippoRoot, tenantId);
|
|
@@ -1059,7 +1063,7 @@ async function executeTool(name, args, ctx) {
|
|
|
1059
1063
|
// AT1 (plan §3 containment): a refused lesson must not crash the
|
|
1060
1064
|
// MCP learn call or lose the rest of the git log scan.
|
|
1061
1065
|
try {
|
|
1062
|
-
writeEntry(hippoRoot, entry);
|
|
1066
|
+
writeEntry(hippoRoot, entry, { actor: ctx?.actor ?? 'mcp' });
|
|
1063
1067
|
}
|
|
1064
1068
|
catch (err) {
|
|
1065
1069
|
if (err instanceof RejectedValueError) {
|