hippo-memory 0.38.0 → 0.40.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.md +9 -0
- package/dist/api.d.ts +29 -6
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +168 -42
- package/dist/api.js.map +1 -1
- package/dist/audit.d.ts +1 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +20 -4
- package/dist/auth.js.map +1 -1
- package/dist/cli.js +101 -6
- package/dist/cli.js.map +1 -1
- package/dist/connectors/slack/deletion.d.ts +10 -0
- package/dist/connectors/slack/deletion.d.ts.map +1 -1
- package/dist/connectors/slack/deletion.js +21 -10
- package/dist/connectors/slack/deletion.js.map +1 -1
- package/dist/connectors/slack/dlq.d.ts +59 -1
- package/dist/connectors/slack/dlq.d.ts.map +1 -1
- package/dist/connectors/slack/dlq.js +204 -6
- package/dist/connectors/slack/dlq.js.map +1 -1
- package/dist/connectors/slack/idempotency.d.ts +12 -0
- package/dist/connectors/slack/idempotency.d.ts.map +1 -1
- package/dist/connectors/slack/idempotency.js +16 -0
- package/dist/connectors/slack/idempotency.js.map +1 -1
- package/dist/connectors/slack/ingest.d.ts +7 -1
- package/dist/connectors/slack/ingest.d.ts.map +1 -1
- package/dist/connectors/slack/ingest.js +40 -6
- package/dist/connectors/slack/ingest.js.map +1 -1
- package/dist/connectors/slack/signature.d.ts +7 -0
- package/dist/connectors/slack/signature.d.ts.map +1 -1
- package/dist/connectors/slack/signature.js +16 -9
- package/dist/connectors/slack/signature.js.map +1 -1
- package/dist/connectors/slack/tenant-routing.d.ts +15 -7
- package/dist/connectors/slack/tenant-routing.d.ts.map +1 -1
- package/dist/connectors/slack/tenant-routing.js +28 -8
- package/dist/connectors/slack/tenant-routing.js.map +1 -1
- package/dist/correction-latency.d.ts +36 -0
- package/dist/correction-latency.d.ts.map +1 -0
- package/dist/correction-latency.js +74 -0
- package/dist/correction-latency.js.map +1 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +88 -1
- package/dist/db.js.map +1 -1
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +73 -30
- package/dist/mcp/server.js.map +1 -1
- package/dist/provenance-coverage.d.ts +18 -0
- package/dist/provenance-coverage.d.ts.map +1 -0
- package/dist/provenance-coverage.js +23 -0
- package/dist/provenance-coverage.js.map +1 -0
- package/dist/raw-archive-mirror-cleanup.d.ts +20 -0
- package/dist/raw-archive-mirror-cleanup.d.ts.map +1 -0
- package/dist/raw-archive-mirror-cleanup.js +53 -0
- package/dist/raw-archive-mirror-cleanup.js.map +1 -0
- package/dist/raw-archive.d.ts +8 -0
- package/dist/raw-archive.d.ts.map +1 -1
- package/dist/raw-archive.js +21 -7
- package/dist/raw-archive.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +142 -18
- package/dist/server.js.map +1 -1
- package/dist/shared.d.ts +1 -0
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +6 -1
- package/dist/shared.js.map +1 -1
- package/dist/src/api.js +168 -42
- package/dist/src/api.js.map +1 -1
- package/dist/src/audit.js.map +1 -1
- package/dist/src/auth.js +20 -4
- package/dist/src/auth.js.map +1 -1
- package/dist/src/cli.js +101 -6
- package/dist/src/cli.js.map +1 -1
- package/dist/src/connectors/slack/deletion.js +21 -10
- package/dist/src/connectors/slack/deletion.js.map +1 -1
- package/dist/src/connectors/slack/dlq.js +204 -6
- package/dist/src/connectors/slack/dlq.js.map +1 -1
- package/dist/src/connectors/slack/idempotency.js +16 -0
- package/dist/src/connectors/slack/idempotency.js.map +1 -1
- package/dist/src/connectors/slack/ingest.js +40 -6
- package/dist/src/connectors/slack/ingest.js.map +1 -1
- package/dist/src/connectors/slack/signature.js +16 -9
- package/dist/src/connectors/slack/signature.js.map +1 -1
- package/dist/src/connectors/slack/tenant-routing.js +28 -8
- package/dist/src/connectors/slack/tenant-routing.js.map +1 -1
- package/dist/src/correction-latency.js +74 -0
- package/dist/src/correction-latency.js.map +1 -0
- package/dist/src/db.js +88 -1
- package/dist/src/db.js.map +1 -1
- package/dist/src/mcp/server.js +73 -30
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/provenance-coverage.js +23 -0
- package/dist/src/provenance-coverage.js.map +1 -0
- package/dist/src/raw-archive-mirror-cleanup.js +53 -0
- package/dist/src/raw-archive-mirror-cleanup.js.map +1 -0
- package/dist/src/raw-archive.js +21 -7
- package/dist/src/raw-archive.js.map +1 -1
- package/dist/src/server.js +142 -18
- package/dist/src/server.js.map +1 -1
- package/dist/src/shared.js +6 -1
- package/dist/src/shared.js.map +1 -1
- package/dist/src/store.js +50 -26
- package/dist/src/store.js.map +1 -1
- package/dist/store.d.ts +24 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +50 -26
- package/dist/store.js.map +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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/connectors/slack/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/connectors/slack/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAoBrD,SAAS,SAAS,CAChB,OAAe,EACf,SAAiB,EACjB,SAAiB,EACjB,MAAc;IAEd,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACzG,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAgB;IACnD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,cAAc,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5F,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import type { DatabaseSyncLike } from '../../db.js';
|
|
2
2
|
/**
|
|
3
|
-
* Look up the tenant_id for a Slack team_id.
|
|
4
|
-
* which signals "use the deployment's HIPPO_TENANT fallback". Multi-workspace
|
|
5
|
-
* deployments populate slack_workspaces; single-workspace deployments leave
|
|
6
|
-
* the table empty and rely on the env fallback.
|
|
3
|
+
* Look up the tenant_id for a Slack team_id.
|
|
7
4
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
5
|
+
* Returns:
|
|
6
|
+
* - mapped tenant_id when slack_workspaces has a row for `teamId`
|
|
7
|
+
* - the deployment's HIPPO_TENANT fallback (or 'default') when slack_workspaces
|
|
8
|
+
* is empty (single-workspace install — env fallback is safe)
|
|
9
|
+
* - null when slack_workspaces is non-empty AND `teamId` is unknown
|
|
10
|
+
* (multi-workspace install — fail closed; an unknown team is not the
|
|
11
|
+
* deployment's tenant). Escape hatch: SLACK_ALLOW_UNKNOWN_TEAM_FALLBACK=1
|
|
12
|
+
* restores the env fallback for emergency rollback only.
|
|
13
|
+
*
|
|
14
|
+
* v0.39 commit 3 (CRITICAL #5): the previous version returned null on miss
|
|
15
|
+
* unconditionally, and the route handler then fell back to HIPPO_TENANT —
|
|
16
|
+
* which silently routed events from a foreign workspace into the deployment
|
|
17
|
+
* tenant. The fail-closed contract lives here so every caller (route handler,
|
|
18
|
+
* CLI replay, future MCP) gets the same protection.
|
|
11
19
|
*/
|
|
12
20
|
export declare function resolveTenantForTeam(db: DatabaseSyncLike, teamId: string): string | null;
|
|
13
21
|
//# sourceMappingURL=tenant-routing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-routing.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/tenant-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"tenant-routing.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/tenant-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBxF"}
|
|
@@ -1,17 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Look up the tenant_id for a Slack team_id.
|
|
3
|
-
* which signals "use the deployment's HIPPO_TENANT fallback". Multi-workspace
|
|
4
|
-
* deployments populate slack_workspaces; single-workspace deployments leave
|
|
5
|
-
* the table empty and rely on the env fallback.
|
|
2
|
+
* Look up the tenant_id for a Slack team_id.
|
|
6
3
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Returns:
|
|
5
|
+
* - mapped tenant_id when slack_workspaces has a row for `teamId`
|
|
6
|
+
* - the deployment's HIPPO_TENANT fallback (or 'default') when slack_workspaces
|
|
7
|
+
* is empty (single-workspace install — env fallback is safe)
|
|
8
|
+
* - null when slack_workspaces is non-empty AND `teamId` is unknown
|
|
9
|
+
* (multi-workspace install — fail closed; an unknown team is not the
|
|
10
|
+
* deployment's tenant). Escape hatch: SLACK_ALLOW_UNKNOWN_TEAM_FALLBACK=1
|
|
11
|
+
* restores the env fallback for emergency rollback only.
|
|
12
|
+
*
|
|
13
|
+
* v0.39 commit 3 (CRITICAL #5): the previous version returned null on miss
|
|
14
|
+
* unconditionally, and the route handler then fell back to HIPPO_TENANT —
|
|
15
|
+
* which silently routed events from a foreign workspace into the deployment
|
|
16
|
+
* tenant. The fail-closed contract lives here so every caller (route handler,
|
|
17
|
+
* CLI replay, future MCP) gets the same protection.
|
|
10
18
|
*/
|
|
11
19
|
export function resolveTenantForTeam(db, teamId) {
|
|
12
20
|
const row = db
|
|
13
21
|
.prepare(`SELECT tenant_id FROM slack_workspaces WHERE team_id = ?`)
|
|
14
22
|
.get(teamId);
|
|
15
|
-
|
|
23
|
+
if (row?.tenant_id)
|
|
24
|
+
return row.tenant_id;
|
|
25
|
+
const total = db
|
|
26
|
+
.prepare(`SELECT COUNT(*) AS c FROM slack_workspaces`)
|
|
27
|
+
.get().c;
|
|
28
|
+
if (Number(total) === 0) {
|
|
29
|
+
// Single-workspace install: env fallback is safe.
|
|
30
|
+
return process.env.HIPPO_TENANT?.trim() || 'default';
|
|
31
|
+
}
|
|
32
|
+
if (process.env.SLACK_ALLOW_UNKNOWN_TEAM_FALLBACK === '1') {
|
|
33
|
+
return process.env.HIPPO_TENANT?.trim() || 'default';
|
|
34
|
+
}
|
|
35
|
+
return null; // fail closed
|
|
16
36
|
}
|
|
17
37
|
//# sourceMappingURL=tenant-routing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-routing.js","sourceRoot":"","sources":["../../../src/connectors/slack/tenant-routing.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"tenant-routing.js","sourceRoot":"","sources":["../../../src/connectors/slack/tenant-routing.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAoB,EAAE,MAAc;IACvE,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,0DAA0D,CAAC;SACnE,GAAG,CAAC,MAAM,CAAuC,CAAC;IACrD,IAAI,GAAG,EAAE,SAAS;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC;IAEzC,MAAM,KAAK,GAAI,EAAE;SACd,OAAO,CAAC,4CAA4C,CAAC;SACrD,GAAG,EAA6B,CAAC,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,kDAAkD;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,GAAG,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,cAAc;AAC7B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MemoryEntry } from './memory.js';
|
|
2
|
+
export interface CorrectionPair {
|
|
3
|
+
oldId: string;
|
|
4
|
+
newId: string;
|
|
5
|
+
correctedAt: string;
|
|
6
|
+
observedAt: string;
|
|
7
|
+
latencyMs: number;
|
|
8
|
+
/** 'extraction' = new fact derived from a raw receipt; 'manual' = direct supersede call */
|
|
9
|
+
via: 'extraction' | 'manual';
|
|
10
|
+
}
|
|
11
|
+
export interface CorrectionLatencyReport {
|
|
12
|
+
count: number;
|
|
13
|
+
manualCount: number;
|
|
14
|
+
extractionCount: number;
|
|
15
|
+
/** Percentiles computed over `extraction` pairs only — manual pairs have no measurable lag */
|
|
16
|
+
p50Ms: number | null;
|
|
17
|
+
p95Ms: number | null;
|
|
18
|
+
maxMs: number | null;
|
|
19
|
+
pairs: CorrectionPair[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Correction latency = wall-clock delta between when hippo first saw the
|
|
23
|
+
* change-of-truth and when the supersession actually landed.
|
|
24
|
+
*
|
|
25
|
+
* For each (old, new) chain via `old.superseded_by = new.id`:
|
|
26
|
+
* - `correctedAt` = `new.created` (always)
|
|
27
|
+
* - `observedAt` = source row's `created` if `new.extracted_from` is set,
|
|
28
|
+
* else `new.created` (no earlier observation possible)
|
|
29
|
+
*
|
|
30
|
+
* Pairs split into two cohorts:
|
|
31
|
+
* - `extraction` — derived from a raw receipt; latency is meaningful
|
|
32
|
+
* - `manual` — direct supersede call; latency is trivially 0 and
|
|
33
|
+
* excluded from percentiles to avoid masking real lag
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildCorrectionLatency(entries: MemoryEntry[]): CorrectionLatencyReport;
|
|
36
|
+
//# sourceMappingURL=correction-latency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correction-latency.d.ts","sourceRoot":"","sources":["../src/correction-latency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,GAAG,EAAE,YAAY,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,8FAA8F;IAC9F,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,uBAAuB,CA8CtF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
function percentile(sorted, q) {
|
|
2
|
+
if (sorted.length === 0)
|
|
3
|
+
return 0;
|
|
4
|
+
if (sorted.length === 1)
|
|
5
|
+
return sorted[0];
|
|
6
|
+
const idx = (sorted.length - 1) * q;
|
|
7
|
+
const lo = Math.floor(idx);
|
|
8
|
+
const hi = Math.ceil(idx);
|
|
9
|
+
if (lo === hi)
|
|
10
|
+
return sorted[lo];
|
|
11
|
+
return sorted[lo] + (sorted[hi] - sorted[lo]) * (idx - lo);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Correction latency = wall-clock delta between when hippo first saw the
|
|
15
|
+
* change-of-truth and when the supersession actually landed.
|
|
16
|
+
*
|
|
17
|
+
* For each (old, new) chain via `old.superseded_by = new.id`:
|
|
18
|
+
* - `correctedAt` = `new.created` (always)
|
|
19
|
+
* - `observedAt` = source row's `created` if `new.extracted_from` is set,
|
|
20
|
+
* else `new.created` (no earlier observation possible)
|
|
21
|
+
*
|
|
22
|
+
* Pairs split into two cohorts:
|
|
23
|
+
* - `extraction` — derived from a raw receipt; latency is meaningful
|
|
24
|
+
* - `manual` — direct supersede call; latency is trivially 0 and
|
|
25
|
+
* excluded from percentiles to avoid masking real lag
|
|
26
|
+
*/
|
|
27
|
+
export function buildCorrectionLatency(entries) {
|
|
28
|
+
const byId = new Map();
|
|
29
|
+
for (const e of entries)
|
|
30
|
+
byId.set(e.id, e);
|
|
31
|
+
const pairs = [];
|
|
32
|
+
for (const oldEntry of entries) {
|
|
33
|
+
if (!oldEntry.superseded_by)
|
|
34
|
+
continue;
|
|
35
|
+
const newEntry = byId.get(oldEntry.superseded_by);
|
|
36
|
+
if (!newEntry)
|
|
37
|
+
continue;
|
|
38
|
+
const correctedAt = newEntry.created;
|
|
39
|
+
let observedAt = newEntry.created;
|
|
40
|
+
let via = 'manual';
|
|
41
|
+
if (newEntry.extracted_from) {
|
|
42
|
+
const source = byId.get(newEntry.extracted_from);
|
|
43
|
+
if (source) {
|
|
44
|
+
observedAt = source.created;
|
|
45
|
+
via = 'extraction';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const correctedMs = new Date(correctedAt).getTime();
|
|
49
|
+
const observedMs = new Date(observedAt).getTime();
|
|
50
|
+
if (!Number.isFinite(correctedMs) || !Number.isFinite(observedMs))
|
|
51
|
+
continue;
|
|
52
|
+
const latencyMs = Math.max(0, correctedMs - observedMs);
|
|
53
|
+
pairs.push({
|
|
54
|
+
oldId: oldEntry.id,
|
|
55
|
+
newId: newEntry.id,
|
|
56
|
+
correctedAt,
|
|
57
|
+
observedAt,
|
|
58
|
+
latencyMs,
|
|
59
|
+
via,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const extractionPairs = pairs.filter((p) => p.via === 'extraction');
|
|
63
|
+
const sorted = extractionPairs.map((p) => p.latencyMs).sort((a, b) => a - b);
|
|
64
|
+
return {
|
|
65
|
+
count: pairs.length,
|
|
66
|
+
manualCount: pairs.filter((p) => p.via === 'manual').length,
|
|
67
|
+
extractionCount: extractionPairs.length,
|
|
68
|
+
p50Ms: sorted.length === 0 ? null : percentile(sorted, 0.5),
|
|
69
|
+
p95Ms: sorted.length === 0 ? null : percentile(sorted, 0.95),
|
|
70
|
+
maxMs: sorted.length === 0 ? null : sorted[sorted.length - 1],
|
|
71
|
+
pairs,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=correction-latency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correction-latency.js","sourceRoot":"","sources":["../src/correction-latency.ts"],"names":[],"mappings":"AAuBA,SAAS,UAAU,CAAC,MAAgB,EAAE,CAAS;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAsB;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3C,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,aAAa;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;QACrC,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;QAClC,IAAI,GAAG,GAA0B,QAAQ,CAAC;QAC1C,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC5B,GAAG,GAAG,YAAY,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAS;QAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,WAAW;YACX,UAAU;YACV,SAAS;YACT,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7E,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,MAAM;QAC3D,eAAe,EAAE,eAAe,CAAC,MAAM;QACvC,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;QAC3D,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,KAAK;KACN,CAAC;AACJ,CAAC"}
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAQA,UAAU,iBAAiB;IACzB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAylBD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CA2B/D;AAkCD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAI7D;AAwDD,wBAAgB,YAAY,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAGhF;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAE5D;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,SAAK,GAAG,IAAI,CAS5E"}
|
package/dist/db.js
CHANGED
|
@@ -2,9 +2,10 @@ import * as fs from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { createRequire } from 'module';
|
|
4
4
|
import { createPhysicsTable } from './physics-state.js';
|
|
5
|
+
import { cleanupArchivedMirrors } from './raw-archive-mirror-cleanup.js';
|
|
5
6
|
const require = createRequire(import.meta.url);
|
|
6
7
|
const { DatabaseSync } = require('node:sqlite');
|
|
7
|
-
const CURRENT_SCHEMA_VERSION =
|
|
8
|
+
const CURRENT_SCHEMA_VERSION = 21;
|
|
8
9
|
const MIGRATIONS = [
|
|
9
10
|
{
|
|
10
11
|
version: 1,
|
|
@@ -500,6 +501,83 @@ const MIGRATIONS = [
|
|
|
500
501
|
`);
|
|
501
502
|
},
|
|
502
503
|
},
|
|
504
|
+
{
|
|
505
|
+
version: 19,
|
|
506
|
+
up: (db) => {
|
|
507
|
+
// v0.39 commit 3 (Slack hardening): widen slack_dlq with bucketing,
|
|
508
|
+
// retry tracking, and the signature/timestamp pair that lets `hippo
|
|
509
|
+
// slack dlq replay` re-verify before re-running ingest. ALTER ADD
|
|
510
|
+
// COLUMN with DEFAULT is non-destructive — legacy rows take the
|
|
511
|
+
// default values. Idempotent via tableHasColumn().
|
|
512
|
+
if (!tableHasColumn(db, 'slack_dlq', 'team_id')) {
|
|
513
|
+
db.exec(`ALTER TABLE slack_dlq ADD COLUMN team_id TEXT`);
|
|
514
|
+
}
|
|
515
|
+
if (!tableHasColumn(db, 'slack_dlq', 'bucket')) {
|
|
516
|
+
db.exec(`ALTER TABLE slack_dlq ADD COLUMN bucket TEXT NOT NULL DEFAULT 'parse_error'`);
|
|
517
|
+
// SQLite ALTER TABLE cannot add CHECK; bucket value enforcement is app-level.
|
|
518
|
+
}
|
|
519
|
+
if (!tableHasColumn(db, 'slack_dlq', 'retry_count')) {
|
|
520
|
+
db.exec(`ALTER TABLE slack_dlq ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0`);
|
|
521
|
+
}
|
|
522
|
+
if (!tableHasColumn(db, 'slack_dlq', 'signature')) {
|
|
523
|
+
db.exec(`ALTER TABLE slack_dlq ADD COLUMN signature TEXT`);
|
|
524
|
+
}
|
|
525
|
+
if (!tableHasColumn(db, 'slack_dlq', 'slack_timestamp')) {
|
|
526
|
+
db.exec(`ALTER TABLE slack_dlq ADD COLUMN slack_timestamp TEXT`);
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
version: 20,
|
|
532
|
+
up: (db) => {
|
|
533
|
+
// v0.39 commit 4 (GDPR Path A backfill): redact every existing
|
|
534
|
+
// raw_archive.payload_json so historical archives match the new
|
|
535
|
+
// metadata-only contract from src/raw-archive.ts. Read each row, parse
|
|
536
|
+
// the existing JSON to extract tenant_id and kind (best effort), then
|
|
537
|
+
// UPDATE with the redacted shape. Rows with unparseable legacy JSON get
|
|
538
|
+
// redacted with tenant_id='unknown', kind='unknown'. The audit_log
|
|
539
|
+
// remains the compliance record.
|
|
540
|
+
const rows = db
|
|
541
|
+
.prepare(`SELECT id, archived_at, reason, payload_json FROM raw_archive`)
|
|
542
|
+
.all();
|
|
543
|
+
const update = db.prepare(`UPDATE raw_archive SET payload_json = ? WHERE id = ?`);
|
|
544
|
+
for (const row of rows) {
|
|
545
|
+
let tenant = 'unknown';
|
|
546
|
+
let kind = 'unknown';
|
|
547
|
+
try {
|
|
548
|
+
const parsed = JSON.parse(row.payload_json);
|
|
549
|
+
tenant = parsed.tenant_id ?? 'unknown';
|
|
550
|
+
kind = parsed.kind ?? 'unknown';
|
|
551
|
+
}
|
|
552
|
+
catch {
|
|
553
|
+
// Unparseable legacy payload — redact with unknowns.
|
|
554
|
+
}
|
|
555
|
+
const redacted = JSON.stringify({
|
|
556
|
+
redacted: true,
|
|
557
|
+
archived_at: row.archived_at,
|
|
558
|
+
tenant_id: tenant,
|
|
559
|
+
kind,
|
|
560
|
+
reason: row.reason,
|
|
561
|
+
migration: 'v20_redact',
|
|
562
|
+
});
|
|
563
|
+
update.run(redacted, row.id);
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
version: 21,
|
|
569
|
+
up: (db) => {
|
|
570
|
+
// v0.39 codex round 3: per-row mirror cleanup tracking. Replaces the
|
|
571
|
+
// global gdpr_v20_mirror_cleanup meta gate (which made the reaper
|
|
572
|
+
// one-shot and silently swallowed failed unlinks). With this column the
|
|
573
|
+
// reaper processes only rows WHERE mirror_cleaned_at IS NULL, sets the
|
|
574
|
+
// timestamp on success, and leaves it NULL on any unlink failure so the
|
|
575
|
+
// next openHippoDb retries automatically.
|
|
576
|
+
if (!tableHasColumn(db, 'raw_archive', 'mirror_cleaned_at')) {
|
|
577
|
+
db.exec(`ALTER TABLE raw_archive ADD COLUMN mirror_cleaned_at TEXT`);
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
},
|
|
503
581
|
];
|
|
504
582
|
function tableHasColumn(db, tableName, columnName) {
|
|
505
583
|
if (!/^[a-z_]+$/i.test(tableName))
|
|
@@ -523,6 +601,15 @@ export function openHippoDb(hippoRoot) {
|
|
|
523
601
|
db.exec('PRAGMA wal_autocheckpoint = 100');
|
|
524
602
|
db.exec('PRAGMA foreign_keys = ON');
|
|
525
603
|
runMigrations(db);
|
|
604
|
+
// Path A backfill: delete any orphan markdown mirrors for already-archived
|
|
605
|
+
// raw_archive rows. Idempotent via per-row raw_archive.mirror_cleaned_at
|
|
606
|
+
// (v21). Wrapped in try/catch — a filesystem failure must not prevent DB open.
|
|
607
|
+
try {
|
|
608
|
+
cleanupArchivedMirrors(hippoRoot, db);
|
|
609
|
+
}
|
|
610
|
+
catch (cleanupErr) {
|
|
611
|
+
console.error('openHippoDb: cleanupArchivedMirrors failed (non-fatal):', cleanupErr);
|
|
612
|
+
}
|
|
526
613
|
return db;
|
|
527
614
|
}
|
|
528
615
|
catch (error) {
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -37,6 +37,13 @@ export interface McpContext {
|
|
|
37
37
|
hippoRoot: string;
|
|
38
38
|
tenantId: string;
|
|
39
39
|
actor: string;
|
|
40
|
+
/**
|
|
41
|
+
* Per-client key for state isolation under HTTP-MCP. For stdio: 'stdio-${pid}'
|
|
42
|
+
* (one process = one client). For HTTP-SSE / HTTP MCP: hash(bearer + remoteAddr)
|
|
43
|
+
* built by src/server.ts when constructing McpContext for the request.
|
|
44
|
+
* Optional for backwards compatibility; defaults to `${tenantId}:default`.
|
|
45
|
+
*/
|
|
46
|
+
clientKey?: string;
|
|
40
47
|
}
|
|
41
48
|
/**
|
|
42
49
|
* Transport-agnostic MCP dispatcher. Both the stdio loop (below) and the
|
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;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA0CH,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;AAoaD;;;;;;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
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import * as fs from 'fs';
|
|
11
11
|
import * as path from 'path';
|
|
12
|
-
import { createMemory,
|
|
12
|
+
import { createMemory, Layer, calculateStrength, } from '../memory.js';
|
|
13
13
|
import { hybridSearch, physicsSearch, markRetrieved } from '../search.js';
|
|
14
14
|
import { loadAllEntries, writeEntry, readEntry, loadActiveTaskSnapshot, listMemoryConflicts, resolveConflict } from '../store.js';
|
|
15
15
|
import { shareMemory, listPeers, getGlobalRoot } from '../shared.js';
|
|
@@ -19,6 +19,7 @@ import { fetchGitLog, extractLessons, deduplicateLesson, isGitRepo } from '../au
|
|
|
19
19
|
import { loadConfig } from '../config.js';
|
|
20
20
|
import { resolveConfidence } from '../memory.js';
|
|
21
21
|
import { resolveTenantId } from '../tenant.js';
|
|
22
|
+
import { recall as apiRecall, remember as apiRemember, outcome as apiOutcome } from '../api.js';
|
|
22
23
|
// ── Find hippo root ──
|
|
23
24
|
function findHippoRoot() {
|
|
24
25
|
// Walk up from cwd
|
|
@@ -174,7 +175,22 @@ const TOOLS = [
|
|
|
174
175
|
},
|
|
175
176
|
];
|
|
176
177
|
// ── Track last recalled IDs for outcome feedback ──
|
|
177
|
-
|
|
178
|
+
//
|
|
179
|
+
// Keyed per-client so two HTTP-MCP clients hitting the same tenant cannot
|
|
180
|
+
// poison each other's outcome feedback. The key is `ctx.clientKey` when the
|
|
181
|
+
// transport supplies one (HTTP-MCP via src/server.ts builds
|
|
182
|
+
// hash(bearer+remoteAddr)); stdio and any caller without a clientKey falls
|
|
183
|
+
// back to `'stdio-${pid}'` (one process = one client) or
|
|
184
|
+
// `${tenantId}:default` if a McpContext is constructed in tests without a
|
|
185
|
+
// pid-bound transport.
|
|
186
|
+
const lastRecalledIds = new Map();
|
|
187
|
+
function resolveClientKey(ctx) {
|
|
188
|
+
if (ctx?.clientKey)
|
|
189
|
+
return ctx.clientKey;
|
|
190
|
+
if (ctx?.tenantId)
|
|
191
|
+
return `stdio-${process.pid}:${ctx.tenantId}`;
|
|
192
|
+
return `stdio-${process.pid}:default`;
|
|
193
|
+
}
|
|
178
194
|
// ── Tool execution ──
|
|
179
195
|
async function executeTool(name, args, ctx) {
|
|
180
196
|
// When a transport hands us a context (HTTP path), trust it: the HTTP
|
|
@@ -194,7 +210,25 @@ async function executeTool(name, args, ctx) {
|
|
|
194
210
|
case 'hippo_recall': {
|
|
195
211
|
const query = String(args.query || '');
|
|
196
212
|
const budget = Number(args.budget) || config.defaultBudget;
|
|
197
|
-
|
|
213
|
+
// Route through api.ts so audit_log captures actor='mcp' uniformly with
|
|
214
|
+
// CLI/REST. api.ts.recall handles tenant-scoped BM25 candidate loading;
|
|
215
|
+
// we re-fetch full entries for ranking + the markRetrieved bookkeeping
|
|
216
|
+
// that the MCP path has always done.
|
|
217
|
+
const apiCtx = {
|
|
218
|
+
hippoRoot,
|
|
219
|
+
tenantId,
|
|
220
|
+
actor: 'mcp',
|
|
221
|
+
};
|
|
222
|
+
apiRecall(apiCtx, { query, limit: 50 });
|
|
223
|
+
// Existing physics/hybrid scorer continues to drive user-visible
|
|
224
|
+
// ordering and the strength bump on retrieval — unchanged shape for
|
|
225
|
+
// existing MCP HTTP clients. v0.39 Fix 5.6: apply the same default-deny
|
|
226
|
+
// rule as src/api.ts.recall — when the caller passes no scope, drop
|
|
227
|
+
// `slack:private:*` rows so an MCP client cannot exfiltrate
|
|
228
|
+
// private-channel content via a bare query. (loadAllEntries is a
|
|
229
|
+
// tenant-only loader; scope filtering lives at the call site.)
|
|
230
|
+
const allEntries = loadAllEntries(hippoRoot, tenantId);
|
|
231
|
+
const entries = allEntries.filter((e) => !(e.scope ?? '').startsWith('slack:private:'));
|
|
198
232
|
const usePhysics = config.physics?.enabled !== false;
|
|
199
233
|
const results = usePhysics
|
|
200
234
|
? await physicsSearch(query, entries, { budget, hippoRoot, physicsConfig: config.physics })
|
|
@@ -203,7 +237,7 @@ async function executeTool(name, args, ctx) {
|
|
|
203
237
|
const retrieved = markRetrieved(results.map((r) => r.entry));
|
|
204
238
|
for (const entry of retrieved)
|
|
205
239
|
writeEntry(hippoRoot, entry);
|
|
206
|
-
lastRecalledIds
|
|
240
|
+
lastRecalledIds.set(resolveClientKey(ctx), retrieved.map((e) => e.id));
|
|
207
241
|
return formatMemories(results, hippoRoot);
|
|
208
242
|
}
|
|
209
243
|
case 'hippo_remember': {
|
|
@@ -215,19 +249,20 @@ async function executeTool(name, args, ctx) {
|
|
|
215
249
|
tags.push('error');
|
|
216
250
|
if (args.tag)
|
|
217
251
|
tags.push(String(args.tag));
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
source: 'mcp',
|
|
225
|
-
confidence: 'verified',
|
|
226
|
-
baseHalfLifeDays: config.defaultHalfLifeDays,
|
|
227
|
-
schema_fit: schemaFit,
|
|
252
|
+
// Route through api.ts so audit_log captures actor='mcp' uniformly with
|
|
253
|
+
// CLI/REST. api.ts.remember writes the memory + audit row in one
|
|
254
|
+
// transaction-friendly path; we re-read the entry to surface the
|
|
255
|
+
// half-life used in the MCP human-readable response.
|
|
256
|
+
const apiCtx = {
|
|
257
|
+
hippoRoot,
|
|
228
258
|
tenantId,
|
|
259
|
+
actor: 'mcp',
|
|
260
|
+
};
|
|
261
|
+
const result = apiRemember(apiCtx, {
|
|
262
|
+
content: text,
|
|
263
|
+
tags,
|
|
229
264
|
});
|
|
230
|
-
|
|
265
|
+
const entry = readEntry(hippoRoot, result.id, tenantId);
|
|
231
266
|
// Auto-sleep check
|
|
232
267
|
if (config.autoSleep.enabled) {
|
|
233
268
|
const allEntries = loadAllEntries(hippoRoot, tenantId);
|
|
@@ -239,22 +274,26 @@ async function executeTool(name, args, ctx) {
|
|
|
239
274
|
consolidate(hippoRoot);
|
|
240
275
|
}
|
|
241
276
|
}
|
|
242
|
-
|
|
277
|
+
const halfLife = entry?.half_life_days ?? config.defaultHalfLifeDays;
|
|
278
|
+
const tagStr = entry?.tags.join(', ') || tags.join(', ') || 'none';
|
|
279
|
+
return `Remembered [${result.id}] (half-life: ${halfLife}d, tags: ${tagStr})`;
|
|
243
280
|
}
|
|
244
281
|
case 'hippo_outcome': {
|
|
245
282
|
const good = Boolean(args.good);
|
|
246
|
-
|
|
283
|
+
const clientKey = resolveClientKey(ctx);
|
|
284
|
+
const ids = lastRecalledIds.get(clientKey) ?? [];
|
|
285
|
+
if (ids.length === 0)
|
|
247
286
|
return 'No recent recalls to apply outcome to.';
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
return `Applied ${good ? 'positive' : 'negative'} outcome to ${
|
|
287
|
+
// Route through src/api.ts so audit_log captures actor='mcp' and
|
|
288
|
+
// tenant scoping is enforced uniformly (same surface as recall/remember).
|
|
289
|
+
// outcome() also handles cross-tenant id skip silently.
|
|
290
|
+
const apiCtx = {
|
|
291
|
+
hippoRoot,
|
|
292
|
+
tenantId,
|
|
293
|
+
actor: 'mcp',
|
|
294
|
+
};
|
|
295
|
+
const { applied } = apiOutcome(apiCtx, ids, good);
|
|
296
|
+
return `Applied ${good ? 'positive' : 'negative'} outcome to ${applied} memories`;
|
|
258
297
|
}
|
|
259
298
|
case 'hippo_context': {
|
|
260
299
|
const budget = Number(args.budget) || config.defaultContextBudget;
|
|
@@ -277,7 +316,7 @@ async function executeTool(name, args, ctx) {
|
|
|
277
316
|
const retrieved = markRetrieved(results.map((r) => r.entry));
|
|
278
317
|
for (const entry of retrieved)
|
|
279
318
|
writeEntry(hippoRoot, entry);
|
|
280
|
-
lastRecalledIds
|
|
319
|
+
lastRecalledIds.set(resolveClientKey(ctx), retrieved.map((e) => e.id));
|
|
281
320
|
const snapshot = loadActiveTaskSnapshot(hippoRoot);
|
|
282
321
|
const snapshotText = snapshot
|
|
283
322
|
? [
|
|
@@ -371,7 +410,11 @@ async function executeTool(name, args, ctx) {
|
|
|
371
410
|
if (!shareId)
|
|
372
411
|
return 'Required: id (memory ID to share).';
|
|
373
412
|
const force = Boolean(args.force);
|
|
374
|
-
|
|
413
|
+
// Pass tenantId so shareMemory's readEntry filters by tenant. Without
|
|
414
|
+
// this, a Bearer for tenant A could call hippo_share with tenant B's
|
|
415
|
+
// id and copy the row to the global store. The 'Memory not found'
|
|
416
|
+
// error matches the cross-tenant deny shape elsewhere in the code.
|
|
417
|
+
const shared = shareMemory(hippoRoot, shareId, { force, tenantId });
|
|
375
418
|
if (!shared)
|
|
376
419
|
return 'Transfer score too low. Use force=true to override.';
|
|
377
420
|
return `Shared [${shared.id}] to global store. Source: ${shared.source}`;
|
|
@@ -404,7 +447,7 @@ export async function handleMcpRequest(req, ctx) {
|
|
|
404
447
|
result: {
|
|
405
448
|
protocolVersion: '2024-11-05',
|
|
406
449
|
capabilities: { tools: {} },
|
|
407
|
-
serverInfo: { name: 'hippo-memory', version: '0.
|
|
450
|
+
serverInfo: { name: 'hippo-memory', version: '0.39.0' },
|
|
408
451
|
},
|
|
409
452
|
};
|
|
410
453
|
case 'notifications/initialized':
|