@melra/storage-sqlite 0.3.0-alpha.14 → 0.3.0-alpha.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -36,7 +36,7 @@ running server.
36
36
  Schema changes need a new migration rather than an edit to an existing one.
37
37
 
38
38
  Uses `node:sqlite`, which emits an experimental warning on Node 22 and 24.
39
- Requires Node.js 22 or newer. Full documentation:
39
+ Requires Node.js 22.13 or newer, or 23.4 or newer. Full documentation:
40
40
  [github.com/XAGI-Lab/melra](https://github.com/XAGI-Lab/melra)
41
41
 
42
42
  Apache-2.0
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
2
  import type { MemoryScope, TaskRecord } from "./types.js";
3
- import { type EncryptedPayload, type ApprovalDecision, type WorkflowDefinition, type WorkflowEvent, type WorkflowRun, type WorkflowSnapshot } from "@melra/protocol";
3
+ import { type EncryptedPayload, type ApprovalDecision, type WorkflowEvent, type WorkflowRun, type WorkflowSnapshot } from "@melra/protocol";
4
4
  import type { ActionReceipt, ExecutionCertificate } from "@melra/receipt-schema";
5
5
  export interface MemoryRecord {
6
6
  id: string;
@@ -24,6 +24,17 @@ interface IdempotencyCommitRow {
24
24
  attempt: number;
25
25
  committedAt: string;
26
26
  }
27
+ /**
28
+ * The redacted copy of a workflow definition, kept for reading. Redaction
29
+ * rewrites any string shaped like a credential, so a node id or a URL in it
30
+ * may no longer match the definition schema; only the identity it is stored
31
+ * under is checked. The sealed payload is the definition that runs.
32
+ */
33
+ declare const RedactedWorkflowDefinitionSchema: import("zod").ZodObject<{
34
+ id: import("zod").ZodString;
35
+ version: import("zod").ZodNumber;
36
+ }, import("zod/v4/core").$loose>;
37
+ export type RedactedWorkflowDefinition = ReturnType<typeof RedactedWorkflowDefinitionSchema.parse>;
27
38
  export declare class SqliteStore {
28
39
  readonly path: string;
29
40
  readonly database: DatabaseSync;
@@ -46,10 +57,22 @@ export declare class SqliteStore {
46
57
  });
47
58
  private migrate;
48
59
  private applyMigration;
49
- private transaction;
60
+ /**
61
+ * Runs `action` as one write transaction: another process sharing the
62
+ * database waits, so nothing it read changes before it writes, and a throw
63
+ * undoes every write it made. `action` must not call a method that opens a
64
+ * transaction of its own.
65
+ */
66
+ transaction<T>(action: () => T): T;
50
67
  private addColumnIfMissing;
51
68
  /** Without `owner`, a save keeps whichever owner the row already has. */
52
69
  saveTask(task: TaskRecord, owner?: string): void;
70
+ /**
71
+ * `saveTask` only while the stored status is one of `expected`, saying
72
+ * whether it wrote: a compare-and-set, so of two processes moving one task
73
+ * out of a status (an execute and a deny, or two executes) exactly one does.
74
+ */
75
+ saveTaskIf(task: TaskRecord, expected: readonly TaskRecord["status"][], owner?: string): boolean;
53
76
  /**
54
77
  * This store's owner id, created on first use. "Alive" means someone holds
55
78
  * an exclusive SQLite lock on `<db>-owners/<id>`; the kernel drops that lock
@@ -74,6 +97,16 @@ export declare class SqliteStore {
74
97
  claimInterruptedTask(id: string): TaskRecord | undefined;
75
98
  getTask(id: string): TaskRecord | undefined;
76
99
  listTasks(limit?: number, status?: TaskRecord["status"]): TaskRecord[];
100
+ /**
101
+ * Tasks waiting on a semantic judgement (#54) whose wait is over, oldest
102
+ * first, and only those: the sweep that settles them should neither parse
103
+ * every waiting row nor let newer ones crowd out the oldest. A task's
104
+ * judgements share one `expiresAt`, which the kernel writes as an ISO
105
+ * string, so the comparison is a string one; a row with none is due.
106
+ */
107
+ listExpiredJudgements(now: string): TaskRecord[];
108
+ /** Every task planned under one idempotency key, any status, found by its index. */
109
+ listTasksByKey(idempotencyKey: string): TaskRecord[];
77
110
  /** Counted in SQL so a summary does not have to load every task to add them up. */
78
111
  taskStatusCounts(): Record<string, number>;
79
112
  saveTaskPayload(taskId: string, payload: EncryptedPayload, at: string): void;
@@ -88,8 +121,8 @@ export declare class SqliteStore {
88
121
  * stored under this id and version (the caller has checked it is the same
89
122
  * one), so only the run and its events are written.
90
123
  */
91
- createWorkflow(redactedDefinition: WorkflowDefinition, payload: EncryptedPayload | undefined, run: WorkflowRun, events: WorkflowEvent[]): void;
92
- getWorkflowDefinition(id: string, version: number): WorkflowDefinition | undefined;
124
+ createWorkflow(redactedDefinition: unknown, payload: EncryptedPayload | undefined, run: WorkflowRun, events: WorkflowEvent[]): void;
125
+ getWorkflowDefinition(id: string, version: number): RedactedWorkflowDefinition | undefined;
93
126
  getWorkflowRun(id: string): WorkflowRun | undefined;
94
127
  listWorkflowRuns(statuses?: WorkflowRun["status"][]): WorkflowRun[];
95
128
  listWorkflowEvents(id: string, afterSequence?: number): WorkflowEvent[];
@@ -115,19 +148,28 @@ export declare class SqliteStore {
115
148
  } | undefined;
116
149
  commitIdempotency(key: string, taskId: string, attempt: number, at: string): boolean;
117
150
  getIdempotencyCommit(key: string): IdempotencyCommitRow | undefined;
151
+ /** False when a decision for this approval was already recorded. */
152
+ recordApprovalDecision(decision: ApprovalDecision): boolean;
153
+ getApprovalDecision(approvalId: string): ApprovalDecision | undefined;
118
154
  /**
119
155
  * Draws one operation, and whatever it declared it moved, against a grant.
120
156
  *
121
157
  * Silent on a repeat: the key is `(grant, task)`, so recovery replaying a
122
- * committed task or a receipt being rebuilt cannot spend the grant a second
123
- * time. Called at the same point as `commitIdempotency` — after verification,
124
- * never at plan time — so a refused, failed, or cancelled operation leaves
125
- * the budget where it found it.
158
+ * task or a receipt being rebuilt cannot spend the grant a second time.
159
+ * Called once the adapter may have run (it returned, or threw an
160
+ * outcome-unknown error), whatever the evidence then says, and never at
161
+ * plan time: a refusal, a cancel before the adapter ran, an adapter error
162
+ * saying nothing went out, or a duplicate stopped before it ran leaves the
163
+ * budget where it found it.
126
164
  */
127
- /** False when a decision for this approval was already recorded. */
128
- recordApprovalDecision(decision: ApprovalDecision): boolean;
129
- getApprovalDecision(approvalId: string): ApprovalDecision | undefined;
130
165
  recordCapabilityUse(grantId: string, taskId: string, amount: number, at: string): void;
166
+ /**
167
+ * Whether a task has drawn any grant.
168
+ *
169
+ * ponytail: scans capability_usage, whose key leads with grant_id; asked
170
+ * only when settling a task after the fact. Index task_id if that changes.
171
+ */
172
+ hasCapabilityUse(taskId: string): boolean;
131
173
  /**
132
174
  * What a grant has spent: every operation ever, and the declared amounts
133
175
  * committed at or after `since`.
@@ -141,13 +183,33 @@ export declare class SqliteStore {
141
183
  saveReceipt(receipt: ActionReceipt): void;
142
184
  getReceipt(id: string): ActionReceipt | undefined;
143
185
  getReceiptsForTask(taskId: string): ActionReceipt[];
144
- saveCertificate(certificate: ExecutionCertificate): void;
186
+ /**
187
+ * Stores a task's certificate in place of the one it had, and returns what
188
+ * is stored. With `ifAbsent` one already there stays instead, so two
189
+ * processes certifying the same outcome hand out the same certificate.
190
+ */
191
+ saveCertificate(certificate: ExecutionCertificate, { ifAbsent }?: {
192
+ ifAbsent?: boolean;
193
+ }): ExecutionCertificate;
145
194
  getCertificateForTask(taskId: string): ExecutionCertificate | undefined;
146
195
  putMemory(memory: MemoryRecord): void;
147
196
  getMemory(id: string): MemoryRecord | undefined;
148
197
  listMemories(scope: MemoryScope, limit: number, includeSuperseded?: boolean): MemoryRecord[];
149
198
  memoryCandidates(scope: MemoryScope, limit: number, includeSuperseded?: boolean): MemoryRecord[];
150
199
  supersedeMemory(id: string, scope: MemoryScope, supersededBy: string): boolean;
200
+ /**
201
+ * Make `id` live again if `supersededBy` is what retired it, for when the
202
+ * record that replaced it is deleted or stops claiming to replace it.
203
+ * Otherwise it stayed hidden with nothing live pointing at it, so it could
204
+ * be neither read, edited nor superseded, and compaction later deleted it.
205
+ */
206
+ unsupersedeMemory(id: string, scope: MemoryScope, supersededBy: string): boolean;
207
+ /**
208
+ * Deleting a live correction undoes it: what it replaced is live again.
209
+ * Deleting one in the middle of a chain links the records on either side of
210
+ * it, so the latest stays the only live one. An expired correction leaves
211
+ * what it replaced retired, as it does once compaction has removed it.
212
+ */
151
213
  deleteMemory(id: string, scope: MemoryScope): boolean;
152
214
  clearMemories(scope: MemoryScope): number;
153
215
  /**
@@ -162,9 +224,8 @@ export declare class SqliteStore {
162
224
  * memories, which is data the caller stored and can still read. An operator
163
225
  * who wants a hard ceiling opts into one.
164
226
  *
165
- * A superseded row is only dropped once nothing live points at it, so
166
- * `supersedes_id` never dangles and a chain is removed from its tail
167
- * inwards across successive compactions.
227
+ * A superseded row is only dropped once nothing live points at it, so a
228
+ * chain is removed from its tail inwards across successive compactions.
168
229
  */
169
230
  compactMemories(scope: MemoryScope, retention: {
170
231
  maxAgeDays: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Copyright 2026 XAGI Labs Private Limited
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { randomUUID } from "node:crypto";
4
- import { existsSync, mkdirSync, readdirSync, rmSync, statSync } from "node:fs";
4
+ import { chmodSync, closeSync, existsSync, mkdirSync, openSync, readdirSync, rmSync, statSync } from "node:fs";
5
5
  import { dirname, join } from "node:path";
6
6
  import { DatabaseSync } from "node:sqlite";
7
7
  import { EncryptedPayloadSchema, WorkflowDefinitionSchema, WorkflowEventSchema, WorkflowRunSchema, WorkflowSnapshotSchema, } from "@melra/protocol";
@@ -32,6 +32,32 @@ function parseStored(data, schema, error) {
32
32
  throw new Error(error);
33
33
  }
34
34
  }
35
+ /**
36
+ * The redacted copy of a workflow definition, kept for reading. Redaction
37
+ * rewrites any string shaped like a credential, so a node id or a URL in it
38
+ * may no longer match the definition schema; only the identity it is stored
39
+ * under is checked. The sealed payload is the definition that runs.
40
+ */
41
+ const RedactedWorkflowDefinitionSchema = WorkflowDefinitionSchema.pick({ id: true, version: true }).loose();
42
+ /**
43
+ * Task records, events and receipts are for the user running MELRA alone:
44
+ * the database, and the WAL and shared-memory files SQLite gives the same
45
+ * mode, are made private if anything left them wider. `chmod`, never an open:
46
+ * closing any descriptor to the file would drop the locks SQLite holds on it.
47
+ */
48
+ function keepPrivate(path) {
49
+ if (process.platform === "win32")
50
+ return;
51
+ for (const file of [path, `${path}-wal`, `${path}-shm`]) {
52
+ try {
53
+ if ((statSync(file).mode & 0o077) !== 0)
54
+ chmodSync(file, 0o600);
55
+ }
56
+ catch {
57
+ // Not there yet, or not ours to change: SQLite creates the WAL files later, from the database's mode.
58
+ }
59
+ }
60
+ }
35
61
  export class SqliteStore {
36
62
  path;
37
63
  database;
@@ -58,9 +84,21 @@ export class SqliteStore {
58
84
  this.database.exec("PRAGMA busy_timeout = 5000");
59
85
  return;
60
86
  }
61
- if (path !== ":memory:")
62
- mkdirSync(dirname(path), { recursive: true });
87
+ if (path !== ":memory:") {
88
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
89
+ // A new database is created private, not made so after SQLite has
90
+ // created it at its default mode. `wx` opens only a file it creates,
91
+ // never one this process may already hold SQLite locks on.
92
+ try {
93
+ closeSync(openSync(path, "wx", 0o600));
94
+ }
95
+ catch {
96
+ // Already there (kept private below), or SQLite says why it cannot be.
97
+ }
98
+ }
63
99
  this.database = new DatabaseSync(path);
100
+ if (path !== ":memory:")
101
+ keepPrivate(path);
64
102
  this.database.exec("PRAGMA busy_timeout = 5000");
65
103
  this.database.exec("PRAGMA journal_mode = WAL");
66
104
  this.database.exec("PRAGMA foreign_keys = ON");
@@ -239,6 +277,13 @@ export class SqliteStore {
239
277
  approver TEXT NOT NULL,
240
278
  decided_at TEXT NOT NULL
241
279
  );
280
+ `);
281
+ // Migration 6 indexes tasks by idempotency key, so a workflow step finds
282
+ // the tasks under its key without reading every task. As for migration 4,
283
+ // the expression must match listTasksByKey's text exactly.
284
+ this.applyMigration(6, `
285
+ CREATE INDEX IF NOT EXISTS tasks_idempotency_key
286
+ ON tasks(json_extract(data, '$.idempotencyKey'));
242
287
  `);
243
288
  }
244
289
  applyMigration(version, statements) {
@@ -254,6 +299,12 @@ export class SqliteStore {
254
299
  .run(version, new Date().toISOString());
255
300
  });
256
301
  }
302
+ /**
303
+ * Runs `action` as one write transaction: another process sharing the
304
+ * database waits, so nothing it read changes before it writes, and a throw
305
+ * undoes every write it made. `action` must not call a method that opens a
306
+ * transaction of its own.
307
+ */
257
308
  transaction(action) {
258
309
  this.database.exec("BEGIN IMMEDIATE");
259
310
  try {
@@ -287,6 +338,20 @@ export class SqliteStore {
287
338
  `)
288
339
  .run(task.id, JSON.stringify(task), task.createdAt, task.updatedAt, owner ?? null);
289
340
  }
341
+ /**
342
+ * `saveTask` only while the stored status is one of `expected`, saying
343
+ * whether it wrote: a compare-and-set, so of two processes moving one task
344
+ * out of a status (an execute and a deny, or two executes) exactly one does.
345
+ */
346
+ saveTaskIf(task, expected, owner) {
347
+ const result = this.database
348
+ .prepare(`
349
+ UPDATE tasks SET data = ?, updated_at = ?, owner = COALESCE(?, owner)
350
+ WHERE id = ? AND json_extract(data, '$.status') IN (SELECT value FROM json_each(?))
351
+ `)
352
+ .run(JSON.stringify(task), task.updatedAt, owner ?? null, task.id, JSON.stringify(expected));
353
+ return Number(result.changes) === 1;
354
+ }
290
355
  /**
291
356
  * This store's owner id, created on first use. "Alive" means someone holds
292
357
  * an exclusive SQLite lock on `<db>-owners/<id>`; the kernel drops that lock
@@ -301,7 +366,7 @@ export class SqliteStore {
301
366
  if (this.path === ":memory:")
302
367
  return (this.owner = { id }).id;
303
368
  const directory = `${this.path}-owners`;
304
- mkdirSync(directory, { recursive: true });
369
+ mkdirSync(directory, { recursive: true, mode: 0o700 });
305
370
  this.pruneOwners(directory);
306
371
  const file = join(directory, id);
307
372
  const lock = new DatabaseSync(file);
@@ -398,6 +463,31 @@ export class SqliteStore {
398
463
  .all(status, limit));
399
464
  return rows.map((row) => JSON.parse(row.data));
400
465
  }
466
+ /**
467
+ * Tasks waiting on a semantic judgement (#54) whose wait is over, oldest
468
+ * first, and only those: the sweep that settles them should neither parse
469
+ * every waiting row nor let newer ones crowd out the oldest. A task's
470
+ * judgements share one `expiresAt`, which the kernel writes as an ISO
471
+ * string, so the comparison is a string one; a row with none is due.
472
+ */
473
+ listExpiredJudgements(now) {
474
+ const rows = this.database
475
+ .prepare(`
476
+ SELECT data FROM tasks
477
+ WHERE json_extract(data, '$.status') = 'waiting_user'
478
+ AND coalesce(json_extract(data, '$.judgements[0].expiresAt'), '') <= ?
479
+ ORDER BY updated_at ASC
480
+ `)
481
+ .all(now);
482
+ return rows.map((row) => JSON.parse(row.data));
483
+ }
484
+ /** Every task planned under one idempotency key, any status, found by its index. */
485
+ listTasksByKey(idempotencyKey) {
486
+ const rows = this.database
487
+ .prepare("SELECT data FROM tasks WHERE json_extract(data, '$.idempotencyKey') = ?")
488
+ .all(idempotencyKey);
489
+ return rows.map((row) => JSON.parse(row.data));
490
+ }
401
491
  /** Counted in SQL so a summary does not have to load every task to add them up. */
402
492
  taskStatusCounts() {
403
493
  const rows = this.database
@@ -483,7 +573,7 @@ export class SqliteStore {
483
573
  * one), so only the run and its events are written.
484
574
  */
485
575
  createWorkflow(redactedDefinition, payload, run, events) {
486
- const definition = WorkflowDefinitionSchema.parse(redactedDefinition);
576
+ const definition = RedactedWorkflowDefinitionSchema.parse(redactedDefinition);
487
577
  const sealed = payload === undefined ? undefined : EncryptedPayloadSchema.parse(payload);
488
578
  if (sealed === undefined && this.getWorkflowPayload(definition.id, definition.version) === undefined) {
489
579
  throw new Error("workflow_payload_not_found");
@@ -533,7 +623,7 @@ export class SqliteStore {
533
623
  .get(id, version);
534
624
  return row === undefined
535
625
  ? undefined
536
- : parseStored(row.data, WorkflowDefinitionSchema, "stored_workflow_definition_invalid");
626
+ : parseStored(row.data, RedactedWorkflowDefinitionSchema, "stored_workflow_definition_invalid");
537
627
  }
538
628
  getWorkflowRun(id) {
539
629
  const row = this.database
@@ -721,15 +811,6 @@ export class SqliteStore {
721
811
  `)
722
812
  .get(key);
723
813
  }
724
- /**
725
- * Draws one operation, and whatever it declared it moved, against a grant.
726
- *
727
- * Silent on a repeat: the key is `(grant, task)`, so recovery replaying a
728
- * committed task or a receipt being rebuilt cannot spend the grant a second
729
- * time. Called at the same point as `commitIdempotency` — after verification,
730
- * never at plan time — so a refused, failed, or cancelled operation leaves
731
- * the budget where it found it.
732
- */
733
814
  /** False when a decision for this approval was already recorded. */
734
815
  recordApprovalDecision(decision) {
735
816
  const result = this.database
@@ -752,6 +833,17 @@ export class SqliteStore {
752
833
  `)
753
834
  .get(approvalId);
754
835
  }
836
+ /**
837
+ * Draws one operation, and whatever it declared it moved, against a grant.
838
+ *
839
+ * Silent on a repeat: the key is `(grant, task)`, so recovery replaying a
840
+ * task or a receipt being rebuilt cannot spend the grant a second time.
841
+ * Called once the adapter may have run (it returned, or threw an
842
+ * outcome-unknown error), whatever the evidence then says, and never at
843
+ * plan time: a refusal, a cancel before the adapter ran, an adapter error
844
+ * saying nothing went out, or a duplicate stopped before it ran leaves the
845
+ * budget where it found it.
846
+ */
755
847
  recordCapabilityUse(grantId, taskId, amount, at) {
756
848
  this.database
757
849
  .prepare(`
@@ -762,6 +854,17 @@ export class SqliteStore {
762
854
  `)
763
855
  .run(grantId, taskId, amount, at);
764
856
  }
857
+ /**
858
+ * Whether a task has drawn any grant.
859
+ *
860
+ * ponytail: scans capability_usage, whose key leads with grant_id; asked
861
+ * only when settling a task after the fact. Index task_id if that changes.
862
+ */
863
+ hasCapabilityUse(taskId) {
864
+ return (this.database
865
+ .prepare("SELECT 1 FROM capability_usage WHERE task_id = ? LIMIT 1")
866
+ .get(taskId) !== undefined);
867
+ }
765
868
  /**
766
869
  * What a grant has spent: every operation ever, and the declared amounts
767
870
  * committed at or after `since`.
@@ -820,17 +923,23 @@ export class SqliteStore {
820
923
  .all(taskId);
821
924
  return rows.map((row) => JSON.parse(row.data));
822
925
  }
823
- saveCertificate(certificate) {
926
+ /**
927
+ * Stores a task's certificate in place of the one it had, and returns what
928
+ * is stored. With `ifAbsent` one already there stays instead, so two
929
+ * processes certifying the same outcome hand out the same certificate.
930
+ */
931
+ saveCertificate(certificate, { ifAbsent = false } = {}) {
824
932
  this.database
825
933
  .prepare(`
826
934
  INSERT INTO certificates(id, task_id, data, created_at)
827
935
  VALUES (?, ?, ?, ?)
828
- ON CONFLICT(task_id) DO UPDATE SET
936
+ ON CONFLICT(task_id) DO ${ifAbsent ? "NOTHING" : `UPDATE SET
829
937
  id = excluded.id,
830
938
  data = excluded.data,
831
- created_at = excluded.created_at
939
+ created_at = excluded.created_at`}
832
940
  `)
833
941
  .run(certificate.certificateId, certificate.taskId, JSON.stringify(certificate), certificate.createdAt);
942
+ return ifAbsent ? this.getCertificateForTask(certificate.taskId) : certificate;
834
943
  }
835
944
  getCertificateForTask(taskId) {
836
945
  const row = this.database
@@ -925,12 +1034,59 @@ export class SqliteStore {
925
1034
  .run(supersededBy, new Date().toISOString(), id, scope);
926
1035
  return Number(result.changes) > 0;
927
1036
  }
928
- deleteMemory(id, scope) {
1037
+ /**
1038
+ * Make `id` live again if `supersededBy` is what retired it, for when the
1039
+ * record that replaced it is deleted or stops claiming to replace it.
1040
+ * Otherwise it stayed hidden with nothing live pointing at it, so it could
1041
+ * be neither read, edited nor superseded, and compaction later deleted it.
1042
+ */
1043
+ unsupersedeMemory(id, scope, supersededBy) {
929
1044
  const result = this.database
930
- .prepare("DELETE FROM memories WHERE id = ? AND scope = ?")
931
- .run(id, scope);
1045
+ .prepare(`
1046
+ UPDATE memories
1047
+ SET superseded_by = NULL, updated_at = ?
1048
+ WHERE id = ? AND scope = ? AND superseded_by = ?
1049
+ `)
1050
+ .run(new Date().toISOString(), id, scope, supersededBy);
932
1051
  return Number(result.changes) > 0;
933
1052
  }
1053
+ /**
1054
+ * Deleting a live correction undoes it: what it replaced is live again.
1055
+ * Deleting one in the middle of a chain links the records on either side of
1056
+ * it, so the latest stays the only live one. An expired correction leaves
1057
+ * what it replaced retired, as it does once compaction has removed it.
1058
+ */
1059
+ deleteMemory(id, scope) {
1060
+ return this.transaction(() => {
1061
+ const row = this.database
1062
+ .prepare(`
1063
+ SELECT supersedes_id AS supersedesId, superseded_by AS supersededBy, expires_at AS expiresAt
1064
+ FROM memories WHERE id = ? AND scope = ?
1065
+ `)
1066
+ .get(id, scope);
1067
+ const result = this.database
1068
+ .prepare("DELETE FROM memories WHERE id = ? AND scope = ?")
1069
+ .run(id, scope);
1070
+ const replaced = row?.supersedesId;
1071
+ // An expired correction changes nothing, spliced or not, so deleting it
1072
+ // does what compaction removing it does, whichever comes first.
1073
+ const live = row !== undefined && (row.expiresAt === null || row.expiresAt > new Date().toISOString());
1074
+ if (live && replaced != null) {
1075
+ if (row.supersededBy != null) {
1076
+ this.database
1077
+ .prepare("UPDATE memories SET superseded_by = ? WHERE id = ? AND scope = ? AND superseded_by = ?")
1078
+ .run(row.supersededBy, replaced, scope, id);
1079
+ this.database
1080
+ .prepare("UPDATE memories SET supersedes_id = ? WHERE id = ? AND scope = ? AND supersedes_id = ?")
1081
+ .run(replaced, row.supersededBy, scope, id);
1082
+ }
1083
+ else {
1084
+ this.unsupersedeMemory(replaced, scope, id);
1085
+ }
1086
+ }
1087
+ return Number(result.changes) > 0;
1088
+ });
1089
+ }
934
1090
  clearMemories(scope) {
935
1091
  const result = this.database
936
1092
  .prepare("DELETE FROM memories WHERE scope = ?")
@@ -949,9 +1105,8 @@ export class SqliteStore {
949
1105
  * memories, which is data the caller stored and can still read. An operator
950
1106
  * who wants a hard ceiling opts into one.
951
1107
  *
952
- * A superseded row is only dropped once nothing live points at it, so
953
- * `supersedes_id` never dangles and a chain is removed from its tail
954
- * inwards across successive compactions.
1108
+ * A superseded row is only dropped once nothing live points at it, so a
1109
+ * chain is removed from its tail inwards across successive compactions.
955
1110
  */
956
1111
  compactMemories(scope, retention, now = new Date()) {
957
1112
  const nowIso = now.toISOString();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melra/storage-sqlite",
3
- "version": "0.3.0-alpha.14",
3
+ "version": "0.3.0-alpha.16",
4
4
  "description": "Transactional SQLite task, workflow, event, payload, and evidence storage for MELRA.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -11,6 +11,9 @@
11
11
  "homepage": "https://github.com/XAGI-Lab/melra#readme",
12
12
  "bugs": "https://github.com/XAGI-Lab/melra/issues",
13
13
  "type": "module",
14
+ "engines": {
15
+ "node": "^22.13.0 || >=23.4.0"
16
+ },
14
17
  "exports": {
15
18
  ".": {
16
19
  "types": "./dist/index.d.ts",
@@ -21,8 +24,8 @@
21
24
  "dist"
22
25
  ],
23
26
  "dependencies": {
24
- "@melra/protocol": "0.3.0-alpha.14",
25
- "@melra/receipt-schema": "0.3.0-alpha.14"
27
+ "@melra/protocol": "0.3.0-alpha.16",
28
+ "@melra/receipt-schema": "0.3.0-alpha.16"
26
29
  },
27
30
  "scripts": {
28
31
  "build": "tsc -p tsconfig.json",