@adaptivemcp/memory 0.3.0 → 0.4.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Kemal Elmizan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;CAChC;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EAOjC,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,GAAE,SAAS,EAAe,GAAG,IAAI,CAkB1F"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;CAChC;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EA2CjC,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,GAAE,SAAS,EAAe,GAAG,IAAI,CAkB1F"}
@@ -48,6 +48,41 @@ export const MIGRATIONS = [
48
48
  name: "add_nodes_timestamp_index",
49
49
  up: (db) => db.exec(`CREATE INDEX IF NOT EXISTS idx_nodes_timestamp ON execution_nodes(timestamp)`),
50
50
  },
51
+ {
52
+ version: 3,
53
+ name: "add_metric_cells",
54
+ up: (db) => db.exec(`
55
+ CREATE TABLE IF NOT EXISTS metric_cells (
56
+ tool_name TEXT NOT NULL,
57
+ server_name TEXT NOT NULL DEFAULT '',
58
+ window TEXT NOT NULL DEFAULT 'all',
59
+ dims_key TEXT NOT NULL,
60
+ dims TEXT NOT NULL,
61
+ invocations INTEGER NOT NULL DEFAULT 0,
62
+ failures INTEGER NOT NULL DEFAULT 0,
63
+ error_codes TEXT NOT NULL DEFAULT '{}',
64
+ duration_sum REAL NOT NULL DEFAULT 0,
65
+ duration_count INTEGER NOT NULL DEFAULT 0,
66
+ duration_hist TEXT NOT NULL DEFAULT '[]',
67
+ token_in_sum REAL NOT NULL DEFAULT 0,
68
+ token_out_sum REAL NOT NULL DEFAULT 0,
69
+ token_count INTEGER NOT NULL DEFAULT 0,
70
+ cost_sum REAL NOT NULL DEFAULT 0,
71
+ ewma_failure_rate REAL,
72
+ ewma_duration_ms REAL,
73
+ first_seen TEXT,
74
+ last_seen TEXT,
75
+ exemplars TEXT NOT NULL DEFAULT '[]',
76
+ PRIMARY KEY (tool_name, server_name, window, dims_key)
77
+ );
78
+ CREATE INDEX IF NOT EXISTS idx_metric_cells_tool ON metric_cells(tool_name, server_name);
79
+ `),
80
+ },
81
+ {
82
+ version: 4,
83
+ name: "add_metric_cells_attempts",
84
+ up: (db) => db.exec(`ALTER TABLE metric_cells ADD COLUMN attempts INTEGER NOT NULL DEFAULT 0`),
85
+ },
51
86
  ];
52
87
  /** Applies every migration in `migrations` that hasn't already been recorded, in version order. */
53
88
  export function runMigrations(db, migrations = MIGRATIONS) {
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;IACrE;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,2BAA2B;QACjC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC;KACpG;CACF,CAAC;AAEF,mGAAmG;AACnG,MAAM,UAAU,aAAa,CAAC,EAAgB,EAAE,aAA0B,UAAU;IAClF,EAAE,CAAC,IAAI,CACL;;;;MAIE,CACH,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,CACpB,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,EAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAC3G,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC;IACxG,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,SAAS;QAC7C,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;IACrE;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,2BAA2B;QACjC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC;KACpG;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CACT,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBb,CAAC;KACC;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,2BAA2B;QACjC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,yEAAyE,CAAC;KAC/F;CACF,CAAC;AAEF,mGAAmG;AACnG,MAAM,UAAU,aAAa,CAAC,EAAgB,EAAE,aAA0B,UAAU;IAClF,EAAE,CAAC,IAAI,CACL;;;;MAIE,CACH,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,CACpB,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,EAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAC3G,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC;IACxG,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,SAAS;QAC7C,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
package/dist/store.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { type DatabaseSyncOptions } from "node:sqlite";
2
- import type { Annotation, Insight, Recommendation, RecommendationType, Store, ToolExecutionEvent, ToolRecord, ExecutionNode } from "@adaptivemcp/spec";
1
+ import type { DatabaseSyncOptions } from "node:sqlite";
2
+ import type { Annotation, Insight, MetricCell, Recommendation, RecommendationType, Store, ToolExecutionEvent, ToolRecord, ExecutionNode } from "@adaptivemcp/spec";
3
3
  export interface MemoryStorePragmaOptions {
4
4
  journalMode?: string;
5
5
  synchronous?: string;
@@ -19,6 +19,14 @@ export interface MemoryStoreOptions {
19
19
  retention?: {
20
20
  maxAgeMs: number;
21
21
  };
22
+ /**
23
+ * Cardinality guardrail for metric cells: cap the number of distinct `model`
24
+ * dimensions per tool; new models past the cap fold into a single `other`
25
+ * bucket. Defaults to 8.
26
+ */
27
+ metricCardinality?: {
28
+ maxModelsPerTool?: number;
29
+ };
22
30
  }
23
31
  /**
24
32
  * SQLite-backed store for Adaptive MCP.
@@ -31,6 +39,7 @@ export declare class MemoryStore implements Store {
31
39
  private db;
32
40
  private readonly isMemory;
33
41
  private readonly retention?;
42
+ private readonly maxModelsPerTool;
34
43
  private lastPrunedAt;
35
44
  constructor(options?: MemoryStoreOptions);
36
45
  close(): void;
@@ -73,6 +82,23 @@ export declare class MemoryStore implements Store {
73
82
  clearRecommendations(toolName: string, type: RecommendationType, serverName?: string): ToolRecord;
74
83
  /** Fold a tool execution event into the persisted stats. */
75
84
  recordExecution(event: ToolExecutionEvent): ToolRecord;
85
+ /**
86
+ * Read pre-aggregated metric cells (bounded dimensional rollups). This is the
87
+ * durable, queryable metadata layer that replaces a raw events table.
88
+ */
89
+ metricCells(options?: {
90
+ toolName?: string;
91
+ serverName?: string;
92
+ }): MetricCell[];
93
+ /** Pre-aggregate an event into the bounded set of metric cells it belongs to. */
94
+ private foldMetricCells;
95
+ /**
96
+ * Cardinality guardrail: fold new models past the per-tool cap into a single
97
+ * `other` bucket. Existing models and the bucket itself always pass through.
98
+ */
99
+ private capModel;
100
+ private readMetricCell;
101
+ private writeMetricCell;
76
102
  /** `server_name` is part of the primary key, so it's matched in WHERE, not reassigned in SET. */
77
103
  private write;
78
104
  /** Record an execution node in the graph. */
@@ -87,6 +113,10 @@ export declare class MemoryStore implements Store {
87
113
  deleted: number;
88
114
  };
89
115
  private maybeOpportunisticPrune;
116
+ /** Delete hourly (non-`all`) metric cells older than `olderThanMs`; `all` is kept. */
117
+ pruneMetricCells(olderThanMs: number, now?: number): {
118
+ deleted: number;
119
+ };
90
120
  /** Get an execution node by ID. */
91
121
  getExecutionNode(id: string): ExecutionNode | undefined;
92
122
  /** Get all nodes for a session. */
@@ -95,6 +125,8 @@ export declare class MemoryStore implements Store {
95
125
  getNodesByWorkflow(workflowId: string): ExecutionNode[];
96
126
  /** Get every distinct workflow ID that has at least one recorded execution node. */
97
127
  getWorkflowIds(): string[];
128
+ /** Get every distinct session ID that has at least one recorded execution node. */
129
+ getSessionIds(): string[];
98
130
  /** Get children of a node. */
99
131
  getChildren(parentId: string): ExecutionNode[];
100
132
  /** Get parent of a node. */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js CHANGED
@@ -1,5 +1,6 @@
1
- import { DatabaseSync } from "node:sqlite";
1
+ import { createRequire } from "node:module";
2
2
  import { runMigrations } from "./migrations.js";
3
+ const { DatabaseSync: DatabaseSyncCtor } = createRequire(import.meta.url)("node:sqlite");
3
4
  const DEFAULT_PRAGMAS = {
4
5
  journalMode: "WAL",
5
6
  synchronous: "NORMAL",
@@ -27,12 +28,14 @@ export class MemoryStore {
27
28
  db;
28
29
  isMemory;
29
30
  retention;
31
+ maxModelsPerTool;
30
32
  lastPrunedAt = 0;
31
33
  constructor(options = {}) {
32
34
  const path = options.path ?? ":memory:";
33
35
  this.isMemory = path === ":memory:";
34
36
  this.retention = options.retention;
35
- this.db = new DatabaseSync(path, options.dbOptions ?? {});
37
+ this.maxModelsPerTool = options.metricCardinality?.maxModelsPerTool ?? 8;
38
+ this.db = new DatabaseSyncCtor(path, options.dbOptions ?? {});
36
39
  const pragmas = { ...DEFAULT_PRAGMAS, ...options.pragmas };
37
40
  if (!this.isMemory) {
38
41
  this.db.exec(`PRAGMA journal_mode = ${pragmas.journalMode}`);
@@ -179,8 +182,84 @@ export class MemoryStore {
179
182
  updatedAt: new Date().toISOString(),
180
183
  };
181
184
  this.write(updated);
185
+ this.foldMetricCells(event);
182
186
  return updated;
183
187
  }
188
+ /**
189
+ * Read pre-aggregated metric cells (bounded dimensional rollups). This is the
190
+ * durable, queryable metadata layer that replaces a raw events table.
191
+ */
192
+ metricCells(options = {}) {
193
+ const clauses = [];
194
+ const params = [];
195
+ if (options.toolName !== undefined) {
196
+ clauses.push("tool_name = ?");
197
+ params.push(options.toolName);
198
+ }
199
+ if (options.serverName !== undefined) {
200
+ clauses.push("server_name = ?");
201
+ params.push(options.serverName);
202
+ }
203
+ const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
204
+ const rows = this.db
205
+ .prepare(`SELECT * FROM metric_cells${where} ORDER BY tool_name, server_name, dims_key`)
206
+ .all(...params);
207
+ return rows.map(deserializeMetricCell);
208
+ }
209
+ /** Pre-aggregate an event into the bounded set of metric cells it belongs to. */
210
+ foldMetricCells(event) {
211
+ const now = event.timestamp ?? new Date().toISOString();
212
+ const model = event.model !== undefined
213
+ ? this.capModel(event.toolName, event.serverName ?? UNKNOWN_SERVER, event.model)
214
+ : undefined;
215
+ for (const dimensions of cellDimensionsFor(event, model)) {
216
+ const key = dimsKey(dimensions);
217
+ // The overall `{}` cell also gets an hourly window (for drift); dimensioned
218
+ // cells keep only the lifetime aggregate to bound write amplification.
219
+ const windows = Object.keys(dimensions).length === 0 ? ["all", windowKey(now)] : ["all"];
220
+ for (const window of windows) {
221
+ const existing = this.readMetricCell(event.toolName, event.serverName ?? UNKNOWN_SERVER, window, key);
222
+ this.writeMetricCell(foldMetricCell(existing, event, dimensions, window, now), key);
223
+ }
224
+ }
225
+ }
226
+ /**
227
+ * Cardinality guardrail: fold new models past the per-tool cap into a single
228
+ * `other` bucket. Existing models and the bucket itself always pass through.
229
+ */
230
+ capModel(toolName, serverName, model) {
231
+ if (model === "other")
232
+ return model;
233
+ const rows = this.db
234
+ .prepare(`SELECT dims FROM metric_cells WHERE tool_name = ? AND server_name = ? AND window = 'all'`)
235
+ .all(toolName, serverName);
236
+ const models = new Set();
237
+ for (const row of rows) {
238
+ const dims = JSON.parse(row.dims);
239
+ if (dims.model)
240
+ models.add(dims.model);
241
+ }
242
+ if (models.has(model) || models.size < this.maxModelsPerTool)
243
+ return model;
244
+ return "other";
245
+ }
246
+ readMetricCell(toolName, serverName, window, dimsKeyValue) {
247
+ const row = this.db
248
+ .prepare(`SELECT * FROM metric_cells WHERE tool_name = ? AND server_name = ? AND window = ? AND dims_key = ?`)
249
+ .get(toolName, serverName, window, dimsKeyValue);
250
+ return row ? deserializeMetricCell(row) : undefined;
251
+ }
252
+ writeMetricCell(cell, dimsKeyValue) {
253
+ this.db
254
+ .prepare(`INSERT OR REPLACE INTO metric_cells (
255
+ tool_name, server_name, window, dims_key, dims,
256
+ invocations, failures, attempts, error_codes,
257
+ duration_sum, duration_count, duration_hist,
258
+ token_in_sum, token_out_sum, token_count, cost_sum,
259
+ ewma_failure_rate, ewma_duration_ms, first_seen, last_seen, exemplars
260
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
261
+ .run(cell.toolName, cell.serverName ?? UNKNOWN_SERVER, cell.window, dimsKeyValue, JSON.stringify(cell.dimensions), cell.invocations, cell.failures, cell.attempts, JSON.stringify(cell.errorCodes), cell.durationSum, cell.durationCount, JSON.stringify(cell.durationHistogram), cell.tokenInSum, cell.tokenOutSum, cell.tokenCount, cell.costSum, cell.ewmaFailureRate ?? null, cell.ewmaDurationMs ?? null, cell.firstSeen, cell.lastSeen, JSON.stringify(cell.exemplars));
262
+ }
184
263
  /** `server_name` is part of the primary key, so it's matched in WHERE, not reassigned in SET. */
185
264
  write(record) {
186
265
  this.db
@@ -217,6 +296,15 @@ export class MemoryStore {
217
296
  if (now - this.lastPrunedAt < RETENTION_CHECK_INTERVAL_MS)
218
297
  return;
219
298
  this.pruneExecutionNodes(this.retention.maxAgeMs, now);
299
+ this.pruneMetricCells(this.retention.maxAgeMs, now);
300
+ }
301
+ /** Delete hourly (non-`all`) metric cells older than `olderThanMs`; `all` is kept. */
302
+ pruneMetricCells(olderThanMs, now = Date.now()) {
303
+ const cutoff = new Date(now - olderThanMs).toISOString();
304
+ const result = this.db
305
+ .prepare(`DELETE FROM metric_cells WHERE window != 'all' AND last_seen < ?`)
306
+ .run(cutoff);
307
+ return { deleted: Number(result.changes) };
220
308
  }
221
309
  /** Get an execution node by ID. */
222
310
  getExecutionNode(id) {
@@ -246,6 +334,13 @@ export class MemoryStore {
246
334
  .all();
247
335
  return rows.map((r) => r.workflow_id);
248
336
  }
337
+ /** Get every distinct session ID that has at least one recorded execution node. */
338
+ getSessionIds() {
339
+ const rows = this.db
340
+ .prepare(`SELECT DISTINCT session_id FROM execution_nodes`)
341
+ .all();
342
+ return rows.map((r) => r.session_id);
343
+ }
249
344
  /** Get children of a node. */
250
345
  getChildren(parentId) {
251
346
  const parent = this.getExecutionNode(parentId);
@@ -329,7 +424,7 @@ function foldEvent(stats, event) {
329
424
  : stats.avgDurationMs;
330
425
  const totalCost = stats.totalCost + (event.cost?.amount ?? 0);
331
426
  // Track average output tokens for context cost
332
- const outputTokens = event.cost?.outputTokens ?? 0;
427
+ const outputTokens = eventTokens(event).outputTokens ?? 0;
333
428
  const prevAvgTokens = stats.avgOutputTokens ?? 0;
334
429
  const avgOutputTokens = (prevAvgTokens * (invocations - 1) + outputTokens) / invocations;
335
430
  return {
@@ -353,4 +448,137 @@ function deserialize(row) {
353
448
  updatedAt: row.updated_at,
354
449
  };
355
450
  }
451
+ function deserializeMetricCell(row) {
452
+ return {
453
+ toolName: row.tool_name,
454
+ serverName: row.server_name === UNKNOWN_SERVER ? undefined : row.server_name,
455
+ window: row.window,
456
+ dimensions: JSON.parse(row.dims),
457
+ invocations: row.invocations,
458
+ failures: row.failures,
459
+ attempts: row.attempts,
460
+ errorCodes: JSON.parse(row.error_codes),
461
+ durationSum: row.duration_sum,
462
+ durationCount: row.duration_count,
463
+ durationHistogram: JSON.parse(row.duration_hist),
464
+ tokenInSum: row.token_in_sum,
465
+ tokenOutSum: row.token_out_sum,
466
+ tokenCount: row.token_count,
467
+ costSum: row.cost_sum,
468
+ ewmaFailureRate: row.ewma_failure_rate ?? undefined,
469
+ ewmaDurationMs: row.ewma_duration_ms ?? undefined,
470
+ firstSeen: row.first_seen ?? "",
471
+ lastSeen: row.last_seen ?? "",
472
+ exemplars: JSON.parse(row.exemplars),
473
+ };
474
+ }
475
+ /** Fixed duration histogram buckets (upper bound in ms); the last bucket is overflow. */
476
+ const DURATION_BUCKETS_MS = [50, 100, 250, 500, 1000, 2500, 5000, 10000];
477
+ const DURATION_BUCKET_COUNT = DURATION_BUCKETS_MS.length + 1;
478
+ /** EWMA smoothing factor for recency-weighted failure rate / duration. */
479
+ const EWMA_ALPHA = 0.2;
480
+ /** How many recent event ids a cell keeps for drill-down. */
481
+ const EXEMPLAR_LIMIT = 5;
482
+ /** Token usage, preferring the explicit `usage` field and falling back to `cost`. */
483
+ function eventTokens(event) {
484
+ if (event.usage && (event.usage.inputTokens !== undefined || event.usage.outputTokens !== undefined)) {
485
+ return event.usage;
486
+ }
487
+ return { inputTokens: event.cost?.inputTokens, outputTokens: event.cost?.outputTokens };
488
+ }
489
+ /** The bounded set of dimension tuples an event contributes to. */
490
+ function cellDimensionsFor(event, model = event.model) {
491
+ const dims = [{}];
492
+ if (model)
493
+ dims.push({ model });
494
+ if (event.decoding) {
495
+ dims.push({
496
+ ...(model ? { model } : {}),
497
+ decodingProfile: event.decoding.profile,
498
+ resolverVersion: event.decoding.resolverVersion,
499
+ });
500
+ }
501
+ return dims;
502
+ }
503
+ /** Stable key for a dimension tuple (sorted keys). */
504
+ function dimsKey(dims) {
505
+ return JSON.stringify(Object.keys(dims)
506
+ .sort()
507
+ .map((key) => [key, dims[key]]));
508
+ }
509
+ /** Hourly retention-window key for an ISO timestamp (UTC). */
510
+ function windowKey(iso) {
511
+ return `hour:${iso.slice(0, 13)}`;
512
+ }
513
+ function durationBucketIndex(ms) {
514
+ for (let i = 0; i < DURATION_BUCKETS_MS.length; i += 1) {
515
+ if (ms <= DURATION_BUCKETS_MS[i])
516
+ return i;
517
+ }
518
+ return DURATION_BUCKETS_MS.length;
519
+ }
520
+ /** Fold one event into a metric cell (creating it when absent). */
521
+ function foldMetricCell(existing, event, dimensions, window, now) {
522
+ const failed = event.status === "failed";
523
+ const failure = failed ? 1 : 0;
524
+ const duration = typeof event.durationMs === "number" ? event.durationMs : undefined;
525
+ const tokens = eventTokens(event);
526
+ const hasTokens = tokens.inputTokens !== undefined || tokens.outputTokens !== undefined;
527
+ const cost = event.cost?.amount;
528
+ const base = existing ?? {
529
+ toolName: event.toolName,
530
+ serverName: event.serverName,
531
+ window,
532
+ dimensions,
533
+ invocations: 0,
534
+ failures: 0,
535
+ attempts: 0,
536
+ errorCodes: {},
537
+ durationSum: 0,
538
+ durationCount: 0,
539
+ durationHistogram: new Array(DURATION_BUCKET_COUNT).fill(0),
540
+ tokenInSum: 0,
541
+ tokenOutSum: 0,
542
+ tokenCount: 0,
543
+ costSum: 0,
544
+ firstSeen: now,
545
+ lastSeen: now,
546
+ exemplars: [],
547
+ };
548
+ const errorCodes = { ...base.errorCodes };
549
+ if (failed) {
550
+ const code = event.error?.code ?? "unknown";
551
+ errorCodes[code] = (errorCodes[code] ?? 0) + 1;
552
+ }
553
+ const histogram = [...base.durationHistogram];
554
+ while (histogram.length < DURATION_BUCKET_COUNT)
555
+ histogram.push(0);
556
+ if (duration !== undefined)
557
+ histogram[durationBucketIndex(duration)] = (histogram[durationBucketIndex(duration)] ?? 0) + 1;
558
+ return {
559
+ ...base,
560
+ dimensions,
561
+ invocations: base.invocations + 1,
562
+ failures: base.failures + failure,
563
+ attempts: base.attempts + (event.attempts ?? 1),
564
+ errorCodes,
565
+ durationSum: base.durationSum + (duration ?? 0),
566
+ durationCount: base.durationCount + (duration !== undefined ? 1 : 0),
567
+ durationHistogram: histogram,
568
+ tokenInSum: base.tokenInSum + (tokens.inputTokens ?? 0),
569
+ tokenOutSum: base.tokenOutSum + (tokens.outputTokens ?? 0),
570
+ tokenCount: base.tokenCount + (hasTokens ? 1 : 0),
571
+ costSum: base.costSum + (cost !== undefined && Number.isFinite(cost) ? cost : 0),
572
+ ewmaFailureRate: base.ewmaFailureRate === undefined
573
+ ? failure
574
+ : base.ewmaFailureRate + EWMA_ALPHA * (failure - base.ewmaFailureRate),
575
+ ewmaDurationMs: duration === undefined
576
+ ? base.ewmaDurationMs
577
+ : base.ewmaDurationMs === undefined
578
+ ? duration
579
+ : base.ewmaDurationMs + EWMA_ALPHA * (duration - base.ewmaDurationMs),
580
+ lastSeen: now,
581
+ exemplars: [...base.exemplars, event.id].slice(-EXEMPLAR_LIMIT),
582
+ };
583
+ }
356
584
  //# sourceMappingURL=store.js.map
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptivemcp/memory",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Persistent operational knowledge for Adaptive MCP, backed by SQLite (node:sqlite).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,16 +17,16 @@
17
17
  "dist",
18
18
  "README.md"
19
19
  ],
20
- "scripts": {
21
- "build": "tsc -p tsconfig.json",
22
- "test": "vitest run --config ../../vitest.config.ts"
23
- },
24
20
  "dependencies": {
25
- "@adaptivemcp/spec": "workspace:*"
21
+ "@adaptivemcp/spec": "0.4.0"
26
22
  },
27
23
  "devDependencies": {
28
24
  "@types/node": "^22.0.0",
29
25
  "typescript": "^5.6.0",
30
26
  "vitest": "^2.1.0"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc -p tsconfig.json",
30
+ "test": "vitest run --config ../../vitest.config.ts"
31
31
  }
32
- }
32
+ }