n2-soul 9.0.6 → 9.0.7

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 CHANGED
@@ -2,7 +2,32 @@
2
2
 
3
3
  All notable changes to Soul are documented here.
4
4
 
5
- ## [9.0.6] — 2026-03-27
5
+ ## [9.0.7] — 2026-03-27
6
+
7
+ ### PerfMonitor — Self-Tuning GC
8
+
9
+ Forgetting Curve GC now self-tunes based on actual query latency. When snapshots grow large enough to slow queries, retention tightens automatically — up to 3x reduction — without losing important history (Forgetting Curve scores still determine which snapshots survive).
10
+
11
+ #### Added
12
+ - **`PerfMonitor`** (`perf-monitor.ts`) — sliding-window latency tracker with p95 analysis
13
+ - **`getPerfSnapshot()`** — exposes avg/p95 latency and sample count for diagnostics
14
+ - **Auto-instrumented `load()` and `search()`** — every query records its latency
15
+ - **Perf-aware `gc()`** — uses PerfMonitor recommendations to auto-adjust `maxAgeDays` and `maxCount`
16
+ - **Config: `perfSlowMs` / `perfCriticalMs`** — configurable thresholds (defaults: 100ms / 500ms)
17
+
18
+ #### How It Works
19
+ ```
20
+ Queries fast (p95 < 100ms) → GC relaxed: keep 30 days, 50 snapshots
21
+ Queries slow (100ms ~ 500ms) → GC tightens: proportionally reduce retention
22
+ Queries critical (p95 > 500ms) → GC aggressive: 3x reduction (10 days, 16 snapshots)
23
+ ```
24
+
25
+ #### Why This Matters
26
+ Community feedback (via ninadpathak): _"handoff chains quietly explode your db size after a week of real use."_ This update ties GC directly to performance reality — storage stays lean without manual intervention.
27
+
28
+ ---
29
+
30
+
6
31
 
7
32
  ### StorageAdapter — Unified Backend Interface
8
33
 
@@ -1,3 +1,4 @@
1
+ import type { PerfSnapshot } from './perf-monitor';
1
2
  import type { BackupResult, RestoreResult, ManifestEntry, BackupStatusResult } from './backup';
2
3
  import type { SessionData } from './schema';
3
4
  import type { KVCacheConfig } from '../../types';
@@ -43,6 +44,7 @@ export declare class SoulKVCache {
43
44
  private _backupTimer;
44
45
  private readonly _readyPromise;
45
46
  private _delayTimer;
47
+ private readonly _perf;
46
48
  constructor(dataDir: string, config?: Partial<KVCacheConfig>);
47
49
  /** Cleanup timers and resources — call before discarding instance */
48
50
  dispose(): void;
@@ -55,10 +57,13 @@ export declare class SoulKVCache {
55
57
  private _semanticSearch;
56
58
  /** List snapshots for a project */
57
59
  listSnapshots(project: string, limit?: number): Promise<SessionData[]>;
58
- /** Garbage collect old snapshots */
60
+ /** Garbage collect old snapshots (perf-aware: auto-tightens when queries slow down) */
59
61
  gc(project: string, maxAgeDays?: number): Promise<{
60
62
  deleted: number;
63
+ perfTuned: boolean;
61
64
  }>;
65
+ /** Get current query performance metrics */
66
+ getPerfSnapshot(): PerfSnapshot;
62
67
  /** Estimate token count for a text string */
63
68
  estimateTokens(text: string): number;
64
69
  /** Returns current backend info for diagnostics */
@@ -15,6 +15,7 @@ const token_saver_1 = require("./token-saver");
15
15
  const tier_manager_1 = require("./tier-manager");
16
16
  const embedding_1 = require("./embedding");
17
17
  const backup_1 = require("./backup");
18
+ const perf_monitor_1 = require("./perf-monitor");
18
19
  // BackupResult type imported from ./backup — no local duplicate needed
19
20
  const DEFAULT_COMPRESSION_TARGET = 1000;
20
21
  const AUTO_BACKUP_DELAY_MS = 5 * 60 * 1000;
@@ -65,6 +66,7 @@ class SoulKVCache {
65
66
  _backupTimer;
66
67
  _readyPromise;
67
68
  _delayTimer;
69
+ _perf;
68
70
  constructor(dataDir, config = {}) {
69
71
  const { engine, readyPromise } = createStorageEngine(dataDir, config);
70
72
  this.snapshot = engine;
@@ -99,6 +101,11 @@ class SoulKVCache {
99
101
  this._backup = null;
100
102
  this._backupTimer = null;
101
103
  this._delayTimer = null;
104
+ this._perf = new perf_monitor_1.PerfMonitor({
105
+ windowSize: 50,
106
+ slowThresholdMs: config.perfSlowMs ?? 100,
107
+ criticalThresholdMs: config.perfCriticalMs ?? 500,
108
+ });
102
109
  const backupConfig = config.backup;
103
110
  if (backupConfig?.enabled) {
104
111
  this._backup = new backup_1.BackupManager(dataDir, {
@@ -158,7 +165,9 @@ class SoulKVCache {
158
165
  /** Load the most recent snapshot for a project */
159
166
  async load(project, options = {}) {
160
167
  await this._readyPromise;
168
+ const start = performance.now();
161
169
  const snap = await this.snapshot.loadLatest(project);
170
+ this._perf.record(performance.now() - start);
162
171
  if (!snap)
163
172
  return null;
164
173
  // Forgetting Curve: track access
@@ -185,10 +194,16 @@ class SoulKVCache {
185
194
  /** Search across snapshots by keyword or semantic similarity */
186
195
  async search(query, project, limit = 10) {
187
196
  await this._readyPromise;
197
+ const start = performance.now();
198
+ let results;
188
199
  if (this._embeddingReady && this.embedding) {
189
- return this._semanticSearch(query, project, limit);
200
+ results = await this._semanticSearch(query, project, limit);
190
201
  }
191
- return await this.snapshot.search(query, project, limit);
202
+ else {
203
+ results = await this.snapshot.search(query, project, limit);
204
+ }
205
+ this._perf.record(performance.now() - start);
206
+ return results;
192
207
  }
193
208
  async _semanticSearch(query, project, limit) {
194
209
  try {
@@ -223,11 +238,24 @@ class SoulKVCache {
223
238
  async listSnapshots(project, limit = 10) {
224
239
  return await this.snapshot.list(project, limit);
225
240
  }
226
- /** Garbage collect old snapshots */
241
+ /** Garbage collect old snapshots (perf-aware: auto-tightens when queries slow down) */
227
242
  async gc(project, maxAgeDays) {
228
- const age = maxAgeDays ?? this.config.maxSnapshotAgeDays;
243
+ const baseAge = maxAgeDays ?? this.config.maxSnapshotAgeDays;
244
+ const baseCount = this.config.maxSnapshotsPerProject;
245
+ const rec = this._perf.recommendGC(baseAge, baseCount);
229
246
  await this._readyPromise;
230
- return await this.snapshot.gc(project, age, this.config.maxSnapshotsPerProject);
247
+ const result = await this.snapshot.gc(project, rec.maxAgeDays, rec.maxCount);
248
+ if (rec.aggressive) {
249
+ (0, utils_1.logWarn)('kv-cache:gc', `Perf-tuned GC: ${rec.reason}`);
250
+ }
251
+ else if (rec.maxAgeDays !== baseAge) {
252
+ (0, utils_1.logInfo)('kv-cache:gc', `Perf-adjusted GC: ${rec.reason}`);
253
+ }
254
+ return { deleted: result.deleted, perfTuned: rec.maxAgeDays !== baseAge || rec.maxCount !== baseCount };
255
+ }
256
+ /** Get current query performance metrics */
257
+ getPerfSnapshot() {
258
+ return this._perf.getSnapshot();
231
259
  }
232
260
  /** Estimate token count for a text string */
233
261
  estimateTokens(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/kv-cache/index.ts"],"names":[],"mappings":";;;;;;AAAA,oFAAoF;AACpF,gDAAwB;AACxB,4CAAoB;AACpB,oCAAiE;AACjE,yCAA4C;AAC5C,6CAAwC;AACxC,mDAAiD;AACjD,+CAA0D;AAC1D,iDAA6C;AAC7C,2CAA8C;AAC9C,qCAAyC;AAmCzC,uEAAuE;AAEvE,MAAM,0BAA0B,GAAG,IAAI,CAAC;AACxC,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,6DAA6D;AAC7D,SAAS,mBAAmB,CAC1B,OAAe,EAAE,MAA8B;IAE/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACtF,IAAI,MAAsB,CAAC;IAC3B,IAAI,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEpD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,0EAA0E;YAC1E,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAoC,CAAC;YAChG,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/E,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,GAAG,YAAY,CAAC;YACtB,YAAY,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CACnC,YAAY,CAAC,IAAI,EAAE,CACpB,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,gBAAQ,EAAC,iBAAiB,EAAE,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;YACxH,MAAM,GAAG,IAAI,yBAAc,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,yBAAc,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,IAAI,0BAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAClC,CAAC;AAeD,iCAAiC;AACjC,MAAa,WAAW;IACb,QAAQ,CAAiB;IACjB,OAAO,CAAS;IAChB,MAAM,CAAwB;IAC9B,SAAS,CAAyB;IAC3C,eAAe,CAAU;IACzB,OAAO,CAAuB;IAC9B,YAAY,CAAuC;IAC1C,aAAa,CAAgB;IAEtC,WAAW,CAAuC;IAE1D,YAAY,OAAe,EAAE,SAAiC,EAAE;QAC9D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM;YACjC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,0BAA0B;YACzE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,qBAAqB;YAC9E,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,oBAAoB;YACrE,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI;gBACjC,WAAW,EAAE,yBAAyB,EAAE,YAAY,EAAE,2BAA2B,EAAE,eAAe,EAAE,IAAI;aACzG;SACF,CAAC;QAEF,+CAA+C;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,2BAAe,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACrC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACzB,IAAA,eAAO,EAAC,oBAAoB,EAAE,oBAAoB,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,IAAA,eAAO,EAAC,oBAAoB,EAAE,uDAAuD,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,EAAE,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAa,CAAC,OAAO,EAAE;gBACxC,GAAG,EAAE,YAAY,CAAC,GAAG,IAAI,SAAS;gBAClC,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,WAAW,EAAE,YAAY,CAAC,WAAW;aACtC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAC;YAClD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBACzF,uEAAuE;gBACvE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;oBACtF,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;wBACnC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxF,CAAC,EAAE,UAAU,CAAC,CAAC;oBACf,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtD,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC9B,CAAC;gBACH,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACpD,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7B,CAAC;gBACD,IAAA,eAAO,EAAC,iBAAiB,EAAE,0BAA0B,QAAQ,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,OAAO;QACL,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAAe,EAAE,WAAyB;QAClE,MAAM,IAAI,CAAC,aAAa,CAAC,CAAE,gDAAgD;QAC3E,MAAM,UAAU,GAAG,IAAA,8BAAc,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;QAEtE,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAA,qBAAQ,EAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnF,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrE,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/E,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhD,kDAAkD;QAClD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACpC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,IAAA,eAAO,EAAC,gBAAgB,EAAE,gCAAgC,EAAE,iCAAiC,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,GAAG,IAAA,gBAAQ,EAAC,gBAAgB,EAAE,iCAAiC,EAAE,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,UAAuB,EAAE;QACnD,MAAM,IAAI,CAAC,aAAa,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,iCAAiC;QACjC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;QAErE,MAAM,MAAM,GAAG,IAAsB,CAAC;QACtC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,IAAA,uBAAS,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAe,EAAE,QAAgB,EAAE;QAC7D,MAAM,IAAI,CAAC,aAAa,CAAC;QACzB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,OAAe,EAAE,KAAa;QACzE,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAEpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,UAAU,GAAwB,EAAE,CAAC;YAE3C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,MAAM;oBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAEtF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACpB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAsC,CAAC;YAChF,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAyC,CAAC;QAC7D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,gBAAQ,EAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YACxC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,QAAgB,EAAE;QACrD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,EAAE,CAAC,OAAe,EAAE,UAAmB;QAC3C,MAAM,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACzD,MAAM,IAAI,CAAC,aAAa,CAAC;QACzB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClF,CAAC;IAED,6CAA6C;IAC7C,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;SAClG,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,UAAkB,EAAE,MAAgB;QAC3E,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,IAAA,iBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,cAAc,CAAC,OAAe,EAAE,UAAkB;QACxD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAa,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,gBAAQ,EAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,UAA8B,EAAE;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,OAAO,CACX,OAAe,EAAE,QAAwB,EAAE,UAA0C,EAAE;QAEvF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,wCAAwC;IACxC,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,kCAAkC;IAClC,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO;YACxC,MAAM,QAAQ,GAAG,YAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBAClE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBACvD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACtD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACtD,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,MAAM,MAAM,CAAC,aAAa,IAAI,EAAE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;oBACvG,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBAAC,IAAA,gBAAQ,EAAC,sBAAsB,EAAE,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,cAAc;QACZ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;CACF;AA1RD,kCA0RC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/kv-cache/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /** GC parameter recommendation based on current performance */
2
+ export interface GCRecommendation {
3
+ maxAgeDays: number;
4
+ maxCount: number;
5
+ aggressive: boolean;
6
+ reason: string;
7
+ }
8
+ /** Performance snapshot for diagnostics */
9
+ export interface PerfSnapshot {
10
+ avgLatencyMs: number;
11
+ p95LatencyMs: number;
12
+ sampleCount: number;
13
+ lastMeasuredAt: string;
14
+ }
15
+ /**
16
+ * Tracks query latencies in a sliding window and recommends
17
+ * GC parameters based on actual performance degradation.
18
+ *
19
+ * When queries slow down → GC becomes more aggressive.
20
+ * When queries are fast → GC stays relaxed, keeping more history.
21
+ */
22
+ export declare class PerfMonitor {
23
+ private readonly _window;
24
+ private readonly _windowSize;
25
+ private readonly _slowMs;
26
+ private readonly _criticalMs;
27
+ private _lastMeasured;
28
+ constructor(opts?: {
29
+ windowSize?: number;
30
+ slowThresholdMs?: number;
31
+ criticalThresholdMs?: number;
32
+ });
33
+ /** Record a query latency measurement (ms) */
34
+ record(latencyMs: number): void;
35
+ /** Measure and record a function's execution time */
36
+ measure<T>(fn: () => Promise<T>): Promise<T>;
37
+ /** Get current performance snapshot */
38
+ getSnapshot(): PerfSnapshot;
39
+ /**
40
+ * Recommend GC parameters based on current query performance.
41
+ *
42
+ * - Fast queries (< slowThreshold) → relaxed GC (keep more history)
43
+ * - Slow queries (slowThreshold ~ criticalThreshold) → moderate GC
44
+ * - Critical queries (> criticalThreshold) → aggressive GC (3x reduction)
45
+ */
46
+ recommendGC(currentMaxAge?: number, currentMaxCount?: number): GCRecommendation;
47
+ /** Reset all recorded latencies */
48
+ reset(): void;
49
+ /** Diagnostic: log current perf state */
50
+ logState(label: string): void;
51
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerfMonitor = void 0;
4
+ // Soul KV-Cache v9.0 — PerfMonitor. Self-tuning GC via query latency tracking.
5
+ const utils_1 = require("../utils");
6
+ /** Default GC thresholds */
7
+ const DEFAULTS = {
8
+ windowSize: 50,
9
+ slowThresholdMs: 100,
10
+ criticalThresholdMs: 500,
11
+ baseMaxAgeDays: 30,
12
+ baseMaxCount: 50,
13
+ minMaxAgeDays: 7,
14
+ minMaxCount: 15,
15
+ };
16
+ /**
17
+ * Tracks query latencies in a sliding window and recommends
18
+ * GC parameters based on actual performance degradation.
19
+ *
20
+ * When queries slow down → GC becomes more aggressive.
21
+ * When queries are fast → GC stays relaxed, keeping more history.
22
+ */
23
+ class PerfMonitor {
24
+ _window;
25
+ _windowSize;
26
+ _slowMs;
27
+ _criticalMs;
28
+ _lastMeasured;
29
+ constructor(opts) {
30
+ this._windowSize = opts?.windowSize ?? DEFAULTS.windowSize;
31
+ this._slowMs = opts?.slowThresholdMs ?? DEFAULTS.slowThresholdMs;
32
+ this._criticalMs = opts?.criticalThresholdMs ?? DEFAULTS.criticalThresholdMs;
33
+ this._window = [];
34
+ this._lastMeasured = new Date().toISOString();
35
+ }
36
+ /** Record a query latency measurement (ms) */
37
+ record(latencyMs) {
38
+ this._window.push(latencyMs);
39
+ if (this._window.length > this._windowSize) {
40
+ this._window.shift();
41
+ }
42
+ this._lastMeasured = new Date().toISOString();
43
+ }
44
+ /** Measure and record a function's execution time */
45
+ async measure(fn) {
46
+ const start = performance.now();
47
+ try {
48
+ return await fn();
49
+ }
50
+ finally {
51
+ this.record(performance.now() - start);
52
+ }
53
+ }
54
+ /** Get current performance snapshot */
55
+ getSnapshot() {
56
+ if (this._window.length === 0) {
57
+ return { avgLatencyMs: 0, p95LatencyMs: 0, sampleCount: 0, lastMeasuredAt: this._lastMeasured };
58
+ }
59
+ const sorted = [...this._window].sort((a, b) => a - b);
60
+ const sum = sorted.reduce((a, b) => a + b, 0);
61
+ const p95Idx = Math.min(Math.floor(sorted.length * 0.95), sorted.length - 1);
62
+ return {
63
+ avgLatencyMs: Math.round((sum / sorted.length) * 100) / 100,
64
+ p95LatencyMs: Math.round((sorted[p95Idx] ?? 0) * 100) / 100,
65
+ sampleCount: sorted.length,
66
+ lastMeasuredAt: this._lastMeasured,
67
+ };
68
+ }
69
+ /**
70
+ * Recommend GC parameters based on current query performance.
71
+ *
72
+ * - Fast queries (< slowThreshold) → relaxed GC (keep more history)
73
+ * - Slow queries (slowThreshold ~ criticalThreshold) → moderate GC
74
+ * - Critical queries (> criticalThreshold) → aggressive GC (3x reduction)
75
+ */
76
+ recommendGC(currentMaxAge = DEFAULTS.baseMaxAgeDays, currentMaxCount = DEFAULTS.baseMaxCount) {
77
+ const snap = this.getSnapshot();
78
+ if (snap.sampleCount < 5) {
79
+ return {
80
+ maxAgeDays: currentMaxAge,
81
+ maxCount: currentMaxCount,
82
+ aggressive: false,
83
+ reason: `Insufficient samples (${snap.sampleCount}/5). Using defaults.`,
84
+ };
85
+ }
86
+ const p95 = snap.p95LatencyMs;
87
+ if (p95 >= this._criticalMs) {
88
+ return {
89
+ maxAgeDays: Math.max(DEFAULTS.minMaxAgeDays, Math.floor(currentMaxAge / 3)),
90
+ maxCount: Math.max(DEFAULTS.minMaxCount, Math.floor(currentMaxCount / 3)),
91
+ aggressive: true,
92
+ reason: `CRITICAL: p95=${p95}ms (threshold=${this._criticalMs}ms). Reducing retention 3x.`,
93
+ };
94
+ }
95
+ if (p95 >= this._slowMs) {
96
+ const ratio = (p95 - this._slowMs) / (this._criticalMs - this._slowMs);
97
+ const ageFactor = 1 - (ratio * 0.5);
98
+ const countFactor = 1 - (ratio * 0.5);
99
+ return {
100
+ maxAgeDays: Math.max(DEFAULTS.minMaxAgeDays, Math.floor(currentMaxAge * ageFactor)),
101
+ maxCount: Math.max(DEFAULTS.minMaxCount, Math.floor(currentMaxCount * countFactor)),
102
+ aggressive: false,
103
+ reason: `SLOW: p95=${p95}ms (threshold=${this._slowMs}ms). Tightening by ${Math.round(ratio * 50)}%.`,
104
+ };
105
+ }
106
+ return {
107
+ maxAgeDays: currentMaxAge,
108
+ maxCount: currentMaxCount,
109
+ aggressive: false,
110
+ reason: `OK: p95=${p95}ms (threshold=${this._slowMs}ms). No adjustment needed.`,
111
+ };
112
+ }
113
+ /** Reset all recorded latencies */
114
+ reset() {
115
+ this._window.length = 0;
116
+ }
117
+ /** Diagnostic: log current perf state */
118
+ logState(label) {
119
+ try {
120
+ const snap = this.getSnapshot();
121
+ const rec = this.recommendGC();
122
+ const msg = `[perf:${label}] avg=${snap.avgLatencyMs}ms p95=${snap.p95LatencyMs}ms n=${snap.sampleCount} → gc(${rec.maxAgeDays}d/${rec.maxCount}ct) ${rec.aggressive ? 'AGGRESSIVE' : 'normal'}`;
123
+ console.error(msg);
124
+ }
125
+ catch (e) {
126
+ (0, utils_1.logError)('perf-monitor:logState', e);
127
+ }
128
+ }
129
+ }
130
+ exports.PerfMonitor = PerfMonitor;
131
+ //# sourceMappingURL=perf-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-monitor.js","sourceRoot":"","sources":["../../../src/lib/kv-cache/perf-monitor.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -153,6 +153,8 @@ export interface KVCacheConfig {
153
153
  tier: TierConfig;
154
154
  embedding: EmbeddingConfig;
155
155
  backup: BackupConfig;
156
+ perfSlowMs?: number;
157
+ perfCriticalMs?: number;
156
158
  }
157
159
  export interface TokenBudgetConfig {
158
160
  bootContext: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n2-soul",
3
- "version": "9.0.6",
3
+ "version": "9.0.7",
4
4
  "description": "AI agent memory & session orchestrator for MCP — persistent KV-Cache, Soul Board, immutable Ledger",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",