nlm-memory 0.12.0 → 0.13.1

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.
Files changed (125) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/classify-parity.js +1 -1
  3. package/dist/cli/classify-parity.js.map +1 -1
  4. package/dist/cli/nlm.js +327 -56
  5. package/dist/cli/nlm.js.map +1 -1
  6. package/dist/core/classifier/prompt.d.ts +70 -0
  7. package/dist/core/classifier/prompt.js +71 -2
  8. package/dist/core/classifier/prompt.js.map +1 -1
  9. package/dist/core/exemplars/extract-exemplar.d.ts +36 -0
  10. package/dist/core/exemplars/extract-exemplar.js +177 -0
  11. package/dist/core/exemplars/extract-exemplar.js.map +1 -0
  12. package/dist/core/exemplars/ingest-exemplar.d.ts +30 -0
  13. package/dist/core/exemplars/ingest-exemplar.js +71 -0
  14. package/dist/core/exemplars/ingest-exemplar.js.map +1 -0
  15. package/dist/core/exemplars/recall-code.d.ts +25 -0
  16. package/dist/core/exemplars/recall-code.js +49 -0
  17. package/dist/core/exemplars/recall-code.js.map +1 -0
  18. package/dist/core/facts/backfill-facts.d.ts +4 -2
  19. package/dist/core/facts/backfill-facts.js +18 -27
  20. package/dist/core/facts/backfill-facts.js.map +1 -1
  21. package/dist/core/hook/strip-injected-context.d.ts +24 -0
  22. package/dist/core/hook/strip-injected-context.js +73 -0
  23. package/dist/core/hook/strip-injected-context.js.map +1 -0
  24. package/dist/core/ingest/ingest-session.d.ts +4 -2
  25. package/dist/core/ingest/ingest-session.js +12 -4
  26. package/dist/core/ingest/ingest-session.js.map +1 -1
  27. package/dist/core/providers/provider-registry.d.ts +31 -11
  28. package/dist/core/providers/provider-registry.js +27 -13
  29. package/dist/core/providers/provider-registry.js.map +1 -1
  30. package/dist/core/recall-facts/fact-recall-service.js +75 -28
  31. package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
  32. package/dist/core/scheduler/scheduler.d.ts +4 -2
  33. package/dist/core/scheduler/scheduler.js +26 -15
  34. package/dist/core/scheduler/scheduler.js.map +1 -1
  35. package/dist/core/sources/source-registry.d.ts +36 -12
  36. package/dist/core/sources/source-registry.js +59 -44
  37. package/dist/core/sources/source-registry.js.map +1 -1
  38. package/dist/core/storage/backup-rotation.d.ts +38 -0
  39. package/dist/core/storage/backup-rotation.js +82 -0
  40. package/dist/core/storage/backup-rotation.js.map +1 -0
  41. package/dist/core/storage/null-code-exemplar-store.d.ts +21 -0
  42. package/dist/core/storage/null-code-exemplar-store.js +19 -0
  43. package/dist/core/storage/null-code-exemplar-store.js.map +1 -0
  44. package/dist/core/storage/pg-fact-store.d.ts +2 -0
  45. package/dist/core/storage/pg-fact-store.js +34 -3
  46. package/dist/core/storage/pg-fact-store.js.map +1 -1
  47. package/dist/core/storage/pg-session-store.d.ts +14 -4
  48. package/dist/core/storage/pg-session-store.js +123 -2
  49. package/dist/core/storage/pg-session-store.js.map +1 -1
  50. package/dist/core/storage/pg-storage.d.ts +11 -2
  51. package/dist/core/storage/pg-storage.js +14 -2
  52. package/dist/core/storage/pg-storage.js.map +1 -1
  53. package/dist/core/storage/pg-tx-context.d.ts +2 -0
  54. package/dist/core/storage/pg-tx-context.js +12 -0
  55. package/dist/core/storage/pg-tx-context.js.map +1 -1
  56. package/dist/core/storage/sqlite-code-exemplar-store.d.ts +40 -0
  57. package/dist/core/storage/sqlite-code-exemplar-store.js +247 -0
  58. package/dist/core/storage/sqlite-code-exemplar-store.js.map +1 -0
  59. package/dist/core/storage/sqlite-fact-store.d.ts +2 -0
  60. package/dist/core/storage/sqlite-fact-store.js +30 -2
  61. package/dist/core/storage/sqlite-fact-store.js.map +1 -1
  62. package/dist/core/storage/sqlite-session-store.d.ts +21 -0
  63. package/dist/core/storage/sqlite-session-store.js +23 -0
  64. package/dist/core/storage/sqlite-session-store.js.map +1 -1
  65. package/dist/core/storage/sqlite-storage.d.ts +6 -0
  66. package/dist/core/storage/sqlite-storage.js +14 -2
  67. package/dist/core/storage/sqlite-storage.js.map +1 -1
  68. package/dist/core/storage/supersedence-log.d.ts +8 -0
  69. package/dist/core/storage/supersedence-log.js +19 -0
  70. package/dist/core/storage/supersedence-log.js.map +1 -1
  71. package/dist/hook/prompt-recall-hook.d.ts +5 -4
  72. package/dist/hook/prompt-recall-hook.js +12 -7
  73. package/dist/hook/prompt-recall-hook.js.map +1 -1
  74. package/dist/http/app.d.ts +7 -1
  75. package/dist/http/app.js +226 -83
  76. package/dist/http/app.js.map +1 -1
  77. package/dist/install/codex.d.ts +29 -1
  78. package/dist/install/codex.js +117 -15
  79. package/dist/install/codex.js.map +1 -1
  80. package/dist/install/cursor.d.ts +4 -4
  81. package/dist/install/cursor.js +7 -7
  82. package/dist/install/cursor.js.map +1 -1
  83. package/dist/install/health.d.ts +56 -0
  84. package/dist/install/health.js +133 -0
  85. package/dist/install/health.js.map +1 -0
  86. package/dist/install/setup.js +1 -1
  87. package/dist/install/setup.js.map +1 -1
  88. package/dist/install/windsurf.d.ts +4 -4
  89. package/dist/install/windsurf.js +7 -7
  90. package/dist/install/windsurf.js.map +1 -1
  91. package/dist/llm/classifier-box.d.ts +4 -0
  92. package/dist/llm/classifier-box.js +9 -2
  93. package/dist/llm/classifier-box.js.map +1 -1
  94. package/dist/llm/ollama-client.d.ts +19 -1
  95. package/dist/llm/ollama-client.js +14 -6
  96. package/dist/llm/ollama-client.js.map +1 -1
  97. package/dist/llm/ollama-code-embedder.d.ts +28 -0
  98. package/dist/llm/ollama-code-embedder.js +73 -0
  99. package/dist/llm/ollama-code-embedder.js.map +1 -0
  100. package/dist/mcp/server.d.ts +10 -0
  101. package/dist/mcp/server.js +132 -1
  102. package/dist/mcp/server.js.map +1 -1
  103. package/dist/ports/code-embedder.d.ts +27 -0
  104. package/dist/ports/code-embedder.js +15 -0
  105. package/dist/ports/code-embedder.js.map +1 -0
  106. package/dist/ports/code-exemplar-store.d.ts +45 -0
  107. package/dist/ports/code-exemplar-store.js +11 -0
  108. package/dist/ports/code-exemplar-store.js.map +1 -0
  109. package/dist/ports/fact-store.d.ts +0 -0
  110. package/dist/ports/fact-store.js.map +1 -1
  111. package/dist/ports/storage.d.ts +8 -0
  112. package/dist/shared/types.d.ts +35 -0
  113. package/dist/ui/assets/{index-Fr5AMEPj.js → index-CVo7KKw2.js} +1 -1
  114. package/dist/ui/assets/{index-C74N8APQ.css → index-DCuQrzJH.css} +1 -1
  115. package/dist/ui/index.html +2 -2
  116. package/migrations/021_code_exemplars.sql +51 -0
  117. package/migrations/022_facts_retired_at.sql +17 -0
  118. package/migrations/pg/021_code_exemplars.sql +45 -0
  119. package/migrations/pg/022_facts_retired_at.sql +12 -0
  120. package/nlm/index.js +6 -1
  121. package/package.json +3 -2
  122. package/plugin/.codex-plugin/plugin.json +2 -2
  123. package/plugin/hooks/hooks.json +13 -2
  124. package/plugin/scripts/prompt-recall-hook.mjs +7 -1
  125. package/plugin/scripts/session-start-hook.mjs +275 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/core/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/core/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
@@ -44,27 +44,46 @@ export interface SourceUpdate {
44
44
  readonly parseConfig?: Record<string, unknown>;
45
45
  readonly enabled?: boolean;
46
46
  }
47
- export declare class SourceRegistry {
47
+ /**
48
+ * SourceRegistryPort — the backend-agnostic source-registry contract that
49
+ * SqliteStorage and PgStorage expose as `storage.sources`. Async across both
50
+ * backends (the SQLite impl declares async methods with sync bodies, matching
51
+ * the SignalStore/FactStore convention). `getToken` is intentionally NOT on the
52
+ * port — only the not-yet-ported scheduler reads it, via rawDb directly.
53
+ */
54
+ export interface SourceRegistryPort {
55
+ list(): Promise<SourceRow[]>;
56
+ get(id: number): Promise<SourceRow | null>;
57
+ getByName(name: string): Promise<SourceRow | null>;
58
+ insert(input: SourceInsert): Promise<SourceRow>;
59
+ findByToken(token: string): Promise<SourceRow | null>;
60
+ regenerateToken(id: number): Promise<string | null>;
61
+ update(id: number, patch: SourceUpdate): Promise<SourceRow | null>;
62
+ delete(id: number): Promise<boolean>;
63
+ seedDefaults(): Promise<void>;
64
+ }
65
+ export declare class SourceRegistry implements SourceRegistryPort {
48
66
  private readonly db;
49
67
  constructor(db: Database.Database);
50
- list(): SourceRow[];
51
- get(id: number): SourceRow | null;
52
- getByName(name: string): SourceRow | null;
53
- insert(input: SourceInsert): SourceRow;
68
+ list(): Promise<SourceRow[]>;
69
+ get(id: number): Promise<SourceRow | null>;
70
+ getByName(name: string): Promise<SourceRow | null>;
71
+ insert(input: SourceInsert): Promise<SourceRow>;
54
72
  /** Daemon-internal: resolve a bearer token to its owning source. */
55
- findByToken(token: string): SourceRow | null;
56
- /** Daemon-internal: returns the raw token. Never echo to HTTP responses. */
73
+ findByToken(token: string): Promise<SourceRow | null>;
74
+ /** Daemon-internal: returns the raw token. Never echo to HTTP responses.
75
+ * Not on SourceRegistryPort — only the (unported) scheduler reads it. */
57
76
  getToken(id: number): string | null;
58
77
  /** Mint a fresh token, invalidating any previous one. */
59
- regenerateToken(id: number): string | null;
60
- update(id: number, patch: SourceUpdate): SourceRow | null;
61
- delete(id: number): boolean;
78
+ regenerateToken(id: number): Promise<string | null>;
79
+ update(id: number, patch: SourceUpdate): Promise<SourceRow | null>;
80
+ delete(id: number): Promise<boolean>;
62
81
  /**
63
82
  * Seed the three legacy adapter presets on first boot of an empty
64
83
  * registry. Subsequent boots are no-ops. Respects per-runtime env
65
84
  * overrides so existing installs don't lose their custom paths.
66
85
  */
67
- seedDefaults(): void;
86
+ seedDefaults(): Promise<void>;
68
87
  }
69
88
  import type { Pool } from "pg";
70
89
  /**
@@ -72,11 +91,16 @@ import type { Pool } from "pg";
72
91
  * Takes a pg.Pool instead of better-sqlite3.Database.
73
92
  * API mirrors SourceRegistry exactly so callers swap the constructor arg.
74
93
  */
75
- export declare class PgSourceRegistry {
94
+ export declare class PgSourceRegistry implements SourceRegistryPort {
76
95
  private readonly pool;
77
96
  constructor(pool: Pool);
78
97
  list(): Promise<SourceRow[]>;
79
98
  get(id: number): Promise<SourceRow | null>;
99
+ getByName(name: string): Promise<SourceRow | null>;
100
+ /** Daemon-internal: resolve a bearer token to its owning source. */
101
+ findByToken(token: string): Promise<SourceRow | null>;
102
+ /** Mint a fresh token, invalidating any previous one. Webhook sources only. */
103
+ regenerateToken(id: number): Promise<string | null>;
80
104
  insert(input: SourceInsert): Promise<SourceRow>;
81
105
  update(id: number, patch: SourceUpdate): Promise<SourceRow | null>;
82
106
  delete(id: number): Promise<boolean>;
@@ -51,19 +51,19 @@ export class SourceRegistry {
51
51
  constructor(db) {
52
52
  this.db = db;
53
53
  }
54
- list() {
54
+ async list() {
55
55
  const rows = this.db.prepare(`SELECT * FROM sources ORDER BY id ASC`).all();
56
56
  return rows.map((r) => rowFromDb(r));
57
57
  }
58
- get(id) {
58
+ async get(id) {
59
59
  const row = this.db.prepare(`SELECT * FROM sources WHERE id = ?`).get(id);
60
60
  return row ? rowFromDb(row) : null;
61
61
  }
62
- getByName(name) {
62
+ async getByName(name) {
63
63
  const row = this.db.prepare(`SELECT * FROM sources WHERE name = ?`).get(name);
64
64
  return row ? rowFromDb(row) : null;
65
65
  }
66
- insert(input) {
66
+ async insert(input) {
67
67
  const token = input.kind === "webhook" ? mintToken() : null;
68
68
  const stmt = this.db.prepare(`
69
69
  INSERT INTO sources (kind, name, path_or_url, runtime_label, parse_config, enabled, token)
@@ -87,20 +87,21 @@ export class SourceRegistry {
87
87
  return rowFromDb(dbRow, token);
88
88
  }
89
89
  /** Daemon-internal: resolve a bearer token to its owning source. */
90
- findByToken(token) {
90
+ async findByToken(token) {
91
91
  if (!token)
92
92
  return null;
93
93
  const row = this.db.prepare(`SELECT * FROM sources WHERE token = ?`).get(token);
94
94
  return row ? rowFromDb(row) : null;
95
95
  }
96
- /** Daemon-internal: returns the raw token. Never echo to HTTP responses. */
96
+ /** Daemon-internal: returns the raw token. Never echo to HTTP responses.
97
+ * Not on SourceRegistryPort — only the (unported) scheduler reads it. */
97
98
  getToken(id) {
98
99
  const row = this.db.prepare(`SELECT token FROM sources WHERE id = ?`).get(id);
99
100
  return row?.token ?? null;
100
101
  }
101
102
  /** Mint a fresh token, invalidating any previous one. */
102
- regenerateToken(id) {
103
- const current = this.get(id);
103
+ async regenerateToken(id) {
104
+ const current = await this.get(id);
104
105
  if (!current || current.kind !== "webhook")
105
106
  return null;
106
107
  const token = mintToken();
@@ -108,7 +109,7 @@ export class SourceRegistry {
108
109
  .run(token, id);
109
110
  return token;
110
111
  }
111
- update(id, patch) {
112
+ async update(id, patch) {
112
113
  const fields = [];
113
114
  const params = { id };
114
115
  if (patch.name !== undefined) {
@@ -137,7 +138,7 @@ export class SourceRegistry {
137
138
  this.db.prepare(`UPDATE sources SET ${fields.join(", ")} WHERE id = @id`).run(params);
138
139
  return this.get(id);
139
140
  }
140
- delete(id) {
141
+ async delete(id) {
141
142
  const result = this.db.prepare(`DELETE FROM sources WHERE id = ?`).run(id);
142
143
  return result.changes > 0;
143
144
  }
@@ -146,7 +147,7 @@ export class SourceRegistry {
146
147
  * registry. Subsequent boots are no-ops. Respects per-runtime env
147
148
  * overrides so existing installs don't lose their custom paths.
148
149
  */
149
- seedDefaults() {
150
+ async seedDefaults() {
150
151
  const count = this.db.prepare(`SELECT COUNT(*) AS c FROM sources`).get();
151
152
  if ((count?.c ?? 0) > 0)
152
153
  return;
@@ -229,9 +230,29 @@ export class SourceRegistry {
229
230
  },
230
231
  ];
231
232
  for (const p of presets)
232
- this.insert(p);
233
+ await this.insert(p);
233
234
  }
234
235
  }
236
+ function pgRowToSource(r) {
237
+ return {
238
+ id: r.id,
239
+ kind: r.kind,
240
+ name: r.name,
241
+ pathOrUrl: r.path_or_url,
242
+ runtimeLabel: r.runtime_label,
243
+ parseConfig: (() => { try {
244
+ return JSON.parse(r.parse_config);
245
+ }
246
+ catch {
247
+ return {};
248
+ } })(),
249
+ enabled: r.enabled,
250
+ token: null,
251
+ hasToken: r.token !== null && r.token.length > 0,
252
+ createdAt: r.created_at,
253
+ updatedAt: r.updated_at,
254
+ };
255
+ }
235
256
  /**
236
257
  * PgSourceRegistry — CRUD over `sources` for the PG storage path.
237
258
  * Takes a pg.Pool instead of better-sqlite3.Database.
@@ -246,24 +267,7 @@ export class PgSourceRegistry {
246
267
  const result = await this.pool.query(`SELECT id, kind, name, path_or_url, runtime_label, parse_config,
247
268
  enabled, token, created_at, updated_at
248
269
  FROM sources ORDER BY id`);
249
- return result.rows.map((r) => ({
250
- id: r.id,
251
- kind: r.kind,
252
- name: r.name,
253
- pathOrUrl: r.path_or_url,
254
- runtimeLabel: r.runtime_label,
255
- parseConfig: (() => { try {
256
- return JSON.parse(r.parse_config);
257
- }
258
- catch {
259
- return {};
260
- } })(),
261
- enabled: r.enabled,
262
- token: null,
263
- hasToken: r.token !== null && r.token.length > 0,
264
- createdAt: r.created_at,
265
- updatedAt: r.updated_at,
266
- }));
270
+ return result.rows.map(pgRowToSource);
267
271
  }
268
272
  async get(id) {
269
273
  const result = await this.pool.query(`SELECT id, kind, name, path_or_url, runtime_label, parse_config,
@@ -271,20 +275,31 @@ export class PgSourceRegistry {
271
275
  FROM sources WHERE id = $1`, [id]);
272
276
  if (!result.rows[0])
273
277
  return null;
274
- const r = result.rows[0];
275
- return {
276
- id: r.id, kind: r.kind, name: r.name, pathOrUrl: r.path_or_url,
277
- runtimeLabel: r.runtime_label,
278
- parseConfig: (() => { try {
279
- return JSON.parse(r.parse_config);
280
- }
281
- catch {
282
- return {};
283
- } })(),
284
- enabled: r.enabled, token: null,
285
- hasToken: r.token !== null && r.token.length > 0,
286
- createdAt: r.created_at, updatedAt: r.updated_at,
287
- };
278
+ return pgRowToSource(result.rows[0]);
279
+ }
280
+ async getByName(name) {
281
+ const result = await this.pool.query(`SELECT id, kind, name, path_or_url, runtime_label, parse_config,
282
+ enabled, token, created_at, updated_at
283
+ FROM sources WHERE name = $1`, [name]);
284
+ return result.rows[0] ? pgRowToSource(result.rows[0]) : null;
285
+ }
286
+ /** Daemon-internal: resolve a bearer token to its owning source. */
287
+ async findByToken(token) {
288
+ if (!token)
289
+ return null;
290
+ const result = await this.pool.query(`SELECT id, kind, name, path_or_url, runtime_label, parse_config,
291
+ enabled, token, created_at, updated_at
292
+ FROM sources WHERE token = $1`, [token]);
293
+ return result.rows[0] ? pgRowToSource(result.rows[0]) : null;
294
+ }
295
+ /** Mint a fresh token, invalidating any previous one. Webhook sources only. */
296
+ async regenerateToken(id) {
297
+ const current = await this.get(id);
298
+ if (!current || current.kind !== "webhook")
299
+ return null;
300
+ const token = mintToken();
301
+ await this.pool.query("UPDATE sources SET token = $1, updated_at = NOW() WHERE id = $2", [token, id]);
302
+ return token;
288
303
  }
289
304
  async insert(input) {
290
305
  // Webhook sources get a token minted at insert time — revealed once on the
@@ -1 +1 @@
1
- {"version":3,"file":"source-registry.js","sourceRoot":"","sources":["../../../src/core/sources/source-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-registry.js","sourceRoot":"","sources":["../../../src/core/sources/source-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Rolling daily backups of the canonical store.
3
+ *
4
+ * A dated snapshot (`canonical-YYYY-MM-DD.sqlite`) is written via VACUUM INTO
5
+ * (live-consistent, see db-restore.vacuumSnapshot) into `<dbDir>/backups/`, and
6
+ * snapshots older than the retention window are pruned. This is the worst-case
7
+ * mitigation: a bad migration that silently corrupts canonical.sqlite is
8
+ * recoverable from yesterday's snapshot via `nlm restore --from <date>`.
9
+ *
10
+ * The date arithmetic (which snapshots to prune, filename <-> date) is pure and
11
+ * unit-tested; the IO wrapper lives in `runRollingBackup`.
12
+ */
13
+ import Database from "better-sqlite3";
14
+ export declare function backupDir(dbPath: string): string;
15
+ export declare function backupFilename(date: string): string;
16
+ /** Extract the YYYY-MM-DD date from a backup filename, or null if it isn't one. */
17
+ export declare function parseBackupDate(filename: string): string | null;
18
+ /**
19
+ * Given the backup filenames present, the retention window, and today's date,
20
+ * return the filenames to delete — those whose date is more than
21
+ * `retentionDays` before `today`. Non-backup filenames are ignored. Pure.
22
+ */
23
+ export declare function backupsToPrune(filenames: ReadonlyArray<string>, retentionDays: number, today: string): string[];
24
+ export interface RollingBackupResult {
25
+ readonly written: string;
26
+ readonly bytes: number;
27
+ readonly pruned: ReadonlyArray<string>;
28
+ }
29
+ /**
30
+ * Write today's snapshot and prune expired ones. `today` is injected
31
+ * (YYYY-MM-DD) so the rotation is deterministic and testable. Idempotent: a
32
+ * second call on the same day overwrites the day's snapshot.
33
+ */
34
+ export declare function runRollingBackup(db: Database.Database, dbPath: string, today: string, retentionDays: number): RollingBackupResult;
35
+ /** Resolve the snapshot file for a given date, or null if absent. */
36
+ export declare function resolveBackup(dbPath: string, date: string): string | null;
37
+ /** List available backup dates (descending), for error messages and `--list`. */
38
+ export declare function listBackupDates(dbPath: string): string[];
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Rolling daily backups of the canonical store.
3
+ *
4
+ * A dated snapshot (`canonical-YYYY-MM-DD.sqlite`) is written via VACUUM INTO
5
+ * (live-consistent, see db-restore.vacuumSnapshot) into `<dbDir>/backups/`, and
6
+ * snapshots older than the retention window are pruned. This is the worst-case
7
+ * mitigation: a bad migration that silently corrupts canonical.sqlite is
8
+ * recoverable from yesterday's snapshot via `nlm restore --from <date>`.
9
+ *
10
+ * The date arithmetic (which snapshots to prune, filename <-> date) is pure and
11
+ * unit-tested; the IO wrapper lives in `runRollingBackup`.
12
+ */
13
+ import Database from "better-sqlite3";
14
+ import { existsSync, mkdirSync, readdirSync, rmSync } from "node:fs";
15
+ import { dirname, join } from "node:path";
16
+ import { vacuumSnapshot } from "./db-restore.js";
17
+ const FILENAME_RE = /^canonical-(\d{4}-\d{2}-\d{2})\.sqlite$/;
18
+ export function backupDir(dbPath) {
19
+ return join(dirname(dbPath), "backups");
20
+ }
21
+ export function backupFilename(date) {
22
+ return `canonical-${date}.sqlite`;
23
+ }
24
+ /** Extract the YYYY-MM-DD date from a backup filename, or null if it isn't one. */
25
+ export function parseBackupDate(filename) {
26
+ const m = FILENAME_RE.exec(filename);
27
+ return m ? m[1] : null;
28
+ }
29
+ function daysBetween(fromDate, toDate) {
30
+ const from = Date.parse(`${fromDate}T00:00:00Z`);
31
+ const to = Date.parse(`${toDate}T00:00:00Z`);
32
+ return Math.round((to - from) / 86_400_000);
33
+ }
34
+ /**
35
+ * Given the backup filenames present, the retention window, and today's date,
36
+ * return the filenames to delete — those whose date is more than
37
+ * `retentionDays` before `today`. Non-backup filenames are ignored. Pure.
38
+ */
39
+ export function backupsToPrune(filenames, retentionDays, today) {
40
+ return filenames.filter((name) => {
41
+ const date = parseBackupDate(name);
42
+ if (date === null)
43
+ return false;
44
+ return daysBetween(date, today) >= retentionDays;
45
+ });
46
+ }
47
+ /**
48
+ * Write today's snapshot and prune expired ones. `today` is injected
49
+ * (YYYY-MM-DD) so the rotation is deterministic and testable. Idempotent: a
50
+ * second call on the same day overwrites the day's snapshot.
51
+ */
52
+ export function runRollingBackup(db, dbPath, today, retentionDays) {
53
+ const dir = backupDir(dbPath);
54
+ mkdirSync(dir, { recursive: true });
55
+ const dest = join(dir, backupFilename(today));
56
+ const bytes = vacuumSnapshot(db, dest);
57
+ const present = readdirSync(dir);
58
+ const pruned = backupsToPrune(present, retentionDays, today);
59
+ for (const name of pruned) {
60
+ if (name === backupFilename(today))
61
+ continue; // never prune the one just written
62
+ rmSync(join(dir, name), { force: true });
63
+ }
64
+ return { written: dest, bytes, pruned };
65
+ }
66
+ /** Resolve the snapshot file for a given date, or null if absent. */
67
+ export function resolveBackup(dbPath, date) {
68
+ const path = join(backupDir(dbPath), backupFilename(date));
69
+ return existsSync(path) ? path : null;
70
+ }
71
+ /** List available backup dates (descending), for error messages and `--list`. */
72
+ export function listBackupDates(dbPath) {
73
+ const dir = backupDir(dbPath);
74
+ if (!existsSync(dir))
75
+ return [];
76
+ return readdirSync(dir)
77
+ .map(parseBackupDate)
78
+ .filter((d) => d !== null)
79
+ .sort()
80
+ .reverse();
81
+ }
82
+ //# sourceMappingURL=backup-rotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-rotation.js","sourceRoot":"","sources":["../../../src/core/storage/backup-rotation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * NullCodeExemplarStore — no-op implementation of CodeExemplarStore.
3
+ *
4
+ * Used by PgStorage until a full PG exemplar adapter is built.
5
+ * All writes succeed silently; reads return empty results.
6
+ */
7
+ import type { CodeExemplarSearchFilter, CodeExemplarStore } from "../../ports/code-exemplar-store.js";
8
+ import type { CodeExemplar, CodeExemplarHit, CodeExemplarInput } from "../../shared/types.js";
9
+ export declare class NullCodeExemplarStore implements CodeExemplarStore {
10
+ insert(_input: CodeExemplarInput): Promise<{
11
+ id: string;
12
+ skipped: boolean;
13
+ }>;
14
+ insertMany(_inputs: ReadonlyArray<CodeExemplarInput>): Promise<number>;
15
+ upsertEmbedding(_exemplarId: string, _vector: Float32Array): Promise<void>;
16
+ searchByVector(_v: Float32Array, _f: CodeExemplarSearchFilter): Promise<ReadonlyArray<CodeExemplarHit>>;
17
+ getById(_id: string): Promise<CodeExemplar | null>;
18
+ applyBucketCap(_installScope: string, _maxPerBucket: number): Promise<number>;
19
+ pruneReverted(_installScope: string): Promise<number>;
20
+ pruneOlderThan(_olderThanTs: string): Promise<number>;
21
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * NullCodeExemplarStore — no-op implementation of CodeExemplarStore.
3
+ *
4
+ * Used by PgStorage until a full PG exemplar adapter is built.
5
+ * All writes succeed silently; reads return empty results.
6
+ */
7
+ export class NullCodeExemplarStore {
8
+ async insert(_input) {
9
+ return { id: "", skipped: true };
10
+ }
11
+ async insertMany(_inputs) { return 0; }
12
+ async upsertEmbedding(_exemplarId, _vector) { }
13
+ async searchByVector(_v, _f) { return []; }
14
+ async getById(_id) { return null; }
15
+ async applyBucketCap(_installScope, _maxPerBucket) { return 0; }
16
+ async pruneReverted(_installScope) { return 0; }
17
+ async pruneOlderThan(_olderThanTs) { return 0; }
18
+ }
19
+ //# sourceMappingURL=null-code-exemplar-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-code-exemplar-store.js","sourceRoot":"","sources":["../../../src/core/storage/null-code-exemplar-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,MAAM,CAAC,MAAyB;QACpC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,OAAyC,IAAqB,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1F,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,OAAqB,IAAkB,CAAC;IACnF,KAAK,CAAC,cAAc,CAAC,EAAgB,EAAE,EAA4B,IAA6C,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5H,KAAK,CAAC,OAAO,CAAC,GAAW,IAAkC,OAAO,IAAI,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,cAAc,CAAC,aAAqB,EAAE,aAAqB,IAAqB,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,CAAC,aAAa,CAAC,aAAqB,IAAqB,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,cAAc,CAAC,YAAoB,IAAqB,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1E"}
@@ -12,11 +12,13 @@ export declare class PgFactStore implements FactStore {
12
12
  insert(fact: Fact): Promise<void>;
13
13
  insertMany(facts: ReadonlyArray<Fact>): Promise<void>;
14
14
  getById(id: string): Promise<Fact | null>;
15
+ getByIds(ids: ReadonlyArray<string>): Promise<ReadonlyArray<Fact>>;
15
16
  findCurrent(subject: string, predicate: string): Promise<Fact | null>;
16
17
  list(query: FactQuery): Promise<ReadonlyArray<Fact>>;
17
18
  listBySession(sessionId: string): Promise<ReadonlyArray<Fact>>;
18
19
  listForRecall(filter: FactListFilter): Promise<ReadonlyArray<Fact>>;
19
20
  markSuperseded(oldId: string, newId: string | null): Promise<void>;
21
+ retire(factId: string): Promise<void>;
20
22
  ingestSessionFacts(sessionId: string, facts: ReadonlyArray<Fact>): Promise<void>;
21
23
  upsertEmbedding(factId: string, vector: Float32Array): Promise<void>;
22
24
  semanticSearch(queryVector: Float32Array, limit: number): Promise<ReadonlyArray<FactSemanticNeighbor>>;
@@ -42,11 +42,19 @@ export class PgFactStore {
42
42
  FROM facts WHERE id = $1`, [id]);
43
43
  return result.rows[0] ? rowToFact(result.rows[0]) : null;
44
44
  }
45
+ async getByIds(ids) {
46
+ if (ids.length === 0)
47
+ return [];
48
+ const result = await this.pool.query(`SELECT id, kind, subject, predicate, value, source_session_id,
49
+ source_quote, created_at, superseded_by, confidence
50
+ FROM facts WHERE id = ANY($1)`, [ids]);
51
+ return result.rows.map(rowToFact);
52
+ }
45
53
  async findCurrent(subject, predicate) {
46
54
  const result = await this.pool.query(`SELECT id, kind, subject, predicate, value, source_session_id,
47
55
  source_quote, created_at, superseded_by, confidence
48
56
  FROM facts
49
- WHERE subject = $1 AND predicate = $2 AND superseded_by IS NULL
57
+ WHERE subject = $1 AND predicate = $2 AND superseded_by IS NULL AND retired_at IS NULL
50
58
  ORDER BY created_at DESC
51
59
  LIMIT 1`, [subject, predicate]);
52
60
  return result.rows[0] ? rowToFact(result.rows[0]) : null;
@@ -61,8 +69,10 @@ export class PgFactStore {
61
69
  where.push(`predicate = $${idx++}`);
62
70
  params.push(query.predicate);
63
71
  }
64
- if (!includeSuperseded)
72
+ if (!includeSuperseded) {
65
73
  where.push("superseded_by IS NULL");
74
+ where.push("retired_at IS NULL");
75
+ }
66
76
  params.push(limit);
67
77
  const result = await this.pool.query(`SELECT id, kind, subject, predicate, value, source_session_id,
68
78
  source_quote, created_at, superseded_by, confidence
@@ -100,8 +110,10 @@ export class PgFactStore {
100
110
  where.push(`confidence >= $${idx++}`);
101
111
  params.push(filter.minConfidence);
102
112
  }
103
- if (filter.includeSuperseded !== true)
113
+ if (filter.includeSuperseded !== true) {
104
114
  where.push("superseded_by IS NULL");
115
+ where.push("retired_at IS NULL");
116
+ }
105
117
  const limit = Math.max(1, Math.trunc(filter.limit ?? 500));
106
118
  params.push(limit);
107
119
  const sql = `
@@ -141,6 +153,25 @@ export class PgFactStore {
141
153
  client.release();
142
154
  }
143
155
  }
156
+ async retire(factId) {
157
+ const client = await this.pool.connect();
158
+ try {
159
+ await client.query("BEGIN");
160
+ const row = await client.query("SELECT id FROM facts WHERE id = $1", [factId]);
161
+ if (row.rows.length === 0)
162
+ throw new Error(`Fact ${factId} not found`);
163
+ await client.query("UPDATE facts SET retired_at = $1 WHERE id = $2", [new Date().toISOString(), factId]);
164
+ await client.query("DELETE FROM fact_embeddings WHERE fact_id = $1", [factId]);
165
+ await client.query("COMMIT");
166
+ }
167
+ catch (err) {
168
+ await client.query("ROLLBACK");
169
+ throw err;
170
+ }
171
+ finally {
172
+ client.release();
173
+ }
174
+ }
144
175
  async ingestSessionFacts(sessionId, facts) {
145
176
  const client = await this.pool.connect();
146
177
  try {