@hilbras/remembra 3.6.0 → 3.8.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/CHANGELOG.md +121 -0
- package/README.md +9 -1
- package/dist/backend.d.ts +17 -0
- package/dist/crypto.d.ts +10 -0
- package/dist/crypto.js +77 -0
- package/dist/crypto.js.map +1 -0
- package/dist/diff.d.ts +15 -0
- package/dist/diff.js +135 -0
- package/dist/diff.js.map +1 -0
- package/dist/errors.d.ts +3 -8
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -1
- package/dist/http.d.ts +5 -1
- package/dist/http.js +84 -4
- package/dist/http.js.map +1 -1
- package/dist/index.js +64 -4
- package/dist/index.js.map +1 -1
- package/dist/llm.d.ts +2 -0
- package/dist/llm.js +3 -0
- package/dist/llm.js.map +1 -1
- package/dist/log.d.ts +19 -0
- package/dist/log.js +28 -0
- package/dist/log.js.map +1 -0
- package/dist/metrics.d.ts +22 -0
- package/dist/metrics.js +121 -0
- package/dist/metrics.js.map +1 -0
- package/dist/redact.d.ts +33 -0
- package/dist/redact.js +104 -0
- package/dist/redact.js.map +1 -0
- package/dist/service.d.ts +75 -0
- package/dist/service.js +230 -10
- package/dist/service.js.map +1 -1
- package/dist/store.d.ts +17 -1
- package/dist/store.js +134 -6
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +74 -0
- package/dist/types.js +30 -0
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +6 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- package/docs/architecture.md +52 -3
- package/docs/chatgpt.md +25 -0
- package/docs/clients.md +4 -0
- package/docs/lifecycle.md +10 -3
- package/docs/memory-model.md +42 -3
- package/docs/observability.md +125 -0
- package/docs/security.md +63 -3
- package/docs/tools.md +48 -1
- package/package.json +1 -1
package/dist/http.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import http from "node:http";
|
|
2
2
|
import { timingSafeEqual } from "node:crypto";
|
|
3
3
|
import { DigestInput } from "./types.js";
|
|
4
|
-
import { isRemembraError, statusFor } from "./errors.js";
|
|
4
|
+
import { isRemembraError, statusFor, errorLabel } from "./errors.js";
|
|
5
|
+
import { logEvent } from "./log.js";
|
|
6
|
+
import { metrics } from "./metrics.js";
|
|
5
7
|
const DEFAULT_MAX_BODY = 10 * 1024 * 1024; // transcripts can be large — 10 MiB
|
|
6
8
|
/**
|
|
7
9
|
* Listen policy (P1 audit: default-deny):
|
|
@@ -25,12 +27,16 @@ export function resolveListen(host, hasKey) {
|
|
|
25
27
|
* Minimal HTTP API over the same handlers the MCP tools use.
|
|
26
28
|
*
|
|
27
29
|
* Routes:
|
|
28
|
-
* GET /health → liveness (no auth)
|
|
30
|
+
* GET /health → liveness + readiness (no auth): 200 ok / 503 unready
|
|
31
|
+
* GET /metrics → Prometheus text format (auth when keyed)
|
|
29
32
|
* POST /memories → store a memory
|
|
30
33
|
* GET /memories/search → ?query=&scope=&type=&limit=
|
|
31
34
|
* GET /memories → ?scope=&type=&includeArchived=&offset=&limit=
|
|
32
35
|
* POST /memories/digest → LLM extraction
|
|
33
36
|
* POST /maintain → decay sweep + vector backfill
|
|
37
|
+
* GET /memories/:id → one memory + related + backlinks (Phase 8)
|
|
38
|
+
* POST /memories/:id/relate → link/unlink memories (Phase 8)
|
|
39
|
+
* GET /memories/:id/history→ version history + line diffs (Phase 8)
|
|
34
40
|
* DELETE /memories/:id → forget
|
|
35
41
|
*/
|
|
36
42
|
export function createHttpServer(service, opts = {}) {
|
|
@@ -42,12 +48,35 @@ export function createHttpServer(service, opts = {}) {
|
|
|
42
48
|
try {
|
|
43
49
|
const url = new URL(req.url ?? "/", "http://localhost");
|
|
44
50
|
const path = url.pathname.replace(/\/+$/, "") || "/";
|
|
51
|
+
// Request instrumentation (audit Phase 7) — low-cardinality route label,
|
|
52
|
+
// counted on finish so the real status code is visible.
|
|
53
|
+
const route = routeLabel(path);
|
|
54
|
+
const startedAt = performance.now();
|
|
55
|
+
res.on("finish", () => {
|
|
56
|
+
metrics.inc("remembra_http_requests_total", {
|
|
57
|
+
route,
|
|
58
|
+
method: req.method ?? "OTHER",
|
|
59
|
+
status: res.statusCode,
|
|
60
|
+
});
|
|
61
|
+
metrics.observe("remembra_http_request_duration_seconds", (performance.now() - startedAt) / 1000, {
|
|
62
|
+
route,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
// Liveness + readiness (audit Phase 7): 200 when storage is readable,
|
|
66
|
+
// 503 with the failing check when it is not.
|
|
45
67
|
if (path === "/health") {
|
|
46
|
-
|
|
68
|
+
const health = await service.health();
|
|
69
|
+
return send(res, health.status === "ok" ? 200 : 503, health);
|
|
47
70
|
}
|
|
48
71
|
if (opts.apiKey && !authorized(req, opts.apiKey)) {
|
|
49
72
|
return send(res, 401, { error: "Unauthorized: missing or invalid API key" });
|
|
50
73
|
}
|
|
74
|
+
// GET /metrics — Prometheus text format. After the auth check on
|
|
75
|
+
// purpose: keyed (incl. public) deployments must not leak counters.
|
|
76
|
+
if (req.method === "GET" && path === "/metrics") {
|
|
77
|
+
res.writeHead(200, { "content-type": "text/plain; version=0.0.4; charset=utf-8" });
|
|
78
|
+
return res.end(metrics.render());
|
|
79
|
+
}
|
|
51
80
|
// POST /maintain — decay sweep + vector backfill
|
|
52
81
|
if (req.method === "POST" && path === "/maintain") {
|
|
53
82
|
const result = await service.maintain();
|
|
@@ -94,6 +123,26 @@ export function createHttpServer(service, opts = {}) {
|
|
|
94
123
|
const result = await service.forget(decodeURIComponent(del[1]));
|
|
95
124
|
return send(res, result.ok ? 200 : 404, result);
|
|
96
125
|
}
|
|
126
|
+
// Graph sub-routes (audit Phase 8): POST relate, GET history.
|
|
127
|
+
const sub = path.match(/^\/memories\/([^/]+)\/(relate|history)$/);
|
|
128
|
+
if (sub && req.method === "POST" && sub[2] === "relate") {
|
|
129
|
+
const body = (await readBody(req, maxBody));
|
|
130
|
+
const result = await service.relate({ ...body, id: decodeURIComponent(sub[1]) }); // path id wins
|
|
131
|
+
return send(res, 200, result);
|
|
132
|
+
}
|
|
133
|
+
if (sub && req.method === "GET" && sub[2] === "history") {
|
|
134
|
+
const result = await service.history({
|
|
135
|
+
id: decodeURIComponent(sub[1]),
|
|
136
|
+
limit: intParam(url.searchParams.get("limit"), 1) ?? undefined,
|
|
137
|
+
});
|
|
138
|
+
return send(res, 200, result);
|
|
139
|
+
}
|
|
140
|
+
// GET /memories/:id — memory with related links + backlinks
|
|
141
|
+
const single = path.match(/^\/memories\/([^/]+)$/);
|
|
142
|
+
if (req.method === "GET" && single) {
|
|
143
|
+
const result = await service.get(decodeURIComponent(single[1]));
|
|
144
|
+
return send(res, 200, result);
|
|
145
|
+
}
|
|
97
146
|
send(res, 404, { error: `No route: ${req.method} ${path}` });
|
|
98
147
|
}
|
|
99
148
|
catch (err) {
|
|
@@ -106,6 +155,10 @@ export function createHttpServer(service, opts = {}) {
|
|
|
106
155
|
: name === "PayloadTooLarge"
|
|
107
156
|
? 413
|
|
108
157
|
: 500;
|
|
158
|
+
metrics.inc("remembra_errors_total", {
|
|
159
|
+
code: name === "PayloadTooLarge" ? "PAYLOAD_TOO_LARGE" : errorLabel(err),
|
|
160
|
+
transport: "http",
|
|
161
|
+
});
|
|
109
162
|
send(res, status, {
|
|
110
163
|
error: err instanceof Error ? err.message : String(err),
|
|
111
164
|
...(isRemembraError(err) ? { code: err.code } : {}),
|
|
@@ -114,12 +167,39 @@ export function createHttpServer(service, opts = {}) {
|
|
|
114
167
|
});
|
|
115
168
|
const port = opts.port ?? Number(process.env.REMEMBRA_PORT ?? 8787);
|
|
116
169
|
const address = listenTarget.host;
|
|
170
|
+
// Readiness-adjacent gauge: bound to this server's service (re-registered
|
|
171
|
+
// idempotently if several servers exist in one process, e.g. tests).
|
|
172
|
+
metrics.gauge("remembra_cache_entries", "Parse-cache entries currently held", () => {
|
|
173
|
+
const s = service.storageStats();
|
|
174
|
+
return s ? [{ value: s.size }] : [];
|
|
175
|
+
});
|
|
117
176
|
server.listen(port, address, () => {
|
|
118
177
|
const where = address ?? "0.0.0.0";
|
|
119
|
-
|
|
178
|
+
logEvent("info", "http_listening", { port, host: where, auth: Boolean(opts.apiKey) }, `Remembra HTTP API listening on ${where}:${port}${opts.apiKey ? " (auth required)" : " (no auth — loopback only)"}`);
|
|
120
179
|
});
|
|
121
180
|
return server;
|
|
122
181
|
}
|
|
182
|
+
/** Low-cardinality route label for metrics (never the raw path). */
|
|
183
|
+
function routeLabel(p) {
|
|
184
|
+
switch (p) {
|
|
185
|
+
case "/health":
|
|
186
|
+
return "health";
|
|
187
|
+
case "/metrics":
|
|
188
|
+
return "metrics";
|
|
189
|
+
case "/memories":
|
|
190
|
+
return "memories";
|
|
191
|
+
case "/memories/search":
|
|
192
|
+
return "search";
|
|
193
|
+
case "/memories/digest":
|
|
194
|
+
return "digest";
|
|
195
|
+
case "/maintain":
|
|
196
|
+
return "maintain";
|
|
197
|
+
default:
|
|
198
|
+
if (/^\/memories\/[^/]+\/(relate|history)$/.test(p))
|
|
199
|
+
return "memory_sub";
|
|
200
|
+
return /^\/memories\/[^/]+$/.test(p) ? "memory_item" : "other";
|
|
201
|
+
}
|
|
202
|
+
}
|
|
123
203
|
/** Constant-time API key comparison (P1 audit: timing side-channel). */
|
|
124
204
|
function authorized(req, key) {
|
|
125
205
|
const header = req.headers["x-api-key"];
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAYzD,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAwB,EACxB,MAAe;IAEf,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC;QACnF,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO;gBACL,KAAK,EAAE,yBAAyB,IAAI,6DAA6D;aAClG,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB,EAAE,OAAoB,EAAE;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjG,IAAI,YAAY,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;YAErD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;YAC/E,CAAC;YAED,iDAAiD;YACjD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,+EAA+E;YAC/E,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,iBAAiB;YACjB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,uBAAuB;YACvB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;oBAClC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS;oBAC9E,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;oBACjD,IAAI,EAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAW,IAAI,SAAS;oBAC1D,KAAK;iBACN,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;YAED,gEAAgE;YAChE,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAChC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;oBACjD,IAAI,EAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAW,IAAI,SAAS;oBAC1D,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,MAAM;oBACnE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACnD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;iBAClD,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACpD,CAAC;YAED,uBAAuB;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAChD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;YAC7C,wEAAwE;YACxE,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;gBAChB,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,iBAAiB;oBACjD,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,KAAK,iBAAiB;wBAC1B,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,GAAG,CAAC;YACZ,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,OAAO,IAAI,SAAS,CAAC;QACnC,OAAO,CAAC,KAAK,CACX,kCAAkC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,4BAA4B,EAAE,CACpH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wEAAwE;AACxE,SAAS,UAAU,CAAC,GAAyB,EAAE,GAAW;IACxD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IACvC,MAAM,QAAQ,GACZ,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,uEAAuE;QACvE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,IAAI,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAa;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;QACpB,cAAc,EAAE,iCAAiC;QACjD,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KAC1C,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC,kFAAkF;AAClF,SAAS,QAAQ,CAAC,GAAkB,EAAE,GAAW;IAC/C,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,GAAwB,EACxB,MAAc,EACd,IAA6B,EAC7B,OAA+B;IAE/B,MAAM,KAAK,GAAI,IAAI,CAAC,OAAO,CAAmE,IAAI,EAAE,CAAC;IACrG,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;IACxD,KAAK,MAAM,EAAE,IAAI,KAAK;QAAE,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAClG,IAAI,GAAG,GAAG,gBAAgB;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3D,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,IAAI,GACR,GAAG;QACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,IAAI,CAAC,EAAE,CAAC;QACX,GAAG,CAAC;IACN,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC,sBAAsB;IACpG,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAyB,EAAE,QAAgB;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iCAAiC,QAAQ,SAAS,CAAC,CAAC;YAC1E,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAC3B,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;YAClB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iCAAiC,QAAQ,SAAS,CAAC,CAAC;gBAC1E,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG;gBAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACzC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC;gBAC3B,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { promises as fs } from "node:fs";
|
|
3
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { VERSION } from "./version.js";
|
|
5
|
+
import { logEvent } from "./log.js";
|
|
4
6
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
7
|
import { MemoryStore } from "./store.js";
|
|
6
8
|
import { MemoryService } from "./service.js";
|
|
7
9
|
import { createHttpServer } from "./http.js";
|
|
8
|
-
import { DigestInput, storeInputShape, digestInputShape, searchInputShape, listInputShape, forgetInputShape, } from "./types.js";
|
|
10
|
+
import { DigestInput, storeInputShape, digestInputShape, searchInputShape, listInputShape, forgetInputShape, getInputShape, relateInputShape, historyInputShape, } from "./types.js";
|
|
9
11
|
import { toolFail } from "./errors.js";
|
|
10
12
|
const store = new MemoryStore(MemoryStore.defaultRoot());
|
|
11
13
|
const service = new MemoryService(store);
|
|
@@ -58,6 +60,21 @@ else if (maintainFlag) {
|
|
|
58
60
|
console.log(JSON.stringify(result, null, 2));
|
|
59
61
|
process.exit(0);
|
|
60
62
|
}
|
|
63
|
+
else if (argv[0] === "encrypt" || argv[0] === "decrypt") {
|
|
64
|
+
// CLI encryption migration (audit Phase 8): rewrite the tree in place
|
|
65
|
+
// under the storage lock. Requires REMEMBRA_ENCRYPT_KEY either way.
|
|
66
|
+
// remembra encrypt → plain files become AES-256-GCM ciphertext
|
|
67
|
+
// remembra decrypt → ciphertext becomes plain markdown again
|
|
68
|
+
try {
|
|
69
|
+
const result = await store.migrateEncryption(argv[0]);
|
|
70
|
+
console.log(`${argv[0]}: ${result.converted} converted, ${result.skipped} already in target state`);
|
|
71
|
+
process.exit(0);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
console.error(`${argv[0]} failed: ${err instanceof Error ? err.message : err}`);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
61
78
|
else if (httpFlag) {
|
|
62
79
|
// HTTP mode: long-running API for non-MCP clients (ChatGPT, scripts, ...).
|
|
63
80
|
const httpServer = createHttpServer(service, {
|
|
@@ -66,7 +83,7 @@ else if (httpFlag) {
|
|
|
66
83
|
});
|
|
67
84
|
// Graceful shutdown: stop accepting, drain in-flight requests, then exit.
|
|
68
85
|
const shutdown = (sig) => {
|
|
69
|
-
|
|
86
|
+
logEvent("info", "shutdown", { signal: sig }, `Remembra: received ${sig}, shutting down`);
|
|
70
87
|
httpServer.close(() => process.exit(0));
|
|
71
88
|
setTimeout(() => process.exit(0), 3000).unref();
|
|
72
89
|
};
|
|
@@ -78,7 +95,7 @@ else {
|
|
|
78
95
|
await startMcp();
|
|
79
96
|
}
|
|
80
97
|
async function startMcp() {
|
|
81
|
-
const server = new McpServer({ name: "remembra", version:
|
|
98
|
+
const server = new McpServer({ name: "remembra", version: VERSION });
|
|
82
99
|
server.registerTool("memory_store", {
|
|
83
100
|
title: "Store a memory",
|
|
84
101
|
description: "Persist a fact, decision, role or history entry so it survives context window resets. " +
|
|
@@ -175,10 +192,53 @@ async function startMcp() {
|
|
|
175
192
|
return toolFail(err);
|
|
176
193
|
}
|
|
177
194
|
});
|
|
195
|
+
server.registerTool("memory_get", {
|
|
196
|
+
title: "Get a memory",
|
|
197
|
+
description: "Fetch one memory by id with its related links and backlinks (memories that point at it). " +
|
|
198
|
+
"Use after memory_search when you need the full statement, not the snippet.",
|
|
199
|
+
inputSchema: getInputShape,
|
|
200
|
+
}, async ({ id }) => {
|
|
201
|
+
try {
|
|
202
|
+
const result = await service.get(id);
|
|
203
|
+
return { content: [{ type: "text", text: result.text }] };
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
return toolFail(err);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
server.registerTool("memory_relate", {
|
|
210
|
+
title: "Link memories",
|
|
211
|
+
description: "Create or remove directed links between memories (the relationship graph): " +
|
|
212
|
+
"e.g. tie a decision to the facts it depends on, or a history entry to the decision it records. " +
|
|
213
|
+
"Targets must exist; backlinks are visible via memory_get.",
|
|
214
|
+
inputSchema: relateInputShape,
|
|
215
|
+
}, async (args) => {
|
|
216
|
+
try {
|
|
217
|
+
const result = await service.relate(args);
|
|
218
|
+
return { content: [{ type: "text", text: result.text }] };
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
return toolFail(err);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
server.registerTool("memory_history", {
|
|
225
|
+
title: "Show memory history",
|
|
226
|
+
description: "Version history of one memory with unified line diffs — every content-changing " +
|
|
227
|
+
"update (e.g. a contradiction merge) snapshots the previous version. Newest first.",
|
|
228
|
+
inputSchema: historyInputShape,
|
|
229
|
+
}, async (args) => {
|
|
230
|
+
try {
|
|
231
|
+
const result = await service.history(args);
|
|
232
|
+
return { content: [{ type: "text", text: result.text }] };
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
return toolFail(err);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
178
238
|
const transport = new StdioServerTransport();
|
|
179
239
|
await server.connect(transport);
|
|
180
240
|
// Log hygiene (audit #7): filesystem paths only under REMEMBRA_DEBUG.
|
|
181
241
|
const rootNote = process.env.REMEMBRA_DEBUG ? ` (root: ${MemoryStore.defaultRoot()})` : "";
|
|
182
|
-
|
|
242
|
+
logEvent("info", "mcp_listening", { ...(rootNote ? { root: MemoryStore.defaultRoot() } : {}) }, `Remembra MCP server running${rootNote}`);
|
|
183
243
|
}
|
|
184
244
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/llm.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface ExtractedMemory {
|
|
|
14
14
|
importance: number;
|
|
15
15
|
/** Optional scope override; falls back to the digest call's scope. */
|
|
16
16
|
scope?: string;
|
|
17
|
+
/** Optional 0..1 confidence from the extraction LLM (service default: 0.7). */
|
|
18
|
+
confidence?: number;
|
|
17
19
|
}
|
|
18
20
|
export declare function resolveLlmProvider(): LlmProvider;
|
|
19
21
|
export declare function extractMemories(transcript: string, provider?: LlmProvider): Promise<ExtractedMemory[]>;
|
package/dist/llm.js
CHANGED
|
@@ -22,6 +22,7 @@ Rules:
|
|
|
22
22
|
- Write each content as a self-contained statement (no "we discussed" or "earlier").
|
|
23
23
|
- Skip small talk, pleasantries, and anything already obvious from the transcript's task.
|
|
24
24
|
- importance: 5 = critical, 1 = trivia. Default 3.
|
|
25
|
+
- confidence (optional): 0..1 how sure you are the statement is accurate as written.
|
|
25
26
|
- If nothing is worth keeping, return [].
|
|
26
27
|
- Output must be valid JSON parseable directly.`;
|
|
27
28
|
export async function extractMemories(transcript, provider = resolveLlmProvider()) {
|
|
@@ -155,12 +156,14 @@ export function parseExtraction(raw) {
|
|
|
155
156
|
const tags = item.tags;
|
|
156
157
|
const importance = Number(item.importance);
|
|
157
158
|
const scope = item.scope;
|
|
159
|
+
const confidence = Number(item.confidence);
|
|
158
160
|
out.push({
|
|
159
161
|
type,
|
|
160
162
|
content: content.trim(),
|
|
161
163
|
tags: Array.isArray(tags) ? tags.filter((t) => typeof t === "string") : [],
|
|
162
164
|
importance: Number.isFinite(importance) ? Math.min(5, Math.max(1, Math.round(importance))) : 3,
|
|
163
165
|
scope: typeof scope === "string" && scope.trim() ? scope.trim() : undefined,
|
|
166
|
+
confidence: Number.isFinite(confidence) ? Math.min(1, Math.max(0, confidence)) : undefined,
|
|
164
167
|
});
|
|
165
168
|
}
|
|
166
169
|
return out;
|
package/dist/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logging (audit Phase 7).
|
|
3
|
+
*
|
|
4
|
+
* One call site for every server-side event. Format:
|
|
5
|
+
* - `json` — one object per line on **stderr**:
|
|
6
|
+
* {"ts","level","event","msg",...fields}
|
|
7
|
+
* - `text` — the human message verbatim (legacy-compatible; tests and
|
|
8
|
+
* humans grepping the console see exactly what they saw before).
|
|
9
|
+
*
|
|
10
|
+
* Selection: `REMEMBRA_LOG=json|text` wins; unset → auto — JSON when stderr
|
|
11
|
+
* is piped/redirected (containers, CI, log shippers), text on a TTY.
|
|
12
|
+
*
|
|
13
|
+
* stdout stays reserved: MCP stdio framing and CLI output live there.
|
|
14
|
+
* Query text and storage paths are only included under REMEMBRA_DEBUG
|
|
15
|
+
* (log-hygiene rule from Phase 2).
|
|
16
|
+
*/
|
|
17
|
+
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
18
|
+
export declare function logFormat(): "json" | "text";
|
|
19
|
+
export declare function logEvent(level: LogLevel, event: string, fields?: Record<string, unknown>, msg?: string): void;
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function logFormat() {
|
|
2
|
+
const pref = process.env.REMEMBRA_LOG;
|
|
3
|
+
if (pref === "json" || pref === "text")
|
|
4
|
+
return pref;
|
|
5
|
+
return process.stderr.isTTY ? "text" : "json";
|
|
6
|
+
}
|
|
7
|
+
export function logEvent(level, event, fields = {}, msg) {
|
|
8
|
+
if (logFormat() === "json") {
|
|
9
|
+
console.error(JSON.stringify({
|
|
10
|
+
ts: new Date().toISOString(),
|
|
11
|
+
level,
|
|
12
|
+
event,
|
|
13
|
+
...(msg !== undefined ? { msg } : {}),
|
|
14
|
+
...fields, // undefined values are dropped by JSON.stringify
|
|
15
|
+
}));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (msg !== undefined) {
|
|
19
|
+
console.error(msg);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const extra = Object.entries(fields)
|
|
23
|
+
.filter(([, v]) => v !== undefined && v !== "")
|
|
24
|
+
.map(([k, v]) => `${k}=${typeof v === "string" ? v : JSON.stringify(v)}`)
|
|
25
|
+
.join(" ");
|
|
26
|
+
console.error(`Remembra: ${event}${extra ? " " + extra : ""}`);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,SAAS;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACtC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAe,EACf,KAAa,EACb,SAAkC,EAAE,EACpC,GAAY;IAEZ,IAAI,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CACX,IAAI,CAAC,SAAS,CAAC;YACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,KAAK;YACL,KAAK;YACL,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,MAAM,EAAE,iDAAiD;SAC7D,CAAC,CACH,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type Labels = Record<string, string | number>;
|
|
2
|
+
export declare class MetricsRegistry {
|
|
3
|
+
private meta;
|
|
4
|
+
private counters;
|
|
5
|
+
private hists;
|
|
6
|
+
private gauges;
|
|
7
|
+
counter(name: string, help: string): void;
|
|
8
|
+
histogram(name: string, help: string, buckets?: number[]): void;
|
|
9
|
+
gauge(name: string, help: string, collect: () => {
|
|
10
|
+
labels?: Labels;
|
|
11
|
+
value: number;
|
|
12
|
+
}[]): void;
|
|
13
|
+
inc(name: string, labels?: Labels, by?: number): void;
|
|
14
|
+
observe(name: string, value: number, labels?: Labels): void;
|
|
15
|
+
/** Current counter value (tests + ad-hoc inspection). */
|
|
16
|
+
get(name: string, labels?: Labels): number | undefined;
|
|
17
|
+
reset(): void;
|
|
18
|
+
render(): string;
|
|
19
|
+
}
|
|
20
|
+
/** Process-wide registry — instrumented by store/service/http/errors. */
|
|
21
|
+
export declare const metrics: MetricsRegistry;
|
|
22
|
+
export {};
|
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zero-dependency metrics registry (audit Phase 7) — Prometheus text
|
|
3
|
+
* exposition format 0.0.4, rendered by the authenticated `GET /metrics`
|
|
4
|
+
* route. Alert rules over these series live in docs/observability.md.
|
|
5
|
+
*/
|
|
6
|
+
import { VERSION } from "./version.js";
|
|
7
|
+
const DEFAULT_BUCKETS = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10];
|
|
8
|
+
function labelKey(labels) {
|
|
9
|
+
if (!labels)
|
|
10
|
+
return "";
|
|
11
|
+
const keys = Object.keys(labels).sort();
|
|
12
|
+
if (keys.length === 0)
|
|
13
|
+
return "";
|
|
14
|
+
return `{${keys.map((k) => `${k}="${String(labels[k]).replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`).join(",")}}`;
|
|
15
|
+
}
|
|
16
|
+
export class MetricsRegistry {
|
|
17
|
+
meta = new Map();
|
|
18
|
+
counters = new Map();
|
|
19
|
+
hists = new Map();
|
|
20
|
+
gauges = new Map();
|
|
21
|
+
counter(name, help) {
|
|
22
|
+
if (!this.meta.has(name))
|
|
23
|
+
this.meta.set(name, { type: "counter", help });
|
|
24
|
+
}
|
|
25
|
+
histogram(name, help, buckets = DEFAULT_BUCKETS) {
|
|
26
|
+
if (!this.meta.has(name))
|
|
27
|
+
this.meta.set(name, { type: "histogram", help, buckets: [...buckets] });
|
|
28
|
+
}
|
|
29
|
+
gauge(name, help, collect) {
|
|
30
|
+
this.meta.set(name, { type: "gauge", help });
|
|
31
|
+
this.gauges.set(name, { help, collect });
|
|
32
|
+
}
|
|
33
|
+
inc(name, labels, by = 1) {
|
|
34
|
+
this.counter(name, name.replace(/_/g, " "));
|
|
35
|
+
const series = this.counters.get(name) ?? new Map();
|
|
36
|
+
const k = labelKey(labels);
|
|
37
|
+
series.set(k, (series.get(k) ?? 0) + by);
|
|
38
|
+
this.counters.set(name, series);
|
|
39
|
+
}
|
|
40
|
+
observe(name, value, labels) {
|
|
41
|
+
const m = this.meta.get(name);
|
|
42
|
+
if (!m)
|
|
43
|
+
this.histogram(name, name.replace(/_/g, " "));
|
|
44
|
+
const buckets = this.meta.get(name).buckets ?? DEFAULT_BUCKETS;
|
|
45
|
+
const series = this.hists.get(name) ?? new Map();
|
|
46
|
+
const k = labelKey(labels);
|
|
47
|
+
let d = series.get(k);
|
|
48
|
+
if (!d) {
|
|
49
|
+
d = { counts: new Array(buckets.length).fill(0), sum: 0, count: 0 };
|
|
50
|
+
series.set(k, d);
|
|
51
|
+
}
|
|
52
|
+
for (let i = 0; i < buckets.length; i++)
|
|
53
|
+
if (value <= buckets[i])
|
|
54
|
+
d.counts[i]++;
|
|
55
|
+
d.sum += value;
|
|
56
|
+
d.count++;
|
|
57
|
+
this.hists.set(name, series);
|
|
58
|
+
}
|
|
59
|
+
/** Current counter value (tests + ad-hoc inspection). */
|
|
60
|
+
get(name, labels) {
|
|
61
|
+
return this.counters.get(name)?.get(labelKey(labels));
|
|
62
|
+
}
|
|
63
|
+
reset() {
|
|
64
|
+
this.counters.clear();
|
|
65
|
+
this.hists.clear();
|
|
66
|
+
// meta/gauges are structural — keep them registered.
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
const out = [];
|
|
70
|
+
for (const [name, m] of this.meta) {
|
|
71
|
+
out.push(`# HELP ${name} ${m.help}`, `# TYPE ${name} ${m.type}`);
|
|
72
|
+
if (m.type === "counter") {
|
|
73
|
+
for (const [k, v] of this.counters.get(name) ?? [])
|
|
74
|
+
out.push(`${name}${k} ${v}`);
|
|
75
|
+
}
|
|
76
|
+
else if (m.type === "histogram") {
|
|
77
|
+
const buckets = m.buckets ?? DEFAULT_BUCKETS;
|
|
78
|
+
for (const [k, d] of this.hists.get(name) ?? []) {
|
|
79
|
+
for (let i = 0; i < buckets.length; i++) {
|
|
80
|
+
out.push(`${name}_bucket${withLe(k, buckets[i])} ${d.counts[i]}`);
|
|
81
|
+
}
|
|
82
|
+
out.push(`${name}_bucket${withLe(k, "+Inf")} ${d.count}`);
|
|
83
|
+
out.push(`${name}_sum${k} ${d.sum}`);
|
|
84
|
+
out.push(`${name}_count${k} ${d.count}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
for (const { labels, value } of this.gauges.get(name)?.collect() ?? []) {
|
|
89
|
+
out.push(`${name}${labelKey(labels)} ${value}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return out.join("\n") + "\n";
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** Histogram bucket labels must merge with the series' own labels. */
|
|
97
|
+
function withLe(key, le) {
|
|
98
|
+
const leLabel = `le="${le}"`;
|
|
99
|
+
if (key === "")
|
|
100
|
+
return `{${leLabel}}`;
|
|
101
|
+
return `{${leLabel},${key.slice(1)}`; // key is `{a="b"}` → le first, comma, rest
|
|
102
|
+
}
|
|
103
|
+
/** Process-wide registry — instrumented by store/service/http/errors. */
|
|
104
|
+
export const metrics = new MetricsRegistry();
|
|
105
|
+
// --- pre-declared series (stable names for dashboards and alert rules) ---
|
|
106
|
+
metrics.counter("remembra_http_requests_total", "HTTP requests by route, method and status");
|
|
107
|
+
metrics.histogram("remembra_http_request_duration_seconds", "HTTP request duration by route");
|
|
108
|
+
metrics.counter("remembra_errors_total", "Classified errors by code and transport (http|mcp)");
|
|
109
|
+
metrics.counter("remembra_searches_total", "memory_search invocations");
|
|
110
|
+
metrics.histogram("remembra_search_duration_seconds", "memory_search latency (seconds)");
|
|
111
|
+
metrics.counter("remembra_stores_total", "memory_store invocations");
|
|
112
|
+
metrics.counter("remembra_digests_total", "session digest runs");
|
|
113
|
+
metrics.counter("remembra_digest_items_total", "Digest items by outcome (stored|skipped|merged)");
|
|
114
|
+
metrics.histogram("remembra_digest_duration_seconds", "Session digest run latency (seconds)");
|
|
115
|
+
metrics.counter("remembra_cache_events_total", "Parse-cache probes by result (hit|miss)");
|
|
116
|
+
metrics.counter("remembra_redactions_total", "PII placeholders written at ingest by kind (3.8.0)");
|
|
117
|
+
metrics.counter("remembra_relate_total", "memory_relate link writes by action (3.8.0)");
|
|
118
|
+
metrics.counter("remembra_history_snapshots_total", "History pre-images written (3.8.0)");
|
|
119
|
+
metrics.counter("remembra_encryption_migrations_total", "Encryption migration files converted by mode (3.8.0)");
|
|
120
|
+
metrics.gauge("remembra_info", "Build info", () => [{ labels: { version: VERSION }, value: 1 }]);
|
|
121
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAclF,SAAS,QAAQ,CAAC,MAAe;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACrH,CAAC;AAED,MAAM,OAAO,eAAe;IAClB,IAAI,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC/B,QAAQ,GAAa,IAAI,GAAG,EAAE,CAAC;IAC/B,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;IACjD,MAAM,GAAG,IAAI,GAAG,EAAiF,CAAC;IAE1G,OAAO,CAAC,IAAY,EAAE,IAAY;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,UAAoB,eAAe;QACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,IAAY,EAAE,OAAmD;QACnF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,MAAe,EAAE,EAAE,GAAG,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QACpE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,MAAe;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,OAAO,IAAI,eAAe,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAoB,CAAC;QACnE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;gBAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;QACf,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,yDAAyD;IACzD,GAAG,CAAC,IAAY,EAAE,MAAe;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,qDAAqD;IACvD,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC;gBAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACpE,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;oBACrC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;oBACvE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;CACF;AAED,sEAAsE;AACtE,SAAS,MAAM,CAAC,GAAW,EAAE,EAAmB;IAC9C,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC;IAC7B,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,OAAO,GAAG,CAAC;IACtC,OAAO,IAAI,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,2CAA2C;AACnF,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;AAE7C,4EAA4E;AAC5E,OAAO,CAAC,OAAO,CAAC,8BAA8B,EAAE,2CAA2C,CAAC,CAAC;AAC7F,OAAO,CAAC,SAAS,CAAC,wCAAwC,EAAE,gCAAgC,CAAC,CAAC;AAC9F,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,oDAAoD,CAAC,CAAC;AAC/F,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;AACxE,OAAO,CAAC,SAAS,CAAC,kCAAkC,EAAE,iCAAiC,CAAC,CAAC;AACzF,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,CAAC;AACrE,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;AACjE,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,iDAAiD,CAAC,CAAC;AAClG,OAAO,CAAC,SAAS,CAAC,kCAAkC,EAAE,sCAAsC,CAAC,CAAC;AAC9F,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,yCAAyC,CAAC,CAAC;AAC1F,OAAO,CAAC,OAAO,CAAC,2BAA2B,EAAE,oDAAoD,CAAC,CAAC;AACnG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,6CAA6C,CAAC,CAAC;AACxF,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,oCAAoC,CAAC,CAAC;AAC1F,OAAO,CAAC,OAAO,CAAC,sCAAsC,EAAE,sDAAsD,CAAC,CAAC;AAChH,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
|